@malloydata/render 0.0.144-dev240503150037 → 0.0.144-dev240509111305
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/module/index.mjs +127 -130
- package/dist/module/index.umd.js +11 -11
- package/dist/webcomponent/malloy-render.mjs +127 -130
- package/dist/webcomponent/malloy-render.umd.js +11 -11
- package/package.json +2 -2
package/dist/module/index.umd.js
CHANGED
|
@@ -114,13 +114,13 @@ AS (
|
|
|
114
114
|
${(0,SM.indent)(n)}
|
|
115
115
|
);
|
|
116
116
|
`}sqlCreateFunctionCombineLastStage(e){return`SELECT ARRAY((SELECT AS STRUCT * FROM ${e}))
|
|
117
|
-
`}sqlSelectAliasAsStruct(e){return`(SELECT AS STRUCT ${e}.*)`}sqlMaybeQuoteIdentifier(e){return"`"+e+"`"}sqlNow(){return(0,jn.mkExpr)`CURRENT_TIMESTAMP()`}sqlTrunc(e,n,r){const i=$A(e),s=i?`, "${i}"`:"";return n.valueType==="date"?Rhe(r)?(0,jn.mkExpr)`DATE_TRUNC(${n.value},${r})`:(0,jn.mkExpr)`TIMESTAMP(${n.value}${s})`:(0,jn.mkExpr)`TIMESTAMP_TRUNC(${n.value},${r}${s})`}sqlExtract(e,n,r){const i=Ohe[r]||r,s=n.valueType==="timestamp"&&$A(e),o=s?` AT TIME ZONE '${s}'`:"";return(0,jn.mkExpr)`EXTRACT(${i} FROM ${n.value}${o})`}sqlAlterTime(e,n,r,i){let s=n.value,o=n.valueType;i!=="day"&&_M(i)?(o="timestamp",n.valueType!=="timestamp"&&(s=(0,jn.mkExpr)`TIMESTAMP(${s})`)):n.valueType==="timestamp"&&(s=(0,jn.mkExpr)`DATETIME(${s})`,o="datetime");const u=o.toUpperCase()+(e==="+"?"_ADD":"_SUB"),a=(0,jn.mkExpr)`${u}(${s}, INTERVAL ${r} ${i})`;return o===n.valueType?a:(0,jn.mkExpr)`${n.valueType.toUpperCase()}(${a})`}ignoreInProject(e){return e==="_PARTITIONTIME"}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=$A(e);if(r==="timestamp::date"&&i)return(0,jn.mkExpr)`DATE(${n.expr},'${i}')`;if(r==="date::timestamp"&&i)return(0,jn.mkExpr)`TIMESTAMP(${n.expr}, '${i}')`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"SAFE_CAST":"CAST";return(0,jn.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,jn.mkExpr)`REGEXP_CONTAINS(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE('${n}')`;if(r==="timestamp"){let s=`'${n}'`;const o=i||$A(e);return o&&o!=="UTC"&&(s+=`,'${o}'`),`TIMESTAMP(${s})`}else throw new Error(`Unsupported Literal time format ${r}`)}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!_M(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,jn.mkExpr)`TIMESTAMP(${s})`,o=(0,jn.mkExpr)`TIMESTAMP(${o})`);let l=(0,jn.mkExpr)`TIMESTAMP_DIFF(${o},${s},${u})`;return a!==1&&(l=(0,jn.mkExpr)`FLOOR(${l}/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,jn.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,jn.isSamplingRows)(n))throw new Error("StandardSQL doesn't support sampling by rows only percent");if((0,jn.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent} PERCENT))`}return e}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return bhe.STANDARDSQL_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"INT64":"FLOAT64":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Nhe[i.toUpperCase()]}castToString(e){return`CAST(${e} as STRING)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}tp.StandardSQLDialect=Dhe,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(tp,t)}(eO);var hO={},BA={},CM={},bM={},eh={};Object.defineProperty(eh,"__esModule",{value:!0}),eh.fnStringAggDistinct=eh.fnStringAgg=void 0;const _n=ge;function Fhe(){const t=(0,_n.makeParam)("value",(0,_n.maxScalar)("string")),e=(0,_n.makeParam)("separator",(0,_n.literal)((0,_n.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,_n.overload)((0,_n.minAggregate)("string"),[t.param],(0,_n.sql)`STRING_AGG(${t.arg}, ','${n})`,{supportsOrderBy:!0}),(0,_n.overload)((0,_n.minAggregate)("string"),[t.param,e.param],(0,_n.sql)`STRING_AGG(${t.arg}, ${e.arg}${n})`,{supportsOrderBy:!0})]}eh.fnStringAgg=Fhe;function whe(){const t=(0,_n.makeParam)("value",(0,_n.maxScalar)("string")),e=(0,_n.makeParam)("separator",(0,_n.literal)((0,_n.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,_n.overload)((0,_n.minAggregate)("string"),[t.param],(0,_n.sql)`STRING_AGG(DISTINCT ${t.arg}, ','${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0}),(0,_n.overload)((0,_n.minAggregate)("string"),[t.param,e.param],(0,_n.sql)`STRING_AGG(DISTINCT ${t.arg}, ${e.arg}${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0})]}eh.fnStringAggDistinct=whe;var kA={};Object.defineProperty(kA,"__esModule",{value:!0}),kA.fnByteLength=void 0;const th=ge;function Lhe(){return[(0,th.overload)((0,th.minScalar)("number"),[(0,th.param)("value",(0,th.anyExprType)("string"))],(0,th.sql)`OCTET_LENGTH(${(0,th.arg)("value")})`)]}kA.fnByteLength=Lhe;var PA={};Object.defineProperty(PA,"__esModule",{value:!0}),PA.fnEndsWith=void 0;const Ef=ge;function Ihe(){const t=(0,Ef.makeParam)("value",(0,Ef.anyExprType)("string")),e=(0,Ef.makeParam)("suffix",(0,Ef.anyExprType)("string"));return[(0,Ef.overload)((0,Ef.minScalar)("boolean"),[t.param,e.param],(0,Ef.sql)`COALESCE(RIGHT(${t.arg}, LENGTH(${e.arg})) = ${e.arg}, false)`)]}PA.fnEndsWith=Ihe;var nh={};Object.defineProperty(nh,"__esModule",{value:!0}),nh.fnLeast=nh.fnGreatest=void 0;const Ga=ge,$he=["string","number","timestamp","date","json"];function TM(t){return $he.map(e=>(0,Ga.overload)((0,Ga.minScalar)(e),[(0,Ga.params)("values",(0,Ga.anyExprType)(e))],[(0,Ga.sqlFragment)("CASE WHEN NUM_NULLS(",(0,Ga.spread)((0,Ga.arg)("values")),`) > 0 THEN NULL ELSE ${t}(`,(0,Ga.spread)((0,Ga.arg)("values")),") END")]))}const Bhe=()=>TM("GREATEST");nh.fnGreatest=Bhe;const khe=()=>TM("LEAST");nh.fnLeast=khe;var MA={};Object.defineProperty(MA,"__esModule",{value:!0}),MA.fnIfnull=void 0;const Wa=ge,Phe=["string","number","timestamp","date","json"];function Mhe(){return Phe.map(t=>(0,Wa.overload)((0,Wa.minScalar)(t),[(0,Wa.param)("value",(0,Wa.anyExprType)(t)),(0,Wa.param)("default",(0,Wa.anyExprType)(t))],(0,Wa.sql)`COALESCE(${(0,Wa.arg)("value")}, ${(0,Wa.arg)("default")})`))}MA.fnIfnull=Mhe;var jA={};Object.defineProperty(jA,"__esModule",{value:!0}),jA.fnIsInf=void 0;const up=ge;function jhe(){const t=(0,up.makeParam)("value",(0,up.anyExprType)("number"));return[(0,up.overload)((0,up.minScalar)("boolean"),[t.param],(0,up.sql)`COALESCE(${t.arg} = DOUBLE PRECISION 'Infinity' OR ${t.arg} = DOUBLE PRECISION '-Infinity', false)`)]}jA.fnIsInf=jhe;var UA={};Object.defineProperty(UA,"__esModule",{value:!0}),UA.fnIsNan=void 0;const rh=ge;function Uhe(){return[(0,rh.overload)((0,rh.minScalar)("boolean"),[(0,rh.param)("value",(0,rh.anyExprType)("number"))],(0,rh.sql)`COALESCE(${(0,rh.arg)("value")} = NUMERIC 'NaN', false)`)]}UA.fnIsNan=Uhe;var qA={};Object.defineProperty(qA,"__esModule",{value:!0}),qA.fnLog=void 0;const Af=ge;function qhe(){const t=(0,Af.makeParam)("value",(0,Af.anyExprType)("number")),e=(0,Af.makeParam)("base",(0,Af.anyExprType)("number"));return[(0,Af.overload)((0,Af.minScalar)("number"),[t.param,e.param],(0,Af.sql)`LOG(${e.arg}, ${t.arg})`)]}qA.fnLog=qhe;var HA={};Object.defineProperty(HA,"__esModule",{value:!0}),HA.fnRand=void 0;const pO=ge;function Hhe(){return[(0,pO.overload)((0,pO.minScalar)("number"),[],(0,pO.sql)`RANDOM()`)]}HA.fnRand=Hhe;var zA={};Object.defineProperty(zA,"__esModule",{value:!0}),zA.fnRegexpExtract=void 0;const vf=ge;function zhe(){const t=(0,vf.makeParam)("value",(0,vf.anyExprType)("string")),e=(0,vf.makeParam)("pattern",(0,vf.anyExprType)("regular expression"));return[(0,vf.overload)((0,vf.minScalar)("string"),[t.param,e.param],(0,vf.sql)`SUBSTRING(${t.arg}, ${e.arg})`)]}zA.fnRegexpExtract=zhe;var QA={};Object.defineProperty(QA,"__esModule",{value:!0}),QA.fnReplace=void 0;const Ki=ge;function Qhe(){const t=(0,Ki.makeParam)("value",(0,Ki.anyExprType)("string")),e=(0,Ki.makeParam)("pattern",(0,Ki.anyExprType)("string")),n=(0,Ki.makeParam)("pattern",(0,Ki.anyExprType)("regular expression")),r=(0,Ki.makeParam)("replacement",(0,Ki.anyExprType)("string"));return[(0,Ki.overload)((0,Ki.minScalar)("string"),[t.param,e.param,r.param],(0,Ki.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Ki.overload)((0,Ki.minScalar)("string"),[t.param,n.param,r.param],(0,Ki.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}QA.fnReplace=Qhe;var GA={};Object.defineProperty(GA,"__esModule",{value:!0}),GA.fnRound=void 0;const bu=ge;function Ghe(){const t=(0,bu.makeParam)("value",(0,bu.anyExprType)("number")),e=(0,bu.makeParam)("precision",(0,bu.anyExprType)("number"));return[(0,bu.overload)((0,bu.minScalar)("number"),[t.param],(0,bu.sql)`ROUND((${t.arg})::NUMERIC)`),(0,bu.overload)((0,bu.minScalar)("number"),[t.param,e.param],(0,bu.sql)`ROUND((${t.arg})::NUMERIC, ${e.arg})`)]}GA.fnRound=Ghe;var WA={};Object.defineProperty(WA,"__esModule",{value:!0}),WA.fnStddev=void 0;const ap=ge;function Whe(){const t=(0,ap.makeParam)("value",(0,ap.maxScalar)("number"));return[(0,ap.overload)((0,ap.minAggregate)("number"),[t.param],(0,ap.sql)`STDDEV(${t.arg}::DOUBLE PRECISION)`)]}WA.fnStddev=Whe;var VA={};Object.defineProperty(VA,"__esModule",{value:!0}),VA.fnSubstr=void 0;const eo=ge;function Vhe(){const t=(0,eo.makeParam)("value",(0,eo.anyExprType)("string")),e=(0,eo.makeParam)("position",(0,eo.anyExprType)("number")),n=(0,eo.makeParam)("length",(0,eo.anyExprType)("number"));return[(0,eo.overload)((0,eo.minScalar)("string"),[t.param,e.param],(0,eo.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END)`),(0,eo.overload)((0,eo.minScalar)("string"),[t.param,e.param,n.param],(0,eo.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END, ${n.arg})`)]}VA.fnSubstr=Vhe;var YA={};Object.defineProperty(YA,"__esModule",{value:!0}),YA.fnTrunc=void 0;const Tu=ge;function Yhe(){const t=(0,Tu.makeParam)("value",(0,Tu.anyExprType)("number")),e=(0,Tu.makeParam)("precision",(0,Tu.anyExprType)("number"));return[(0,Tu.overload)((0,Tu.minScalar)("number"),[t.param],(0,Tu.sql)`TRUNC(${t.arg}::NUMERIC)`),(0,Tu.overload)((0,Tu.minScalar)("number"),[t.param,e.param],(0,Tu.sql)`TRUNC((${t.arg}::NUMERIC), ${e.arg})`)]}YA.fnTrunc=Yhe;var KA={};Object.defineProperty(KA,"__esModule",{value:!0}),KA.fnUnicode=void 0;const ih=ge;function Khe(){return[(0,ih.overload)((0,ih.minScalar)("number"),[(0,ih.param)("value",(0,ih.anyExprType)("string"))],(0,ih.sql)`ASCII(${(0,ih.arg)("value")})`)]}KA.fnUnicode=Khe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;const e=cf,n=eh,r=kA,i=PA,s=nh,o=MA,u=jA,a=UA,l=qA,c=HA,f=zA,x=QA,h=GA,p=WA,m=VA,g=YA,y=KA;t.POSTGRES_FUNCTIONS=e.FUNCTIONS.clone(),t.POSTGRES_FUNCTIONS.add("regexp_extract",f.fnRegexpExtract),t.POSTGRES_FUNCTIONS.add("stddev",p.fnStddev),t.POSTGRES_FUNCTIONS.add("rand",c.fnRand),t.POSTGRES_FUNCTIONS.add("greatest",s.fnGreatest),t.POSTGRES_FUNCTIONS.add("least",s.fnLeast),t.POSTGRES_FUNCTIONS.add("is_nan",a.fnIsNan),t.POSTGRES_FUNCTIONS.add("is_inf",u.fnIsInf),t.POSTGRES_FUNCTIONS.add("round",h.fnRound),t.POSTGRES_FUNCTIONS.add("byte_length",r.fnByteLength),t.POSTGRES_FUNCTIONS.add("unicode",y.fnUnicode),t.POSTGRES_FUNCTIONS.add("ifnull",o.fnIfnull),t.POSTGRES_FUNCTIONS.add("trunc",g.fnTrunc),t.POSTGRES_FUNCTIONS.add("substr",m.fnSubstr),t.POSTGRES_FUNCTIONS.add("replace",x.fnReplace),t.POSTGRES_FUNCTIONS.add("ends_with",i.fnEndsWith),t.POSTGRES_FUNCTIONS.add("string_agg",n.fnStringAgg),t.POSTGRES_FUNCTIONS.add("string_agg_distinct",n.fnStringAggDistinct),t.POSTGRES_FUNCTIONS.add("log",l.fnLog),t.POSTGRES_FUNCTIONS.seal()}(bM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;var e=bM;Object.defineProperty(t,"POSTGRES_FUNCTIONS",{enumerable:!0,get:function(){return e.POSTGRES_FUNCTIONS}})}(CM),Object.defineProperty(BA,"__esModule",{value:!0}),BA.PostgresDialect=void 0;const Xhe=Vt,jt=ne,RM=CM,lp=lf,Jhe={day_of_week:"dow",day_of_year:"doy"},Zhe={year:"years",month:"months",week:"weeks",day:"days",hour:"hours",minute:"mins",second:"secs"},OM={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},e2e={"character varying":{type:"string"},name:{type:"string"},text:{type:"string"},date:{type:"date"},integer:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"double precision":{type:"number",numberType:"float"},"timestamp without time zone":{type:"timestamp"},oid:{type:"string"},boolean:{type:"boolean"},timestamp:{type:"timestamp"},'"char"':{type:"string"},character:{type:"string"},smallint:{type:"number",numberType:"integer"},xid:{type:"string"},real:{type:"number",numberType:"float"},interval:{type:"string"},inet:{type:"string"},regtype:{type:"string"},numeric:{type:"number",numberType:"float"},bytea:{type:"string"},pg_ndistinct:{type:"number",numberType:"integer"},varchar:{type:"string"}};class t2e extends lp.Dialect{constructor(){super(...arguments),this.name="postgres",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="NUMERIC",this.udfPrefix="pg_temp.__udf",this.hasFinalStage=!0,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.globalFunctions=RM.POSTGRES_FUNCTIONS,this.supportsNesting=!0,this.readsNestedData=!1}quoteTablePath(e){return e.split(".").map(n=>`"${n}"`).join(".")}sqlGroupSetTable(e){return`CROSS JOIN GENERATE_SERIES(0,${e},1) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`
|
|
117
|
+
`}sqlSelectAliasAsStruct(e){return`(SELECT AS STRUCT ${e}.*)`}sqlMaybeQuoteIdentifier(e){return"`"+e+"`"}sqlNow(){return(0,jn.mkExpr)`CURRENT_TIMESTAMP()`}sqlTrunc(e,n,r){const i=$A(e),s=i?`, "${i}"`:"";return n.valueType==="date"?Rhe(r)?(0,jn.mkExpr)`DATE_TRUNC(${n.value},${r})`:(0,jn.mkExpr)`TIMESTAMP(${n.value}${s})`:(0,jn.mkExpr)`TIMESTAMP_TRUNC(${n.value},${r}${s})`}sqlExtract(e,n,r){const i=Ohe[r]||r,s=n.valueType==="timestamp"&&$A(e),o=s?` AT TIME ZONE '${s}'`:"";return(0,jn.mkExpr)`EXTRACT(${i} FROM ${n.value}${o})`}sqlAlterTime(e,n,r,i){let s=n.value,o=n.valueType;i!=="day"&&_M(i)?(o="timestamp",n.valueType!=="timestamp"&&(s=(0,jn.mkExpr)`TIMESTAMP(${s})`)):n.valueType==="timestamp"&&(s=(0,jn.mkExpr)`DATETIME(${s})`,o="datetime");const u=o.toUpperCase()+(e==="+"?"_ADD":"_SUB"),a=(0,jn.mkExpr)`${u}(${s}, INTERVAL ${r} ${i})`;return o===n.valueType?a:(0,jn.mkExpr)`${n.valueType.toUpperCase()}(${a})`}ignoreInProject(e){return e==="_PARTITIONTIME"}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=$A(e);if(r==="timestamp::date"&&i)return(0,jn.mkExpr)`DATE(${n.expr},'${i}')`;if(r==="date::timestamp"&&i)return(0,jn.mkExpr)`TIMESTAMP(${n.expr}, '${i}')`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"SAFE_CAST":"CAST";return(0,jn.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,jn.mkExpr)`REGEXP_CONTAINS(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE('${n}')`;if(r==="timestamp"){let s=`'${n}'`;const o=i||$A(e);return o&&o!=="UTC"&&(s+=`,'${o}'`),`TIMESTAMP(${s})`}else throw new Error(`Unsupported Literal time format ${r}`)}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!_M(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,jn.mkExpr)`TIMESTAMP(${s})`,o=(0,jn.mkExpr)`TIMESTAMP(${o})`);let l=(0,jn.mkExpr)`TIMESTAMP_DIFF(${o},${s},${u})`;return a!==1&&(l=(0,jn.mkExpr)`FLOOR(${l}/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,jn.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,jn.isSamplingRows)(n))throw new Error("StandardSQL doesn't support sampling by rows only percent");if((0,jn.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent} PERCENT))`}return e}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return bhe.STANDARDSQL_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"INT64":"FLOAT64":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Nhe[i.toUpperCase()]}castToString(e){return`CAST(${e} as STRING)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}tp.StandardSQLDialect=Dhe,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(tp,t)}(eO);var hO={},BA={},CM={},bM={},eh={};Object.defineProperty(eh,"__esModule",{value:!0}),eh.fnStringAggDistinct=eh.fnStringAgg=void 0;const _n=ge;function Fhe(){const t=(0,_n.makeParam)("value",(0,_n.maxScalar)("string")),e=(0,_n.makeParam)("separator",(0,_n.literal)((0,_n.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,_n.overload)((0,_n.minAggregate)("string"),[t.param],(0,_n.sql)`STRING_AGG(${t.arg}, ','${n})`,{supportsOrderBy:!0}),(0,_n.overload)((0,_n.minAggregate)("string"),[t.param,e.param],(0,_n.sql)`STRING_AGG(${t.arg}, ${e.arg}${n})`,{supportsOrderBy:!0})]}eh.fnStringAgg=Fhe;function whe(){const t=(0,_n.makeParam)("value",(0,_n.maxScalar)("string")),e=(0,_n.makeParam)("separator",(0,_n.literal)((0,_n.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,_n.overload)((0,_n.minAggregate)("string"),[t.param],(0,_n.sql)`STRING_AGG(DISTINCT ${t.arg}, ','${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0}),(0,_n.overload)((0,_n.minAggregate)("string"),[t.param,e.param],(0,_n.sql)`STRING_AGG(DISTINCT ${t.arg}, ${e.arg}${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0})]}eh.fnStringAggDistinct=whe;var kA={};Object.defineProperty(kA,"__esModule",{value:!0}),kA.fnByteLength=void 0;const th=ge;function Lhe(){return[(0,th.overload)((0,th.minScalar)("number"),[(0,th.param)("value",(0,th.anyExprType)("string"))],(0,th.sql)`OCTET_LENGTH(${(0,th.arg)("value")})`)]}kA.fnByteLength=Lhe;var PA={};Object.defineProperty(PA,"__esModule",{value:!0}),PA.fnEndsWith=void 0;const Ef=ge;function Ihe(){const t=(0,Ef.makeParam)("value",(0,Ef.anyExprType)("string")),e=(0,Ef.makeParam)("suffix",(0,Ef.anyExprType)("string"));return[(0,Ef.overload)((0,Ef.minScalar)("boolean"),[t.param,e.param],(0,Ef.sql)`COALESCE(RIGHT(${t.arg}, LENGTH(${e.arg})) = ${e.arg}, false)`)]}PA.fnEndsWith=Ihe;var nh={};Object.defineProperty(nh,"__esModule",{value:!0}),nh.fnLeast=nh.fnGreatest=void 0;const Ga=ge,$he=["string","number","timestamp","date","json"];function TM(t){return $he.map(e=>(0,Ga.overload)((0,Ga.minScalar)(e),[(0,Ga.params)("values",(0,Ga.anyExprType)(e))],[(0,Ga.sqlFragment)("CASE WHEN NUM_NULLS(",(0,Ga.spread)((0,Ga.arg)("values")),`) > 0 THEN NULL ELSE ${t}(`,(0,Ga.spread)((0,Ga.arg)("values")),") END")]))}const Bhe=()=>TM("GREATEST");nh.fnGreatest=Bhe;const khe=()=>TM("LEAST");nh.fnLeast=khe;var MA={};Object.defineProperty(MA,"__esModule",{value:!0}),MA.fnIfnull=void 0;const Wa=ge,Phe=["string","number","timestamp","date","json"];function Mhe(){return Phe.map(t=>(0,Wa.overload)((0,Wa.minScalar)(t),[(0,Wa.param)("value",(0,Wa.anyExprType)(t)),(0,Wa.param)("default",(0,Wa.anyExprType)(t))],(0,Wa.sql)`COALESCE(${(0,Wa.arg)("value")}, ${(0,Wa.arg)("default")})`))}MA.fnIfnull=Mhe;var jA={};Object.defineProperty(jA,"__esModule",{value:!0}),jA.fnIsInf=void 0;const up=ge;function jhe(){const t=(0,up.makeParam)("value",(0,up.anyExprType)("number"));return[(0,up.overload)((0,up.minScalar)("boolean"),[t.param],(0,up.sql)`COALESCE(${t.arg} = DOUBLE PRECISION 'Infinity' OR ${t.arg} = DOUBLE PRECISION '-Infinity', false)`)]}jA.fnIsInf=jhe;var UA={};Object.defineProperty(UA,"__esModule",{value:!0}),UA.fnIsNan=void 0;const rh=ge;function Uhe(){return[(0,rh.overload)((0,rh.minScalar)("boolean"),[(0,rh.param)("value",(0,rh.anyExprType)("number"))],(0,rh.sql)`COALESCE(${(0,rh.arg)("value")} = NUMERIC 'NaN', false)`)]}UA.fnIsNan=Uhe;var qA={};Object.defineProperty(qA,"__esModule",{value:!0}),qA.fnLog=void 0;const Af=ge;function qhe(){const t=(0,Af.makeParam)("value",(0,Af.anyExprType)("number")),e=(0,Af.makeParam)("base",(0,Af.anyExprType)("number"));return[(0,Af.overload)((0,Af.minScalar)("number"),[t.param,e.param],(0,Af.sql)`LOG(${e.arg}, ${t.arg})`)]}qA.fnLog=qhe;var HA={};Object.defineProperty(HA,"__esModule",{value:!0}),HA.fnRand=void 0;const pO=ge;function Hhe(){return[(0,pO.overload)((0,pO.minScalar)("number"),[],(0,pO.sql)`RANDOM()`)]}HA.fnRand=Hhe;var zA={};Object.defineProperty(zA,"__esModule",{value:!0}),zA.fnRegexpExtract=void 0;const vf=ge;function zhe(){const t=(0,vf.makeParam)("value",(0,vf.anyExprType)("string")),e=(0,vf.makeParam)("pattern",(0,vf.anyExprType)("regular expression"));return[(0,vf.overload)((0,vf.minScalar)("string"),[t.param,e.param],(0,vf.sql)`SUBSTRING(${t.arg}, ${e.arg})`)]}zA.fnRegexpExtract=zhe;var QA={};Object.defineProperty(QA,"__esModule",{value:!0}),QA.fnReplace=void 0;const Ki=ge;function Qhe(){const t=(0,Ki.makeParam)("value",(0,Ki.anyExprType)("string")),e=(0,Ki.makeParam)("pattern",(0,Ki.anyExprType)("string")),n=(0,Ki.makeParam)("pattern",(0,Ki.anyExprType)("regular expression")),r=(0,Ki.makeParam)("replacement",(0,Ki.anyExprType)("string"));return[(0,Ki.overload)((0,Ki.minScalar)("string"),[t.param,e.param,r.param],(0,Ki.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Ki.overload)((0,Ki.minScalar)("string"),[t.param,n.param,r.param],(0,Ki.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}QA.fnReplace=Qhe;var GA={};Object.defineProperty(GA,"__esModule",{value:!0}),GA.fnRound=void 0;const bu=ge;function Ghe(){const t=(0,bu.makeParam)("value",(0,bu.anyExprType)("number")),e=(0,bu.makeParam)("precision",(0,bu.anyExprType)("number"));return[(0,bu.overload)((0,bu.minScalar)("number"),[t.param],(0,bu.sql)`ROUND((${t.arg})::NUMERIC)`),(0,bu.overload)((0,bu.minScalar)("number"),[t.param,e.param],(0,bu.sql)`ROUND((${t.arg})::NUMERIC, ${e.arg})`)]}GA.fnRound=Ghe;var WA={};Object.defineProperty(WA,"__esModule",{value:!0}),WA.fnStddev=void 0;const ap=ge;function Whe(){const t=(0,ap.makeParam)("value",(0,ap.maxScalar)("number"));return[(0,ap.overload)((0,ap.minAggregate)("number"),[t.param],(0,ap.sql)`STDDEV(${t.arg}::DOUBLE PRECISION)`)]}WA.fnStddev=Whe;var VA={};Object.defineProperty(VA,"__esModule",{value:!0}),VA.fnSubstr=void 0;const eo=ge;function Vhe(){const t=(0,eo.makeParam)("value",(0,eo.anyExprType)("string")),e=(0,eo.makeParam)("position",(0,eo.anyExprType)("number")),n=(0,eo.makeParam)("length",(0,eo.anyExprType)("number"));return[(0,eo.overload)((0,eo.minScalar)("string"),[t.param,e.param],(0,eo.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END)`),(0,eo.overload)((0,eo.minScalar)("string"),[t.param,e.param,n.param],(0,eo.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END, ${n.arg})`)]}VA.fnSubstr=Vhe;var YA={};Object.defineProperty(YA,"__esModule",{value:!0}),YA.fnTrunc=void 0;const Tu=ge;function Yhe(){const t=(0,Tu.makeParam)("value",(0,Tu.anyExprType)("number")),e=(0,Tu.makeParam)("precision",(0,Tu.anyExprType)("number"));return[(0,Tu.overload)((0,Tu.minScalar)("number"),[t.param],(0,Tu.sql)`TRUNC(${t.arg}::NUMERIC)`),(0,Tu.overload)((0,Tu.minScalar)("number"),[t.param,e.param],(0,Tu.sql)`TRUNC((${t.arg}::NUMERIC), ${e.arg})`)]}YA.fnTrunc=Yhe;var KA={};Object.defineProperty(KA,"__esModule",{value:!0}),KA.fnUnicode=void 0;const ih=ge;function Khe(){return[(0,ih.overload)((0,ih.minScalar)("number"),[(0,ih.param)("value",(0,ih.anyExprType)("string"))],(0,ih.sql)`ASCII(${(0,ih.arg)("value")})`)]}KA.fnUnicode=Khe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;const e=cf,n=eh,r=kA,i=PA,s=nh,o=MA,u=jA,a=UA,l=qA,c=HA,f=zA,x=QA,h=GA,p=WA,m=VA,g=YA,y=KA;t.POSTGRES_FUNCTIONS=e.FUNCTIONS.clone(),t.POSTGRES_FUNCTIONS.add("regexp_extract",f.fnRegexpExtract),t.POSTGRES_FUNCTIONS.add("stddev",p.fnStddev),t.POSTGRES_FUNCTIONS.add("rand",c.fnRand),t.POSTGRES_FUNCTIONS.add("greatest",s.fnGreatest),t.POSTGRES_FUNCTIONS.add("least",s.fnLeast),t.POSTGRES_FUNCTIONS.add("is_nan",a.fnIsNan),t.POSTGRES_FUNCTIONS.add("is_inf",u.fnIsInf),t.POSTGRES_FUNCTIONS.add("round",h.fnRound),t.POSTGRES_FUNCTIONS.add("byte_length",r.fnByteLength),t.POSTGRES_FUNCTIONS.add("unicode",y.fnUnicode),t.POSTGRES_FUNCTIONS.add("ifnull",o.fnIfnull),t.POSTGRES_FUNCTIONS.add("trunc",g.fnTrunc),t.POSTGRES_FUNCTIONS.add("substr",m.fnSubstr),t.POSTGRES_FUNCTIONS.add("replace",x.fnReplace),t.POSTGRES_FUNCTIONS.add("ends_with",i.fnEndsWith),t.POSTGRES_FUNCTIONS.add("string_agg",n.fnStringAgg),t.POSTGRES_FUNCTIONS.add("string_agg_distinct",n.fnStringAggDistinct),t.POSTGRES_FUNCTIONS.add("log",l.fnLog),t.POSTGRES_FUNCTIONS.seal()}(bM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;var e=bM;Object.defineProperty(t,"POSTGRES_FUNCTIONS",{enumerable:!0,get:function(){return e.POSTGRES_FUNCTIONS}})}(CM),Object.defineProperty(BA,"__esModule",{value:!0}),BA.PostgresDialect=void 0;const Xhe=Vt,Mt=ne,RM=CM,lp=lf,Jhe={day_of_week:"dow",day_of_year:"doy"},Zhe={year:"years",month:"months",week:"weeks",day:"days",hour:"hours",minute:"mins",second:"secs"},OM={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},e2e={"character varying":{type:"string"},name:{type:"string"},text:{type:"string"},date:{type:"date"},integer:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"double precision":{type:"number",numberType:"float"},"timestamp without time zone":{type:"timestamp"},oid:{type:"string"},boolean:{type:"boolean"},timestamp:{type:"timestamp"},'"char"':{type:"string"},character:{type:"string"},smallint:{type:"number",numberType:"integer"},xid:{type:"string"},real:{type:"number",numberType:"float"},interval:{type:"string"},inet:{type:"string"},regtype:{type:"string"},numeric:{type:"number",numberType:"float"},bytea:{type:"string"},pg_ndistinct:{type:"number",numberType:"integer"},varchar:{type:"string"}};class t2e extends lp.Dialect{constructor(){super(...arguments),this.name="postgres",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="NUMERIC",this.udfPrefix="pg_temp.__udf",this.hasFinalStage=!0,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.globalFunctions=RM.POSTGRES_FUNCTIONS,this.supportsNesting=!0,this.readsNestedData=!1}quoteTablePath(e){return e.split(".").map(n=>`"${n}"`).join(".")}sqlGroupSetTable(e){return`CROSS JOIN GENERATE_SERIES(0,${e},1) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`
|
|
118
118
|
${n.sqlExpression}${n.type==="number"?`::${this.defaultNumberType}`:""} as ${n.sqlOutputName}`).join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(TO_JSONB((ARRAY_AGG((SELECT TO_JSONB(__x) FROM (SELECT ${this.mapFields(n)}
|
|
119
119
|
) as __x) ${r} ) FILTER (WHERE group_set=${e}))${s}),'[]'::JSONB)`}sqlAnyValueTurtle(e,n){const r=n.map(i=>`${i.sqlExpression} as ${i.sqlOutputName}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN STRUCT(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(${e}) FILTER (WHERE group_set=${n} AND ${e} IS NOT NULL))[1] as ${r}`}sqlCoaleseMeasuresInline(e,n){return`TO_JSONB((ARRAY_AGG((SELECT __x FROM (SELECT ${this.mapFields(n)}) as __x)) FILTER (WHERE group_set=${e}))[1])`}sqlUnnestAlias(e,n,r,i,s,o){return s?i?`LEFT JOIN UNNEST(ARRAY((SELECT jsonb_build_object('__row_id', row_number() over (), 'value', v) FROM UNNEST(${e}) as v))) as ${n} ON true`:`LEFT JOIN UNNEST(ARRAY((SELECT jsonb_build_object('value', v) FROM UNNEST(${e}) as v))) as ${n} ON true`:i?`LEFT JOIN UNNEST(ARRAY((SELECT jsonb_build_object('__row_number', row_number() over())|| __xx::jsonb as b FROM JSONB_ARRAY_ELEMENTS(${e}) __xx ))) as ${n} ON true`:`LEFT JOIN JSONB_ARRAY_ELEMENTS(${e}) as ${n} ON true`}sqlSumDistinctHashedKey(e){return`('x' || MD5(${e}::varchar))::bit(64)::bigint::DECIMAL(65,0) *18446744073709551616 + ('x' || SUBSTR(MD5(${e}::varchar),17))::bit(64)::bigint::DECIMAL(65,0)`}sqlGenerateUUID(){return"GEN_RANDOM_UUID()"}sqlFieldReference(e,n,r,i,s){let o=`(${e}->>'${n}')`;if(i){switch(r){case"string":break;case"number":o=`${o}::double precision`;break;case"struct":o=`${o}::jsonb`;break}return o}else return`${e}."${n}"`}sqlUnnestPipelineHead(e,n){return e?`UNNEST(ARRAY((SELECT ${n})))`:`JSONB_ARRAY_ELEMENTS(${n})`}sqlCreateFunction(e,n){return`CREATE FUNCTION ${e}(JSONB) RETURNS JSONB AS $$
|
|
120
120
|
${(0,Xhe.indent)(n)}
|
|
121
121
|
$$ LANGUAGE SQL;
|
|
122
122
|
`}sqlCreateFunctionCombineLastStage(e){return`SELECT JSONB_AGG(__stage0) FROM ${e}
|
|
123
|
-
`}sqlFinalStage(e,n){return`SELECT row_to_json(finalStage) as row FROM ${e} AS finalStage`}sqlSelectAliasAsStruct(e){return`ROW(${e})`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlNow(){return(0,
|
|
123
|
+
`}sqlFinalStage(e,n){return`SELECT row_to_json(finalStage) as row FROM ${e} AS finalStage`}sqlSelectAliasAsStruct(e){return`ROW(${e})`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlNow(){return(0,Mt.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,Mt.mkExpr)`${n.value} + INTERVAL '1' DAY`:n.value;if(n.valueType==="timestamp"){const u=(0,lp.qtz)(e);if(u){const a=(0,Mt.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`;let l=(0,Mt.mkExpr)`DATE_TRUNC('${r}', ${a})`;l=(0,Mt.mkExpr)`${l}::TIMESTAMP`;const c=(0,Mt.mkExpr)`${l} AT TIME ZONE '${u}'`;return(0,Mt.mkExpr)`(${c})::TIMESTAMP`}}let o=(0,Mt.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,Mt.mkExpr)`(${o} - INTERVAL '1' DAY)`),o}sqlExtract(e,n,r){const i=Jhe[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=(0,lp.qtz)(e);u&&(s=(0,Mt.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`)}const o=(0,Mt.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,Mt.mkExpr)`(${o}+1)`:o}sqlAlterTime(e,n,r,i){i==="quarter"&&(i="month",r=(0,Mt.mkExpr)`${r}*3`);const s=(0,Mt.mkExpr)`make_interval(${Zhe[i]}=>${r})`;return(0,Mt.mkExpr)`((${n.value})${e}${s})`}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=(0,lp.qtz)(e);if(r==="timestamp::date"&&i){const s=(0,Mt.mkExpr)`${n.expr}::TIMESTAMPTZ`;return(0,Mt.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date::timestamp"&&i)return(0,Mt.mkExpr)`CAST((${n.expr})::TIMESTAMP AT TIME ZONE '${i}' AS TIMESTAMP)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw;if(n.safe)throw new Error("Postgres dialect doesn't support Safe Cast");return(0,Mt.mkExpr)`${"CAST"}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,Mt.mkExpr)`(${e} ~ ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||(0,lp.qtz)(e);return s?`TIMESTAMPTZ '${n} ${s}'::TIMESTAMP`:`TIMESTAMP '${n}'`}sqlMeasureTime(e,n,r){let i=e.value,s=n.value;if(OM[r]){i=(0,Mt.mkExpr)`EXTRACT(EPOCH FROM ${i})`,s=(0,Mt.mkExpr)`EXTRACT(EPOCH FROM ${s})`;const o=(0,Mt.mkExpr)`${s}-${i}`;return r==="second"?(0,Mt.mkExpr)`FLOOR(${o})`:(0,Mt.mkExpr)`FLOOR((${o})/${OM[r].toString()}.0)`}throw new Error(`Unknown or unhandled postgres time unit: ${r}`)}sqlSumDistinct(e,n,r){return`(
|
|
124
124
|
SELECT ${r}((a::json->>'f2')::DOUBLE PRECISION) as value
|
|
125
125
|
FROM (
|
|
126
126
|
SELECT UNNEST(array_agg(distinct row_to_json(row(${e},${n}))::text)) a
|
|
@@ -130,7 +130,7 @@ $$ LANGUAGE SQL;
|
|
|
130
130
|
FROM (
|
|
131
131
|
SELECT UNNEST(array_agg(distinct row_to_json(row(${e},${n.join(",")}))::text)) a
|
|
132
132
|
) a
|
|
133
|
-
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,
|
|
133
|
+
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,Mt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Mt.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM_ROWS(${n.rows}))`;if((0,Mt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return RM.POSTGRES_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^([\w\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return e2e[i.trim().toLowerCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}BA.PostgresDialect=t2e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(BA,t)}(hO);var gO={},XA={},NM={},DM={},JA={};Object.defineProperty(JA,"__esModule",{value:!0}),JA.fnByteLength=void 0;const sh=ge;function n2e(){return[(0,sh.overload)((0,sh.minScalar)("number"),[(0,sh.param)("value",(0,sh.anyExprType)("string"))],(0,sh.sql)`(BIT_LENGTH(${(0,sh.arg)("value")}) / 8)`)]}JA.fnByteLength=n2e;var ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.fnDiv=void 0;const Sf=ge;function r2e(){const t=(0,Sf.makeParam)("dividend",(0,Sf.anyExprType)("number")),e=(0,Sf.makeParam)("divisor",(0,Sf.anyExprType)("number"));return[(0,Sf.overload)((0,Sf.minScalar)("number"),[t.param,e.param],(0,Sf.sql)`CASE WHEN ${t.arg} / ${e.arg} < 0 THEN CEIL(${t.arg} / ${e.arg}) ELSE FLOOR(${t.arg} / ${e.arg}) END`)]}ZA.fnDiv=r2e;var ev={};Object.defineProperty(ev,"__esModule",{value:!0}),ev.fnEndsWith=void 0;const _f=ge;function i2e(){const t=(0,_f.makeParam)("value",(0,_f.anyExprType)("string")),e=(0,_f.makeParam)("suffix",(0,_f.anyExprType)("string"));return[(0,_f.overload)((0,_f.minScalar)("boolean"),[t.param,e.param],(0,_f.sql)`COALESCE(SUFFIX(${t.arg}, ${e.arg}), false)`)]}ev.fnEndsWith=i2e;var oh={};Object.defineProperty(oh,"__esModule",{value:!0}),oh.fnLeast=oh.fnGreatest=void 0;const Va=ge,s2e=["string","number","timestamp","date","json"];function FM(t){return s2e.map(e=>(0,Va.overload)((0,Va.minScalar)(e),[(0,Va.params)("values",(0,Va.anyExprType)(e))],[(0,Va.sqlFragment)("CASE WHEN LEN(LIST_FILTER([",(0,Va.spread)((0,Va.arg)("values")),`], x -> x is null)) > 0 THEN NULL ELSE ${t}(`,(0,Va.spread)((0,Va.arg)("values")),") END")]))}const o2e=()=>FM("GREATEST");oh.fnGreatest=o2e;const u2e=()=>FM("LEAST");oh.fnLeast=u2e;var tv={};Object.defineProperty(tv,"__esModule",{value:!0}),tv.fnIsInf=void 0;const uh=ge;function a2e(){return[(0,uh.overload)((0,uh.minScalar)("boolean"),[(0,uh.param)("value",(0,uh.anyExprType)("number"))],(0,uh.sql)`COALESCE(ISINF(${(0,uh.arg)("value")}), false)`)]}tv.fnIsInf=a2e;var nv={};Object.defineProperty(nv,"__esModule",{value:!0}),nv.fnIsNan=void 0;const ah=ge;function l2e(){return[(0,ah.overload)((0,ah.minScalar)("boolean"),[(0,ah.param)("value",(0,ah.anyExprType)("number"))],(0,ah.sql)`COALESCE(ISNAN(${(0,ah.arg)("value")}), false)`)]}nv.fnIsNan=l2e;var rv={};Object.defineProperty(rv,"__esModule",{value:!0}),rv.fnLog=void 0;const Cf=ge;function c2e(){const t=(0,Cf.makeParam)("value",(0,Cf.anyExprType)("number")),e=(0,Cf.makeParam)("base",(0,Cf.anyExprType)("number"));return[(0,Cf.overload)((0,Cf.minScalar)("number"),[t.param,e.param],(0,Cf.sql)`(LN(${t.arg}) / LN(${e.arg}))`)]}rv.fnLog=c2e;var iv={};Object.defineProperty(iv,"__esModule",{value:!0}),iv.fnRand=void 0;const mO=ge;function f2e(){return[(0,mO.overload)((0,mO.minScalar)("number"),[],(0,mO.sql)`RANDOM()`)]}iv.fnRand=f2e;var sv={};Object.defineProperty(sv,"__esModule",{value:!0}),sv.fnReplace=void 0;const Xi=ge;function x2e(){const t=(0,Xi.makeParam)("value",(0,Xi.anyExprType)("string")),e=(0,Xi.makeParam)("pattern",(0,Xi.anyExprType)("string")),n=(0,Xi.makeParam)("pattern",(0,Xi.anyExprType)("regular expression")),r=(0,Xi.makeParam)("replacement",(0,Xi.anyExprType)("string"));return[(0,Xi.overload)((0,Xi.minScalar)("string"),[t.param,e.param,r.param],(0,Xi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Xi.overload)((0,Xi.minScalar)("string"),[t.param,n.param,r.param],(0,Xi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}sv.fnReplace=x2e;var ov={};Object.defineProperty(ov,"__esModule",{value:!0}),ov.fnTrunc=void 0;const Ru=ge;function d2e(){const t=(0,Ru.makeParam)("value",(0,Ru.anyExprType)("number")),e=(0,Ru.makeParam)("precision",(0,Ru.anyExprType)("number"));return[(0,Ru.overload)((0,Ru.minScalar)("number"),[t.param],(0,Ru.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Ru.overload)((0,Ru.minScalar)("number"),[t.param,e.param],(0,Ru.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}ov.fnTrunc=d2e;var uv={};Object.defineProperty(uv,"__esModule",{value:!0}),uv.fnUnicode=void 0;const cp=ge;function h2e(){const t=(0,cp.makeParam)("value",(0,cp.anyExprType)("string"));return[(0,cp.overload)((0,cp.minScalar)("number"),[t.param],(0,cp.sql)`CASE WHEN ${t.arg} = '' THEN 0 ELSE UNICODE(${t.arg}) END`)]}uv.fnUnicode=h2e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;const e=cf,n=JA,r=ZA,i=ev,s=oh,o=tv,u=nv,a=rv,l=iv,c=sv,f=ov,x=uv;t.DUCKDB_FUNCTIONS=e.FUNCTIONS.clone(),t.DUCKDB_FUNCTIONS.add("trunc",f.fnTrunc),t.DUCKDB_FUNCTIONS.add("rand",l.fnRand),t.DUCKDB_FUNCTIONS.add("is_nan",u.fnIsNan),t.DUCKDB_FUNCTIONS.add("is_inf",o.fnIsInf),t.DUCKDB_FUNCTIONS.add("greatest",s.fnGreatest),t.DUCKDB_FUNCTIONS.add("least",s.fnLeast),t.DUCKDB_FUNCTIONS.add("div",r.fnDiv),t.DUCKDB_FUNCTIONS.add("byte_length",n.fnByteLength),t.DUCKDB_FUNCTIONS.add("unicode",x.fnUnicode),t.DUCKDB_FUNCTIONS.add("replace",c.fnReplace),t.DUCKDB_FUNCTIONS.add("ends_with",i.fnEndsWith),t.DUCKDB_FUNCTIONS.add("log",a.fnLog),t.DUCKDB_FUNCTIONS.seal()}(DM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;var e=DM;Object.defineProperty(t,"DUCKDB_FUNCTIONS",{enumerable:!0,get:function(){return e.DUCKDB_FUNCTIONS}})}(NM),Object.defineProperty(XA,"__esModule",{value:!0}),XA.DuckDBDialect=void 0;const qt=ne,p2e=Vt,g2e=NM,lh=lf,wM="-- hack: split on this",m2e={day_of_week:"dow",day_of_year:"doy"},y2e={BIGINT:{type:"number",numberType:"integer"},INTEGER:{type:"number",numberType:"integer"},TINYINT:{type:"number",numberType:"integer"},SMALLINT:{type:"number",numberType:"integer"},UBIGINT:{type:"number",numberType:"integer"},UINTEGER:{type:"number",numberType:"integer"},UTINYINT:{type:"number",numberType:"integer"},USMALLINT:{type:"number",numberType:"integer"},HUGEINT:{type:"number",numberType:"integer"},DOUBLE:{type:"number",numberType:"float"},FLOAT:{type:"number",numberType:"float"},VARCHAR:{type:"string"},DATE:{type:"date"},TIMESTAMP:{type:"timestamp"},TIME:{type:"string"},DECIMAL:{type:"number",numberType:"float"},BOOLEAN:{type:"boolean"}};class E2e extends lh.Dialect{constructor(){super(...arguments),this.name="duckdb",this.defaultNumberType="DOUBLE",this.defaultDecimalType="NUMERIC",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0}get udfPrefix(){return`__udf${Math.floor(Math.random()*1e5)}`}quoteTablePath(e){return e.match(/[/*:]/)?`'${e}'`:e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT UNNEST(GENERATE_SERIES(0,${e},1)) as group_set ) as group_set`}sqlAnyValue(e,n){return`FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`}sqlLiteralNumber(e){return e.includes(".")?`${e}::${this.defaultNumberType}`:e}mapFields(e){return e.join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(LIST({${n.map(u=>`
|
|
134
134
|
${u.sqlOutputName}: ${u.sqlExpression}`).join(", ")}} ${r}) FILTER (WHERE group_set=${e})${s},[])`}sqlAnyValueTurtle(e,n){const r=n.map(i=>`${i.sqlExpression} as ${i.sqlOutputName}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN STRUCT_PACK(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=n.map(s=>`${s.sqlOutputName}: ${s.sqlExpression} `).join(", "),i=n.map(s=>`${s.sqlOutputName}: NULL`).join(", ");return`COALESCE(FIRST({${r}}) FILTER(WHERE group_set=${e}), {${i}})`}sqlUnnestAlias(e,n,r,i,s,o){return this.unnestWithNumbers?`LEFT JOIN (select UNNEST(generate_series(1,
|
|
135
135
|
${o?"100000":`array_length(${e})`},
|
|
136
136
|
1)) as __row_id) as ${n} ON ${n}.__row_id <= array_length(${e})`:i?`LEFT JOIN LATERAL (SELECT UNNEST(GENERATE_SERIES(1, length(${e}),1)) as __row_id, UNNEST(${e}), 1 as ignoreme) as ${n}_outer(__row_id, ${n},ignoreme) ON ${n}_outer.ignoreme=1`:`LEFT JOIN LATERAL (SELECT UNNEST(${e}), 1 as ignoreme) as ${n}_outer(${n},ignoreme) ON ${n}_outer.ignoreme=1`}sqlSumDistinctHashedKey(e){return"uses sumDistinctFunction, should not be called"}sqlGenerateUUID(){return"GEN_RANDOM_UUID()"}sqlDateToString(e){return`(${e})::date::varchar`}sqlFieldReference(e,n,r,i,s){return!this.unnestWithNumbers&&n==="__row_id"?`${e}_outer.__row_id`:s?e:`${e}.${this.sqlMaybeQuoteIdentifier(n)}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`(SELECT UNNEST(${r}) as base)`}sqlCreateFunction(e,n){return`DROP MACRO IF EXISTS ${e};
|
|
@@ -140,7 +140,7 @@ ${(0,p2e.indent)(n)}
|
|
|
140
140
|
);
|
|
141
141
|
${wM}
|
|
142
142
|
`}sqlCreateFunctionCombineLastStage(e,n){return`SELECT LIST(STRUCT_PACK(${n.map(r=>this.sqlMaybeQuoteIdentifier(r.sqlOutputName)).join(",")})) FROM ${e}
|
|
143
|
-
`}sqlSelectAliasAsStruct(e,n){return`STRUCT_PACK(${n.map(r=>`${e}.${r.sqlOutputName}`).join(", ")})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlMeasureTime(e,n,r){let i=e.value,s=n.value;return(0,lh.inDays)(r)||(e.valueType==="date"&&(i=(0,
|
|
143
|
+
`}sqlSelectAliasAsStruct(e,n){return`STRUCT_PACK(${n.map(r=>`${e}.${r.sqlOutputName}`).join(", ")})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlMeasureTime(e,n,r){let i=e.value,s=n.value;return(0,lh.inDays)(r)||(e.valueType==="date"&&(i=(0,qt.mkExpr)`(${i})::TIMESTAMP`),n.valueType==="date"&&(s=(0,qt.mkExpr)`(${s})::TIMESTAMP`)),(0,qt.mkExpr)`DATE_SUB('${r}',${i},${s})`}sqlNow(){return(0,qt.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,qt.mkExpr)`${n.value} + INTERVAL 1 DAY`:n.value;if(n.valueType==="timestamp"){const u=(0,lh.qtz)(e);if(u){const a=(0,qt.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`;let l=(0,qt.mkExpr)`DATE_TRUNC('${r}', ${a})`;l=(0,qt.mkExpr)`${l}::TIMESTAMP`;const c=(0,qt.mkExpr)`${l} AT TIME ZONE '${u}'`;return(0,qt.mkExpr)`(${c})::TIMESTAMP`}}let o=(0,qt.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,qt.mkExpr)`(${o} - INTERVAL 1 DAY)`),o}sqlExtract(e,n,r){const i=m2e[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=(0,lh.qtz)(e);u&&(s=(0,qt.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`)}const o=(0,qt.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,qt.mkExpr)`(${o}+1)`:o}sqlAlterTime(e,n,r,i){i==="quarter"&&(i="month",r=(0,qt.mkExpr)`${r}*3`),i==="week"&&(i="day",r=(0,qt.mkExpr)`${r}*7`);const s=(0,qt.mkExpr)`INTERVAL (${r}) ${i}`;return(0,qt.mkExpr)`${n.value} ${e} ${s}`}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=(0,lh.qtz)(e);if(r==="timestamp::date"&&i){const s=(0,qt.mkExpr)`${n.expr}::TIMESTAMPTZ`;return(0,qt.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date::timestamp"&&i)return(0,qt.mkExpr)`CAST((${n.expr})::TIMESTAMP AT TIME ZONE '${i}' AS TIMESTAMP)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"TRY_CAST":"CAST";return(0,qt.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,qt.mkExpr)`REGEXP_MATCHES(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||(0,lh.qtz)(e);return s?`TIMESTAMPTZ '${n} ${s}'::TIMESTAMP`:`TIMESTAMP '${n}'`}sqlSumDistinct(e,n,r){return`(
|
|
144
144
|
SELECT ${r}(a.val) as value
|
|
145
145
|
FROM (
|
|
146
146
|
SELECT UNNEST(list(distinct {key:${e}, val: ${n}})) a
|
|
@@ -150,7 +150,7 @@ ${wM}
|
|
|
150
150
|
FROM (
|
|
151
151
|
SELECT UNNEST(list(distinct {key:${e}, ${n.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
|
|
152
152
|
)
|
|
153
|
-
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,Ht.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Ht.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,Ht.isSamplingPercent)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return g2e.DUCKDB_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return y2e[i.toUpperCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}XA.DuckDBDialect=E2e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(XA,t)}(gO);var yO={},av={},LM={},IM={},lv={};Object.defineProperty(lv,"__esModule",{value:!0}),lv.fnChr=void 0;const fp=ge;function A2e(){const t=(0,fp.makeParam)("value",(0,fp.anyExprType)("number"));return[(0,fp.overload)((0,fp.minScalar)("string"),[t.param],(0,fp.sql)`COALESCE(CHR(${t.arg}), '')`)]}lv.fnChr=A2e;var cv={};Object.defineProperty(cv,"__esModule",{value:!0}),cv.fnDiv=void 0;const bf=ge;function v2e(){const t=(0,bf.makeParam)("dividend",(0,bf.anyExprType)("number")),e=(0,bf.makeParam)("divisor",(0,bf.anyExprType)("number"));return[(0,bf.overload)((0,bf.minScalar)("number"),[t.param,e.param],(0,bf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}cv.fnDiv=v2e;var fv={};Object.defineProperty(fv,"__esModule",{value:!0}),fv.fnIsInf=void 0;const xp=ge;function S2e(){const t=(0,xp.makeParam)("value",(0,xp.anyExprType)("number"));return[(0,xp.overload)((0,xp.minScalar)("boolean"),[t.param],(0,xp.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}fv.fnIsInf=S2e;var xv={};Object.defineProperty(xv,"__esModule",{value:!0}),xv.fnIsNan=void 0;const ch=ge;function _2e(){return[(0,ch.overload)((0,ch.minScalar)("boolean"),[(0,ch.param)("value",(0,ch.anyExprType)("number"))],(0,ch.sql)`COALESCE(${(0,ch.arg)("value")} = 'NAN'::FLOAT, false)`)]}xv.fnIsNan=_2e;var fh={};Object.defineProperty(fh,"__esModule",{value:!0}),fh.fnByteLength=fh.fnLength=void 0;const to=ge;function C2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`LENGTH(${(0,to.arg)("value")})`)]}fh.fnLength=C2e;function b2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`CEIL(BIT_LENGTH(${(0,to.arg)("value")}) / 8)`)]}fh.fnByteLength=b2e;var dv={};Object.defineProperty(dv,"__esModule",{value:!0}),dv.fnLog=void 0;const Tf=ge;function T2e(){const t=(0,Tf.makeParam)("value",(0,Tf.anyExprType)("number")),e=(0,Tf.makeParam)("base",(0,Tf.anyExprType)("number"));return[(0,Tf.overload)((0,Tf.minScalar)("number"),[t.param,e.param],(0,Tf.sql)`LOG(${e.arg}, ${t.arg})`)]}dv.fnLog=T2e;var hv={};Object.defineProperty(hv,"__esModule",{value:!0}),hv.fnRand=void 0;const EO=ge;function R2e(){return[(0,EO.overload)((0,EO.minScalar)("number"),[],(0,EO.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}hv.fnRand=R2e;var pv={};Object.defineProperty(pv,"__esModule",{value:!0}),pv.fnRegexpExtract=void 0;const Rf=ge;function O2e(){const t=(0,Rf.makeParam)("value",(0,Rf.anyExprType)("string")),e=(0,Rf.makeParam)("pattern",(0,Rf.anyExprType)("regular expression"));return[(0,Rf.overload)((0,Rf.minScalar)("string"),[t.param,e.param],(0,Rf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}pv.fnRegexpExtract=O2e;var xh={};Object.defineProperty(xh,"__esModule",{value:!0}),xh.fnEndsWith=xh.fnStartsWith=void 0;const Ji=ge;function N2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("prefix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnStartsWith=N2e;function D2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("suffix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnEndsWith=D2e;var gv={};Object.defineProperty(gv,"__esModule",{value:!0}),gv.fnStrpos=void 0;const Of=ge;function F2e(){const t=(0,Of.makeParam)("test_string",(0,Of.anyExprType)("string")),e=(0,Of.makeParam)("search_string",(0,Of.anyExprType)("string"));return[(0,Of.overload)((0,Of.minScalar)("number"),[t.param,e.param],(0,Of.sql)`POSITION(${e.arg}, ${t.arg})`)]}gv.fnStrpos=F2e;var mv={};Object.defineProperty(mv,"__esModule",{value:!0}),mv.fnTrunc=void 0;const Ou=ge;function w2e(){const t=(0,Ou.makeParam)("value",(0,Ou.anyExprType)("number")),e=(0,Ou.makeParam)("precision",(0,Ou.anyExprType)("number"));return[(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param],(0,Ou.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param,e.param],(0,Ou.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}mv.fnTrunc=w2e;var dh={};Object.defineProperty(dh,"__esModule",{value:!0}),dh.fnStringAggDistinct=dh.fnStringAgg=void 0;const Cn=ge;function L2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAgg=L2e;function I2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAggDistinct=I2e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=cf,n=lv,r=cv,i=fv,s=xv,o=fh,u=dv,a=hv,l=pv,c=xh,f=gv,x=mv,h=dh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}(IM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=IM;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(LM),Object.defineProperty(av,"__esModule",{value:!0}),av.SnowflakeDialect=void 0;const $2e=Vt,cr=ne,$M=LM,dp=lf,B2e={day_of_week:"dayofweek",day_of_year:"dayofyear"},k2e={varchar:{type:"string"},text:{type:"string"},string:{type:"string"},char:{type:"string"},character:{type:"string"},nvarchar:{type:"string"},nvarchar2:{type:"string"},"char varying":{type:"string"},"nchar varying":{type:"string"},number:{type:"number",numberType:"integer"},numeric:{type:"number",numberType:"integer"},decimal:{type:"number",numberType:"integer"},dec:{type:"number",numberType:"integer"},integer:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},smallint:{type:"number",numberType:"integer"},tinyint:{type:"number",numberType:"integer"},byteint:{type:"number",numberType:"integer"},float:{type:"number",numberType:"float"},float4:{type:"number",numberType:"float"},float8:{type:"number",numberType:"float"},double:{type:"number",numberType:"float"},"double precision":{type:"number",numberType:"float"},real:{type:"number",numberType:"float"},boolean:{type:"boolean"},date:{type:"date"},timestamp:{type:"timestamp"},timestampntz:{type:"timestamp"},timestamp_ntz:{type:"timestamp"},"timestamp without time zone":{type:"timestamp"},timestamptz:{type:"timestamp"},timestamp_tz:{type:"timestamp"},"timestamp with time zone":{type:"timestamp"}};class P2e extends dp.Dialect{constructor(){super(...arguments),this.name="snowflake",this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!1,this.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.globalFunctions=$M.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!1}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e+1}))))`}sqlAnyValue(e,n){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${n} END) WITHIN GROUP (ORDER BY ${n} ASC NULLS LAST))[0]`}mapFields(e){return e.map(n=>`
|
|
153
|
+
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,qt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,qt.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,qt.isSamplingPercent)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return g2e.DUCKDB_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return y2e[i.toUpperCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}XA.DuckDBDialect=E2e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(XA,t)}(gO);var yO={},av={},LM={},IM={},lv={};Object.defineProperty(lv,"__esModule",{value:!0}),lv.fnChr=void 0;const fp=ge;function A2e(){const t=(0,fp.makeParam)("value",(0,fp.anyExprType)("number"));return[(0,fp.overload)((0,fp.minScalar)("string"),[t.param],(0,fp.sql)`COALESCE(CHR(${t.arg}), '')`)]}lv.fnChr=A2e;var cv={};Object.defineProperty(cv,"__esModule",{value:!0}),cv.fnDiv=void 0;const bf=ge;function v2e(){const t=(0,bf.makeParam)("dividend",(0,bf.anyExprType)("number")),e=(0,bf.makeParam)("divisor",(0,bf.anyExprType)("number"));return[(0,bf.overload)((0,bf.minScalar)("number"),[t.param,e.param],(0,bf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}cv.fnDiv=v2e;var fv={};Object.defineProperty(fv,"__esModule",{value:!0}),fv.fnIsInf=void 0;const xp=ge;function S2e(){const t=(0,xp.makeParam)("value",(0,xp.anyExprType)("number"));return[(0,xp.overload)((0,xp.minScalar)("boolean"),[t.param],(0,xp.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}fv.fnIsInf=S2e;var xv={};Object.defineProperty(xv,"__esModule",{value:!0}),xv.fnIsNan=void 0;const ch=ge;function _2e(){return[(0,ch.overload)((0,ch.minScalar)("boolean"),[(0,ch.param)("value",(0,ch.anyExprType)("number"))],(0,ch.sql)`COALESCE(${(0,ch.arg)("value")} = 'NAN'::FLOAT, false)`)]}xv.fnIsNan=_2e;var fh={};Object.defineProperty(fh,"__esModule",{value:!0}),fh.fnByteLength=fh.fnLength=void 0;const to=ge;function C2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`LENGTH(${(0,to.arg)("value")})`)]}fh.fnLength=C2e;function b2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`CEIL(BIT_LENGTH(${(0,to.arg)("value")}) / 8)`)]}fh.fnByteLength=b2e;var dv={};Object.defineProperty(dv,"__esModule",{value:!0}),dv.fnLog=void 0;const Tf=ge;function T2e(){const t=(0,Tf.makeParam)("value",(0,Tf.anyExprType)("number")),e=(0,Tf.makeParam)("base",(0,Tf.anyExprType)("number"));return[(0,Tf.overload)((0,Tf.minScalar)("number"),[t.param,e.param],(0,Tf.sql)`LOG(${e.arg}, ${t.arg})`)]}dv.fnLog=T2e;var hv={};Object.defineProperty(hv,"__esModule",{value:!0}),hv.fnRand=void 0;const EO=ge;function R2e(){return[(0,EO.overload)((0,EO.minScalar)("number"),[],(0,EO.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}hv.fnRand=R2e;var pv={};Object.defineProperty(pv,"__esModule",{value:!0}),pv.fnRegexpExtract=void 0;const Rf=ge;function O2e(){const t=(0,Rf.makeParam)("value",(0,Rf.anyExprType)("string")),e=(0,Rf.makeParam)("pattern",(0,Rf.anyExprType)("regular expression"));return[(0,Rf.overload)((0,Rf.minScalar)("string"),[t.param,e.param],(0,Rf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}pv.fnRegexpExtract=O2e;var xh={};Object.defineProperty(xh,"__esModule",{value:!0}),xh.fnEndsWith=xh.fnStartsWith=void 0;const Ji=ge;function N2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("prefix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnStartsWith=N2e;function D2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("suffix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnEndsWith=D2e;var gv={};Object.defineProperty(gv,"__esModule",{value:!0}),gv.fnStrpos=void 0;const Of=ge;function F2e(){const t=(0,Of.makeParam)("test_string",(0,Of.anyExprType)("string")),e=(0,Of.makeParam)("search_string",(0,Of.anyExprType)("string"));return[(0,Of.overload)((0,Of.minScalar)("number"),[t.param,e.param],(0,Of.sql)`POSITION(${e.arg}, ${t.arg})`)]}gv.fnStrpos=F2e;var mv={};Object.defineProperty(mv,"__esModule",{value:!0}),mv.fnTrunc=void 0;const Ou=ge;function w2e(){const t=(0,Ou.makeParam)("value",(0,Ou.anyExprType)("number")),e=(0,Ou.makeParam)("precision",(0,Ou.anyExprType)("number"));return[(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param],(0,Ou.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param,e.param],(0,Ou.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}mv.fnTrunc=w2e;var dh={};Object.defineProperty(dh,"__esModule",{value:!0}),dh.fnStringAggDistinct=dh.fnStringAgg=void 0;const Cn=ge;function L2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAgg=L2e;function I2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAggDistinct=I2e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=cf,n=lv,r=cv,i=fv,s=xv,o=fh,u=dv,a=hv,l=pv,c=xh,f=gv,x=mv,h=dh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}(IM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=IM;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(LM),Object.defineProperty(av,"__esModule",{value:!0}),av.SnowflakeDialect=void 0;const $2e=Vt,cr=ne,$M=LM,dp=lf,B2e={day_of_week:"dayofweek",day_of_year:"dayofyear"},k2e={varchar:{type:"string"},text:{type:"string"},string:{type:"string"},char:{type:"string"},character:{type:"string"},nvarchar:{type:"string"},nvarchar2:{type:"string"},"char varying":{type:"string"},"nchar varying":{type:"string"},number:{type:"number",numberType:"integer"},numeric:{type:"number",numberType:"integer"},decimal:{type:"number",numberType:"integer"},dec:{type:"number",numberType:"integer"},integer:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},smallint:{type:"number",numberType:"integer"},tinyint:{type:"number",numberType:"integer"},byteint:{type:"number",numberType:"integer"},float:{type:"number",numberType:"float"},float4:{type:"number",numberType:"float"},float8:{type:"number",numberType:"float"},double:{type:"number",numberType:"float"},"double precision":{type:"number",numberType:"float"},real:{type:"number",numberType:"float"},boolean:{type:"boolean"},date:{type:"date"},timestamp:{type:"timestamp"},timestampntz:{type:"timestamp"},timestamp_ntz:{type:"timestamp"},"timestamp without time zone":{type:"timestamp"},timestamptz:{type:"timestamp"},timestamp_tz:{type:"timestamp"},"timestamp with time zone":{type:"timestamp"}};class P2e extends dp.Dialect{constructor(){super(...arguments),this.name="snowflake",this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!1,this.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.globalFunctions=$M.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!1}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e+1}))))`}sqlAnyValue(e,n){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${n} END) WITHIN GROUP (ORDER BY ${n} ASC NULLS LAST))[0]`}mapFields(e){return e.map(n=>`
|
|
154
154
|
${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){return s?`,LATERAL FLATTEN(INPUT => ${e}) AS ${n}_1, LATERAL (SELECT ${n}_1.INDEX, object_construct('value', ${n}_1.value) as value ) as ${n}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${n}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r}) * 0.000000001`}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i,s){if(n==="__row_id")return`${e}.INDEX::varchar`;if(i){let o=r;return r==="string"?o="varchar":r==="struct"&&(o="variant"),`${e}.value:"${n}"::${o}`}else return`${e}."${n}"`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,n){return`
|
|
155
155
|
CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
|
|
156
156
|
AS (
|
|
@@ -168,7 +168,7 @@ ${(0,$2e.indent)(n)}
|
|
|
168
168
|
EXTRACT('epoch_${i}', ${n.value}) - EXTRACT('epoch_${i}', ${e.value}),
|
|
169
169
|
'1970-01-01 00:00:00'::TIMESTAMP_NTZ
|
|
170
170
|
)
|
|
171
|
-
)`}sqlRegexpMatch(e,n){return(0,cr.mkExpr)`(REGEXP_INSTR(${e}, ${n}) != 0)`}sqlSampleTable(e,n){if(n!==void 0){if((0,cr.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,cr.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.rows} ROWS))`;if((0,cr.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.percent}))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return $M.SNOWFLAKE_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^([\w\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return k2e[i.trim().toLowerCase()]}castToString(e){return`TO_VARCHAR(${e})`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}av.SnowflakeDialect=P2e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(av,t)}(yO);var AO={},yv={},BM={},kM={},Ev={};Object.defineProperty(Ev,"__esModule",{value:!0}),Ev.fnTrunc=void 0;const Nu=ge;function M2e(){const t=(0,Nu.makeParam)("value",(0,Nu.anyExprType)("number")),e=(0,Nu.makeParam)("precision",(0,Nu.anyExprType)("number"));return[(0,Nu.overload)((0,Nu.minScalar)("number"),[t.param],(0,Nu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Nu.overload)((0,Nu.minScalar)("number"),[t.param,e.param],(0,Nu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}Ev.fnTrunc=M2e;var Av={};Object.defineProperty(Av,"__esModule",{value:!0}),Av.fnLog=void 0;const Nf=ge;function j2e(){const t=(0,Nf.makeParam)("value",(0,Nf.anyExprType)("number")),e=(0,Nf.makeParam)("base",(0,Nf.anyExprType)("number"));return[(0,Nf.overload)((0,Nf.minScalar)("number"),[t.param,e.param],(0,Nf.sql)`LOG(${e.arg},${t.arg})`)]}Av.fnLog=j2e;var vv={};Object.defineProperty(vv,"__esModule",{value:!0}),vv.fnIfnull=void 0;const Ya=ge,U2e=["string","number","timestamp","date","json"];function q2e(){return U2e.map(t=>(0,Ya.overload)((0,Ya.minScalar)(t),[(0,Ya.param)("value",(0,Ya.anyExprType)(t)),(0,Ya.param)("default",(0,Ya.anyExprType)(t))],(0,Ya.sql)`COALESCE(${(0,Ya.arg)("value")}, ${(0,Ya.arg)("default")})`))}vv.fnIfnull=q2e;var Sv={};Object.defineProperty(Sv,"__esModule",{value:!0}),Sv.fnIsInf=void 0;const hh=ge;function H2e(){return[(0,hh.overload)((0,hh.minScalar)("boolean"),[(0,hh.param)("value",(0,hh.anyExprType)("number"))],(0,hh.sql)`COALESCE(IS_INFINITE(${(0,hh.arg)("value")}), false)`)]}Sv.fnIsInf=H2e;var _v={};Object.defineProperty(_v,"__esModule",{value:!0}),_v.fnConcat=void 0;const Ss=ge;function z2e(){return[(0,Ss.overload)((0,Ss.minScalar)("string"),[],[{type:"dialect",function:"stringLiteral",literal:""}]),(0,Ss.overload)((0,Ss.minScalar)("string"),[(0,Ss.params)("values",(0,Ss.anyExprType)("string"),(0,Ss.anyExprType)("number"),(0,Ss.anyExprType)("date"),(0,Ss.anyExprType)("timestamp"),(0,Ss.anyExprType)("boolean"))],(0,Ss.sql)`CONCAT(${(0,Ss.spread)((0,Ss.arg)("values"),"CAST(","AS VARCHAR)")})`)]}_v.fnConcat=z2e;var Cv={};Object.defineProperty(Cv,"__esModule",{value:!0}),Cv.fnByteLength=void 0;const ph=ge;function Q2e(){return[(0,ph.overload)((0,ph.minScalar)("number"),[(0,ph.param)("value",(0,ph.anyExprType)("string"))],(0,ph.sql)`(LENGTH(CAST(${(0,ph.arg)("value")} AS VARBINARY)))`)]}Cv.fnByteLength=Q2e;var gh={};Object.defineProperty(gh,"__esModule",{value:!0}),gh.fnStringAggDistinct=gh.fnStringAgg=void 0;const bn=ge;function G2e(){const t=(0,bn.makeParam)("value",(0,bn.maxScalar)("string")),e=(0,bn.makeParam)("separator",(0,bn.literal)((0,bn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,bn.overload)((0,bn.minAggregate)("string"),[t.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,bn.overload)((0,bn.minAggregate)("string"),[t.param,e.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}gh.fnStringAgg=G2e;function W2e(){const t=(0,bn.makeParam)("value",(0,bn.maxScalar)("string")),e=(0,bn.makeParam)("separator",(0,bn.literal)((0,bn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,bn.overload)((0,bn.minAggregate)("string"),[t.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,bn.overload)((0,bn.minAggregate)("string"),[t.param,e.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}gh.fnStringAggDistinct=W2e;var p0={};Object.defineProperty(p0,"__esModule",{value:!0}),p0.fnUnicode=p0.fnAscii=p0.fnChr=void 0;const Yn=ge;function V2e(){return[(0,Yn.overload)((0,Yn.minScalar)("string"),[(0,Yn.param)("value",(0,Yn.anyExprType)("number"))],(0,Yn.sql)`CASE WHEN ${(0,Yn.arg)("value")} = 0 THEN '' ELSE CHR(${(0,Yn.arg)("value")}) END`)]}p0.fnChr=V2e;function Y2e(){return[(0,Yn.overload)((0,Yn.minScalar)("number"),[(0,Yn.param)("value",(0,Yn.anyExprType)("string"))],(0,Yn.sql)`CODEPOINT(NULLIF(CAST(${(0,Yn.arg)("value")} as VARCHAR(1)),''))`)]}p0.fnAscii=Y2e;function K2e(){return[(0,Yn.overload)((0,Yn.minScalar)("number"),[(0,Yn.param)("value",(0,Yn.anyExprType)("string"))],(0,Yn.sql)`CODEPOINT(NULLIF(CAST(${(0,Yn.arg)("value")} as VARCHAR(1)),''))`)]}p0.fnUnicode=K2e;var mh={};Object.defineProperty(mh,"__esModule",{value:!0}),mh.fnEndsWith=mh.fnStartsWith=void 0;const Zi=ge;function X2e(){const t=(0,Zi.makeParam)("value",(0,Zi.anyExprType)("string")),e=(0,Zi.makeParam)("prefix",(0,Zi.anyExprType)("string"));return[(0,Zi.overload)((0,Zi.minScalar)("boolean"),[t.param,e.param],(0,Zi.sql)`COALESCE(STARTS_WITH(${t.arg}, ${e.arg}), false)`)]}mh.fnStartsWith=X2e;function J2e(){const t=(0,Zi.makeParam)("value",(0,Zi.anyExprType)("string")),e=(0,Zi.makeParam)("suffix",(0,Zi.anyExprType)("string"));return[(0,Zi.overload)((0,Zi.minScalar)("boolean"),[t.param,e.param],(0,Zi.sql)`COALESCE(STARTS_WITH(REVERSE(CAST(${t.arg} AS VARCHAR)), REVERSE(CAST(${e.arg} AS VARCHAR))), false)`)]}mh.fnEndsWith=J2e;var bv={};Object.defineProperty(bv,"__esModule",{value:!0}),bv.fnDiv=void 0;const Ka=ge;function Z2e(){return[(0,Ka.overload)((0,Ka.minScalar)("number"),[(0,Ka.param)("dividend",(0,Ka.anyExprType)("number")),(0,Ka.param)("divisor",(0,Ka.anyExprType)("number"))],(0,Ka.sql)`FLOOR(${(0,Ka.arg)("dividend")} / ${(0,Ka.arg)("divisor")})`)]}bv.fnDiv=Z2e;var Tv={};Object.defineProperty(Tv,"__esModule",{value:!0}),Tv.fnRepeat=void 0;const Df=ge;function e1e(){const t=(0,Df.makeParam)("value",(0,Df.anyExprType)("string")),e=(0,Df.makeParam)("count",(0,Df.anyExprType)("number"));return[(0,Df.overload)((0,Df.minScalar)("string"),[t.param,e.param],(0,Df.sql)`ARRAY_JOIN(REPEAT(${t.arg}, CASE WHEN ${t.arg} IS NOT NULL THEN ${e.arg} END),'')`)]}Tv.fnRepeat=e1e;var Rv={};Object.defineProperty(Rv,"__esModule",{value:!0}),Rv.fnReverse=void 0;const hp=ge;function t1e(){const t=(0,hp.makeParam)("value",(0,hp.anyExprType)("string"));return[(0,hp.overload)((0,hp.minScalar)("string"),[t.param],(0,hp.sql)`REVERSE(CAST(${t.arg} AS VARCHAR))`)]}Rv.fnReverse=t1e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;const e=cf,n=Ev,r=Av,i=vv,s=Sv,o=_v,u=Cv,a=gh,l=p0,c=mh,f=bv,x=Tv,h=Rv;t.TRINO_FUNCTIONS=e.FUNCTIONS.clone(),t.TRINO_FUNCTIONS.add("trunc",n.fnTrunc),t.TRINO_FUNCTIONS.add("log",r.fnLog),t.TRINO_FUNCTIONS.add("ifnull",i.fnIfnull),t.TRINO_FUNCTIONS.add("is_inf",s.fnIsInf),t.TRINO_FUNCTIONS.add("byte_length",u.fnByteLength),t.TRINO_FUNCTIONS.add("concat",o.fnConcat),t.TRINO_FUNCTIONS.add("string_agg",a.fnStringAgg),t.TRINO_FUNCTIONS.add("string_agg_distinct",a.fnStringAggDistinct),t.TRINO_FUNCTIONS.add("div",f.fnDiv),t.TRINO_FUNCTIONS.add("starts_with",c.fnStartsWith),t.TRINO_FUNCTIONS.add("ends_with",c.fnEndsWith),t.TRINO_FUNCTIONS.add("chr",l.fnChr),t.TRINO_FUNCTIONS.add("ascii",l.fnAscii),t.TRINO_FUNCTIONS.add("unicode",l.fnUnicode),t.TRINO_FUNCTIONS.add("repeat",x.fnRepeat),t.TRINO_FUNCTIONS.add("reverse",h.fnReverse),t.TRINO_FUNCTIONS.seal()}(kM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;var e=kM;Object.defineProperty(t,"TRINO_FUNCTIONS",{enumerable:!0,get:function(){return e.TRINO_FUNCTIONS}})}(BM),Object.defineProperty(yv,"__esModule",{value:!0}),yv.TrinoDialect=void 0;const PM=Vt,Pt=ne,n1e=BM,MM=lf;function r1e(t){return["microsecond","millisecond","second","minute","hour","day"].includes(t)}const i1e={day_of_week:"dow",day_of_year:"doy"};function Ov(t){const e=t.queryTimezone;if(e&&e!=="UTC")return e}const s1e={string:"VARCHAR",number:"DOUBLE"};class o1e extends MM.Dialect{constructor(){super(...arguments),this.name="trino",this.defaultNumberType="DOUBLE",this.defaultDecimalType="DECIMAL",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={enable:!1},this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0,this.cantPartitionWindowFunctionsOnExpressions=!1,this.orderByClause="output_name",this.nullMatchesFunctionSignature=!1,this.supportsSelectReplace=!1,this.supportsComplexFilteredSources=!1,this.supportsTempTables=!1,this.keywords=`
|
|
171
|
+
)`}sqlRegexpMatch(e,n){return(0,cr.mkExpr)`(REGEXP_INSTR(${e}, ${n}) != 0)`}sqlSampleTable(e,n){if(n!==void 0){if((0,cr.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,cr.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.rows} ROWS))`;if((0,cr.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.percent}))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return $M.SNOWFLAKE_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^([\w\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return k2e[i.trim().toLowerCase()]}castToString(e){return`TO_VARCHAR(${e})`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}av.SnowflakeDialect=P2e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(av,t)}(yO);var AO={},yv={},BM={},kM={},Ev={};Object.defineProperty(Ev,"__esModule",{value:!0}),Ev.fnTrunc=void 0;const Nu=ge;function M2e(){const t=(0,Nu.makeParam)("value",(0,Nu.anyExprType)("number")),e=(0,Nu.makeParam)("precision",(0,Nu.anyExprType)("number"));return[(0,Nu.overload)((0,Nu.minScalar)("number"),[t.param],(0,Nu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Nu.overload)((0,Nu.minScalar)("number"),[t.param,e.param],(0,Nu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}Ev.fnTrunc=M2e;var Av={};Object.defineProperty(Av,"__esModule",{value:!0}),Av.fnLog=void 0;const Nf=ge;function j2e(){const t=(0,Nf.makeParam)("value",(0,Nf.anyExprType)("number")),e=(0,Nf.makeParam)("base",(0,Nf.anyExprType)("number"));return[(0,Nf.overload)((0,Nf.minScalar)("number"),[t.param,e.param],(0,Nf.sql)`LOG(${e.arg},${t.arg})`)]}Av.fnLog=j2e;var vv={};Object.defineProperty(vv,"__esModule",{value:!0}),vv.fnIfnull=void 0;const Ya=ge,U2e=["string","number","timestamp","date","json"];function q2e(){return U2e.map(t=>(0,Ya.overload)((0,Ya.minScalar)(t),[(0,Ya.param)("value",(0,Ya.anyExprType)(t)),(0,Ya.param)("default",(0,Ya.anyExprType)(t))],(0,Ya.sql)`COALESCE(${(0,Ya.arg)("value")}, ${(0,Ya.arg)("default")})`))}vv.fnIfnull=q2e;var Sv={};Object.defineProperty(Sv,"__esModule",{value:!0}),Sv.fnIsInf=void 0;const hh=ge;function H2e(){return[(0,hh.overload)((0,hh.minScalar)("boolean"),[(0,hh.param)("value",(0,hh.anyExprType)("number"))],(0,hh.sql)`COALESCE(IS_INFINITE(${(0,hh.arg)("value")}), false)`)]}Sv.fnIsInf=H2e;var _v={};Object.defineProperty(_v,"__esModule",{value:!0}),_v.fnConcat=void 0;const Ss=ge;function z2e(){return[(0,Ss.overload)((0,Ss.minScalar)("string"),[],[{type:"dialect",function:"stringLiteral",literal:""}]),(0,Ss.overload)((0,Ss.minScalar)("string"),[(0,Ss.params)("values",(0,Ss.anyExprType)("string"),(0,Ss.anyExprType)("number"),(0,Ss.anyExprType)("date"),(0,Ss.anyExprType)("timestamp"),(0,Ss.anyExprType)("boolean"))],(0,Ss.sql)`CONCAT(${(0,Ss.spread)((0,Ss.arg)("values"),"CAST(","AS VARCHAR)")})`)]}_v.fnConcat=z2e;var Cv={};Object.defineProperty(Cv,"__esModule",{value:!0}),Cv.fnByteLength=void 0;const ph=ge;function Q2e(){return[(0,ph.overload)((0,ph.minScalar)("number"),[(0,ph.param)("value",(0,ph.anyExprType)("string"))],(0,ph.sql)`(LENGTH(CAST(${(0,ph.arg)("value")} AS VARBINARY)))`)]}Cv.fnByteLength=Q2e;var gh={};Object.defineProperty(gh,"__esModule",{value:!0}),gh.fnStringAggDistinct=gh.fnStringAgg=void 0;const bn=ge;function G2e(){const t=(0,bn.makeParam)("value",(0,bn.maxScalar)("string")),e=(0,bn.makeParam)("separator",(0,bn.literal)((0,bn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,bn.overload)((0,bn.minAggregate)("string"),[t.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,bn.overload)((0,bn.minAggregate)("string"),[t.param,e.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}gh.fnStringAgg=G2e;function W2e(){const t=(0,bn.makeParam)("value",(0,bn.maxScalar)("string")),e=(0,bn.makeParam)("separator",(0,bn.literal)((0,bn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,bn.overload)((0,bn.minAggregate)("string"),[t.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,bn.overload)((0,bn.minAggregate)("string"),[t.param,e.param],(0,bn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}gh.fnStringAggDistinct=W2e;var p0={};Object.defineProperty(p0,"__esModule",{value:!0}),p0.fnUnicode=p0.fnAscii=p0.fnChr=void 0;const Yn=ge;function V2e(){return[(0,Yn.overload)((0,Yn.minScalar)("string"),[(0,Yn.param)("value",(0,Yn.anyExprType)("number"))],(0,Yn.sql)`CASE WHEN ${(0,Yn.arg)("value")} = 0 THEN '' ELSE CHR(${(0,Yn.arg)("value")}) END`)]}p0.fnChr=V2e;function Y2e(){return[(0,Yn.overload)((0,Yn.minScalar)("number"),[(0,Yn.param)("value",(0,Yn.anyExprType)("string"))],(0,Yn.sql)`CODEPOINT(NULLIF(CAST(${(0,Yn.arg)("value")} as VARCHAR(1)),''))`)]}p0.fnAscii=Y2e;function K2e(){return[(0,Yn.overload)((0,Yn.minScalar)("number"),[(0,Yn.param)("value",(0,Yn.anyExprType)("string"))],(0,Yn.sql)`CODEPOINT(NULLIF(CAST(${(0,Yn.arg)("value")} as VARCHAR(1)),''))`)]}p0.fnUnicode=K2e;var mh={};Object.defineProperty(mh,"__esModule",{value:!0}),mh.fnEndsWith=mh.fnStartsWith=void 0;const Zi=ge;function X2e(){const t=(0,Zi.makeParam)("value",(0,Zi.anyExprType)("string")),e=(0,Zi.makeParam)("prefix",(0,Zi.anyExprType)("string"));return[(0,Zi.overload)((0,Zi.minScalar)("boolean"),[t.param,e.param],(0,Zi.sql)`COALESCE(STARTS_WITH(${t.arg}, ${e.arg}), false)`)]}mh.fnStartsWith=X2e;function J2e(){const t=(0,Zi.makeParam)("value",(0,Zi.anyExprType)("string")),e=(0,Zi.makeParam)("suffix",(0,Zi.anyExprType)("string"));return[(0,Zi.overload)((0,Zi.minScalar)("boolean"),[t.param,e.param],(0,Zi.sql)`COALESCE(STARTS_WITH(REVERSE(CAST(${t.arg} AS VARCHAR)), REVERSE(CAST(${e.arg} AS VARCHAR))), false)`)]}mh.fnEndsWith=J2e;var bv={};Object.defineProperty(bv,"__esModule",{value:!0}),bv.fnDiv=void 0;const Ka=ge;function Z2e(){return[(0,Ka.overload)((0,Ka.minScalar)("number"),[(0,Ka.param)("dividend",(0,Ka.anyExprType)("number")),(0,Ka.param)("divisor",(0,Ka.anyExprType)("number"))],(0,Ka.sql)`FLOOR(${(0,Ka.arg)("dividend")} / ${(0,Ka.arg)("divisor")})`)]}bv.fnDiv=Z2e;var Tv={};Object.defineProperty(Tv,"__esModule",{value:!0}),Tv.fnRepeat=void 0;const Df=ge;function e1e(){const t=(0,Df.makeParam)("value",(0,Df.anyExprType)("string")),e=(0,Df.makeParam)("count",(0,Df.anyExprType)("number"));return[(0,Df.overload)((0,Df.minScalar)("string"),[t.param,e.param],(0,Df.sql)`ARRAY_JOIN(REPEAT(${t.arg}, CASE WHEN ${t.arg} IS NOT NULL THEN ${e.arg} END),'')`)]}Tv.fnRepeat=e1e;var Rv={};Object.defineProperty(Rv,"__esModule",{value:!0}),Rv.fnReverse=void 0;const hp=ge;function t1e(){const t=(0,hp.makeParam)("value",(0,hp.anyExprType)("string"));return[(0,hp.overload)((0,hp.minScalar)("string"),[t.param],(0,hp.sql)`REVERSE(CAST(${t.arg} AS VARCHAR))`)]}Rv.fnReverse=t1e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;const e=cf,n=Ev,r=Av,i=vv,s=Sv,o=_v,u=Cv,a=gh,l=p0,c=mh,f=bv,x=Tv,h=Rv;t.TRINO_FUNCTIONS=e.FUNCTIONS.clone(),t.TRINO_FUNCTIONS.add("trunc",n.fnTrunc),t.TRINO_FUNCTIONS.add("log",r.fnLog),t.TRINO_FUNCTIONS.add("ifnull",i.fnIfnull),t.TRINO_FUNCTIONS.add("is_inf",s.fnIsInf),t.TRINO_FUNCTIONS.add("byte_length",u.fnByteLength),t.TRINO_FUNCTIONS.add("concat",o.fnConcat),t.TRINO_FUNCTIONS.add("string_agg",a.fnStringAgg),t.TRINO_FUNCTIONS.add("string_agg_distinct",a.fnStringAggDistinct),t.TRINO_FUNCTIONS.add("div",f.fnDiv),t.TRINO_FUNCTIONS.add("starts_with",c.fnStartsWith),t.TRINO_FUNCTIONS.add("ends_with",c.fnEndsWith),t.TRINO_FUNCTIONS.add("chr",l.fnChr),t.TRINO_FUNCTIONS.add("ascii",l.fnAscii),t.TRINO_FUNCTIONS.add("unicode",l.fnUnicode),t.TRINO_FUNCTIONS.add("repeat",x.fnRepeat),t.TRINO_FUNCTIONS.add("reverse",h.fnReverse),t.TRINO_FUNCTIONS.seal()}(kM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;var e=kM;Object.defineProperty(t,"TRINO_FUNCTIONS",{enumerable:!0,get:function(){return e.TRINO_FUNCTIONS}})}(BM),Object.defineProperty(yv,"__esModule",{value:!0}),yv.TrinoDialect=void 0;const PM=Vt,Ht=ne,n1e=BM,MM=lf;function r1e(t){return["microsecond","millisecond","second","minute","hour","day"].includes(t)}const i1e={day_of_week:"dow",day_of_year:"doy"};function Ov(t){const e=t.queryTimezone;if(e&&e!=="UTC")return e}const s1e={string:"VARCHAR",number:"DOUBLE"};class o1e extends MM.Dialect{constructor(){super(...arguments),this.name="trino",this.defaultNumberType="DOUBLE",this.defaultDecimalType="DECIMAL",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={enable:!1},this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0,this.cantPartitionWindowFunctionsOnExpressions=!1,this.orderByClause="output_name",this.nullMatchesFunctionSignature=!1,this.supportsSelectReplace=!1,this.supportsComplexFilteredSources=!1,this.supportsTempTables=!1,this.keywords=`
|
|
172
172
|
ALL
|
|
173
173
|
AND
|
|
174
174
|
ANY
|
|
@@ -263,7 +263,7 @@ ${(0,$2e.indent)(n)}
|
|
|
263
263
|
WHERE
|
|
264
264
|
WINDOW
|
|
265
265
|
WITH
|
|
266
|
-
WITHIN`.split(/\s/)}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT row_number() OVER() -1 group_set FROM UNNEST(SEQUENCE(0,${e})))`}dialectExpr(e,n){switch(n.function){case"div":return(0,
|
|
266
|
+
WITHIN`.split(/\s/)}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT row_number() OVER() -1 group_set FROM UNNEST(SEQUENCE(0,${e})))`}dialectExpr(e,n){switch(n.function){case"div":return(0,Ht.mkExpr)`CAST(${n.numerator} AS DOUBLE)/${n.denominator}`}return super.dialectExpr(e,n)}sqlAnyValue(e,n){return`ANY_VALUE(CASE WHEN group_set=${e} THEN ${n} END)`}buildTypeExpression(e){const n=[];for(const r of e)if((0,MM.isDialectFieldStruct)(r)){let i=`ROW(${this.buildTypeExpression(r.nestedStruct)})`;r.isArray&&(i=`array(${i})`),n.push(`${r.sqlOutputName} ${i}`)}else n.push(`${r.sqlOutputName} ${s1e[r.type]||r.type}`);return n.join(`,
|
|
267
267
|
`)}sqlAggregateTurtle(e,n,r,i){const s=n.map(a=>a.sqlExpression).join(`,
|
|
268
268
|
`),o=this.buildTypeExpression(n);let u=`ARRAY_AGG(CAST(ROW(${s}) AS ROW(${o})) ${r}) FILTER (WHERE group_set=${e})`;return i!==void 0&&(u=`SLICE(${u}, 1, ${i})`),u}sqlAnyValueTurtle(e,n){const r=n.map(i=>`
|
|
269
269
|
'${i.sqlOutputName}' VALUE ${i.sqlExpression}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`ANY_VALUE(CASE WHEN group_set=${n} THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=n.map(o=>o.sqlExpression).join(", "),i=n.map(o=>"NULL").join(", "),s=this.buildTypeExpression(n);return`COALESCE(ANY_VALUE(CASE WHEN group_set=${e} THEN CAST(ROW(${r}) AS ROW(${s})) END), CAST(ROW(${i}) AS ROW(${s})))`}sqlUnnestAlias(e,n,r,i,s,o){const u=r.map(a=>this.sqlMaybeQuoteIdentifier(a.sqlOutputName));return s?i?`LEFT JOIN UNNEST(zip(${e}, SEQUENCE(1,cardinality(${e})))) as words_0(value,__row_id_from_${n}) ON TRUE`:`LEFT JOIN UNNEST(transform(${e}, x -> ROW(x) )) as ${n}(value) ON TRUE`:i?`LEFT JOIN UNNEST(zip_with(${e}, SEQUENCE(1,cardinality(${e})), (r,__row_id) -> (r, __row_id))) as ${n}_outer(${n},__row_id_from_${n}) ON TRUE`:`LEFT JOIN UNNEST(${e}) as ${n}(${u.join(", ")}) ON TRUE`}sqlSumDistinctHashedKey(e){e=`CAST(${e} AS VARCHAR)`;const n=`cast(from_base(substr(to_hex(md5(to_utf8(${e}))), 1, 15),16) as DECIMAL) * DECIMAL '4294967296' `,r=`cast(from_base(substr(to_hex(md5(to_utf8(${e}))), 16, 8),16) as DECIMAL) `;return`(${n} + ${r}) * 0.000000001`}sqlGenerateUUID(){return"UUID()"}sqlFieldReference(e,n,r,i,s){return n==="__row_id"?`__row_id_from_${e}`:`${e}.${this.sqlMaybeQuoteIdentifier(n)}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`ARRAY[${r}]`),`UNNEST(${r})`}sqlCreateFunction(e,n){return`CREATE TEMPORARY FUNCTION ${e}(__param ANY TYPE) AS ((
|
|
@@ -277,7 +277,7 @@ AS (
|
|
|
277
277
|
${(0,PM.indent)(n)}
|
|
278
278
|
);
|
|
279
279
|
`}sqlCreateFunctionCombineLastStage(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`SELECT ARRAY_AGG(CAST(ROW(${r}) as ROW(${i}))) FROM ${e}
|
|
280
|
-
`}sqlSelectAliasAsStruct(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`CAST(ROW(${r}) as ROW(${i})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlNow(){return(0,
|
|
280
|
+
`}sqlSelectAliasAsStruct(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`CAST(ROW(${r}) as ROW(${i})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlNow(){return(0,Ht.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,Ht.mkExpr)`DATE_ADD('day', 1, ${n.value})`:n.value;if(n.valueType==="timestamp"){const u=Ov(e);if(u){const a=(0,Ht.mkExpr)`AT_TIMEZONE(${s},'${u}')`,l=(0,Ht.mkExpr)`DATE_TRUNC('${r}', ${a})`;return(0,Ht.mkExpr)`AT_TIMEZONE(${l},'${u}')`}}let o=(0,Ht.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,Ht.mkExpr)`DATE_ADD('day',-1, ${o})`),o}sqlExtract(e,n,r){const i=i1e[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=Ov(e);u&&(s=(0,Ht.mkExpr)`at_timezone(${s},'${u}')`)}const o=(0,Ht.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,Ht.mkExpr)`mod(${o}+1,7)`:o}sqlAlterTime(e,n,r,i){return i==="quarter"&&(i="month",r=(0,Ht.mkExpr)`${r}*3`),i==="week"&&(i="day",r=(0,Ht.mkExpr)`${r}*7`),e==="-"&&(r=(0,Ht.mkExpr)`(${r})*-1`),(0,Ht.mkExpr)`DATE_ADD('${i}', ${r}, ${n.value})`}sqlCast(e,n){const r=`${n.srcType}=>${n.dstType}`,i=Ov(e);if(r==="timestamp=>date"&&i){const s=(0,Ht.mkExpr)`CAST(${n.expr} as TIMESTAMP)`;return(0,Ht.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date=>timestamp"&&i)return(0,Ht.mkExpr)`CAST(CONCAT(CAST(CAST(${n.expr} AS TIMESTAMP) AS VARCHAR), ' ${i}') AS TIMESTAMP WITH TIME ZONE)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"TRY_CAST":"CAST";return(0,Ht.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,Ht.mkExpr)`REGEXP_LIKE(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||Ov(e);return s?`TIMESTAMP '${n} ${s}'`:`TIMESTAMP '${n}'`}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!r1e(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,Ht.mkExpr)`CAST(${s} AS TIMESTAMP)`,o=(0,Ht.mkExpr)`CAST(${o} AS TIMESTAMP)`);let l=(0,Ht.mkExpr)`DATE_DIFF('${u}',${s},${o})`;return a!==1&&(l=(0,Ht.mkExpr)`FLOOR(CAST(${l} AS DOUBLE)/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,Ht.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Ht.isSamplingRows)(n))throw new Error("Trino doesn't support sampling by rows only percent");if((0,Ht.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return n1e.TRINO_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":e.type==="string"?"VARCHAR":e.type}sqlTypeToMalloyType(e){}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,n){return`CAST(${e} as VARCHAR) || 'x' || CAST(${n} as VARCHAR)`}sqlStringAggDistinct(e,n,r){return`
|
|
281
281
|
ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${n} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${r.length>0?r:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}yv.TrinoDialect=o1e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(yv,t)}(AO);var Du={};Object.defineProperty(Du,"__esModule",{value:!0}),Du.getDialectFunction=Du.registerDialect=Du.getDialect=void 0;const u1e=gO,a1e=hO,l1e=yO,c1e=eO,f1e=AO,vO=new Map;function x1e(t){const e=vO.get(t);if(e===void 0)throw new Error(`Unknown Dialect ${t}`);return e}Du.getDialect=x1e;function yh(t){vO.set(t.name,t)}Du.registerDialect=yh,yh(new a1e.PostgresDialect),yh(new c1e.StandardSQLDialect),yh(new u1e.DuckDBDialect),yh(new l1e.SnowflakeDialect),yh(new f1e.TrinoDialect);function jM(t,e){return t.params.length===e.params.length&&t.params.every((n,r)=>{const i=e.params[r];return n.isVariadic===i.isVariadic&&n.name===i.name&&n.allowedTypes.length===i.allowedTypes.length&&n.allowedTypes.every(s=>i.allowedTypes.some(o=>s.dataType===o.dataType&&s.expressionType===o.expressionType))})}function d1e(t,e){return jM(t,e)}function h1e(t,e){return t.returnType.dataType===e.returnType.dataType&&t.returnType.expressionType===e.returnType.expressionType}function p1e(t){const e={type:"function",name:t,overloads:[]};let n=!1;for(const r of vO.values()){const i=r.getGlobalFunctionDef(t);if(i){for(const s of i){let o=!1;for(const u of e.overloads)if(d1e(s,u)){if(!jM(s,u))throw new Error("params are compatible but not equal");if(!h1e(s,u))throw new Error("params match but return types differ!");u.dialect[r.name]={e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit},o=!0}o||e.overloads.push({returnType:s.returnType,params:s.params,dialect:{[r.name]:{e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit}},needsWindowOrderBy:s.needsWindowOrderBy,between:s.between,isSymmetric:s.isSymmetric})}n=!0}}return n?e:void 0}Du.getDialectFunction=p1e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FUNCTIONS=t.getDialectFunction=t.registerDialect=t.getDialect=t.TrinoDialect=t.SnowflakeDialect=t.DuckDBDialect=t.PostgresDialect=t.StandardSQLDialect=t.qtz=t.Dialect=t.sql=t.literal=t.params=t.param=t.sqlFragment=t.spread=t.maxScalar=t.minAggregate=t.minScalar=t.overload=t.makeParam=t.anyExprType=t.arg=void 0;var e=ge;Object.defineProperty(t,"arg",{enumerable:!0,get:function(){return e.arg}}),Object.defineProperty(t,"anyExprType",{enumerable:!0,get:function(){return e.anyExprType}}),Object.defineProperty(t,"makeParam",{enumerable:!0,get:function(){return e.makeParam}}),Object.defineProperty(t,"overload",{enumerable:!0,get:function(){return e.overload}}),Object.defineProperty(t,"minScalar",{enumerable:!0,get:function(){return e.minScalar}}),Object.defineProperty(t,"minAggregate",{enumerable:!0,get:function(){return e.minAggregate}}),Object.defineProperty(t,"maxScalar",{enumerable:!0,get:function(){return e.maxScalar}}),Object.defineProperty(t,"spread",{enumerable:!0,get:function(){return e.spread}}),Object.defineProperty(t,"sqlFragment",{enumerable:!0,get:function(){return e.sqlFragment}}),Object.defineProperty(t,"param",{enumerable:!0,get:function(){return e.param}}),Object.defineProperty(t,"params",{enumerable:!0,get:function(){return e.params}}),Object.defineProperty(t,"literal",{enumerable:!0,get:function(){return e.literal}}),Object.defineProperty(t,"sql",{enumerable:!0,get:function(){return e.sql}});var n=lf;Object.defineProperty(t,"Dialect",{enumerable:!0,get:function(){return n.Dialect}}),Object.defineProperty(t,"qtz",{enumerable:!0,get:function(){return n.qtz}});var r=eO;Object.defineProperty(t,"StandardSQLDialect",{enumerable:!0,get:function(){return r.StandardSQLDialect}});var i=hO;Object.defineProperty(t,"PostgresDialect",{enumerable:!0,get:function(){return i.PostgresDialect}});var s=gO;Object.defineProperty(t,"DuckDBDialect",{enumerable:!0,get:function(){return s.DuckDBDialect}});var o=yO;Object.defineProperty(t,"SnowflakeDialect",{enumerable:!0,get:function(){return o.SnowflakeDialect}});var u=AO;Object.defineProperty(t,"TrinoDialect",{enumerable:!0,get:function(){return u.TrinoDialect}});var a=Du;Object.defineProperty(t,"getDialect",{enumerable:!0,get:function(){return a.getDialect}}),Object.defineProperty(t,"registerDialect",{enumerable:!0,get:function(){return a.registerDialect}}),Object.defineProperty(t,"getDialectFunction",{enumerable:!0,get:function(){return a.getDialectFunction}});var l=cf;Object.defineProperty(t,"FUNCTIONS",{enumerable:!0,get:function(){return l.FUNCTIONS}})}(JE);var Fu={},Ff={};Object.defineProperty(Ff,"__esModule",{value:!0}),Ff.QueryModel=Ff.Segment=void 0;const g1e=JE,m1e=tp,Ue=ne,Or=Vt;function UM(t){return t.map(e=>encodeURIComponent(e)).join("/")}function SO(t){return`'${t}'`}function y1e(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function pp(t){const e=[];for(const n of t.fields.filter(Ue.isPhysical))e.push({type:n.type,sqlExpression:(0,Ue.getIdentifier)(n),rawName:(0,Ue.getIdentifier)(n),sqlOutputName:(0,Ue.getIdentifier)(n)});return e}class E1e extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class gp{constructor(e=!0,n){this.parent=n,this.withs=[],this.udfs=[],this.pdts=[],this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,Or.indent)(`
|
|
282
282
|
(${e})
|
|
283
283
|
`))}addUDF(e,n,r){let{sql:i,lastStageName:s}=e.combineStages(!0);if(s===void 0)throw new Error("Internal Error: no stage to combine");i+=n.sqlCreateFunctionCombineLastStage(s,pp(r));const o=`${n.udfPrefix}${this.root().udfs.length}`;return i=n.sqlCreateFunction(o,i),this.root().udfs.push(i),o}addPDT(e,n){const r=this.combineStages(!1).sql+this.withs[this.withs.length-1],i="scratch."+e+(0,Or.generateHash)(r);return this.root().pdts.push(n.sqlCreateTableAsSelect(i,r)),i}combineStages(e){if(!this.useCTE)return{sql:this.withs[0],lastStageName:this.withs[0]};let n=this.getName(0),r="WITH ",i="";for(let s=0;s<this.withs.length-(e?0:1);s++){const o=this.withs[s];if(n=this.getName(s),o===void 0)throw new Error(`Expected sql WITH to be present for stage ${n}.`);i+=`${r}${n} AS (
|
|
@@ -1462,13 +1462,13 @@ ${m}`,p)}}else{if(h.urls)for(const m of h.urls)try{if(m.startsWith("internal://"
|
|
|
1462
1462
|
`)}function a(f){return f.map(l).join(`
|
|
1463
1463
|
`)}function l(f){return f.map(c).join(t)}function c(f){return f==null?"":f instanceof Date?c9e(f):e.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:o,formatBody:u,formatRows:a,formatRow:l,formatValue:c}}function x9e(t){return t}function d9e(t){if(t==null)return x9e;var e,n,r=t.scale[0],i=t.scale[1],s=t.translate[0],o=t.translate[1];return function(u,a){a||(e=n=0);var l=2,c=u.length,f=new Array(c);for(f[0]=(e+=u[0])*r+s,f[1]=(n+=u[1])*i+o;l<c;)f[l]=u[l],++l;return f}}function h9e(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function p9e(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return XK(t,n)})}:XK(t,e)}function XK(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,s=JK(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:s}:r==null?{type:"Feature",id:n,properties:i,geometry:s}:{type:"Feature",id:n,bbox:r,properties:i,geometry:s}}function JK(t,e){var n=d9e(t.transform),r=t.arcs;function i(c,f){f.length&&f.pop();for(var x=r[c<0?~c:c],h=0,p=x.length;h<p;++h)f.push(n(x[h],h));c<0&&h9e(f,p)}function s(c){return n(c)}function o(c){for(var f=[],x=0,h=c.length;x<h;++x)i(c[x],f);return f.length<2&&f.push(f[0]),f}function u(c){for(var f=o(c);f.length<4;)f.push(f[0]);return f}function a(c){return c.map(u)}function l(c){var f=c.type,x;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":x=s(c.coordinates);break;case"MultiPoint":x=c.coordinates.map(s);break;case"LineString":x=o(c.arcs);break;case"MultiLineString":x=c.arcs.map(o);break;case"Polygon":x=a(c.arcs);break;case"MultiPolygon":x=c.arcs.map(a);break;default:return null}return{type:f,coordinates:x}}return l(e)}function g9e(t,e){var n={},r={},i={},s=[],o=-1;e.forEach(function(l,c){var f=t.arcs[l<0?~l:l],x;f.length<3&&!f[1][0]&&!f[1][1]&&(x=e[++o],e[o]=l,e[c]=x)}),e.forEach(function(l){var c=u(l),f=c[0],x=c[1],h,p;if(h=i[f])if(delete i[h.end],h.push(l),h.end=x,p=r[x]){delete r[p.start];var m=p===h?h:h.concat(p);r[m.start=h.start]=i[m.end=p.end]=m}else r[h.start]=i[h.end]=h;else if(h=r[x])if(delete r[h.start],h.unshift(l),h.start=f,p=i[f]){delete i[p.end];var g=p===h?h:p.concat(h);r[g.start=p.start]=i[g.end=h.end]=g}else r[h.start]=i[h.end]=h;else h=[l],r[h.start=f]=i[h.end=x]=h});function u(l){var c=t.arcs[l<0?~l:l],f=c[0],x;return t.transform?(x=[0,0],c.forEach(function(h){x[0]+=h[0],x[1]+=h[1]})):x=c[c.length-1],l<0?[x,f]:[f,x]}function a(l,c){for(var f in l){var x=l[f];delete c[x.start],delete x.start,delete x.end,x.forEach(function(h){n[h<0?~h:h]=1}),s.push(x)}}return a(i,r),a(r,i),e.forEach(function(l){n[l<0?~l:l]||s.push([l])}),s}function m9e(t){return JK(t,y9e.apply(this,arguments))}function y9e(t,e,n){var r,i,s;if(arguments.length>1)r=E9e(t,e,n);else for(i=0,r=new Array(s=t.arcs.length);i<s;++i)r[i]=i;return{type:"MultiLineString",arcs:g9e(t,r)}}function E9e(t,e,n){var r=[],i=[],s;function o(f){var x=f<0?~f:f;(i[x]||(i[x]=[])).push({i:f,g:s})}function u(f){f.forEach(o)}function a(f){f.forEach(u)}function l(f){f.forEach(a)}function c(f){switch(s=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":u(f.arcs);break;case"MultiLineString":case"Polygon":a(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(e),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function Il(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function A9e(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function O3(t){let e,n,r;t.length!==2?(e=Il,n=(u,a)=>Il(t(u),a),r=(u,a)=>t(u)-a):(e=t===Il||t===A9e?t:v9e,n=t,r=t);function i(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<0?l=f+1:c=f}while(l<c)}return l}function s(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<=0?l=f+1:c=f}while(l<c)}return l}function o(u,a,l=0,c=u.length){const f=i(u,a,l,c-1);return f>l&&r(u[f-1],a)>-r(u[f],a)?f-1:f}return{left:i,center:o,right:s}}function v9e(){return 0}function ZK(t){return t===null?NaN:+t}function*S9e(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)(r=e(r,++n,t))!=null&&(r=+r)>=r&&(yield r)}}const eX=O3(Il),pc=eX.right,_9e=eX.left;O3(ZK).center;function C9e(t,e){let n=0,r,i=0,s=0;if(e===void 0)for(let o of t)o!=null&&(o=+o)>=o&&(r=o-i,i+=r/++n,s+=r*(o-i));else{let o=-1;for(let u of t)(u=e(u,++o,t))!=null&&(u=+u)>=u&&(r=u-i,i+=r/++n,s+=r*(u-i))}if(n>1)return s/(n-1)}function b9e(t,e){const n=C9e(t,e);return n&&Math.sqrt(n)}class Oi{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let r=0;for(let i=0;i<this._n&&i<32;i++){const s=n[i],o=e+s,u=Math.abs(e)<Math.abs(s)?e-(o-s):s-(o-e);u&&(n[r++]=u),e=o}return n[r]=e,this._n=r+1,this}valueOf(){const e=this._partials;let n=this._n,r,i,s,o=0;if(n>0){for(o=e[--n];n>0&&(r=o,i=e[--n],o=r+i,s=i-(o-r),!s););n>0&&(s<0&&e[n-1]<0||s>0&&e[n-1]>0)&&(i=s*2,r=o+i,i==r-o&&(o=r))}return o}}class tX extends Map{constructor(e,n=iX){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(R8(this,e))}has(e){return super.has(R8(this,e))}set(e,n){return super.set(nX(this,e),n)}delete(e){return super.delete(rX(this,e))}}class oC extends Set{constructor(e,n=iX){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const r of e)this.add(r)}has(e){return super.has(R8(this,e))}add(e){return super.add(nX(this,e))}delete(e){return super.delete(rX(this,e))}}function R8({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function nX({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function rX({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function iX(t){return t!==null&&typeof t=="object"?t.valueOf():t}function T9e(t,e){return Array.from(e,n=>t[n])}function R9e(t=Il){if(t===Il)return sX;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function sX(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}const O9e=Math.sqrt(50),N9e=Math.sqrt(10),D9e=Math.sqrt(2);function uC(t,e,n){const r=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(r)),s=r/Math.pow(10,i),o=s>=O9e?10:s>=N9e?5:s>=D9e?2:1;let u,a,l;return i<0?(l=Math.pow(10,-i)/o,u=Math.round(t*l),a=Math.round(e*l),u/l<t&&++u,a/l>e&&--a,l=-l):(l=Math.pow(10,i)*o,u=Math.round(t/l),a=Math.round(e/l),u*l<t&&++u,a*l>e&&--a),a<u&&.5<=n&&n<2?uC(t,e,n*2):[u,a,l]}function O8(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const r=e<t,[i,s,o]=r?uC(e,t,n):uC(t,e,n);if(!(s>=i))return[];const u=s-i+1,a=new Array(u);if(r)if(o<0)for(let l=0;l<u;++l)a[l]=(s-l)/-o;else for(let l=0;l<u;++l)a[l]=(s-l)*o;else if(o<0)for(let l=0;l<u;++l)a[l]=(i+l)/-o;else for(let l=0;l<u;++l)a[l]=(i+l)*o;return a}function N8(t,e,n){return e=+e,t=+t,n=+n,uC(t,e,n)[2]}function gc(t,e,n){e=+e,t=+t,n=+n;const r=e<t,i=r?N8(e,t,n):N8(t,e,n);return(r?-1:1)*(i<0?1/-i:i)}function Ux(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function D8(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function oX(t,e,n=0,r=1/0,i){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(i=i===void 0?sX:R9e(i);r>n;){if(r-n>600){const a=r-n+1,l=e-n+1,c=Math.log(a),f=.5*Math.exp(2*c/3),x=.5*Math.sqrt(c*f*(a-f)/a)*(l-a/2<0?-1:1),h=Math.max(n,Math.floor(e-l*f/a+x)),p=Math.min(r,Math.floor(e+(a-l)*f/a+x));oX(t,e,h,p,i)}const s=t[e];let o=n,u=r;for(N3(t,n,e),i(t[r],s)>0&&N3(t,n,r);o<u;){for(N3(t,o,u),++o,--u;i(t[o],s)<0;)++o;for(;i(t[u],s)>0;)--u}i(t[n],s)===0?N3(t,n,u):(++u,N3(t,u,r)),u<=e&&(n=u+1),e<=u&&(r=u-1)}return t}function N3(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function F8(t,e,n){if(t=Float64Array.from(S9e(t,n)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return D8(t);if(e>=1)return Ux(t);var r,i=(r-1)*e,s=Math.floor(i),o=Ux(oX(t,s).subarray(0,s+1)),u=D8(t.subarray(s+1));return o+(u-o)*(i-s)}}function uX(t,e,n=ZK){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,s=Math.floor(i),o=+n(t[s],s,t),u=+n(t[s+1],s+1,t);return o+(u-o)*(i-s)}}function F9e(t,e){let n=0,r=0;if(e===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let s of t)(s=e(s,++i,t))!=null&&(s=+s)>=s&&(++n,r+=s)}if(n)return r/n}function aX(t,e){return F8(t,.5,e)}function*w9e(t){for(const e of t)yield*e}function lX(t){return Array.from(w9e(t))}function Ps(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,s=new Array(i);++r<i;)s[r]=t+r*n;return s}function cX(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function L9e(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function aC(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function P2(t){return t=aC(Math.abs(t)),t?t[1]:NaN}function I9e(t,e){return function(n,r){for(var i=n.length,s=[],o=0,u=t[0],a=0;i>0&&u>0&&(a+u+1>r&&(u=Math.max(1,r-a)),s.push(n.substring(i-=u,i+u)),!((a+=u+1)>r));)u=t[o=(o+1)%t.length];return s.reverse().join(e)}}function $9e(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var B9e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function qx(t){if(!(e=B9e.exec(t)))throw new Error("invalid format: "+t);var e;return new w8({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}qx.prototype=w8.prototype;function w8(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}w8.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function k9e(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var fX;function P9e(t,e){var n=aC(t,e);if(!n)return t+"";var r=n[0],i=n[1],s=i-(fX=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return s===o?r:s>o?r+new Array(s-o+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+aC(t,Math.max(0,e+s-1))[0]}function xX(t,e){var n=aC(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const dX={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:L9e,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>xX(t*100,e),r:xX,s:P9e,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function hX(t){return t}var pX=Array.prototype.map,gX=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function mX(t){var e=t.grouping===void 0||t.thousands===void 0?hX:I9e(pX.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?hX:$9e(pX.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",u=t.minus===void 0?"−":t.minus+"",a=t.nan===void 0?"NaN":t.nan+"";function l(f){f=qx(f);var x=f.fill,h=f.align,p=f.sign,m=f.symbol,g=f.zero,y=f.width,E=f.comma,A=f.precision,v=f.trim,S=f.type;S==="n"?(E=!0,S="g"):dX[S]||(A===void 0&&(A=12),v=!0,S="g"),(g||x==="0"&&h==="=")&&(g=!0,x="0",h="=");var C=m==="$"?n:m==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():"",_=m==="$"?r:/[%p]/.test(S)?o:"",b=dX[S],R=/[defgprs%]/.test(S);A=A===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,A)):Math.max(0,Math.min(20,A));function O(L){var M=C,q=_,W,B,G;if(S==="c")q=b(L)+q,L="";else{L=+L;var te=L<0||1/L<0;if(L=isNaN(L)?a:b(Math.abs(L),A),v&&(L=k9e(L)),te&&+L==0&&p!=="+"&&(te=!1),M=(te?p==="("?p:u:p==="-"||p==="("?"":p)+M,q=(S==="s"?gX[8+fX/3]:"")+q+(te&&p==="("?")":""),R){for(W=-1,B=L.length;++W<B;)if(G=L.charCodeAt(W),48>G||G>57){q=(G===46?i+L.slice(W+1):L.slice(W))+q,L=L.slice(0,W);break}}}E&&!g&&(L=e(L,1/0));var X=M.length+L.length+q.length,de=X<y?new Array(y-X+1).join(x):"";switch(E&&g&&(L=e(de+L,de.length?y-q.length:1/0),de=""),h){case"<":L=M+L+q+de;break;case"=":L=M+de+L+q;break;case"^":L=de.slice(0,X=de.length>>1)+M+L+q+de.slice(X);break;default:L=de+M+L+q;break}return s(L)}return O.toString=function(){return f+""},O}function c(f,x){var h=l((f=qx(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(P2(x)/3)))*3,m=Math.pow(10,-p),g=gX[8+p/3];return function(y){return h(m*y)+g}}return{format:l,formatPrefix:c}}var lC,cC,L8;M9e({thousands:",",grouping:[3],currency:["$",""]});function M9e(t){return lC=mX(t),cC=lC.format,L8=lC.formatPrefix,lC}function yX(t){return Math.max(0,-P2(Math.abs(t)))}function EX(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(P2(e)/3)))*3-P2(Math.abs(t)))}function AX(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,P2(e)-P2(t))+1}const I8=new Date,$8=new Date;function er(t,e,n,r){function i(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return i.floor=s=>(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const o=i(s),u=i.ceil(s);return s-o<u-s?o:u},i.offset=(s,o)=>(e(s=new Date(+s),o==null?1:Math.floor(o)),s),i.range=(s,o,u)=>{const a=[];if(s=i.ceil(s),u=u==null?1:Math.floor(u),!(s<o)||!(u>0))return a;let l;do a.push(l=new Date(+s)),e(s,u),t(s);while(l<s&&s<o);return a},i.filter=s=>er(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,u)=>{if(o>=o)if(u<0)for(;++u<=0;)for(;e(o,-1),!s(o););else for(;--u>=0;)for(;e(o,1),!s(o););}),n&&(i.count=(s,o)=>(I8.setTime(+s),$8.setTime(+o),t(I8),t($8),Math.floor(n(I8,$8))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?o=>r(o)%s===0:o=>i.count(0,o)%s===0):i)),i}const M2=er(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);M2.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?er(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):M2),M2.range;const $l=1e3,mo=$l*60,Bl=mo*60,kl=Bl*24,B8=kl*7,vX=kl*30,k8=kl*365,Pl=er(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*$l)},(t,e)=>(e-t)/$l,t=>t.getUTCSeconds());Pl.range;const fC=er(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*$l)},(t,e)=>{t.setTime(+t+e*mo)},(t,e)=>(e-t)/mo,t=>t.getMinutes());fC.range;const xC=er(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*mo)},(t,e)=>(e-t)/mo,t=>t.getUTCMinutes());xC.range;const dC=er(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*$l-t.getMinutes()*mo)},(t,e)=>{t.setTime(+t+e*Bl)},(t,e)=>(e-t)/Bl,t=>t.getHours());dC.range;const hC=er(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Bl)},(t,e)=>(e-t)/Bl,t=>t.getUTCHours());hC.range;const Ml=er(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*mo)/kl,t=>t.getDate()-1);Ml.range;const mc=er(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/kl,t=>t.getUTCDate()-1);mc.range;const SX=er(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/kl,t=>Math.floor(t/kl));SX.range;function Hx(t){return er(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*mo)/B8)}const j2=Hx(0),pC=Hx(1),j9e=Hx(2),U9e=Hx(3),U2=Hx(4),q9e=Hx(5),H9e=Hx(6);j2.range,pC.range,j9e.range,U9e.range,U2.range,q9e.range,H9e.range;function zx(t){return er(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/B8)}const q2=zx(0),gC=zx(1),z9e=zx(2),Q9e=zx(3),H2=zx(4),G9e=zx(5),W9e=zx(6);q2.range,gC.range,z9e.range,Q9e.range,H2.range,G9e.range,W9e.range;const D3=er(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());D3.range;const F3=er(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());F3.range;const da=er(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());da.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:er(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)}),da.range;const ha=er(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());ha.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:er(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)}),ha.range;function _X(t,e,n,r,i,s){const o=[[Pl,1,$l],[Pl,5,5*$l],[Pl,15,15*$l],[Pl,30,30*$l],[s,1,mo],[s,5,5*mo],[s,15,15*mo],[s,30,30*mo],[i,1,Bl],[i,3,3*Bl],[i,6,6*Bl],[i,12,12*Bl],[r,1,kl],[r,2,2*kl],[n,1,B8],[e,1,vX],[e,3,3*vX],[t,1,k8]];function u(l,c,f){const x=c<l;x&&([l,c]=[c,l]);const h=f&&typeof f.range=="function"?f:a(l,c,f),p=h?h.range(l,+c+1):[];return x?p.reverse():p}function a(l,c,f){const x=Math.abs(c-l)/f,h=O3(([,,g])=>g).right(o,x);if(h===o.length)return t.every(gc(l/k8,c/k8,f));if(h===0)return M2.every(Math.max(gc(l,c,f),1));const[p,m]=o[x/o[h-1][2]<o[h][2]/x?h-1:h];return p.every(m)}return[u,a]}const[V9e,Y9e]=_X(ha,F3,q2,SX,hC,xC),[K9e,X9e]=_X(da,D3,j2,Ml,dC,fC),Zr="year",Ms="quarter",Ni="month",mr="week",js="date",Di="day",jl="dayofyear",yo="hours",Eo="minutes",iu="seconds",pa="milliseconds",CX=[Zr,Ms,Ni,mr,js,Di,jl,yo,Eo,iu,pa],P8=CX.reduce((t,e,n)=>(t[e]=1+n,t),{});function bX(t){const e=Pe(t).slice(),n={};return e.length||Se("Missing time unit."),e.forEach(i=>{Je(P8,i)?n[i]=1:Se(`Invalid time unit: ${i}.`)}),(n[mr]||n[Di]?1:0)+(n[Ms]||n[Ni]||n[js]?1:0)+(n[jl]?1:0)>1&&Se(`Incompatible time units: ${t}`),e.sort((i,s)=>P8[i]-P8[s]),e}const J9e={[Zr]:"%Y ",[Ms]:"Q%q ",[Ni]:"%b ",[js]:"%d ",[mr]:"W%U ",[Di]:"%a ",[jl]:"%j ",[yo]:"%H:00",[Eo]:"00:%M",[iu]:":%S",[pa]:".%L",[`${Zr}-${Ni}`]:"%Y-%m ",[`${Zr}-${Ni}-${js}`]:"%Y-%m-%d ",[`${yo}-${Eo}`]:"%H:%M"};function Z9e(t,e){const n=ft({},J9e,e),r=bX(t),i=r.length;let s="",o=0,u,a;for(o=0;o<i;)for(u=r.length;u>o;--u)if(a=r.slice(o,u).join("-"),n[a]!=null){s+=n[a],o=u;break}return s.trim()}const Qx=new Date;function M8(t){return Qx.setFullYear(t),Qx.setMonth(0),Qx.setDate(1),Qx.setHours(0,0,0,0),Qx}function eLe(t){return TX(new Date(t))}function tLe(t){return j8(new Date(t))}function TX(t){return Ml.count(M8(t.getFullYear())-1,t)}function j8(t){return j2.count(M8(t.getFullYear())-1,t)}function U8(t){return M8(t).getDay()}function nLe(t,e,n,r,i,s,o){if(0<=t&&t<100){const u=new Date(-1,e,n,r,i,s,o);return u.setFullYear(t),u}return new Date(t,e,n,r,i,s,o)}function rLe(t){return RX(new Date(t))}function iLe(t){return q8(new Date(t))}function RX(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return mc.count(e-1,t)}function q8(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return q2.count(e-1,t)}function H8(t){return Qx.setTime(Date.UTC(t,0,1)),Qx.getUTCDay()}function sLe(t,e,n,r,i,s,o){if(0<=t&&t<100){const u=new Date(Date.UTC(-1,e,n,r,i,s,o));return u.setUTCFullYear(n.y),u}return new Date(Date.UTC(t,e,n,r,i,s,o))}function OX(t,e,n,r,i){const s=e||1,o=St(t),u=(y,E,A)=>(A=A||y,oLe(n[A],r[A],y===o&&s,E)),a=new Date,l=ia(t),c=l[Zr]?u(Zr):Ci(2012),f=l[Ni]?u(Ni):l[Ms]?u(Ms):Dx,x=l[mr]&&l[Di]?u(Di,1,mr+Di):l[mr]?u(mr,1):l[Di]?u(Di,1):l[js]?u(js,1):l[jl]?u(jl,1):g3,h=l[yo]?u(yo):Dx,p=l[Eo]?u(Eo):Dx,m=l[iu]?u(iu):Dx,g=l[pa]?u(pa):Dx;return function(y){a.setTime(+y);const E=c(a);return i(E,f(a),x(a,E),h(a),p(a),m(a),g(a))}}function oLe(t,e,n,r){const i=n<=1?t:r?(s,o)=>r+n*Math.floor((t(s,o)-r)/n):(s,o)=>n*Math.floor(t(s,o)/n);return e?(s,o)=>e(i(s,o),o):i}function z2(t,e,n){return e+t*7-(n+6)%7}const uLe={[Zr]:t=>t.getFullYear(),[Ms]:t=>Math.floor(t.getMonth()/3),[Ni]:t=>t.getMonth(),[js]:t=>t.getDate(),[yo]:t=>t.getHours(),[Eo]:t=>t.getMinutes(),[iu]:t=>t.getSeconds(),[pa]:t=>t.getMilliseconds(),[jl]:t=>TX(t),[mr]:t=>j8(t),[mr+Di]:(t,e)=>z2(j8(t),t.getDay(),U8(e)),[Di]:(t,e)=>z2(1,t.getDay(),U8(e))},aLe={[Ms]:t=>3*t,[mr]:(t,e)=>z2(t,0,U8(e))};function lLe(t,e){return OX(t,e||1,uLe,aLe,nLe)}const cLe={[Zr]:t=>t.getUTCFullYear(),[Ms]:t=>Math.floor(t.getUTCMonth()/3),[Ni]:t=>t.getUTCMonth(),[js]:t=>t.getUTCDate(),[yo]:t=>t.getUTCHours(),[Eo]:t=>t.getUTCMinutes(),[iu]:t=>t.getUTCSeconds(),[pa]:t=>t.getUTCMilliseconds(),[jl]:t=>RX(t),[mr]:t=>q8(t),[Di]:(t,e)=>z2(1,t.getUTCDay(),H8(e)),[mr+Di]:(t,e)=>z2(q8(t),t.getUTCDay(),H8(e))},fLe={[Ms]:t=>3*t,[mr]:(t,e)=>z2(t,0,H8(e))};function xLe(t,e){return OX(t,e||1,cLe,fLe,sLe)}const dLe={[Zr]:da,[Ms]:D3.every(3),[Ni]:D3,[mr]:j2,[js]:Ml,[Di]:Ml,[jl]:Ml,[yo]:dC,[Eo]:fC,[iu]:Pl,[pa]:M2},hLe={[Zr]:ha,[Ms]:F3.every(3),[Ni]:F3,[mr]:q2,[js]:mc,[Di]:mc,[jl]:mc,[yo]:hC,[Eo]:xC,[iu]:Pl,[pa]:M2};function w3(t){return dLe[t]}function L3(t){return hLe[t]}function NX(t,e,n){return t?t.offset(e,n):void 0}function pLe(t,e,n){return NX(w3(t),e,n)}function gLe(t,e,n){return NX(L3(t),e,n)}function DX(t,e,n,r){return t?t.range(e,n,r):void 0}function mLe(t,e,n,r){return DX(w3(t),e,n,r)}function yLe(t,e,n,r){return DX(L3(t),e,n,r)}const I3=1e3,$3=I3*60,B3=$3*60,mC=B3*24,ELe=mC*7,FX=mC*30,z8=mC*365,wX=[Zr,Ni,js,yo,Eo,iu,pa],k3=wX.slice(0,-1),P3=k3.slice(0,-1),M3=P3.slice(0,-1),ALe=M3.slice(0,-1),vLe=[Zr,mr],LX=[Zr,Ni],IX=[Zr],j3=[[k3,1,I3],[k3,5,5*I3],[k3,15,15*I3],[k3,30,30*I3],[P3,1,$3],[P3,5,5*$3],[P3,15,15*$3],[P3,30,30*$3],[M3,1,B3],[M3,3,3*B3],[M3,6,6*B3],[M3,12,12*B3],[ALe,1,mC],[vLe,1,ELe],[LX,1,FX],[LX,3,3*FX],[IX,1,z8]];function SLe(t){const e=t.extent,n=t.maxbins||40,r=Math.abs(H5(e))/n;let i=O3(u=>u[2]).right(j3,r),s,o;return i===j3.length?(s=IX,o=gc(e[0]/z8,e[1]/z8,n)):i?(i=j3[r/j3[i-1][2]<j3[i][2]/r?i-1:i],s=i[0],o=i[1]):(s=wX,o=Math.max(gc(e[0],e[1],n),1)),{units:s,step:o}}function Q8(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function G8(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function U3(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function $X(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,s=t.days,o=t.shortDays,u=t.months,a=t.shortMonths,l=q3(i),c=H3(i),f=q3(s),x=H3(s),h=q3(o),p=H3(o),m=q3(u),g=H3(u),y=q3(a),E=H3(a),A={a:te,A:X,b:de,B:be,c:null,d:UX,e:UX,f:QLe,g:tIe,G:rIe,H:qLe,I:HLe,j:zLe,L:qX,m:GLe,M:WLe,p:ee,q:U,Q:VX,s:YX,S:VLe,u:YLe,U:KLe,V:XLe,w:JLe,W:ZLe,x:null,X:null,y:eIe,Y:nIe,Z:iIe,"%":WX},v={a:T,A:w,b:k,B:z,c:null,d:zX,e:zX,f:aIe,g:yIe,G:AIe,H:sIe,I:oIe,j:uIe,L:QX,m:lIe,M:cIe,p:Y,q:V,Q:VX,s:YX,S:fIe,u:xIe,U:dIe,V:hIe,w:pIe,W:gIe,x:null,X:null,y:mIe,Y:EIe,Z:vIe,"%":WX},S={a:O,A:L,b:M,B:q,c:W,d:MX,e:MX,f:PLe,g:PX,G:kX,H:jX,I:jX,j:ILe,L:kLe,m:LLe,M:$Le,p:R,q:wLe,Q:jLe,s:ULe,S:BLe,u:RLe,U:OLe,V:NLe,w:TLe,W:DLe,x:B,X:G,y:PX,Y:kX,Z:FLe,"%":MLe};A.x=C(n,A),A.X=C(r,A),A.c=C(e,A),v.x=C(n,v),v.X=C(r,v),v.c=C(e,v);function C(D,$){return function(j){var Q=[],I=-1,H=0,P=D.length,J,ce,ue;for(j instanceof Date||(j=new Date(+j));++I<P;)D.charCodeAt(I)===37&&(Q.push(D.slice(H,I)),(ce=BX[J=D.charAt(++I)])!=null?J=D.charAt(++I):ce=J==="e"?" ":"0",(ue=$[J])&&(J=ue(j,ce)),Q.push(J),H=I+1);return Q.push(D.slice(H,I)),Q.join("")}}function _(D,$){return function(j){var Q=U3(1900,void 0,1),I=b(Q,D,j+="",0),H,P;if(I!=j.length)return null;if("Q"in Q)return new Date(Q.Q);if("s"in Q)return new Date(Q.s*1e3+("L"in Q?Q.L:0));if($&&!("Z"in Q)&&(Q.Z=0),"p"in Q&&(Q.H=Q.H%12+Q.p*12),Q.m===void 0&&(Q.m="q"in Q?Q.q:0),"V"in Q){if(Q.V<1||Q.V>53)return null;"w"in Q||(Q.w=1),"Z"in Q?(H=G8(U3(Q.y,0,1)),P=H.getUTCDay(),H=P>4||P===0?gC.ceil(H):gC(H),H=mc.offset(H,(Q.V-1)*7),Q.y=H.getUTCFullYear(),Q.m=H.getUTCMonth(),Q.d=H.getUTCDate()+(Q.w+6)%7):(H=Q8(U3(Q.y,0,1)),P=H.getDay(),H=P>4||P===0?pC.ceil(H):pC(H),H=Ml.offset(H,(Q.V-1)*7),Q.y=H.getFullYear(),Q.m=H.getMonth(),Q.d=H.getDate()+(Q.w+6)%7)}else("W"in Q||"U"in Q)&&("w"in Q||(Q.w="u"in Q?Q.u%7:"W"in Q?1:0),P="Z"in Q?G8(U3(Q.y,0,1)).getUTCDay():Q8(U3(Q.y,0,1)).getDay(),Q.m=0,Q.d="W"in Q?(Q.w+6)%7+Q.W*7-(P+5)%7:Q.w+Q.U*7-(P+6)%7);return"Z"in Q?(Q.H+=Q.Z/100|0,Q.M+=Q.Z%100,G8(Q)):Q8(Q)}}function b(D,$,j,Q){for(var I=0,H=$.length,P=j.length,J,ce;I<H;){if(Q>=P)return-1;if(J=$.charCodeAt(I++),J===37){if(J=$.charAt(I++),ce=S[J in BX?$.charAt(I++):J],!ce||(Q=ce(D,j,Q))<0)return-1}else if(J!=j.charCodeAt(Q++))return-1}return Q}function R(D,$,j){var Q=l.exec($.slice(j));return Q?(D.p=c.get(Q[0].toLowerCase()),j+Q[0].length):-1}function O(D,$,j){var Q=h.exec($.slice(j));return Q?(D.w=p.get(Q[0].toLowerCase()),j+Q[0].length):-1}function L(D,$,j){var Q=f.exec($.slice(j));return Q?(D.w=x.get(Q[0].toLowerCase()),j+Q[0].length):-1}function M(D,$,j){var Q=y.exec($.slice(j));return Q?(D.m=E.get(Q[0].toLowerCase()),j+Q[0].length):-1}function q(D,$,j){var Q=m.exec($.slice(j));return Q?(D.m=g.get(Q[0].toLowerCase()),j+Q[0].length):-1}function W(D,$,j){return b(D,e,$,j)}function B(D,$,j){return b(D,n,$,j)}function G(D,$,j){return b(D,r,$,j)}function te(D){return o[D.getDay()]}function X(D){return s[D.getDay()]}function de(D){return a[D.getMonth()]}function be(D){return u[D.getMonth()]}function ee(D){return i[+(D.getHours()>=12)]}function U(D){return 1+~~(D.getMonth()/3)}function T(D){return o[D.getUTCDay()]}function w(D){return s[D.getUTCDay()]}function k(D){return a[D.getUTCMonth()]}function z(D){return u[D.getUTCMonth()]}function Y(D){return i[+(D.getUTCHours()>=12)]}function V(D){return 1+~~(D.getUTCMonth()/3)}return{format:function(D){var $=C(D+="",A);return $.toString=function(){return D},$},parse:function(D){var $=_(D+="",!1);return $.toString=function(){return D},$},utcFormat:function(D){var $=C(D+="",v);return $.toString=function(){return D},$},utcParse:function(D){var $=_(D+="",!0);return $.toString=function(){return D},$}}}var BX={"-":"",_:" ",0:"0"},yr=/^\s*\d+/,_Le=/^%/,CLe=/[\\^$*+?|[\]().{}]/g;function Rt(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s<n?new Array(n-s+1).join(e)+i:i)}function bLe(t){return t.replace(CLe,"\\$&")}function q3(t){return new RegExp("^(?:"+t.map(bLe).join("|")+")","i")}function H3(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function TLe(t,e,n){var r=yr.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function RLe(t,e,n){var r=yr.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function OLe(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function NLe(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function DLe(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function kX(t,e,n){var r=yr.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function PX(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function FLe(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function wLe(t,e,n){var r=yr.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function LLe(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function MX(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function ILe(t,e,n){var r=yr.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function jX(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function $Le(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function BLe(t,e,n){var r=yr.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function kLe(t,e,n){var r=yr.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function PLe(t,e,n){var r=yr.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function MLe(t,e,n){var r=_Le.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function jLe(t,e,n){var r=yr.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function ULe(t,e,n){var r=yr.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function UX(t,e){return Rt(t.getDate(),e,2)}function qLe(t,e){return Rt(t.getHours(),e,2)}function HLe(t,e){return Rt(t.getHours()%12||12,e,2)}function zLe(t,e){return Rt(1+Ml.count(da(t),t),e,3)}function qX(t,e){return Rt(t.getMilliseconds(),e,3)}function QLe(t,e){return qX(t,e)+"000"}function GLe(t,e){return Rt(t.getMonth()+1,e,2)}function WLe(t,e){return Rt(t.getMinutes(),e,2)}function VLe(t,e){return Rt(t.getSeconds(),e,2)}function YLe(t){var e=t.getDay();return e===0?7:e}function KLe(t,e){return Rt(j2.count(da(t)-1,t),e,2)}function HX(t){var e=t.getDay();return e>=4||e===0?U2(t):U2.ceil(t)}function XLe(t,e){return t=HX(t),Rt(U2.count(da(t),t)+(da(t).getDay()===4),e,2)}function JLe(t){return t.getDay()}function ZLe(t,e){return Rt(pC.count(da(t)-1,t),e,2)}function eIe(t,e){return Rt(t.getFullYear()%100,e,2)}function tIe(t,e){return t=HX(t),Rt(t.getFullYear()%100,e,2)}function nIe(t,e){return Rt(t.getFullYear()%1e4,e,4)}function rIe(t,e){var n=t.getDay();return t=n>=4||n===0?U2(t):U2.ceil(t),Rt(t.getFullYear()%1e4,e,4)}function iIe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Rt(e/60|0,"0",2)+Rt(e%60,"0",2)}function zX(t,e){return Rt(t.getUTCDate(),e,2)}function sIe(t,e){return Rt(t.getUTCHours(),e,2)}function oIe(t,e){return Rt(t.getUTCHours()%12||12,e,2)}function uIe(t,e){return Rt(1+mc.count(ha(t),t),e,3)}function QX(t,e){return Rt(t.getUTCMilliseconds(),e,3)}function aIe(t,e){return QX(t,e)+"000"}function lIe(t,e){return Rt(t.getUTCMonth()+1,e,2)}function cIe(t,e){return Rt(t.getUTCMinutes(),e,2)}function fIe(t,e){return Rt(t.getUTCSeconds(),e,2)}function xIe(t){var e=t.getUTCDay();return e===0?7:e}function dIe(t,e){return Rt(q2.count(ha(t)-1,t),e,2)}function GX(t){var e=t.getUTCDay();return e>=4||e===0?H2(t):H2.ceil(t)}function hIe(t,e){return t=GX(t),Rt(H2.count(ha(t),t)+(ha(t).getUTCDay()===4),e,2)}function pIe(t){return t.getUTCDay()}function gIe(t,e){return Rt(gC.count(ha(t)-1,t),e,2)}function mIe(t,e){return Rt(t.getUTCFullYear()%100,e,2)}function yIe(t,e){return t=GX(t),Rt(t.getUTCFullYear()%100,e,2)}function EIe(t,e){return Rt(t.getUTCFullYear()%1e4,e,4)}function AIe(t,e){var n=t.getUTCDay();return t=n>=4||n===0?H2(t):H2.ceil(t),Rt(t.getUTCFullYear()%1e4,e,4)}function vIe(){return"+0000"}function WX(){return"%"}function VX(t){return+t}function YX(t){return Math.floor(+t/1e3)}var Q2,W8,KX,V8,XX;SIe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function SIe(t){return Q2=$X(t),W8=Q2.format,KX=Q2.parse,V8=Q2.utcFormat,XX=Q2.utcParse,Q2}function z3(t){const e={};return n=>e[n]||(e[n]=t(n))}function _Ie(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let s=CIe(r,i);const o=s<r.length?r.slice(s):"";for(;--s>i;)if(r[s]!=="0"){++s;break}return r.slice(0,s)+o}}function CIe(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function JX(t){const e=z3(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=qx(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return _Ie(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,s,o){o=qx(o??",f");const u=gc(r,i,s),a=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=EX(u,a))||(o.precision=l),n(o,a);case"":case"e":case"g":case"p":case"r":{isNaN(l=AX(u,a))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=yX(u))||(o.precision=l-(o.type==="%")*2);break}}return e(o)}}}let Y8;bIe();function bIe(){return Y8=JX({format:cC,formatPrefix:L8})}function ZX(t){return JX(mX(t))}function K8(t){return arguments.length?Y8=ZX(t):Y8}function eJ(t,e,n){n=n||{},He(n)||Se(`Invalid time multi-format specifier: ${n}`);const r=e(iu),i=e(Eo),s=e(yo),o=e(js),u=e(mr),a=e(Ni),l=e(Ms),c=e(Zr),f=t(n[pa]||".%L"),x=t(n[iu]||":%S"),h=t(n[Eo]||"%I:%M"),p=t(n[yo]||"%I %p"),m=t(n[js]||n[Di]||"%a %d"),g=t(n[mr]||"%b %d"),y=t(n[Ni]||"%B"),E=t(n[Ms]||"%B"),A=t(n[Zr]||"%Y");return v=>(r(v)<v?f:i(v)<v?x:s(v)<v?h:o(v)<v?p:a(v)<v?u(v)<v?m:g:c(v)<v?l(v)<v?y:E:A)(v)}function tJ(t){const e=z3(t.format),n=z3(t.utcFormat);return{timeFormat:r=>je(r)?e(r):eJ(e,w3,r),utcFormat:r=>je(r)?n(r):eJ(n,L3,r),timeParse:z3(t.parse),utcParse:z3(t.utcParse)}}let X8;TIe();function TIe(){return X8=tJ({format:W8,parse:KX,utcFormat:V8,utcParse:XX})}function nJ(t){return tJ($X(t))}function yC(t){return arguments.length?X8=nJ(t):X8}const J8=(t,e)=>ft({},t,e);function rJ(t,e){const n=t?ZX(t):K8(),r=e?nJ(e):yC();return J8(n,r)}function RIe(t,e){const n=arguments.length;return n&&n!==2&&Se("defaultLocale expects either zero or two arguments."),n?J8(K8(t),yC(e)):J8(K8(),yC())}const OIe=/^(data:|([A-Za-z]+:)?\/\/)/,NIe=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,DIe=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,iJ="file://";function FIe(t,e){return n=>({options:n||{},sanitize:LIe,load:wIe,fileAccess:!!e,file:IIe(e),http:BIe(t)})}async function wIe(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function LIe(t,e){e=ft({},this.options,e);const n=this.fileAccess,r={href:null};let i,s,o;const u=NIe.test(t.replace(DIe,""));(t==null||typeof t!="string"||!u)&&Se("Sanitize failure, invalid URI: "+we(t));const a=OIe.test(t);return(o=e.baseURL)&&!a&&(!t.startsWith("/")&&!o.endsWith("/")&&(t="/"+t),t=o+t),s=(i=t.startsWith(iJ))||e.mode==="file"||e.mode!=="http"&&!a&&n,i?t=t.slice(iJ.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),s=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!s}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function IIe(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,s)=>{i?r(i):n(s)})}):$Ie}async function $Ie(){Se("No file system access.")}function BIe(t){return t?async function(e,n){const r=ft({},this.options.http,n),i=n&&n.response,s=await t(e,r);return s.ok?ct(s[i])?s[i]():s.text():Se(s.status+""+s.statusText)}:kIe}async function kIe(){Se("No HTTP fetch method available.")}const PIe=t=>t!=null&&t===t,MIe=t=>t==="true"||t==="false"||t===!0||t===!1,jIe=t=>!Number.isNaN(Date.parse(t)),sJ=t=>!Number.isNaN(+t)&&!(t instanceof Date),UIe=t=>sJ(t)&&Number.isInteger(+t),oJ={boolean:zY,integer:_i,number:_i,date:QY,string:GY,unknown:Si},EC=[MIe,UIe,sJ,jIe],qIe=["boolean","integer","number","date"];function HIe(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=EC.length,i=EC.map((s,o)=>o+1);for(let s=0,o=0,u,a;s<n;++s)for(a=e?t[s][e]:t[s],u=0;u<r;++u)if(i[u]&&PIe(a)&&!EC[u](a)&&(i[u]=0,++o,o===EC.length))return"string";return qIe[i.reduce((s,o)=>s===0?o:s,0)-1]}function zIe(t,e){return e.reduce((n,r)=>(n[r]=HIe(t,r),n),{})}function uJ(t){const e=function(n,r){const i={delimiter:t};return Z8(n,r?ft(r,i):i)};return e.responseType="text",e}function Z8(t,e){return e.header&&(t=e.header.map(we).join(e.delimiter)+`
|
|
1464
1464
|
`+t),f9e(e.delimiter).parse(t+"")}Z8.responseType="text";function QIe(t){return typeof Buffer=="function"&&ct(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function ew(t,e){const n=e&&e.property?Bs(e.property):Si;return He(t)&&!QIe(t)?GIe(n(t),e):n(JSON.parse(t))}ew.responseType="json";function GIe(t,e){return!_e(t)&&BFe(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const WIe={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function aJ(t,e){let n,r,i,s;return t=ew(t,e),e&&e.feature?(n=p9e,i=e.feature):e&&e.mesh?(n=m9e,i=e.mesh,s=WIe[e.filter]):Se("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,s):Se("Invalid TopoJSON object: "+i),r&&r.features||[r]}aJ.responseType="json";const tw={dsv:Z8,csv:uJ(","),tsv:uJ(" "),json:ew,topojson:aJ};function lJ(t,e){return arguments.length>1?(tw[t]=e,this):Je(tw,t)?tw[t]:null}function VIe(t){const e=lJ(t);return e&&e.responseType||"text"}function YIe(t,e,n,r){e=e||{};const i=lJ(e.type||"json");return i||Se("Unknown data format type: "+e.type),t=i(t,e),e.parse&&KIe(t,e.parse,n,r),Je(t,"columns")&&delete t.columns,t}function KIe(t,e,n,r){if(!t.length)return;const i=yC();n=n||i.timeParse,r=r||i.utcParse;let s=t.columns||Object.keys(t[0]),o,u,a,l,c,f;e==="auto"&&(e=zIe(t,s)),s=Object.keys(e);const x=s.map(h=>{const p=e[h];let m,g;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),g=m[1],(g[0]==="'"&&g[g.length-1]==="'"||g[0]==='"'&&g[g.length-1]==='"')&&(g=g.slice(1,-1)),(m[0]==="utc"?r:n)(g);if(!oJ[p])throw Error("Illegal format pattern: "+h+":"+p);return oJ[p]});for(a=0,c=t.length,f=s.length;a<c;++a)for(o=t[a],l=0;l<f;++l)u=s[l],o[u]=x[l](o[u])}const nw=FIe(typeof fetch<"u"&&fetch,null);function AC(t){const e=t||Si,n=[],r={};return n.add=i=>{const s=e(i);return r[s]||(r[s]=1,n.push(i)),n},n.remove=i=>{const s=e(i);if(r[s]){r[s]=0;const o=n.indexOf(i);o>=0&&n.splice(o,1)}return n},n}async function vC(t,e){try{await e(t)}catch(n){t.error(n)}}const cJ=Symbol("vega_id");let XIe=1;function rw(t){return!!(t&&Ze(t))}function Ze(t){return t[cJ]}function fJ(t,e){return t[cJ]=e,t}function $t(t){const e=t===Object(t)?t:{data:t};return Ze(e)?e:fJ(e,XIe++)}function iw(t){return SC(t,$t({}))}function SC(t,e){for(const n in t)e[n]=t[n];return e}function xJ(t,e){return fJ(e,Ze(t))}function Gx(t,e){return t?e?(n,r)=>t(n,r)||Ze(e(n))-Ze(e(r)):(n,r)=>t(n,r)||Ze(n)-Ze(r):null}function dJ(t){return t&&t.constructor===G2}function G2(){const t=[],e=[],n=[],r=[],i=[];let s=null,o=!1;return{constructor:G2,insert(u){const a=Pe(u),l=a.length;for(let c=0;c<l;++c)t.push(a[c]);return this},remove(u){const a=ct(u)?r:e,l=Pe(u),c=l.length;for(let f=0;f<c;++f)a.push(l[f]);return this},modify(u,a,l){const c={field:a,value:Ci(l)};return ct(u)?(c.filter=u,i.push(c)):(c.tuple=u,n.push(c)),this},encode(u,a){return ct(u)?i.push({filter:u,field:a}):n.push({tuple:u,field:a}),this},clean(u){return s=u,this},reflow(){return o=!0,this},pulse(u,a){const l={},c={};let f,x,h,p,m,g;for(f=0,x=a.length;f<x;++f)l[Ze(a[f])]=1;for(f=0,x=e.length;f<x;++f)m=e[f],l[Ze(m)]=-1;for(f=0,x=r.length;f<x;++f)p=r[f],a.forEach(E=>{p(E)&&(l[Ze(E)]=-1)});for(f=0,x=t.length;f<x;++f)m=t[f],g=Ze(m),l[g]?l[g]=1:u.add.push($t(t[f]));for(f=0,x=a.length;f<x;++f)m=a[f],l[Ze(m)]<0&&u.rem.push(m);function y(E,A,v){v?E[A]=v(E):u.encode=A,o||(c[Ze(E)]=E)}for(f=0,x=n.length;f<x;++f)h=n[f],m=h.tuple,p=h.field,g=l[Ze(m)],g>0&&(y(m,p,h.value),u.modifies(p));for(f=0,x=i.length;f<x;++f)h=i[f],p=h.filter,a.forEach(E=>{p(E)&&l[Ze(E)]>0&&y(E,h.field,h.value)}),u.modifies(h.field);if(o)u.mod=e.length||r.length?a.filter(E=>l[Ze(E)]>0):a.slice();else for(g in c)u.mod.push(c[g]);return(s||s==null&&(e.length||r.length))&&u.clean(!0),u}}}const _C="_:mod:_";function sw(){Object.defineProperty(this,_C,{writable:!0,value:{}})}sw.prototype={set(t,e,n,r){const i=this,s=i[t],o=i[_C];return e!=null&&e>=0?(s[e]!==n||r)&&(s[e]=n,o[e+":"+t]=-1,o[t]=-1):(s!==n||r)&&(i[t]=n,o[t]=_e(n)?1+n.length:-1),i},modified(t,e){const n=this[_C];if(arguments.length){if(_e(t)){for(let r=0;r<t.length;++r)if(n[t[r]])return!0;return!1}}else{for(const r in n)if(n[r])return!0;return!1}return e!=null&&e>=0?e+1<n[t]||!!n[e+":"+t]:!!n[t]},clear(){return this[_C]={},this}};let JIe=0;const ZIe="pulse",e$e=new sw,t$e=1,n$e=2;function Xt(t,e,n,r){this.id=++JIe,this.value=t,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,e&&(this._update=e),n&&this.parameters(n,r)}function hJ(t){return function(e){const n=this.flags;return arguments.length===0?!!(n&t):(this.flags=e?n|t:n&~t,this)}}Xt.prototype={targets(){return this._targets||(this._targets=AC(B5))},set(t){return this.value!==t?(this.value=t,1):0},skip:hJ(t$e),modified:hJ(n$e),parameters(t,e,n){e=e!==!1;const r=this._argval=this._argval||new sw,i=this._argops=this._argops||[],s=[];let o,u,a,l;const c=(f,x,h)=>{h instanceof Xt?(h!==this&&(e&&h.targets().add(this),s.push(h)),i.push({op:h,name:f,index:x})):r.set(f,x,h)};for(o in t)if(u=t[o],o===ZIe)Pe(u).forEach(f=>{f instanceof Xt?f!==this&&(f.targets().add(this),s.push(f)):Se("Pulse parameters must be operator instances.")}),this.source=u;else if(_e(u))for(r.set(o,-1,Array(a=u.length)),l=0;l<a;++l)c(o,l,u[l]);else c(o,-1,u);return this.marshall().clear(),n&&(i.initonly=!0),s},marshall(t){const e=this._argval||e$e,n=this._argops;let r,i,s,o;if(n){const u=n.length;for(i=0;i<u;++i)r=n[i],s=r.op,o=s.modified()&&s.stamp===t,e.set(r.name,r.index,s.value,o);if(n.initonly){for(i=0;i<u;++i)r=n[i],r.op.targets().remove(this);this._argops=null,this._update=null}}return e},detach(){const t=this._argops;let e,n,r,i;if(t)for(e=0,n=t.length;e<n;++e)r=t[e],i=r.op,i._targets&&i._targets.remove(this);this.pulse=null,this.source=null},evaluate(t){const e=this._update;if(e){const n=this.marshall(t.stamp),r=e.call(this,n,t);if(n.clear(),r!==this.value)this.value=r;else if(!this.modified())return t.StopPropagation}},run(t){if(t.stamp<this.stamp)return t.StopPropagation;let e;return this.skip()?(this.skip(!1),e=0):e=this.evaluate(t),this.pulse=e||t}};function r$e(t,e,n,r){let i=1,s;return t instanceof Xt?s=t:t&&t.prototype instanceof Xt?s=new t:ct(t)?s=new Xt(null,t):(i=0,s=new Xt(t,e)),this.rank(s),i&&(r=n,n=e),n&&this.connect(s,s.parameters(n,r)),this.touch(s),s}function i$e(t,e){const n=t.rank,r=e.length;for(let i=0;i<r;++i)if(n<e[i].rank){this.rerank(t);return}}let s$e=0;function ow(t,e,n){this.id=++s$e,this.value=null,n&&(this.receive=n),t&&(this._filter=t),e&&(this._apply=e)}function yc(t,e,n){return new ow(t,e,n)}ow.prototype={_filter:Zo,_apply:Si,targets(){return this._targets||(this._targets=AC(B5))},consume(t){return arguments.length?(this._consume=!!t,this):!!this._consume},receive(t){if(this._filter(t)){const e=this.value=this._apply(t),n=this._targets,r=n?n.length:0;for(let i=0;i<r;++i)n[i].receive(e);this._consume&&(t.preventDefault(),t.stopPropagation())}},filter(t){const e=yc(t);return this.targets().add(e),e},apply(t){const e=yc(null,t);return this.targets().add(e),e},merge(){const t=yc();this.targets().add(t);for(let e=0,n=arguments.length;e<n;++e)arguments[e].targets().add(t);return t},throttle(t){let e=-1;return this.filter(()=>{const n=Date.now();return n-e>t?(e=n,1):0})},debounce(t){const e=yc();return this.targets().add(yc(null,null,qY(t,n=>{const r=n.dataflow;e.receive(n),r&&r.run&&r.run()}))),e},between(t,e){let n=!1;return t.targets().add(yc(null,null,()=>n=!0)),e.targets().add(yc(null,null,()=>n=!1)),this.filter(()=>n)},detach(){this._filter=Zo,this._targets=null}};function o$e(t,e,n,r){const i=this,s=yc(n,r),o=function(l){l.dataflow=i;try{s.receive(l)}catch(c){i.error(c)}finally{i.run()}};let u;typeof t=="string"&&typeof document<"u"?u=document.querySelectorAll(t):u=Pe(t);const a=u.length;for(let l=0;l<a;++l)u[l].addEventListener(e,o);return s}function u$e(t,e){const n=this.locale();return YIe(t,e,n.timeParse,n.utcParse)}function a$e(t,e,n){return e=this.parse(e,n),this.pulse(t,this.changeset().insert(e))}async function l$e(t,e){const n=this;let r=0,i;try{i=await n.loader().load(t,{context:"dataflow",response:VIe(e&&e.type)});try{i=n.parse(i,e)}catch(s){r=-2,n.warn("Data ingestion failed",t,s)}}catch(s){r=-1,n.warn("Loading failed",t,s)}return{data:i,status:r}}async function c$e(t,e,n){const r=this,i=r._pending||f$e(r);i.requests+=1;const s=await r.request(e,n);return r.pulse(t,r.changeset().remove(Zo).insert(s.data||[])),i.done(),s}function f$e(t){let e;const n=new Promise(r=>e=r);return n.requests=0,n.done=()=>{--n.requests===0&&(t._pending=null,e(t))},t._pending=n}const x$e={skip:!0};function d$e(t,e,n,r,i){return(t instanceof Xt?p$e:h$e)(this,t,e,n,r,i),this}function h$e(t,e,n,r,i,s){const o=ft({},s,x$e);let u,a;ct(n)||(n=Ci(n)),r===void 0?u=l=>t.touch(n(l)):ct(r)?(a=new Xt(null,r,i,!1),u=l=>{a.evaluate(l);const c=n(l),f=a.value;dJ(f)?t.pulse(c,f,s):t.update(c,f,o)}):u=l=>t.update(n(l),r,o),e.apply(u)}function p$e(t,e,n,r,i,s){if(r===void 0)e.targets().add(n);else{const o=s||{},u=new Xt(null,g$e(n,r),i,!1);u.modified(o.force),u.rank=e.rank,e.targets().add(u),n&&(u.skip(!0),u.value=n.value,u.targets().add(n),t.connect(n,[u]))}}function g$e(t,e){return e=ct(e)?e:Ci(e),t?function(n,r){const i=e(n,r);return t.skip()||(t.skip(i!==this.value).value=i),i}:e}function m$e(t){t.rank=++this._rank}function y$e(t){const e=[t];let n,r,i;for(;e.length;)if(this.rank(n=e.pop()),r=n._targets)for(i=r.length;--i>=0;)e.push(n=r[i]),n===t&&Se("Cycle detected in dataflow graph.")}const CC={},ga=1,Ec=2,Ul=4,E$e=ga|Ec,pJ=ga|Ul,W2=ga|Ec|Ul,gJ=8,Q3=16,mJ=32,yJ=64;function Wx(t,e,n){this.dataflow=t,this.stamp=e??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function uw(t,e){const n=[];return Lx(t,e,r=>n.push(r)),n}function EJ(t,e){const n={};return t.visit(e,r=>{n[Ze(r)]=1}),r=>n[Ze(r)]?null:r}function bC(t,e){return t?(n,r)=>t(n,r)&&e(n,r):e}Wx.prototype={StopPropagation:CC,ADD:ga,REM:Ec,MOD:Ul,ADD_REM:E$e,ADD_MOD:pJ,ALL:W2,REFLOW:gJ,SOURCE:Q3,NO_SOURCE:mJ,NO_FIELDS:yJ,fork(t){return new Wx(this.dataflow).init(this,t)},clone(){const t=this.fork(W2);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(W2|Q3)},addAll(){let t=this;return!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length||(t=new Wx(this.dataflow).init(this),t.add=t.source,t.rem=[]),t},init(t,e){const n=this;return n.stamp=t.stamp,n.encode=t.encode,t.fields&&!(e&yJ)&&(n.fields=t.fields),e&ga?(n.addF=t.addF,n.add=t.add):(n.addF=null,n.add=[]),e&Ec?(n.remF=t.remF,n.rem=t.rem):(n.remF=null,n.rem=[]),e&Ul?(n.modF=t.modF,n.mod=t.mod):(n.modF=null,n.mod=[]),e&mJ?(n.srcF=null,n.source=null):(n.srcF=t.srcF,n.source=t.source,t.cleans&&(n.cleans=t.cleans)),n},runAfter(t){this.dataflow.runAfter(t)},changed(t){const e=t||W2;return e&ga&&this.add.length||e&Ec&&this.rem.length||e&Ul&&this.mod.length},reflow(t){if(t)return this.fork(W2).reflow();const e=this.add.length,n=this.source&&this.source.length;return n&&n!==e&&(this.mod=this.source,e&&this.filter(Ul,EJ(this,ga))),this},clean(t){return arguments.length?(this.cleans=!!t,this):this.cleans},modifies(t){const e=this.fields||(this.fields={});return _e(t)?t.forEach(n=>e[n]=!0):e[t]=!0,this},modified(t,e){const n=this.fields;return(e||this.mod.length)&&n?arguments.length?_e(t)?t.some(r=>n[r]):n[t]:!!n:!1},filter(t,e){const n=this;return t&ga&&(n.addF=bC(n.addF,e)),t&Ec&&(n.remF=bC(n.remF,e)),t&Ul&&(n.modF=bC(n.modF,e)),t&Q3&&(n.srcF=bC(n.srcF,e)),n},materialize(t){t=t||W2;const e=this;return t&ga&&e.addF&&(e.add=uw(e.add,e.addF),e.addF=null),t&Ec&&e.remF&&(e.rem=uw(e.rem,e.remF),e.remF=null),t&Ul&&e.modF&&(e.mod=uw(e.mod,e.modF),e.modF=null),t&Q3&&e.srcF&&(e.source=e.source.filter(e.srcF),e.srcF=null),e},visit(t,e){const n=this,r=e;if(t&Q3)return Lx(n.source,n.srcF,r),n;t&ga&&Lx(n.add,n.addF,r),t&Ec&&Lx(n.rem,n.remF,r),t&Ul&&Lx(n.mod,n.modF,r);const i=n.source;if(t&gJ&&i){const s=n.add.length+n.mod.length;s===i.length||(s?Lx(i,EJ(n,pJ),r):Lx(i,n.srcF,r))}return n}};function AJ(t,e,n,r){const i=this;let s=0;this.dataflow=t,this.stamp=e,this.fields=null,this.encode=r||null,this.pulses=n;for(const o of n)if(o.stamp===e){if(o.fields){const u=i.fields||(i.fields={});for(const a in o.fields)u[a]=1}o.changed(i.ADD)&&(s|=i.ADD),o.changed(i.REM)&&(s|=i.REM),o.changed(i.MOD)&&(s|=i.MOD)}this.changes=s}Fe(AJ,Wx,{fork(t){const e=new Wx(this.dataflow).init(this,t&this.NO_FIELDS);return t!==void 0&&(t&e.ADD&&this.visit(e.ADD,n=>e.add.push(n)),t&e.REM&&this.visit(e.REM,n=>e.rem.push(n)),t&e.MOD&&this.visit(e.MOD,n=>e.mod.push(n))),e},changed(t){return this.changes&t},modified(t){const e=this,n=e.fields;return n&&e.changes&e.MOD?_e(t)?t.some(r=>n[r]):n[t]:0},filter(){Se("MultiPulse does not support filtering.")},materialize(){Se("MultiPulse does not support materialization.")},visit(t,e){const n=this,r=n.pulses,i=r.length;let s=0;if(t&n.SOURCE)for(;s<i;++s)r[s].visit(t,e);else for(;s<i;++s)r[s].stamp===n.stamp&&r[s].visit(t,e);return n}});async function A$e(t,e,n){const r=this,i=[];if(r._pulse)return vJ(r);if(r._pending&&await r._pending,e&&await vC(r,e),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const s=++r._clock;r._pulse=new Wx(r,s,t),r._touched.forEach(c=>r._enqueue(c,!0)),r._touched=AC(B5);let o=0,u,a,l;try{for(;r._heap.size()>0;){if(u=r._heap.pop(),u.rank!==u.qrank){r._enqueue(u,!0);continue}a=u.run(r._getPulse(u,t)),a.then?a=await a:a.async&&(i.push(a.async),a=CC),a!==CC&&u._targets&&u._targets.forEach(c=>r._enqueue(c)),++o}}catch(c){r._heap.clear(),l=c}if(r._input={},r._pulse=null,r.debug(`Pulse ${s}: ${o} operators`),l&&(r._postrun=[],r.error(l)),r._postrun.length){const c=r._postrun.sort((f,x)=>x.priority-f.priority);r._postrun=[];for(let f=0;f<c.length;++f)await vC(r,c[f].callback)}return n&&await vC(r,n),i.length&&Promise.all(i).then(c=>r.runAsync(null,()=>{c.forEach(f=>{try{f(r)}catch(x){r.error(x)}})})),r}async function v$e(t,e,n){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,e,n)).then(r,r),this._running}function S$e(t,e,n){return this._pulse?vJ(this):(this.evaluate(t,e,n),this)}function _$e(t,e,n){if(this._pulse||e)this._postrun.push({priority:n||0,callback:t});else try{t(this)}catch(r){this.error(r)}}function vJ(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}function C$e(t,e){const n=t.stamp<this._clock;n&&(t.stamp=this._clock),(n||e)&&(t.qrank=t.rank,this._heap.push(t))}function b$e(t,e){const n=t.source,r=this._clock;return n&&_e(n)?new AJ(this,r,n.map(i=>i.pulse),e):this._input[t.id]||T$e(this._pulse,n&&n.pulse)}function T$e(t,e){return e&&e.stamp===t.stamp?e:(t=t.fork(),e&&e!==CC&&(t.source=e.source),t)}const aw={skip:!1,force:!1};function R$e(t,e){const n=e||aw;return this._pulse?this._enqueue(t):this._touched.add(t),n.skip&&t.skip(!0),this}function O$e(t,e,n){const r=n||aw;return(t.set(e)||r.force)&&this.touch(t,r),this}function N$e(t,e,n){this.touch(t,n||aw);const r=new Wx(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._input[t.id]=e.pulse(r,i),this}function D$e(t){let e=[];return{clear:()=>e=[],size:()=>e.length,peek:()=>e[0],push:n=>(e.push(n),SJ(e,0,e.length-1,t)),pop:()=>{const n=e.pop();let r;return e.length?(r=e[0],e[0]=n,F$e(e,0,t)):r=n,r}}}function SJ(t,e,n,r){let i,s;const o=t[n];for(;n>e;){if(s=n-1>>1,i=t[s],r(o,i)<0){t[n]=i,n=s;continue}break}return t[n]=o}function F$e(t,e,n){const r=e,i=t.length,s=t[e];let o=(e<<1)+1,u;for(;o<i;)u=o+1,u<i&&n(t[o],t[u])>=0&&(o=u),t[e]=t[o],e=o,o=(e<<1)+1;return t[e]=s,SJ(t,r,e,n)}function G3(){this.logger(wY()),this.logLevel(DY),this._clock=0,this._rank=0,this._locale=RIe();try{this._loader=nw()}catch{}this._touched=AC(B5),this._input={},this._pulse=null,this._heap=D$e((t,e)=>t.qrank-e.qrank),this._postrun=[]}function W3(t){return function(){return this._log[t].apply(this,arguments)}}G3.prototype={stamp(){return this._clock},loader(t){return arguments.length?(this._loader=t,this):this._loader},locale(t){return arguments.length?(this._locale=t,this):this._locale},logger(t){return arguments.length?(this._log=t,this):this._log},error:W3("error"),warn:W3("warn"),info:W3("info"),debug:W3("debug"),logLevel:W3("level"),cleanThreshold:1e4,add:r$e,connect:i$e,rank:m$e,rerank:y$e,pulse:N$e,touch:R$e,update:O$e,changeset:G2,ingest:a$e,parse:u$e,preload:c$e,request:l$e,events:o$e,on:d$e,evaluate:A$e,run:S$e,runAsync:v$e,runAfter:_$e,_enqueue:C$e,_getPulse:b$e};function pe(t,e){Xt.call(this,t,null,e)}Fe(pe,Xt,{run(t){if(t.stamp<this.stamp)return t.StopPropagation;let e;return this.skip()?this.skip(!1):e=this.evaluate(t),e=e||t,e.then?e=e.then(n=>this.pulse=n):e!==t.StopPropagation&&(this.pulse=e),e},evaluate(t){const e=this.marshall(t.stamp),n=this.transform(e,t);return e.clear(),n},transform(){}});const V3={};function w$e(t){const e=L$e(t);return e&&e.Definition||null}function L$e(t){return t=t&&t.toLowerCase(),Je(V3,t)?V3[t]:null}function*_J(t,e){if(e==null)for(let n of t)n!=null&&n!==""&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)r=e(r,++n,t),r!=null&&r!==""&&(r=+r)>=r&&(yield r)}}function CJ(t,e,n){const r=Float64Array.from(_J(t,n));return r.sort(Il),e.map(i=>uX(r,i))}function bJ(t,e){return CJ(t,[.25,.5,.75],e)}function TJ(t,e){const n=t.length,r=b9e(t,e),i=bJ(t,e),s=(i[2]-i[0])/1.34;return 1.06*(Math.min(r,s)||r||Math.abs(i[0])||1)*Math.pow(n,-.2)}function I$e(t){const e=t.maxbins||20,n=t.base||10,r=Math.log(n),i=t.divide||[5,2];let s=t.extent[0],o=t.extent[1],u,a,l,c,f,x;const h=t.span||o-s||Math.abs(s)||1;if(t.step)u=t.step;else if(t.steps){for(c=h/e,f=0,x=t.steps.length;f<x&&t.steps[f]<c;++f);u=t.steps[Math.max(0,f-1)]}else{for(a=Math.ceil(Math.log(e)/r),l=t.minstep||0,u=Math.max(l,Math.pow(n,Math.round(Math.log(h)/r)-a));Math.ceil(h/u)>e;)u*=n;for(f=0,x=i.length;f<x;++f)c=u/i[f],c>=l&&h/c<=e&&(u=c)}c=Math.log(u);const p=c>=0?0:~~(-c/r)+1,m=Math.pow(n,-p-1);return(t.nice||t.nice===void 0)&&(c=Math.floor(s/u+m)*u,s=s<c?c-u:c,o=Math.ceil(o/u)*u),{start:s,stop:o===s?s+u:o,step:u}}var ql=Math.random;function $$e(t,e,n,r){if(!t.length)return[void 0,void 0];const i=Float64Array.from(_J(t,r)),s=i.length,o=e;let u,a,l,c;for(l=0,c=Array(o);l<o;++l){for(u=0,a=0;a<s;++a)u+=i[~~(ql()*s)];c[l]=u/s}return c.sort(Il),[F8(c,n/2),F8(c,1-n/2)]}function B$e(t,e,n,r){r=r||(x=>x);const i=t.length,s=new Float64Array(i);let o=0,u=1,a=r(t[0]),l=a,c=a+e,f;for(;u<i;++u){if(f=r(t[u]),f>=c){for(l=(a+l)/2;o<u;++o)s[o]=l;c=f+e,a=f}l=f}for(l=(a+l)/2;o<u;++o)s[o]=l;return n?k$e(s,e+e/4):s}function k$e(t,e){const n=t.length;let r=0,i=1,s,o;for(;t[r]===t[i];)++i;for(;i<n;){for(s=i+1;t[i]===t[s];)++s;if(t[i]-t[i-1]<e){for(o=i+(r+s-i-i>>1);o<i;)t[o++]=t[i];for(;o>i;)t[o--]=t[r]}r=i,i=s}return t}const RJ=Math.sqrt(2*Math.PI),P$e=Math.SQRT2;let Y3=NaN;function lw(t,e){t=t||0,e=e??1;let n=0,r=0,i,s;if(Y3===Y3)n=Y3,Y3=NaN;else{do n=ql()*2-1,r=ql()*2-1,i=n*n+r*r;while(i===0||i>1);s=Math.sqrt(-2*Math.log(i)/i),n*=s,Y3=r*s}return t+n*e}function OJ(t,e,n){n=n??1;const r=(t-(e||0))/n;return Math.exp(-.5*r*r)/(n*RJ)}function cw(t,e,n){e=e||0,n=n??1;const r=(t-e)/n,i=Math.abs(r);let s;if(i>37)s=0;else{const o=Math.exp(-i*i/2);let u;i<7.07106781186547?(u=.0352624965998911*i+.700383064443688,u=u*i+6.37396220353165,u=u*i+33.912866078383,u=u*i+112.079291497871,u=u*i+221.213596169931,u=u*i+220.206867912376,s=o*u,u=.0883883476483184*i+1.75566716318264,u=u*i+16.064177579207,u=u*i+86.7807322029461,u=u*i+296.564248779674,u=u*i+637.333633378831,u=u*i+793.826512519948,u=u*i+440.413735824752,s=s/u):(u=i+.65,u=i+4/u,u=i+3/u,u=i+2/u,u=i+1/u,s=o/u/2.506628274631)}return r>0?1-s:s}function fw(t,e,n){return t<0||t>1?NaN:(e||0)+(n??1)*P$e*M$e(2*t-1)}function M$e(t){let e=-Math.log((1-t)*(1+t)),n;return e<6.25?(e-=3.125,n=-364441206401782e-35,n=-16850591381820166e-35+n*e,n=128584807152564e-32+n*e,n=11157877678025181e-33+n*e,n=-1333171662854621e-31+n*e,n=20972767875968562e-33+n*e,n=6637638134358324e-30+n*e,n=-4054566272975207e-29+n*e,n=-8151934197605472e-29+n*e,n=26335093153082323e-28+n*e,n=-12975133253453532e-27+n*e,n=-5415412054294628e-26+n*e,n=10512122733215323e-25+n*e,n=-4112633980346984e-24+n*e,n=-29070369957882005e-24+n*e,n=42347877827932404e-23+n*e,n=-13654692000834679e-22+n*e,n=-13882523362786469e-21+n*e,n=.00018673420803405714+n*e,n=-.000740702534166267+n*e,n=-.006033670871430149+n*e,n=.24015818242558962+n*e,n=1.6536545626831027+n*e):e<16?(e=Math.sqrt(e)-3.25,n=22137376921775787e-25,n=9075656193888539e-23+n*e,n=-27517406297064545e-23+n*e,n=18239629214389228e-24+n*e,n=15027403968909828e-22+n*e,n=-4013867526981546e-21+n*e,n=29234449089955446e-22+n*e,n=12475304481671779e-21+n*e,n=-47318229009055734e-21+n*e,n=6828485145957318e-20+n*e,n=24031110387097894e-21+n*e,n=-.0003550375203628475+n*e,n=.0009532893797373805+n*e,n=-.0016882755560235047+n*e,n=.002491442096107851+n*e,n=-.003751208507569241+n*e,n=.005370914553590064+n*e,n=1.0052589676941592+n*e,n=3.0838856104922208+n*e):Number.isFinite(e)?(e=Math.sqrt(e)-5,n=-27109920616438573e-27,n=-2555641816996525e-25+n*e,n=15076572693500548e-25+n*e,n=-3789465440126737e-24+n*e,n=761570120807834e-23+n*e,n=-1496002662714924e-23+n*e,n=2914795345090108e-23+n*e,n=-6771199775845234e-23+n*e,n=22900482228026655e-23+n*e,n=-99298272942317e-20+n*e,n=4526062597223154e-21+n*e,n=-1968177810553167e-20+n*e,n=7599527703001776e-20+n*e,n=-.00021503011930044477+n*e,n=-.00013871931833623122+n*e,n=1.0103004648645344+n*e,n=4.849906401408584+n*e):n=1/0,n*t}function NJ(t,e){let n,r;const i={mean(s){return arguments.length?(n=s||0,i):n},stdev(s){return arguments.length?(r=s??1,i):r},sample:()=>lw(n,r),pdf:s=>OJ(s,n,r),cdf:s=>cw(s,n,r),icdf:s=>fw(s,n,r)};return i.mean(t).stdev(e)}function DJ(t,e){const n=NJ();let r=0;const i={data(s){return arguments.length?(t=s,r=s?s.length:0,i.bandwidth(e)):t},bandwidth(s){return arguments.length?(e=s,!e&&t&&(e=TJ(t)),i):e},sample(){return t[~~(ql()*r)]+e*n.sample()},pdf(s){let o=0,u=0;for(;u<r;++u)o+=n.pdf((s-t[u])/e);return o/e/r},cdf(s){let o=0,u=0;for(;u<r;++u)o+=n.cdf((s-t[u])/e);return o/r},icdf(){throw Error("KDE icdf not supported.")}};return i.data(t)}function FJ(t,e){return t=t||0,e=e??1,Math.exp(t+lw()*e)}function wJ(t,e,n){if(t<=0)return 0;e=e||0,n=n??1;const r=(Math.log(t)-e)/n;return Math.exp(-.5*r*r)/(n*RJ*t)}function LJ(t,e,n){return cw(Math.log(t),e,n)}function IJ(t,e,n){return Math.exp(fw(t,e,n))}function j$e(t,e){let n,r;const i={mean(s){return arguments.length?(n=s||0,i):n},stdev(s){return arguments.length?(r=s??1,i):r},sample:()=>FJ(n,r),pdf:s=>wJ(s,n,r),cdf:s=>LJ(s,n,r),icdf:s=>IJ(s,n,r)};return i.mean(t).stdev(e)}function U$e(t,e){let n=0,r;function i(o){const u=[];let a=0,l;for(l=0;l<n;++l)a+=u[l]=o[l]==null?1:+o[l];for(l=0;l<n;++l)u[l]/=a;return u}const s={weights(o){return arguments.length?(r=i(e=o||[]),s):e},distributions(o){return arguments.length?(o?(n=o.length,t=o):(n=0,t=[]),s.weights(e)):t},sample(){const o=ql();let u=t[n-1],a=r[0],l=0;for(;l<n-1;a+=r[++l])if(o<a){u=t[l];break}return u.sample()},pdf(o){let u=0,a=0;for(;a<n;++a)u+=r[a]*t[a].pdf(o);return u},cdf(o){let u=0,a=0;for(;a<n;++a)u+=r[a]*t[a].cdf(o);return u},icdf(){throw Error("Mixture icdf not supported.")}};return s.distributions(t).weights(e)}function $J(t,e){return e==null&&(e=t??1,t=0),t+(e-t)*ql()}function BJ(t,e,n){return n==null&&(n=e??1,e=0),t>=e&&t<=n?1/(n-e):0}function kJ(t,e,n){return n==null&&(n=e??1,e=0),t<e?0:t>n?1:(t-e)/(n-e)}function PJ(t,e,n){return n==null&&(n=e??1,e=0),t>=0&&t<=1?e+t*(n-e):NaN}function q$e(t,e){let n,r;const i={min(s){return arguments.length?(n=s||0,i):n},max(s){return arguments.length?(r=s??1,i):r},sample:()=>$J(n,r),pdf:s=>BJ(s,n,r),cdf:s=>kJ(s,n,r),icdf:s=>PJ(s,n,r)};return e==null&&(e=t??1,t=0),i.min(t).max(e)}function K3(t,e,n,r){const i=r-t*t,s=Math.abs(i)<1e-24?0:(n-t*e)/i;return[e-s*t,s]}function TC(t,e,n,r){t=t.filter(h=>{let p=e(h),m=n(h);return p!=null&&(p=+p)>=p&&m!=null&&(m=+m)>=m}),r&&t.sort((h,p)=>e(h)-e(p));const i=t.length,s=new Float64Array(i),o=new Float64Array(i);let u=0,a=0,l=0,c,f,x;for(x of t)s[u]=c=+e(x),o[u]=f=+n(x),++u,a+=(c-a)/u,l+=(f-l)/u;for(u=0;u<i;++u)s[u]-=a,o[u]-=l;return[s,o,a,l]}function X3(t,e,n,r){let i=-1,s,o;for(const u of t)s=e(u),o=n(u),s!=null&&(s=+s)>=s&&o!=null&&(o=+o)>=o&&r(s,o,++i)}function V2(t,e,n,r,i){let s=0,o=0;return X3(t,e,n,(u,a)=>{const l=a-i(u),c=a-r;s+=l*l,o+=c*c}),1-s/o}function MJ(t,e,n){let r=0,i=0,s=0,o=0,u=0;X3(t,e,n,(c,f)=>{++u,r+=(c-r)/u,i+=(f-i)/u,s+=(c*f-s)/u,o+=(c*c-o)/u});const a=K3(r,i,s,o),l=c=>a[0]+a[1]*c;return{coef:a,predict:l,rSquared:V2(t,e,n,i,l)}}function H$e(t,e,n){let r=0,i=0,s=0,o=0,u=0;X3(t,e,n,(c,f)=>{++u,c=Math.log(c),r+=(c-r)/u,i+=(f-i)/u,s+=(c*f-s)/u,o+=(c*c-o)/u});const a=K3(r,i,s,o),l=c=>a[0]+a[1]*Math.log(c);return{coef:a,predict:l,rSquared:V2(t,e,n,i,l)}}function z$e(t,e,n){const[r,i,s,o]=TC(t,e,n);let u=0,a=0,l=0,c=0,f=0,x,h,p;X3(t,e,n,(E,A)=>{x=r[f++],h=Math.log(A),p=x*A,u+=(A*h-u)/f,a+=(p-a)/f,l+=(p*h-l)/f,c+=(x*p-c)/f});const[m,g]=K3(a/o,u/o,l/o,c/o),y=E=>Math.exp(m+g*(E-s));return{coef:[Math.exp(m-g*s),g],predict:y,rSquared:V2(t,e,n,o,y)}}function Q$e(t,e,n){let r=0,i=0,s=0,o=0,u=0,a=0;X3(t,e,n,(f,x)=>{const h=Math.log(f),p=Math.log(x);++a,r+=(h-r)/a,i+=(p-i)/a,s+=(h*p-s)/a,o+=(h*h-o)/a,u+=(x-u)/a});const l=K3(r,i,s,o),c=f=>l[0]*Math.pow(f,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:V2(t,e,n,u,c)}}function jJ(t,e,n){const[r,i,s,o]=TC(t,e,n),u=r.length;let a=0,l=0,c=0,f=0,x=0,h,p,m,g;for(h=0;h<u;)p=r[h],m=i[h++],g=p*p,a+=(g-a)/h,l+=(g*p-l)/h,c+=(g*g-c)/h,f+=(p*m-f)/h,x+=(g*m-x)/h;const y=c-a*a,E=a*y-l*l,A=(x*a-f*l)/E,v=(f*y-x*l)/E,S=-A*a,C=_=>(_=_-s,A*_*_+v*_+S+o);return{coef:[S-v*s+A*s*s+o,v-2*A*s,A],predict:C,rSquared:V2(t,e,n,o,C)}}function G$e(t,e,n,r){if(r===1)return MJ(t,e,n);if(r===2)return jJ(t,e,n);const[i,s,o,u]=TC(t,e,n),a=i.length,l=[],c=[],f=r+1;let x,h,p,m,g;for(x=0;x<f;++x){for(p=0,m=0;p<a;++p)m+=Math.pow(i[p],x)*s[p];for(l.push(m),g=new Float64Array(f),h=0;h<f;++h){for(p=0,m=0;p<a;++p)m+=Math.pow(i[p],x+h);g[h]=m}c.push(g)}c.push(l);const y=V$e(c),E=A=>{A-=o;let v=u+y[0]+y[1]*A+y[2]*A*A;for(x=3;x<f;++x)v+=y[x]*Math.pow(A,x);return v};return{coef:W$e(f,y,-o,u),predict:E,rSquared:V2(t,e,n,u,E)}}function W$e(t,e,n,r){const i=Array(t);let s,o,u,a;for(s=0;s<t;++s)i[s]=0;for(s=t-1;s>=0;--s)for(u=e[s],a=1,i[s]+=u,o=1;o<=s;++o)a*=(s+1-o)/o,i[s-o]+=u*Math.pow(n,o)*a;return i[0]+=r,i}function V$e(t){const e=t.length-1,n=[];let r,i,s,o,u;for(r=0;r<e;++r){for(o=r,i=r+1;i<e;++i)Math.abs(t[r][i])>Math.abs(t[r][o])&&(o=i);for(s=r;s<e+1;++s)u=t[s][r],t[s][r]=t[s][o],t[s][o]=u;for(i=r+1;i<e;++i)for(s=e;s>=r;s--)t[s][i]-=t[s][r]*t[r][i]/t[r][r]}for(i=e-1;i>=0;--i){for(u=0,s=i+1;s<e;++s)u+=t[s][i]*n[s];n[i]=(t[e][i]-u)/t[i][i]}return n}const UJ=2,qJ=1e-12;function Y$e(t,e,n,r){const[i,s,o,u]=TC(t,e,n,!0),a=i.length,l=Math.max(2,~~(r*a)),c=new Float64Array(a),f=new Float64Array(a),x=new Float64Array(a).fill(1);for(let h=-1;++h<=UJ;){const p=[0,l-1];for(let g=0;g<a;++g){const y=i[g],E=p[0],A=p[1],v=y-i[E]>i[A]-y?E:A;let S=0,C=0,_=0,b=0,R=0;const O=1/Math.abs(i[v]-y||1);for(let q=E;q<=A;++q){const W=i[q],B=s[q],G=K$e(Math.abs(y-W)*O)*x[q],te=W*G;S+=G,C+=te,_+=B*G,b+=B*te,R+=W*te}const[L,M]=K3(C/S,_/S,b/S,R/S);c[g]=L+M*y,f[g]=Math.abs(s[g]-c[g]),X$e(i,g+1,p)}if(h===UJ)break;const m=aX(f);if(Math.abs(m)<qJ)break;for(let g=0,y,E;g<a;++g)y=f[g]/(6*m),x[g]=y>=1?qJ:(E=1-y*y)*E}return J$e(i,c,o,u)}function K$e(t){return(t=1-t*t*t)*t*t}function X$e(t,e,n){const r=t[e];let i=n[0],s=n[1]+1;if(!(s>=t.length))for(;e>i&&t[s]-r<=r-t[i];)n[0]=++i,n[1]=s,++s}function J$e(t,e,n,r){const i=t.length,s=[];let o=0,u=0,a=[],l;for(;o<i;++o)l=t[o]+n,a[0]===l?a[1]+=(e[o]-a[1])/++u:(u=0,a[1]+=r,a=[l,e[o]],s.push(a));return a[1]+=r,s}const Z$e=.5*Math.PI/180;function xw(t,e,n,r){n=n||25,r=Math.max(n,r||200);const i=m=>[m,t(m)],s=e[0],o=e[1],u=o-s,a=u/r,l=[i(s)],c=[];if(n===r){for(let m=1;m<r;++m)l.push(i(s+m/n*u));return l.push(i(o)),l}else{c.push(i(o));for(let m=n;--m>0;)c.push(i(s+m/n*u))}let f=l[0],x=c[c.length-1];const h=1/u,p=eBe(f[1],c);for(;x;){const m=i((f[0]+x[0])/2);m[0]-f[0]>=a&&tBe(f,m,x,h,p)>Z$e?c.push(m):(f=x,l.push(x),c.pop()),x=c[c.length-1]}return l}function eBe(t,e){let n=t,r=t;const i=e.length;for(let s=0;s<i;++s){const o=e[s][1];o<n&&(n=o),o>r&&(r=o)}return 1/(r-n)}function tBe(t,e,n,r,i){const s=Math.atan2(i*(n[1]-t[1]),r*(n[0]-t[0])),o=Math.atan2(i*(e[1]-t[1]),r*(e[0]-t[0]));return Math.abs(s-o)}function nBe(t){return e=>{const n=t.length;let r=1,i=String(t[0](e));for(;r<n;++r)i+="|"+t[r](e);return i}}function dw(t){return!t||!t.length?function(){return""}:t.length===1?t[0]:nBe(t)}function HJ(t,e,n){return n||t+(e?"_"+e:"")}const hw=()=>{},rBe={init:hw,add:hw,rem:hw,idx:0},J3={values:{init:t=>t.cell.store=!0,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.sum,add:(t,e)=>t.sum+=+e,rem:(t,e)=>t.sum-=e},product:{init:t=>t.product=1,value:t=>t.valid?t.product:void 0,add:(t,e)=>t.product*=e,rem:(t,e)=>t.product/=e},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:void 0,add:(t,e)=>(t.mean_d=e-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,e)=>(t.mean_d=e-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:void 0,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):void 0,add:(t,e)=>t.dev+=t.mean_d*(e-t.mean),rem:(t,e)=>t.dev-=t.mean_d*(e-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:void 0,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):void 0,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=void 0,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,e)=>{(e<t.min||t.min===void 0)&&(t.min=e)},rem:(t,e)=>{e<=t.min&&(t.min=NaN)},req:["values"],idx:4},max:{init:t=>t.max=void 0,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,e)=>{(e>t.max||t.max===void 0)&&(t.max=e)},rem:(t,e)=>{e>=t.max&&(t.max=NaN)},req:["values"],idx:4},argmin:{init:t=>t.argmin=void 0,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,e,n)=>{e<t.min&&(t.argmin=n)},rem:(t,e)=>{e<=t.min&&(t.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=void 0,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,e,n)=>{e>t.max&&(t.argmax=n)},rem:(t,e)=>{e>=t.max&&(t.argmax=void 0)},req:["max","values"],idx:3}},Z3=Object.keys(J3).filter(t=>t!=="__count__");function iBe(t,e){return n=>ft({name:t,out:n||t},rBe,e)}[...Z3,"__count__"].forEach(t=>{J3[t]=iBe(t,J3[t])});function zJ(t,e){return J3[t](e)}function QJ(t,e){return t.idx-e.idx}function sBe(t){const e={};t.forEach(r=>e[r.name]=r);const n=r=>{r.req&&r.req.forEach(i=>{e[i]||n(e[i]=J3[i]())})};return t.forEach(n),Object.values(e).sort(QJ)}function oBe(){this.valid=0,this.missing=0,this._ops.forEach(t=>t.init(this))}function uBe(t,e){if(t==null||t===""){++this.missing;return}t===t&&(++this.valid,this._ops.forEach(n=>n.add(this,t,e)))}function aBe(t,e){if(t==null||t===""){--this.missing;return}t===t&&(--this.valid,this._ops.forEach(n=>n.rem(this,t,e)))}function lBe(t){return this._out.forEach(e=>t[e.out]=e.value(this)),t}function GJ(t,e){const n=e||Si,r=sBe(t),i=t.slice().sort(QJ);function s(o){this._ops=r,this._out=i,this.cell=o,this.init()}return s.prototype.init=oBe,s.prototype.add=uBe,s.prototype.rem=aBe,s.prototype.set=lBe,s.prototype.get=n,s.fields=t.map(o=>o.out),s}function pw(t){this._key=t?Bs(t):Ze,this.reset()}const $r=pw.prototype;$r.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},$r.add=function(t){this._add.push(t)},$r.rem=function(t){this._rem.push(t)},$r.values=function(){if(this._get=null,this._rem.length===0)return this._add;const t=this._add,e=this._rem,n=this._key,r=t.length,i=e.length,s=Array(r-i),o={};let u,a,l;for(u=0;u<i;++u)o[n(e[u])]=1;for(u=0,a=0;u<r;++u)o[n(l=t[u])]?o[n(l)]=0:s[a++]=l;return this._rem=[],this._add=s},$r.distinct=function(t){const e=this.values(),n={};let r=e.length,i=0,s;for(;--r>=0;)s=t(e[r])+"",Je(n,s)||(n[s]=1,++i);return i},$r.extent=function(t){if(this._get!==t||!this._ext){const e=this.values(),n=LFe(e,t);this._ext=[e[n[0]],e[n[1]]],this._get=t}return this._ext},$r.argmin=function(t){return this.extent(t)[0]||{}},$r.argmax=function(t){return this.extent(t)[1]||{}},$r.min=function(t){const e=this.extent(t)[0];return e!=null?t(e):void 0},$r.max=function(t){const e=this.extent(t)[1];return e!=null?t(e):void 0},$r.quartile=function(t){return(this._get!==t||!this._q)&&(this._q=bJ(this.values(),t),this._get=t),this._q},$r.q1=function(t){return this.quartile(t)[0]},$r.q2=function(t){return this.quartile(t)[1]},$r.q3=function(t){return this.quartile(t)[2]},$r.ci=function(t){return(this._get!==t||!this._ci)&&(this._ci=$$e(this.values(),1e3,.05,t),this._get=t),this._ci},$r.ci0=function(t){return this.ci(t)[0]},$r.ci1=function(t){return this.ci(t)[1]};function Ac(t){pe.call(this,null,t),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}Ac.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Z3},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},Fe(Ac,pe,{transform(t,e){const n=this,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.modified();return n.stamp=r.stamp,n.value&&(i||e.modified(n._inputs,!0))?(n._prev=n.value,n.value=i?n.init(t):{},e.visit(e.SOURCE,s=>n.add(s))):(n.value=n.value||n.init(t),e.visit(e.REM,s=>n.rem(s)),e.visit(e.ADD,s=>n.add(s))),r.modifies(n._outputs),n._drop=t.drop!==!1,t.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),e.clean()&&n._drop&&r.clean(!0).runAfter(()=>this.clean()),n.changes(r)},cross(){const t=this,e=t.value,n=t._dnames,r=n.map(()=>({})),i=n.length;function s(u){let a,l,c,f;for(a in u)for(c=u[a].tuple,l=0;l<i;++l)r[l][f=c[n[l]]]=f}s(t._prev),s(e);function o(u,a,l){const c=n[l],f=r[l++];for(const x in f){const h=u?u+"|"+x:x;a[c]=f[x],l<i?o(h,a,l):e[h]||t.cell(h,a)}}o("",{},0)},init(t){const e=this._inputs=[],n=this._outputs=[],r={};function i(g){const y=Pe(vi(g)),E=y.length;let A=0,v;for(;A<E;++A)r[v=y[A]]||(r[v]=1,e.push(v))}this._dims=Pe(t.groupby),this._dnames=this._dims.map(g=>{const y=Pn(g);return i(g),n.push(y),y}),this.cellkey=t.key?t.key:dw(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const s=t.fields||[null],o=t.ops||["count"],u=t.as||[],a=s.length,l={};let c,f,x,h,p,m;for(a!==o.length&&Se("Unmatched number of fields and aggregate ops."),m=0;m<a;++m){if(c=s[m],f=o[m],c==null&&f!=="count"&&Se("Null aggregate field specified."),h=Pn(c),p=HJ(f,h,u[m]),n.push(p),f==="count"){this._counts.push(p);continue}x=l[h],x||(i(c),x=l[h]=[],x.field=c,this._measures.push(x)),f!=="count"&&(this._countOnly=!1),x.push(zJ(f,p))}return this._measures=this._measures.map(g=>GJ(g,g.field)),{}},cellkey:dw(),cell(t,e){let n=this.value[t];return n?n.num===0&&this._drop&&n.stamp<this.stamp?(n.stamp=this.stamp,this._adds[this._alen++]=n):n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n):(n=this.value[t]=this.newcell(t,e),this._adds[this._alen++]=n),n},newcell(t,e){const n={key:t,num:0,agg:null,tuple:this.newtuple(e,this._prev&&this._prev[t]),stamp:this.stamp,store:!1};if(!this._countOnly){const r=this._measures,i=r.length;n.agg=Array(i);for(let s=0;s<i;++s)n.agg[s]=new r[s](n)}return n.store&&(n.data=new pw),n},newtuple(t,e){const n=this._dnames,r=this._dims,i=r.length,s={};for(let o=0;o<i;++o)s[n[o]]=r[o](t);return e?xJ(e.tuple,s):$t(s)},clean(){const t=this.value;for(const e in t)t[e].num===0&&delete t[e]},add(t){const e=this.cellkey(t),n=this.cell(e,t);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(t);const r=n.agg;for(let i=0,s=r.length;i<s;++i)r[i].add(r[i].get(t),t)},rem(t){const e=this.cellkey(t),n=this.cell(e,t);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(t);const r=n.agg;for(let i=0,s=r.length;i<s;++i)r[i].rem(r[i].get(t),t)},celltuple(t){const e=t.tuple,n=this._counts;t.store&&t.data.values();for(let r=0,i=n.length;r<i;++r)e[n[r]]=t.num;if(!this._countOnly){const r=t.agg;for(let i=0,s=r.length;i<s;++i)r[i].set(e)}return e},changes(t){const e=this._adds,n=this._mods,r=this._prev,i=this._drop,s=t.add,o=t.rem,u=t.mod;let a,l,c,f;if(r)for(l in r)a=r[l],(!i||a.num)&&o.push(a.tuple);for(c=0,f=this._alen;c<f;++c)s.push(this.celltuple(e[c])),e[c]=null;for(c=0,f=this._mlen;c<f;++c)a=n[c],(a.num===0&&i?o:u).push(this.celltuple(a)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,t}});const cBe=1e-14;function gw(t){pe.call(this,null,t)}gw.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},Fe(gw,pe,{transform(t,e){const n=t.interval!==!1,r=this._bins(t),i=r.start,s=r.step,o=t.as||["bin0","bin1"],u=o[0],a=o[1];let l;return t.modified()?(e=e.reflow(!0),l=e.SOURCE):l=e.modified(vi(t.field))?e.ADD_MOD:e.ADD,e.visit(l,n?c=>{const f=r(c);c[u]=f,c[a]=f==null?null:i+s*(1+(f-i)/s)}:c=>c[u]=r(c)),e.modifies(n?o:u)},_bins(t){if(this.value&&!t.modified())return this.value;const e=t.field,n=I$e(t),r=n.step;let i=n.start,s=i+Math.ceil((n.stop-i)/r)*r,o,u;(o=t.anchor)!=null&&(u=o-(i+r*Math.floor((o-i)/r)),i+=u,s+=u);const a=function(l){let c=_i(e(l));return c==null?null:c<i?-1/0:c>s?1/0:(c=Math.max(i,Math.min(c,s-r)),i+r*Math.floor(cBe+(c-i)/r))};return a.start=i,a.stop=n.stop,a.step=r,this.value=$s(a,vi(e),t.name||"bin_"+Pn(e))}});function WJ(t,e,n){const r=t;let i=e||[],s=n||[],o={},u=0;return{add:a=>s.push(a),remove:a=>o[r(a)]=++u,size:()=>i.length,data:(a,l)=>(u&&(i=i.filter(c=>!o[r(c)]),o={},u=0),l&&a&&i.sort(a),s.length&&(i=a?UFe(a,i,s.sort(a)):i.concat(s),s=[]),i)}}function mw(t){pe.call(this,[],t)}mw.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},Fe(mw,pe,{transform(t,e){const n=e.fork(e.ALL),r=WJ(Ze,this.value,n.materialize(n.ADD).add),i=t.sort,s=e.changed()||i&&(t.modified("sort")||e.modified(i.fields));return n.visit(n.REM,r.remove),this.modified(s),this.value=n.source=r.data(Gx(i),s),e.source&&e.source.root&&(this.value.root=e.source.root),n}});function VJ(t){Xt.call(this,null,fBe,t)}Fe(VJ,Xt);function fBe(t){return this.value&&!t.modified()?this.value:UY(t.fields,t.orders)}function yw(t){pe.call(this,null,t)}yw.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]};function xBe(t,e,n){switch(e){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break}return t.match(n)}Fe(yw,pe,{transform(t,e){const n=f=>x=>{for(var h=xBe(u(x),t.case,s)||[],p,m=0,g=h.length;m<g;++m)o.test(p=h[m])||f(p)},r=this._parameterCheck(t,e),i=this._counts,s=this._match,o=this._stop,u=t.field,a=t.as||["text","count"],l=n(f=>i[f]=1+(i[f]||0)),c=n(f=>i[f]-=1);return r?e.visit(e.SOURCE,l):(e.visit(e.ADD,l),e.visit(e.REM,c)),this._finish(e,a)},_parameterCheck(t,e){let n=!1;return(t.modified("stopwords")||!this._stop)&&(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),n=!0),(t.modified("pattern")||!this._match)&&(this._match=new RegExp(t.pattern||"[\\w']+","g"),n=!0),(t.modified("field")||e.modified(t.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(t,e){const n=this._counts,r=this._tuples||(this._tuples={}),i=e[0],s=e[1],o=t.fork(t.NO_SOURCE|t.NO_FIELDS);let u,a,l;for(u in n)a=r[u],l=n[u]||0,!a&&l?(r[u]=a=$t({}),a[i]=u,a[s]=l,o.add.push(a)):l===0?(a&&o.rem.push(a),n[u]=null,r[u]=null):a[s]!==l&&(a[s]=l,o.mod.push(a));return o.modifies(e)}});function Ew(t){pe.call(this,null,t)}Ew.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},Fe(Ew,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.as||["a","b"],i=r[0],s=r[1],o=!this.value||e.changed(e.ADD_REM)||t.modified("as")||t.modified("filter");let u=this.value;return o?(u&&(n.rem=u),u=e.materialize(e.SOURCE).source,n.add=this.value=dBe(u,i,s,t.filter||Zo)):n.mod=u,n.source=this.value,n.modifies(r)}});function dBe(t,e,n,r){for(var i=[],s={},o=t.length,u=0,a,l;u<o;++u)for(s[e]=l=t[u],a=0;a<o;++a)s[n]=t[a],r(s)&&(i.push($t(s)),s={},s[e]=l);return i}const YJ={kde:DJ,mixture:U$e,normal:NJ,lognormal:j$e,uniform:q$e},hBe="distributions",KJ="function",pBe="field";function XJ(t,e){const n=t[KJ];Je(YJ,n)||Se("Unknown distribution function: "+n);const r=YJ[n]();for(const i in t)i===pBe?r.data((t.from||e()).map(t[i])):i===hBe?r[i](t[i].map(s=>XJ(s,e))):typeof r[i]===KJ&&r[i](t[i]);return r}function Aw(t){pe.call(this,null,t)}const JJ=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],gBe={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:JJ},{name:"weights",type:"number",array:!0}]};Aw.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:JJ.concat(gBe)},{name:"as",type:"string",array:!0,default:["value","density"]}]},Fe(Aw,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=XJ(t.distribution,mBe(e)),i=t.steps||t.minsteps||25,s=t.steps||t.maxsteps||200;let o=t.method||"pdf";o!=="pdf"&&o!=="cdf"&&Se("Invalid density method: "+o),!t.extent&&!r.data&&Se("Missing density extent parameter."),o=r[o];const u=t.as||["value","density"],a=t.extent||vl(r.data()),l=xw(o,a,i,s).map(c=>{const f={};return f[u[0]]=c[0],f[u[1]]=c[1],$t(f)});this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function mBe(t){return()=>t.materialize(t.SOURCE).source}function ZJ(t,e){return t?t.map((n,r)=>e[r]||Pn(n)):null}function vw(t,e,n){const r=[],i=f=>f(a);let s,o,u,a,l,c;if(e==null)r.push(t.map(n));else for(s={},o=0,u=t.length;o<u;++o)a=t[o],l=e.map(i),c=s[l],c||(s[l]=c=[],c.dims=l,r.push(c)),c.push(n(a));return r}const eZ="bin";function Sw(t){pe.call(this,null,t)}Sw.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:eZ}]};const yBe=(t,e)=>H5(vl(t,e))/30;Fe(Sw,pe,{transform(t,e){if(this.value&&!(t.modified()||e.changed()))return e;const n=e.materialize(e.SOURCE).source,r=vw(e.source,t.groupby,Si),i=t.smooth||!1,s=t.field,o=t.step||yBe(n,s),u=Gx((p,m)=>s(p)-s(m)),a=t.as||eZ,l=r.length;let c=1/0,f=-1/0,x=0,h;for(;x<l;++x){const p=r[x].sort(u);h=-1;for(const m of B$e(p,o,i,s))m<c&&(c=m),m>f&&(f=m),p[++h][a]=m}return this.value={start:c,stop:f,step:o},e.reflow(!0).modifies(a)}});function tZ(t){Xt.call(this,null,EBe,t),this.modified(!0)}Fe(tZ,Xt);function EBe(t){const e=t.expr;return this.value&&!t.modified("expr")?this.value:$s(n=>e(n,t),vi(e),Pn(e))}function _w(t){pe.call(this,[void 0,void 0],t)}_w.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},Fe(_w,pe,{transform(t,e){const n=this.value,r=t.field,i=e.changed()||e.modified(r.fields)||t.modified("field");let s=n[0],o=n[1];if((i||s==null)&&(s=1/0,o=-1/0),e.visit(i?e.SOURCE:e.ADD,u=>{const a=_i(r(u));a!=null&&(a<s&&(s=a),a>o&&(o=a))}),!Number.isFinite(s)||!Number.isFinite(o)){let u=Pn(r);u&&(u=` for field "${u}"`),e.dataflow.warn(`Infinite extent${u}: [${s}, ${o}]`),s=o=void 0}this.value=[s,o]}});function Cw(t,e){Xt.call(this,t),this.parent=e,this.count=0}Fe(Cw,Xt,{connect(t){return this.detachSubflow=t.detachSubflow,this.targets().add(t),t.source=this},add(t){this.count+=1,this.value.add.push(t)},rem(t){this.count-=1,this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}});function RC(t){pe.call(this,{},t),this._keys=m3();const e=this._targets=[];e.active=0,e.forEach=n=>{for(let r=0,i=e.active;r<i;++r)n(e[r],r,e)}}Fe(RC,pe,{activate(t){this._targets[this._targets.active++]=t},subflow(t,e,n,r){const i=this.value;let s=Je(i,t)&&i[t],o,u;return s?s.value.stamp<n.stamp&&(s.init(n),this.activate(s)):(u=r||(u=this._group[t])&&u.tuple,o=n.dataflow,s=new Cw(n.fork(n.NO_SOURCE),this),o.add(s).connect(e(o,t,u)),i[t]=s,this.activate(s)),s},clean(){const t=this.value;let e=0;for(const n in t)if(t[n].count===0){const r=t[n].detachSubflow;r&&r(),delete t[n],++e}if(e){const n=this._targets.filter(r=>r&&r.count>0);this.initTargets(n)}},initTargets(t){const e=this._targets,n=e.length,r=t?t.length:0;let i=0;for(;i<r;++i)e[i]=t[i];for(;i<n&&e[i]!=null;++i)e[i]=null;e.active=r},transform(t,e){const n=e.dataflow,r=t.key,i=t.subflow,s=this._keys,o=t.modified("key"),u=a=>this.subflow(a,i,e);return this._group=t.group||{},this.initTargets(),e.visit(e.REM,a=>{const l=Ze(a),c=s.get(l);c!==void 0&&(s.delete(l),u(c).rem(a))}),e.visit(e.ADD,a=>{const l=r(a);s.set(Ze(a),l),u(l).add(a)}),o||e.modified(r.fields)?e.visit(e.MOD,a=>{const l=Ze(a),c=s.get(l),f=r(a);c===f?u(f).mod(a):(s.set(l,f),u(c).rem(a),u(f).add(a))}):e.changed(e.MOD)&&e.visit(e.MOD,a=>{u(s.get(Ze(a))).mod(a)}),o&&e.visit(e.REFLOW,a=>{const l=Ze(a),c=s.get(l),f=r(a);c!==f&&(s.set(l,f),u(c).rem(a),u(f).add(a))}),e.clean()?n.runAfter(()=>{this.clean(),s.clean()}):s.empty>n.cleanThreshold&&n.runAfter(s.clean),e}});function nZ(t){Xt.call(this,null,ABe,t)}Fe(nZ,Xt);function ABe(t){return this.value&&!t.modified()?this.value:_e(t.name)?Pe(t.name).map(e=>Bs(e)):Bs(t.name,t.as)}function bw(t){pe.call(this,m3(),t)}bw.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},Fe(bw,pe,{transform(t,e){const n=e.dataflow,r=this.value,i=e.fork(),s=i.add,o=i.rem,u=i.mod,a=t.expr;let l=!0;e.visit(e.REM,f=>{const x=Ze(f);r.has(x)?r.delete(x):o.push(f)}),e.visit(e.ADD,f=>{a(f,t)?s.push(f):r.set(Ze(f),1)});function c(f){const x=Ze(f),h=a(f,t),p=r.get(x);h&&p?(r.delete(x),s.push(f)):!h&&!p?(r.set(x,1),o.push(f)):l&&h&&!p&&u.push(f)}return e.visit(e.MOD,c),t.modified()&&(l=!1,e.visit(e.REFLOW,c)),r.empty>n.cleanThreshold&&n.runAfter(r.clean),i}});function Tw(t){pe.call(this,[],t)}Tw.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},Fe(Tw,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.fields,i=ZJ(r,t.as||[]),s=t.index||null,o=i.length;return n.rem=this.value,e.visit(e.SOURCE,u=>{const a=r.map(p=>p(u)),l=a.reduce((p,m)=>Math.max(p,m.length),0);let c=0,f,x,h;for(;c<l;++c){for(x=iw(u),f=0;f<o;++f)x[i[f]]=(h=a[f][c])==null?null:h;s&&(x[s]=c),n.add.push(x)}}),this.value=n.source=n.add,s&&n.modifies(s),n.modifies(i)}});function Rw(t){pe.call(this,[],t)}Rw.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},Fe(Rw,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.fields,i=r.map(Pn),s=t.as||["key","value"],o=s[0],u=s[1],a=r.length;return n.rem=this.value,e.visit(e.SOURCE,l=>{for(let c=0,f;c<a;++c)f=iw(l),f[o]=i[c],f[u]=r[c](l),n.add.push(f)}),this.value=n.source=n.add,n.modifies(s)}});function Ow(t){pe.call(this,null,t)}Ow.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},Fe(Ow,pe,{transform(t,e){const n=t.expr,r=t.as,i=t.modified(),s=t.initonly?e.ADD:i?e.SOURCE:e.modified(n.fields)||e.modified(r)?e.ADD_MOD:e.ADD;return i&&(e=e.materialize().reflow(!0)),t.initonly||e.modifies(r),e.visit(s,o=>o[r]=n(o,t))}});function rZ(t){pe.call(this,[],t)}Fe(rZ,pe,{transform(t,e){const n=e.fork(e.ALL),r=t.generator;let i=this.value,s=t.size-i.length,o,u,a;if(s>0){for(o=[];--s>=0;)o.push(a=$t(r(t))),i.push(a);n.add=n.add.length?n.materialize(n.ADD).add.concat(o):o}else u=i.slice(0,-s),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(u):u,i=i.slice(-s);return n.source=this.value=i,n}});const OC={value:"value",median:aX,mean:F9e,min:D8,max:Ux},vBe=[];function Nw(t){pe.call(this,[],t)}Nw.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]};function SBe(t){var e=t.method||OC.value,n;if(OC[e]==null)Se("Unrecognized imputation method: "+e);else return e===OC.value?(n=t.value!==void 0?t.value:0,()=>n):OC[e]}function _Be(t){const e=t.field;return n=>n?e(n):NaN}Fe(Nw,pe,{transform(t,e){var n=e.fork(e.ALL),r=SBe(t),i=_Be(t),s=Pn(t.field),o=Pn(t.key),u=(t.groupby||[]).map(Pn),a=CBe(e.source,t.groupby,t.key,t.keyvals),l=[],c=this.value,f=a.domain.length,x,h,p,m,g,y,E,A,v,S;for(g=0,A=a.length;g<A;++g)for(x=a[g],p=x.values,h=NaN,E=0;E<f;++E)if(x[E]==null){for(m=a.domain[E],S={_impute:!0},y=0,v=p.length;y<v;++y)S[u[y]]=p[y];S[o]=m,S[s]=Number.isNaN(h)?h=r(x,i):h,l.push($t(S))}return l.length&&(n.add=n.materialize(n.ADD).add.concat(l)),c.length&&(n.rem=n.materialize(n.REM).rem.concat(c)),this.value=l,n}});function CBe(t,e,n,r){var i=y=>y(g),s=[],o=r?r.slice():[],u={},a={},l,c,f,x,h,p,m,g;for(o.forEach((y,E)=>u[y]=E+1),x=0,m=t.length;x<m;++x)g=t[x],p=n(g),h=u[p]||(u[p]=o.push(p)),c=(l=e?e.map(i):vBe)+"",(f=a[c])||(f=a[c]=[],s.push(f),f.values=l),f[h-1]=g;return s.domain=o,s}function Dw(t){Ac.call(this,t)}Dw.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:Z3},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},Fe(Dw,Ac,{transform(t,e){const n=this,r=t.modified();let i;return n.value&&(r||e.modified(n._inputs,!0))?(i=n.value=r?n.init(t):{},e.visit(e.SOURCE,s=>n.add(s))):(i=n.value=n.value||this.init(t),e.visit(e.REM,s=>n.rem(s)),e.visit(e.ADD,s=>n.add(s))),n.changes(),e.visit(e.SOURCE,s=>{ft(s,i[n.cellkey(s)].tuple)}),e.reflow(r).modifies(this._outputs)},changes(){const t=this._adds,e=this._mods;let n,r;for(n=0,r=this._alen;n<r;++n)this.celltuple(t[n]),t[n]=null;for(n=0,r=this._mlen;n<r;++n)this.celltuple(e[n]),e[n]=null;this._alen=this._mlen=0}});function Fw(t){pe.call(this,null,t)}Fw.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},Fe(Fw,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=vw(r,t.groupby,t.field),s=(t.groupby||[]).map(Pn),o=t.bandwidth,u=t.cumulative?"cdf":"pdf",a=t.as||["value","density"],l=[];let c=t.extent,f=t.steps||t.minsteps||25,x=t.steps||t.maxsteps||200;u!=="pdf"&&u!=="cdf"&&Se("Invalid density method: "+u),t.resolve==="shared"&&(c||(c=vl(r,t.field)),f=x=t.steps||x),i.forEach(h=>{const p=DJ(h,o)[u],m=t.counts?h.length:1,g=c||vl(h);xw(p,g,f,x).forEach(y=>{const E={};for(let A=0;A<s.length;++A)E[s[A]]=h.dims[A];E[a[0]]=y[0],E[a[1]]=y[1]*m,l.push($t(E))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function iZ(t){Xt.call(this,null,bBe,t)}Fe(iZ,Xt);function bBe(t){return this.value&&!t.modified()?this.value:HY(t.fields,t.flat)}function sZ(t){pe.call(this,[],t),this._pending=null}Fe(sZ,pe,{transform(t,e){const n=e.dataflow;return this._pending?ww(this,e,this._pending):TBe(t)?e.StopPropagation:t.values?ww(this,e,n.parse(t.values,t.format)):t.async?{async:n.request(t.url,t.format).then(i=>(this._pending=Pe(i.data),s=>s.touch(this)))}:n.request(t.url,t.format).then(r=>ww(this,e,Pe(r.data)))}});function TBe(t){return t.modified("async")&&!(t.modified("values")||t.modified("url")||t.modified("format"))}function ww(t,e,n){n.forEach($t);const r=e.fork(e.NO_FIELDS&e.NO_SOURCE);return r.rem=t.value,t.value=r.source=r.add=n,t._pending=null,r.rem.length&&r.clean(!0),r}function Lw(t){pe.call(this,{},t)}Lw.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},Fe(Lw,pe,{transform(t,e){const n=t.fields,r=t.index,i=t.values,s=t.default==null?null:t.default,o=t.modified(),u=n.length;let a=o?e.SOURCE:e.ADD,l=e,c=t.as,f,x,h;return i?(x=i.length,u>1&&!c&&Se('Multi-field lookup requires explicit "as" parameter.'),c&&c.length!==u*x&&Se('The "as" parameter has too few output field names.'),c=c||i.map(Pn),f=function(p){for(var m=0,g=0,y,E;m<u;++m)if(E=r.get(n[m](p)),E==null)for(y=0;y<x;++y,++g)p[c[g]]=s;else for(y=0;y<x;++y,++g)p[c[g]]=i[y](E)}):(c||Se("Missing output field names."),f=function(p){for(var m=0,g;m<u;++m)g=r.get(n[m](p)),p[c[m]]=g??s}),o?l=e.reflow(!0):(h=n.some(p=>e.modified(p.fields)),a|=h?e.MOD:0),e.visit(a,f),l.modifies(c)}});function oZ(t){Xt.call(this,null,RBe,t)}Fe(oZ,Xt);function RBe(t){if(this.value&&!t.modified())return this.value;const e=t.extents,n=e.length;let r=1/0,i=-1/0,s,o;for(s=0;s<n;++s)o=e[s],o[0]<r&&(r=o[0]),o[1]>i&&(i=o[1]);return[r,i]}function uZ(t){Xt.call(this,null,OBe,t)}Fe(uZ,Xt);function OBe(t){return this.value&&!t.modified()?this.value:t.values.reduce((e,n)=>e.concat(n),[])}function aZ(t){pe.call(this,null,t)}Fe(aZ,pe,{transform(t,e){return this.modified(t.modified()),this.value=t,e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function Iw(t){Ac.call(this,t)}Iw.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:Z3,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},Fe(Iw,Ac,{_transform:Ac.prototype.transform,transform(t,e){return this._transform(NBe(t,e),e)}});function NBe(t,e){const n=t.field,r=t.value,i=(t.op==="count"?"__count__":t.op)||"sum",s=vi(n).concat(vi(r)),o=FBe(n,t.limit||0,e);return e.changed()&&t.set("__pivot__",null,null,!0),{key:t.key,groupby:t.groupby,ops:o.map(()=>i),fields:o.map(u=>DBe(u,n,r,s)),as:o.map(u=>u+""),modified:t.modified.bind(t)}}function DBe(t,e,n,r){return $s(i=>e(i)===t?n(i):NaN,r,t+"")}function FBe(t,e,n){const r={},i=[];return n.visit(n.SOURCE,s=>{const o=t(s);r[o]||(r[o]=1,i.push(o))}),i.sort(QF),e?i.slice(0,e):i}function lZ(t){RC.call(this,t)}Fe(lZ,RC,{transform(t,e){const n=t.subflow,r=t.field,i=s=>this.subflow(Ze(s),n,e,s);return(t.modified("field")||r&&e.modified(vi(r)))&&Se("PreFacet does not support field modification."),this.initTargets(),r?(e.visit(e.MOD,s=>{const o=i(s);r(s).forEach(u=>o.mod(u))}),e.visit(e.ADD,s=>{const o=i(s);r(s).forEach(u=>o.add($t(u)))}),e.visit(e.REM,s=>{const o=i(s);r(s).forEach(u=>o.rem(u))})):(e.visit(e.MOD,s=>i(s).mod(s)),e.visit(e.ADD,s=>i(s).add(s)),e.visit(e.REM,s=>i(s).rem(s))),e.clean()&&e.runAfter(()=>this.clean()),e}});function $w(t){pe.call(this,null,t)}$w.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},Fe($w,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.fields,i=ZJ(t.fields,t.as||[]),s=r?(u,a)=>wBe(u,a,r,i):SC;let o;return this.value?o=this.value:(e=e.addAll(),o=this.value={}),e.visit(e.REM,u=>{const a=Ze(u);n.rem.push(o[a]),o[a]=null}),e.visit(e.ADD,u=>{const a=s(u,$t({}));o[Ze(u)]=a,n.add.push(a)}),e.visit(e.MOD,u=>{n.mod.push(s(u,o[Ze(u)]))}),n}});function wBe(t,e,n,r){for(let i=0,s=n.length;i<s;++i)e[r[i]]=n[i](t);return e}function cZ(t){pe.call(this,null,t)}Fe(cZ,pe,{transform(t,e){return this.value=t.value,t.modified("value")?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation}});function Bw(t){pe.call(this,null,t)}Bw.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]};const LBe=1e-14;Fe(Bw,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=t.as||["prob","value"];if(this.value&&!t.modified()&&!e.changed())return n.source=this.value,n;const i=e.materialize(e.SOURCE).source,s=vw(i,t.groupby,t.field),o=(t.groupby||[]).map(Pn),u=[],a=t.step||.01,l=t.probs||Ps(a/2,1-LBe,a),c=l.length;return s.forEach(f=>{const x=CJ(f,l);for(let h=0;h<c;++h){const p={};for(let m=0;m<o.length;++m)p[o[m]]=f.dims[m];p[r[0]]=l[h],p[r[1]]=x[h],u.push($t(p))}}),this.value&&(n.rem=this.value),this.value=n.add=n.source=u,n}});function fZ(t){pe.call(this,null,t)}Fe(fZ,pe,{transform(t,e){let n,r;return this.value?r=this.value:(n=e=e.addAll(),r=this.value={}),t.derive&&(n=e.fork(e.NO_SOURCE),e.visit(e.REM,i=>{const s=Ze(i);n.rem.push(r[s]),r[s]=null}),e.visit(e.ADD,i=>{const s=iw(i);r[Ze(i)]=s,n.add.push(s)}),e.visit(e.MOD,i=>{const s=r[Ze(i)];for(const o in i)s[o]=i[o],n.modifies(o);n.mod.push(s)})),n}});function kw(t){pe.call(this,[],t),this.count=0}kw.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},Fe(kw,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.modified("size"),i=t.size,s=this.value.reduce((c,f)=>(c[Ze(f)]=1,c),{});let o=this.value,u=this.count,a=0;function l(c){let f,x;o.length<i?o.push(c):(x=~~((u+1)*ql()),x<o.length&&x>=a&&(f=o[x],s[Ze(f)]&&n.rem.push(f),o[x]=c)),++u}if(e.rem.length&&(e.visit(e.REM,c=>{const f=Ze(c);s[f]&&(s[f]=-1,n.rem.push(c)),--u}),o=o.filter(c=>s[Ze(c)]!==-1)),(e.rem.length||r)&&o.length<i&&e.source&&(a=u=o.length,e.visit(e.SOURCE,c=>{s[Ze(c)]||l(c)}),a=-1),r&&o.length>i){const c=o.length-i;for(let f=0;f<c;++f)s[Ze(o[f])]=-1,n.rem.push(o[f]);o=o.slice(c)}return e.mod.length&&e.visit(e.MOD,c=>{s[Ze(c)]&&n.mod.push(c)}),e.add.length&&e.visit(e.ADD,l),(e.add.length||a<0)&&(n.add=o.filter(c=>!s[Ze(c)])),this.count=u,this.value=n.source=o,n}});function Pw(t){pe.call(this,null,t)}Pw.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},Fe(Pw,pe,{transform(t,e){if(this.value&&!t.modified())return;const n=e.materialize().fork(e.MOD),r=t.as||"data";return n.rem=this.value?e.rem.concat(this.value):e.rem,this.value=Ps(t.start,t.stop,t.step||1).map(i=>{const s={};return s[r]=i,$t(s)}),n.add=e.add.concat(this.value),n}});function xZ(t){pe.call(this,null,t),this.modified(!0)}Fe(xZ,pe,{transform(t,e){return this.value=e.source,e.changed()?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation}});function Mw(t){pe.call(this,null,t)}const dZ=["unit0","unit1"];Mw.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:CX,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:dZ}]},Fe(Mw,pe,{transform(t,e){const n=t.field,r=t.interval!==!1,i=t.timezone==="utc",s=this._floor(t,e),o=(i?L3:w3)(s.unit).offset,u=t.as||dZ,a=u[0],l=u[1],c=s.step;let f=s.start||1/0,x=s.stop||-1/0,h=e.ADD;return(t.modified()||e.changed(e.REM)||e.modified(vi(n)))&&(e=e.reflow(!0),h=e.SOURCE,f=1/0,x=-1/0),e.visit(h,p=>{const m=n(p);let g,y;m==null?(p[a]=null,r&&(p[l]=null)):(p[a]=g=y=s(m),r&&(p[l]=y=o(g,c)),g<f&&(f=g),y>x&&(x=y))}),s.start=f,s.stop=x,e.modifies(r?u:a)},_floor(t,e){const n=t.timezone==="utc",{units:r,step:i}=t.units?{units:t.units,step:t.step||1}:SLe({extent:t.extent||vl(e.materialize(e.SOURCE).source,t.field),maxbins:t.maxbins}),s=bX(r),o=this.value||{},u=(n?xLe:lLe)(s,i);return u.unit=St(s),u.units=s,u.step=i,u.start=o.start,u.stop=o.stop,this.value=u}});function hZ(t){pe.call(this,m3(),t)}Fe(hZ,pe,{transform(t,e){const n=e.dataflow,r=t.field,i=this.value,s=u=>i.set(r(u),u);let o=!0;return t.modified("field")||e.modified(r.fields)?(i.clear(),e.visit(e.SOURCE,s)):e.changed()?(e.visit(e.REM,u=>i.delete(r(u))),e.visit(e.ADD,s)):o=!1,this.modified(o),i.empty>n.cleanThreshold&&n.runAfter(i.clean),e.fork()}});function pZ(t){pe.call(this,null,t)}Fe(pZ,pe,{transform(t,e){(!this.value||t.modified("field")||t.modified("sort")||e.changed()||t.sort&&e.modified(t.sort.fields))&&(this.value=(t.sort?e.source.slice().sort(Gx(t.sort)):e.source).map(t.field))}});function IBe(t,e,n,r){const i=ey[t](e,n);return{init:i.init||Dx,update:function(s,o){o[r]=i.next(s)}}}const ey={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,r=e.data;return n&&e.compare(r[n-1],r[n])?t=n+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,r=e.data;return n&&e.compare(r[n-1],r[n])?++t:t}}},percent_rank:function(){const t=ey.rank(),e=t.next;return{init:t.init,next:n=>(e(n)-1)/(n.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:e=>{const n=e.data,r=e.compare;let i=e.index;if(t<i){for(;i+1<n.length&&!r(n[i],n[i+1]);)++i;t=i}return(1+t)/n.length}}},ntile:function(t,e){e=+e,e>0||Se("ntile num must be greater than zero.");const n=ey.cume_dist(),r=n.next;return{init:n.init,next:i=>Math.ceil(e*r(i))}},lag:function(t,e){return e=+e||1,{next:n=>{const r=n.index-e;return r>=0?t(n.data[r]):null}}},lead:function(t,e){return e=+e||1,{next:n=>{const r=n.index+e,i=n.data;return r<i.length?t(i[r]):null}}},first_value:function(t){return{next:e=>t(e.data[e.i0])}},last_value:function(t){return{next:e=>t(e.data[e.i1-1])}},nth_value:function(t,e){return e=+e,e>0||Se("nth_value nth must be greater than zero."),{next:n=>{const r=n.i0+(e-1);return r<n.i1?t(n.data[r]):null}}},prev_value:function(t){let e;return{init:()=>e=null,next:n=>{const r=t(n.data[n.index]);return r!=null?e=r:e}}},next_value:function(t){let e,n;return{init:()=>(e=null,n=-1),next:r=>{const i=r.data;return r.index<=n?e:(n=$Be(t,i,r.index))<0?(n=i.length,e=null):e=t(i[n])}}}};function $Be(t,e,n){for(let r=e.length;n<r;++n)if(t(e[n])!=null)return n;return-1}const BBe=Object.keys(ey);function gZ(t){const e=Pe(t.ops),n=Pe(t.fields),r=Pe(t.params),i=Pe(t.as),s=this.outputs=[],o=this.windows=[],u={},a={},l=[],c=[];let f=!0;function x(h){Pe(vi(h)).forEach(p=>u[p]=1)}x(t.sort),e.forEach((h,p)=>{const m=n[p],g=Pn(m),y=HJ(h,g,i[p]);if(x(m),s.push(y),Je(ey,h))o.push(IBe(h,n[p],r[p],y));else{if(m==null&&h!=="count"&&Se("Null aggregate field specified."),h==="count"){l.push(y);return}f=!1;let E=a[g];E||(E=a[g]=[],E.field=m,c.push(E)),E.push(zJ(h,y))}}),(l.length||c.length)&&(this.cell=kBe(c,l,f)),this.inputs=Object.keys(u)}const mZ=gZ.prototype;mZ.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()},mZ.update=function(t,e){const n=this.cell,r=this.windows,i=t.data,s=r&&r.length;let o;if(n){for(o=t.p0;o<t.i0;++o)n.rem(i[o]);for(o=t.p1;o<t.i1;++o)n.add(i[o]);n.set(e)}for(o=0;o<s;++o)r[o].update(t,e)};function kBe(t,e,n){t=t.map(a=>GJ(a,a.field));const r={num:0,agg:null,store:!1,count:e};if(!n)for(var i=t.length,s=r.agg=Array(i),o=0;o<i;++o)s[o]=new t[o](r);if(r.store)var u=r.data=new pw;return r.add=function(a){if(r.num+=1,!n){u&&u.add(a);for(let l=0;l<i;++l)s[l].add(s[l].get(a),a)}},r.rem=function(a){if(r.num-=1,!n){u&&u.rem(a);for(let l=0;l<i;++l)s[l].rem(s[l].get(a),a)}},r.set=function(a){let l,c;for(u&&u.values(),l=0,c=e.length;l<c;++l)a[e[l]]=r.num;if(!n)for(l=0,c=s.length;l<c;++l)s[l].set(a)},r.init=function(){r.num=0,u&&u.reset();for(let a=0;a<i;++a)s[a].init()},r}function jw(t){pe.call(this,{},t),this._mlen=0,this._mods=[]}jw.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:BBe.concat(Z3)},{name:"params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},Fe(jw,pe,{transform(t,e){this.stamp=e.stamp;const n=t.modified(),r=Gx(t.sort),i=dw(t.groupby),s=u=>this.group(i(u));let o=this.state;(!o||n)&&(o=this.state=new gZ(t)),n||e.modified(o.inputs)?(this.value={},e.visit(e.SOURCE,u=>s(u).add(u))):(e.visit(e.REM,u=>s(u).remove(u)),e.visit(e.ADD,u=>s(u).add(u)));for(let u=0,a=this._mlen;u<a;++u)PBe(this._mods[u],o,r,t);return this._mlen=0,this._mods=[],e.reflow(n).modifies(o.outputs)},group(t){let e=this.value[t];return e||(e=this.value[t]=WJ(Ze),e.stamp=-1),e.stamp<this.stamp&&(e.stamp=this.stamp,this._mods[this._mlen++]=e),e}});function PBe(t,e,n,r){const i=r.sort,s=i&&!r.ignorePeers,o=r.frame||[null,0],u=t.data(n),a=u.length,l=s?O3(i):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:u,compare:i||Ci(-1)};e.init();for(let f=0;f<a;++f)MBe(c,o,f,a),s&&jBe(c,l),e.update(c,u[f])}function MBe(t,e,n,r){t.p0=t.i0,t.p1=t.i1,t.i0=e[0]==null?0:Math.max(0,n-Math.abs(e[0])),t.i1=e[1]==null?r:Math.min(r,n+Math.abs(e[1])+1),t.index=n}function jBe(t,e){const n=t.i0,r=t.i1-1,i=t.compare,s=t.data,o=s.length-1;n>0&&!i(s[n],s[n-1])&&(t.i0=e.left(s,s[n])),r<o&&!i(s[r],s[r+1])&&(t.i1=e.right(s,s[r]))}const UBe=Object.freeze(Object.defineProperty({__proto__:null,aggregate:Ac,bin:gw,collect:mw,compare:VJ,countpattern:yw,cross:Ew,density:Aw,dotbin:Sw,expression:tZ,extent:_w,facet:RC,field:nZ,filter:bw,flatten:Tw,fold:Rw,formula:Ow,generate:rZ,impute:Nw,joinaggregate:Dw,kde:Fw,key:iZ,load:sZ,lookup:Lw,multiextent:oZ,multivalues:uZ,params:aZ,pivot:Iw,prefacet:lZ,project:$w,proxy:cZ,quantile:Bw,relay:fZ,sample:kw,sequence:Pw,sieve:xZ,subflow:Cw,timeunit:Mw,tupleindex:hZ,values:pZ,window:jw},Symbol.toStringTag,{value:"Module"}));function Bt(t){return function(){return t}}const yZ=Math.abs,ei=Math.atan2,Vx=Math.cos,qBe=Math.max,Uw=Math.min,ma=Math.sin,Yx=Math.sqrt,ti=1e-12,Y2=Math.PI,NC=Y2/2,EZ=2*Y2;function HBe(t){return t>1?0:t<-1?Y2:Math.acos(t)}function AZ(t){return t>=1?NC:t<=-1?-NC:Math.asin(t)}const qw=Math.PI,Hw=2*qw,Kx=1e-6,zBe=Hw-Kx;function vZ(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function QBe(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return vZ;const n=10**e;return function(r){this._+=r[0];for(let i=1,s=r.length;i<s;++i)this._+=Math.round(arguments[i]*n)/n+r[i]}}let zw=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?vZ:QBe(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,r,i){this._append`Q${+e},${+n},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(e,n,r,i,s,o){this._append`C${+e},${+n},${+r},${+i},${this._x1=+s},${this._y1=+o}`}arcTo(e,n,r,i,s){if(e=+e,n=+n,r=+r,i=+i,s=+s,s<0)throw new Error(`negative radius: ${s}`);let o=this._x1,u=this._y1,a=r-e,l=i-n,c=o-e,f=u-n,x=c*c+f*f;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(x>Kx)if(!(Math.abs(f*a-l*c)>Kx)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let h=r-o,p=i-u,m=a*a+l*l,g=h*h+p*p,y=Math.sqrt(m),E=Math.sqrt(x),A=s*Math.tan((qw-Math.acos((m+x-g)/(2*y*E)))/2),v=A/E,S=A/y;Math.abs(v-1)>Kx&&this._append`L${e+v*c},${n+v*f}`,this._append`A${s},${s},0,0,${+(f*h>c*p)},${this._x1=e+S*a},${this._y1=n+S*l}`}}arc(e,n,r,i,s,o){if(e=+e,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(i),a=r*Math.sin(i),l=e+u,c=n+a,f=1^o,x=o?i-s:s-i;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Kx||Math.abs(this._y1-c)>Kx)&&this._append`L${l},${c}`,r&&(x<0&&(x=x%Hw+Hw),x>zBe?this._append`A${r},${r},0,1,${f},${e-u},${n-a}A${r},${r},0,1,${f},${this._x1=l},${this._y1=c}`:x>Kx&&this._append`A${r},${r},0,${+(x>=qw)},${f},${this._x1=e+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}};function Qw(){return new zw}Qw.prototype=zw.prototype;function DC(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new zw(e)}function GBe(t){return t.innerRadius}function WBe(t){return t.outerRadius}function VBe(t){return t.startAngle}function YBe(t){return t.endAngle}function KBe(t){return t&&t.padAngle}function XBe(t,e,n,r,i,s,o,u){var a=n-t,l=r-e,c=o-i,f=u-s,x=f*a-c*l;if(!(x*x<ti))return x=(c*(e-s)-f*(t-i))/x,[t+x*a,e+x*l]}function FC(t,e,n,r,i,s,o){var u=t-n,a=e-r,l=(o?s:-s)/Yx(u*u+a*a),c=l*a,f=-l*u,x=t+c,h=e+f,p=n+c,m=r+f,g=(x+p)/2,y=(h+m)/2,E=p-x,A=m-h,v=E*E+A*A,S=i-s,C=x*m-p*h,_=(A<0?-1:1)*Yx(qBe(0,S*S*v-C*C)),b=(C*A-E*_)/v,R=(-C*E-A*_)/v,O=(C*A+E*_)/v,L=(-C*E+A*_)/v,M=b-g,q=R-y,W=O-g,B=L-y;return M*M+q*q>W*W+B*B&&(b=O,R=L),{cx:b,cy:R,x01:-c,y01:-f,x11:b*(i/S-1),y11:R*(i/S-1)}}function JBe(){var t=GBe,e=WBe,n=Bt(0),r=null,i=VBe,s=YBe,o=KBe,u=null,a=DC(l);function l(){var c,f,x=+t.apply(this,arguments),h=+e.apply(this,arguments),p=i.apply(this,arguments)-NC,m=s.apply(this,arguments)-NC,g=yZ(m-p),y=m>p;if(u||(u=c=a()),h<x&&(f=h,h=x,x=f),!(h>ti))u.moveTo(0,0);else if(g>EZ-ti)u.moveTo(h*Vx(p),h*ma(p)),u.arc(0,0,h,p,m,!y),x>ti&&(u.moveTo(x*Vx(m),x*ma(m)),u.arc(0,0,x,m,p,y));else{var E=p,A=m,v=p,S=m,C=g,_=g,b=o.apply(this,arguments)/2,R=b>ti&&(r?+r.apply(this,arguments):Yx(x*x+h*h)),O=Uw(yZ(h-x)/2,+n.apply(this,arguments)),L=O,M=O,q,W;if(R>ti){var B=AZ(R/x*ma(b)),G=AZ(R/h*ma(b));(C-=B*2)>ti?(B*=y?1:-1,v+=B,S-=B):(C=0,v=S=(p+m)/2),(_-=G*2)>ti?(G*=y?1:-1,E+=G,A-=G):(_=0,E=A=(p+m)/2)}var te=h*Vx(E),X=h*ma(E),de=x*Vx(S),be=x*ma(S);if(O>ti){var ee=h*Vx(A),U=h*ma(A),T=x*Vx(v),w=x*ma(v),k;if(g<Y2)if(k=XBe(te,X,T,w,ee,U,de,be)){var z=te-k[0],Y=X-k[1],V=ee-k[0],D=U-k[1],$=1/ma(HBe((z*V+Y*D)/(Yx(z*z+Y*Y)*Yx(V*V+D*D)))/2),j=Yx(k[0]*k[0]+k[1]*k[1]);L=Uw(O,(x-j)/($-1)),M=Uw(O,(h-j)/($+1))}else L=M=0}_>ti?M>ti?(q=FC(T,w,te,X,h,M,y),W=FC(ee,U,de,be,h,M,y),u.moveTo(q.cx+q.x01,q.cy+q.y01),M<O?u.arc(q.cx,q.cy,M,ei(q.y01,q.x01),ei(W.y01,W.x01),!y):(u.arc(q.cx,q.cy,M,ei(q.y01,q.x01),ei(q.y11,q.x11),!y),u.arc(0,0,h,ei(q.cy+q.y11,q.cx+q.x11),ei(W.cy+W.y11,W.cx+W.x11),!y),u.arc(W.cx,W.cy,M,ei(W.y11,W.x11),ei(W.y01,W.x01),!y))):(u.moveTo(te,X),u.arc(0,0,h,E,A,!y)):u.moveTo(te,X),!(x>ti)||!(C>ti)?u.lineTo(de,be):L>ti?(q=FC(de,be,ee,U,x,-L,y),W=FC(te,X,T,w,x,-L,y),u.lineTo(q.cx+q.x01,q.cy+q.y01),L<O?u.arc(q.cx,q.cy,L,ei(q.y01,q.x01),ei(W.y01,W.x01),!y):(u.arc(q.cx,q.cy,L,ei(q.y01,q.x01),ei(q.y11,q.x11),!y),u.arc(0,0,x,ei(q.cy+q.y11,q.cx+q.x11),ei(W.cy+W.y11,W.cx+W.x11),y),u.arc(W.cx,W.cy,L,ei(W.y11,W.x11),ei(W.y01,W.x01),!y))):u.arc(0,0,x,S,v,y)}if(u.closePath(),c)return u=null,c+""||null}return l.centroid=function(){var c=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,f=(+i.apply(this,arguments)+ +s.apply(this,arguments))/2-Y2/2;return[Vx(f)*c,ma(f)*c]},l.innerRadius=function(c){return arguments.length?(t=typeof c=="function"?c:Bt(+c),l):t},l.outerRadius=function(c){return arguments.length?(e=typeof c=="function"?c:Bt(+c),l):e},l.cornerRadius=function(c){return arguments.length?(n=typeof c=="function"?c:Bt(+c),l):n},l.padRadius=function(c){return arguments.length?(r=c==null?null:typeof c=="function"?c:Bt(+c),l):r},l.startAngle=function(c){return arguments.length?(i=typeof c=="function"?c:Bt(+c),l):i},l.endAngle=function(c){return arguments.length?(s=typeof c=="function"?c:Bt(+c),l):s},l.padAngle=function(c){return arguments.length?(o=typeof c=="function"?c:Bt(+c),l):o},l.context=function(c){return arguments.length?(u=c??null,l):u},l}function SZ(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function _Z(t){this._context=t}_Z.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function Gw(t){return new _Z(t)}function CZ(t){return t[0]}function bZ(t){return t[1]}function TZ(t,e){var n=Bt(!0),r=null,i=Gw,s=null,o=DC(u);t=typeof t=="function"?t:t===void 0?CZ:Bt(t),e=typeof e=="function"?e:e===void 0?bZ:Bt(e);function u(a){var l,c=(a=SZ(a)).length,f,x=!1,h;for(r==null&&(s=i(h=o())),l=0;l<=c;++l)!(l<c&&n(f=a[l],l,a))===x&&((x=!x)?s.lineStart():s.lineEnd()),x&&s.point(+t(f,l,a),+e(f,l,a));if(h)return s=null,h+""||null}return u.x=function(a){return arguments.length?(t=typeof a=="function"?a:Bt(+a),u):t},u.y=function(a){return arguments.length?(e=typeof a=="function"?a:Bt(+a),u):e},u.defined=function(a){return arguments.length?(n=typeof a=="function"?a:Bt(!!a),u):n},u.curve=function(a){return arguments.length?(i=a,r!=null&&(s=i(r)),u):i},u.context=function(a){return arguments.length?(a==null?r=s=null:s=i(r=a),u):r},u}function RZ(t,e,n){var r=null,i=Bt(!0),s=null,o=Gw,u=null,a=DC(l);t=typeof t=="function"?t:t===void 0?CZ:Bt(+t),e=typeof e=="function"?e:Bt(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?bZ:Bt(+n);function l(f){var x,h,p,m=(f=SZ(f)).length,g,y=!1,E,A=new Array(m),v=new Array(m);for(s==null&&(u=o(E=a())),x=0;x<=m;++x){if(!(x<m&&i(g=f[x],x,f))===y)if(y=!y)h=x,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),p=x-1;p>=h;--p)u.point(A[p],v[p]);u.lineEnd(),u.areaEnd()}y&&(A[x]=+t(g,x,f),v[x]=+e(g,x,f),u.point(r?+r(g,x,f):A[x],n?+n(g,x,f):v[x]))}if(E)return u=null,E+""||null}function c(){return TZ().defined(i).curve(o).context(s)}return l.x=function(f){return arguments.length?(t=typeof f=="function"?f:Bt(+f),r=null,l):t},l.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Bt(+f),l):t},l.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Bt(+f),l):r},l.y=function(f){return arguments.length?(e=typeof f=="function"?f:Bt(+f),n=null,l):e},l.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Bt(+f),l):e},l.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Bt(+f),l):n},l.lineX0=l.lineY0=function(){return c().x(t).y(e)},l.lineY1=function(){return c().x(t).y(n)},l.lineX1=function(){return c().x(r).y(e)},l.defined=function(f){return arguments.length?(i=typeof f=="function"?f:Bt(!!f),l):i},l.curve=function(f){return arguments.length?(o=f,s!=null&&(u=o(s)),l):o},l.context=function(f){return arguments.length?(f==null?s=u=null:u=o(s=f),l):s},l}const ZBe={draw(t,e){const n=Yx(e/Y2);t.moveTo(n,0),t.arc(0,0,n,0,EZ)}};function eke(t,e){let n=null,r=DC(i);t=typeof t=="function"?t:Bt(t||ZBe),e=typeof e=="function"?e:Bt(e===void 0?64:+e);function i(){let s;if(n||(n=s=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),s)return n=null,s+""||null}return i.type=function(s){return arguments.length?(t=typeof s=="function"?s:Bt(s),i):t},i.size=function(s){return arguments.length?(e=typeof s=="function"?s:Bt(+s),i):e},i.context=function(s){return arguments.length?(n=s??null,i):n},i}function vc(){}function wC(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function LC(t){this._context=t}LC.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:wC(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:wC(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function tke(t){return new LC(t)}function OZ(t){this._context=t}OZ.prototype={areaStart:vc,areaEnd:vc,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:wC(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function nke(t){return new OZ(t)}function NZ(t){this._context=t}NZ.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:wC(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function rke(t){return new NZ(t)}function DZ(t,e){this._basis=new LC(t),this._beta=e}DZ.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r=t[0],i=e[0],s=t[n]-r,o=e[n]-i,u=-1,a;++u<=n;)a=u/n,this._basis.point(this._beta*t[u]+(1-this._beta)*(r+a*s),this._beta*e[u]+(1-this._beta)*(i+a*o));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const ike=function t(e){function n(r){return e===1?new LC(r):new DZ(r,e)}return n.beta=function(r){return t(+r)},n}(.85);function IC(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Ww(t,e){this._context=t,this._k=(1-e)/6}Ww.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:IC(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:IC(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const ske=function t(e){function n(r){return new Ww(r,e)}return n.tension=function(r){return t(+r)},n}(0);function Vw(t,e){this._context=t,this._k=(1-e)/6}Vw.prototype={areaStart:vc,areaEnd:vc,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:IC(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const oke=function t(e){function n(r){return new Vw(r,e)}return n.tension=function(r){return t(+r)},n}(0);function Yw(t,e){this._context=t,this._k=(1-e)/6}Yw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:IC(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const uke=function t(e){function n(r){return new Yw(r,e)}return n.tension=function(r){return t(+r)},n}(0);function Kw(t,e,n){var r=t._x1,i=t._y1,s=t._x2,o=t._y2;if(t._l01_a>ti){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,a=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/a,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/a}if(t._l23_a>ti){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);s=(s*l+t._x1*t._l23_2a-e*t._l12_2a)/c,o=(o*l+t._y1*t._l23_2a-n*t._l12_2a)/c}t._context.bezierCurveTo(r,i,s,o,t._x2,t._y2)}function FZ(t,e){this._context=t,this._alpha=e}FZ.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Kw(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const ake=function t(e){function n(r){return e?new FZ(r,e):new Ww(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function wZ(t,e){this._context=t,this._alpha=e}wZ.prototype={areaStart:vc,areaEnd:vc,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Kw(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const lke=function t(e){function n(r){return e?new wZ(r,e):new Vw(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function LZ(t,e){this._context=t,this._alpha=e}LZ.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Kw(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const cke=function t(e){function n(r){return e?new LZ(r,e):new Yw(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function IZ(t){this._context=t}IZ.prototype={areaStart:vc,areaEnd:vc,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function fke(t){return new IZ(t)}function $Z(t){return t<0?-1:1}function BZ(t,e,n){var r=t._x1-t._x0,i=e-t._x1,s=(t._y1-t._y0)/(r||i<0&&-0),o=(n-t._y1)/(i||r<0&&-0),u=(s*i+o*r)/(r+i);return($Z(s)+$Z(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(u))||0}function kZ(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function Xw(t,e,n){var r=t._x0,i=t._y0,s=t._x1,o=t._y1,u=(s-r)/3;t._context.bezierCurveTo(r+u,i+u*e,s-u,o-u*n,s,o)}function $C(t){this._context=t}$C.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Xw(this,this._t0,kZ(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Xw(this,kZ(this,n=BZ(this,t,e)),n);break;default:Xw(this,this._t0,n=BZ(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function PZ(t){this._context=new MZ(t)}(PZ.prototype=Object.create($C.prototype)).point=function(t,e){$C.prototype.point.call(this,e,t)};function MZ(t){this._context=t}MZ.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,s){this._context.bezierCurveTo(e,t,r,n,s,i)}};function xke(t){return new $C(t)}function dke(t){return new PZ(t)}function jZ(t){this._context=t}jZ.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=UZ(t),i=UZ(e),s=0,o=1;o<n;++s,++o)this._context.bezierCurveTo(r[0][s],i[0][s],r[1][s],i[1][s],t[o],e[o]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function UZ(t){var e,n=t.length-1,r,i=new Array(n),s=new Array(n),o=new Array(n);for(i[0]=0,s[0]=2,o[0]=t[0]+2*t[1],e=1;e<n-1;++e)i[e]=1,s[e]=4,o[e]=4*t[e]+2*t[e+1];for(i[n-1]=2,s[n-1]=7,o[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)r=i[e]/s[e-1],s[e]-=r,o[e]-=r*o[e-1];for(i[n-1]=o[n-1]/s[n-1],e=n-2;e>=0;--e)i[e]=(o[e]-i[e+1])/s[e];for(s[n-1]=(t[n]+i[n-1])/2,e=0;e<n-1;++e)s[e]=2*t[e+1]-i[e+1];return[i,s]}function hke(t){return new jZ(t)}function BC(t,e){this._context=t,this._t=e}BC.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function pke(t){return new BC(t,.5)}function gke(t){return new BC(t,0)}function mke(t){return new BC(t,1)}function Sc(t,e){if(typeof document<"u"&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=t,n.height=e,n}return null}const yke=()=>typeof Image<"u"?Image:null;function ya(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function _c(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const Jw=Symbol("implicit");function Zw(){var t=new tX,e=[],n=[],r=Jw;function i(s){let o=t.get(s);if(o===void 0){if(r!==Jw)return r;t.set(s,o=e.push(s)-1)}return n[o%n.length]}return i.domain=function(s){if(!arguments.length)return e.slice();e=[],t=new tX;for(const o of s)t.has(o)||t.set(o,e.push(o)-1);return i},i.range=function(s){return arguments.length?(n=Array.from(s),i):n.slice()},i.unknown=function(s){return arguments.length?(r=s,i):r},i.copy=function(){return Zw(e,n).unknown(r)},ya.apply(i,arguments),i}function K2(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function ty(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Cc(){}var Xx=.7,X2=1/Xx,J2="\\s*([+-]?\\d+)\\s*",ny="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ea="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Eke=/^#([0-9a-f]{3,8})$/,Ake=new RegExp(`^rgb\\(${J2},${J2},${J2}\\)$`),vke=new RegExp(`^rgb\\(${Ea},${Ea},${Ea}\\)$`),Ske=new RegExp(`^rgba\\(${J2},${J2},${J2},${ny}\\)$`),_ke=new RegExp(`^rgba\\(${Ea},${Ea},${Ea},${ny}\\)$`),Cke=new RegExp(`^hsl\\(${ny},${Ea},${Ea}\\)$`),bke=new RegExp(`^hsla\\(${ny},${Ea},${Ea},${ny}\\)$`),qZ={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};K2(Cc,ry,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:HZ,formatHex:HZ,formatHex8:Tke,formatHsl:Rke,formatRgb:zZ,toString:zZ});function HZ(){return this.rgb().formatHex()}function Tke(){return this.rgb().formatHex8()}function Rke(){return YZ(this).formatHsl()}function zZ(){return this.rgb().formatRgb()}function ry(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Eke.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?QZ(e):n===3?new Er(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?kC(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?kC(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Ake.exec(t))?new Er(e[1],e[2],e[3],1):(e=vke.exec(t))?new Er(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Ske.exec(t))?kC(e[1],e[2],e[3],e[4]):(e=_ke.exec(t))?kC(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Cke.exec(t))?VZ(e[1],e[2]/100,e[3]/100,1):(e=bke.exec(t))?VZ(e[1],e[2]/100,e[3]/100,e[4]):qZ.hasOwnProperty(t)?QZ(qZ[t]):t==="transparent"?new Er(NaN,NaN,NaN,0):null}function QZ(t){return new Er(t>>16&255,t>>8&255,t&255,1)}function kC(t,e,n,r){return r<=0&&(t=e=n=NaN),new Er(t,e,n,r)}function e9(t){return t instanceof Cc||(t=ry(t)),t?(t=t.rgb(),new Er(t.r,t.g,t.b,t.opacity)):new Er}function bc(t,e,n,r){return arguments.length===1?e9(t):new Er(t,e,n,r??1)}function Er(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}K2(Er,bc,ty(Cc,{brighter(t){return t=t==null?X2:Math.pow(X2,t),new Er(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Xx:Math.pow(Xx,t),new Er(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Er(Jx(this.r),Jx(this.g),Jx(this.b),PC(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:GZ,formatHex:GZ,formatHex8:Oke,formatRgb:WZ,toString:WZ}));function GZ(){return`#${Zx(this.r)}${Zx(this.g)}${Zx(this.b)}`}function Oke(){return`#${Zx(this.r)}${Zx(this.g)}${Zx(this.b)}${Zx((isNaN(this.opacity)?1:this.opacity)*255)}`}function WZ(){const t=PC(this.opacity);return`${t===1?"rgb(":"rgba("}${Jx(this.r)}, ${Jx(this.g)}, ${Jx(this.b)}${t===1?")":`, ${t})`}`}function PC(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Jx(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Zx(t){return t=Jx(t),(t<16?"0":"")+t.toString(16)}function VZ(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new su(t,e,n,r)}function YZ(t){if(t instanceof su)return new su(t.h,t.s,t.l,t.opacity);if(t instanceof Cc||(t=ry(t)),!t)return new su;if(t instanceof su)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,u=s-i,a=(s+i)/2;return u?(e===s?o=(n-r)/u+(n<r)*6:n===s?o=(r-e)/u+2:o=(e-n)/u+4,u/=a<.5?s+i:2-s-i,o*=60):u=a>0&&a<1?0:o,new su(o,u,a,t.opacity)}function MC(t,e,n,r){return arguments.length===1?YZ(t):new su(t,e,n,r??1)}function su(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}K2(su,MC,ty(Cc,{brighter(t){return t=t==null?X2:Math.pow(X2,t),new su(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Xx:Math.pow(Xx,t),new su(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Er(t9(t>=240?t-240:t+120,i,r),t9(t,i,r),t9(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new su(KZ(this.h),jC(this.s),jC(this.l),PC(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=PC(this.opacity);return`${t===1?"hsl(":"hsla("}${KZ(this.h)}, ${jC(this.s)*100}%, ${jC(this.l)*100}%${t===1?")":`, ${t})`}`}}));function KZ(t){return t=(t||0)%360,t<0?t+360:t}function jC(t){return Math.max(0,Math.min(1,t||0))}function t9(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const XZ=Math.PI/180,JZ=180/Math.PI,UC=18,ZZ=.96422,eee=1,tee=.82521,nee=4/29,Z2=6/29,ree=3*Z2*Z2,Nke=Z2*Z2*Z2;function iee(t){if(t instanceof Aa)return new Aa(t.l,t.a,t.b,t.opacity);if(t instanceof Hl)return see(t);t instanceof Er||(t=e9(t));var e=s9(t.r),n=s9(t.g),r=s9(t.b),i=n9((.2225045*e+.7168786*n+.0606169*r)/eee),s,o;return e===n&&n===r?s=o=i:(s=n9((.4360747*e+.3850649*n+.1430804*r)/ZZ),o=n9((.0139322*e+.0971045*n+.7141733*r)/tee)),new Aa(116*i-16,500*(s-i),200*(i-o),t.opacity)}function qC(t,e,n,r){return arguments.length===1?iee(t):new Aa(t,e,n,r??1)}function Aa(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}K2(Aa,qC,ty(Cc,{brighter(t){return new Aa(this.l+UC*(t??1),this.a,this.b,this.opacity)},darker(t){return new Aa(this.l-UC*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=ZZ*r9(e),t=eee*r9(t),n=tee*r9(n),new Er(i9(3.1338561*e-1.6168667*t-.4906146*n),i9(-.9787684*e+1.9161415*t+.033454*n),i9(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function n9(t){return t>Nke?Math.pow(t,1/3):t/ree+nee}function r9(t){return t>Z2?t*t*t:ree*(t-nee)}function i9(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function s9(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Dke(t){if(t instanceof Hl)return new Hl(t.h,t.c,t.l,t.opacity);if(t instanceof Aa||(t=iee(t)),t.a===0&&t.b===0)return new Hl(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*JZ;return new Hl(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function HC(t,e,n,r){return arguments.length===1?Dke(t):new Hl(t,e,n,r??1)}function Hl(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function see(t){if(isNaN(t.h))return new Aa(t.l,0,0,t.opacity);var e=t.h*XZ;return new Aa(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}K2(Hl,HC,ty(Cc,{brighter(t){return new Hl(this.h,this.c,this.l+UC*(t??1),this.opacity)},darker(t){return new Hl(this.h,this.c,this.l-UC*(t??1),this.opacity)},rgb(){return see(this).rgb()}}));var oee=-.14861,o9=1.78277,u9=-.29227,zC=-.90649,iy=1.97294,uee=iy*zC,aee=iy*o9,lee=o9*u9-zC*oee;function Fke(t){if(t instanceof ed)return new ed(t.h,t.s,t.l,t.opacity);t instanceof Er||(t=e9(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(lee*r+uee*e-aee*n)/(lee+uee-aee),s=r-i,o=(iy*(n-i)-u9*s)/zC,u=Math.sqrt(o*o+s*s)/(iy*i*(1-i)),a=u?Math.atan2(o,s)*JZ-120:NaN;return new ed(a<0?a+360:a,u,i,t.opacity)}function a9(t,e,n,r){return arguments.length===1?Fke(t):new ed(t,e,n,r??1)}function ed(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}K2(ed,a9,ty(Cc,{brighter(t){return t=t==null?X2:Math.pow(X2,t),new ed(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Xx:Math.pow(Xx,t),new ed(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*XZ,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new Er(255*(e+n*(oee*r+o9*i)),255*(e+n*(u9*r+zC*i)),255*(e+n*(iy*r)),this.opacity)}}));function cee(t,e,n,r,i){var s=t*t,o=s*t;return((1-3*t+3*s-o)*e+(4-6*s+3*o)*n+(1+3*t+3*s-3*o)*r+o*i)/6}function fee(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],s=t[r+1],o=r>0?t[r-1]:2*i-s,u=r<e-1?t[r+2]:2*s-i;return cee((n-r/e)*e,o,i,s,u)}}function xee(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],s=t[r%e],o=t[(r+1)%e],u=t[(r+2)%e];return cee((n-r/e)*e,i,s,o,u)}}const QC=t=>()=>t;function dee(t,e){return function(n){return t+n*e}}function wke(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function GC(t,e){var n=e-t;return n?dee(t,n>180||n<-180?n-360*Math.round(n/360):n):QC(isNaN(t)?e:t)}function Lke(t){return(t=+t)==1?Ar:function(e,n){return n-e?wke(e,n,t):QC(isNaN(e)?n:e)}}function Ar(t,e){var n=e-t;return n?dee(t,n):QC(isNaN(t)?e:t)}const l9=function t(e){var n=Lke(e);function r(i,s){var o=n((i=bc(i)).r,(s=bc(s)).r),u=n(i.g,s.g),a=n(i.b,s.b),l=Ar(i.opacity,s.opacity);return function(c){return i.r=o(c),i.g=u(c),i.b=a(c),i.opacity=l(c),i+""}}return r.gamma=t,r}(1);function hee(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),s=new Array(n),o,u;for(o=0;o<n;++o)u=bc(e[o]),r[o]=u.r||0,i[o]=u.g||0,s[o]=u.b||0;return r=t(r),i=t(i),s=t(s),u.opacity=1,function(a){return u.r=r(a),u.g=i(a),u.b=s(a),u+""}}}var Ike=hee(fee),$ke=hee(xee);function c9(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(s){for(i=0;i<n;++i)r[i]=t[i]*(1-s)+e[i]*s;return r}}function pee(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Bke(t,e){return(pee(e)?c9:gee)(t,e)}function gee(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),s=new Array(n),o;for(o=0;o<r;++o)i[o]=Tc(t[o],e[o]);for(;o<n;++o)s[o]=e[o];return function(u){for(o=0;o<r;++o)s[o]=i[o](u);return s}}function mee(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function ou(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function yee(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Tc(t[i],e[i]):r[i]=e[i];return function(s){for(i in n)r[i]=n[i](s);return r}}var f9=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,x9=new RegExp(f9.source,"g");function kke(t){return function(){return t}}function Pke(t){return function(e){return t(e)+""}}function Eee(t,e){var n=f9.lastIndex=x9.lastIndex=0,r,i,s,o=-1,u=[],a=[];for(t=t+"",e=e+"";(r=f9.exec(t))&&(i=x9.exec(e));)(s=i.index)>n&&(s=e.slice(n,s),u[o]?u[o]+=s:u[++o]=s),(r=r[0])===(i=i[0])?u[o]?u[o]+=i:u[++o]=i:(u[++o]=null,a.push({i:o,x:ou(r,i)})),n=x9.lastIndex;return n<e.length&&(s=e.slice(n),u[o]?u[o]+=s:u[++o]=s),u.length<2?a[0]?Pke(a[0].x):kke(e):(e=a.length,function(l){for(var c=0,f;c<e;++c)u[(f=a[c]).i]=f.x(l);return u.join("")})}function Tc(t,e){var n=typeof e,r;return e==null||n==="boolean"?QC(e):(n==="number"?ou:n==="string"?(r=ry(e))?(e=r,l9):Eee:e instanceof ry?l9:e instanceof Date?mee:pee(e)?c9:Array.isArray(e)?gee:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?yee:ou)(t,e)}function Mke(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function jke(t,e){var n=GC(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function sy(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Aee=180/Math.PI,d9={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function vee(t,e,n,r,i,s){var o,u,a;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(a=t*n+e*r)&&(n-=t*a,r-=e*a),(u=Math.sqrt(n*n+r*r))&&(n/=u,r/=u,a/=u),t*r<e*n&&(t=-t,e=-e,a=-a,o=-o),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*Aee,skewX:Math.atan(a)*Aee,scaleX:o,scaleY:u}}var WC;function Uke(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?d9:vee(e.a,e.b,e.c,e.d,e.e,e.f)}function qke(t){return t==null||(WC||(WC=document.createElementNS("http://www.w3.org/2000/svg","g")),WC.setAttribute("transform",t),!(t=WC.transform.baseVal.consolidate()))?d9:(t=t.matrix,vee(t.a,t.b,t.c,t.d,t.e,t.f))}function See(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function s(l,c,f,x,h,p){if(l!==f||c!==x){var m=h.push("translate(",null,e,null,n);p.push({i:m-4,x:ou(l,f)},{i:m-2,x:ou(c,x)})}else(f||x)&&h.push("translate("+f+e+x+n)}function o(l,c,f,x){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),x.push({i:f.push(i(f)+"rotate(",null,r)-2,x:ou(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function u(l,c,f,x){l!==c?x.push({i:f.push(i(f)+"skewX(",null,r)-2,x:ou(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function a(l,c,f,x,h,p){if(l!==f||c!==x){var m=h.push(i(h)+"scale(",null,",",null,")");p.push({i:m-4,x:ou(l,f)},{i:m-2,x:ou(c,x)})}else(f!==1||x!==1)&&h.push(i(h)+"scale("+f+","+x+")")}return function(l,c){var f=[],x=[];return l=t(l),c=t(c),s(l.translateX,l.translateY,c.translateX,c.translateY,f,x),o(l.rotate,c.rotate,f,x),u(l.skewX,c.skewX,f,x),a(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,x),l=c=null,function(h){for(var p=-1,m=x.length,g;++p<m;)f[(g=x[p]).i]=g.x(h);return f.join("")}}}var Hke=See(Uke,"px, ","px)","deg)"),zke=See(qke,", ",")",")"),Qke=1e-12;function _ee(t){return((t=Math.exp(t))+1/t)/2}function Gke(t){return((t=Math.exp(t))-1/t)/2}function Wke(t){return((t=Math.exp(2*t))-1)/(t+1)}const Vke=function t(e,n,r){function i(s,o){var u=s[0],a=s[1],l=s[2],c=o[0],f=o[1],x=o[2],h=c-u,p=f-a,m=h*h+p*p,g,y;if(m<Qke)y=Math.log(x/l)/e,g=function(_){return[u+_*h,a+_*p,l*Math.exp(e*_*y)]};else{var E=Math.sqrt(m),A=(x*x-l*l+r*m)/(2*l*n*E),v=(x*x-l*l-r*m)/(2*x*n*E),S=Math.log(Math.sqrt(A*A+1)-A),C=Math.log(Math.sqrt(v*v+1)-v);y=(C-S)/e,g=function(_){var b=_*y,R=_ee(S),O=l/(n*E)*(R*Wke(e*b+S)-Gke(S));return[u+O*h,a+O*p,l*R/_ee(e*b+S)]}}return g.duration=y*1e3*e/Math.SQRT2,g}return i.rho=function(s){var o=Math.max(.001,+s),u=o*o,a=u*u;return t(o,u,a)},i}(Math.SQRT2,2,4);function Cee(t){return function(e,n){var r=t((e=MC(e)).h,(n=MC(n)).h),i=Ar(e.s,n.s),s=Ar(e.l,n.l),o=Ar(e.opacity,n.opacity);return function(u){return e.h=r(u),e.s=i(u),e.l=s(u),e.opacity=o(u),e+""}}}const Yke=Cee(GC);var Kke=Cee(Ar);function Xke(t,e){var n=Ar((t=qC(t)).l,(e=qC(e)).l),r=Ar(t.a,e.a),i=Ar(t.b,e.b),s=Ar(t.opacity,e.opacity);return function(o){return t.l=n(o),t.a=r(o),t.b=i(o),t.opacity=s(o),t+""}}function bee(t){return function(e,n){var r=t((e=HC(e)).h,(n=HC(n)).h),i=Ar(e.c,n.c),s=Ar(e.l,n.l),o=Ar(e.opacity,n.opacity);return function(u){return e.h=r(u),e.c=i(u),e.l=s(u),e.opacity=o(u),e+""}}}const Jke=bee(GC);var Zke=bee(Ar);function Tee(t){return function e(n){n=+n;function r(i,s){var o=t((i=a9(i)).h,(s=a9(s)).h),u=Ar(i.s,s.s),a=Ar(i.l,s.l),l=Ar(i.opacity,s.opacity);return function(c){return i.h=o(c),i.s=u(c),i.l=a(Math.pow(c,n)),i.opacity=l(c),i+""}}return r.gamma=e,r}(1)}const ePe=Tee(GC);var tPe=Tee(Ar);function h9(t,e){e===void 0&&(e=t,t=Tc);for(var n=0,r=e.length-1,i=e[0],s=new Array(r<0?0:r);n<r;)s[n]=t(i,i=e[++n]);return function(o){var u=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return s[u](o-u)}}function nPe(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const rPe=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Tc,interpolateArray:Bke,interpolateBasis:fee,interpolateBasisClosed:xee,interpolateCubehelix:ePe,interpolateCubehelixLong:tPe,interpolateDate:mee,interpolateDiscrete:Mke,interpolateHcl:Jke,interpolateHclLong:Zke,interpolateHsl:Yke,interpolateHslLong:Kke,interpolateHue:jke,interpolateLab:Xke,interpolateNumber:ou,interpolateNumberArray:c9,interpolateObject:yee,interpolateRgb:l9,interpolateRgbBasis:Ike,interpolateRgbBasisClosed:$ke,interpolateRound:sy,interpolateString:Eee,interpolateTransformCss:Hke,interpolateTransformSvg:zke,interpolateZoom:Vke,piecewise:h9,quantize:nPe},Symbol.toStringTag,{value:"Module"}));function iPe(t){return function(){return t}}function p9(t){return+t}var Ree=[0,1];function xs(t){return t}function g9(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:iPe(isNaN(e)?NaN:.5)}function sPe(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function oPe(t,e,n){var r=t[0],i=t[1],s=e[0],o=e[1];return i<r?(r=g9(i,r),s=n(o,s)):(r=g9(r,i),s=n(s,o)),function(u){return s(r(u))}}function uPe(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),s=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<r;)i[o]=g9(t[o],t[o+1]),s[o]=n(e[o],e[o+1]);return function(u){var a=pc(t,u,1,r)-1;return s[a](i[a](u))}}function oy(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function VC(){var t=Ree,e=Ree,n=Tc,r,i,s,o=xs,u,a,l;function c(){var x=Math.min(t.length,e.length);return o!==xs&&(o=sPe(t[0],t[x-1])),u=x>2?uPe:oPe,a=l=null,f}function f(x){return x==null||isNaN(x=+x)?s:(a||(a=u(t.map(r),e,n)))(r(o(x)))}return f.invert=function(x){return o(i((l||(l=u(e,t.map(r),ou)))(x)))},f.domain=function(x){return arguments.length?(t=Array.from(x,p9),c()):t.slice()},f.range=function(x){return arguments.length?(e=Array.from(x),c()):e.slice()},f.rangeRound=function(x){return e=Array.from(x),n=sy,c()},f.clamp=function(x){return arguments.length?(o=x?!0:xs,c()):o!==xs},f.interpolate=function(x){return arguments.length?(n=x,c()):n},f.unknown=function(x){return arguments.length?(s=x,f):s},function(x,h){return r=x,i=h,c()}}function Oee(){return VC()(xs,xs)}function Nee(t,e,n,r){var i=gc(t,e,n),s;switch(r=qx(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=EX(i,o))&&(r.precision=s),L8(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=AX(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=yX(i))&&(r.precision=s-(r.type==="%")*2);break}}return cC(r)}function td(t){var e=t.domain;return t.ticks=function(n){var r=e();return O8(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return Nee(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,s=r.length-1,o=r[i],u=r[s],a,l,c=10;for(u<o&&(l=o,o=u,u=l,l=i,i=s,s=l);c-- >0;){if(l=N8(o,u,n),l===a)return r[i]=o,r[s]=u,e(r);if(l>0)o=Math.floor(o/l)*l,u=Math.ceil(u/l)*l;else if(l<0)o=Math.ceil(o*l)/l,u=Math.floor(u*l)/l;else break;a=l}return t},t}function Dee(){var t=Oee();return t.copy=function(){return oy(t,Dee())},ya.apply(t,arguments),td(t)}function Fee(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,p9),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return Fee(t).unknown(e)},t=arguments.length?Array.from(t,p9):[0,1],td(n)}function wee(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],s=t[r],o;return s<i&&(o=n,n=r,r=o,o=i,i=s,s=o),t[n]=e.floor(i),t[r]=e.ceil(s),t}function Lee(t){return Math.log(t)}function Iee(t){return Math.exp(t)}function aPe(t){return-Math.log(-t)}function lPe(t){return-Math.exp(-t)}function cPe(t){return isFinite(t)?+("1e"+t):t<0?0:t}function fPe(t){return t===10?cPe:t===Math.E?Math.exp:e=>Math.pow(t,e)}function xPe(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function $ee(t){return(e,n)=>-t(-e,n)}function m9(t){const e=t(Lee,Iee),n=e.domain;let r=10,i,s;function o(){return i=xPe(r),s=fPe(r),n()[0]<0?(i=$ee(i),s=$ee(s),t(aPe,lPe)):t(Lee,Iee),e}return e.base=function(u){return arguments.length?(r=+u,o()):r},e.domain=function(u){return arguments.length?(n(u),o()):n()},e.ticks=u=>{const a=n();let l=a[0],c=a[a.length-1];const f=c<l;f&&([l,c]=[c,l]);let x=i(l),h=i(c),p,m;const g=u==null?10:+u;let y=[];if(!(r%1)&&h-x<g){if(x=Math.floor(x),h=Math.ceil(h),l>0){for(;x<=h;++x)for(p=1;p<r;++p)if(m=x<0?p/s(-x):p*s(x),!(m<l)){if(m>c)break;y.push(m)}}else for(;x<=h;++x)for(p=r-1;p>=1;--p)if(m=x>0?p/s(-x):p*s(x),!(m<l)){if(m>c)break;y.push(m)}y.length*2<g&&(y=O8(l,c,g))}else y=O8(x,h,Math.min(h-x,g)).map(s);return f?y.reverse():y},e.tickFormat=(u,a)=>{if(u==null&&(u=10),a==null&&(a=r===10?"s":","),typeof a!="function"&&(!(r%1)&&(a=qx(a)).precision==null&&(a.trim=!0),a=cC(a)),u===1/0)return a;const l=Math.max(1,r*u/e.ticks().length);return c=>{let f=c/s(Math.round(i(c)));return f*r<r-.5&&(f*=r),f<=l?a(c):""}},e.nice=()=>n(wee(n(),{floor:u=>s(Math.floor(i(u))),ceil:u=>s(Math.ceil(i(u)))})),e}function Bee(){const t=m9(VC()).domain([1,10]);return t.copy=()=>oy(t,Bee()).base(t.base()),ya.apply(t,arguments),t}function kee(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Pee(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function y9(t){var e=1,n=t(kee(e),Pee(e));return n.constant=function(r){return arguments.length?t(kee(e=+r),Pee(e)):e},td(n)}function Mee(){var t=y9(VC());return t.copy=function(){return oy(t,Mee()).constant(t.constant())},ya.apply(t,arguments)}function jee(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function dPe(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function hPe(t){return t<0?-t*t:t*t}function E9(t){var e=t(xs,xs),n=1;function r(){return n===1?t(xs,xs):n===.5?t(dPe,hPe):t(jee(n),jee(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},td(e)}function A9(){var t=E9(VC());return t.copy=function(){return oy(t,A9()).exponent(t.exponent())},ya.apply(t,arguments),t}function pPe(){return A9.apply(null,arguments).exponent(.5)}function Uee(){var t=[],e=[],n=[],r;function i(){var o=0,u=Math.max(1,e.length);for(n=new Array(u-1);++o<u;)n[o-1]=uX(t,o/u);return s}function s(o){return o==null||isNaN(o=+o)?r:e[pc(n,o)]}return s.invertExtent=function(o){var u=e.indexOf(o);return u<0?[NaN,NaN]:[u>0?n[u-1]:t[0],u<n.length?n[u]:t[t.length-1]]},s.domain=function(o){if(!arguments.length)return t.slice();t=[];for(let u of o)u!=null&&!isNaN(u=+u)&&t.push(u);return t.sort(Il),i()},s.range=function(o){return arguments.length?(e=Array.from(o),i()):e.slice()},s.unknown=function(o){return arguments.length?(r=o,s):r},s.quantiles=function(){return n.slice()},s.copy=function(){return Uee().domain(t).range(e).unknown(r)},ya.apply(s,arguments)}function qee(){var t=0,e=1,n=1,r=[.5],i=[0,1],s;function o(a){return a!=null&&a<=a?i[pc(r,a,0,n)]:s}function u(){var a=-1;for(r=new Array(n);++a<n;)r[a]=((a+1)*e-(a-n)*t)/(n+1);return o}return o.domain=function(a){return arguments.length?([t,e]=a,t=+t,e=+e,u()):[t,e]},o.range=function(a){return arguments.length?(n=(i=Array.from(a)).length-1,u()):i.slice()},o.invertExtent=function(a){var l=i.indexOf(a);return l<0?[NaN,NaN]:l<1?[t,r[0]]:l>=n?[r[n-1],e]:[r[l-1],r[l]]},o.unknown=function(a){return arguments.length&&(s=a),o},o.thresholds=function(){return r.slice()},o.copy=function(){return qee().domain([t,e]).range(i).unknown(s)},ya.apply(td(o),arguments)}function Hee(){var t=[.5],e=[0,1],n,r=1;function i(s){return s!=null&&s<=s?e[pc(t,s,0,r)]:n}return i.domain=function(s){return arguments.length?(t=Array.from(s),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(s){return arguments.length?(e=Array.from(s),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(s){var o=e.indexOf(s);return[t[o-1],t[o]]},i.unknown=function(s){return arguments.length?(n=s,i):n},i.copy=function(){return Hee().domain(t).range(e).unknown(n)},ya.apply(i,arguments)}function gPe(t){return new Date(t)}function mPe(t){return t instanceof Date?+t:+new Date(+t)}function v9(t,e,n,r,i,s,o,u,a,l){var c=Oee(),f=c.invert,x=c.domain,h=l(".%L"),p=l(":%S"),m=l("%I:%M"),g=l("%I %p"),y=l("%a %d"),E=l("%b %d"),A=l("%B"),v=l("%Y");function S(C){return(a(C)<C?h:u(C)<C?p:o(C)<C?m:s(C)<C?g:r(C)<C?i(C)<C?y:E:n(C)<C?A:v)(C)}return c.invert=function(C){return new Date(f(C))},c.domain=function(C){return arguments.length?x(Array.from(C,mPe)):x().map(gPe)},c.ticks=function(C){var _=x();return t(_[0],_[_.length-1],C??10)},c.tickFormat=function(C,_){return _==null?S:l(_)},c.nice=function(C){var _=x();return(!C||typeof C.range!="function")&&(C=e(_[0],_[_.length-1],C??10)),C?x(wee(_,C)):c},c.copy=function(){return oy(c,v9(t,e,n,r,i,s,o,u,a,l))},c}function yPe(){return ya.apply(v9(K9e,X9e,da,D3,j2,Ml,dC,fC,Pl,W8).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function EPe(){return ya.apply(v9(V9e,Y9e,ha,F3,q2,mc,hC,xC,Pl,V8).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function YC(){var t=0,e=1,n,r,i,s,o=xs,u=!1,a;function l(f){return f==null||isNaN(f=+f)?a:o(i===0?.5:(f=(s(f)-n)*i,u?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([t,e]=f,n=s(t=+t),r=s(e=+e),i=n===r?0:1/(r-n),l):[t,e]},l.clamp=function(f){return arguments.length?(u=!!f,l):u},l.interpolator=function(f){return arguments.length?(o=f,l):o};function c(f){return function(x){var h,p;return arguments.length?([h,p]=x,o=f(h,p),l):[o(0),o(1)]}}return l.range=c(Tc),l.rangeRound=c(sy),l.unknown=function(f){return arguments.length?(a=f,l):a},function(f){return s=f,n=f(t),r=f(e),i=n===r?0:1/(r-n),l}}function Rc(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function S9(){var t=td(YC()(xs));return t.copy=function(){return Rc(t,S9())},_c.apply(t,arguments)}function zee(){var t=m9(YC()).domain([1,10]);return t.copy=function(){return Rc(t,zee()).base(t.base())},_c.apply(t,arguments)}function Qee(){var t=y9(YC());return t.copy=function(){return Rc(t,Qee()).constant(t.constant())},_c.apply(t,arguments)}function _9(){var t=E9(YC());return t.copy=function(){return Rc(t,_9()).exponent(t.exponent())},_c.apply(t,arguments)}function APe(){return _9.apply(null,arguments).exponent(.5)}function KC(){var t=0,e=.5,n=1,r=1,i,s,o,u,a,l=xs,c,f=!1,x;function h(m){return isNaN(m=+m)?x:(m=.5+((m=+c(m))-s)*(r*m<r*s?u:a),l(f?Math.max(0,Math.min(1,m)):m))}h.domain=function(m){return arguments.length?([t,e,n]=m,i=c(t=+t),s=c(e=+e),o=c(n=+n),u=i===s?0:.5/(s-i),a=s===o?0:.5/(o-s),r=s<i?-1:1,h):[t,e,n]},h.clamp=function(m){return arguments.length?(f=!!m,h):f},h.interpolator=function(m){return arguments.length?(l=m,h):l};function p(m){return function(g){var y,E,A;return arguments.length?([y,E,A]=g,l=h9(m,[y,E,A]),h):[l(0),l(.5),l(1)]}}return h.range=p(Tc),h.rangeRound=p(sy),h.unknown=function(m){return arguments.length?(x=m,h):x},function(m){return c=m,i=m(t),s=m(e),o=m(n),u=i===s?0:.5/(s-i),a=s===o?0:.5/(o-s),r=s<i?-1:1,h}}function Gee(){var t=td(KC()(xs));return t.copy=function(){return Rc(t,Gee())},_c.apply(t,arguments)}function Wee(){var t=m9(KC()).domain([.1,1,10]);return t.copy=function(){return Rc(t,Wee()).base(t.base())},_c.apply(t,arguments)}function Vee(){var t=y9(KC());return t.copy=function(){return Rc(t,Vee()).constant(t.constant())},_c.apply(t,arguments)}function C9(){var t=E9(KC());return t.copy=function(){return Rc(t,C9()).exponent(t.exponent())},_c.apply(t,arguments)}function vPe(){return C9.apply(null,arguments).exponent(.5)}function b9(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const SPe="identity",e1="linear",zl="log",uy="pow",ay="sqrt",XC="symlog",nd="time",rd="utc",va="sequential",t1="diverging",n1="quantile",JC="quantize",ZC="threshold",T9="ordinal",R9="point",Yee="band",O9="bin-ordinal",tr="continuous",ly="discrete",cy="discretizing",Ao="interpolating",N9="temporal";function _Pe(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function CPe(t){return function(e){const n=t.range();let r=e[0],i=e[1],s=-1,o,u,a,l;for(i<r&&(u=r,r=i,i=u),a=0,l=n.length;a<l;++a)n[a]>=r&&n[a]<=i&&(s<0&&(s=a),o=a);if(!(s<0))return r=t.invertExtent(n[s]),i=t.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function D9(){const t=Zw().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,s,o=!1,u=0,a=0,l=.5;delete t.unknown;function c(){const f=e().length,x=r[1]<r[0],h=r[1-x],p=b9(f,u,a);let m=r[x-0];i=(h-m)/(p||1),o&&(i=Math.floor(i)),m+=(h-m-i*(f-u))*l,s=i*(1-u),o&&(m=Math.round(m),s=Math.round(s));const g=Ps(f).map(y=>m+i*y);return n(x?g.reverse():g)}return t.domain=function(f){return arguments.length?(e(f),c()):e()},t.range=function(f){return arguments.length?(r=[+f[0],+f[1]],c()):r.slice()},t.rangeRound=function(f){return r=[+f[0],+f[1]],o=!0,c()},t.bandwidth=function(){return s},t.step=function(){return i},t.round=function(f){return arguments.length?(o=!!f,c()):o},t.padding=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u=a,c()):u},t.paddingInner=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},t.paddingOuter=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),c()):a},t.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},t.invertRange=function(f){if(f[0]==null||f[1]==null)return;const x=r[1]<r[0],h=x?n().reverse():n(),p=h.length-1;let m=+f[0],g=+f[1],y,E,A;if(!(m!==m||g!==g)&&(g<m&&(A=m,m=g,g=A),!(g<h[0]||m>r[1-x])))return y=Math.max(0,pc(h,m)-1),E=m===g?y:pc(h,g)-1,m-h[y]>s+1e-10&&++y,x&&(A=y,y=p-E,E=p-A),y>E?void 0:e().slice(y,E+1)},t.invert=function(f){const x=t.invertRange([f,f]);return x&&x[0]},t.copy=function(){return D9().domain(e()).range(r).round(o).paddingInner(u).paddingOuter(a).align(l)},c()}function Kee(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return Kee(e())},t}function bPe(){return Kee(D9().paddingInner(1))}var TPe=Array.prototype.map;function RPe(t){return TPe.call(t,_i)}const OPe=Array.prototype.slice;function Xee(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(pc(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=RPe(r),n):t.slice()},n.range=function(r){return arguments.length?(e=OPe.call(r),n):e.slice()},n.tickFormat=function(r,i){return Nee(t[0],St(t),r??10,i)},n.copy=function(){return Xee().domain(n.domain()).range(n.range())},n}const eb=new Map,Jee=Symbol("vega_scale");function Zee(t){return t[Jee]=!0,t}function NPe(t){return t&&t[Jee]===!0}function DPe(t,e,n){const r=function(){const s=e();return s.invertRange||(s.invertRange=s.invert?_Pe(s):s.invertExtent?CPe(s):void 0),s.type=t,Zee(s)};return r.metadata=ia(Pe(n)),r}function Ot(t,e,n){return arguments.length>1?(eb.set(t,DPe(t,e,n)),this):ete(t)?eb.get(t):void 0}Ot(SPe,Fee),Ot(e1,Dee,tr),Ot(zl,Bee,[tr,zl]),Ot(uy,A9,tr),Ot(ay,pPe,tr),Ot(XC,Mee,tr),Ot(nd,yPe,[tr,N9]),Ot(rd,EPe,[tr,N9]),Ot(va,S9,[tr,Ao]),Ot(`${va}-${e1}`,S9,[tr,Ao]),Ot(`${va}-${zl}`,zee,[tr,Ao,zl]),Ot(`${va}-${uy}`,_9,[tr,Ao]),Ot(`${va}-${ay}`,APe,[tr,Ao]),Ot(`${va}-${XC}`,Qee,[tr,Ao]),Ot(`${t1}-${e1}`,Gee,[tr,Ao]),Ot(`${t1}-${zl}`,Wee,[tr,Ao,zl]),Ot(`${t1}-${uy}`,C9,[tr,Ao]),Ot(`${t1}-${ay}`,vPe,[tr,Ao]),Ot(`${t1}-${XC}`,Vee,[tr,Ao]),Ot(n1,Uee,[cy,n1]),Ot(JC,qee,cy),Ot(ZC,Hee,cy),Ot(O9,Xee,[ly,cy]),Ot(T9,Zw,ly),Ot(Yee,D9,ly),Ot(R9,bPe,ly);function ete(t){return eb.has(t)}function id(t,e){const n=eb.get(t);return n&&n.metadata[e]}function F9(t){return id(t,tr)}function r1(t){return id(t,ly)}function w9(t){return id(t,cy)}function tte(t){return id(t,zl)}function FPe(t){return id(t,N9)}function nte(t){return id(t,Ao)}function rte(t){return id(t,n1)}const wPe=["clamp","base","constant","exponent"];function LPe(t,e){const n=e[0],r=St(e)-n;return function(i){return t(n+i*r)}}function L9(t,e,n){return h9(ste(e||"rgb",n),t)}function IPe(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function ite(t,e,n){const r=n-e;let i,s,o;return!r||!Number.isFinite(r)?Ci(.5):(i=(s=t.type).indexOf("-"),s=i<0?s:s.slice(i+1),o=Ot(s)().domain([e,n]).range([0,1]),wPe.forEach(u=>t[u]?o[u](t[u]()):0),o)}function ste(t,e){const n=rPe[$Pe(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function $Pe(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const BPe={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},kPe={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function ote(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function ute(t,e){for(const n in t)lte(n,e(t[n]))}const ate={};ute(kPe,ote),ute(BPe,t=>L9(ote(t)));function lte(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(ate[t]=e,this):ate[t]}const tb="symbol",PPe="discrete",MPe="gradient",jPe=t=>_e(t)?t.map(e=>String(e)):String(t),UPe=(t,e)=>t[1]-e[1],qPe=(t,e)=>e[1]-t[1];function I9(t,e,n){let r;return nn(e)&&(t.bins&&(e=Math.max(e,t.bins.length)),n!=null&&(e=Math.min(e,Math.floor(H5(t.domain())/n||1)))),He(e)&&(r=e.step,e=e.interval),je(e)&&(e=t.type===nd?w3(e):t.type==rd?L3(e):Se("Only time and utc scales accept interval strings."),r&&(e=e.every(r))),e}function cte(t,e,n){let r=t.range(),i=r[0],s=St(r),o=UPe;if(i>s&&(r=s,s=i,i=r,o=qPe),i=Math.floor(i),s=Math.ceil(s),e=e.map(u=>[u,t(u)]).filter(u=>i<=u[1]&&u[1]<=s).sort(o).map(u=>u[0]),n>0&&e.length>1){const u=[e[0],St(e)];for(;e.length>n&&e.length>=3;)e=e.filter((a,l)=>!(l%2));e.length<3&&(e=u)}return e}function $9(t,e){return t.bins?cte(t,t.bins):t.ticks?t.ticks(e):t.domain()}function fte(t,e,n,r,i,s){const o=e.type;let u=jPe;if(o===nd||i===nd)u=t.timeFormat(r);else if(o===rd||i===rd)u=t.utcFormat(r);else if(tte(o)){const a=t.formatFloat(r);if(s||e.bins)u=a;else{const l=xte(e,n,!1);u=c=>l(c)?a(c):""}}else if(e.tickFormat){const a=e.domain();u=t.formatSpan(a[0],a[a.length-1],n,r)}else r&&(u=t.format(r));return u}function xte(t,e,n){const r=$9(t,e),i=t.base(),s=Math.log(i),o=Math.max(1,i*e/r.length),u=a=>{let l=a/Math.pow(i,Math.round(Math.log(a)/s));return l*i<i-.5&&(l*=i),l<=o};return n?r.filter(u):u}const B9={[n1]:"quantiles",[JC]:"thresholds",[ZC]:"domain"},dte={[n1]:"quantiles",[JC]:"domain"};function hte(t,e){return t.bins?QPe(t.bins):t.type===zl?xte(t,e,!0):B9[t.type]?zPe(t[B9[t.type]]()):$9(t,e)}function HPe(t,e,n){const r=e[dte[e.type]](),i=r.length;let s=i>1?r[1]-r[0]:r[0],o;for(o=1;o<i;++o)s=Math.min(s,r[o]-r[o-1]);return t.formatSpan(0,s,3*10,n)}function zPe(t){const e=[-1/0].concat(t);return e.max=1/0,e}function QPe(t){const e=t.slice(0,-1);return e.max=St(t),e}const GPe=t=>B9[t.type]||t.bins;function pte(t,e,n,r,i,s,o){const u=dte[e.type]&&s!==nd&&s!==rd?HPe(t,e,i):fte(t,e,n,i,s,o);return r===tb&&GPe(e)?WPe(u):r===PPe?VPe(u):YPe(u)}const WPe=t=>(e,n,r)=>{const i=gte(r[n+1],gte(r.max,1/0)),s=mte(e,t),o=mte(i,t);return s&&o?s+" – "+o:o?"< "+o:"≥ "+s},gte=(t,e)=>t??e,VPe=t=>(e,n)=>n?t(e):null,YPe=t=>e=>t(e),mte=(t,e)=>Number.isFinite(t)?e(t):null;function KPe(t){const e=t.domain(),n=e.length-1;let r=+e[0],i=+St(e),s=i-r;if(t.type===ZC){const o=n?s/n:.1;r-=o,i+=o,s=i-r}return o=>(o-r)/s}function XPe(t,e,n,r){const i=r||e.type;return je(n)&&FPe(i)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),!n&&i===nd?t.timeFormat("%A, %d %B %Y, %X"):!n&&i===rd?t.utcFormat("%A, %d %B %Y, %X UTC"):pte(t,e,5,null,n,r,!0)}function yte(t,e,n){n=n||{};const r=Math.max(3,n.maxlen||7),i=XPe(t,e,n.format,n.formatType);if(w9(e.type)){const s=hte(e).slice(1).map(i),o=s.length;return`${o} boundar${o===1?"y":"ies"}: ${s.join(", ")}`}else if(r1(e.type)){const s=e.domain(),o=s.length,u=o>r?s.slice(0,r-2).map(i).join(", ")+", ending with "+s.slice(-1).map(i):s.map(i).join(", ");return`${o} value${o===1?"":"s"}: ${u}`}else{const s=e.domain();return`values from ${i(s[0])} to ${i(St(s))}`}}let JPe=0;const nb="p_";function k9(t){return t&&t.gradient}function Ete(t,e,n){const r=t.gradient;let i=t.id,s=r==="radial"?nb:"";return i||(i=t.id="gradient_"+JPe++,r==="radial"?(t.x1=Sa(t.x1,.5),t.y1=Sa(t.y1,.5),t.r1=Sa(t.r1,0),t.x2=Sa(t.x2,.5),t.y2=Sa(t.y2,.5),t.r2=Sa(t.r2,.5),s=nb):(t.x1=Sa(t.x1,0),t.y1=Sa(t.y1,0),t.x2=Sa(t.x2,1),t.y2=Sa(t.y2,0))),e[i]=t,"url("+(n||"")+"#"+s+i+")"}function Sa(t,e){return t??e}function ZPe(t,e){var n=[],r;return r={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:e?e[0]:1,y2:e?e[1]:0,stops:n,stop:function(i,s){return n.push({offset:i,color:s}),r}}}const Ate={basis:{curve:tke},"basis-closed":{curve:nke},"basis-open":{curve:rke},bundle:{curve:ike,tension:"beta",value:.85},cardinal:{curve:ske,tension:"tension",value:0},"cardinal-open":{curve:uke,tension:"tension",value:0},"cardinal-closed":{curve:oke,tension:"tension",value:0},"catmull-rom":{curve:ake,tension:"alpha",value:.5},"catmull-rom-closed":{curve:lke,tension:"alpha",value:.5},"catmull-rom-open":{curve:cke,tension:"alpha",value:.5},linear:{curve:Gw},"linear-closed":{curve:fke},monotone:{horizontal:dke,vertical:xke},natural:{curve:hke},step:{curve:pke},"step-after":{curve:mke},"step-before":{curve:gke}};function vte(t,e,n){var r=Je(Ate,t)&&Ate[t],i=null;return r&&(i=r.curve||r[e||"vertical"],r.tension&&n!=null&&(i=i[r.tension](n))),i}const eMe={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},tMe=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,nMe=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,rMe=/^((\s+,?\s*)|(,\s*))/,iMe=/^[01]/;function P9(t){const e=[];return(t.match(tMe)||[]).forEach(r=>{let i=r[0];const s=i.toLowerCase(),o=eMe[s],u=sMe(s,o,r.slice(1).trim()),a=u.length;if(a<o||a&&a%o!==0)throw Error("Invalid SVG path, incorrect parameter count");if(e.push([i,...u.slice(0,o)]),a!==o){s==="m"&&(i=i==="M"?"L":"l");for(let l=o;l<a;l+=o)e.push([i,...u.slice(l,l+o)])}}),e}function sMe(t,e,n){const r=[];for(let i=0;e&&i<n.length;)for(let s=0;s<e;++s){const o=t==="a"&&(s===3||s===4)?iMe:nMe,u=n.slice(i).match(o);if(u===null)throw Error("Invalid SVG path, incorrect parameter type");i+=u[0].length,r.push(+u[0]);const a=n.slice(i).match(rMe);a!==null&&(i+=a[0].length)}return r}const Oc=Math.PI/180,oMe=1e-14,sd=Math.PI/2,_a=Math.PI*2,i1=Math.sqrt(3)/2;var M9={},j9={},Ste=[].join;function uMe(t,e,n,r,i,s,o,u,a){const l=Ste.call(arguments);if(M9[l])return M9[l];const c=o*Oc,f=Math.sin(c),x=Math.cos(c);n=Math.abs(n),r=Math.abs(r);const h=x*(u-t)*.5+f*(a-e)*.5,p=x*(a-e)*.5-f*(u-t)*.5;let m=h*h/(n*n)+p*p/(r*r);m>1&&(m=Math.sqrt(m),n*=m,r*=m);const g=x/n,y=f/n,E=-f/r,A=x/r,v=g*u+y*a,S=E*u+A*a,C=g*t+y*e,_=E*t+A*e;let R=1/((C-v)*(C-v)+(_-S)*(_-S))-.25;R<0&&(R=0);let O=Math.sqrt(R);s==i&&(O=-O);const L=.5*(v+C)-O*(_-S),M=.5*(S+_)+O*(C-v),q=Math.atan2(S-M,v-L);let B=Math.atan2(_-M,C-L)-q;B<0&&s===1?B+=_a:B>0&&s===0&&(B-=_a);const G=Math.ceil(Math.abs(B/(sd+.001))),te=[];for(let X=0;X<G;++X){const de=q+X*B/G,be=q+(X+1)*B/G;te[X]=[L,M,de,be,n,r,f,x]}return M9[l]=te}function aMe(t){const e=Ste.call(t);if(j9[e])return j9[e];var n=t[0],r=t[1],i=t[2],s=t[3],o=t[4],u=t[5],a=t[6],l=t[7];const c=l*o,f=-a*u,x=a*o,h=l*u,p=Math.cos(i),m=Math.sin(i),g=Math.cos(s),y=Math.sin(s),E=.5*(s-i),A=Math.sin(E*.5),v=8/3*A*A/Math.sin(E),S=n+p-v*m,C=r+m+v*p,_=n+g,b=r+y,R=_+v*y,O=b-v*g;return j9[e]=[c*S+f*C,x*S+h*C,c*R+f*O,x*R+h*O,c*_+f*b,x*_+h*b]}const vo=["l",0,0,0,0,0,0,0];function lMe(t,e,n){const r=vo[0]=t[0];if(r==="a"||r==="A")vo[1]=e*t[1],vo[2]=n*t[2],vo[3]=t[3],vo[4]=t[4],vo[5]=t[5],vo[6]=e*t[6],vo[7]=n*t[7];else if(r==="h"||r==="H")vo[1]=e*t[1];else if(r==="v"||r==="V")vo[1]=n*t[1];else for(var i=1,s=t.length;i<s;++i)vo[i]=(i%2==1?e:n)*t[i];return vo}function rb(t,e,n,r,i,s){var o,u=null,a=0,l=0,c=0,f=0,x,h,p,m,g=0,y=0;n==null&&(n=0),r==null&&(r=0),i==null&&(i=1),s==null&&(s=i),t.beginPath&&t.beginPath();for(var E=0,A=e.length;E<A;++E){switch(o=e[E],(i!==1||s!==1)&&(o=lMe(o,i,s)),o[0]){case"l":a+=o[1],l+=o[2],t.lineTo(a+n,l+r);break;case"L":a=o[1],l=o[2],t.lineTo(a+n,l+r);break;case"h":a+=o[1],t.lineTo(a+n,l+r);break;case"H":a=o[1],t.lineTo(a+n,l+r);break;case"v":l+=o[1],t.lineTo(a+n,l+r);break;case"V":l=o[1],t.lineTo(a+n,l+r);break;case"m":a+=o[1],l+=o[2],g=a,y=l,t.moveTo(a+n,l+r);break;case"M":a=o[1],l=o[2],g=a,y=l,t.moveTo(a+n,l+r);break;case"c":x=a+o[5],h=l+o[6],c=a+o[3],f=l+o[4],t.bezierCurveTo(a+o[1]+n,l+o[2]+r,c+n,f+r,x+n,h+r),a=x,l=h;break;case"C":a=o[5],l=o[6],c=o[3],f=o[4],t.bezierCurveTo(o[1]+n,o[2]+r,c+n,f+r,a+n,l+r);break;case"s":x=a+o[3],h=l+o[4],c=2*a-c,f=2*l-f,t.bezierCurveTo(c+n,f+r,a+o[1]+n,l+o[2]+r,x+n,h+r),c=a+o[1],f=l+o[2],a=x,l=h;break;case"S":x=o[3],h=o[4],c=2*a-c,f=2*l-f,t.bezierCurveTo(c+n,f+r,o[1]+n,o[2]+r,x+n,h+r),a=x,l=h,c=o[1],f=o[2];break;case"q":x=a+o[3],h=l+o[4],c=a+o[1],f=l+o[2],t.quadraticCurveTo(c+n,f+r,x+n,h+r),a=x,l=h;break;case"Q":x=o[3],h=o[4],t.quadraticCurveTo(o[1]+n,o[2]+r,x+n,h+r),a=x,l=h,c=o[1],f=o[2];break;case"t":x=a+o[1],h=l+o[2],u[0].match(/[QqTt]/)===null?(c=a,f=l):u[0]==="t"?(c=2*a-p,f=2*l-m):u[0]==="q"&&(c=2*a-c,f=2*l-f),p=c,m=f,t.quadraticCurveTo(c+n,f+r,x+n,h+r),a=x,l=h,c=a+o[1],f=l+o[2];break;case"T":x=o[1],h=o[2],c=2*a-c,f=2*l-f,t.quadraticCurveTo(c+n,f+r,x+n,h+r),a=x,l=h;break;case"a":_te(t,a+n,l+r,[o[1],o[2],o[3],o[4],o[5],o[6]+a+n,o[7]+l+r]),a+=o[6],l+=o[7];break;case"A":_te(t,a+n,l+r,[o[1],o[2],o[3],o[4],o[5],o[6]+n,o[7]+r]),a=o[6],l=o[7];break;case"z":case"Z":a=g,l=y,t.closePath();break}u=o}}function _te(t,e,n,r){const i=uMe(r[5],r[6],r[0],r[1],r[3],r[4],r[2],e,n);for(let s=0;s<i.length;++s){const o=aMe(i[s]);t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5])}}const Cte=.5773502691896257,bte={circle:{draw:function(t,e){const n=Math.sqrt(e)/2;t.moveTo(n,0),t.arc(0,0,n,0,_a)}},cross:{draw:function(t,e){var n=Math.sqrt(e)/2,r=n/2.5;t.moveTo(-n,-r),t.lineTo(-n,r),t.lineTo(-r,r),t.lineTo(-r,n),t.lineTo(r,n),t.lineTo(r,r),t.lineTo(n,r),t.lineTo(n,-r),t.lineTo(r,-r),t.lineTo(r,-n),t.lineTo(-r,-n),t.lineTo(-r,-r),t.closePath()}},diamond:{draw:function(t,e){const n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.closePath()}},square:{draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},arrow:{draw:function(t,e){var n=Math.sqrt(e)/2,r=n/7,i=n/2.5,s=n/8;t.moveTo(-r,n),t.lineTo(r,n),t.lineTo(r,-s),t.lineTo(i,-s),t.lineTo(0,-n),t.lineTo(-i,-s),t.lineTo(-r,-s),t.closePath()}},wedge:{draw:function(t,e){var n=Math.sqrt(e)/2,r=i1*n,i=r-n*Cte,s=n/4;t.moveTo(0,-r-i),t.lineTo(-s,r-i),t.lineTo(s,r-i),t.closePath()}},triangle:{draw:function(t,e){var n=Math.sqrt(e)/2,r=i1*n,i=r-n*Cte;t.moveTo(0,-r-i),t.lineTo(-n,r-i),t.lineTo(n,r-i),t.closePath()}},"triangle-up":{draw:function(t,e){var n=Math.sqrt(e)/2,r=i1*n;t.moveTo(0,-r),t.lineTo(-n,r),t.lineTo(n,r),t.closePath()}},"triangle-down":{draw:function(t,e){var n=Math.sqrt(e)/2,r=i1*n;t.moveTo(0,r),t.lineTo(-n,-r),t.lineTo(n,-r),t.closePath()}},"triangle-right":{draw:function(t,e){var n=Math.sqrt(e)/2,r=i1*n;t.moveTo(r,0),t.lineTo(-r,-n),t.lineTo(-r,n),t.closePath()}},"triangle-left":{draw:function(t,e){var n=Math.sqrt(e)/2,r=i1*n;t.moveTo(-r,0),t.lineTo(r,-n),t.lineTo(r,n),t.closePath()}},stroke:{draw:function(t,e){const n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(n,0)}}};function cMe(t){return Je(bte,t)?bte[t]:fMe(t)}var U9={};function fMe(t){if(!Je(U9,t)){const e=P9(t);U9[t]={draw:function(n,r){rb(n,e,0,0,Math.sqrt(r)/2)}}}return U9[t]}const Nc=.448084975506;function xMe(t){return t.x}function dMe(t){return t.y}function hMe(t){return t.width}function pMe(t){return t.height}function Ql(t){return typeof t=="function"?t:()=>+t}function ib(t,e,n){return Math.max(e,Math.min(t,n))}function gMe(){var t=xMe,e=dMe,n=hMe,r=pMe,i=Ql(0),s=i,o=i,u=i,a=null;function l(c,f,x){var h,p=f??+t.call(this,c),m=x??+e.call(this,c),g=+n.call(this,c),y=+r.call(this,c),E=Math.min(g,y)/2,A=ib(+i.call(this,c),0,E),v=ib(+s.call(this,c),0,E),S=ib(+o.call(this,c),0,E),C=ib(+u.call(this,c),0,E);if(a||(a=h=Qw()),A<=0&&v<=0&&S<=0&&C<=0)a.rect(p,m,g,y);else{var _=p+g,b=m+y;a.moveTo(p+A,m),a.lineTo(_-v,m),a.bezierCurveTo(_-Nc*v,m,_,m+Nc*v,_,m+v),a.lineTo(_,b-C),a.bezierCurveTo(_,b-Nc*C,_-Nc*C,b,_-C,b),a.lineTo(p+S,b),a.bezierCurveTo(p+Nc*S,b,p,b-Nc*S,p,b-S),a.lineTo(p,m+A),a.bezierCurveTo(p,m+Nc*A,p+Nc*A,m,p+A,m),a.closePath()}if(h)return a=null,h+""||null}return l.x=function(c){return arguments.length?(t=Ql(c),l):t},l.y=function(c){return arguments.length?(e=Ql(c),l):e},l.width=function(c){return arguments.length?(n=Ql(c),l):n},l.height=function(c){return arguments.length?(r=Ql(c),l):r},l.cornerRadius=function(c,f,x,h){return arguments.length?(i=Ql(c),s=f!=null?Ql(f):i,u=x!=null?Ql(x):i,o=h!=null?Ql(h):s,l):i},l.context=function(c){return arguments.length?(a=c??null,l):a},l}function mMe(){var t,e,n,r,i=null,s,o,u,a;function l(f,x,h){const p=h/2;if(s){var m=u-x,g=f-o;if(m||g){var y=Math.sqrt(m*m+g*g),E=(m/=y)*a,A=(g/=y)*a,v=Math.atan2(g,m);i.moveTo(o-E,u-A),i.lineTo(f-m*p,x-g*p),i.arc(f,x,p,v-Math.PI,v),i.lineTo(o+E,u+A),i.arc(o,u,a,v,v+Math.PI)}else i.arc(f,x,p,0,_a);i.closePath()}else s=1;o=f,u=x,a=p}function c(f){var x,h=f.length,p,m=!1,g;for(i==null&&(i=g=Qw()),x=0;x<=h;++x)!(x<h&&r(p=f[x],x,f))===m&&(m=!m)&&(s=0),m&&l(+t(p,x,f),+e(p,x,f),+n(p,x,f));if(g)return i=null,g+""||null}return c.x=function(f){return arguments.length?(t=f,c):t},c.y=function(f){return arguments.length?(e=f,c):e},c.size=function(f){return arguments.length?(n=f,c):n},c.defined=function(f){return arguments.length?(r=f,c):r},c.context=function(f){return arguments.length?(f==null?i=null:i=f,c):i},c}function fy(t,e){return t??e}const xy=t=>t.x||0,dy=t=>t.y||0,yMe=t=>t.width||0,EMe=t=>t.height||0,AMe=t=>(t.x||0)+(t.width||0),vMe=t=>(t.y||0)+(t.height||0),SMe=t=>t.startAngle||0,_Me=t=>t.endAngle||0,CMe=t=>t.padAngle||0,bMe=t=>t.innerRadius||0,TMe=t=>t.outerRadius||0,RMe=t=>t.cornerRadius||0,OMe=t=>fy(t.cornerRadiusTopLeft,t.cornerRadius)||0,NMe=t=>fy(t.cornerRadiusTopRight,t.cornerRadius)||0,DMe=t=>fy(t.cornerRadiusBottomRight,t.cornerRadius)||0,FMe=t=>fy(t.cornerRadiusBottomLeft,t.cornerRadius)||0,wMe=t=>fy(t.size,64),LMe=t=>t.size||1,sb=t=>t.defined!==!1,IMe=t=>cMe(t.shape||"circle"),$Me=JBe().startAngle(SMe).endAngle(_Me).padAngle(CMe).innerRadius(bMe).outerRadius(TMe).cornerRadius(RMe),BMe=RZ().x(xy).y1(dy).y0(vMe).defined(sb),kMe=RZ().y(dy).x1(xy).x0(AMe).defined(sb),PMe=TZ().x(xy).y(dy).defined(sb),MMe=gMe().x(xy).y(dy).width(yMe).height(EMe).cornerRadius(OMe,NMe,DMe,FMe),jMe=eke().type(IMe).size(wMe),UMe=mMe().x(xy).y(dy).defined(sb).size(LMe);function q9(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function qMe(t,e){return $Me.context(t)(e)}function HMe(t,e){const n=e[0],r=n.interpolate||"linear";return(n.orient==="horizontal"?kMe:BMe).curve(vte(r,n.orient,n.tension)).context(t)(e)}function zMe(t,e){const n=e[0],r=n.interpolate||"linear";return PMe.curve(vte(r,n.orient,n.tension)).context(t)(e)}function s1(t,e,n,r){return MMe.context(t)(e,n,r)}function QMe(t,e){return(e.mark.shape||e.shape).context(t)(e)}function GMe(t,e){return jMe.context(t)(e)}function WMe(t,e){return UMe.context(t)(e)}var VMe=1;function H9(t,e,n){var r=e.clip,i=t._defs,s=e.clip_id||(e.clip_id="clip"+VMe++),o=i.clipping[s]||(i.clipping[s]={id:s});return ct(r)?o.path=r(null):q9(n)?o.path=s1(null,n,0,0):(o.width=n.width||0,o.height=n.height||0),"url(#"+s+")"}function nr(t){this.clear(),t&&this.union(t)}nr.prototype={clone(){return new nr(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,e,n,r){return n<t?(this.x2=t,this.x1=n):(this.x1=t,this.x2=n),r<e?(this.y2=e,this.y1=r):(this.y1=e,this.y2=r),this},add(t,e){return t<this.x1&&(this.x1=t),e<this.y1&&(this.y1=e),t>this.x2&&(this.x2=t),e>this.y2&&(this.y2=e),this},expand(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},translate(t,e){return this.x1+=t,this.x2+=t,this.y1+=e,this.y2+=e,this},rotate(t,e,n){const r=this.rotatedPoints(t,e,n);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},rotatedPoints(t,e,n){var{x1:r,y1:i,x2:s,y2:o}=this,u=Math.cos(t),a=Math.sin(t),l=e-e*u+n*a,c=n-e*a-n*u;return[u*r-a*i+l,a*r+u*i+c,u*r-a*o+l,a*r+u*o+c,u*s-a*i+l,a*s+u*i+c,u*s-a*o+l,a*s+u*o+c]},union(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},intersect(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},encloses(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},contains(t,e){return!(t<this.x1||t>this.x2||e<this.y1||e>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}};function z9(t){this.mark=t,this.bounds=this.bounds||new nr}function Q9(t){z9.call(this,t),this.items=this.items||[]}Fe(Q9,z9);function Tte(t){this._pending=0,this._loader=t||nw()}function Rte(t){t._pending+=1}function hy(t){t._pending-=1}Tte.prototype={pending(){return this._pending},sanitizeURL(t){const e=this;return Rte(e),e._loader.sanitize(t,{context:"href"}).then(n=>(hy(e),n)).catch(()=>(hy(e),null))},loadImage(t){const e=this,n=yke();return Rte(e),e._loader.sanitize(t,{context:"image"}).then(r=>{const i=r.href;if(!i||!n)throw{url:i};const s=new n,o=Je(r,"crossOrigin")?r.crossOrigin:"anonymous";return o!=null&&(s.crossOrigin=o),s.onload=()=>hy(e),s.onerror=()=>hy(e),s.src=i,s}).catch(r=>(hy(e),{complete:!1,width:0,height:0,src:r&&r.url||""}))},ready(){const t=this;return new Promise(e=>{function n(r){t.pending()?setTimeout(()=>{n(!0)},10):e(r)}n(!1)})}};function Dc(t,e,n){if(e.stroke&&e.opacity!==0&&e.strokeOpacity!==0){const r=e.strokeWidth!=null?+e.strokeWidth:1;t.expand(r+(n?YMe(e,r):0))}return t}function YMe(t,e){return t.strokeJoin&&t.strokeJoin!=="miter"?0:e}const KMe=_a-1e-8;let ob,ub,ab,od,G9,lb,W9,V9;const Fc=(t,e)=>ob.add(t,e),cb=(t,e)=>Fc(ub=t,ab=e),Ote=t=>Fc(t,ob.y1),Nte=t=>Fc(ob.x1,t),ud=(t,e)=>G9*t+W9*e,ad=(t,e)=>lb*t+V9*e,Y9=(t,e)=>Fc(ud(t,e),ad(t,e)),K9=(t,e)=>cb(ud(t,e),ad(t,e));function fb(t,e){return ob=t,e?(od=e*Oc,G9=V9=Math.cos(od),lb=Math.sin(od),W9=-lb):(G9=V9=1,od=lb=W9=0),XMe}const XMe={beginPath(){},closePath(){},moveTo:K9,lineTo:K9,rect(t,e,n,r){od?(Y9(t+n,e),Y9(t+n,e+r),Y9(t,e+r),K9(t,e)):(Fc(t+n,e+r),cb(t,e))},quadraticCurveTo(t,e,n,r){const i=ud(t,e),s=ad(t,e),o=ud(n,r),u=ad(n,r);Dte(ub,i,o,Ote),Dte(ab,s,u,Nte),cb(o,u)},bezierCurveTo(t,e,n,r,i,s){const o=ud(t,e),u=ad(t,e),a=ud(n,r),l=ad(n,r),c=ud(i,s),f=ad(i,s);Fte(ub,o,a,c,Ote),Fte(ab,u,l,f,Nte),cb(c,f)},arc(t,e,n,r,i,s){if(r+=od,i+=od,ub=n*Math.cos(i)+t,ab=n*Math.sin(i)+e,Math.abs(i-r)>KMe)Fc(t-n,e-n),Fc(t+n,e+n);else{const o=l=>Fc(n*Math.cos(l)+t,n*Math.sin(l)+e);let u,a;if(o(r),o(i),i!==r)if(r=r%_a,r<0&&(r+=_a),i=i%_a,i<0&&(i+=_a),i<r&&(s=!s,u=r,r=i,i=u),s)for(i-=_a,u=r-r%sd,a=0;a<4&&u>i;++a,u-=sd)o(u);else for(u=r-r%sd+sd,a=0;a<4&&u<i;++a,u=u+sd)o(u)}}};function Dte(t,e,n,r){const i=(t-e)/(t+n-2*e);0<i&&i<1&&r(t+(e-t)*i)}function Fte(t,e,n,r,i){const s=r-t+3*e-3*n,o=t+n-2*e,u=t-e;let a=0,l=0,c;Math.abs(s)>oMe?(c=o*o+u*s,c>=0&&(c=Math.sqrt(c),a=(-o+c)/s,l=(-o-c)/s)):a=.5*u/o,0<a&&a<1&&i(wte(a,t,e,n,r)),0<l&&l<1&&i(wte(l,t,e,n,r))}function wte(t,e,n,r,i){const s=1-t,o=s*s,u=t*t;return o*s*e+3*o*t*n+3*s*u*r+u*t*i}var wc=(wc=Sc(1,1))?wc.getContext("2d"):null;const X9=new nr;function Lte(t){return function(e,n){if(!wc)return!0;t(wc,e),X9.clear().union(e.bounds).intersect(n).round();const{x1:r,y1:i,x2:s,y2:o}=X9;for(let u=i;u<=o;++u)for(let a=r;a<=s;++a)if(wc.isPointInPath(a,u))return!0;return!1}}function Ite(t,e){return e.contains(t.x||0,t.y||0)}function $te(t,e){const n=t.x||0,r=t.y||0,i=t.width||0,s=t.height||0;return e.intersects(X9.set(n,r,n+i,r+s))}function JMe(t,e){const n=t.x||0,r=t.y||0,i=t.x2!=null?t.x2:n,s=t.y2!=null?t.y2:r;return py(e,n,r,i,s)}function py(t,e,n,r,i){const{x1:s,y1:o,x2:u,y2:a}=t,l=r-e,c=i-n;let f=0,x=1,h,p,m,g;for(g=0;g<4;++g){if(g===0&&(h=-l,p=-(s-e)),g===1&&(h=l,p=u-e),g===2&&(h=-c,p=-(o-n)),g===3&&(h=c,p=a-n),Math.abs(h)<1e-10&&p<0)return!1;if(m=p/h,h<0){if(m>x)return!1;m>f&&(f=m)}else if(h>0){if(m<f)return!1;m<x&&(x=m)}}return!0}function o1(t,e){t.globalCompositeOperation=e.blend||"source-over"}function uu(t,e){return t??e}function Bte(t,e){const n=e.length;for(let r=0;r<n;++r)t.addColorStop(e[r].offset,e[r].color);return t}function ZMe(t,e,n){const r=n.width(),i=n.height();let s;if(e.gradient==="radial")s=t.createRadialGradient(n.x1+uu(e.x1,.5)*r,n.y1+uu(e.y1,.5)*i,Math.max(r,i)*uu(e.r1,0),n.x1+uu(e.x2,.5)*r,n.y1+uu(e.y2,.5)*i,Math.max(r,i)*uu(e.r2,.5));else{const o=uu(e.x1,0),u=uu(e.y1,0),a=uu(e.x2,1),l=uu(e.y2,0);if(o===a||u===l||r===i)s=t.createLinearGradient(n.x1+o*r,n.y1+u*i,n.x1+a*r,n.y1+l*i);else{const c=Sc(Math.ceil(r),Math.ceil(i)),f=c.getContext("2d");return f.scale(r,i),f.fillStyle=Bte(f.createLinearGradient(o,u,a,l),e.stops),f.fillRect(0,0,r,i),t.createPattern(c,"no-repeat")}}return Bte(s,e.stops)}function kte(t,e,n){return k9(n)?ZMe(t,n,e.bounds):n}function xb(t,e,n){return n*=e.fillOpacity==null?1:e.fillOpacity,n>0?(t.globalAlpha=n,t.fillStyle=kte(t,e,e.fill),!0):!1}var eje=[];function u1(t,e,n){var r=(r=e.strokeWidth)!=null?r:1;return r<=0?!1:(n*=e.strokeOpacity==null?1:e.strokeOpacity,n>0?(t.globalAlpha=n,t.strokeStyle=kte(t,e,e.stroke),t.lineWidth=r,t.lineCap=e.strokeCap||"butt",t.lineJoin=e.strokeJoin||"miter",t.miterLimit=e.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(e.strokeDash||eje),t.lineDashOffset=e.strokeDashOffset||0),!0):!1)}function tje(t,e){return t.zindex-e.zindex||t.index-e.index}function Pte(t){if(!t.zdirty)return t.zitems;var e=t.items,n=[],r,i,s;for(i=0,s=e.length;i<s;++i)r=e[i],r.index=i,r.zindex&&n.push(r);return t.zdirty=!1,t.zitems=n.sort(tje)}function Ca(t,e){var n=t.items,r,i;if(!n||!n.length)return;const s=Pte(t);if(s&&s.length){for(r=0,i=n.length;r<i;++r)n[r].zindex||e(n[r]);n=s}for(r=0,i=n.length;r<i;++r)e(n[r])}function J9(t,e){var n=t.items,r,i;if(!n||!n.length)return null;const s=Pte(t);for(s&&s.length&&(n=s),i=n.length;--i>=0;)if(r=e(n[i]))return r;if(n===s){for(n=t.items,i=n.length;--i>=0;)if(!n[i].zindex&&(r=e(n[i])))return r}return null}function Z9(t){return function(e,n,r){Ca(n,i=>{(!r||r.intersects(i.bounds))&&Mte(t,e,i,i)})}}function nje(t){return function(e,n,r){n.items.length&&(!r||r.intersects(n.bounds))&&Mte(t,e,n.items[0],n.items)}}function Mte(t,e,n,r){var i=n.opacity==null?1:n.opacity;i!==0&&(t(e,r)||(o1(e,n),n.fill&&xb(e,n,i)&&e.fill(),n.stroke&&u1(e,n,i)&&e.stroke()))}function db(t){return t=t||Zo,function(e,n,r,i,s,o){return r*=e.pixelRatio,i*=e.pixelRatio,J9(n,u=>{const a=u.bounds;if(!(a&&!a.contains(s,o)||!a)&&t(e,u,r,i,s,o))return u})}}function gy(t,e){return function(n,r,i,s){var o=Array.isArray(r)?r[0]:r,u=e??o.fill,a=o.stroke&&n.isPointInStroke,l,c;return a&&(l=o.strokeWidth,c=o.strokeCap,n.lineWidth=l??1,n.lineCap=c??"butt"),t(n,r)?!1:u&&n.isPointInPath(i,s)||a&&n.isPointInStroke(i,s)}}function eL(t){return db(gy(t))}function ld(t,e){return"translate("+t+","+e+")"}function tL(t){return"rotate("+t+")"}function rje(t,e){return"scale("+t+","+e+")"}function jte(t){return ld(t.x||0,t.y||0)}function ije(t){return ld(t.x||0,t.y||0)+(t.angle?" "+tL(t.angle):"")}function sje(t){return ld(t.x||0,t.y||0)+(t.angle?" "+tL(t.angle):"")+(t.scaleX||t.scaleY?" "+rje(t.scaleX||1,t.scaleY||1):"")}function nL(t,e,n){function r(o,u){o("transform",ije(u)),o("d",e(null,u))}function i(o,u){return e(fb(o,u.angle),u),Dc(o,u).translate(u.x||0,u.y||0)}function s(o,u){var a=u.x||0,l=u.y||0,c=u.angle||0;o.translate(a,l),c&&o.rotate(c*=Oc),o.beginPath(),e(o,u),c&&o.rotate(-c),o.translate(-a,-l)}return{type:t,tag:"path",nested:!1,attr:r,bound:i,draw:Z9(s),pick:eL(s),isect:n||Lte(s)}}var oje=nL("arc",qMe);function uje(t,e){for(var n=t[0].orient==="horizontal"?e[1]:e[0],r=t[0].orient==="horizontal"?"y":"x",i=t.length,s=1/0,o,u;--i>=0;)t[i].defined!==!1&&(u=Math.abs(t[i][r]-n),u<s&&(s=u,o=t[i]));return o}function aje(t,e){for(var n=Math.pow(t[0].strokeWidth||1,2),r=t.length,i,s,o;--r>=0;)if(t[r].defined!==!1&&(i=t[r].x-e[0],s=t[r].y-e[1],o=i*i+s*s,o<n))return t[r];return null}function lje(t,e){for(var n=t.length,r,i,s;--n>=0;)if(t[n].defined!==!1&&(r=t[n].x-e[0],i=t[n].y-e[1],s=r*r+i*i,r=t[n].size||1,s<r*r))return t[n];return null}function rL(t,e,n){function r(a,l){var c=l.mark.items;c.length&&a("d",e(null,c))}function i(a,l){var c=l.items;return c.length===0?a:(e(fb(a),c),Dc(a,c[0]))}function s(a,l){a.beginPath(),e(a,l)}const o=gy(s);function u(a,l,c,f,x,h){var p=l.items,m=l.bounds;return!p||!p.length||m&&!m.contains(x,h)?null:(c*=a.pixelRatio,f*=a.pixelRatio,o(a,p,c,f)?p[0]:null)}return{type:t,tag:"path",nested:!0,attr:r,bound:i,draw:nje(s),pick:u,isect:Ite,tip:n}}var cje=rL("area",HMe,uje);function fje(t,e){var n=e.clip;t.save(),ct(n)?(t.beginPath(),n(t),t.clip()):Ute(t,e.group)}function Ute(t,e){t.beginPath(),q9(e)?s1(t,e,0,0):t.rect(0,0,e.width||0,e.height||0),t.clip()}function qte(t){const e=uu(t.strokeWidth,1);return t.strokeOffset!=null?t.strokeOffset:t.stroke&&e>.5&&e<1.5?.5-Math.abs(e-1):0}function xje(t,e){t("transform",jte(e))}function Hte(t,e){const n=qte(e);t("d",s1(null,e,n,n))}function dje(t,e){t("class","background"),t("aria-hidden",!0),Hte(t,e)}function hje(t,e){t("class","foreground"),t("aria-hidden",!0),e.strokeForeground?Hte(t,e):t("d","")}function pje(t,e,n){const r=e.clip?H9(n,e,e):null;t("clip-path",r)}function gje(t,e){if(!e.clip&&e.items){const n=e.items,r=n.length;for(let i=0;i<r;++i)t.union(n[i].bounds)}return(e.clip||e.width||e.height)&&!e.noBound&&t.add(0,0).add(e.width||0,e.height||0),Dc(t,e),t.translate(e.x||0,e.y||0)}function my(t,e,n,r){const i=qte(e);t.beginPath(),s1(t,e,(n||0)+i,(r||0)+i)}const mje=gy(my),yje=gy(my,!1),Eje=gy(my,!0);function Aje(t,e,n){Ca(e,r=>{const i=r.x||0,s=r.y||0,o=r.strokeForeground,u=r.opacity==null?1:r.opacity;(r.stroke||r.fill)&&u&&(my(t,r,i,s),o1(t,r),r.fill&&xb(t,r,u)&&t.fill(),r.stroke&&!o&&u1(t,r,u)&&t.stroke()),t.save(),t.translate(i,s),r.clip&&Ute(t,r),n&&n.translate(-i,-s),Ca(r,a=>{this.draw(t,a,n)}),n&&n.translate(i,s),t.restore(),o&&r.stroke&&u&&(my(t,r,i,s),o1(t,r),u1(t,r,u)&&t.stroke())})}function vje(t,e,n,r,i,s){if(e.bounds&&!e.bounds.contains(i,s)||!e.items)return null;const o=n*t.pixelRatio,u=r*t.pixelRatio;return J9(e,a=>{let l,c,f;const x=a.bounds;if(x&&!x.contains(i,s))return;c=a.x||0,f=a.y||0;const h=c+(a.width||0),p=f+(a.height||0),m=a.clip;if(m&&(i<c||i>h||s<f||s>p))return;if(t.save(),t.translate(c,f),c=i-c,f=s-f,m&&q9(a)&&!Eje(t,a,o,u))return t.restore(),null;const g=a.strokeForeground,y=e.interactive!==!1;return y&&g&&a.stroke&&yje(t,a,o,u)?(t.restore(),a):(l=J9(a,E=>Sje(E,c,f)?this.pick(E,n,r,c,f):null),!l&&y&&(a.fill||!g&&a.stroke)&&mje(t,a,o,u)&&(l=a),t.restore(),l||null)})}function Sje(t,e,n){return(t.interactive!==!1||t.marktype==="group")&&t.bounds&&t.bounds.contains(e,n)}var _je={type:"group",tag:"g",nested:!1,attr:xje,bound:gje,draw:Aje,pick:vje,isect:$te,content:pje,background:dje,foreground:hje},yy={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function iL(t,e){var n=t.image;return(!n||t.url&&t.url!==n.url)&&(n={complete:!1,width:0,height:0},e.loadImage(t.url).then(r=>{t.image=r,t.image.url=t.url})),n}function sL(t,e){return t.width!=null?t.width:!e||!e.width?0:t.aspect!==!1&&t.height?t.height*e.width/e.height:e.width}function oL(t,e){return t.height!=null?t.height:!e||!e.height?0:t.aspect!==!1&&t.width?t.width*e.height/e.width:e.height}function hb(t,e){return t==="center"?e/2:t==="right"?e:0}function pb(t,e){return t==="middle"?e/2:t==="bottom"?e:0}function Cje(t,e,n){const r=iL(e,n),i=sL(e,r),s=oL(e,r),o=(e.x||0)-hb(e.align,i),u=(e.y||0)-pb(e.baseline,s),a=!r.src&&r.toDataURL?r.toDataURL():r.src||"";t("href",a,yy["xmlns:xlink"],"xlink:href"),t("transform",ld(o,u)),t("width",i),t("height",s),t("preserveAspectRatio",e.aspect===!1?"none":"xMidYMid")}function bje(t,e){const n=e.image,r=sL(e,n),i=oL(e,n),s=(e.x||0)-hb(e.align,r),o=(e.y||0)-pb(e.baseline,i);return t.set(s,o,s+r,o+i)}function Tje(t,e,n){Ca(e,r=>{if(n&&!n.intersects(r.bounds))return;const i=iL(r,this);let s=sL(r,i),o=oL(r,i);if(s===0||o===0)return;let u=(r.x||0)-hb(r.align,s),a=(r.y||0)-pb(r.baseline,o),l,c,f,x;r.aspect!==!1&&(c=i.width/i.height,f=r.width/r.height,c===c&&f===f&&c!==f&&(f<c?(x=s/c,a+=(o-x)/2,o=x):(x=o*c,u+=(s-x)/2,s=x))),(i.complete||i.toDataURL)&&(o1(t,r),t.globalAlpha=(l=r.opacity)!=null?l:1,t.imageSmoothingEnabled=r.smooth!==!1,t.drawImage(i,u,a,s,o))})}var Rje={type:"image",tag:"image",nested:!1,attr:Cje,bound:bje,draw:Tje,pick:db(),isect:Zo,get:iL,xOffset:hb,yOffset:pb},Oje=rL("line",zMe,aje);function Nje(t,e){var n=e.scaleX||1,r=e.scaleY||1;(n!==1||r!==1)&&t("vector-effect","non-scaling-stroke"),t("transform",sje(e)),t("d",e.path)}function gb(t,e){var n=e.path;if(n==null)return!0;var r=e.x||0,i=e.y||0,s=e.scaleX||1,o=e.scaleY||1,u=(e.angle||0)*Oc,a=e.pathCache;(!a||a.path!==n)&&((e.pathCache=a=P9(n)).path=n),u&&t.rotate&&t.translate?(t.translate(r,i),t.rotate(u),rb(t,a,0,0,s,o),t.rotate(-u),t.translate(-r,-i)):rb(t,a,r,i,s,o)}function Dje(t,e){return gb(fb(t,e.angle),e)?t.set(0,0,0,0):Dc(t,e,!0)}var Fje={type:"path",tag:"path",nested:!1,attr:Nje,bound:Dje,draw:Z9(gb),pick:eL(gb),isect:Lte(gb)};function wje(t,e){t("d",s1(null,e))}function Lje(t,e){var n,r;return Dc(t.set(n=e.x||0,r=e.y||0,n+e.width||0,r+e.height||0),e)}function zte(t,e){t.beginPath(),s1(t,e)}var Ije={type:"rect",tag:"path",nested:!1,attr:wje,bound:Lje,draw:Z9(zte),pick:eL(zte),isect:$te};function $je(t,e){t("transform",jte(e)),t("x2",e.x2!=null?e.x2-(e.x||0):0),t("y2",e.y2!=null?e.y2-(e.y||0):0)}function Bje(t,e){var n,r;return Dc(t.set(n=e.x||0,r=e.y||0,e.x2!=null?e.x2:n,e.y2!=null?e.y2:r),e)}function Qte(t,e,n){var r,i,s,o;return e.stroke&&u1(t,e,n)?(r=e.x||0,i=e.y||0,s=e.x2!=null?e.x2:r,o=e.y2!=null?e.y2:i,t.beginPath(),t.moveTo(r,i),t.lineTo(s,o),!0):!1}function kje(t,e,n){Ca(e,r=>{if(!(n&&!n.intersects(r.bounds))){var i=r.opacity==null?1:r.opacity;i&&Qte(t,r,i)&&(o1(t,r),t.stroke())}})}function Pje(t,e,n,r){return t.isPointInStroke?Qte(t,e,1)&&t.isPointInStroke(n,r):!1}var Mje={type:"rule",tag:"line",nested:!1,attr:$je,bound:Bje,draw:kje,pick:db(Pje),isect:JMe},jje=nL("shape",QMe),Uje=nL("symbol",GMe,Ite);const Gte=jFe();var ba={height:Gl,measureWidth:aL,estimateWidth:uL,width:uL,canvas:Wte};Wte(!0);function Wte(t){ba.width=t&&wc?aL:uL}function uL(t,e){return Vte(Lc(t,e),Gl(t))}function Vte(t,e){return~~(.8*t.length*e)}function aL(t,e){return Gl(t)<=0||!(e=Lc(t,e))?0:Yte(e,lL(t))}function Yte(t,e){const n=`(${e}) ${t}`;let r=Gte.get(n);return r===void 0&&(wc.font=e,r=wc.measureText(t).width,Gte.set(n,r)),r}function Gl(t){return t.fontSize!=null?+t.fontSize||0:11}function cd(t){return t.lineHeight!=null?t.lineHeight:Gl(t)+2}function qje(t){return _e(t)?t.length>1?t:t[0]:t}function Ey(t){return qje(t.lineBreak&&t.text&&!_e(t.text)?t.text.split(t.lineBreak):t.text)}function Kte(t){const e=Ey(t);return(_e(e)?e.length-1:0)*cd(t)}function Lc(t,e){const n=e==null?"":(e+"").trim();return t.limit>0&&n.length?zje(t,n):n}function Hje(t){if(ba.width===aL){const e=lL(t);return n=>Yte(n,e)}else{const e=Gl(t);return n=>Vte(n,e)}}function zje(t,e){var n=+t.limit,r=Hje(t);if(r(e)<n)return e;var i=t.ellipsis||"…",s=t.dir==="rtl",o=0,u=e.length,a;if(n-=r(i),s){for(;o<u;)a=o+u>>>1,r(e.slice(a))>n?o=a+1:u=a;return i+e.slice(o)}else{for(;o<u;)a=1+(o+u>>>1),r(e.slice(0,a))<n?o=a:u=a-1;return e.slice(0,o)+i}}function mb(t,e){var n=t.font;return(e&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function lL(t,e){return(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+Gl(t)+"px "+mb(t,e)}function cL(t){var e=t.baseline,n=Gl(t);return Math.round(e==="top"?.79*n:e==="middle"?.3*n:e==="bottom"?-.21*n:e==="line-top"?.29*n+.5*cd(t):e==="line-bottom"?.29*n-.5*cd(t):0)}const Qje={left:"start",center:"middle",right:"end"},Ay=new nr;function yb(t){var e=t.x||0,n=t.y||0,r=t.radius||0,i;return r&&(i=(t.theta||0)-sd,e+=r*Math.cos(i),n+=r*Math.sin(i)),Ay.x1=e,Ay.y1=n,Ay}function Gje(t,e){var n=e.dx||0,r=(e.dy||0)+cL(e),i=yb(e),s=i.x1,o=i.y1,u=e.angle||0,a;t("text-anchor",Qje[e.align]||"start"),u?(a=ld(s,o)+" "+tL(u),(n||r)&&(a+=" "+ld(n,r))):a=ld(s+n,o+r),t("transform",a)}function fL(t,e,n){var r=ba.height(e),i=e.align,s=yb(e),o=s.x1,u=s.y1,a=e.dx||0,l=(e.dy||0)+cL(e)-Math.round(.8*r),c=Ey(e),f;if(_e(c)?(r+=cd(e)*(c.length-1),f=c.reduce((x,h)=>Math.max(x,ba.width(e,h)),0)):f=ba.width(e,c),i==="center"?a-=f/2:i==="right"&&(a-=f),t.set(a+=o,l+=u,a+f,l+r),e.angle&&!n)t.rotate(e.angle*Oc,o,u);else if(n===2)return t.rotatedPoints(e.angle*Oc,o,u);return t}function Wje(t,e,n){Ca(e,r=>{var i=r.opacity==null?1:r.opacity,s,o,u,a,l,c,f;if(!(n&&!n.intersects(r.bounds)||i===0||r.fontSize<=0||r.text==null||r.text.length===0)){if(t.font=lL(r),t.textAlign=r.align||"left",s=yb(r),o=s.x1,u=s.y1,r.angle&&(t.save(),t.translate(o,u),t.rotate(r.angle*Oc),o=u=0),o+=r.dx||0,u+=(r.dy||0)+cL(r),c=Ey(r),o1(t,r),_e(c))for(l=cd(r),a=0;a<c.length;++a)f=Lc(r,c[a]),r.fill&&xb(t,r,i)&&t.fillText(f,o,u),r.stroke&&u1(t,r,i)&&t.strokeText(f,o,u),u+=l;else f=Lc(r,c),r.fill&&xb(t,r,i)&&t.fillText(f,o,u),r.stroke&&u1(t,r,i)&&t.strokeText(f,o,u);r.angle&&t.restore()}})}function Vje(t,e,n,r,i,s){if(e.fontSize<=0)return!1;if(!e.angle)return!0;var o=yb(e),u=o.x1,a=o.y1,l=fL(Ay,e,1),c=-e.angle*Oc,f=Math.cos(c),x=Math.sin(c),h=f*i-x*s+(u-f*u+x*a),p=x*i+f*s+(a-x*u-f*a);return l.contains(h,p)}function Yje(t,e){const n=fL(Ay,t,2);return py(e,n[0],n[1],n[2],n[3])||py(e,n[0],n[1],n[4],n[5])||py(e,n[4],n[5],n[6],n[7])||py(e,n[2],n[3],n[6],n[7])}var Kje={type:"text",tag:"text",nested:!1,attr:Gje,bound:fL,draw:Wje,pick:db(Vje),isect:Yje},Xje=rL("trail",WMe,lje),So={arc:oje,area:cje,group:_je,image:Rje,line:Oje,path:Fje,rect:Ije,rule:Mje,shape:jje,symbol:Uje,text:Kje,trail:Xje};function Xte(t,e,n){var r=So[t.mark.marktype],i=e||r.bound;return r.nested&&(t=t.mark),i(t.bounds||(t.bounds=new nr),t,n)}var Jte={mark:null};function Jje(t,e,n){var r=So[t.marktype],i=r.bound,s=t.items,o=s&&s.length,u,a,l,c;if(r.nested)return o?l=s[0]:(Jte.mark=t,l=Jte),c=Xte(l,i,n),e=e&&e.union(c)||c,e;if(e=e||t.bounds&&t.bounds.clear()||new nr,o)for(u=0,a=s.length;u<a;++u)e.union(Xte(s[u],i,n));return t.bounds=e}const Zje=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function eUe(t,e){return JSON.stringify(t,Zje,e)}function tUe(t){const e=typeof t=="string"?JSON.parse(t):t;return Zte(e)}function Zte(t){var e=t.marktype,n=t.items,r,i,s;if(n)for(i=0,s=n.length;i<s;++i)r=e?"mark":"group",n[i][r]=t,n[i].zindex&&(n[i][r].zdirty=!0),(e||r)==="group"&&Zte(n[i]);return e&&Jje(t),t}function ene(t){arguments.length?this.root=tUe(t):(this.root=tne({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Q9(this.root)])}ene.prototype={toJSON(t){return eUe(this.root,t||0)},mark(t,e,n){e=e||this.root.items[0];const r=tne(t,e);return e.items[n]=r,r.zindex&&(r.group.zdirty=!0),r}};function tne(t,e){const n={bounds:new nr,clip:!!t.clip,group:e,interactive:t.interactive!==!1,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0};return t.aria!=null&&(n.aria=t.aria),t.description&&(n.description=t.description),n}function fd(t,e,n){return!t&&typeof document<"u"&&document.createElement&&(t=document),t?n?t.createElementNS(n,e):t.createElement(e):null}function nne(t,e){e=e.toLowerCase();for(var n=t.childNodes,r=0,i=n.length;r<i;++r)if(n[r].tagName.toLowerCase()===e)return n[r]}function Us(t,e,n,r){var i=t.childNodes[e],s;return(!i||i.tagName.toLowerCase()!==n.toLowerCase())&&(s=i||null,i=fd(t.ownerDocument,n,r),t.insertBefore(i,s)),i}function Ta(t,e){for(var n=t.childNodes,r=n.length;r>e;)t.removeChild(n[--r]);return t}function rne(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function xL(t,e){const n=e.getBoundingClientRect();return[t.clientX-n.left-(e.clientLeft||0),t.clientY-n.top-(e.clientTop||0)]}function nUe(t,e,n,r){var i=t&&t.mark,s,o;if(i&&(s=So[i.marktype]).tip){for(o=xL(e,n),o[0]-=r[0],o[1]-=r[1];t=t.mark.group;)o[0]-=t.x||0,o[1]-=t.y||0;t=s.tip(i.items,o)}return t}function xd(t,e){this._active=null,this._handlers={},this._loader=t||nw(),this._tooltip=e||rUe}function rUe(t,e,n,r){t.element().setAttribute("title",r||"")}xd.prototype={initialize(t,e,n){return this._el=t,this._obj=n||null,this.origin(e)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},origin(t){return arguments.length?(this._origin=t||[0,0],this):this._origin.slice()},scene(t){return arguments.length?(this._scene=t,this):this._scene},on(){},off(){},_handlerIndex(t,e,n){for(let r=t?t.length:0;--r>=0;)if(t[r].type===e&&(!n||t[r].handler===n))return r;return-1},handlers(t){const e=this._handlers,n=[];if(t)n.push(...e[this.eventName(t)]);else for(const r in e)n.push(...e[r]);return n},eventName(t){const e=t.indexOf(".");return e<0?t:t.slice(0,e)},handleHref(t,e,n){this._loader.sanitize(n,{context:"href"}).then(r=>{const i=new MouseEvent(t.type,t),s=fd(null,"a");for(const o in r)s.setAttribute(o,r[o]);s.dispatchEvent(i)}).catch(()=>{})},handleTooltip(t,e,n){if(e&&e.tooltip!=null){e=nUe(e,t,this.canvas(),this._origin);const r=n&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,t,e,r)}},getItemBoundingClientRect(t){const e=this.canvas();if(!e)return;const n=e.getBoundingClientRect(),r=this._origin,i=t.bounds,s=i.width(),o=i.height();let u=i.x1+r[0]+n.left,a=i.y1+r[1]+n.top;for(;t.mark&&(t=t.mark.group);)u+=t.x||0,a+=t.y||0;return{x:u,y:a,width:s,height:o,left:u,top:a,right:u+s,bottom:a+o}}};function Wl(t){this._el=null,this._bgcolor=null,this._loader=new Tte(t)}Wl.prototype={initialize(t,e,n,r,i){return this._el=t,this.resize(e,n,r,i)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},background(t){return arguments.length===0?this._bgcolor:(this._bgcolor=t,this)},resize(t,e,n,r){return this._width=t,this._height=e,this._origin=n||[0,0],this._scale=r||1,this},dirty(){},render(t){const e=this;return e._call=function(){e._render(t)},e._call(),e._call=null,e},_render(){},renderAsync(t){const e=this.render(t);return this._ready?this._ready.then(()=>e):Promise.resolve(e)},_load(t,e){var n=this,r=n._loader[t](e);if(!n._ready){const i=n._call;n._ready=n._loader.ready().then(s=>{s&&i(),n._ready=null})}return r},sanitizeURL(t){return this._load("sanitizeURL",t)},loadImage(t){return this._load("loadImage",t)}};const iUe="keydown",sUe="keypress",oUe="keyup",ine="dragenter",Eb="dragleave",sne="dragover",dL="mousedown",uUe="mouseup",Ab="mousemove",vy="mouseout",one="mouseover",vb="click",aUe="dblclick",lUe="wheel",une="mousewheel",Sb="touchstart",_b="touchmove",Cb="touchend",cUe=[iUe,sUe,oUe,ine,Eb,sne,dL,uUe,Ab,vy,one,vb,aUe,lUe,une,Sb,_b,Cb],hL=Ab,Sy=vy,pL=vb;function bb(t,e){xd.call(this,t,e),this._down=null,this._touch=null,this._first=!0,this._events={}}const fUe=t=>t===Sb||t===_b||t===Cb?[Sb,_b,Cb]:[t];function ane(t,e){fUe(e).forEach(n=>xUe(t,n))}function xUe(t,e){const n=t.canvas();n&&!t._events[e]&&(t._events[e]=1,n.addEventListener(e,t[e]?r=>t[e](r):r=>t.fire(e,r)))}function lne(t,e,n){return function(r){const i=this._active,s=this.pickEvent(r);s===i?this.fire(t,r):((!i||!i.exit)&&this.fire(n,r),this._active=s,this.fire(e,r),this.fire(t,r))}}function cne(t){return function(e){this.fire(t,e),this._active=null}}Fe(bb,xd,{initialize(t,e,n){return this._canvas=t&&nne(t,"canvas"),[vb,dL,Ab,vy,Eb].forEach(r=>ane(this,r)),xd.prototype.initialize.call(this,t,e,n)},canvas(){return this._canvas},context(){return this._canvas.getContext("2d")},events:cUe,DOMMouseScroll(t){this.fire(une,t)},mousemove:lne(Ab,one,vy),dragover:lne(sne,ine,Eb),mouseout:cne(vy),dragleave:cne(Eb),mousedown(t){this._down=this._active,this.fire(dL,t)},click(t){this._down===this._active&&(this.fire(vb,t),this._down=null)},touchstart(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Sb,t,!0)},touchmove(t){this.fire(_b,t,!0)},touchend(t){this.fire(Cb,t,!0),this._touch=null},fire(t,e,n){const r=n?this._touch:this._active,i=this._handlers[t];if(e.vegaType=t,t===pL&&r&&r.href?this.handleHref(e,r,r.href):(t===hL||t===Sy)&&this.handleTooltip(e,r,t!==Sy),i)for(let s=0,o=i.length;s<o;++s)i[s].handler.call(this._obj,e,r)},on(t,e){const n=this.eventName(t),r=this._handlers;return this._handlerIndex(r[n],t,e)<0&&(ane(this,t),(r[n]||(r[n]=[])).push({type:t,handler:e})),this},off(t,e){const n=this.eventName(t),r=this._handlers[n],i=this._handlerIndex(r,t,e);return i>=0&&r.splice(i,1),this},pickEvent(t){const e=xL(t,this._canvas),n=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-n[0],e[1]-n[1])},pick(t,e,n,r,i){const s=this.context();return So[t.marktype].pick.call(this,s,t,e,n,r,i)}});function dUe(){return typeof window<"u"&&window.devicePixelRatio||1}var hUe=dUe();function pUe(t,e,n,r,i,s){const o=typeof HTMLElement<"u"&&t instanceof HTMLElement&&t.parentNode!=null,u=t.getContext("2d"),a=o?hUe:i;t.width=e*a,t.height=n*a;for(const l in s)u[l]=s[l];return o&&a!==1&&(t.style.width=e+"px",t.style.height=n+"px"),u.pixelRatio=a,u.setTransform(a,0,0,a,a*r[0],a*r[1]),t}function gL(t){Wl.call(this,t),this._options={},this._redraw=!1,this._dirty=new nr,this._tempb=new nr}const fne=Wl.prototype,gUe=(t,e,n)=>new nr().set(0,0,e,n).translate(-t[0],-t[1]);function mUe(t,e,n){return e.expand(1).round(),t.pixelRatio%1&&e.scale(t.pixelRatio).round().scale(1/t.pixelRatio),e.translate(-(n[0]%1),-(n[1]%1)),t.beginPath(),t.rect(e.x1,e.y1,e.width(),e.height()),t.clip(),e}Fe(gL,Wl,{initialize(t,e,n,r,i,s){return this._options=s||{},this._canvas=this._options.externalContext?null:Sc(1,1,this._options.type),t&&this._canvas&&(Ta(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),fne.initialize.call(this,t,e,n,r,i)},resize(t,e,n,r){if(fne.resize.call(this,t,e,n,r),this._canvas)pUe(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const i=this._options.externalContext;i||Se("CanvasRenderer is missing a valid canvas or context"),i.scale(this._scale,this._scale),i.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this},canvas(){return this._canvas},context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)},dirty(t){const e=this._tempb.clear().union(t.bounds);let n=t.mark.group;for(;n;)e.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(e)},_render(t){const e=this.context(),n=this._origin,r=this._width,i=this._height,s=this._dirty,o=gUe(n,r,i);e.save();const u=this._redraw||s.empty()?(this._redraw=!1,o.expand(1)):mUe(e,o.intersect(s),n);return this.clear(-n[0],-n[1],r,i),this.draw(e,t,u),e.restore(),s.clear(),this},draw(t,e,n){const r=So[e.marktype];e.clip&&fje(t,e),r.draw.call(this,t,e,n),e.clip&&t.restore()},clear(t,e,n,r){const i=this._options,s=this.context();i.type!=="pdf"&&!i.externalContext&&s.clearRect(t,e,n,r),this._bgcolor!=null&&(s.fillStyle=this._bgcolor,s.fillRect(t,e,n,r))}});function xne(t,e){xd.call(this,t,e);const n=this;n._hrefHandler=mL(n,(r,i)=>{i&&i.href&&n.handleHref(r,i,i.href)}),n._tooltipHandler=mL(n,(r,i)=>{n.handleTooltip(r,i,r.type!==Sy)})}const mL=(t,e)=>n=>{let r=n.target.__data__;r=Array.isArray(r)?r[0]:r,n.vegaType=n.type,e.call(t._obj,n,r)};Fe(xne,xd,{initialize(t,e,n){let r=this._svg;return r&&(r.removeEventListener(pL,this._hrefHandler),r.removeEventListener(hL,this._tooltipHandler),r.removeEventListener(Sy,this._tooltipHandler)),this._svg=r=t&&nne(t,"svg"),r&&(r.addEventListener(pL,this._hrefHandler),r.addEventListener(hL,this._tooltipHandler),r.addEventListener(Sy,this._tooltipHandler)),xd.prototype.initialize.call(this,t,e,n)},canvas(){return this._svg},on(t,e){const n=this.eventName(t),r=this._handlers;if(this._handlerIndex(r[n],t,e)<0){const s={type:t,handler:e,listener:mL(this,e)};(r[n]||(r[n]=[])).push(s),this._svg&&this._svg.addEventListener(n,s.listener)}return this},off(t,e){const n=this.eventName(t),r=this._handlers[n],i=this._handlerIndex(r,t,e);return i>=0&&(this._svg&&this._svg.removeEventListener(n,r[i].listener),r.splice(i,1)),this}});const dne="aria-hidden",yL="aria-label",EL="role",AL="aria-roledescription",hne="graphics-object",vL="graphics-symbol",pne=(t,e,n)=>({[EL]:t,[AL]:e,[yL]:n||void 0}),yUe=ia(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),gne={axis:{desc:"axis",caption:vUe},legend:{desc:"legend",caption:SUe},"title-text":{desc:"title",caption:t=>`Title text '${Ane(t)}'`},"title-subtitle":{desc:"subtitle",caption:t=>`Subtitle text '${Ane(t)}'`}},mne={ariaRole:EL,ariaRoleDescription:AL,description:yL};function yne(t,e){const n=e.aria===!1;if(t(dne,n||void 0),n||e.description==null)for(const r in mne)t(mne[r],void 0);else{const r=e.mark.marktype;t(yL,e.description),t(EL,e.ariaRole||(r==="group"?hne:vL)),t(AL,e.ariaRoleDescription||`${r} mark`)}}function Ene(t){return t.aria===!1?{[dne]:!0}:yUe[t.role]?null:gne[t.role]?AUe(t,gne[t.role]):EUe(t)}function EUe(t){const e=t.marktype,n=e==="group"||e==="text"||t.items.some(r=>r.description!=null&&r.aria!==!1);return pne(n?hne:vL,`${e} mark container`,t.description)}function AUe(t,e){try{const n=t.items[0],r=e.caption||(()=>"");return pne(e.role||vL,e.desc,n.description||r(n))}catch{return null}}function Ane(t){return Pe(t.text).join(" ")}function vUe(t){const e=t.datum,n=t.orient,r=e.title?vne(t):null,i=t.context,s=i.scales[e.scale].value,o=i.dataflow.locale(),u=s.type;return`${n==="left"||n==="right"?"Y":"X"}-axis`+(r?` titled '${r}'`:"")+` for a ${r1(u)?"discrete":u} scale with ${yte(o,s,t)}`}function SUe(t){const e=t.datum,n=e.title?vne(t):null,r=`${e.type||""} legend`.trim(),i=e.scales,s=Object.keys(i),o=t.context,u=o.scales[i[s[0]]].value,a=o.dataflow.locale();return CUe(r)+(n?` titled '${n}'`:"")+` for ${_Ue(s)} with ${yte(a,u,t)}`}function vne(t){try{return Pe(St(t.items).items[0].text).join(" ")}catch{return null}}function _Ue(t){return t=t.map(e=>e+(e==="fill"||e==="stroke"?" color":"")),t.length<2?t[0]:t.slice(0,-1).join(", ")+" and "+St(t)}function CUe(t){return t.length?t[0].toUpperCase()+t.slice(1):t}const Sne=t=>(t+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),bUe=t=>Sne(t).replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
");function _ne(){let t="",e="",n="";const r=[],i=()=>e=n="",s=a=>{e&&(t+=`${e}>${n}`,i()),r.push(a)},o=(a,l)=>(l!=null&&(e+=` ${a}="${bUe(l)}"`),u),u={open(a){s(a),e="<"+a;for(var l=arguments.length,c=new Array(l>1?l-1:0),f=1;f<l;f++)c[f-1]=arguments[f];for(const x of c)for(const h in x)o(h,x[h]);return u},close(){const a=r.pop();return e?t+=e+(n?`>${n}</${a}>`:"/>"):t+=`</${a}>`,i(),u},attr:o,text:a=>(n+=Sne(a),u),toString:()=>t};return u}const TUe=t=>Cne(_ne(),t)+"";function Cne(t,e){if(t.open(e.tagName),e.hasAttributes()){const n=e.attributes,r=n.length;for(let i=0;i<r;++i)t.attr(n[i].name,n[i].value)}if(e.hasChildNodes()){const n=e.childNodes;for(const r of n)r.nodeType===3?t.text(r.nodeValue):Cne(t,r)}return t.close()}const Tb={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},Rb={blend:"mix-blend-mode"},bne={fill:"none","stroke-miterlimit":10},_y=0,Tne="http://www.w3.org/2000/xmlns/",rr=yy.xmlns;function Rne(t){Wl.call(this,t),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}const SL=Wl.prototype;Fe(Rne,Wl,{initialize(t,e,n,r,i){return this._defs={},this._clearDefs(),t&&(this._svg=Us(t,0,"svg",rr),this._svg.setAttributeNS(Tne,"xmlns",rr),this._svg.setAttributeNS(Tne,"xmlns:xlink",yy["xmlns:xlink"]),this._svg.setAttribute("version",yy.version),this._svg.setAttribute("class","marks"),Ta(t,1),this._root=Us(this._svg,_y,"g",rr),Ic(this._root,bne),Ta(this._svg,_y+1)),this.background(this._bgcolor),SL.initialize.call(this,t,e,n,r,i)},background(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),SL.background.apply(this,arguments)},resize(t,e,n,r){return SL.resize.call(this,t,e,n,r),this._svg&&(Ic(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this},canvas(){return this._svg},svg(){const t=this._svg,e=this._bgcolor;if(!t)return null;let n;e&&(t.removeAttribute("style"),n=Us(t,_y,"rect",rr),Ic(n,{width:this._width,height:this._height,fill:e}));const r=TUe(t);return e&&(t.removeChild(n),this._svg.style.setProperty("background-color",e)),r},_render(t){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,t),Ta(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this},dirty(t){t.dirty!==this._dirtyID&&(t.dirty=this._dirtyID,this._dirty.push(t))},isDirty(t){return this._dirtyAll||!t._svg||!t._svg.ownerSVGElement||t.dirty===this._dirtyID},_dirtyCheck(){this._dirtyAll=!0;const t=this._dirty;if(!t.length||!this._dirtyID)return!0;const e=++this._dirtyID;let n,r,i,s,o,u,a;for(o=0,u=t.length;o<u;++o)if(n=t[o],r=n.mark,r.marktype!==i&&(i=r.marktype,s=So[i]),r.zdirty&&r.dirty!==e&&(this._dirtyAll=!1,One(n,e),r.items.forEach(l=>{l.dirty=e})),!r.zdirty){if(n.exit){s.nested&&r.items.length?(a=r.items[0],a._svg&&this._update(s,a._svg,a)):n._svg&&(a=n._svg.parentNode,a&&a.removeChild(n._svg)),n._svg=null;continue}n=s.nested?r.items[0]:n,n._update!==e&&(!n._svg||!n._svg.ownerSVGElement?(this._dirtyAll=!1,One(n,e)):this._update(s,n._svg,n),n._update=e)}return!this._dirtyAll},mark(t,e,n){if(!this.isDirty(e))return e._svg;const r=this._svg,i=So[e.marktype],s=e.interactive===!1?"none":null,o=i.tag==="g",u=Nne(e,t,n,"g",r);u.setAttribute("class",rne(e));const a=Ene(e);for(const x in a)Fi(u,x,a[x]);o||Fi(u,"pointer-events",s),Fi(u,"clip-path",e.clip?H9(this,e,e.group):null);let l=null,c=0;const f=x=>{const h=this.isDirty(x),p=Nne(x,u,l,i.tag,r);h&&(this._update(i,p,x),o&&NUe(this,p,x)),l=p,++c};return i.nested?e.items.length&&f(e.items[0]):Ca(e,f),Ta(u,c),u},_update(t,e,n){Vl=e,ni=e.__values__,yne(Cy,n),t.attr(Cy,n,this);const r=FUe[t.type];r&&r.call(this,t,e,n),Vl&&this.style(Vl,n)},style(t,e){if(e!=null){for(const n in Tb){let r=n==="font"?mb(e):e[n];if(r===ni[n])continue;const i=Tb[n];r==null?t.removeAttribute(i):(k9(r)&&(r=Ete(r,this._defs.gradient,Dne())),t.setAttribute(i,r+"")),ni[n]=r}for(const n in Rb)Ob(t,Rb[n],e[n])}},defs(){const t=this._svg,e=this._defs;let n=e.el,r=0;for(const i in e.gradient)n||(e.el=n=Us(t,_y+1,"defs",rr)),r=RUe(n,e.gradient[i],r);for(const i in e.clipping)n||(e.el=n=Us(t,_y+1,"defs",rr)),r=OUe(n,e.clipping[i],r);n&&(r===0?(t.removeChild(n),e.el=null):Ta(n,r))},_clearDefs(){const t=this._defs;t.gradient={},t.clipping={}}});function One(t,e){for(;t&&t.dirty!==e;t=t.mark.group)if(t.dirty=e,t.mark&&t.mark.dirty!==e)t.mark.dirty=e;else return}function RUe(t,e,n){let r,i,s;if(e.gradient==="radial"){let o=Us(t,n++,"pattern",rr);Ic(o,{id:nb+e.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),o=Us(o,0,"rect",rr),Ic(o,{width:1,height:1,fill:`url(${Dne()}#${e.id})`}),t=Us(t,n++,"radialGradient",rr),Ic(t,{id:e.id,fx:e.x1,fy:e.y1,fr:e.r1,cx:e.x2,cy:e.y2,r:e.r2})}else t=Us(t,n++,"linearGradient",rr),Ic(t,{id:e.id,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2});for(r=0,i=e.stops.length;r<i;++r)s=Us(t,r,"stop",rr),s.setAttribute("offset",e.stops[r].offset),s.setAttribute("stop-color",e.stops[r].color);return Ta(t,r),n}function OUe(t,e,n){let r;return t=Us(t,n,"clipPath",rr),t.setAttribute("id",e.id),e.path?(r=Us(t,0,"path",rr),r.setAttribute("d",e.path)):(r=Us(t,0,"rect",rr),Ic(r,{x:0,y:0,width:e.width,height:e.height})),Ta(t,1),n+1}function NUe(t,e,n){e=e.lastChild.previousSibling;let r,i=0;Ca(n,s=>{r=t.mark(e,s,r),++i}),Ta(e,1+i)}function Nne(t,e,n,r,i){let s=t._svg,o;if(!s&&(o=e.ownerDocument,s=fd(o,r,rr),t._svg=s,t.mark&&(s.__data__=t,s.__values__={fill:"default"},r==="g"))){const u=fd(o,"path",rr);s.appendChild(u),u.__data__=t;const a=fd(o,"g",rr);s.appendChild(a),a.__data__=t;const l=fd(o,"path",rr);s.appendChild(l),l.__data__=t,l.__values__={fill:"default"}}return(s.ownerSVGElement!==i||DUe(s,n))&&e.insertBefore(s,n?n.nextSibling:e.firstChild),s}function DUe(t,e){return t.parentNode&&t.parentNode.childNodes.length>1&&t.previousSibling!=e}let Vl=null,ni=null;const FUe={group(t,e,n){const r=Vl=e.childNodes[2];ni=r.__values__,t.foreground(Cy,n,this),ni=e.__values__,Vl=e.childNodes[1],t.content(Cy,n,this);const i=Vl=e.childNodes[0];t.background(Cy,n,this);const s=n.mark.interactive===!1?"none":null;if(s!==ni.events&&(Fi(r,"pointer-events",s),Fi(i,"pointer-events",s),ni.events=s),n.strokeForeground&&n.stroke){const o=n.fill;Fi(r,"display",null),this.style(i,n),Fi(i,"stroke",null),o&&(n.fill=null),ni=r.__values__,this.style(r,n),o&&(n.fill=o),Vl=null}else Fi(r,"display","none")},image(t,e,n){n.smooth===!1?(Ob(e,"image-rendering","optimizeSpeed"),Ob(e,"image-rendering","pixelated")):Ob(e,"image-rendering",null)},text(t,e,n){const r=Ey(n);let i,s,o,u;_e(r)?(s=r.map(a=>Lc(n,a)),i=s.join(`
|
|
1465
|
-
`),i!==ni.text&&(Ta(e,0),o=e.ownerDocument,u=cd(n),s.forEach((a,l)=>{const c=fd(o,"tspan",rr);c.__data__=n,c.textContent=a,l&&(c.setAttribute("x",0),c.setAttribute("dy",u)),e.appendChild(c)}),ni.text=i)):(s=Lc(n,r),s!==ni.text&&(e.textContent=s,ni.text=s)),Fi(e,"font-family",mb(n)),Fi(e,"font-size",Gl(n)+"px"),Fi(e,"font-style",n.fontStyle),Fi(e,"font-variant",n.fontVariant),Fi(e,"font-weight",n.fontWeight)}};function Cy(t,e,n){e!==ni[t]&&(n?wUe(Vl,t,e,n):Fi(Vl,t,e),ni[t]=e)}function Ob(t,e,n){n!==ni[e]&&(n==null?t.style.removeProperty(e):t.style.setProperty(e,n+""),ni[e]=n)}function Ic(t,e){for(const n in e)Fi(t,n,e[n])}function Fi(t,e,n){n!=null?t.setAttribute(e,n):t.removeAttribute(e)}function wUe(t,e,n,r){n!=null?t.setAttributeNS(r,e,n):t.removeAttributeNS(r,e)}function Dne(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function Fne(t){Wl.call(this,t),this._text=null,this._defs={gradient:{},clipping:{}}}Fe(Fne,Wl,{svg(){return this._text},_render(t){const e=_ne();e.open("svg",ft({},yy,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&n!=="transparent"&&n!=="none"&&e.open("rect",{width:this._width,height:this._height,fill:n}).close(),e.open("g",bne,{transform:"translate("+this._origin+")"}),this.mark(e,t),e.close(),this.defs(e),this._text=e.close()+"",this},mark(t,e){const n=So[e.marktype],r=n.tag,i=[yne,n.attr];t.open("g",{class:rne(e),"clip-path":e.clip?H9(this,e,e.group):null},Ene(e),{"pointer-events":r!=="g"&&e.interactive===!1?"none":null});const s=o=>{const u=this.href(o);if(u&&t.open("a",u),t.open(r,this.attr(e,o,i,r!=="g"?r:null)),r==="text"){const a=Ey(o);if(_e(a)){const l={x:0,dy:cd(o)};for(let c=0;c<a.length;++c)t.open("tspan",c?l:null).text(Lc(o,a[c])).close()}else t.text(Lc(o,a))}else if(r==="g"){const a=o.strokeForeground,l=o.fill,c=o.stroke;a&&c&&(o.stroke=null),t.open("path",this.attr(e,o,n.background,"bgrect")).close(),t.open("g",this.attr(e,o,n.content)),Ca(o,f=>this.mark(t,f)),t.close(),a&&c?(l&&(o.fill=null),o.stroke=c,t.open("path",this.attr(e,o,n.foreground,"bgrect")).close(),l&&(o.fill=l)):t.open("path",this.attr(e,o,n.foreground,"bgfore")).close()}t.close(),u&&t.close()};return n.nested?e.items&&e.items.length&&s(e.items[0]):Ca(e,s),t.close()},href(t){const e=t.href;let n;if(e){if(n=this._hrefs&&this._hrefs[e])return n;this.sanitizeURL(e).then(r=>{r["xlink:href"]=r.href,r.href=null,(this._hrefs||(this._hrefs={}))[e]=r})}return null},attr(t,e,n,r){const i={},s=(o,u,a,l)=>{i[l||o]=u};return Array.isArray(n)?n.forEach(o=>o(s,e,this)):n(s,e,this),r&&LUe(i,e,t,r,this._defs),i},defs(t){const e=this._defs.gradient,n=this._defs.clipping;if(Object.keys(e).length+Object.keys(n).length!==0){t.open("defs");for(const i in e){const s=e[i],o=s.stops;s.gradient==="radial"?(t.open("pattern",{id:nb+i,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+i+")"}).close(),t.close(),t.open("radialGradient",{id:i,fx:s.x1,fy:s.y1,fr:s.r1,cx:s.x2,cy:s.y2,r:s.r2})):t.open("linearGradient",{id:i,x1:s.x1,x2:s.x2,y1:s.y1,y2:s.y2});for(let u=0;u<o.length;++u)t.open("stop",{offset:o[u].offset,"stop-color":o[u].color}).close();t.close()}for(const i in n){const s=n[i];t.open("clipPath",{id:i}),s.path?t.open("path",{d:s.path}).close():t.open("rect",{x:0,y:0,width:s.width,height:s.height}).close(),t.close()}t.close()}}});function LUe(t,e,n,r,i){let s;if(e==null||(r==="bgrect"&&n.interactive===!1&&(t["pointer-events"]="none"),r==="bgfore"&&(n.interactive===!1&&(t["pointer-events"]="none"),t.display="none",e.fill!==null)))return t;r==="image"&&e.smooth===!1&&(s=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),r==="text"&&(t["font-family"]=mb(e),t["font-size"]=Gl(e)+"px",t["font-style"]=e.fontStyle,t["font-variant"]=e.fontVariant,t["font-weight"]=e.fontWeight);for(const o in Tb){let u=e[o];const a=Tb[o];u==="transparent"&&(a==="fill"||a==="stroke")||u!=null&&(k9(u)&&(u=Ete(u,i.gradient,"")),t[a]=u)}for(const o in Rb){const u=e[o];u!=null&&(s=s||[],s.push(`${Rb[o]}: ${u};`))}return s&&(t.style=s.join(" ")),t}const wne="canvas",Lne="png",Ine="svg",$ne="none",dd={Canvas:wne,PNG:Lne,SVG:Ine,None:$ne},a1={};a1[wne]=a1[Lne]={renderer:gL,headless:gL,handler:bb},a1[Ine]={renderer:Rne,headless:Fne,handler:xne},a1[$ne]={};function _L(t,e){return t=String(t||"").toLowerCase(),arguments.length>1?(a1[t]=e,this):a1[t]}function IUe(t,e,n){const r=[],i=new nr().union(e),s=t.marktype;return s?Bne(t,i,n,r):s==="group"?kne(t,i,n,r):Se("Intersect scene must be mark node or group item.")}function Bne(t,e,n,r){if($Ue(t,e,n)){const i=t.items,s=t.marktype,o=i.length;let u=0;if(s==="group")for(;u<o;++u)kne(i[u],e,n,r);else for(const a=So[s].isect;u<o;++u){const l=i[u];Pne(l,e,a)&&r.push(l)}}return r}function $Ue(t,e,n){return t.bounds&&e.intersects(t.bounds)&&(t.marktype==="group"||t.interactive!==!1&&(!n||n(t)))}function kne(t,e,n,r){n&&n(t.mark)&&Pne(t,e,So.group.isect)&&r.push(t);const i=t.items,s=i&&i.length;if(s){const o=t.x||0,u=t.y||0;e.translate(-o,-u);for(let a=0;a<s;++a)Bne(i[a],e,n,r);e.translate(o,u)}return r}function Pne(t,e,n){const r=t.bounds;return e.encloses(r)||e.intersects(r)&&n(t,e)}const CL=new nr;function BUe(t){const e=t.clip;if(ct(e))e(fb(CL.clear()));else if(e)CL.set(0,0,t.group.width,t.group.height);else return;t.bounds.intersect(CL)}const l1="top",au="left",lu="right",$c="bottom",kUe="top-left",PUe="top-right",MUe="bottom-left",jUe="bottom-right",bL="start",TL="middle",wi="end",UUe="x",qUe="y",Nb="group",RL="axis",OL="title",HUe="frame",zUe="scope",NL="legend",Mne="row-header",jne="row-footer",Une="row-title",qne="column-header",Hne="column-footer",zne="column-title",QUe="padding",GUe="symbol",Qne="fit",Gne="fit-x",Wne="fit-y",WUe="pad",DL="none",Db="all",FL="each",wL="flush",Bc="column",kc="row";function Vne(t){pe.call(this,null,t)}Fe(Vne,pe,{transform(t,e){const n=e.dataflow,r=t.mark,i=r.marktype,s=So[i],o=s.bound;let u=r.bounds,a;if(s.nested)r.items.length&&n.dirty(r.items[0]),u=Fb(r,o),r.items.forEach(l=>{l.bounds.clear().union(u)});else if(i===Nb||t.modified())switch(e.visit(e.MOD,l=>n.dirty(l)),u.clear(),r.items.forEach(l=>u.union(Fb(l,o))),r.role){case RL:case NL:case OL:e.reflow()}else a=e.changed(e.REM),e.visit(e.ADD,l=>{u.union(Fb(l,o))}),e.visit(e.MOD,l=>{a=a||u.alignsWith(l.bounds),n.dirty(l),u.union(Fb(l,o))}),a&&(u.clear(),r.items.forEach(l=>u.union(l.bounds)));return BUe(r),e.modifies("bounds")}});function Fb(t,e,n){return e(t.bounds.clear(),t,n)}const Yne=":vega_identifier:";function LL(t){pe.call(this,0,t)}LL.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},Fe(LL,pe,{transform(t,e){const n=VUe(e.dataflow),r=t.as;let i=n.value;return e.visit(e.ADD,s=>s[r]=s[r]||++i),n.set(this.value=i),e}});function VUe(t){return t._signals[Yne]||(t._signals[Yne]=t.add(0))}function Kne(t){pe.call(this,null,t)}Fe(Kne,pe,{transform(t,e){let n=this.value;n||(n=e.dataflow.scenegraph().mark(t.markdef,YUe(t),t.index),n.group.context=t.context,t.context.group||(t.context.group=n.group),n.source=this.source,n.clip=t.clip,n.interactive=t.interactive,this.value=n);const r=n.marktype===Nb?Q9:z9;return e.visit(e.ADD,i=>r.call(i,n)),(t.modified("clip")||t.modified("interactive"))&&(n.clip=t.clip,n.interactive=!!t.interactive,n.zdirty=!0,e.reflow()),n.items=e.source,e}});function YUe(t){const e=t.groups,n=t.parent;return e&&e.size===1?e.get(Object.keys(e.object)[0]):e&&n?e.lookup(n):null}function Xne(t){pe.call(this,null,t)}const Jne={parity:t=>t.filter((e,n)=>n%2?e.opacity=0:1),greedy:(t,e)=>{let n;return t.filter((r,i)=>!i||!Zne(n.bounds,r.bounds,e)?(n=r,1):r.opacity=0)}},Zne=(t,e,n)=>n>Math.max(e.x1-t.x2,t.x1-e.x2,e.y1-t.y2,t.y1-e.y2),ere=(t,e)=>{for(var n=1,r=t.length,i=t[0].bounds,s;n<r;i=s,++n)if(Zne(i,s=t[n].bounds,e))return!0},KUe=t=>{const e=t.bounds;return e.width()>1&&e.height()>1},XUe=(t,e,n)=>{var r=t.range(),i=new nr;return e===l1||e===$c?i.set(r[0],-1/0,r[1],1/0):i.set(-1/0,r[0],1/0,r[1]),i.expand(n||1),s=>i.encloses(s.bounds)},tre=t=>(t.forEach(e=>e.opacity=1),t),nre=(t,e)=>t.reflow(e.modified()).modifies("opacity");Fe(Xne,pe,{transform(t,e){const n=Jne[t.method]||Jne.parity,r=t.separation||0;let i=e.materialize(e.SOURCE).source,s,o;if(!i||!i.length)return;if(!t.method)return t.modified("method")&&(tre(i),e=nre(e,t)),e;if(i=i.filter(KUe),!i.length)return;if(t.sort&&(i=i.slice().sort(t.sort)),s=tre(i),e=nre(e,t),s.length>=3&&ere(s,r)){do s=n(s,r);while(s.length>=3&&ere(s,r));s.length<3&&!St(i).opacity&&(s.length>1&&(St(s).opacity=0),St(i).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(o=XUe(t.boundScale,t.boundOrient,+t.boundTolerance),i.forEach(a=>{o(a)||(a.opacity=0)}));const u=s[0].mark.bounds.clear();return i.forEach(a=>{a.opacity&&u.union(a.bounds)}),e}});function rre(t){pe.call(this,null,t)}Fe(rre,pe,{transform(t,e){const n=e.dataflow;if(e.visit(e.ALL,r=>n.dirty(r)),e.fields&&e.fields.zindex){const r=e.source&&e.source[0];r&&(r.mark.zdirty=!0)}}});const ri=new nr;function c1(t,e,n){return t[e]===n?0:(t[e]=n,1)}function JUe(t){var e=t.items[0].orient;return e===au||e===lu}function ZUe(t){let e=+t.grid;return[t.ticks?e++:-1,t.labels?e++:-1,e+ +t.domain]}function eqe(t,e,n,r){var i=e.items[0],s=i.datum,o=i.translate!=null?i.translate:.5,u=i.orient,a=ZUe(s),l=i.range,c=i.offset,f=i.position,x=i.minExtent,h=i.maxExtent,p=s.title&&i.items[a[2]].items[0],m=i.titlePadding,g=i.bounds,y=p&&Kte(p),E=0,A=0,v,S;switch(ri.clear().union(g),g.clear(),(v=a[0])>-1&&g.union(i.items[v].bounds),(v=a[1])>-1&&g.union(i.items[v].bounds),u){case l1:E=f||0,A=-c,S=Math.max(x,Math.min(h,-g.y1)),g.add(0,-S).add(l,0),p&&wb(t,p,S,m,y,0,-1,g);break;case au:E=-c,A=f||0,S=Math.max(x,Math.min(h,-g.x1)),g.add(-S,0).add(0,l),p&&wb(t,p,S,m,y,1,-1,g);break;case lu:E=n+c,A=f||0,S=Math.max(x,Math.min(h,g.x2)),g.add(0,0).add(S,l),p&&wb(t,p,S,m,y,1,1,g);break;case $c:E=f||0,A=r+c,S=Math.max(x,Math.min(h,g.y2)),g.add(0,0).add(l,S),p&&wb(t,p,S,m,0,0,1,g);break;default:E=i.x,A=i.y}return Dc(g.translate(E,A),i),c1(i,"x",E+o)|c1(i,"y",A+o)&&(i.bounds=ri,t.dirty(i),i.bounds=g,t.dirty(i)),i.mark.bounds.clear().union(g)}function wb(t,e,n,r,i,s,o,u){const a=e.bounds;if(e.auto){const l=o*(n+i+r);let c=0,f=0;t.dirty(e),s?c=(e.x||0)-(e.x=l):f=(e.y||0)-(e.y=l),e.mark.bounds.clear().union(a.translate(-c,-f)),t.dirty(e)}u.union(a)}const ire=(t,e)=>Math.floor(Math.min(t,e)),sre=(t,e)=>Math.ceil(Math.max(t,e));function tqe(t){var e=t.items,n=e.length,r=0,i,s;const o={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;r<n;++r)if(i=e[r],s=i.items,i.marktype===Nb)switch(i.role){case RL:case NL:case OL:break;case Mne:o.rowheaders.push(...s);break;case jne:o.rowfooters.push(...s);break;case qne:o.colheaders.push(...s);break;case Hne:o.colfooters.push(...s);break;case Une:o.rowtitle=s[0];break;case zne:o.coltitle=s[0];break;default:o.marks.push(...s)}return o}function nqe(t){return new nr().set(0,0,t.width||0,t.height||0)}function rqe(t){const e=t.bounds.clone();return e.empty()?e.set(0,0,0,0):e.translate(-(t.x||0),-(t.y||0))}function xn(t,e,n){const r=He(t)?t[e]:t;return r??(n!==void 0?n:0)}function ore(t){return t<0?Math.ceil(-t):0}function ure(t,e,n){var r=!n.nodirty,i=n.bounds===wL?nqe:rqe,s=ri.set(0,0,0,0),o=xn(n.align,Bc),u=xn(n.align,kc),a=xn(n.padding,Bc),l=xn(n.padding,kc),c=n.columns||e.length,f=c<=0?1:Math.ceil(e.length/c),x=e.length,h=Array(x),p=Array(c),m=0,g=Array(x),y=Array(f),E=0,A=Array(x),v=Array(x),S=Array(x),C,_,b,R,O,L,M,q,W,B,G;for(_=0;_<c;++_)p[_]=0;for(_=0;_<f;++_)y[_]=0;for(_=0;_<x;++_)L=e[_],O=S[_]=i(L),L.x=L.x||0,A[_]=0,L.y=L.y||0,v[_]=0,b=_%c,R=~~(_/c),m=Math.max(m,M=Math.ceil(O.x2)),E=Math.max(E,q=Math.ceil(O.y2)),p[b]=Math.max(p[b],M),y[R]=Math.max(y[R],q),h[_]=a+ore(O.x1),g[_]=l+ore(O.y1),r&&t.dirty(e[_]);for(_=0;_<x;++_)_%c===0&&(h[_]=0),_<c&&(g[_]=0);if(o===FL)for(b=1;b<c;++b){for(G=0,_=b;_<x;_+=c)G<h[_]&&(G=h[_]);for(_=b;_<x;_+=c)h[_]=G+p[b-1]}else if(o===Db){for(G=0,_=0;_<x;++_)_%c&&G<h[_]&&(G=h[_]);for(_=0;_<x;++_)_%c&&(h[_]=G+m)}else for(o=!1,b=1;b<c;++b)for(_=b;_<x;_+=c)h[_]+=p[b-1];if(u===FL)for(R=1;R<f;++R){for(G=0,_=R*c,C=_+c;_<C;++_)G<g[_]&&(G=g[_]);for(_=R*c;_<C;++_)g[_]=G+y[R-1]}else if(u===Db){for(G=0,_=c;_<x;++_)G<g[_]&&(G=g[_]);for(_=c;_<x;++_)g[_]=G+E}else for(u=!1,R=1;R<f;++R)for(_=R*c,C=_+c;_<C;++_)g[_]+=y[R-1];for(W=0,_=0;_<x;++_)W=h[_]+(_%c?W:0),A[_]+=W-e[_].x;for(b=0;b<c;++b)for(B=0,_=b;_<x;_+=c)B+=g[_],v[_]+=B-e[_].y;if(o&&xn(n.center,Bc)&&f>1)for(_=0;_<x;++_)O=o===Db?m:p[_%c],W=O-S[_].x2-e[_].x-A[_],W>0&&(A[_]+=W/2);if(u&&xn(n.center,kc)&&c!==1)for(_=0;_<x;++_)O=u===Db?E:y[~~(_/c)],B=O-S[_].y2-e[_].y-v[_],B>0&&(v[_]+=B/2);for(_=0;_<x;++_)s.union(S[_].translate(A[_],v[_]));switch(W=xn(n.anchor,UUe),B=xn(n.anchor,qUe),xn(n.anchor,Bc)){case wi:W-=s.width();break;case TL:W-=s.width()/2}switch(xn(n.anchor,kc)){case wi:B-=s.height();break;case TL:B-=s.height()/2}for(W=Math.round(W),B=Math.round(B),s.clear(),_=0;_<x;++_)e[_].mark.bounds.clear();for(_=0;_<x;++_)L=e[_],L.x+=A[_]+=W,L.y+=v[_]+=B,s.union(L.mark.bounds.union(L.bounds.translate(A[_],v[_]))),r&&t.dirty(L);return s}function iqe(t,e,n){var r=tqe(e),i=r.marks,s=n.bounds===wL?sqe:oqe,o=n.offset,u=n.columns||i.length,a=u<=0?1:Math.ceil(i.length/u),l=a*u,c,f,x,h,p,m,g;const y=ure(t,i,n);y.empty()&&y.set(0,0,0,0),r.rowheaders&&(m=xn(n.headerBand,kc,null),c=Lb(t,r.rowheaders,i,u,a,-xn(o,"rowHeader"),ire,0,s,"x1",0,u,1,m)),r.colheaders&&(m=xn(n.headerBand,Bc,null),f=Lb(t,r.colheaders,i,u,u,-xn(o,"columnHeader"),ire,1,s,"y1",0,1,u,m)),r.rowfooters&&(m=xn(n.footerBand,kc,null),x=Lb(t,r.rowfooters,i,u,a,xn(o,"rowFooter"),sre,0,s,"x2",u-1,u,1,m)),r.colfooters&&(m=xn(n.footerBand,Bc,null),h=Lb(t,r.colfooters,i,u,u,xn(o,"columnFooter"),sre,1,s,"y2",l-u,1,u,m)),r.rowtitle&&(p=xn(n.titleAnchor,kc),g=xn(o,"rowTitle"),g=p===wi?x+g:c-g,m=xn(n.titleBand,kc,.5),are(t,r.rowtitle,g,0,y,m)),r.coltitle&&(p=xn(n.titleAnchor,Bc),g=xn(o,"columnTitle"),g=p===wi?h+g:f-g,m=xn(n.titleBand,Bc,.5),are(t,r.coltitle,g,1,y,m))}function sqe(t,e){return e==="x1"?t.x||0:e==="y1"?t.y||0:e==="x2"?(t.x||0)+(t.width||0):e==="y2"?(t.y||0)+(t.height||0):void 0}function oqe(t,e){return t.bounds[e]}function Lb(t,e,n,r,i,s,o,u,a,l,c,f,x,h){var p=n.length,m=0,g=0,y,E,A,v,S,C,_,b,R;if(!p)return m;for(y=c;y<p;y+=f)n[y]&&(m=o(m,a(n[y],l)));if(!e.length)return m;for(e.length>i&&(t.warn("Grid headers exceed limit: "+i),e=e.slice(0,i)),m+=s,E=0,v=e.length;E<v;++E)t.dirty(e[E]),e[E].mark.bounds.clear();for(y=c,E=0,v=e.length;E<v;++E,y+=f){for(C=e[E],S=C.mark.bounds,A=y;A>=0&&(_=n[A])==null;A-=x);u?(b=h==null?_.x:Math.round(_.bounds.x1+h*_.bounds.width()),R=m):(b=m,R=h==null?_.y:Math.round(_.bounds.y1+h*_.bounds.height())),S.union(C.bounds.translate(b-(C.x||0),R-(C.y||0))),C.x=b,C.y=R,t.dirty(C),g=o(g,S[l])}return g}function are(t,e,n,r,i,s){if(e){t.dirty(e);var o=n,u=n;r?o=Math.round(i.x1+s*i.width()):u=Math.round(i.y1+s*i.height()),e.bounds.translate(o-(e.x||0),u-(e.y||0)),e.mark.bounds.clear().union(e.bounds),e.x=o,e.y=u,t.dirty(e)}}function uqe(t,e){const n=t[e]||{};return(r,i)=>n[r]!=null?n[r]:t[r]!=null?t[r]:i}function aqe(t,e){let n=-1/0;return t.forEach(r=>{r.offset!=null&&(n=Math.max(n,r.offset))}),n>-1/0?n:e}function lqe(t,e,n,r,i,s,o){const u=uqe(n,e),a=aqe(t,u("offset",0)),l=u("anchor",bL),c=l===wi?1:l===TL?.5:0,f={align:FL,bounds:u("bounds",wL),columns:u("direction")==="vertical"?1:t.length,padding:u("margin",8),center:u("center"),nodirty:!0};switch(e){case au:f.anchor={x:Math.floor(r.x1)-a,column:wi,y:c*(o||r.height()+2*r.y1),row:l};break;case lu:f.anchor={x:Math.ceil(r.x2)+a,y:c*(o||r.height()+2*r.y1),row:l};break;case l1:f.anchor={y:Math.floor(i.y1)-a,row:wi,x:c*(s||i.width()+2*i.x1),column:l};break;case $c:f.anchor={y:Math.ceil(i.y2)+a,x:c*(s||i.width()+2*i.x1),column:l};break;case kUe:f.anchor={x:a,y:a};break;case PUe:f.anchor={x:s-a,y:a,column:wi};break;case MUe:f.anchor={x:a,y:o-a,row:wi};break;case jUe:f.anchor={x:s-a,y:o-a,column:wi,row:wi};break}return f}function cqe(t,e){var n=e.items[0],r=n.datum,i=n.orient,s=n.bounds,o=n.x,u=n.y,a,l;return n._bounds?n._bounds.clear().union(s):n._bounds=s.clone(),s.clear(),xqe(t,n,n.items[0].items[0]),s=fqe(n,s),a=2*n.padding,l=2*n.padding,s.empty()||(a=Math.ceil(s.width()+a),l=Math.ceil(s.height()+l)),r.type===GUe&&dqe(n.items[0].items[0].items[0].items),i!==DL&&(n.x=o=0,n.y=u=0),n.width=a,n.height=l,Dc(s.set(o,u,o+a,u+l),n),n.mark.bounds.clear().union(s),n}function fqe(t,e){return t.items.forEach(n=>e.union(n.bounds)),e.x1=t.padding,e.y1=t.padding,e}function xqe(t,e,n){var r=e.padding,i=r-n.x,s=r-n.y;if(!e.datum.title)(i||s)&&by(t,n,i,s);else{var o=e.items[1].items[0],u=o.anchor,a=e.titlePadding||0,l=r-o.x,c=r-o.y;switch(o.orient){case au:i+=Math.ceil(o.bounds.width())+a;break;case lu:case $c:break;default:s+=o.bounds.height()+a}switch((i||s)&&by(t,n,i,s),o.orient){case au:c+=f1(e,n,o,u,1,1);break;case lu:l+=f1(e,n,o,wi,0,0)+a,c+=f1(e,n,o,u,1,1);break;case $c:l+=f1(e,n,o,u,0,0),c+=f1(e,n,o,wi,-1,0,1)+a;break;default:l+=f1(e,n,o,u,0,0)}(l||c)&&by(t,o,l,c),(l=Math.round(o.bounds.x1-r))<0&&(by(t,n,-l,0),by(t,o,-l,0))}}function f1(t,e,n,r,i,s,o){const u=t.datum.type!=="symbol",a=n.datum.vgrad,l=u&&(s||!a)&&!o?e.items[0]:e,c=l.bounds[i?"y2":"x2"]-t.padding,f=a&&s?c:0,x=a&&s?0:c,h=i<=0?0:Kte(n);return Math.round(r===bL?f:r===wi?x-h:.5*(c-h))}function by(t,e,n,r){e.x+=n,e.y+=r,e.bounds.translate(n,r),e.mark.bounds.translate(n,r),t.dirty(e)}function dqe(t){const e=t.reduce((n,r)=>(n[r.column]=Math.max(r.bounds.x2-r.x,n[r.column]||0),n),{});t.forEach(n=>{n.width=e[n.column],n.height=n.bounds.y2-n.y})}function hqe(t,e,n,r,i){var s=e.items[0],o=s.frame,u=s.orient,a=s.anchor,l=s.offset,c=s.padding,f=s.items[0].items[0],x=s.items[1]&&s.items[1].items[0],h=u===au||u===lu?r:n,p=0,m=0,g=0,y=0,E=0,A;if(o!==Nb?u===au?(p=i.y2,h=i.y1):u===lu?(p=i.y1,h=i.y2):(p=i.x1,h=i.x2):u===au&&(p=r,h=0),A=a===bL?p:a===wi?h:(p+h)/2,x&&x.text){switch(u){case l1:case $c:E=f.bounds.height()+c;break;case au:y=f.bounds.width()+c;break;case lu:y=-f.bounds.width()-c;break}ri.clear().union(x.bounds),ri.translate(y-(x.x||0),E-(x.y||0)),c1(x,"x",y)|c1(x,"y",E)&&(t.dirty(x),x.bounds.clear().union(ri),x.mark.bounds.clear().union(ri),t.dirty(x)),ri.clear().union(x.bounds)}else ri.clear();switch(ri.union(f.bounds),u){case l1:m=A,g=i.y1-ri.height()-l;break;case au:m=i.x1-ri.width()-l,g=A;break;case lu:m=i.x2+ri.width()+l,g=A;break;case $c:m=A,g=i.y2+l;break;default:m=s.x,g=s.y}return c1(s,"x",m)|c1(s,"y",g)&&(ri.translate(m,g),t.dirty(s),s.bounds.clear().union(ri),e.bounds.clear().union(ri),t.dirty(s)),s.bounds}function lre(t){pe.call(this,null,t)}Fe(lre,pe,{transform(t,e){const n=e.dataflow;return t.mark.items.forEach(r=>{t.layout&&iqe(n,r,t.layout),gqe(n,r,t)}),pqe(t.mark.group)?e.reflow():e}});function pqe(t){return t&&t.mark.role!=="legend-entry"}function gqe(t,e,n){var r=e.items,i=Math.max(0,e.width||0),s=Math.max(0,e.height||0),o=new nr().set(0,0,i,s),u=o.clone(),a=o.clone(),l=[],c,f,x,h,p,m;for(p=0,m=r.length;p<m;++p)switch(f=r[p],f.role){case RL:h=JUe(f)?u:a,h.union(eqe(t,f,i,s));break;case OL:c=f;break;case NL:l.push(cqe(t,f));break;case HUe:case zUe:case Mne:case jne:case Une:case qne:case Hne:case zne:u.union(f.bounds),a.union(f.bounds);break;default:o.union(f.bounds)}if(l.length){const g={};l.forEach(y=>{x=y.orient||lu,x!==DL&&(g[x]||(g[x]=[])).push(y)});for(const y in g){const E=g[y];ure(t,E,lqe(E,y,n.legends,u,a,i,s))}l.forEach(y=>{const E=y.bounds;if(E.equals(y._bounds)||(y.bounds=y._bounds,t.dirty(y),y.bounds=E,t.dirty(y)),n.autosize&&(n.autosize.type===Qne||n.autosize.type===Gne||n.autosize.type===Wne))switch(y.orient){case au:case lu:o.add(E.x1,0).add(E.x2,0);break;case l1:case $c:o.add(0,E.y1).add(0,E.y2)}else o.union(E)})}o.union(u).union(a),c&&o.union(hqe(t,c,i,s,o)),e.clip&&o.set(0,0,e.width||0,e.height||0),mqe(t,e,o,n)}function mqe(t,e,n,r){const i=r.autosize||{},s=i.type;if(t._autosize<1||!s)return;let o=t._width,u=t._height,a=Math.max(0,e.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,e.height||0),f=Math.max(0,Math.ceil(-n.y1));const x=Math.max(0,Math.ceil(n.x2-a)),h=Math.max(0,Math.ceil(n.y2-c));if(i.contains===QUe){const p=t.padding();o-=p.left+p.right,u-=p.top+p.bottom}s===DL?(l=0,f=0,a=o,c=u):s===Qne?(a=Math.max(0,o-l-x),c=Math.max(0,u-f-h)):s===Gne?(a=Math.max(0,o-l-x),u=c+f+h):s===Wne?(o=a+l+x,c=Math.max(0,u-f-h)):s===WUe&&(o=a+l+x,u=c+f+h),t._resizeView(o,u,a,c,[l,f],i.resize)}const yqe=Object.freeze(Object.defineProperty({__proto__:null,bound:Vne,identifier:LL,mark:Kne,overlap:Xne,render:rre,viewlayout:lre},Symbol.toStringTag,{value:"Module"}));function cre(t){pe.call(this,null,t)}Fe(cre,pe,{transform(t,e){if(this.value&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.scale,o=t.count==null?t.values?t.values.length:10:t.count,u=I9(s,o,t.minstep),a=t.format||fte(n,s,u,t.formatSpecifier,t.formatType,!!t.values),l=t.values?cte(s,t.values,u):$9(s,u);return i&&(r.rem=i),i=l.map((c,f)=>$t({index:f/(l.length-1||1),value:c,label:a(c)})),t.extra&&i.length&&i.push($t({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}});function fre(t){pe.call(this,null,t)}function Eqe(){return $t({})}function Aqe(t){const e=m3().test(n=>n.exit);return e.lookup=n=>e.get(t(n)),e}Fe(fre,pe,{transform(t,e){var n=e.dataflow,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.item||Eqe,s=t.key||Ze,o=this.value;return _e(r.encode)&&(r.encode=null),o&&(t.modified("key")||e.modified(s))&&Se("DataJoin does not support modified key function or fields."),o||(e=e.addAll(),this.value=o=Aqe(s)),e.visit(e.ADD,u=>{const a=s(u);let l=o.get(a);l?l.exit?(o.empty--,r.add.push(l)):r.mod.push(l):(l=i(u),o.set(a,l),r.add.push(l)),l.datum=u,l.exit=!1}),e.visit(e.MOD,u=>{const a=s(u),l=o.get(a);l&&(l.datum=u,r.mod.push(l))}),e.visit(e.REM,u=>{const a=s(u),l=o.get(a);u===l.datum&&!l.exit&&(r.rem.push(l),l.exit=!0,++o.empty)}),e.changed(e.ADD_MOD)&&r.modifies("datum"),(e.clean()||t.clean&&o.empty>n.cleanThreshold)&&n.runAfter(o.clean),r}});function xre(t){pe.call(this,null,t)}Fe(xre,pe,{transform(t,e){var n=e.fork(e.ADD_REM),r=t.mod||!1,i=t.encoders,s=e.encode;if(_e(s))if(n.changed()||s.every(f=>i[f]))s=s[0],n.encode=null;else return e.StopPropagation;var o=s==="enter",u=i.update||Fx,a=i.enter||Fx,l=i.exit||Fx,c=(s&&!o?i[s]:u)||Fx;if(e.changed(e.ADD)&&(e.visit(e.ADD,f=>{a(f,t),u(f,t)}),n.modifies(a.output),n.modifies(u.output),c!==Fx&&c!==u&&(e.visit(e.ADD,f=>{c(f,t)}),n.modifies(c.output))),e.changed(e.REM)&&l!==Fx&&(e.visit(e.REM,f=>{l(f,t)}),n.modifies(l.output)),o||c!==Fx){const f=e.MOD|(t.modified()?e.REFLOW:0);o?(e.visit(f,x=>{const h=a(x,t)||r;(c(x,t)||h)&&n.mod.push(x)}),n.mod.length&&n.modifies(a.output)):e.visit(f,x=>{(c(x,t)||r)&&n.mod.push(x)}),n.mod.length&&n.modifies(c.output)}return n.changed()?n:e.StopPropagation}});function dre(t){pe.call(this,[],t)}Fe(dre,pe,{transform(t,e){if(this.value!=null&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.type||tb,o=t.scale,u=+t.limit,a=I9(o,t.count==null?5:t.count,t.minstep),l=!!t.values||s===tb,c=t.format||pte(n,o,a,s,t.formatSpecifier,t.formatType,l),f=t.values||hte(o,a),x,h,p,m,g;return i&&(r.rem=i),s===tb?(u&&f.length>u?(e.dataflow.warn("Symbol legend count exceeds limit, filtering items."),i=f.slice(0,u-1),g=!0):i=f,ct(p=t.size)?(!t.values&&o(i[0])===0&&(i=i.slice(1)),m=i.reduce((y,E)=>Math.max(y,p(E,t)),0)):p=Ci(m=p||8),i=i.map((y,E)=>$t({index:E,label:c(y,E,i),value:y,offset:m,size:p(y,t)})),g&&(g=f[i.length],i.push($t({index:i.length,label:`…${f.length-i.length} entries`,value:g,offset:m,size:p(g,t)})))):s===MPe?(x=o.domain(),h=ite(o,x[0],St(x)),f.length<3&&!t.values&&x[0]!==St(x)&&(f=[x[0],St(x)]),i=f.map((y,E)=>$t({index:E,label:c(y,E,f),value:y,perc:h(y)}))):(p=f.length-1,h=KPe(o),i=f.map((y,E)=>$t({index:E,label:c(y,E,f),value:y,perc:E?h(y):0,perc2:E===p?1:h(f[E+1])}))),r.source=i,r.add=i,this.value=i,r}});const vqe=t=>t.source.x,Sqe=t=>t.source.y,_qe=t=>t.target.x,Cqe=t=>t.target.y;function IL(t){pe.call(this,{},t)}IL.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},Fe(IL,pe,{transform(t,e){var n=t.sourceX||vqe,r=t.sourceY||Sqe,i=t.targetX||_qe,s=t.targetY||Cqe,o=t.as||"path",u=t.orient||"vertical",a=t.shape||"line",l=mre.get(a+"-"+u)||mre.get(a);return l||Se("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),e.visit(e.SOURCE,c=>{c[o]=l(n(c),r(c),i(c),s(c))}),e.reflow(t.modified()).modifies(o)}});const hre=(t,e,n,r)=>"M"+t+","+e+"L"+n+","+r,bqe=(t,e,n,r)=>hre(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),pre=(t,e,n,r)=>{var i=n-t,s=r-e,o=Math.sqrt(i*i+s*s)/2,u=180*Math.atan2(s,i)/Math.PI;return"M"+t+","+e+"A"+o+","+o+" "+u+" 0 1 "+n+","+r},Tqe=(t,e,n,r)=>pre(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),gre=(t,e,n,r)=>{const i=n-t,s=r-e,o=.2*(i+s),u=.2*(s-i);return"M"+t+","+e+"C"+(t+o)+","+(e+u)+" "+(n+u)+","+(r-o)+" "+n+","+r},mre=m3({line:hre,"line-radial":bqe,arc:pre,"arc-radial":Tqe,curve:gre,"curve-radial":(t,e,n,r)=>gre(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),"orthogonal-horizontal":(t,e,n,r)=>"M"+t+","+e+"V"+r+"H"+n,"orthogonal-vertical":(t,e,n,r)=>"M"+t+","+e+"H"+n+"V"+r,"orthogonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=Math.abs(n-t)>Math.PI?n<=t:n>t;return"M"+e*i+","+e*s+"A"+e+","+e+" 0 0,"+(a?1:0)+" "+e*o+","+e*u+"L"+r*o+","+r*u},"diagonal-horizontal":(t,e,n,r)=>{const i=(t+n)/2;return"M"+t+","+e+"C"+i+","+e+" "+i+","+r+" "+n+","+r},"diagonal-vertical":(t,e,n,r)=>{const i=(e+r)/2;return"M"+t+","+e+"C"+t+","+i+" "+n+","+i+" "+n+","+r},"diagonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=(e+r)/2;return"M"+e*i+","+e*s+"C"+a*i+","+a*s+" "+a*o+","+a*u+" "+r*o+","+r*u}});function $L(t){pe.call(this,null,t)}$L.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},Fe($L,pe,{transform(t,e){var n=t.as||["startAngle","endAngle"],r=n[0],i=n[1],s=t.field||g3,o=t.startAngle||0,u=t.endAngle!=null?t.endAngle:2*Math.PI,a=e.source,l=a.map(s),c=l.length,f=o,x=(u-o)/cX(l),h=Ps(c),p,m,g;for(t.sort&&h.sort((y,E)=>l[y]-l[E]),p=0;p<c;++p)g=l[h[p]],m=a[h[p]],m[r]=f,m[i]=f+=g*x;return this.value=l,e.reflow(t.modified()).modifies(n)}});const Rqe=5;function Oqe(t){const e=t.type;return!t.bins&&(e===e1||e===uy||e===ay)}function yre(t){return F9(t)&&t!==va}const Nqe=ia(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function Ere(t){pe.call(this,null,t),this.modified(!0)}Fe(Ere,pe,{transform(t,e){var n=e.dataflow,r=this.value,i=Dqe(t);(!r||i!==r.type)&&(this.value=r=Ot(i)());for(i in t)if(!Nqe[i]){if(i==="padding"&&yre(r.type))continue;ct(r[i])?r[i](t[i]):n.warn("Unsupported scale property: "+i)}return Bqe(r,t,$qe(r,t,wqe(r,t,n))),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function Dqe(t){var e=t.type,n="",r;return e===va?va+"-"+e1:(Fqe(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?va+"-":r===3?t1+"-":""),(n+e||e1).toLowerCase())}function Fqe(t){const e=t.type;return F9(e)&&e!==nd&&e!==rd&&(t.scheme||t.range&&t.range.length&&t.range.every(je))}function wqe(t,e,n){const r=Lqe(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,s=t.type,o=e.zero||e.zero===void 0&&Oqe(t),u,a;if(!i)return 0;if(yre(s)&&e.padding&&i[0]!==St(i)&&(i=Iqe(s,i,e.range,e.padding,e.exponent,e.constant)),(o||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(u=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[u]<0&&(i[u]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[u]=e.domainMax),e.domainMid!=null)){a=e.domainMid;const l=a>i[u]?u+1:a<i[0]?0:u;l!==u&&n.warn("Scale domainMid exceeds domain min or max.",a),i.splice(l,0,a)}return t.domain(Are(s,i,n)),s===T9&&t.unknown(e.domainImplicit?Jw:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&I9(t,e.nice)||null),i.length}function Lqe(t,e,n){return e?(t.domain(Are(t.type,e,n)),e.length):-1}function Iqe(t,e,n,r,i,s){var o=Math.abs(St(n)-n[0]),u=o/(o-2*r),a=t===zl?MY(e,null,u):t===ay?zF(e,null,u,.5):t===uy?zF(e,null,u,i||1):t===XC?jY(e,null,u,s||1):PY(e,null,u);return e=e.slice(),e[0]=a[0],e[e.length-1]=a[1],e}function Are(t,e,n){if(tte(t)){var r=Math.abs(e.reduce((i,s)=>i+(s<0?-1:s>0?1:0),0));r!==e.length&&n.warn("Log scale domain includes zero: "+we(e))}return e}function $qe(t,e,n){let r=e.bins;if(r&&!_e(r)){const i=t.domain(),s=i[0],o=St(i),u=r.step;let a=r.start==null?s:r.start,l=r.stop==null?o:r.stop;u||Se("Scale bins parameter missing step property."),a<s&&(a=u*Math.ceil(s/u)),l>o&&(l=u*Math.floor(o/u)),r=Ps(a,l+u/2,u)}return r?t.bins=r:t.bins&&delete t.bins,t.type===O9&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function Bqe(t,e,n){var r=t.type,i=e.round||!1,s=e.range;if(e.rangeStep!=null)s=kqe(r,e,n);else if(e.scheme&&(s=Pqe(r,e,n),ct(s))){if(t.interpolator)return t.interpolator(s);Se(`Scale type ${r} does not support interpolating color schemes.`)}if(s&&nte(r))return t.interpolator(L9(BL(s,e.reverse),e.interpolate,e.interpolateGamma));s&&e.interpolate&&t.interpolate?t.interpolate(ste(e.interpolate,e.interpolateGamma)):ct(t.round)?t.round(i):ct(t.rangeRound)&&t.interpolate(i?sy:Tc),s&&t.range(BL(s,e.reverse))}function kqe(t,e,n){t!==Yee&&t!==R9&&Se("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===R9?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*b9(n,i,r)]}function Pqe(t,e,n){var r=e.schemeExtent,i,s;return _e(e.scheme)?s=L9(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),s=lte(i),s||Se(`Unrecognized scheme name: ${e.scheme}`)),n=t===ZC?n+1:t===O9?n-1:t===n1||t===JC?+e.schemeCount||Rqe:n,nte(t)?vre(s,r,e.reverse):ct(s)?IPe(vre(s,r),n):t===T9?s:s.slice(0,n)}function vre(t,e,n){return ct(t)&&(e||n)?LPe(t,BL(e||[0,1],n)):t}function BL(t,e){return e?t.slice().reverse():t}function Sre(t){pe.call(this,null,t)}Fe(Sre,pe,{transform(t,e){const n=t.modified("sort")||e.changed(e.ADD)||e.modified(t.sort.fields)||e.modified("datum");return n&&e.source.sort(Gx(t.sort)),this.modified(n),e}});const _re="zero",Cre="center",bre="normalize",Tre=["y0","y1"];function kL(t){pe.call(this,null,t)}kL.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:_re,values:[_re,Cre,bre]},{name:"as",type:"string",array:!0,length:2,default:Tre}]},Fe(kL,pe,{transform(t,e){var n=t.as||Tre,r=n[0],i=n[1],s=Gx(t.sort),o=t.field||g3,u=t.offset===Cre?Mqe:t.offset===bre?jqe:Uqe,a,l,c,f;for(a=qqe(e.source,t.groupby,s,o),l=0,c=a.length,f=a.max;l<c;++l)u(a[l],f,o,r,i);return e.reflow(t.modified()).modifies(n)}});function Mqe(t,e,n,r,i){for(var s=(e-t.sum)/2,o=t.length,u=0,a;u<o;++u)a=t[u],a[r]=s,a[i]=s+=Math.abs(n(a))}function jqe(t,e,n,r,i){for(var s=1/t.sum,o=0,u=t.length,a=0,l=0,c;a<u;++a)c=t[a],c[r]=o,c[i]=o=s*(l+=Math.abs(n(c)))}function Uqe(t,e,n,r,i){for(var s=0,o=0,u=t.length,a=0,l,c;a<u;++a)c=t[a],l=+n(c),l<0?(c[r]=o,c[i]=o+=l):(c[r]=s,c[i]=s+=l)}function qqe(t,e,n,r){var i=[],s=m=>m(c),o,u,a,l,c,f,x,h,p;if(e==null)i.push(t.slice());else for(o={},u=0,a=t.length;u<a;++u)c=t[u],f=e.map(s),x=o[f],x||(o[f]=x=[],i.push(x)),x.push(c);for(f=0,p=0,l=i.length;f<l;++f){for(x=i[f],u=0,h=0,a=x.length;u<a;++u)h+=Math.abs(r(x[u]));x.sum=h,h>p&&(p=h),n&&x.sort(n)}return i.max=p,i}const Hqe=Object.freeze(Object.defineProperty({__proto__:null,axisticks:cre,datajoin:fre,encode:xre,legendentries:dre,linkpath:IL,pie:$L,scale:Ere,sortitems:Sre,stack:kL},Symbol.toStringTag,{value:"Module"}));var tt=1e-6,Ib=1e-12,ht=Math.PI,wn=ht/2,$b=ht/4,Li=ht*2,Mn=180/ht,dt=ht/180,yt=Math.abs,x1=Math.atan,_o=Math.atan2,nt=Math.cos,Bb=Math.ceil,Rre=Math.exp,PL=Math.hypot,kb=Math.log,ML=Math.pow,Ke=Math.sin,Co=Math.sign||function(t){return t>0?1:t<0?-1:0},Ii=Math.sqrt,jL=Math.tan;function Ore(t){return t>1?0:t<-1?ht:Math.acos(t)}function ds(t){return t>1?wn:t<-1?-wn:Math.asin(t)}function Br(){}function Pb(t,e){t&&Dre.hasOwnProperty(t.type)&&Dre[t.type](t,e)}var Nre={Feature:function(t,e){Pb(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Pb(n[r].geometry,e)}},Dre={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){UL(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)UL(n[r],e,0)},Polygon:function(t,e){Fre(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Fre(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Pb(n[r],e)}};function UL(t,e,n){var r=-1,i=t.length-n,s;for(e.lineStart();++r<i;)s=t[r],e.point(s[0],s[1],s[2]);e.lineEnd()}function Fre(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)UL(t[n],e,1);e.polygonEnd()}function Yl(t,e){t&&Nre.hasOwnProperty(t.type)?Nre[t.type](t,e):Pb(t,e)}var Mb=new Oi,jb=new Oi,wre,Lre,qL,HL,zL,Ra={point:Br,lineStart:Br,lineEnd:Br,polygonStart:function(){Mb=new Oi,Ra.lineStart=zqe,Ra.lineEnd=Qqe},polygonEnd:function(){var t=+Mb;jb.add(t<0?Li+t:t),this.lineStart=this.lineEnd=this.point=Br},sphere:function(){jb.add(Li)}};function zqe(){Ra.point=Gqe}function Qqe(){Ire(wre,Lre)}function Gqe(t,e){Ra.point=Ire,wre=t,Lre=e,t*=dt,e*=dt,qL=t,HL=nt(e=e/2+$b),zL=Ke(e)}function Ire(t,e){t*=dt,e*=dt,e=e/2+$b;var n=t-qL,r=n>=0?1:-1,i=r*n,s=nt(e),o=Ke(e),u=zL*o,a=HL*s+u*nt(i),l=u*r*Ke(i);Mb.add(_o(l,a)),qL=t,HL=s,zL=o}function Wqe(t){return jb=new Oi,Yl(t,Ra),jb*2}function Ub(t){return[_o(t[1],t[0]),ds(t[2])]}function hd(t){var e=t[0],n=t[1],r=nt(n);return[r*nt(e),r*Ke(e),Ke(n)]}function qb(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function d1(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function QL(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Hb(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function zb(t){var e=Ii(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var An,hs,Ln,qs,pd,$re,Bre,h1,Ty,Pc,Kl,Xl={point:GL,lineStart:Pre,lineEnd:Mre,polygonStart:function(){Xl.point=jre,Xl.lineStart=Vqe,Xl.lineEnd=Yqe,Ty=new Oi,Ra.polygonStart()},polygonEnd:function(){Ra.polygonEnd(),Xl.point=GL,Xl.lineStart=Pre,Xl.lineEnd=Mre,Mb<0?(An=-(Ln=180),hs=-(qs=90)):Ty>tt?qs=90:Ty<-tt&&(hs=-90),Kl[0]=An,Kl[1]=Ln},sphere:function(){An=-(Ln=180),hs=-(qs=90)}};function GL(t,e){Pc.push(Kl=[An=t,Ln=t]),e<hs&&(hs=e),e>qs&&(qs=e)}function kre(t,e){var n=hd([t*dt,e*dt]);if(h1){var r=d1(h1,n),i=[r[1],-r[0],0],s=d1(i,r);zb(s),s=Ub(s);var o=t-pd,u=o>0?1:-1,a=s[0]*Mn*u,l,c=yt(o)>180;c^(u*pd<a&&a<u*t)?(l=s[1]*Mn,l>qs&&(qs=l)):(a=(a+360)%360-180,c^(u*pd<a&&a<u*t)?(l=-s[1]*Mn,l<hs&&(hs=l)):(e<hs&&(hs=e),e>qs&&(qs=e))),c?t<pd?Hs(An,t)>Hs(An,Ln)&&(Ln=t):Hs(t,Ln)>Hs(An,Ln)&&(An=t):Ln>=An?(t<An&&(An=t),t>Ln&&(Ln=t)):t>pd?Hs(An,t)>Hs(An,Ln)&&(Ln=t):Hs(t,Ln)>Hs(An,Ln)&&(An=t)}else Pc.push(Kl=[An=t,Ln=t]);e<hs&&(hs=e),e>qs&&(qs=e),h1=n,pd=t}function Pre(){Xl.point=kre}function Mre(){Kl[0]=An,Kl[1]=Ln,Xl.point=GL,h1=null}function jre(t,e){if(h1){var n=t-pd;Ty.add(yt(n)>180?n+(n>0?360:-360):n)}else $re=t,Bre=e;Ra.point(t,e),kre(t,e)}function Vqe(){Ra.lineStart()}function Yqe(){jre($re,Bre),Ra.lineEnd(),yt(Ty)>tt&&(An=-(Ln=180)),Kl[0]=An,Kl[1]=Ln,h1=null}function Hs(t,e){return(e-=t)<0?e+360:e}function Kqe(t,e){return t[0]-e[0]}function Ure(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function Xqe(t){var e,n,r,i,s,o,u;if(qs=Ln=-(An=hs=1/0),Pc=[],Yl(t,Xl),n=Pc.length){for(Pc.sort(Kqe),e=1,r=Pc[0],s=[r];e<n;++e)i=Pc[e],Ure(r,i[0])||Ure(r,i[1])?(Hs(r[0],i[1])>Hs(r[0],r[1])&&(r[1]=i[1]),Hs(i[0],r[1])>Hs(r[0],r[1])&&(r[0]=i[0])):s.push(r=i);for(o=-1/0,n=s.length-1,e=0,r=s[n];e<=n;r=i,++e)i=s[e],(u=Hs(r[1],i[0]))>o&&(o=u,An=i[0],Ln=r[1])}return Pc=Kl=null,An===1/0||hs===1/0?[[NaN,NaN],[NaN,NaN]]:[[An,hs],[Ln,qs]]}var Ry,Qb,Gb,Wb,Vb,Yb,Kb,Xb,WL,VL,YL,qre,Hre,$i,Bi,ki,cu={sphere:Br,point:KL,lineStart:zre,lineEnd:Qre,polygonStart:function(){cu.lineStart=eHe,cu.lineEnd=tHe},polygonEnd:function(){cu.lineStart=zre,cu.lineEnd=Qre}};function KL(t,e){t*=dt,e*=dt;var n=nt(e);Oy(n*nt(t),n*Ke(t),Ke(e))}function Oy(t,e,n){++Ry,Gb+=(t-Gb)/Ry,Wb+=(e-Wb)/Ry,Vb+=(n-Vb)/Ry}function zre(){cu.point=Jqe}function Jqe(t,e){t*=dt,e*=dt;var n=nt(e);$i=n*nt(t),Bi=n*Ke(t),ki=Ke(e),cu.point=Zqe,Oy($i,Bi,ki)}function Zqe(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Ke(t),s=Ke(e),o=_o(Ii((o=Bi*s-ki*i)*o+(o=ki*r-$i*s)*o+(o=$i*i-Bi*r)*o),$i*r+Bi*i+ki*s);Qb+=o,Yb+=o*($i+($i=r)),Kb+=o*(Bi+(Bi=i)),Xb+=o*(ki+(ki=s)),Oy($i,Bi,ki)}function Qre(){cu.point=KL}function eHe(){cu.point=nHe}function tHe(){Gre(qre,Hre),cu.point=KL}function nHe(t,e){qre=t,Hre=e,t*=dt,e*=dt,cu.point=Gre;var n=nt(e);$i=n*nt(t),Bi=n*Ke(t),ki=Ke(e),Oy($i,Bi,ki)}function Gre(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Ke(t),s=Ke(e),o=Bi*s-ki*i,u=ki*r-$i*s,a=$i*i-Bi*r,l=PL(o,u,a),c=ds(l),f=l&&-c/l;WL.add(f*o),VL.add(f*u),YL.add(f*a),Qb+=c,Yb+=c*($i+($i=r)),Kb+=c*(Bi+(Bi=i)),Xb+=c*(ki+(ki=s)),Oy($i,Bi,ki)}function rHe(t){Ry=Qb=Gb=Wb=Vb=Yb=Kb=Xb=0,WL=new Oi,VL=new Oi,YL=new Oi,Yl(t,cu);var e=+WL,n=+VL,r=+YL,i=PL(e,n,r);return i<Ib&&(e=Yb,n=Kb,r=Xb,Qb<tt&&(e=Gb,n=Wb,r=Vb),i=PL(e,n,r),i<Ib)?[NaN,NaN]:[_o(n,e)*Mn,ds(r/i)*Mn]}function XL(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function JL(t,e){return yt(t)>ht&&(t-=Math.round(t/Li)*Li),[t,e]}JL.invert=JL;function Wre(t,e,n){return(t%=Li)?e||n?XL(Yre(t),Kre(e,n)):Yre(t):e||n?Kre(e,n):JL}function Vre(t){return function(e,n){return e+=t,yt(e)>ht&&(e-=Math.round(e/Li)*Li),[e,n]}}function Yre(t){var e=Vre(t);return e.invert=Vre(-t),e}function Kre(t,e){var n=nt(t),r=Ke(t),i=nt(e),s=Ke(e);function o(u,a){var l=nt(a),c=nt(u)*l,f=Ke(u)*l,x=Ke(a),h=x*n+c*r;return[_o(f*i-h*s,c*n-x*r),ds(h*i+f*s)]}return o.invert=function(u,a){var l=nt(a),c=nt(u)*l,f=Ke(u)*l,x=Ke(a),h=x*i-f*s;return[_o(f*i+x*s,c*n+h*r),ds(h*n-c*r)]},o}function iHe(t){t=Wre(t[0]*dt,t[1]*dt,t.length>2?t[2]*dt:0);function e(n){return n=t(n[0]*dt,n[1]*dt),n[0]*=Mn,n[1]*=Mn,n}return e.invert=function(n){return n=t.invert(n[0]*dt,n[1]*dt),n[0]*=Mn,n[1]*=Mn,n},e}function sHe(t,e,n,r,i,s){if(n){var o=nt(e),u=Ke(e),a=r*n;i==null?(i=e+r*Li,s=e-a/2):(i=Xre(o,i),s=Xre(o,s),(r>0?i<s:i>s)&&(i+=r*Li));for(var l,c=i;r>0?c>s:c<s;c-=a)l=Ub([o,-u*nt(c),-u*Ke(c)]),t.point(l[0],l[1])}}function Xre(t,e){e=hd(e),e[0]-=t,zb(e);var n=Ore(-e[1]);return((-e[2]<0?-n:n)+Li-tt)%Li}function Jre(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:Br,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Jb(t,e){return yt(t[0]-e[0])<tt&&yt(t[1]-e[1])<tt}function Zb(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Zre(t,e,n,r,i){var s=[],o=[],u,a;if(t.forEach(function(p){if(!((m=p.length-1)<=0)){var m,g=p[0],y=p[m],E;if(Jb(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),u=0;u<m;++u)i.point((g=p[u])[0],g[1]);i.lineEnd();return}y[0]+=2*tt}s.push(E=new Zb(g,p,null,!0)),o.push(E.o=new Zb(g,null,E,!1)),s.push(E=new Zb(y,p,null,!1)),o.push(E.o=new Zb(y,null,E,!0))}}),!!s.length){for(o.sort(e),eie(s),eie(o),u=0,a=o.length;u<a;++u)o[u].e=n=!n;for(var l=s[0],c,f;;){for(var x=l,h=!0;x.v;)if((x=x.n)===l)return;c=x.z,i.lineStart();do{if(x.v=x.o.v=!0,x.e){if(h)for(u=0,a=c.length;u<a;++u)i.point((f=c[u])[0],f[1]);else r(x.x,x.n.x,1,i);x=x.n}else{if(h)for(c=x.p.z,u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1]);else r(x.x,x.p.x,-1,i);x=x.p}x=x.o,c=x.z,h=!h}while(!x.v);i.lineEnd()}}}function eie(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function ZL(t){return yt(t[0])<=ht?t[0]:Co(t[0])*((yt(t[0])+ht)%Li-ht)}function oHe(t,e){var n=ZL(e),r=e[1],i=Ke(r),s=[Ke(n),-nt(n),0],o=0,u=0,a=new Oi;i===1?r=wn+tt:i===-1&&(r=-wn-tt);for(var l=0,c=t.length;l<c;++l)if(x=(f=t[l]).length)for(var f,x,h=f[x-1],p=ZL(h),m=h[1]/2+$b,g=Ke(m),y=nt(m),E=0;E<x;++E,p=v,g=C,y=_,h=A){var A=f[E],v=ZL(A),S=A[1]/2+$b,C=Ke(S),_=nt(S),b=v-p,R=b>=0?1:-1,O=R*b,L=O>ht,M=g*C;if(a.add(_o(M*R*Ke(O),y*_+M*nt(O))),o+=L?b+R*Li:b,L^p>=n^v>=n){var q=d1(hd(h),hd(A));zb(q);var W=d1(s,q);zb(W);var B=(L^b>=0?-1:1)*ds(W[2]);(r>B||r===B&&(q[0]||q[1]))&&(u+=L^b>=0?1:-1)}}return(o<-tt||o<tt&&a<-Ib)^u&1}function tie(t,e,n,r){return function(i){var s=e(i),o=Jre(),u=e(o),a=!1,l,c,f,x={point:h,lineStart:m,lineEnd:g,polygonStart:function(){x.point=y,x.lineStart=E,x.lineEnd=A,c=[],l=[]},polygonEnd:function(){x.point=h,x.lineStart=m,x.lineEnd=g,c=lX(c);var v=oHe(l,r);c.length?(a||(i.polygonStart(),a=!0),Zre(c,aHe,v,n,i)):v&&(a||(i.polygonStart(),a=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),a&&(i.polygonEnd(),a=!1),c=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(v,S){t(v,S)&&i.point(v,S)}function p(v,S){s.point(v,S)}function m(){x.point=p,s.lineStart()}function g(){x.point=h,s.lineEnd()}function y(v,S){f.push([v,S]),u.point(v,S)}function E(){u.lineStart(),f=[]}function A(){y(f[0][0],f[0][1]),u.lineEnd();var v=u.clean(),S=o.result(),C,_=S.length,b,R,O;if(f.pop(),l.push(f),f=null,!!_){if(v&1){if(R=S[0],(b=R.length-1)>0){for(a||(i.polygonStart(),a=!0),i.lineStart(),C=0;C<b;++C)i.point((O=R[C])[0],O[1]);i.lineEnd()}return}_>1&&v&2&&S.push(S.pop().concat(S.shift())),c.push(S.filter(uHe))}}return x}}function uHe(t){return t.length>1}function aHe(t,e){return((t=t.x)[0]<0?t[1]-wn-tt:wn-t[1])-((e=e.x)[0]<0?e[1]-wn-tt:wn-e[1])}const nie=tie(function(){return!0},lHe,fHe,[-ht,-wn]);function lHe(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(s,o){var u=s>0?ht:-ht,a=yt(s-e);yt(a-ht)<tt?(t.point(e,n=(n+o)/2>0?wn:-wn),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),t.point(s,n),i=0):r!==u&&a>=ht&&(yt(e-r)<tt&&(e-=r*tt),yt(s-u)<tt&&(s-=u*tt),n=cHe(e,n,s,o),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),i=0),t.point(e=s,n=o),r=u},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function cHe(t,e,n,r){var i,s,o=Ke(t-n);return yt(o)>tt?x1((Ke(e)*(s=nt(r))*Ke(n)-Ke(r)*(i=nt(e))*Ke(t))/(i*s*o)):(e+r)/2}function fHe(t,e,n,r){var i;if(t==null)i=n*wn,r.point(-ht,i),r.point(0,i),r.point(ht,i),r.point(ht,0),r.point(ht,-i),r.point(0,-i),r.point(-ht,-i),r.point(-ht,0),r.point(-ht,i);else if(yt(t[0]-e[0])>tt){var s=t[0]<e[0]?ht:-ht;i=n*s/2,r.point(-s,i),r.point(0,i),r.point(s,i)}else r.point(e[0],e[1])}function xHe(t){var e=nt(t),n=6*dt,r=e>0,i=yt(e)>tt;function s(c,f,x,h){sHe(h,t,n,x,c,f)}function o(c,f){return nt(c)*nt(f)>e}function u(c){var f,x,h,p,m;return{lineStart:function(){p=h=!1,m=1},point:function(g,y){var E=[g,y],A,v=o(g,y),S=r?v?0:l(g,y):v?l(g+(g<0?ht:-ht),y):0;if(!f&&(p=h=v)&&c.lineStart(),v!==h&&(A=a(f,E),(!A||Jb(f,A)||Jb(E,A))&&(E[2]=1)),v!==h)m=0,v?(c.lineStart(),A=a(E,f),c.point(A[0],A[1])):(A=a(f,E),c.point(A[0],A[1],2),c.lineEnd()),f=A;else if(i&&f&&r^v){var C;!(S&x)&&(C=a(E,f,!0))&&(m=0,r?(c.lineStart(),c.point(C[0][0],C[0][1]),c.point(C[1][0],C[1][1]),c.lineEnd()):(c.point(C[1][0],C[1][1]),c.lineEnd(),c.lineStart(),c.point(C[0][0],C[0][1],3)))}v&&(!f||!Jb(f,E))&&c.point(E[0],E[1]),f=E,h=v,x=S},lineEnd:function(){h&&c.lineEnd(),f=null},clean:function(){return m|(p&&h)<<1}}}function a(c,f,x){var h=hd(c),p=hd(f),m=[1,0,0],g=d1(h,p),y=qb(g,g),E=g[0],A=y-E*E;if(!A)return!x&&c;var v=e*y/A,S=-e*E/A,C=d1(m,g),_=Hb(m,v),b=Hb(g,S);QL(_,b);var R=C,O=qb(_,R),L=qb(R,R),M=O*O-L*(qb(_,_)-1);if(!(M<0)){var q=Ii(M),W=Hb(R,(-O-q)/L);if(QL(W,_),W=Ub(W),!x)return W;var B=c[0],G=f[0],te=c[1],X=f[1],de;G<B&&(de=B,B=G,G=de);var be=G-B,ee=yt(be-ht)<tt,U=ee||be<tt;if(!ee&&X<te&&(de=te,te=X,X=de),U?ee?te+X>0^W[1]<(yt(W[0]-B)<tt?te:X):te<=W[1]&&W[1]<=X:be>ht^(B<=W[0]&&W[0]<=G)){var T=Hb(R,(-O+q)/L);return QL(T,_),[W,Ub(T)]}}}function l(c,f){var x=r?t:ht-t,h=0;return c<-x?h|=1:c>x&&(h|=2),f<-x?h|=4:f>x&&(h|=8),h}return tie(o,u,s,r?[0,-t]:[-ht,t-ht])}function dHe(t,e,n,r,i,s){var o=t[0],u=t[1],a=e[0],l=e[1],c=0,f=1,x=a-o,h=l-u,p;if(p=n-o,!(!x&&p>0)){if(p/=x,x<0){if(p<c)return;p<f&&(f=p)}else if(x>0){if(p>f)return;p>c&&(c=p)}if(p=i-o,!(!x&&p<0)){if(p/=x,x<0){if(p>f)return;p>c&&(c=p)}else if(x>0){if(p<c)return;p<f&&(f=p)}if(p=r-u,!(!h&&p>0)){if(p/=h,h<0){if(p<c)return;p<f&&(f=p)}else if(h>0){if(p>f)return;p>c&&(c=p)}if(p=s-u,!(!h&&p<0)){if(p/=h,h<0){if(p>f)return;p>c&&(c=p)}else if(h>0){if(p<c)return;p<f&&(f=p)}return c>0&&(t[0]=o+c*x,t[1]=u+c*h),f<1&&(e[0]=o+f*x,e[1]=u+f*h),!0}}}}}var Ny=1e9,eT=-Ny;function rie(t,e,n,r){function i(l,c){return t<=l&&l<=n&&e<=c&&c<=r}function s(l,c,f,x){var h=0,p=0;if(l==null||(h=o(l,f))!==(p=o(c,f))||a(l,c)<0^f>0)do x.point(h===0||h===3?t:n,h>1?r:e);while((h=(h+f+4)%4)!==p);else x.point(c[0],c[1])}function o(l,c){return yt(l[0]-t)<tt?c>0?0:3:yt(l[0]-n)<tt?c>0?2:1:yt(l[1]-e)<tt?c>0?1:0:c>0?3:2}function u(l,c){return a(l.x,c.x)}function a(l,c){var f=o(l,1),x=o(c,1);return f!==x?f-x:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c=l,f=Jre(),x,h,p,m,g,y,E,A,v,S,C,_={point:b,lineStart:M,lineEnd:q,polygonStart:O,polygonEnd:L};function b(B,G){i(B,G)&&c.point(B,G)}function R(){for(var B=0,G=0,te=h.length;G<te;++G)for(var X=h[G],de=1,be=X.length,ee=X[0],U,T,w=ee[0],k=ee[1];de<be;++de)U=w,T=k,ee=X[de],w=ee[0],k=ee[1],T<=r?k>r&&(w-U)*(r-T)>(k-T)*(t-U)&&++B:k<=r&&(w-U)*(r-T)<(k-T)*(t-U)&&--B;return B}function O(){c=f,x=[],h=[],C=!0}function L(){var B=R(),G=C&&B,te=(x=lX(x)).length;(G||te)&&(l.polygonStart(),G&&(l.lineStart(),s(null,null,1,l),l.lineEnd()),te&&Zre(x,u,B,s,l),l.polygonEnd()),c=l,x=h=p=null}function M(){_.point=W,h&&h.push(p=[]),S=!0,v=!1,E=A=NaN}function q(){x&&(W(m,g),y&&v&&f.rejoin(),x.push(f.result())),_.point=b,v&&c.lineEnd()}function W(B,G){var te=i(B,G);if(h&&p.push([B,G]),S)m=B,g=G,y=te,S=!1,te&&(c.lineStart(),c.point(B,G));else if(te&&v)c.point(B,G);else{var X=[E=Math.max(eT,Math.min(Ny,E)),A=Math.max(eT,Math.min(Ny,A))],de=[B=Math.max(eT,Math.min(Ny,B)),G=Math.max(eT,Math.min(Ny,G))];dHe(X,de,t,e,n,r)?(v||(c.lineStart(),c.point(X[0],X[1])),c.point(de[0],de[1]),te||c.lineEnd(),C=!1):te&&(c.lineStart(),c.point(B,G),C=!1)}E=B,A=G,v=te}return _}}function iie(t,e,n){var r=Ps(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[i,s]})}}function sie(t,e,n){var r=Ps(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[s,i]})}}function hHe(){var t,e,n,r,i,s,o,u,a=10,l=a,c=90,f=360,x,h,p,m,g=2.5;function y(){return{type:"MultiLineString",coordinates:E()}}function E(){return Ps(Bb(r/c)*c,n,c).map(p).concat(Ps(Bb(u/f)*f,o,f).map(m)).concat(Ps(Bb(e/a)*a,t,a).filter(function(A){return yt(A%c)>tt}).map(x)).concat(Ps(Bb(s/l)*l,i,l).filter(function(A){return yt(A%f)>tt}).map(h))}return y.lines=function(){return E().map(function(A){return{type:"LineString",coordinates:A}})},y.outline=function(){return{type:"Polygon",coordinates:[p(r).concat(m(o).slice(1),p(n).reverse().slice(1),m(u).reverse().slice(1))]}},y.extent=function(A){return arguments.length?y.extentMajor(A).extentMinor(A):y.extentMinor()},y.extentMajor=function(A){return arguments.length?(r=+A[0][0],n=+A[1][0],u=+A[0][1],o=+A[1][1],r>n&&(A=r,r=n,n=A),u>o&&(A=u,u=o,o=A),y.precision(g)):[[r,u],[n,o]]},y.extentMinor=function(A){return arguments.length?(e=+A[0][0],t=+A[1][0],s=+A[0][1],i=+A[1][1],e>t&&(A=e,e=t,t=A),s>i&&(A=s,s=i,i=A),y.precision(g)):[[e,s],[t,i]]},y.step=function(A){return arguments.length?y.stepMajor(A).stepMinor(A):y.stepMinor()},y.stepMajor=function(A){return arguments.length?(c=+A[0],f=+A[1],y):[c,f]},y.stepMinor=function(A){return arguments.length?(a=+A[0],l=+A[1],y):[a,l]},y.precision=function(A){return arguments.length?(g=+A,x=iie(s,i,90),h=sie(e,t,g),p=iie(u,o,90),m=sie(r,n,g),y):g},y.extentMajor([[-180,-90+tt],[180,90-tt]]).extentMinor([[-180,-80-tt],[180,80+tt]])}const Dy=t=>t;var eI=new Oi,tI=new Oi,oie,uie,nI,rI,Jl={point:Br,lineStart:Br,lineEnd:Br,polygonStart:function(){Jl.lineStart=pHe,Jl.lineEnd=mHe},polygonEnd:function(){Jl.lineStart=Jl.lineEnd=Jl.point=Br,eI.add(yt(tI)),tI=new Oi},result:function(){var t=eI/2;return eI=new Oi,t}};function pHe(){Jl.point=gHe}function gHe(t,e){Jl.point=aie,oie=nI=t,uie=rI=e}function aie(t,e){tI.add(rI*t-nI*e),nI=t,rI=e}function mHe(){aie(oie,uie)}var p1=1/0,tT=p1,Fy=-p1,nT=Fy,rT={point:yHe,lineStart:Br,lineEnd:Br,polygonStart:Br,polygonEnd:Br,result:function(){var t=[[p1,tT],[Fy,nT]];return Fy=nT=-(tT=p1=1/0),t}};function yHe(t,e){t<p1&&(p1=t),t>Fy&&(Fy=t),e<tT&&(tT=e),e>nT&&(nT=e)}var iI=0,sI=0,wy=0,iT=0,sT=0,g1=0,oI=0,uI=0,Ly=0,lie,cie,Oa,Na,bo={point:gd,lineStart:fie,lineEnd:xie,polygonStart:function(){bo.lineStart=vHe,bo.lineEnd=SHe},polygonEnd:function(){bo.point=gd,bo.lineStart=fie,bo.lineEnd=xie},result:function(){var t=Ly?[oI/Ly,uI/Ly]:g1?[iT/g1,sT/g1]:wy?[iI/wy,sI/wy]:[NaN,NaN];return iI=sI=wy=iT=sT=g1=oI=uI=Ly=0,t}};function gd(t,e){iI+=t,sI+=e,++wy}function fie(){bo.point=EHe}function EHe(t,e){bo.point=AHe,gd(Oa=t,Na=e)}function AHe(t,e){var n=t-Oa,r=e-Na,i=Ii(n*n+r*r);iT+=i*(Oa+t)/2,sT+=i*(Na+e)/2,g1+=i,gd(Oa=t,Na=e)}function xie(){bo.point=gd}function vHe(){bo.point=_He}function SHe(){die(lie,cie)}function _He(t,e){bo.point=die,gd(lie=Oa=t,cie=Na=e)}function die(t,e){var n=t-Oa,r=e-Na,i=Ii(n*n+r*r);iT+=i*(Oa+t)/2,sT+=i*(Na+e)/2,g1+=i,i=Na*t-Oa*e,oI+=i*(Oa+t),uI+=i*(Na+e),Ly+=i*3,gd(Oa=t,Na=e)}function hie(t){this._context=t}hie.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,Li);break}}},result:Br};var aI=new Oi,lI,pie,gie,Iy,$y,By={point:Br,lineStart:function(){By.point=CHe},lineEnd:function(){lI&&mie(pie,gie),By.point=Br},polygonStart:function(){lI=!0},polygonEnd:function(){lI=null},result:function(){var t=+aI;return aI=new Oi,t}};function CHe(t,e){By.point=mie,pie=Iy=t,gie=$y=e}function mie(t,e){Iy-=t,$y-=e,aI.add(Ii(Iy*Iy+$y*$y)),Iy=t,$y=e}let yie,oT,Eie,Aie;class vie{constructor(e){this._append=e==null?Sie:bHe(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==Eie||this._append!==oT){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,Eie=r,oT=this._append,Aie=this._,this._=i}this._+=Aie;break}}}result(){const e=this._;return this._="",e.length?e:null}}function Sie(t){let e=1;this._+=t[0];for(const n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function bHe(t){const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Sie;if(e!==yie){const n=10**e;yie=e,oT=function(i){let s=1;this._+=i[0];for(const o=i.length;s<o;++s)this._+=Math.round(arguments[s]*n)/n+i[s]}}return oT}function _ie(t,e){let n=3,r=4.5,i,s;function o(u){return u&&(typeof r=="function"&&s.pointRadius(+r.apply(this,arguments)),Yl(u,i(s))),s.result()}return o.area=function(u){return Yl(u,i(Jl)),Jl.result()},o.measure=function(u){return Yl(u,i(By)),By.result()},o.bounds=function(u){return Yl(u,i(rT)),rT.result()},o.centroid=function(u){return Yl(u,i(bo)),bo.result()},o.projection=function(u){return arguments.length?(i=u==null?(t=null,Dy):(t=u).stream,o):t},o.context=function(u){return arguments.length?(s=u==null?(e=null,new vie(n)):new hie(e=u),typeof r!="function"&&s.pointRadius(r),o):e},o.pointRadius=function(u){return arguments.length?(r=typeof u=="function"?u:(s.pointRadius(+u),+u),o):r},o.digits=function(u){if(!arguments.length)return n;if(u==null)n=null;else{const a=Math.floor(u);if(!(a>=0))throw new RangeError(`invalid digits: ${u}`);n=a}return e===null&&(s=new vie(n)),o},o.projection(t).digits(n).context(e)}function uT(t){return function(e){var n=new cI;for(var r in t)n[r]=t[r];return n.stream=e,n}}function cI(){}cI.prototype={constructor:cI,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function fI(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),Yl(n,t.stream(rT)),e(rT.result()),r!=null&&t.clipExtent(r),t}function aT(t,e,n){return fI(t,function(r){var i=e[1][0]-e[0][0],s=e[1][1]-e[0][1],o=Math.min(i/(r[1][0]-r[0][0]),s/(r[1][1]-r[0][1])),u=+e[0][0]+(i-o*(r[1][0]+r[0][0]))/2,a=+e[0][1]+(s-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([u,a])},n)}function xI(t,e,n){return aT(t,[[0,0],e],n)}function dI(t,e,n){return fI(t,function(r){var i=+e,s=i/(r[1][0]-r[0][0]),o=(i-s*(r[1][0]+r[0][0]))/2,u=-s*r[0][1];t.scale(150*s).translate([o,u])},n)}function hI(t,e,n){return fI(t,function(r){var i=+e,s=i/(r[1][1]-r[0][1]),o=-s*r[0][0],u=(i-s*(r[1][1]+r[0][1]))/2;t.scale(150*s).translate([o,u])},n)}var Cie=16,THe=nt(30*dt);function bie(t,e){return+e?OHe(t,e):RHe(t)}function RHe(t){return uT({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function OHe(t,e){function n(r,i,s,o,u,a,l,c,f,x,h,p,m,g){var y=l-r,E=c-i,A=y*y+E*E;if(A>4*e&&m--){var v=o+x,S=u+h,C=a+p,_=Ii(v*v+S*S+C*C),b=ds(C/=_),R=yt(yt(C)-1)<tt||yt(s-f)<tt?(s+f)/2:_o(S,v),O=t(R,b),L=O[0],M=O[1],q=L-r,W=M-i,B=E*q-y*W;(B*B/A>e||yt((y*q+E*W)/A-.5)>.3||o*x+u*h+a*p<THe)&&(n(r,i,s,o,u,a,L,M,R,v/=_,S/=_,C,m,g),g.point(L,M),n(L,M,R,v,S,C,l,c,f,x,h,p,m,g))}}return function(r){var i,s,o,u,a,l,c,f,x,h,p,m,g={point:y,lineStart:E,lineEnd:v,polygonStart:function(){r.polygonStart(),g.lineStart=S},polygonEnd:function(){r.polygonEnd(),g.lineStart=E}};function y(b,R){b=t(b,R),r.point(b[0],b[1])}function E(){f=NaN,g.point=A,r.lineStart()}function A(b,R){var O=hd([b,R]),L=t(b,R);n(f,x,c,h,p,m,f=L[0],x=L[1],c=b,h=O[0],p=O[1],m=O[2],Cie,r),r.point(f,x)}function v(){g.point=y,r.lineEnd()}function S(){E(),g.point=C,g.lineEnd=_}function C(b,R){A(i=b,R),s=f,o=x,u=h,a=p,l=m,g.point=A}function _(){n(f,x,c,h,p,m,s,o,i,u,a,l,Cie,r),g.lineEnd=v,v()}return g}}var NHe=uT({point:function(t,e){this.stream.point(t*dt,e*dt)}});function DHe(t){return uT({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function FHe(t,e,n,r,i){function s(o,u){return o*=r,u*=i,[e+t*o,n-t*u]}return s.invert=function(o,u){return[(o-e)/t*r,(n-u)/t*i]},s}function Tie(t,e,n,r,i,s){if(!s)return FHe(t,e,n,r,i);var o=nt(s),u=Ke(s),a=o*t,l=u*t,c=o/t,f=u/t,x=(u*n-o*e)/t,h=(u*e+o*n)/t;function p(m,g){return m*=r,g*=i,[a*m-l*g+e,n-l*m-a*g]}return p.invert=function(m,g){return[r*(c*m-f*g+x),i*(h-f*m-c*g)]},p}function Da(t){return Rie(function(){return t})()}function Rie(t){var e,n=150,r=480,i=250,s=0,o=0,u=0,a=0,l=0,c,f=0,x=1,h=1,p=null,m=nie,g=null,y,E,A,v=Dy,S=.5,C,_,b,R,O;function L(B){return b(B[0]*dt,B[1]*dt)}function M(B){return B=b.invert(B[0],B[1]),B&&[B[0]*Mn,B[1]*Mn]}L.stream=function(B){return R&&O===B?R:R=NHe(DHe(c)(m(C(v(O=B)))))},L.preclip=function(B){return arguments.length?(m=B,p=void 0,W()):m},L.postclip=function(B){return arguments.length?(v=B,g=y=E=A=null,W()):v},L.clipAngle=function(B){return arguments.length?(m=+B?xHe(p=B*dt):(p=null,nie),W()):p*Mn},L.clipExtent=function(B){return arguments.length?(v=B==null?(g=y=E=A=null,Dy):rie(g=+B[0][0],y=+B[0][1],E=+B[1][0],A=+B[1][1]),W()):g==null?null:[[g,y],[E,A]]},L.scale=function(B){return arguments.length?(n=+B,q()):n},L.translate=function(B){return arguments.length?(r=+B[0],i=+B[1],q()):[r,i]},L.center=function(B){return arguments.length?(s=B[0]%360*dt,o=B[1]%360*dt,q()):[s*Mn,o*Mn]},L.rotate=function(B){return arguments.length?(u=B[0]%360*dt,a=B[1]%360*dt,l=B.length>2?B[2]%360*dt:0,q()):[u*Mn,a*Mn,l*Mn]},L.angle=function(B){return arguments.length?(f=B%360*dt,q()):f*Mn},L.reflectX=function(B){return arguments.length?(x=B?-1:1,q()):x<0},L.reflectY=function(B){return arguments.length?(h=B?-1:1,q()):h<0},L.precision=function(B){return arguments.length?(C=bie(_,S=B*B),W()):Ii(S)},L.fitExtent=function(B,G){return aT(L,B,G)},L.fitSize=function(B,G){return xI(L,B,G)},L.fitWidth=function(B,G){return dI(L,B,G)},L.fitHeight=function(B,G){return hI(L,B,G)};function q(){var B=Tie(n,0,0,x,h,f).apply(null,e(s,o)),G=Tie(n,r-B[0],i-B[1],x,h,f);return c=Wre(u,a,l),_=XL(e,G),b=XL(c,_),C=bie(_,S),W()}function W(){return R=O=null,L}return function(){return e=t.apply(this,arguments),L.invert=e.invert&&M,q()}}function pI(t){var e=0,n=ht/3,r=Rie(t),i=r(e,n);return i.parallels=function(s){return arguments.length?r(e=s[0]*dt,n=s[1]*dt):[e*Mn,n*Mn]},i}function wHe(t){var e=nt(t);function n(r,i){return[r*e,Ke(i)/e]}return n.invert=function(r,i){return[r/e,ds(i*e)]},n}function LHe(t,e){var n=Ke(t),r=(n+Ke(e))/2;if(yt(r)<tt)return wHe(t);var i=1+n*(2*r-n),s=Ii(i)/r;function o(u,a){var l=Ii(i-2*r*Ke(a))/r;return[l*Ke(u*=r),s-l*nt(u)]}return o.invert=function(u,a){var l=s-a,c=_o(u,yt(l))*Co(l);return l*r<0&&(c-=ht*Co(u)*Co(l)),[c/r,ds((i-(u*u+l*l)*r*r)/(2*r))]},o}function lT(){return pI(LHe).scale(155.424).center([0,33.6442])}function Oie(){return lT().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function IHe(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function $He(){var t,e,n=Oie(),r,i=lT().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s,o=lT().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,a,l={point:function(x,h){a=[x,h]}};function c(x){var h=x[0],p=x[1];return a=null,r.point(h,p),a||(s.point(h,p),a)||(u.point(h,p),a)}c.invert=function(x){var h=n.scale(),p=n.translate(),m=(x[0]-p[0])/h,g=(x[1]-p[1])/h;return(g>=.12&&g<.234&&m>=-.425&&m<-.214?i:g>=.166&&g<.234&&m>=-.214&&m<-.115?o:n).invert(x)},c.stream=function(x){return t&&e===x?t:t=IHe([n.stream(e=x),i.stream(x),o.stream(x)])},c.precision=function(x){return arguments.length?(n.precision(x),i.precision(x),o.precision(x),f()):n.precision()},c.scale=function(x){return arguments.length?(n.scale(x),i.scale(x*.35),o.scale(x),c.translate(n.translate())):n.scale()},c.translate=function(x){if(!arguments.length)return n.translate();var h=n.scale(),p=+x[0],m=+x[1];return r=n.translate(x).clipExtent([[p-.455*h,m-.238*h],[p+.455*h,m+.238*h]]).stream(l),s=i.translate([p-.307*h,m+.201*h]).clipExtent([[p-.425*h+tt,m+.12*h+tt],[p-.214*h-tt,m+.234*h-tt]]).stream(l),u=o.translate([p-.205*h,m+.212*h]).clipExtent([[p-.214*h+tt,m+.166*h+tt],[p-.115*h-tt,m+.234*h-tt]]).stream(l),f()},c.fitExtent=function(x,h){return aT(c,x,h)},c.fitSize=function(x,h){return xI(c,x,h)},c.fitWidth=function(x,h){return dI(c,x,h)},c.fitHeight=function(x,h){return hI(c,x,h)};function f(){return t=e=null,c}return c.scale(1070)}function Nie(t){return function(e,n){var r=nt(e),i=nt(n),s=t(r*i);return s===1/0?[2,0]:[s*i*Ke(e),s*Ke(n)]}}function ky(t){return function(e,n){var r=Ii(e*e+n*n),i=t(r),s=Ke(i),o=nt(i);return[_o(e*s,r*o),ds(r&&n*s/r)]}}var Die=Nie(function(t){return Ii(2/(1+t))});Die.invert=ky(function(t){return 2*ds(t/2)});function BHe(){return Da(Die).scale(124.75).clipAngle(180-.001)}var Fie=Nie(function(t){return(t=Ore(t))&&t/Ke(t)});Fie.invert=ky(function(t){return t});function kHe(){return Da(Fie).scale(79.4188).clipAngle(180-.001)}function cT(t,e){return[t,kb(jL((wn+e)/2))]}cT.invert=function(t,e){return[t,2*x1(Rre(e))-wn]};function PHe(){return wie(cT).scale(961/Li)}function wie(t){var e=Da(t),n=e.center,r=e.scale,i=e.translate,s=e.clipExtent,o=null,u,a,l;e.scale=function(f){return arguments.length?(r(f),c()):r()},e.translate=function(f){return arguments.length?(i(f),c()):i()},e.center=function(f){return arguments.length?(n(f),c()):n()},e.clipExtent=function(f){return arguments.length?(f==null?o=u=a=l=null:(o=+f[0][0],u=+f[0][1],a=+f[1][0],l=+f[1][1]),c()):o==null?null:[[o,u],[a,l]]};function c(){var f=ht*r(),x=e(iHe(e.rotate()).invert([0,0]));return s(o==null?[[x[0]-f,x[1]-f],[x[0]+f,x[1]+f]]:t===cT?[[Math.max(x[0]-f,o),u],[Math.min(x[0]+f,a),l]]:[[o,Math.max(x[1]-f,u)],[a,Math.min(x[1]+f,l)]])}return c()}function fT(t){return jL((wn+t)/2)}function MHe(t,e){var n=nt(t),r=t===e?Ke(t):kb(n/nt(e))/kb(fT(e)/fT(t)),i=n*ML(fT(t),r)/r;if(!r)return cT;function s(o,u){i>0?u<-wn+tt&&(u=-wn+tt):u>wn-tt&&(u=wn-tt);var a=i/ML(fT(u),r);return[a*Ke(r*o),i-a*nt(r*o)]}return s.invert=function(o,u){var a=i-u,l=Co(r)*Ii(o*o+a*a),c=_o(o,yt(a))*Co(a);return a*r<0&&(c-=ht*Co(o)*Co(a)),[c/r,2*x1(ML(i/l,1/r))-wn]},s}function jHe(){return pI(MHe).scale(109.5).parallels([30,30])}function xT(t,e){return[t,e]}xT.invert=xT;function UHe(){return Da(xT).scale(152.63)}function qHe(t,e){var n=nt(t),r=t===e?Ke(t):(n-nt(e))/(e-t),i=n/r+t;if(yt(r)<tt)return xT;function s(o,u){var a=i-u,l=r*o;return[a*Ke(l),i-a*nt(l)]}return s.invert=function(o,u){var a=i-u,l=_o(o,yt(a))*Co(a);return a*r<0&&(l-=ht*Co(o)*Co(a)),[l/r,i-Co(r)*Ii(o*o+a*a)]},s}function HHe(){return pI(qHe).scale(131.154).center([0,13.9389])}var Py=1.340264,My=-.081106,jy=893e-6,Uy=.003796,dT=Ii(3)/2,zHe=12;function Lie(t,e){var n=ds(dT*Ke(e)),r=n*n,i=r*r*r;return[t*nt(n)/(dT*(Py+3*My*r+i*(7*jy+9*Uy*r))),n*(Py+My*r+i*(jy+Uy*r))]}Lie.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,s=0,o,u,a;s<zHe&&(u=n*(Py+My*r+i*(jy+Uy*r))-e,a=Py+3*My*r+i*(7*jy+9*Uy*r),n-=o=u/a,r=n*n,i=r*r*r,!(yt(o)<Ib));++s);return[dT*t*(Py+3*My*r+i*(7*jy+9*Uy*r))/nt(n),ds(Ke(n)/dT)]};function QHe(){return Da(Lie).scale(177.158)}function Iie(t,e){var n=nt(e),r=nt(t)*n;return[n*Ke(t)/r,Ke(e)/r]}Iie.invert=ky(x1);function GHe(){return Da(Iie).scale(144.049).clipAngle(60)}function WHe(){var t=1,e=0,n=0,r=1,i=1,s=0,o,u,a=null,l,c,f,x=1,h=1,p=uT({point:function(v,S){var C=A([v,S]);this.stream.point(C[0],C[1])}}),m=Dy,g,y;function E(){return x=t*r,h=t*i,g=y=null,A}function A(v){var S=v[0]*x,C=v[1]*h;if(s){var _=C*o-S*u;S=S*o+C*u,C=_}return[S+e,C+n]}return A.invert=function(v){var S=v[0]-e,C=v[1]-n;if(s){var _=C*o+S*u;S=S*o-C*u,C=_}return[S/x,C/h]},A.stream=function(v){return g&&y===v?g:g=p(m(y=v))},A.postclip=function(v){return arguments.length?(m=v,a=l=c=f=null,E()):m},A.clipExtent=function(v){return arguments.length?(m=v==null?(a=l=c=f=null,Dy):rie(a=+v[0][0],l=+v[0][1],c=+v[1][0],f=+v[1][1]),E()):a==null?null:[[a,l],[c,f]]},A.scale=function(v){return arguments.length?(t=+v,E()):t},A.translate=function(v){return arguments.length?(e=+v[0],n=+v[1],E()):[e,n]},A.angle=function(v){return arguments.length?(s=v%360*dt,u=Ke(s),o=nt(s),E()):s*Mn},A.reflectX=function(v){return arguments.length?(r=v?-1:1,E()):r<0},A.reflectY=function(v){return arguments.length?(i=v?-1:1,E()):i<0},A.fitExtent=function(v,S){return aT(A,v,S)},A.fitSize=function(v,S){return xI(A,v,S)},A.fitWidth=function(v,S){return dI(A,v,S)},A.fitHeight=function(v,S){return hI(A,v,S)},A}function $ie(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}$ie.invert=function(t,e){var n=e,r=25,i;do{var s=n*n,o=s*s;n-=i=(n*(1.007226+s*(.015085+o*(-.044475+.028874*s-.005916*o)))-e)/(1.007226+s*(.015085*3+o*(-.044475*7+.028874*9*s-.005916*11*o)))}while(yt(i)>tt&&--r>0);return[t/(.8707+(s=n*n)*(-.131979+s*(-.013791+s*s*s*(.003971-.001529*s)))),n]};function VHe(){return Da($ie).scale(175.295)}function Bie(t,e){return[nt(e)*Ke(t),Ke(e)]}Bie.invert=ky(ds);function YHe(){return Da(Bie).scale(249.5).clipAngle(90+tt)}function kie(t,e){var n=nt(e),r=1+nt(t)*n;return[n*Ke(t)/r,Ke(e)/r]}kie.invert=ky(function(t){return 2*x1(t)});function KHe(){return Da(kie).scale(250).clipAngle(142)}function Pie(t,e){return[kb(jL((wn+e)/2)),-t]}Pie.invert=function(t,e){return[-e,2*x1(Rre(t))-wn]};function XHe(){var t=wie(Pie),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}var JHe=Math.abs,gI=Math.cos,hT=Math.sin,ZHe=1e-6,Mie=Math.PI,mI=Mie/2,jie=eze(2);function Uie(t){return t>1?mI:t<-1?-mI:Math.asin(t)}function eze(t){return t>0?Math.sqrt(t):0}function tze(t,e){var n=t*hT(e),r=30,i;do e-=i=(e+hT(e)-n)/(1+gI(e));while(JHe(i)>ZHe&&--r>0);return e/2}function nze(t,e,n){function r(i,s){return[t*i*gI(s=tze(n,s)),e*hT(s)]}return r.invert=function(i,s){return s=Uie(s/e),[i/(t*gI(s)),Uie((2*s+hT(2*s))/n)]},r}var rze=nze(jie/mI,jie,Mie);function ize(){return Da(rze).scale(169.529)}const sze=_ie(),yI=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function oze(t,e){return function n(){const r=e();return r.type=t,r.path=_ie().projection(r),r.copy=r.copy||function(){const i=n();return yI.forEach(s=>{r[s]&&i[s](r[s]())}),i.path.pointRadius(r.path.pointRadius()),i},Zee(r)}}function qie(t,e){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(pT[t]=oze(t,e),this):pT[t]||null}function Hie(t){return t&&t.path||sze}const pT={albers:Oie,albersusa:$He,azimuthalequalarea:BHe,azimuthalequidistant:kHe,conicconformal:jHe,conicequalarea:lT,conicequidistant:HHe,equalEarth:QHe,equirectangular:UHe,gnomonic:GHe,identity:WHe,mercator:PHe,mollweide:ize,naturalEarth1:VHe,orthographic:YHe,stereographic:KHe,transversemercator:XHe};for(const t in pT)qie(t,pT[t]);function uze(){}const Zl=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function zie(){var t=1,e=1,n=u;function r(a,l){return l.map(c=>i(a,c))}function i(a,l){var c=[],f=[];return s(a,l,x=>{n(x,a,l),aze(x)>0?c.push([x]):f.push(x)}),f.forEach(x=>{for(var h=0,p=c.length,m;h<p;++h)if(lze((m=c[h])[0],x)!==-1){m.push(x);return}}),{type:"MultiPolygon",value:l,coordinates:c}}function s(a,l,c){var f=new Array,x=new Array,h,p,m,g,y,E;for(h=p=-1,g=a[0]>=l,Zl[g<<1].forEach(A);++h<t-1;)m=g,g=a[h+1]>=l,Zl[m|g<<1].forEach(A);for(Zl[g<<0].forEach(A);++p<e-1;){for(h=-1,g=a[p*t+t]>=l,y=a[p*t]>=l,Zl[g<<1|y<<2].forEach(A);++h<t-1;)m=g,g=a[p*t+t+h+1]>=l,E=y,y=a[p*t+h+1]>=l,Zl[m|g<<1|y<<2|E<<3].forEach(A);Zl[g|y<<3].forEach(A)}for(h=-1,y=a[p*t]>=l,Zl[y<<2].forEach(A);++h<t-1;)E=y,y=a[p*t+h+1]>=l,Zl[y<<2|E<<3].forEach(A);Zl[y<<3].forEach(A);function A(v){var S=[v[0][0]+h,v[0][1]+p],C=[v[1][0]+h,v[1][1]+p],_=o(S),b=o(C),R,O;(R=x[_])?(O=f[b])?(delete x[R.end],delete f[O.start],R===O?(R.ring.push(C),c(R.ring)):f[R.start]=x[O.end]={start:R.start,end:O.end,ring:R.ring.concat(O.ring)}):(delete x[R.end],R.ring.push(C),x[R.end=b]=R):(R=f[b])?(O=x[_])?(delete f[R.start],delete x[O.end],R===O?(R.ring.push(C),c(R.ring)):f[O.start]=x[R.end]={start:O.start,end:R.end,ring:O.ring.concat(R.ring)}):(delete f[R.start],R.ring.unshift(S),f[R.start=_]=R):f[_]=x[b]={start:_,end:b,ring:[S,C]}}}function o(a){return a[0]*2+a[1]*(t+1)*4}function u(a,l,c){a.forEach(f=>{var x=f[0],h=f[1],p=x|0,m=h|0,g,y=l[m*t+p];x>0&&x<t&&p===x&&(g=l[m*t+p-1],f[0]=x+(c-g)/(y-g)-.5),h>0&&h<e&&m===h&&(g=l[(m-1)*t+p],f[1]=h+(c-g)/(y-g)-.5)})}return r.contour=i,r.size=function(a){if(!arguments.length)return[t,e];var l=Math.floor(a[0]),c=Math.floor(a[1]);return l>=0&&c>=0||Se("invalid size"),t=l,e=c,r},r.smooth=function(a){return arguments.length?(n=a?u:uze,r):n===u},r}function aze(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}function lze(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=cze(t,e[n]))return i;return 0}function cze(t,e){for(var n=e[0],r=e[1],i=-1,s=0,o=t.length,u=o-1;s<o;u=s++){var a=t[s],l=a[0],c=a[1],f=t[u],x=f[0],h=f[1];if(fze(a,f,e))return 0;c>r!=h>r&&n<(x-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function fze(t,e,n){var r;return xze(t,e,n)&&dze(t[r=+(t[0]===e[0])],n[r],e[r])}function xze(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function dze(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function Qie(t,e,n){return function(r){var i=vl(r),s=n?Math.min(i[0],0):i[0],o=i[1],u=o-s,a=e?gc(s,o,t):u/(t+1);return Ps(s+a,o,a)}}function EI(t){pe.call(this,null,t)}EI.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},Fe(EI,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=t.field||Si,s=zie().smooth(t.smooth!==!1),o=t.thresholds||hze(r,i,t),u=t.as===null?null:t.as||"contour",a=[];return r.forEach(l=>{const c=i(l),f=s.size([c.width,c.height])(c.values,_e(o)?o:o(c.values));pze(f,c,l,t),f.forEach(x=>{a.push(SC(l,$t(u!=null?{[u]:x}:x)))})}),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function hze(t,e,n){const r=Qie(n.levels||10,n.nice,n.zero!==!1);return n.resolve!=="shared"?r:r(t.map(i=>Ux(e(i).values)))}function pze(t,e,n,r){let i=r.scale||e.scale,s=r.translate||e.translate;if(ct(i)&&(i=i(n,r)),ct(s)&&(s=s(n,r)),(i===1||i==null)&&!s)return;const o=(nn(i)?i:i[0])||1,u=(nn(i)?i:i[1])||1,a=s&&s[0]||0,l=s&&s[1]||0;t.forEach(Gie(e,o,u,a,l))}function Gie(t,e,n,r,i){const s=t.x1||0,o=t.y1||0,u=e*n<0;function a(f){f.forEach(l)}function l(f){u&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-s)*e+r,f[1]=(f[1]-o)*n+i}return function(f){return f.coordinates.forEach(a),f}}function Wie(t,e,n){const r=t>=0?t:TJ(e,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function AI(t){return ct(t)?t:Ci(+t)}function Vie(){var t=a=>a[0],e=a=>a[1],n=g3,r=[-1,-1],i=960,s=500,o=2;function u(a,l){const c=Wie(r[0],a,t)>>o,f=Wie(r[1],a,e)>>o,x=c?c+2:0,h=f?f+2:0,p=2*x+(i>>o),m=2*h+(s>>o),g=new Float32Array(p*m),y=new Float32Array(p*m);let E=g;a.forEach(v=>{const S=x+(+t(v)>>o),C=h+(+e(v)>>o);S>=0&&S<p&&C>=0&&C<m&&(g[S+C*p]+=+n(v))}),c>0&&f>0?(m1(p,m,g,y,c),y1(p,m,y,g,f),m1(p,m,g,y,c),y1(p,m,y,g,f),m1(p,m,g,y,c),y1(p,m,y,g,f)):c>0?(m1(p,m,g,y,c),m1(p,m,y,g,c),m1(p,m,g,y,c),E=y):f>0&&(y1(p,m,g,y,f),y1(p,m,y,g,f),y1(p,m,g,y,f),E=y);const A=l?Math.pow(2,-2*o):1/cX(E);for(let v=0,S=p*m;v<S;++v)E[v]*=A;return{values:E,scale:1<<o,width:p,height:m,x1:x,y1:h,x2:x+(i>>o),y2:h+(s>>o)}}return u.x=function(a){return arguments.length?(t=AI(a),u):t},u.y=function(a){return arguments.length?(e=AI(a),u):e},u.weight=function(a){return arguments.length?(n=AI(a),u):n},u.size=function(a){if(!arguments.length)return[i,s];var l=+a[0],c=+a[1];return l>=0&&c>=0||Se("invalid size"),i=l,s=c,u},u.cellSize=function(a){return arguments.length?((a=+a)>=1||Se("invalid cell size"),o=Math.floor(Math.log(a)/Math.LN2),u):1<<o},u.bandwidth=function(a){return arguments.length?(a=Pe(a),a.length===1&&(a=[+a[0],+a[0]]),a.length!==2&&Se("invalid bandwidth"),r=a,u):r},u}function m1(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<e;++o)for(let u=0,a=0;u<t+i;++u)u<t&&(a+=n[u+o*t]),u>=i&&(u>=s&&(a-=n[u-s+o*t]),r[u-i+o*t]=a/Math.min(u+1,t-1+s-u,s))}function y1(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<t;++o)for(let u=0,a=0;u<e+i;++u)u<e&&(a+=n[o+u*t]),u>=i&&(u>=s&&(a-=n[o+(u-s)*t]),r[o+(u-i)*t]=a/Math.min(u+1,e-1+s-u,s))}function vI(t){pe.call(this,null,t)}vI.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const gze=["x","y","weight","size","cellSize","bandwidth"];function Yie(t,e){return gze.forEach(n=>e[n]!=null?t[n](e[n]):0),t}Fe(vI,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=mze(r,t.groupby),s=(t.groupby||[]).map(Pn),o=Yie(Vie(),t),u=t.as||"grid",a=[];function l(c,f){for(let x=0;x<s.length;++x)c[s[x]]=f[x];return c}return a=i.map(c=>$t(l({[u]:o(c,t.counts)},c.dims))),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function mze(t,e){var n=[],r=c=>c(u),i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function SI(t){pe.call(this,null,t)}SI.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},Fe(SI,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=zie().smooth(t.smooth!==!1),i=t.values,s=t.thresholds||Qie(t.count||10,t.nice,!!i),o=t.size,u,a;return i||(i=e.materialize(e.SOURCE).source,u=Yie(Vie(),t)(i,!0),a=Gie(u,u.scale||1,u.scale||1,0,0),o=[u.width,u.height],i=u.values),s=_e(s)?s:s(i),i=r.size(o)(i,s),a&&i.forEach(a),this.value&&(n.rem=this.value),this.value=n.source=n.add=(i||[]).map($t),n}});const _I="Feature",CI="FeatureCollection",yze="MultiPoint";function bI(t){pe.call(this,null,t)}bI.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},Fe(bI,pe,{transform(t,e){var n=this._features,r=this._points,i=t.fields,s=i&&i[0],o=i&&i[1],u=t.geojson||!i&&Si,a=e.ADD,l;l=t.modified()||e.changed(e.REM)||e.modified(vi(u))||s&&e.modified(vi(s))||o&&e.modified(vi(o)),(!this.value||l)&&(a=e.SOURCE,this._features=n=[],this._points=r=[]),u&&e.visit(a,c=>n.push(u(c))),s&&o&&(e.visit(a,c=>{var f=s(c),x=o(c);f!=null&&x!=null&&(f=+f)===f&&(x=+x)===x&&r.push([f,x])}),n=n.concat({type:_I,geometry:{type:yze,coordinates:r}})),this.value={type:CI,features:n}}});function TI(t){pe.call(this,null,t)}TI.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},Fe(TI,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.field||Si,s=t.as||"path",o=n.SOURCE;!r||t.modified()?(this.value=r=Hie(t.projection),n.materialize().reflow()):o=i===Si||e.modified(i.fields)?n.ADD_MOD:n.ADD;const u=Eze(r,t.pointRadius);return n.visit(o,a=>a[s]=r(i(a))),r.pointRadius(u),n.modifies(s)}});function Eze(t,e){const n=t.pointRadius();return t.context(null),e!=null&&t.pointRadius(e),n}function RI(t){pe.call(this,null,t)}RI.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},Fe(RI,pe,{transform(t,e){var n=t.projection,r=t.fields[0],i=t.fields[1],s=t.as||["x","y"],o=s[0],u=s[1],a;function l(c){const f=n([r(c),i(c)]);f?(c[o]=f[0],c[u]=f[1]):(c[o]=void 0,c[u]=void 0)}return t.modified()?e=e.materialize().reflow(!0).visit(e.SOURCE,l):(a=e.modified(r.fields)||e.modified(i.fields),e.visit(a?e.ADD_MOD:e.ADD,l)),e.modifies(s)}});function OI(t){pe.call(this,null,t)}OI.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},Fe(OI,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.as||"shape",s=n.ADD;return(!r||t.modified())&&(this.value=r=Aze(Hie(t.projection),t.field||Bs("datum"),t.pointRadius),n.materialize().reflow(),s=n.SOURCE),n.visit(s,o=>o[i]=r),n.modifies(i)}});function Aze(t,e,n){const r=n==null?i=>t(e(i)):i=>{var s=t.pointRadius(),o=t.pointRadius(n)(e(i));return t.pointRadius(s),o};return r.context=i=>(t.context(i),r),r}function NI(t){pe.call(this,[],t),this.generator=hHe()}NI.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},Fe(NI,pe,{transform(t,e){var n=this.value,r=this.generator,i;if(!n.length||t.modified())for(const s in t)ct(r[s])&&r[s](t[s]);return i=r(),n.length?e.mod.push(xJ(n[0],i)):e.add.push($t(i)),n[0]=i,e}});function DI(t){pe.call(this,null,t)}DI.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},Fe(DI,pe,{transform(t,e){if(!e.changed()&&!t.modified())return e.StopPropagation;var n=e.materialize(e.SOURCE).source,r=t.resolve==="shared",i=t.field||Si,s=Sze(t.opacity,t),o=vze(t.color,t),u=t.as||"image",a={$x:0,$y:0,$value:0,$max:r?Ux(n.map(l=>Ux(i(l).values))):0};return n.forEach(l=>{const c=i(l),f=ft({},l,a);r||(f.$max=Ux(c.values||[])),l[u]=_ze(c,f,o.dep?o:Ci(o(f)),s.dep?s:Ci(s(f)))}),e.reflow(!0).modifies(u)}});function vze(t,e){let n;return ct(t)?(n=r=>bc(t(r,e)),n.dep=Kie(t)):n=Ci(bc(t||"#888")),n}function Sze(t,e){let n;return ct(t)?(n=r=>t(r,e),n.dep=Kie(t)):t?n=Ci(t):(n=r=>r.$value/r.$max||0,n.dep=!0),n}function Kie(t){if(!ct(t))return!1;const e=ia(vi(t));return e.$x||e.$y||e.$value||e.$max}function _ze(t,e,n,r){const i=t.width,s=t.height,o=t.x1||0,u=t.y1||0,a=t.x2||i,l=t.y2||s,c=t.values,f=c?g=>c[g]:Dx,x=Sc(a-o,l-u),h=x.getContext("2d"),p=h.getImageData(0,0,a-o,l-u),m=p.data;for(let g=u,y=0;g<l;++g){e.$y=g-u;for(let E=o,A=g*i;E<a;++E,y+=4){e.$x=E-o,e.$value=f(E+A);const v=n(e);m[y+0]=v.r,m[y+1]=v.g,m[y+2]=v.b,m[y+3]=~~(255*r(e))}}return h.putImageData(p,0,0),x}function Xie(t){pe.call(this,null,t),this.modified(!0)}Fe(Xie,pe,{transform(t,e){let n=this.value;return!n||t.modified("type")?(this.value=n=bze(t.type),yI.forEach(r=>{t[r]!=null&&Jie(n,r,t[r])})):yI.forEach(r=>{t.modified(r)&&Jie(n,r,t[r])}),t.pointRadius!=null&&n.path.pointRadius(t.pointRadius),t.fit&&Cze(n,t),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function Cze(t,e){const n=Tze(e.fit);e.extent?t.fitExtent(e.extent,n):e.size&&t.fitSize(e.size,n)}function bze(t){const e=qie((t||"mercator").toLowerCase());return e||Se("Unrecognized projection type: "+t),e()}function Jie(t,e,n){ct(t[e])&&t[e](n)}function Tze(t){return t=Pe(t),t.length===1?t[0]:{type:CI,features:t.reduce((e,n)=>e.concat(Rze(n)),[])}}function Rze(t){return t.type===CI?t.features:Pe(t).filter(e=>e!=null).map(e=>e.type===_I?e:{type:_I,geometry:e})}const Oze=Object.freeze(Object.defineProperty({__proto__:null,contour:SI,geojson:bI,geopath:TI,geopoint:RI,geoshape:OI,graticule:NI,heatmap:DI,isocontour:EI,kde2d:vI,projection:Xie},Symbol.toStringTag,{value:"Module"}));function Nze(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var s,o=n.length,u,a=0,l=0;for(s=0;s<o;++s)u=n[s],a+=u.x,l+=u.y;for(a=(a/o-t)*r,l=(l/o-e)*r,s=0;s<o;++s)u=n[s],u.x-=a,u.y-=l}return i.initialize=function(s){n=s},i.x=function(s){return arguments.length?(t=+s,i):t},i.y=function(s){return arguments.length?(e=+s,i):e},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function Dze(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return Zie(this.cover(e,n),e,n,t)}function Zie(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,s=t._root,o={data:r},u=t._x0,a=t._y0,l=t._x1,c=t._y1,f,x,h,p,m,g,y,E;if(!s)return t._root=o,t;for(;s.length;)if((m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x,i=s,!(s=s[y=g<<1|m]))return i[y]=o,t;if(h=+t._x.call(null,s.data),p=+t._y.call(null,s.data),e===h&&n===p)return o.next=s,i?i[y]=o:t._root=o,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x;while((y=g<<1|m)===(E=(p>=x)<<1|h>=f));return i[E]=s,i[y]=o,t}function Fze(t){var e,n,r=t.length,i,s,o=new Array(r),u=new Array(r),a=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=i,u[n]=s,i<a&&(a=i),i>c&&(c=i),s<l&&(l=s),s>f&&(f=s));if(a>c||l>f)return this;for(this.cover(a,l).cover(c,f),n=0;n<r;++n)Zie(this,o[n],u[n],t[n]);return this}function wze(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,s=(r=Math.floor(e))+1;else{for(var o=i-n||1,u=this._root,a,l;n>t||t>=i||r>e||e>=s;)switch(l=(e<r)<<1|t<n,a=new Array(4),a[l]=u,u=a,o*=2,l){case 0:i=n+o,s=r+o;break;case 1:n=i-o,s=r+o;break;case 2:i=n+o,r=s-o;break;case 3:n=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=i,this._y1=s,this}function Lze(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function Ize(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Pi(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function $ze(t,e,n){var r,i=this._x0,s=this._y0,o,u,a,l,c=this._x1,f=this._y1,x=[],h=this._root,p,m;for(h&&x.push(new Pi(h,i,s,c,f)),n==null?n=1/0:(i=t-n,s=e-n,c=t+n,f=e+n,n*=n);p=x.pop();)if(!(!(h=p.node)||(o=p.x0)>c||(u=p.y0)>f||(a=p.x1)<i||(l=p.y1)<s))if(h.length){var g=(o+a)/2,y=(u+l)/2;x.push(new Pi(h[3],g,y,a,l),new Pi(h[2],o,y,g,l),new Pi(h[1],g,u,a,y),new Pi(h[0],o,u,g,y)),(m=(e>=y)<<1|t>=g)&&(p=x[x.length-1],x[x.length-1]=x[x.length-1-m],x[x.length-1-m]=p)}else{var E=t-+this._x.call(null,h.data),A=e-+this._y.call(null,h.data),v=E*E+A*A;if(v<n){var S=Math.sqrt(n=v);i=t-S,s=e-S,c=t+S,f=e+S,r=h.data}}return r}function Bze(t){if(isNaN(c=+this._x.call(null,t))||isNaN(f=+this._y.call(null,t)))return this;var e,n=this._root,r,i,s,o=this._x0,u=this._y0,a=this._x1,l=this._y1,c,f,x,h,p,m,g,y;if(!n)return this;if(n.length)for(;;){if((p=c>=(x=(o+a)/2))?o=x:a=x,(m=f>=(h=(u+l)/2))?u=h:l=h,e=n,!(n=n[g=m<<1|p]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(s=n.next)&&delete n.next,i?(s?i.next=s:delete i.next,this):e?(s?e[g]=s:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=s,this)}function kze(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function Pze(){return this._root}function Mze(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function jze(t){var e=[],n,r=this._root,i,s,o,u,a;for(r&&e.push(new Pi(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,s=n.x0,o=n.y0,u=n.x1,a=n.y1)&&r.length){var l=(s+u)/2,c=(o+a)/2;(i=r[3])&&e.push(new Pi(i,l,c,u,a)),(i=r[2])&&e.push(new Pi(i,s,c,l,a)),(i=r[1])&&e.push(new Pi(i,l,o,u,c)),(i=r[0])&&e.push(new Pi(i,s,o,l,c))}return this}function Uze(t){var e=[],n=[],r;for(this._root&&e.push(new Pi(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var s,o=r.x0,u=r.y0,a=r.x1,l=r.y1,c=(o+a)/2,f=(u+l)/2;(s=i[0])&&e.push(new Pi(s,o,u,c,f)),(s=i[1])&&e.push(new Pi(s,c,u,a,f)),(s=i[2])&&e.push(new Pi(s,o,f,c,l)),(s=i[3])&&e.push(new Pi(s,c,f,a,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function qze(t){return t[0]}function Hze(t){return arguments.length?(this._x=t,this):this._x}function zze(t){return t[1]}function Qze(t){return arguments.length?(this._y=t,this):this._y}function FI(t,e,n){var r=new wI(e??qze,n??zze,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function wI(t,e,n,r,i,s){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function ese(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var Mi=FI.prototype=wI.prototype;Mi.copy=function(){var t=new wI(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=ese(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=ese(r));return t},Mi.add=Dze,Mi.addAll=Fze,Mi.cover=wze,Mi.data=Lze,Mi.extent=Ize,Mi.find=$ze,Mi.remove=Bze,Mi.removeAll=kze,Mi.root=Pze,Mi.size=Mze,Mi.visit=jze,Mi.visitAfter=Uze,Mi.x=Hze,Mi.y=Qze;function ji(t){return function(){return t}}function Mc(t){return(t()-.5)*1e-6}function Gze(t){return t.x+t.vx}function Wze(t){return t.y+t.vy}function Vze(t){var e,n,r,i=1,s=1;typeof t!="function"&&(t=ji(t==null?1:+t));function o(){for(var l,c=e.length,f,x,h,p,m,g,y=0;y<s;++y)for(f=FI(e,Gze,Wze).visitAfter(u),l=0;l<c;++l)x=e[l],m=n[x.index],g=m*m,h=x.x+x.vx,p=x.y+x.vy,f.visit(E);function E(A,v,S,C,_){var b=A.data,R=A.r,O=m+R;if(b){if(b.index>x.index){var L=h-b.x-b.vx,M=p-b.y-b.vy,q=L*L+M*M;q<O*O&&(L===0&&(L=Mc(r),q+=L*L),M===0&&(M=Mc(r),q+=M*M),q=(O-(q=Math.sqrt(q)))/q*i,x.vx+=(L*=q)*(O=(R*=R)/(g+R)),x.vy+=(M*=q)*O,b.vx-=L*(O=1-O),b.vy-=M*O)}return}return v>h+O||C<h-O||S>p+O||_<p-O}}function u(l){if(l.data)return l.r=n[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function a(){if(e){var l,c=e.length,f;for(n=new Array(c),l=0;l<c;++l)f=e[l],n[f.index]=+t(f,l,e)}}return o.initialize=function(l,c){e=l,r=c,a()},o.iterations=function(l){return arguments.length?(s=+l,o):s},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:ji(+l),a(),o):t},o}function Yze(t){return t.index}function tse(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Kze(t){var e=Yze,n=f,r,i=ji(30),s,o,u,a,l,c=1;t==null&&(t=[]);function f(g){return 1/Math.min(u[g.source.index],u[g.target.index])}function x(g){for(var y=0,E=t.length;y<c;++y)for(var A=0,v,S,C,_,b,R,O;A<E;++A)v=t[A],S=v.source,C=v.target,_=C.x+C.vx-S.x-S.vx||Mc(l),b=C.y+C.vy-S.y-S.vy||Mc(l),R=Math.sqrt(_*_+b*b),R=(R-s[A])/R*g*r[A],_*=R,b*=R,C.vx-=_*(O=a[A]),C.vy-=b*O,S.vx+=_*(O=1-O),S.vy+=b*O}function h(){if(o){var g,y=o.length,E=t.length,A=new Map(o.map((S,C)=>[e(S,C,o),S])),v;for(g=0,u=new Array(y);g<E;++g)v=t[g],v.index=g,typeof v.source!="object"&&(v.source=tse(A,v.source)),typeof v.target!="object"&&(v.target=tse(A,v.target)),u[v.source.index]=(u[v.source.index]||0)+1,u[v.target.index]=(u[v.target.index]||0)+1;for(g=0,a=new Array(E);g<E;++g)v=t[g],a[g]=u[v.source.index]/(u[v.source.index]+u[v.target.index]);r=new Array(E),p(),s=new Array(E),m()}}function p(){if(o)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function m(){if(o)for(var g=0,y=t.length;g<y;++g)s[g]=+i(t[g],g,t)}return x.initialize=function(g,y){o=g,l=y,h()},x.links=function(g){return arguments.length?(t=g,h(),x):t},x.id=function(g){return arguments.length?(e=g,x):e},x.iterations=function(g){return arguments.length?(c=+g,x):c},x.strength=function(g){return arguments.length?(n=typeof g=="function"?g:ji(+g),p(),x):n},x.distance=function(g){return arguments.length?(i=typeof g=="function"?g:ji(+g),m(),x):i},x}var Xze={value:()=>{}};function nse(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new gT(n)}function gT(t){this._=t}function Jze(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}gT.prototype=nse.prototype={constructor:gT,on:function(t,e){var n=this._,r=Jze(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=Zze(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=r[s]).type)n[i]=rse(n[i],t.name,e);else if(e==null)for(i in n)n[i]=rse(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new gT(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,s;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],r=0,i=s.length;r<i;++r)s[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,s=r.length;i<s;++i)r[i].value.apply(e,n)}};function Zze(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function rse(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Xze,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var E1=0,qy=0,Hy=0,ise=1e3,mT,zy,yT=0,md=0,ET=0,Qy=typeof performance=="object"&&performance.now?performance:Date,sse=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function LI(){return md||(sse(eQe),md=Qy.now()+ET)}function eQe(){md=0}function AT(){this._call=this._time=this._next=null}AT.prototype=ose.prototype={constructor:AT,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?LI():+n)+(e==null?0:+e),!this._next&&zy!==this&&(zy?zy._next=this:mT=this,zy=this),this._call=t,this._time=n,II()},stop:function(){this._call&&(this._call=null,this._time=1/0,II())}};function ose(t,e,n){var r=new AT;return r.restart(t,e,n),r}function tQe(){LI(),++E1;for(var t=mT,e;t;)(e=md-t._time)>=0&&t._call.call(void 0,e),t=t._next;--E1}function use(){md=(yT=Qy.now())+ET,E1=qy=0;try{tQe()}finally{E1=0,rQe(),md=0}}function nQe(){var t=Qy.now(),e=t-yT;e>ise&&(ET-=e,yT=t)}function rQe(){for(var t,e=mT,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:mT=n);zy=t,II(r)}function II(t){if(!E1){qy&&(qy=clearTimeout(qy));var e=t-md;e>24?(t<1/0&&(qy=setTimeout(use,t-Qy.now()-ET)),Hy&&(Hy=clearInterval(Hy))):(Hy||(yT=Qy.now(),Hy=setInterval(nQe,ise)),E1=1,sse(use))}}function iQe(t,e,n){var r=new AT,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(s,o,u){o=+o,u=u==null?LI():+u,r._restart(function a(l){l+=i,r._restart(a,i+=o,u),s(l)},o,u)},r.restart(t,e,n),r)}const sQe=1664525,oQe=1013904223,ase=4294967296;function uQe(){let t=1;return()=>(t=(sQe*t+oQe)%ase)/ase}function aQe(t){return t.x}function lQe(t){return t.y}var cQe=10,fQe=Math.PI*(3-Math.sqrt(5));function xQe(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,u=new Map,a=ose(f),l=nse("tick","end"),c=uQe();t==null&&(t=[]);function f(){x(),l.call("tick",e),n<r&&(a.stop(),l.call("end",e))}function x(m){var g,y=t.length,E;m===void 0&&(m=1);for(var A=0;A<m;++A)for(n+=(s-n)*i,u.forEach(function(v){v(n)}),g=0;g<y;++g)E=t[g],E.fx==null?E.x+=E.vx*=o:(E.x=E.fx,E.vx=0),E.fy==null?E.y+=E.vy*=o:(E.y=E.fy,E.vy=0);return e}function h(){for(var m=0,g=t.length,y;m<g;++m){if(y=t[m],y.index=m,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var E=cQe*Math.sqrt(.5+m),A=m*fQe;y.x=E*Math.cos(A),y.y=E*Math.sin(A)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function p(m){return m.initialize&&m.initialize(t,c),m}return h(),e={tick:x,restart:function(){return a.restart(f),e},stop:function(){return a.stop(),e},nodes:function(m){return arguments.length?(t=m,h(),u.forEach(p),e):t},alpha:function(m){return arguments.length?(n=+m,e):n},alphaMin:function(m){return arguments.length?(r=+m,e):r},alphaDecay:function(m){return arguments.length?(i=+m,e):+i},alphaTarget:function(m){return arguments.length?(s=+m,e):s},velocityDecay:function(m){return arguments.length?(o=1-m,e):1-o},randomSource:function(m){return arguments.length?(c=m,u.forEach(p),e):c},force:function(m,g){return arguments.length>1?(g==null?u.delete(m):u.set(m,p(g)),e):u.get(m)},find:function(m,g,y){var E=0,A=t.length,v,S,C,_,b;for(y==null?y=1/0:y*=y,E=0;E<A;++E)_=t[E],v=m-_.x,S=g-_.y,C=v*v+S*S,C<y&&(b=_,y=C);return b},on:function(m,g){return arguments.length>1?(l.on(m,g),e):l.on(m)}}}function dQe(){var t,e,n,r,i=ji(-30),s,o=1,u=1/0,a=.81;function l(h){var p,m=t.length,g=FI(t,aQe,lQe).visitAfter(f);for(r=h,p=0;p<m;++p)e=t[p],g.visit(x)}function c(){if(t){var h,p=t.length,m;for(s=new Array(p),h=0;h<p;++h)m=t[h],s[m.index]=+i(m,h,t)}}function f(h){var p=0,m,g,y=0,E,A,v;if(h.length){for(E=A=v=0;v<4;++v)(m=h[v])&&(g=Math.abs(m.value))&&(p+=m.value,y+=g,E+=g*m.x,A+=g*m.y);h.x=E/y,h.y=A/y}else{m=h,m.x=m.data.x,m.y=m.data.y;do p+=s[m.data.index];while(m=m.next)}h.value=p}function x(h,p,m,g){if(!h.value)return!0;var y=h.x-e.x,E=h.y-e.y,A=g-p,v=y*y+E*E;if(A*A/a<v)return v<u&&(y===0&&(y=Mc(n),v+=y*y),E===0&&(E=Mc(n),v+=E*E),v<o&&(v=Math.sqrt(o*v)),e.vx+=y*h.value*r/v,e.vy+=E*h.value*r/v),!0;if(h.length||v>=u)return;(h.data!==e||h.next)&&(y===0&&(y=Mc(n),v+=y*y),E===0&&(E=Mc(n),v+=E*E),v<o&&(v=Math.sqrt(o*v)));do h.data!==e&&(A=s[h.data.index]*r/v,e.vx+=y*A,e.vy+=E*A);while(h=h.next)}return l.initialize=function(h,p){t=h,n=p,c()},l.strength=function(h){return arguments.length?(i=typeof h=="function"?h:ji(+h),c(),l):i},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l.theta=function(h){return arguments.length?(a=h*h,l):Math.sqrt(a)},l}function hQe(t){var e=ji(.1),n,r,i;typeof t!="function"&&(t=ji(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vx+=(i[a]-c.x)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:ji(+u),o(),s):e},s.x=function(u){return arguments.length?(t=typeof u=="function"?u:ji(+u),o(),s):t},s}function pQe(t){var e=ji(.1),n,r,i;typeof t!="function"&&(t=ji(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vy+=(i[a]-c.y)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:ji(+u),o(),s):e},s.y=function(u){return arguments.length?(t=typeof u=="function"?u:ji(+u),o(),s):t},s}const lse={center:Nze,collide:Vze,nbody:dQe,link:Kze,x:hQe,y:pQe},Gy="forces",$I=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],gQe=["static","iterations"],cse=["x","y","vx","vy"];function BI(t){pe.call(this,null,t)}BI.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:cse}]},Fe(BI,pe,{transform(t,e){var n=this.value,r=e.changed(e.ADD_REM),i=t.modified($I),s=t.iterations||300;if(n?(r&&(e.modifies("index"),n.nodes(e.source)),(i||e.changed(e.MOD))&&fse(n,t,0,e)):(this.value=n=yQe(e.source,t),n.on("tick",mQe(e.dataflow,this)),t.static||(r=!0,n.tick()),e.modifies("index")),i||r||t.modified(gQe)||e.changed()&&t.restart){if(n.alpha(Math.max(n.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(n.alphaMin(),1/s)),t.static)for(n.stop();--s>=0;)n.tick();else if(n.stopped()&&n.restart(),!r)return e.StopPropagation}return this.finish(t,e)},finish(t,e){const n=e.dataflow;for(let u=this._argops,a=0,l=u.length,c;a<l;++a)if(c=u[a],!(c.name!==Gy||c.op._argval.force!=="link")){for(var r=c.op._argops,i=0,s=r.length,o;i<s;++i)if(r[i].name==="links"&&(o=r[i].op.source)){n.pulse(o,n.changeset().reflow());break}}return e.reflow(t.modified()).modifies(cse)}});function mQe(t,e){return()=>t.touch(e).run()}function yQe(t,e){const n=xQe(t),r=n.stop,i=n.restart;let s=!1;return n.stopped=()=>s,n.restart=()=>(s=!1,i()),n.stop=()=>(s=!0,r()),fse(n,e,!0).on("end",()=>s=!0)}function fse(t,e,n,r){var i=Pe(e.forces),s,o,u,a;for(s=0,o=$I.length;s<o;++s)u=$I[s],u!==Gy&&e.modified(u)&&t[u](e[u]);for(s=0,o=i.length;s<o;++s)a=Gy+s,u=n||e.modified(Gy,s)?AQe(i[s]):r&&EQe(i[s],r)?t.force(a):null,u&&t.force(a,u);for(o=t.numForces||0;s<o;++s)t.force(Gy+s,null);return t.numForces=i.length,t}function EQe(t,e){var n,r;for(n in t)if(ct(r=t[n])&&e.modified(vi(r)))return 1;return 0}function AQe(t){var e,n;Je(lse,t.force)||Se("Unrecognized force: "+t.force),e=lse[t.force]();for(n in t)ct(e[n])&&vQe(e[n],t[n],t);return e}function vQe(t,e,n){t(ct(e)?r=>e(r,n):e)}const SQe=Object.freeze(Object.defineProperty({__proto__:null,force:BI},Symbol.toStringTag,{value:"Module"}));function _Qe(t,e){return t.parent===e.parent?1:2}function CQe(t){return t.reduce(bQe,0)/t.length}function bQe(t,e){return t+e.x}function TQe(t){return 1+t.reduce(RQe,0)}function RQe(t,e){return Math.max(t,e.y)}function OQe(t){for(var e;e=t.children;)t=e[0];return t}function NQe(t){for(var e;e=t.children;)t=e[e.length-1];return t}function DQe(){var t=_Qe,e=1,n=1,r=!1;function i(s){var o,u=0;s.eachAfter(function(x){var h=x.children;h?(x.x=CQe(h),x.y=TQe(h)):(x.x=o?u+=t(x,o):0,x.y=0,o=x)});var a=OQe(s),l=NQe(s),c=a.x-t(a,l)/2,f=l.x+t(l,a)/2;return s.eachAfter(r?function(x){x.x=(x.x-s.x)*e,x.y=(s.y-x.y)*n}:function(x){x.x=(x.x-c)/(f-c)*e,x.y=(1-(s.y?x.y/s.y:1))*n})}return i.separation=function(s){return arguments.length?(t=s,i):t},i.size=function(s){return arguments.length?(r=!1,e=+s[0],n=+s[1],i):r?null:[e,n]},i.nodeSize=function(s){return arguments.length?(r=!0,e=+s[0],n=+s[1],i):r?[e,n]:null},i}function FQe(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function wQe(){return this.eachAfter(FQe)}function LQe(t,e){let n=-1;for(const r of this)t.call(e,r,++n,this);return this}function IQe(t,e){for(var n=this,r=[n],i,s,o=-1;n=r.pop();)if(t.call(e,n,++o,this),i=n.children)for(s=i.length-1;s>=0;--s)r.push(i[s]);return this}function $Qe(t,e){for(var n=this,r=[n],i=[],s,o,u,a=-1;n=r.pop();)if(i.push(n),s=n.children)for(o=0,u=s.length;o<u;++o)r.push(s[o]);for(;n=i.pop();)t.call(e,n,++a,this);return this}function BQe(t,e){let n=-1;for(const r of this)if(t.call(e,r,++n,this))return r}function kQe(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function PQe(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function MQe(t){for(var e=this,n=jQe(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function jQe(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function UQe(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function qQe(){return Array.from(this)}function HQe(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function zQe(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*QQe(){var t=this,e,n=[t],r,i,s;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,s=r.length;i<s;++i)n.push(r[i]);while(n.length)}function kI(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=VQe)):e===void 0&&(e=WQe);for(var n=new A1(t),r,i=[n],s,o,u,a;r=i.pop();)if((o=e(r.data))&&(a=(o=Array.from(o)).length))for(r.children=o,u=a-1;u>=0;--u)i.push(s=o[u]=new A1(o[u])),s.parent=r,s.depth=r.depth+1;return n.eachBefore(xse)}function GQe(){return kI(this).eachBefore(YQe)}function WQe(t){return t.children}function VQe(t){return Array.isArray(t)?t[1]:null}function YQe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function xse(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function A1(t){this.data=t,this.depth=this.height=0,this.parent=null}A1.prototype=kI.prototype={constructor:A1,count:wQe,each:LQe,eachAfter:$Qe,eachBefore:IQe,find:BQe,sum:kQe,sort:PQe,path:MQe,ancestors:UQe,descendants:qQe,leaves:HQe,links:zQe,copy:GQe,[Symbol.iterator]:QQe};function vT(t){return t==null?null:dse(t)}function dse(t){if(typeof t!="function")throw new Error;return t}function yd(){return 0}function v1(t){return function(){return t}}const KQe=1664525,XQe=1013904223,hse=4294967296;function JQe(){let t=1;return()=>(t=(KQe*t+XQe)%hse)/hse}function ZQe(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function eGe(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function tGe(t,e){for(var n=0,r=(t=eGe(Array.from(t),e)).length,i=[],s,o;n<r;)s=t[n],o&&pse(o,s)?++n:(o=rGe(i=nGe(i,s)),n=0);return o}function nGe(t,e){var n,r;if(PI(e,t))return[e];for(n=0;n<t.length;++n)if(ST(e,t[n])&&PI(Wy(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(ST(Wy(t[n],t[r]),e)&&ST(Wy(t[n],e),t[r])&&ST(Wy(t[r],e),t[n])&&PI(gse(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function ST(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function pse(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function PI(t,e){for(var n=0;n<e.length;++n)if(!pse(t,e[n]))return!1;return!0}function rGe(t){switch(t.length){case 1:return iGe(t[0]);case 2:return Wy(t[0],t[1]);case 3:return gse(t[0],t[1],t[2])}}function iGe(t){return{x:t.x,y:t.y,r:t.r}}function Wy(t,e){var n=t.x,r=t.y,i=t.r,s=e.x,o=e.y,u=e.r,a=s-n,l=o-r,c=u-i,f=Math.sqrt(a*a+l*l);return{x:(n+s+a/f*c)/2,y:(r+o+l/f*c)/2,r:(f+i+u)/2}}function gse(t,e,n){var r=t.x,i=t.y,s=t.r,o=e.x,u=e.y,a=e.r,l=n.x,c=n.y,f=n.r,x=r-o,h=r-l,p=i-u,m=i-c,g=a-s,y=f-s,E=r*r+i*i-s*s,A=E-o*o-u*u+a*a,v=E-l*l-c*c+f*f,S=h*p-x*m,C=(p*v-m*A)/(S*2)-r,_=(m*g-p*y)/S,b=(h*A-x*v)/(S*2)-i,R=(x*y-h*g)/S,O=_*_+R*R-1,L=2*(s+C*_+b*R),M=C*C+b*b-s*s,q=-(Math.abs(O)>1e-6?(L+Math.sqrt(L*L-4*O*M))/(2*O):M/L);return{x:r+C+_*q,y:i+b+R*q,r:q}}function mse(t,e,n){var r=t.x-e.x,i,s,o=t.y-e.y,u,a,l=r*r+o*o;l?(s=e.r+n.r,s*=s,a=t.r+n.r,a*=a,s>a?(i=(l+a-s)/(2*l),u=Math.sqrt(Math.max(0,a/l-i*i)),n.x=t.x-i*r-u*o,n.y=t.y-i*o+u*r):(i=(l+s-a)/(2*l),u=Math.sqrt(Math.max(0,s/l-i*i)),n.x=e.x+i*r-u*o,n.y=e.y+i*o+u*r)):(n.x=e.x+n.r,n.y=e.y)}function yse(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Ese(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,s=(e.y*n.r+n.y*e.r)/r;return i*i+s*s}function _T(t){this._=t,this.next=null,this.previous=null}function sGe(t,e){if(!(s=(t=ZQe(t)).length))return 0;var n,r,i,s,o,u,a,l,c,f,x;if(n=t[0],n.x=0,n.y=0,!(s>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(s>2))return n.r+r.r;mse(r,n,i=t[2]),n=new _T(n),r=new _T(r),i=new _T(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;e:for(a=3;a<s;++a){mse(n._,r._,i=t[a]),i=new _T(i),l=r.next,c=n.previous,f=r._.r,x=n._.r;do if(f<=x){if(yse(l._,i._)){r=l,n.next=r,r.previous=n,--a;continue e}f+=l._.r,l=l.next}else{if(yse(c._,i._)){n=c,n.next=r,r.previous=n,--a;continue e}x+=c._.r,c=c.previous}while(l!==c.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,o=Ese(n);(i=i.next)!==r;)(u=Ese(i))<o&&(n=i,o=u);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=tGe(n,e),a=0;a<s;++a)n=t[a],n.x-=i.x,n.y-=i.y;return i.r}function oGe(t){return Math.sqrt(t.value)}function uGe(){var t=null,e=1,n=1,r=yd;function i(s){const o=JQe();return s.x=e/2,s.y=n/2,t?s.eachBefore(Ase(t)).eachAfter(MI(r,.5,o)).eachBefore(vse(1)):s.eachBefore(Ase(oGe)).eachAfter(MI(yd,1,o)).eachAfter(MI(r,s.r/Math.min(e,n),o)).eachBefore(vse(Math.min(e,n)/(2*s.r))),s}return i.radius=function(s){return arguments.length?(t=vT(s),i):t},i.size=function(s){return arguments.length?(e=+s[0],n=+s[1],i):[e,n]},i.padding=function(s){return arguments.length?(r=typeof s=="function"?s:v1(+s),i):r},i}function Ase(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function MI(t,e,n){return function(r){if(i=r.children){var i,s,o=i.length,u=t(r)*e||0,a;if(u)for(s=0;s<o;++s)i[s].r+=u;if(a=sGe(i,n),u)for(s=0;s<o;++s)i[s].r-=u;r.r=a+u}}}function vse(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function Sse(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Vy(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(r-e)/t.value;++u<a;)o=s[u],o.y0=n,o.y1=i,o.x0=e,o.x1=e+=o.value*l}function aGe(){var t=1,e=1,n=0,r=!1;function i(o){var u=o.height+1;return o.x0=o.y0=n,o.x1=t,o.y1=e/u,o.eachBefore(s(e,u)),r&&o.eachBefore(Sse),o}function s(o,u){return function(a){a.children&&Vy(a,a.x0,o*(a.depth+1)/u,a.x1,o*(a.depth+2)/u);var l=a.x0,c=a.y0,f=a.x1-n,x=a.y1-n;f<l&&(l=f=(l+f)/2),x<c&&(c=x=(c+x)/2),a.x0=l,a.y0=c,a.x1=f,a.y1=x}}return i.round=function(o){return arguments.length?(r=!!o,i):r},i.size=function(o){return arguments.length?(t=+o[0],e=+o[1],i):[t,e]},i.padding=function(o){return arguments.length?(n=+o,i):n},i}var lGe={depth:-1},_se={},jI={};function cGe(t){return t.id}function fGe(t){return t.parentId}function Cse(){var t=cGe,e=fGe,n;function r(i){var s=Array.from(i),o=t,u=e,a,l,c,f,x,h,p,m,g=new Map;if(n!=null){const y=s.map((v,S)=>xGe(n(v,S,i))),E=y.map(bse),A=new Set(y).add("");for(const v of E)A.has(v)||(A.add(v),y.push(v),E.push(bse(v)),s.push(jI));o=(v,S)=>y[S],u=(v,S)=>E[S]}for(c=0,a=s.length;c<a;++c)l=s[c],h=s[c]=new A1(l),(p=o(l,c,i))!=null&&(p+="")&&(m=h.id=p,g.set(m,g.has(m)?_se:h)),(p=u(l,c,i))!=null&&(p+="")&&(h.parent=p);for(c=0;c<a;++c)if(h=s[c],p=h.parent){if(x=g.get(p),!x)throw new Error("missing: "+p);if(x===_se)throw new Error("ambiguous: "+p);x.children?x.children.push(h):x.children=[h],h.parent=x}else{if(f)throw new Error("multiple roots");f=h}if(!f)throw new Error("no root");if(n!=null){for(;f.data===jI&&f.children.length===1;)f=f.children[0],--a;for(let y=s.length-1;y>=0&&(h=s[y],h.data===jI);--y)h.data=null}if(f.parent=lGe,f.eachBefore(function(y){y.depth=y.parent.depth+1,--a}).eachBefore(xse),f.parent=null,a>0)throw new Error("cycle");return f}return r.id=function(i){return arguments.length?(t=vT(i),r):t},r.parentId=function(i){return arguments.length?(e=vT(i),r):e},r.path=function(i){return arguments.length?(n=vT(i),r):n},r}function xGe(t){t=`${t}`;let e=t.length;return UI(t,e-1)&&!UI(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function bse(t){let e=t.length;if(e<2)return"";for(;--e>1&&!UI(t,e););return t.slice(0,e)}function UI(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if(!(n&1))return!0}return!1}function dGe(t,e){return t.parent===e.parent?1:2}function qI(t){var e=t.children;return e?e[0]:t.t}function HI(t){var e=t.children;return e?e[e.length-1]:t.t}function hGe(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function pGe(t){for(var e=0,n=0,r=t.children,i=r.length,s;--i>=0;)s=r[i],s.z+=e,s.m+=e,e+=s.s+(n+=s.c)}function gGe(t,e,n){return t.a.parent===e.parent?t.a:n}function CT(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}CT.prototype=Object.create(A1.prototype);function mGe(t){for(var e=new CT(t,0),n,r=[e],i,s,o,u;n=r.pop();)if(s=n._.children)for(n.children=new Array(u=s.length),o=u-1;o>=0;--o)r.push(i=n.children[o]=new CT(s[o],o)),i.parent=n;return(e.parent=new CT(null,0)).children=[e],e}function yGe(){var t=dGe,e=1,n=1,r=null;function i(l){var c=mGe(l);if(c.eachAfter(s),c.parent.m=-c.z,c.eachBefore(o),r)l.eachBefore(a);else{var f=l,x=l,h=l;l.eachBefore(function(E){E.x<f.x&&(f=E),E.x>x.x&&(x=E),E.depth>h.depth&&(h=E)});var p=f===x?1:t(f,x)/2,m=p-f.x,g=e/(x.x+p+m),y=n/(h.depth||1);l.eachBefore(function(E){E.x=(E.x+m)*g,E.y=E.depth*y})}return l}function s(l){var c=l.children,f=l.parent.children,x=l.i?f[l.i-1]:null;if(c){pGe(l);var h=(c[0].z+c[c.length-1].z)/2;x?(l.z=x.z+t(l._,x._),l.m=l.z-h):l.z=h}else x&&(l.z=x.z+t(l._,x._));l.parent.A=u(l,x,l.parent.A||f[0])}function o(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function u(l,c,f){if(c){for(var x=l,h=l,p=c,m=x.parent.children[0],g=x.m,y=h.m,E=p.m,A=m.m,v;p=HI(p),x=qI(x),p&&x;)m=qI(m),h=HI(h),h.a=l,v=p.z+E-x.z-g+t(p._,x._),v>0&&(hGe(gGe(p,l,f),l,v),g+=v,y+=v),E+=p.m,g+=x.m,A+=m.m,y+=h.m;p&&!HI(h)&&(h.t=p,h.m+=E-y),x&&!qI(m)&&(m.t=x,m.m+=g-A,f=l)}return f}function a(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function bT(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(i-n)/t.value;++u<a;)o=s[u],o.x0=e,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var Tse=(1+Math.sqrt(5))/2;function Rse(t,e,n,r,i,s){for(var o=[],u=e.children,a,l,c=0,f=0,x=u.length,h,p,m=e.value,g,y,E,A,v,S,C;c<x;){h=i-n,p=s-r;do g=u[f++].value;while(!g&&f<x);for(y=E=g,S=Math.max(p/h,h/p)/(m*t),C=g*g*S,v=Math.max(E/C,C/y);f<x;++f){if(g+=l=u[f].value,l<y&&(y=l),l>E&&(E=l),C=g*g*S,A=Math.max(E/C,C/y),A>v){g-=l;break}v=A}o.push(a={value:g,dice:h<p,children:u.slice(c,f)}),a.dice?Vy(a,n,r,i,m?r+=p*g/m:s):bT(a,n,r,m?n+=h*g/m:i,s),m-=g,c=f}return o}const Ose=function t(e){function n(r,i,s,o,u){Rse(e,r,i,s,o,u)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(Tse);function EGe(){var t=Ose,e=!1,n=1,r=1,i=[0],s=yd,o=yd,u=yd,a=yd,l=yd;function c(x){return x.x0=x.y0=0,x.x1=n,x.y1=r,x.eachBefore(f),i=[0],e&&x.eachBefore(Sse),x}function f(x){var h=i[x.depth],p=x.x0+h,m=x.y0+h,g=x.x1-h,y=x.y1-h;g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),x.x0=p,x.y0=m,x.x1=g,x.y1=y,x.children&&(h=i[x.depth+1]=s(x)/2,p+=l(x)-h,m+=o(x)-h,g-=u(x)-h,y-=a(x)-h,g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),t(x,p,m,g,y))}return c.round=function(x){return arguments.length?(e=!!x,c):e},c.size=function(x){return arguments.length?(n=+x[0],r=+x[1],c):[n,r]},c.tile=function(x){return arguments.length?(t=dse(x),c):t},c.padding=function(x){return arguments.length?c.paddingInner(x).paddingOuter(x):c.paddingInner()},c.paddingInner=function(x){return arguments.length?(s=typeof x=="function"?x:v1(+x),c):s},c.paddingOuter=function(x){return arguments.length?c.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x):c.paddingTop()},c.paddingTop=function(x){return arguments.length?(o=typeof x=="function"?x:v1(+x),c):o},c.paddingRight=function(x){return arguments.length?(u=typeof x=="function"?x:v1(+x),c):u},c.paddingBottom=function(x){return arguments.length?(a=typeof x=="function"?x:v1(+x),c):a},c.paddingLeft=function(x){return arguments.length?(l=typeof x=="function"?x:v1(+x),c):l},c}function AGe(t,e,n,r,i){var s=t.children,o,u=s.length,a,l=new Array(u+1);for(l[0]=a=o=0;o<u;++o)l[o+1]=a+=s[o].value;c(0,u,t.value,e,n,r,i);function c(f,x,h,p,m,g,y){if(f>=x-1){var E=s[f];E.x0=p,E.y0=m,E.x1=g,E.y1=y;return}for(var A=l[f],v=h/2+A,S=f+1,C=x-1;S<C;){var _=S+C>>>1;l[_]<v?S=_+1:C=_}v-l[S-1]<l[S]-v&&f+1<S&&--S;var b=l[S]-A,R=h-b;if(g-p>y-m){var O=h?(p*R+g*b)/h:g;c(f,S,b,p,m,O,y),c(S,x,R,O,m,g,y)}else{var L=h?(m*R+y*b)/h:y;c(f,S,b,p,m,g,L),c(S,x,R,p,L,g,y)}}}function vGe(t,e,n,r,i){(t.depth&1?bT:Vy)(t,e,n,r,i)}const SGe=function t(e){function n(r,i,s,o,u){if((a=r._squarify)&&a.ratio===e)for(var a,l,c,f,x=-1,h,p=a.length,m=r.value;++x<p;){for(l=a[x],c=l.children,f=l.value=0,h=c.length;f<h;++f)l.value+=c[f].value;l.dice?Vy(l,i,s,o,m?s+=(u-s)*l.value/m:u):bT(l,i,s,m?i+=(o-i)*l.value/m:o,u),m-=l.value}else r._squarify=a=Rse(e,r,i,s,o,u),a.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(Tse);function zI(t,e,n){const r={};return t.each(i=>{const s=i.data;n(s)&&(r[e(s)]=i)}),t.lookup=r,t}function QI(t){pe.call(this,null,t)}QI.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const _Ge=t=>t.values;Fe(QI,pe,{transform(t,e){e.source||Se("Nest transform requires an upstream data source.");var n=t.generate,r=t.modified(),i=e.clone(),s=this.value;return(!s||r||e.changed())&&(s&&s.each(o=>{o.children&&rw(o.data)&&i.rem.push(o.data)}),this.value=s=kI({values:Pe(t.keys).reduce((o,u)=>(o.key(u),o),CGe()).entries(i.source)},_Ge),n&&s.each(o=>{o.children&&(o=$t(o.data),i.add.push(o),i.source.push(o))}),zI(s,Ze,Ze)),i.source.root=s,i}});function CGe(){const t=[],e={entries:i=>r(n(i,0),0),key:i=>(t.push(i),e)};function n(i,s){if(s>=t.length)return i;const o=i.length,u=t[s++],a={},l={};let c=-1,f,x,h;for(;++c<o;)f=u(x=i[c])+"",(h=a[f])?h.push(x):a[f]=[x];for(f in a)l[f]=n(a[f],s);return l}function r(i,s){if(++s>t.length)return i;const o=[];for(const u in i)o.push({key:u,values:r(i[u],s)});return o}return e}function e0(t){pe.call(this,null,t)}const bGe=(t,e)=>t.parent===e.parent?1:2;Fe(e0,pe,{transform(t,e){(!e.source||!e.source.root)&&Se(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(t.method),r=this.fields,i=e.source.root,s=t.as||r;t.field?i.sum(t.field):i.count(),t.sort&&i.sort(Gx(t.sort,o=>o.data)),TGe(n,this.params,t),n.separation&&n.separation(t.separation!==!1?bGe:g3);try{this.value=n(i)}catch(o){Se(o)}return i.each(o=>RGe(o,r,s)),e.reflow(t.modified()).modifies(s).modifies("leaf")}});function TGe(t,e,n){for(let r,i=0,s=e.length;i<s;++i)r=e[i],r in n&&t[r](n[r])}function RGe(t,e,n){const r=t.data,i=e.length-1;for(let s=0;s<i;++s)r[n[s]]=t[e[s]];r[n[i]]=t.children?t.children.length:0}const GI=["x","y","r","depth","children"];function WI(t){e0.call(this,t)}WI.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:GI.length,default:GI}]},Fe(WI,e0,{layout:uGe,params:["radius","size","padding"],fields:GI});const VI=["x0","y0","x1","y1","depth","children"];function YI(t){e0.call(this,t)}YI.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:VI.length,default:VI}]},Fe(YI,e0,{layout:aGe,params:["size","round","padding"],fields:VI});function KI(t){pe.call(this,null,t)}KI.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},Fe(KI,pe,{transform(t,e){e.source||Se("Stratify transform requires an upstream data source.");let n=this.value;const r=t.modified(),i=e.fork(e.ALL).materialize(e.SOURCE),s=!n||r||e.changed(e.ADD_REM)||e.modified(t.key.fields)||e.modified(t.parentKey.fields);return i.source=i.source.slice(),s&&(n=i.source.length?zI(Cse().id(t.key).parentId(t.parentKey)(i.source),t.key,Zo):zI(Cse()([{}]),t.key,t.key)),i.source.root=this.value=n,i}});const Nse={tidy:yGe,cluster:DQe},XI=["x","y","depth","children"];function JI(t){e0.call(this,t)}JI.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:XI.length,default:XI}]},Fe(JI,e0,{layout(t){const e=t||"tidy";if(Je(Nse,e))return Nse[e]();Se("Unrecognized Tree layout method: "+e)},params:["size","nodeSize"],fields:XI});function ZI(t){pe.call(this,[],t)}ZI.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},Fe(ZI,pe,{transform(t,e){const n=this.value,r=e.source&&e.source.root,i=e.fork(e.NO_SOURCE),s={};return r||Se("TreeLinks transform requires a tree data source."),e.changed(e.ADD_REM)?(i.rem=n,e.visit(e.SOURCE,o=>s[Ze(o)]=1),r.each(o=>{const u=o.data,a=o.parent&&o.parent.data;a&&s[Ze(u)]&&s[Ze(a)]&&i.add.push($t({source:a,target:u}))}),this.value=i.add):e.changed(e.MOD)&&(e.visit(e.MOD,o=>s[Ze(o)]=1),n.forEach(o=>{(s[Ze(o.source)]||s[Ze(o.target)])&&i.mod.push(o)})),i}});const Dse={binary:AGe,dice:Vy,slice:bT,slicedice:vGe,squarify:Ose,resquarify:SGe},e$=["x0","y0","x1","y1","depth","children"];function t$(t){e0.call(this,t)}t$.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:e$.length,default:e$}]},Fe(t$,e0,{layout(){const t=EGe();return t.ratio=e=>{const n=t.tile();n.ratio&&t.tile(n.ratio(e))},t.method=e=>{Je(Dse,e)?t.tile(Dse[e]):Se("Unrecognized Treemap layout method: "+e)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:e$});const OGe=Object.freeze(Object.defineProperty({__proto__:null,nest:QI,pack:WI,partition:YI,stratify:KI,tree:JI,treelinks:ZI,treemap:t$},Symbol.toStringTag,{value:"Module"})),n$=4278190080;function NGe(t,e){const n=t.bitmap();return(e||[]).forEach(r=>n.set(t(r.boundary[0]),t(r.boundary[3]))),[n,void 0]}function DGe(t,e,n,r,i){const s=t.width,o=t.height,u=r||i,a=Sc(s,o).getContext("2d"),l=Sc(s,o).getContext("2d"),c=u&&Sc(s,o).getContext("2d");n.forEach(b=>TT(a,b,!1)),TT(l,e,!1),u&&TT(c,e,!0);const f=r$(a,s,o),x=r$(l,s,o),h=u&&r$(c,s,o),p=t.bitmap(),m=u&&t.bitmap();let g,y,E,A,v,S,C,_;for(y=0;y<o;++y)for(g=0;g<s;++g)v=y*s+g,S=f[v]&n$,_=x[v]&n$,C=u&&h[v]&n$,(S||C||_)&&(E=t(g),A=t(y),!i&&(S||_)&&p.set(E,A),u&&(S||C)&&m.set(E,A));return[p,m]}function r$(t,e,n){return new Uint32Array(t.getImageData(0,0,e,n).data.buffer)}function TT(t,e,n){if(!e.length)return;const r=e[0].mark.marktype;r==="group"?e.forEach(i=>{i.items.forEach(s=>TT(t,s.items,n))}):So[r].draw(t,{items:n?e.map(FGe):e})}function FGe(t){const e=SC(t,{});return e.stroke&&e.strokeOpacity!==0||e.fill&&e.fillOpacity!==0?{...e,strokeOpacity:1,stroke:"#000",fillOpacity:0}:e}const t0=5,Ui=31,Yy=32,jc=new Uint32Array(Yy+1),fu=new Uint32Array(Yy+1);fu[0]=0,jc[0]=~fu[0];for(let t=1;t<=Yy;++t)fu[t]=fu[t-1]<<1|1,jc[t]=~fu[t];function wGe(t,e){const n=new Uint32Array(~~((t*e+Yy)/Yy));function r(s,o){n[s]|=o}function i(s,o){n[s]&=o}return{array:n,get:(s,o)=>{const u=o*t+s;return n[u>>>t0]&1<<(u&Ui)},set:(s,o)=>{const u=o*t+s;r(u>>>t0,1<<(u&Ui))},clear:(s,o)=>{const u=o*t+s;i(u>>>t0,~(1<<(u&Ui)))},getRange:(s,o,u,a)=>{let l=a,c,f,x,h;for(;l>=o;--l)if(c=l*t+s,f=l*t+u,x=c>>>t0,h=f>>>t0,x===h){if(n[x]&jc[c&Ui]&fu[(f&Ui)+1])return!0}else{if(n[x]&jc[c&Ui]||n[h]&fu[(f&Ui)+1])return!0;for(let p=x+1;p<h;++p)if(n[p])return!0}return!1},setRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>t0,x=c>>>t0,f===x)r(f,jc[l&Ui]&fu[(c&Ui)+1]);else for(r(f,jc[l&Ui]),r(x,fu[(c&Ui)+1]),h=f+1;h<x;++h)r(h,4294967295)},clearRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>t0,x=c>>>t0,f===x)i(f,fu[l&Ui]|jc[(c&Ui)+1]);else for(i(f,fu[l&Ui]),i(x,jc[(c&Ui)+1]),h=f+1;h<x;++h)i(h,0)},outOfBounds:(s,o,u,a)=>s<0||o<0||a>=e||u>=t}}function LGe(t,e,n){const r=Math.max(1,Math.sqrt(t*e/1e6)),i=~~((t+2*n+r)/r),s=~~((e+2*n+r)/r),o=u=>~~((u+n)/r);return o.invert=u=>u*r-n,o.bitmap=()=>wGe(i,s),o.ratio=r,o.padding=n,o.width=t,o.height=e,o}function IGe(t,e,n,r){const i=t.width,s=t.height;return function(o){const u=o.datum.datum.items[r].items,a=u.length,l=o.datum.fontSize,c=ba.width(o.datum,o.datum.text);let f=0,x,h,p,m,g,y,E;for(let A=0;A<a;++A)x=u[A].x,p=u[A].y,h=u[A].x2===void 0?x:u[A].x2,m=u[A].y2===void 0?p:u[A].y2,g=(x+h)/2,y=(p+m)/2,E=Math.abs(h-x+m-p),E>=f&&(f=E,o.x=g,o.y=y);return g=c/2,y=l/2,x=o.x-g,h=o.x+g,p=o.y-y,m=o.y+y,o.align="center",x<0&&h<=i?o.align="left":0<=x&&i<h&&(o.align="right"),o.baseline="middle",p<0&&m<=s?o.baseline="top":0<=p&&s<m&&(o.baseline="bottom"),!0}}function RT(t,e,n,r,i,s){let o=n/2;return t-o<0||t+o>i||e-(o=r/2)<0||e+o>s}function Uc(t,e,n,r,i,s,o,u){const a=i*s/(r*2),l=t(e-a),c=t(e+a),f=t(n-(s=s/2)),x=t(n+s);return o.outOfBounds(l,f,c,x)||o.getRange(l,f,c,x)||u&&u.getRange(l,f,c,x)}function $Ge(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1];function a(l,c,f,x,h){const p=t.invert(l),m=t.invert(c);let g=f,y=s,E;if(!RT(p,m,x,h,i,s)&&!Uc(t,p,m,h,x,g,o,u)&&!Uc(t,p,m,h,x,h,o,null)){for(;y-g>=1;)E=(g+y)/2,Uc(t,p,m,h,x,E,o,u)?y=E:g=E;if(g>f)return[p,m,g,!0]}}return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=ba.width(l.datum,l.datum.text);let p=n?x:0,m=!1,g=!1,y=0,E,A,v,S,C,_,b,R,O,L,M,q,W,B,G,te,X;for(let de=0;de<f;++de){for(E=c[de].x,v=c[de].y,A=c[de].x2===void 0?E:c[de].x2,S=c[de].y2===void 0?v:c[de].y2,E>A&&(X=E,E=A,A=X),v>S&&(X=v,v=S,S=X),O=t(E),M=t(A),L=~~((O+M)/2),q=t(v),B=t(S),W=~~((q+B)/2),b=L;b>=O;--b)for(R=W;R>=q;--R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);for(b=L;b<=M;++b)for(R=W;R<=B;++R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);!m&&!n&&(G=Math.abs(A-E+S-v),C=(E+A)/2,_=(v+S)/2,G>=y&&!RT(C,_,h,x,i,s)&&!Uc(t,C,_,x,h,x,o,null)&&(y=G,l.x=C,l.y=_,g=!0))}return m||g?(C=h/2,_=x/2,o.setRange(t(l.x-C),t(l.y-_),t(l.x+C),t(l.y+_)),l.align="center",l.baseline="middle",!0):!1}}const BGe=[-1,-1,1,1],kGe=[-1,1,-1,1];function PGe(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=t.bitmap();return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=ba.width(l.datum,l.datum.text),p=[];let m=n?x:0,g=!1,y=!1,E=0,A,v,S,C,_,b,R,O,L,M,q,W;for(let B=0;B<f;++B){for(A=c[B].x,S=c[B].y,v=c[B].x2===void 0?A:c[B].x2,C=c[B].y2===void 0?S:c[B].y2,p.push([t((A+v)/2),t((S+C)/2)]);p.length;)if([R,O]=p.pop(),!(o.get(R,O)||u.get(R,O)||a.get(R,O))){a.set(R,O);for(let G=0;G<4;++G)_=R+BGe[G],b=O+kGe[G],a.outOfBounds(_,b,_,b)||p.push([_,b]);if(_=t.invert(R),b=t.invert(O),L=m,M=s,!RT(_,b,h,x,i,s)&&!Uc(t,_,b,x,h,L,o,u)&&!Uc(t,_,b,x,h,x,o,null)){for(;M-L>=1;)q=(L+M)/2,Uc(t,_,b,x,h,q,o,u)?M=q:L=q;L>m&&(l.x=_,l.y=b,m=L,g=!0)}}!g&&!n&&(W=Math.abs(v-A+C-S),_=(A+v)/2,b=(S+C)/2,W>=E&&!RT(_,b,h,x,i,s)&&!Uc(t,_,b,x,h,x,o,null)&&(E=W,l.x=_,l.y=b,y=!0))}return g||y?(_=h/2,b=x/2,o.setRange(t(l.x-_),t(l.y-b),t(l.x+_),t(l.y+b)),l.align="center",l.baseline="middle",!0):!1}}const MGe=["right","center","left"],jGe=["bottom","middle","top"];function UGe(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=r.length;return function(l){const c=l.boundary,f=l.datum.fontSize;if(c[2]<0||c[5]<0||c[0]>i||c[3]>s)return!1;let x=l.textWidth??0,h,p,m,g,y,E,A,v,S,C,_,b,R,O,L;for(let M=0;M<a;++M){if(h=(n[M]&3)-1,p=(n[M]>>>2&3)-1,m=h===0&&p===0||r[M]<0,g=h&&p?Math.SQRT1_2:1,y=r[M]<0?-1:1,E=c[1+h]+r[M]*h*g,_=c[4+p]+y*f*p/2+r[M]*p*g,v=_-f/2,S=_+f/2,b=t(E),O=t(v),L=t(S),!x)if(Fse(b,b,O,L,o,u,E,E,v,S,c,m))x=ba.width(l.datum,l.datum.text);else continue;if(C=E+y*x*h/2,E=C-x/2,A=C+x/2,b=t(E),R=t(A),Fse(b,R,O,L,o,u,E,A,v,S,c,m))return l.x=h?h*y<0?A:E:C,l.y=p?p*y<0?S:v:_,l.align=MGe[h*y+1],l.baseline=jGe[p*y+1],o.setRange(b,O,R,L),!0}return!1}}function Fse(t,e,n,r,i,s,o,u,a,l,c,f){return!(i.outOfBounds(t,n,e,r)||(f&&s||i).getRange(t,n,e,r))}const i$=0,s$=4,o$=8,u$=0,a$=1,l$=2,qGe={"top-left":i$+u$,top:i$+a$,"top-right":i$+l$,left:s$+u$,middle:s$+a$,right:s$+l$,"bottom-left":o$+u$,bottom:o$+a$,"bottom-right":o$+l$},HGe={naive:IGe,"reduced-search":$Ge,floodfill:PGe};function zGe(t,e,n,r,i,s,o,u,a,l,c){if(!t.length)return t;const f=Math.max(r.length,i.length),x=QGe(r,f),h=GGe(i,f),p=WGe(t[0].datum),m=p==="group"&&t[0].datum.items[a].marktype,g=m==="area",y=VGe(p,m,u,a),E=l===null||l===1/0,A=g&&c==="naive";let v=-1,S=-1;const C=t.map(O=>{const L=E?ba.width(O,O.text):void 0;return v=Math.max(v,L),S=Math.max(S,O.fontSize),{datum:O,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(O),textWidth:L}});l=l===null||l===1/0?Math.max(v,S)+Math.max(...r):l;const _=LGe(e[0],e[1],l);let b;if(!A){n&&C.sort((M,q)=>n(M.datum,q.datum));let O=!1;for(let M=0;M<h.length&&!O;++M)O=h[M]===5||x[M]<0;const L=(p&&o||g)&&t.map(M=>M.datum);b=s.length||L?DGe(_,L||[],s,O,g):NGe(_,o&&C)}const R=g?HGe[c](_,b,o,a):UGe(_,b,h,x);return C.forEach(O=>O.opacity=+R(O)),C}function QGe(t,e){const n=new Float64Array(e),r=t.length;for(let i=0;i<r;++i)n[i]=t[i]||0;for(let i=r;i<e;++i)n[i]=n[r-1];return n}function GGe(t,e){const n=new Int8Array(e),r=t.length;for(let i=0;i<r;++i)n[i]|=qGe[t[i]];for(let i=r;i<e;++i)n[i]=n[r-1];return n}function WGe(t){return t&&t.mark&&t.mark.marktype}function VGe(t,e,n,r){const i=s=>[s.x,s.x,s.x,s.y,s.y,s.y];return t?t==="line"||t==="area"?s=>i(s.datum):e==="line"?s=>{const o=s.datum.items[r].items;return i(o.length?o[n==="start"?0:o.length-1]:{x:NaN,y:NaN})}:s=>{const o=s.datum.bounds;return[o.x1,(o.x1+o.x2)/2,o.x2,o.y1,(o.y1+o.y2)/2,o.y2]}:i}const c$=["x","y","opacity","align","baseline"],wse=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function f$(t){pe.call(this,null,t)}f$.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:wse},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:c$.length,default:c$}]},Fe(f$,pe,{transform(t,e){function n(s){const o=t[s];return ct(o)&&e.modified(o.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||n("sort")))return;(!t.size||t.size.length!==2)&&Se("Size parameter should be specified as a [width, height] array.");const i=t.as||c$;return zGe(e.materialize(e.SOURCE).source||[],t.size,t.sort,Pe(t.offset==null?1:t.offset),Pe(t.anchor||wse),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(s=>{const o=s.datum;o[i[0]]=s.x,o[i[1]]=s.y,o[i[2]]=s.opacity,o[i[3]]=s.align,o[i[4]]=s.baseline}),e.reflow(r).modifies(i)}});const YGe=Object.freeze(Object.defineProperty({__proto__:null,label:f$},Symbol.toStringTag,{value:"Module"}));function Lse(t,e){var n=[],r=function(c){return c(u)},i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function x$(t){pe.call(this,null,t)}x$.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},Fe(x$,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Lse(r,t.groupby),s=(t.groupby||[]).map(Pn),o=s.length,u=t.as||[Pn(t.x),Pn(t.y)],a=[];i.forEach(l=>{Y$e(l,t.x,t.y,t.bandwidth||.3).forEach(c=>{const f={};for(let x=0;x<o;++x)f[s[x]]=l.dims[x];f[u[0]]=c[0],f[u[1]]=c[1],a.push($t(f))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=a}return n}});const d$={linear:MJ,log:H$e,exp:z$e,pow:Q$e,quad:jJ,poly:G$e},KGe=(t,e)=>t==="poly"?e:t==="quad"?2:1;function h$(t){pe.call(this,null,t)}h$.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(d$)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},Fe(h$,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Lse(r,t.groupby),s=(t.groupby||[]).map(Pn),o=t.method||"linear",u=t.order||3,a=KGe(o,u),l=t.as||[Pn(t.x),Pn(t.y)],c=d$[o],f=[];let x=t.extent;Je(d$,o)||Se("Invalid regression method: "+o),x!=null&&o==="log"&&x[0]<=0&&(e.dataflow.warn("Ignoring extent with values <= 0 for log regression."),x=null),i.forEach(h=>{if(h.length<=a){e.dataflow.warn("Skipping regression with more parameters than data points.");return}const m=c(h,t.x,t.y,u);if(t.params){f.push($t({keys:h.dims,coef:m.coef,rSquared:m.rSquared}));return}const g=x||vl(h,t.x),y=E=>{const A={};for(let v=0;v<s.length;++v)A[s[v]]=h.dims[v];A[l[0]]=E[0],A[l[1]]=E[1],f.push($t(A))};o==="linear"?g.forEach(E=>y([E,m.predict(E)])):xw(m.predict,g,25,200).forEach(y)}),this.value&&(n.rem=this.value),this.value=n.add=n.source=f}return n}});const XGe=Object.freeze(Object.defineProperty({__proto__:null,loess:x$,regression:h$},Symbol.toStringTag,{value:"Module"})),n0=11102230246251565e-32,ii=134217729,JGe=(3+8*n0)*n0;function p$(t,e,n,r,i){let s,o,u,a,l=e[0],c=r[0],f=0,x=0;c>l==c>-l?(s=l,l=e[++f]):(s=c,c=r[++x]);let h=0;if(f<t&&x<n)for(c>l==c>-l?(o=l+s,u=s-(o-l),l=e[++f]):(o=c+s,u=s-(o-c),c=r[++x]),s=o,u!==0&&(i[h++]=u);f<t&&x<n;)c>l==c>-l?(o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f]):(o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x]),s=o,u!==0&&(i[h++]=u);for(;f<t;)o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f],s=o,u!==0&&(i[h++]=u);for(;x<n;)o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x],s=o,u!==0&&(i[h++]=u);return(s!==0||h===0)&&(i[h++]=s),h}function ZGe(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function Ky(t){return new Float64Array(t)}const eWe=(3+16*n0)*n0,tWe=(2+12*n0)*n0,nWe=(9+64*n0)*n0*n0,S1=Ky(4),Ise=Ky(8),$se=Ky(12),Bse=Ky(16),qi=Ky(4);function rWe(t,e,n,r,i,s,o){let u,a,l,c,f,x,h,p,m,g,y,E,A,v,S,C,_,b;const R=t-i,O=n-i,L=e-s,M=r-s;v=R*M,x=ii*R,h=x-(x-R),p=R-h,x=ii*M,m=x-(x-M),g=M-m,S=p*g-(v-h*m-p*m-h*g),C=L*O,x=ii*L,h=x-(x-L),p=L-h,x=ii*O,m=x-(x-O),g=O-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,S1[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,S1[1]=A-(y+f)+(f-C),b=E+y,f=b-E,S1[2]=E-(b-f)+(y-f),S1[3]=b;let q=ZGe(4,S1),W=tWe*o;if(q>=W||-q>=W||(f=t-R,u=t-(R+f)+(f-i),f=n-O,l=n-(O+f)+(f-i),f=e-L,a=e-(L+f)+(f-s),f=r-M,c=r-(M+f)+(f-s),u===0&&a===0&&l===0&&c===0)||(W=nWe*o+JGe*Math.abs(q),q+=R*c+M*u-(L*l+O*a),q>=W||-q>=W))return q;v=u*M,x=ii*u,h=x-(x-u),p=u-h,x=ii*M,m=x-(x-M),g=M-m,S=p*g-(v-h*m-p*m-h*g),C=a*O,x=ii*a,h=x-(x-a),p=a-h,x=ii*O,m=x-(x-O),g=O-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,qi[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,qi[1]=A-(y+f)+(f-C),b=E+y,f=b-E,qi[2]=E-(b-f)+(y-f),qi[3]=b;const B=p$(4,S1,4,qi,Ise);v=R*c,x=ii*R,h=x-(x-R),p=R-h,x=ii*c,m=x-(x-c),g=c-m,S=p*g-(v-h*m-p*m-h*g),C=L*l,x=ii*L,h=x-(x-L),p=L-h,x=ii*l,m=x-(x-l),g=l-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,qi[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,qi[1]=A-(y+f)+(f-C),b=E+y,f=b-E,qi[2]=E-(b-f)+(y-f),qi[3]=b;const G=p$(B,Ise,4,qi,$se);v=u*c,x=ii*u,h=x-(x-u),p=u-h,x=ii*c,m=x-(x-c),g=c-m,S=p*g-(v-h*m-p*m-h*g),C=a*l,x=ii*a,h=x-(x-a),p=a-h,x=ii*l,m=x-(x-l),g=l-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,qi[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,qi[1]=A-(y+f)+(f-C),b=E+y,f=b-E,qi[2]=E-(b-f)+(y-f),qi[3]=b;const te=p$(G,$se,4,qi,Bse);return Bse[te-1]}function OT(t,e,n,r,i,s){const o=(e-s)*(n-i),u=(t-i)*(r-s),a=o-u;if(o===0||u===0||o>0!=u>0)return a;const l=Math.abs(o+u);return Math.abs(a)>=eWe*l?a:-rWe(t,e,n,r,i,s,l)}const kse=Math.pow(2,-52),NT=new Uint32Array(512);class DT{static from(e,n=aWe,r=lWe){const i=e.length,s=new Float64Array(i*2);for(let o=0;o<i;o++){const u=e[o];s[2*o]=n(u),s[2*o+1]=r(u)}return new DT(s)}constructor(e){const n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;const r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:s}=this,o=e.length>>1;let u=1/0,a=1/0,l=-1/0,c=-1/0;for(let O=0;O<o;O++){const L=e[2*O],M=e[2*O+1];L<u&&(u=L),M<a&&(a=M),L>l&&(l=L),M>c&&(c=M),this._ids[O]=O}const f=(u+l)/2,x=(a+c)/2;let h=1/0,p,m,g;for(let O=0;O<o;O++){const L=g$(f,x,e[2*O],e[2*O+1]);L<h&&(p=O,h=L)}const y=e[2*p],E=e[2*p+1];h=1/0;for(let O=0;O<o;O++){if(O===p)continue;const L=g$(y,E,e[2*O],e[2*O+1]);L<h&&L>0&&(m=O,h=L)}let A=e[2*m],v=e[2*m+1],S=1/0;for(let O=0;O<o;O++){if(O===p||O===m)continue;const L=oWe(y,E,A,v,e[2*O],e[2*O+1]);L<S&&(g=O,S=L)}let C=e[2*g],_=e[2*g+1];if(S===1/0){for(let M=0;M<o;M++)this._dists[M]=e[2*M]-e[0]||e[2*M+1]-e[1];_1(this._ids,this._dists,0,o-1);const O=new Uint32Array(o);let L=0;for(let M=0,q=-1/0;M<o;M++){const W=this._ids[M];this._dists[W]>q&&(O[L++]=W,q=this._dists[W])}this.hull=O.subarray(0,L),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(OT(y,E,A,v,C,_)<0){const O=m,L=A,M=v;m=g,A=C,v=_,g=O,C=L,_=M}const b=uWe(y,E,A,v,C,_);this._cx=b.x,this._cy=b.y;for(let O=0;O<o;O++)this._dists[O]=g$(e[2*O],e[2*O+1],b.x,b.y);_1(this._ids,this._dists,0,o-1),this._hullStart=p;let R=3;r[p]=n[g]=m,r[m]=n[p]=g,r[g]=n[m]=p,i[p]=0,i[m]=1,i[g]=2,s.fill(-1),s[this._hashKey(y,E)]=p,s[this._hashKey(A,v)]=m,s[this._hashKey(C,_)]=g,this.trianglesLen=0,this._addTriangle(p,m,g,-1,-1,-1);for(let O=0,L,M;O<this._ids.length;O++){const q=this._ids[O],W=e[2*q],B=e[2*q+1];if(O>0&&Math.abs(W-L)<=kse&&Math.abs(B-M)<=kse||(L=W,M=B,q===p||q===m||q===g))continue;let G=0;for(let ee=0,U=this._hashKey(W,B);ee<this._hashSize&&(G=s[(U+ee)%this._hashSize],!(G!==-1&&G!==r[G]));ee++);G=n[G];let te=G,X;for(;X=r[te],OT(W,B,e[2*te],e[2*te+1],e[2*X],e[2*X+1])>=0;)if(te=X,te===G){te=-1;break}if(te===-1)continue;let de=this._addTriangle(te,q,r[te],-1,-1,i[te]);i[q]=this._legalize(de+2),i[te]=de,R++;let be=r[te];for(;X=r[be],OT(W,B,e[2*be],e[2*be+1],e[2*X],e[2*X+1])<0;)de=this._addTriangle(be,q,X,i[q],-1,i[be]),i[q]=this._legalize(de+2),r[be]=be,R--,be=X;if(te===G)for(;X=n[te],OT(W,B,e[2*X],e[2*X+1],e[2*te],e[2*te+1])<0;)de=this._addTriangle(X,q,te,-1,i[te],i[X]),this._legalize(de+2),i[X]=de,r[te]=te,R--,te=X;this._hullStart=n[q]=te,r[te]=n[be]=q,r[q]=be,s[this._hashKey(W,B)]=q,s[this._hashKey(e[2*te],e[2*te+1])]=te}this.hull=new Uint32Array(R);for(let O=0,L=this._hullStart;O<R;O++)this.hull[O]=L,L=r[L];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(iWe(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:n,_halfedges:r,coords:i}=this;let s=0,o=0;for(;;){const u=r[e],a=e-e%3;if(o=a+(e+2)%3,u===-1){if(s===0)break;e=NT[--s];continue}const l=u-u%3,c=a+(e+1)%3,f=l+(u+2)%3,x=n[o],h=n[e],p=n[c],m=n[f];if(sWe(i[2*x],i[2*x+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1],i[2*m],i[2*m+1])){n[e]=m,n[u]=x;const y=r[f];if(y===-1){let A=this._hullStart;do{if(this._hullTri[A]===f){this._hullTri[A]=e;break}A=this._hullPrev[A]}while(A!==this._hullStart)}this._link(e,y),this._link(u,r[o]),this._link(o,f);const E=l+(u+1)%3;s<NT.length&&(NT[s++]=E)}else{if(s===0)break;e=NT[--s]}}return o}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,s,o){const u=this.trianglesLen;return this._triangles[u]=e,this._triangles[u+1]=n,this._triangles[u+2]=r,this._link(u,i),this._link(u+1,s),this._link(u+2,o),this.trianglesLen+=3,u}}function iWe(t,e){const n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function g$(t,e,n,r){const i=t-n,s=e-r;return i*i+s*s}function sWe(t,e,n,r,i,s,o,u){const a=t-o,l=e-u,c=n-o,f=r-u,x=i-o,h=s-u,p=a*a+l*l,m=c*c+f*f,g=x*x+h*h;return a*(f*g-m*h)-l*(c*g-m*x)+p*(c*h-f*x)<0}function oWe(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=(l*c-u*f)*x,p=(o*f-a*c)*x;return h*h+p*p}function uWe(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=t+(l*c-u*f)*x,p=e+(o*f-a*c)*x;return{x:h,y:p}}function _1(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){const s=t[i],o=e[s];let u=i-1;for(;u>=n&&e[t[u]]>o;)t[u+1]=t[u--];t[u+1]=s}else{const i=n+r>>1;let s=n+1,o=r;Xy(t,i,s),e[t[n]]>e[t[r]]&&Xy(t,n,r),e[t[s]]>e[t[r]]&&Xy(t,s,r),e[t[n]]>e[t[s]]&&Xy(t,n,s);const u=t[s],a=e[u];for(;;){do s++;while(e[t[s]]<a);do o--;while(e[t[o]]>a);if(o<s)break;Xy(t,s,o)}t[n+1]=t[o],t[o]=u,r-s+1>=o-n?(_1(t,e,s,r),_1(t,e,n,o-1)):(_1(t,e,n,o-1),_1(t,e,s,r))}}function Xy(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function aWe(t){return t[0]}function lWe(t){return t[1]}const Pse=1e-6;class Ed{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;const i=e+r,s=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${s}`:(Math.abs(this._x1-i)>Pse||Math.abs(this._y1-s)>Pse)&&(this._+="L"+i+","+s),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=s}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}}class m${constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}}let cWe=class{constructor(e,[n,r,i,s]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((s=+s)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=s,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this;let s,o;const u=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let m=0,g=0,y=r.length,E,A;m<y;m+=3,g+=2){const v=r[m]*2,S=r[m+1]*2,C=r[m+2]*2,_=e[v],b=e[v+1],R=e[S],O=e[S+1],L=e[C],M=e[C+1],q=R-_,W=O-b,B=L-_,G=M-b,te=(q*G-W*B)*2;if(Math.abs(te)<1e-9){if(s===void 0){s=o=0;for(const de of n)s+=e[de*2],o+=e[de*2+1];s/=n.length,o/=n.length}const X=1e9*Math.sign((s-_)*G-(o-b)*B);E=(_+L)/2-X*G,A=(b+M)/2+X*B}else{const X=1/te,de=q*q+W*W,be=B*B+G*G;E=_+(G*de-W*be)*X,A=b+(q*be-B*de)*X}u[g]=E,u[g+1]=A}let a=n[n.length-1],l,c=a*4,f,x=e[2*a],h,p=e[2*a+1];i.fill(0);for(let m=0;m<n.length;++m)a=n[m],l=c,f=x,h=p,c=a*4,x=e[2*a],p=e[2*a+1],i[l+2]=i[c]=h-p,i[l+3]=i[c+1]=x-f}render(e){const n=e==null?e=new Ed:void 0,{delaunay:{halfedges:r,inedges:i,hull:s},circumcenters:o,vectors:u}=this;if(s.length<=1)return null;for(let c=0,f=r.length;c<f;++c){const x=r[c];if(x<c)continue;const h=Math.floor(c/3)*2,p=Math.floor(x/3)*2,m=o[h],g=o[h+1],y=o[p],E=o[p+1];this._renderSegment(m,g,y,E,e)}let a,l=s[s.length-1];for(let c=0;c<s.length;++c){a=l,l=s[c];const f=Math.floor(i[l]/3)*2,x=o[f],h=o[f+1],p=a*4,m=this._project(x,h,u[p+2],u[p+3]);m&&this._renderSegment(x,h,m[0],m[1],e)}return n&&n.value()}renderBounds(e){const n=e==null?e=new Ed:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){const r=n==null?n=new Ed:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let s=i.length;for(;i[0]===i[s-2]&&i[1]===i[s-1]&&s>1;)s-=2;for(let o=2;o<s;o+=2)(i[o]!==i[o-2]||i[o+1]!==i[o-1])&&n.lineTo(i[o],i[o+1]);return n.closePath(),r&&r.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){const i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){const n=new m$;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,s){let o;const u=this._regioncode(e,n),a=this._regioncode(r,i);u===0&&a===0?(s.moveTo(e,n),s.lineTo(r,i)):(o=this._clipSegment(e,n,r,i,u,a))&&(s.moveTo(o[0],o[1]),s.lineTo(o[2],o[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){const n=this._clip(e);if(n)for(const r of this.delaunay.neighbors(e)){const i=this._clip(r);if(i){e:for(let s=0,o=n.length;s<o;s+=2)for(let u=0,a=i.length;u<a;u+=2)if(n[s]===i[u]&&n[s+1]===i[u+1]&&n[(s+2)%o]===i[(u+a-2)%a]&&n[(s+3)%o]===i[(u+a-1)%a]){yield r;break e}}}}_cell(e){const{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:s}}=this,o=r[e];if(o===-1)return null;const u=[];let a=o;do{const l=Math.floor(a/3);if(u.push(n[l*2],n[l*2+1]),a=a%3===2?a-2:a+1,s[a]!==e)break;a=i[a]}while(a!==o&&a!==-1);return u}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(e);if(n===null)return null;const{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){const r=n.length;let i=null,s,o,u=n[r-2],a=n[r-1],l,c=this._regioncode(u,a),f,x=0;for(let h=0;h<r;h+=2)if(s=u,o=a,u=n[h],a=n[h+1],l=c,c=this._regioncode(u,a),l===0&&c===0)f=x,x=0,i?i.push(u,a):i=[u,a];else{let p,m,g,y,E;if(l===0){if((p=this._clipSegment(s,o,u,a,l,c))===null)continue;[m,g,y,E]=p}else{if((p=this._clipSegment(u,a,s,o,c,l))===null)continue;[y,E,m,g]=p,f=x,x=this._edgecode(m,g),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(m,g):i=[m,g]}f=x,x=this._edgecode(y,E),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(y,E):i=[y,E]}if(i)f=x,x=this._edgecode(i[0],i[1]),f&&x&&this._edge(e,f,x,i,i.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return i}_clipSegment(e,n,r,i,s,o){const u=s<o;for(u&&([e,n,r,i,s,o]=[r,i,e,n,o,s]);;){if(s===0&&o===0)return u?[r,i,e,n]:[e,n,r,i];if(s&o)return null;let a,l,c=s||o;c&8?(a=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):c&4?(a=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):c&2?(l=n+(i-n)*(this.xmax-e)/(r-e),a=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),a=this.xmin),s?(e=a,n=l,s=this._regioncode(e,n)):(r=a,i=l,o=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,s,o){let u=Array.from(n),a;if((a=this._project(u[0],u[1],r,i))&&u.unshift(a[0],a[1]),(a=this._project(u[u.length-2],u[u.length-1],s,o))&&u.push(a[0],a[1]),u=this._clipFinite(e,u))for(let l=0,c=u.length,f,x=this._edgecode(u[c-2],u[c-1]);l<c;l+=2)f=x,x=this._edgecode(u[l],u[l+1]),f&&x&&(l=this._edge(e,f,x,u,l),c=u.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(u=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return u}_edge(e,n,r,i,s){for(;n!==r;){let o,u;switch(n){case 5:n=4;continue;case 4:n=6,o=this.xmax,u=this.ymin;break;case 6:n=2;continue;case 2:n=10,o=this.xmax,u=this.ymax;break;case 10:n=8;continue;case 8:n=9,o=this.xmin,u=this.ymax;break;case 9:n=1;continue;case 1:n=5,o=this.xmin,u=this.ymin;break}(i[s]!==o||i[s+1]!==u)&&this.contains(e,o,u)&&(i.splice(s,0,o,u),s+=2)}return s}_project(e,n,r,i){let s=1/0,o,u,a;if(i<0){if(n<=this.ymin)return null;(o=(this.ymin-n)/i)<s&&(a=this.ymin,u=e+(s=o)*r)}else if(i>0){if(n>=this.ymax)return null;(o=(this.ymax-n)/i)<s&&(a=this.ymax,u=e+(s=o)*r)}if(r>0){if(e>=this.xmax)return null;(o=(this.xmax-e)/r)<s&&(u=this.xmax,a=n+(s=o)*i)}else if(r<0){if(e<=this.xmin)return null;(o=(this.xmin-e)/r)<s&&(u=this.xmin,a=n+(s=o)*i)}return[u,a]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){const r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}};const fWe=2*Math.PI,C1=Math.pow;function xWe(t){return t[0]}function dWe(t){return t[1]}function hWe(t){const{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){const i=2*e[r],s=2*e[r+1],o=2*e[r+2];if((n[o]-n[i])*(n[s+1]-n[i+1])-(n[s]-n[i])*(n[o+1]-n[i+1])>1e-10)return!1}return!0}function pWe(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}class y${static from(e,n=xWe,r=dWe,i){return new y$("length"in e?gWe(e,n,r,i):Float64Array.from(mWe(e,n,r,i)))}constructor(e){this._delaunator=new DT(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&hWe(e)){this.collinear=Int32Array.from({length:n.length/2},(x,h)=>h).sort((x,h)=>n[2*x]-n[2*h]||n[2*x+1]-n[2*h+1]);const a=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[n[2*a],n[2*a+1],n[2*l],n[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let x=0,h=n.length/2;x<h;++x){const p=pWe(n[2*x],n[2*x+1],f);n[2*x]=p[0],n[2*x+1]=p[1]}this._delaunator=new DT(n)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,s=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),u=this._hullIndex.fill(-1);for(let a=0,l=r.length;a<l;++a){const c=s[a%3===2?a-2:a+1];(r[a]===-1||o[c]===-1)&&(o[c]=a)}for(let a=0,l=i.length;a<l;++a)u[i[a]]=a;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,i.length===2&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new cWe(this,e)}*neighbors(e){const{inedges:n,hull:r,_hullIndex:i,halfedges:s,triangles:o,collinear:u}=this;if(u){const f=u.indexOf(e);f>0&&(yield u[f-1]),f<u.length-1&&(yield u[f+1]);return}const a=n[e];if(a===-1)return;let l=a,c=-1;do{if(yield c=o[l],l=l%3===2?l-2:l+1,o[l]!==e)return;if(l=s[l],l===-1){const f=r[(i[e]+1)%r.length];f!==c&&(yield f);return}}while(l!==a)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;const i=r;let s;for(;(s=this._step(r,e,n))>=0&&s!==r&&s!==i;)r=s;return s}_step(e,n,r){const{inedges:i,hull:s,_hullIndex:o,halfedges:u,triangles:a,points:l}=this;if(i[e]===-1||!l.length)return(e+1)%(l.length>>1);let c=e,f=C1(n-l[e*2],2)+C1(r-l[e*2+1],2);const x=i[e];let h=x;do{let p=a[h];const m=C1(n-l[p*2],2)+C1(r-l[p*2+1],2);if(m<f&&(f=m,c=p),h=h%3===2?h-2:h+1,a[h]!==e)break;if(h=u[h],h===-1){if(h=s[(o[e]+1)%s.length],h!==p&&C1(n-l[h*2],2)+C1(r-l[h*2+1],2)<f)return h;break}}while(h!==x);return c}render(e){const n=e==null?e=new Ed:void 0,{points:r,halfedges:i,triangles:s}=this;for(let o=0,u=i.length;o<u;++o){const a=i[o];if(a<o)continue;const l=s[o]*2,c=s[a]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[c],r[c+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;const r=e==null?e=new Ed:void 0,{points:i}=this;for(let s=0,o=i.length;s<o;s+=2){const u=i[s],a=i[s+1];e.moveTo(u+n,a),e.arc(u,a,n,0,fWe)}return r&&r.value()}renderHull(e){const n=e==null?e=new Ed:void 0,{hull:r,points:i}=this,s=r[0]*2,o=r.length;e.moveTo(i[s],i[s+1]);for(let u=1;u<o;++u){const a=2*r[u];e.lineTo(i[a],i[a+1])}return e.closePath(),n&&n.value()}hullPolygon(){const e=new m$;return this.renderHull(e),e.value()}renderTriangle(e,n){const r=n==null?n=new Ed:void 0,{points:i,triangles:s}=this,o=s[e*=3]*2,u=s[e+1]*2,a=s[e+2]*2;return n.moveTo(i[o],i[o+1]),n.lineTo(i[u],i[u+1]),n.lineTo(i[a],i[a+1]),n.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){const n=new m$;return this.renderTriangle(e,n),n.value()}}function gWe(t,e,n,r){const i=t.length,s=new Float64Array(i*2);for(let o=0;o<i;++o){const u=t[o];s[o*2]=e.call(r,u,o,t),s[o*2+1]=n.call(r,u,o,t)}return s}function*mWe(t,e,n,r){let i=0;for(const s of t)yield e.call(r,s,i,t),yield n.call(r,s,i,t),++i}function E$(t){pe.call(this,null,t)}E$.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const yWe=[-1e5,-1e5,1e5,1e5];Fe(E$,pe,{transform(t,e){const n=t.as||"path",r=e.source;if(!r||!r.length)return e;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:yWe;const s=this.value=y$.from(r,t.x,t.y).voronoi(i);for(let o=0,u=r.length;o<u;++o){const a=s.cellPolygon(o);r[o][n]=a?EWe(a):null}return e.reflow(t.modified()).modifies(n)}});function EWe(t){const e=t[0][0],n=t[0][1];let r=t.length-1;for(;t[r][0]===e&&t[r][1]===n;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}const AWe=Object.freeze(Object.defineProperty({__proto__:null,voronoi:E$},Symbol.toStringTag,{value:"Module"}));var A$=Math.PI/180,Jy=64,FT=2048;function vWe(){var t=[256,256],e,n,r,i,s,o,u,a=Mse,l=[],c=Math.random,f={};f.layout=function(){for(var p=x(Sc()),m=RWe((t[0]>>5)*t[1]),g=null,y=l.length,E=-1,A=[],v=l.map(C=>({text:e(C),font:n(C),style:i(C),weight:s(C),rotate:o(C),size:~~(r(C)+1e-14),padding:u(C),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:C})).sort((C,_)=>_.size-C.size);++E<y;){var S=v[E];S.x=t[0]*(c()+.5)>>1,S.y=t[1]*(c()+.5)>>1,SWe(p,S,v,E),S.hasText&&h(m,S,g)&&(A.push(S),g?CWe(g,S):g=[{x:S.x+S.x0,y:S.y+S.y0},{x:S.x+S.x1,y:S.y+S.y1}],S.x-=t[0]>>1,S.y-=t[1]>>1)}return A};function x(p){p.width=p.height=1;var m=Math.sqrt(p.getContext("2d").getImageData(0,0,1,1).data.length>>2);p.width=(Jy<<5)/m,p.height=FT/m;var g=p.getContext("2d");return g.fillStyle=g.strokeStyle="red",g.textAlign="center",{context:g,ratio:m}}function h(p,m,g){for(var y=m.x,E=m.y,A=Math.sqrt(t[0]*t[0]+t[1]*t[1]),v=a(t),S=c()<.5?1:-1,C=-S,_,b,R;(_=v(C+=S))&&(b=~~_[0],R=~~_[1],!(Math.min(Math.abs(b),Math.abs(R))>=A));)if(m.x=y+b,m.y=E+R,!(m.x+m.x0<0||m.y+m.y0<0||m.x+m.x1>t[0]||m.y+m.y1>t[1])&&(!g||!_We(m,p,t[0]))&&(!g||bWe(m,g))){for(var O=m.sprite,L=m.width>>5,M=t[0]>>5,q=m.x-(L<<4),W=q&127,B=32-W,G=m.y1-m.y0,te=(m.y+m.y0)*M+(q>>5),X,de=0;de<G;de++){X=0;for(var be=0;be<=L;be++)p[te+be]|=X<<B|(be<L?(X=O[de*L+be])>>>W:0);te+=M}return m.sprite=null,!0}return!1}return f.words=function(p){return arguments.length?(l=p,f):l},f.size=function(p){return arguments.length?(t=[+p[0],+p[1]],f):t},f.font=function(p){return arguments.length?(n=Ad(p),f):n},f.fontStyle=function(p){return arguments.length?(i=Ad(p),f):i},f.fontWeight=function(p){return arguments.length?(s=Ad(p),f):s},f.rotate=function(p){return arguments.length?(o=Ad(p),f):o},f.text=function(p){return arguments.length?(e=Ad(p),f):e},f.spiral=function(p){return arguments.length?(a=OWe[p]||p,f):a},f.fontSize=function(p){return arguments.length?(r=Ad(p),f):r},f.padding=function(p){return arguments.length?(u=Ad(p),f):u},f.random=function(p){return arguments.length?(c=p,f):c},f}function SWe(t,e,n,r){if(!e.sprite){var i=t.context,s=t.ratio;i.clearRect(0,0,(Jy<<5)/s,FT/s);var o=0,u=0,a=0,l=n.length,c,f,x,h,p;for(--r;++r<l;){if(e=n[r],i.save(),i.font=e.style+" "+e.weight+" "+~~((e.size+1)/s)+"px "+e.font,c=i.measureText(e.text+"m").width*s,x=e.size<<1,e.rotate){var m=Math.sin(e.rotate*A$),g=Math.cos(e.rotate*A$),y=c*g,E=c*m,A=x*g,v=x*m;c=Math.max(Math.abs(y+v),Math.abs(y-v))+31>>5<<5,x=~~Math.max(Math.abs(E+A),Math.abs(E-A))}else c=c+31>>5<<5;if(x>a&&(a=x),o+c>=Jy<<5&&(o=0,u+=a,a=0),u+x>=FT)break;i.translate((o+(c>>1))/s,(u+(x>>1))/s),e.rotate&&i.rotate(e.rotate*A$),i.fillText(e.text,0,0),e.padding&&(i.lineWidth=2*e.padding,i.strokeText(e.text,0,0)),i.restore(),e.width=c,e.height=x,e.xoff=o,e.yoff=u,e.x1=c>>1,e.y1=x>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,o+=c}for(var S=i.getImageData(0,0,(Jy<<5)/s,FT/s).data,C=[];--r>=0;)if(e=n[r],!!e.hasText){for(c=e.width,f=c>>5,x=e.y1-e.y0,h=0;h<x*f;h++)C[h]=0;if(o=e.xoff,o==null)return;u=e.yoff;var _=0,b=-1;for(p=0;p<x;p++){for(h=0;h<c;h++){var R=f*p+(h>>5),O=S[(u+p)*(Jy<<5)+(o+h)<<2]?1<<31-h%32:0;C[R]|=O,_|=O}_?b=p:(e.y0++,x--,p--,u++)}e.y1=e.y0+b,e.sprite=C.slice(0,(e.y1-e.y0)*f)}}}function _We(t,e,n){n>>=5;for(var r=t.sprite,i=t.width>>5,s=t.x-(i<<4),o=s&127,u=32-o,a=t.y1-t.y0,l=(t.y+t.y0)*n+(s>>5),c,f=0;f<a;f++){c=0;for(var x=0;x<=i;x++)if((c<<u|(x<i?(c=r[f*i+x])>>>o:0))&e[l+x])return!0;l+=n}return!1}function CWe(t,e){var n=t[0],r=t[1];e.x+e.x0<n.x&&(n.x=e.x+e.x0),e.y+e.y0<n.y&&(n.y=e.y+e.y0),e.x+e.x1>r.x&&(r.x=e.x+e.x1),e.y+e.y1>r.y&&(r.y=e.y+e.y1)}function bWe(t,e){return t.x+t.x1>e[0].x&&t.x+t.x0<e[1].x&&t.y+t.y1>e[0].y&&t.y+t.y0<e[1].y}function Mse(t){var e=t[0]/t[1];return function(n){return[e*(n*=.1)*Math.cos(n),n*Math.sin(n)]}}function TWe(t){var e=4,n=e*t[0]/t[1],r=0,i=0;return function(s){var o=s<0?-1:1;switch(Math.sqrt(1+4*o*s)-o&3){case 0:r+=n;break;case 1:i+=e;break;case 2:r-=n;break;default:i-=e;break}return[r,i]}}function RWe(t){for(var e=[],n=-1;++n<t;)e[n]=0;return e}function Ad(t){return typeof t=="function"?t:function(){return t}}var OWe={archimedean:Mse,rectangular:TWe};const jse=["x","y","font","fontSize","fontStyle","fontWeight","angle"],NWe=["text","font","rotate","fontSize","fontStyle","fontWeight"];function v$(t){pe.call(this,vWe(),t)}v$.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:jse}]},Fe(v$,pe,{transform(t,e){t.size&&!(t.size[0]&&t.size[1])&&Se("Wordcloud size dimensions must be non-zero.");function n(p){const m=t[p];return ct(m)&&e.modified(m.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||NWe.some(n)))return;const i=e.materialize(e.SOURCE).source,s=this.value,o=t.as||jse;let u=t.fontSize||14,a;if(ct(u)?a=t.fontSizeRange:u=Ci(u),a){const p=u,m=Ot("sqrt")().domain(vl(i,p)).range(a);u=g=>m(p(g))}i.forEach(p=>{p[o[0]]=NaN,p[o[1]]=NaN,p[o[3]]=0});const l=s.words(i).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(u).random(ql).layout(),c=s.size(),f=c[0]>>1,x=c[1]>>1,h=l.length;for(let p=0,m,g;p<h;++p)m=l[p],g=m.datum,g[o[0]]=m.x+f,g[o[1]]=m.y+x,g[o[2]]=m.font,g[o[3]]=m.size,g[o[4]]=m.style,g[o[5]]=m.weight,g[o[6]]=m.rotate;return e.reflow(r).modifies(o)}});const DWe=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:v$},Symbol.toStringTag,{value:"Module"})),FWe=t=>new Uint8Array(t),wWe=t=>new Uint16Array(t),Zy=t=>new Uint32Array(t);function LWe(){let t=8,e=[],n=Zy(0),r=wT(0,t),i=wT(0,t);return{data:()=>e,seen:()=>n=IWe(n,e.length),add(s){for(let o=0,u=e.length,a=s.length,l;o<a;++o)l=s[o],l._index=u++,e.push(l)},remove(s,o){const u=e.length,a=Array(u-s),l=e;let c,f,x;for(f=0;!o[f]&&f<u;++f)a[f]=e[f],l[f]=f;for(x=f;f<u;++f)c=e[f],o[f]?l[f]=-1:(l[f]=x,r[x]=r[f],i[x]=i[f],a[x]=c,c._index=x++),r[f]=0;return e=a,l},size:()=>e.length,curr:()=>r,prev:()=>i,reset:s=>i[s]=r[s],all:()=>t<257?255:t<65537?65535:4294967295,set(s,o){r[s]|=o},clear(s,o){r[s]&=~o},resize(s,o){const u=r.length;(s>u||o>t)&&(t=Math.max(o,t),r=wT(s,t,r),i=wT(s,t))}}}function IWe(t,e,n){return t.length>=e?t:(n=n||new t.constructor(e),n.set(t),n)}function wT(t,e,n){const r=(e<257?FWe:e<65537?wWe:Zy)(t);return n&&r.set(n),r}function Use(t,e,n){const r=1<<e;return{one:r,zero:~r,range:n.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd(i,s){const o=this,u=o.bisect(o.range,i.value),a=i.index,l=u[0],c=u[1],f=a.length;let x;for(x=0;x<l;++x)s[a[x]]|=r;for(x=c;x<f;++x)s[a[x]]|=r;return o}}}function qse(){let t=Zy(0),e=[],n=0;function r(u,a,l){if(!a.length)return[];const c=n,f=a.length,x=Zy(f);let h=Array(f),p,m,g;for(g=0;g<f;++g)h[g]=u(a[g]),x[g]=g;if(h=$We(h,x),c)p=e,m=t,e=Array(c+f),t=Zy(c+f),BWe(l,p,m,c,h,x,f,e,t);else{if(l>0)for(g=0;g<f;++g)x[g]+=l;e=h,t=x}return n=c+f,{index:x,value:h}}function i(u,a){const l=n;let c,f,x;for(f=0;!a[t[f]]&&f<l;++f);for(x=f;f<l;++f)a[c=t[f]]||(t[x]=c,e[x]=e[f],++x);n=l-u}function s(u){for(let a=0,l=n;a<l;++a)t[a]=u[t[a]]}function o(u,a){let l;return a?l=a.length:(a=e,l=n),[_9e(a,u[0],0,l),pc(a,u[1],0,l)]}return{insert:r,remove:i,bisect:o,reindex:s,index:()=>t,size:()=>n}}function $We(t,e){return t.sort.call(e,(n,r)=>{const i=t[n],s=t[r];return i<s?-1:i>s?1:0}),T9e(t,e)}function BWe(t,e,n,r,i,s,o,u,a){let l=0,c=0,f;for(f=0;l<r&&c<o;++f)e[l]<i[c]?(u[f]=e[l],a[f]=n[l++]):(u[f]=i[c],a[f]=s[c++]+t);for(;l<r;++l,++f)u[f]=e[l],a[f]=n[l];for(;c<o;++c,++f)u[f]=i[c],a[f]=s[c]+t}function S$(t){pe.call(this,LWe(),t),this._indices=null,this._dims=null}S$.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},Fe(S$,pe,{transform(t,e){if(this._dims){var n=t.modified("fields")||t.fields.some(r=>e.modified(r.fields));return n?this.reinit(t,e):this.eval(t,e)}else return this.init(t,e)},init(t,e){const n=t.fields,r=t.query,i=this._indices={},s=this._dims=[],o=r.length;let u=0,a,l;for(;u<o;++u)a=n[u].fname,l=i[a]||(i[a]=qse()),s.push(Use(l,u,r[u]));return this.eval(t,e)},reinit(t,e){const n=e.materialize().fork(),r=t.fields,i=t.query,s=this._indices,o=this._dims,u=this.value,a=u.curr(),l=u.prev(),c=u.all(),f=n.rem=n.add,x=n.mod,h=i.length,p={};let m,g,y,E,A,v,S,C,_;if(l.set(a),e.rem.length&&(A=this.remove(t,e,n)),e.add.length&&u.add(e.add),e.mod.length)for(v={},E=e.mod,S=0,C=E.length;S<C;++S)v[E[S]._index]=1;for(S=0;S<h;++S)_=r[S],(!o[S]||t.modified("fields",S)||e.modified(_.fields))&&(y=_.fname,(m=p[y])||(s[y]=g=qse(),p[y]=m=g.insert(_,e.source,0)),o[S]=Use(g,S,i[S]).onAdd(m,a));for(S=0,C=u.data().length;S<C;++S)A[S]||(l[S]!==a[S]?f.push(S):v[S]&&a[S]!==c&&x.push(S));return u.mask=(1<<h)-1,n},eval(t,e){const n=e.materialize().fork(),r=this._dims.length;let i=0;return e.rem.length&&(this.remove(t,e,n),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,e,n)),e.add.length&&(this.insert(t,e,n),i|=(1<<r)-1),e.mod.length&&(this.modify(e,n),i|=(1<<r)-1),this.value.mask=i,n},insert(t,e,n){const r=e.add,i=this.value,s=this._dims,o=this._indices,u=t.fields,a={},l=n.add,c=i.size()+r.length,f=s.length;let x=i.size(),h,p,m;i.resize(c,f),i.add(r);const g=i.curr(),y=i.prev(),E=i.all();for(h=0;h<f;++h)p=u[h].fname,m=a[p]||(a[p]=o[p].insert(u[h],r,x)),s[h].onAdd(m,g);for(;x<c;++x)y[x]=E,g[x]!==E&&l.push(x)},modify(t,e){const n=e.mod,r=this.value,i=r.curr(),s=r.all(),o=t.mod;let u,a,l;for(u=0,a=o.length;u<a;++u)l=o[u]._index,i[l]!==s&&n.push(l)},remove(t,e,n){const r=this._indices,i=this.value,s=i.curr(),o=i.prev(),u=i.all(),a={},l=n.rem,c=e.rem;let f,x,h,p;for(f=0,x=c.length;f<x;++f)h=c[f]._index,a[h]=1,o[h]=p=s[h],s[h]=u,p!==u&&l.push(h);for(h in r)r[h].remove(x,a);return this.reindex(e,x,a),a},reindex(t,e,n){const r=this._indices,i=this.value;t.runAfter(()=>{const s=i.remove(e,n);for(const o in r)r[o].reindex(s)})},update(t,e,n){const r=this._dims,i=t.query,s=e.stamp,o=r.length;let u=0,a,l;for(n.filters=0,l=0;l<o;++l)t.modified("query",l)&&(a=l,++u);if(u===1)u=r[a].one,this.incrementOne(r[a],i[a],n.add,n.rem);else for(l=0,u=0;l<o;++l)t.modified("query",l)&&(u|=r[l].one,this.incrementAll(r[l],i[l],s,n.add),n.rem=n.add);return u},incrementAll(t,e,n,r){const i=this.value,s=i.seen(),o=i.curr(),u=i.prev(),a=t.index(),l=t.bisect(t.range),c=t.bisect(e),f=c[0],x=c[1],h=l[0],p=l[1],m=t.one;let g,y,E;if(f<h)for(g=f,y=Math.min(h,x);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;if(x>p)for(g=Math.max(f,p),y=x;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(x<p)for(g=Math.max(h,x),y=p;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;t.range=e.slice()},incrementOne(t,e,n,r){const i=this.value,s=i.curr(),o=t.index(),u=t.bisect(t.range),a=t.bisect(e),l=a[0],c=a[1],f=u[0],x=u[1],h=t.one;let p,m,g;if(l<f)for(p=l,m=Math.min(f,c);p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(l>f)for(p=f,m=Math.min(l,x);p<m;++p)g=o[p],s[g]^=h,r.push(g);if(c>x)for(p=Math.max(l,x),m=c;p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(c<x)for(p=Math.max(f,c),m=x;p<m;++p)g=o[p],s[g]^=h,r.push(g);t.range=e.slice()}});function _$(t){pe.call(this,null,t)}_$.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},Fe(_$,pe,{transform(t,e){const n=~(t.ignore||0),r=t.filter,i=r.mask;if(!(i&n))return e.StopPropagation;const s=e.fork(e.ALL),o=r.data(),u=r.curr(),a=r.prev(),l=c=>u[c]&n?null:o[c];return s.filter(s.MOD,l),i&i-1?(s.filter(s.ADD,c=>{const f=u[c]&n;return!f&&f^a[c]&n?o[c]:null}),s.filter(s.REM,c=>{const f=u[c]&n;return f&&!(f^(f^a[c]&n))?o[c]:null})):(s.filter(s.ADD,l),s.filter(s.REM,c=>(u[c]&n)===i?o[c]:null)),s.filter(s.SOURCE,c=>l(c._index))}});const kWe=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:S$,resolvefilter:_$},Symbol.toStringTag,{value:"Module"})),PWe="RawCode",vd="Literal",MWe="Property",jWe="Identifier",UWe="ArrayExpression",qWe="BinaryExpression",Hse="CallExpression",HWe="ConditionalExpression",zWe="LogicalExpression",QWe="MemberExpression",GWe="ObjectExpression",WWe="UnaryExpression";function xu(t){this.type=t}xu.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=VWe(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function VWe(t){switch(t.type){case UWe:return t.elements;case qWe:case zWe:return[t.left,t.right];case Hse:return[t.callee].concat(t.arguments);case HWe:return[t.test,t.consequent,t.alternate];case QWe:return[t.object,t.property];case GWe:return t.properties;case MWe:return[t.key,t.value];case WWe:return[t.argument];case jWe:case vd:case PWe:default:return[]}}var Fa,Ge,Ae,si,Mt,LT=1,eE=2,Sd=3,qc=4,IT=5,_d=6,ps=7,tE=8,YWe=9;Fa={},Fa[LT]="Boolean",Fa[eE]="<end>",Fa[Sd]="Identifier",Fa[qc]="Keyword",Fa[IT]="Null",Fa[_d]="Numeric",Fa[ps]="Punctuator",Fa[tE]="String",Fa[YWe]="RegularExpression";var KWe="ArrayExpression",XWe="BinaryExpression",JWe="CallExpression",ZWe="ConditionalExpression",zse="Identifier",eVe="Literal",tVe="LogicalExpression",nVe="MemberExpression",rVe="ObjectExpression",iVe="Property",sVe="UnaryExpression",vr="Unexpected token %0",oVe="Unexpected number",uVe="Unexpected string",aVe="Unexpected identifier",lVe="Unexpected reserved word",cVe="Unexpected end of input",C$="Invalid regular expression",b$="Invalid regular expression: missing /",Qse="Octal literals are not allowed in strict mode.",fVe="Duplicate data property in object literal not allowed in strict mode",kr="ILLEGAL",nE="Disabled.",xVe=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),dVe=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function $T(t,e){if(!t)throw new Error("ASSERT: "+e)}function r0(t){return t>=48&&t<=57}function T$(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function rE(t){return"01234567".indexOf(t)>=0}function hVe(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function iE(t){return t===10||t===13||t===8232||t===8233}function sE(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&xVe.test(String.fromCharCode(t))}function BT(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&dVe.test(String.fromCharCode(t))}const pVe={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Gse(){for(;Ae<si;){const t=Ge.charCodeAt(Ae);if(hVe(t)||iE(t))++Ae;else break}}function R$(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)Ae<si&&T$(Ge[Ae])?(r=Ge[Ae++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Nt({},vr,kr);return String.fromCharCode(i)}function gVe(){var t,e,n,r;for(t=Ge[Ae],e=0,t==="}"&&Nt({},vr,kr);Ae<si&&(t=Ge[Ae++],!!T$(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&Nt({},vr,kr),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function Wse(){var t,e;for(t=Ge.charCodeAt(Ae++),e=String.fromCharCode(t),t===92&&(Ge.charCodeAt(Ae)!==117&&Nt({},vr,kr),++Ae,t=R$("u"),(!t||t==="\\"||!sE(t.charCodeAt(0)))&&Nt({},vr,kr),e=t);Ae<si&&(t=Ge.charCodeAt(Ae),!!BT(t));)++Ae,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),Ge.charCodeAt(Ae)!==117&&Nt({},vr,kr),++Ae,t=R$("u"),(!t||t==="\\"||!BT(t.charCodeAt(0)))&&Nt({},vr,kr),e+=t);return e}function mVe(){var t,e;for(t=Ae++;Ae<si;){if(e=Ge.charCodeAt(Ae),e===92)return Ae=t,Wse();if(BT(e))++Ae;else break}return Ge.slice(t,Ae)}function yVe(){var t,e,n;return t=Ae,e=Ge.charCodeAt(Ae)===92?Wse():mVe(),e.length===1?n=Sd:pVe.hasOwnProperty(e)?n=qc:e==="null"?n=IT:e==="true"||e==="false"?n=LT:n=Sd,{type:n,value:e,start:t,end:Ae}}function O$(){var t=Ae,e=Ge.charCodeAt(Ae),n,r=Ge[Ae],i,s,o;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++Ae,{type:ps,value:String.fromCharCode(e),start:t,end:Ae};default:if(n=Ge.charCodeAt(Ae+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return Ae+=2,{type:ps,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:Ae};case 33:case 61:return Ae+=2,Ge.charCodeAt(Ae)===61&&++Ae,{type:ps,value:Ge.slice(t,Ae),start:t,end:Ae}}}if(o=Ge.substr(Ae,4),o===">>>=")return Ae+=4,{type:ps,value:o,start:t,end:Ae};if(s=o.substr(0,3),s===">>>"||s==="<<="||s===">>=")return Ae+=3,{type:ps,value:s,start:t,end:Ae};if(i=s.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return Ae+=2,{type:ps,value:i,start:t,end:Ae};if(i==="//"&&Nt({},vr,kr),"<>=!+-*%&|^/".indexOf(r)>=0)return++Ae,{type:ps,value:r,start:t,end:Ae};Nt({},vr,kr)}function EVe(t){let e="";for(;Ae<si&&T$(Ge[Ae]);)e+=Ge[Ae++];return e.length===0&&Nt({},vr,kr),sE(Ge.charCodeAt(Ae))&&Nt({},vr,kr),{type:_d,value:parseInt("0x"+e,16),start:t,end:Ae}}function AVe(t){let e="0"+Ge[Ae++];for(;Ae<si&&rE(Ge[Ae]);)e+=Ge[Ae++];return(sE(Ge.charCodeAt(Ae))||r0(Ge.charCodeAt(Ae)))&&Nt({},vr,kr),{type:_d,value:parseInt(e,8),octal:!0,start:t,end:Ae}}function Vse(){var t,e,n;if(n=Ge[Ae],$T(r0(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=Ae,t="",n!=="."){if(t=Ge[Ae++],n=Ge[Ae],t==="0"){if(n==="x"||n==="X")return++Ae,EVe(e);if(rE(n))return AVe(e);n&&r0(n.charCodeAt(0))&&Nt({},vr,kr)}for(;r0(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="."){for(t+=Ge[Ae++];r0(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="e"||n==="E")if(t+=Ge[Ae++],n=Ge[Ae],(n==="+"||n==="-")&&(t+=Ge[Ae++]),r0(Ge.charCodeAt(Ae)))for(;r0(Ge.charCodeAt(Ae));)t+=Ge[Ae++];else Nt({},vr,kr);return sE(Ge.charCodeAt(Ae))&&Nt({},vr,kr),{type:_d,value:parseFloat(t),start:e,end:Ae}}function vVe(){var t="",e,n,r,i,s=!1;for(e=Ge[Ae],$T(e==="'"||e==='"',"String literal must starts with a quote"),n=Ae,++Ae;Ae<si;)if(r=Ge[Ae++],r===e){e="";break}else if(r==="\\")if(r=Ge[Ae++],!r||!iE(r.charCodeAt(0)))switch(r){case"u":case"x":Ge[Ae]==="{"?(++Ae,t+=gVe()):t+=R$(r);break;case"n":t+=`
|
|
1465
|
+
`),i!==ni.text&&(Ta(e,0),o=e.ownerDocument,u=cd(n),s.forEach((a,l)=>{const c=fd(o,"tspan",rr);c.__data__=n,c.textContent=a,l&&(c.setAttribute("x",0),c.setAttribute("dy",u)),e.appendChild(c)}),ni.text=i)):(s=Lc(n,r),s!==ni.text&&(e.textContent=s,ni.text=s)),Fi(e,"font-family",mb(n)),Fi(e,"font-size",Gl(n)+"px"),Fi(e,"font-style",n.fontStyle),Fi(e,"font-variant",n.fontVariant),Fi(e,"font-weight",n.fontWeight)}};function Cy(t,e,n){e!==ni[t]&&(n?wUe(Vl,t,e,n):Fi(Vl,t,e),ni[t]=e)}function Ob(t,e,n){n!==ni[e]&&(n==null?t.style.removeProperty(e):t.style.setProperty(e,n+""),ni[e]=n)}function Ic(t,e){for(const n in e)Fi(t,n,e[n])}function Fi(t,e,n){n!=null?t.setAttribute(e,n):t.removeAttribute(e)}function wUe(t,e,n,r){n!=null?t.setAttributeNS(r,e,n):t.removeAttributeNS(r,e)}function Dne(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function Fne(t){Wl.call(this,t),this._text=null,this._defs={gradient:{},clipping:{}}}Fe(Fne,Wl,{svg(){return this._text},_render(t){const e=_ne();e.open("svg",ft({},yy,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&n!=="transparent"&&n!=="none"&&e.open("rect",{width:this._width,height:this._height,fill:n}).close(),e.open("g",bne,{transform:"translate("+this._origin+")"}),this.mark(e,t),e.close(),this.defs(e),this._text=e.close()+"",this},mark(t,e){const n=So[e.marktype],r=n.tag,i=[yne,n.attr];t.open("g",{class:rne(e),"clip-path":e.clip?H9(this,e,e.group):null},Ene(e),{"pointer-events":r!=="g"&&e.interactive===!1?"none":null});const s=o=>{const u=this.href(o);if(u&&t.open("a",u),t.open(r,this.attr(e,o,i,r!=="g"?r:null)),r==="text"){const a=Ey(o);if(_e(a)){const l={x:0,dy:cd(o)};for(let c=0;c<a.length;++c)t.open("tspan",c?l:null).text(Lc(o,a[c])).close()}else t.text(Lc(o,a))}else if(r==="g"){const a=o.strokeForeground,l=o.fill,c=o.stroke;a&&c&&(o.stroke=null),t.open("path",this.attr(e,o,n.background,"bgrect")).close(),t.open("g",this.attr(e,o,n.content)),Ca(o,f=>this.mark(t,f)),t.close(),a&&c?(l&&(o.fill=null),o.stroke=c,t.open("path",this.attr(e,o,n.foreground,"bgrect")).close(),l&&(o.fill=l)):t.open("path",this.attr(e,o,n.foreground,"bgfore")).close()}t.close(),u&&t.close()};return n.nested?e.items&&e.items.length&&s(e.items[0]):Ca(e,s),t.close()},href(t){const e=t.href;let n;if(e){if(n=this._hrefs&&this._hrefs[e])return n;this.sanitizeURL(e).then(r=>{r["xlink:href"]=r.href,r.href=null,(this._hrefs||(this._hrefs={}))[e]=r})}return null},attr(t,e,n,r){const i={},s=(o,u,a,l)=>{i[l||o]=u};return Array.isArray(n)?n.forEach(o=>o(s,e,this)):n(s,e,this),r&&LUe(i,e,t,r,this._defs),i},defs(t){const e=this._defs.gradient,n=this._defs.clipping;if(Object.keys(e).length+Object.keys(n).length!==0){t.open("defs");for(const i in e){const s=e[i],o=s.stops;s.gradient==="radial"?(t.open("pattern",{id:nb+i,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+i+")"}).close(),t.close(),t.open("radialGradient",{id:i,fx:s.x1,fy:s.y1,fr:s.r1,cx:s.x2,cy:s.y2,r:s.r2})):t.open("linearGradient",{id:i,x1:s.x1,x2:s.x2,y1:s.y1,y2:s.y2});for(let u=0;u<o.length;++u)t.open("stop",{offset:o[u].offset,"stop-color":o[u].color}).close();t.close()}for(const i in n){const s=n[i];t.open("clipPath",{id:i}),s.path?t.open("path",{d:s.path}).close():t.open("rect",{x:0,y:0,width:s.width,height:s.height}).close(),t.close()}t.close()}}});function LUe(t,e,n,r,i){let s;if(e==null||(r==="bgrect"&&n.interactive===!1&&(t["pointer-events"]="none"),r==="bgfore"&&(n.interactive===!1&&(t["pointer-events"]="none"),t.display="none",e.fill!==null)))return t;r==="image"&&e.smooth===!1&&(s=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),r==="text"&&(t["font-family"]=mb(e),t["font-size"]=Gl(e)+"px",t["font-style"]=e.fontStyle,t["font-variant"]=e.fontVariant,t["font-weight"]=e.fontWeight);for(const o in Tb){let u=e[o];const a=Tb[o];u==="transparent"&&(a==="fill"||a==="stroke")||u!=null&&(k9(u)&&(u=Ete(u,i.gradient,"")),t[a]=u)}for(const o in Rb){const u=e[o];u!=null&&(s=s||[],s.push(`${Rb[o]}: ${u};`))}return s&&(t.style=s.join(" ")),t}const wne="canvas",Lne="png",Ine="svg",$ne="none",dd={Canvas:wne,PNG:Lne,SVG:Ine,None:$ne},a1={};a1[wne]=a1[Lne]={renderer:gL,headless:gL,handler:bb},a1[Ine]={renderer:Rne,headless:Fne,handler:xne},a1[$ne]={};function _L(t,e){return t=String(t||"").toLowerCase(),arguments.length>1?(a1[t]=e,this):a1[t]}function IUe(t,e,n){const r=[],i=new nr().union(e),s=t.marktype;return s?Bne(t,i,n,r):s==="group"?kne(t,i,n,r):Se("Intersect scene must be mark node or group item.")}function Bne(t,e,n,r){if($Ue(t,e,n)){const i=t.items,s=t.marktype,o=i.length;let u=0;if(s==="group")for(;u<o;++u)kne(i[u],e,n,r);else for(const a=So[s].isect;u<o;++u){const l=i[u];Pne(l,e,a)&&r.push(l)}}return r}function $Ue(t,e,n){return t.bounds&&e.intersects(t.bounds)&&(t.marktype==="group"||t.interactive!==!1&&(!n||n(t)))}function kne(t,e,n,r){n&&n(t.mark)&&Pne(t,e,So.group.isect)&&r.push(t);const i=t.items,s=i&&i.length;if(s){const o=t.x||0,u=t.y||0;e.translate(-o,-u);for(let a=0;a<s;++a)Bne(i[a],e,n,r);e.translate(o,u)}return r}function Pne(t,e,n){const r=t.bounds;return e.encloses(r)||e.intersects(r)&&n(t,e)}const CL=new nr;function BUe(t){const e=t.clip;if(ct(e))e(fb(CL.clear()));else if(e)CL.set(0,0,t.group.width,t.group.height);else return;t.bounds.intersect(CL)}const l1="top",au="left",lu="right",$c="bottom",kUe="top-left",PUe="top-right",MUe="bottom-left",jUe="bottom-right",bL="start",TL="middle",wi="end",UUe="x",qUe="y",Nb="group",RL="axis",OL="title",HUe="frame",zUe="scope",NL="legend",Mne="row-header",jne="row-footer",Une="row-title",qne="column-header",Hne="column-footer",zne="column-title",QUe="padding",GUe="symbol",Qne="fit",Gne="fit-x",Wne="fit-y",WUe="pad",DL="none",Db="all",FL="each",wL="flush",Bc="column",kc="row";function Vne(t){pe.call(this,null,t)}Fe(Vne,pe,{transform(t,e){const n=e.dataflow,r=t.mark,i=r.marktype,s=So[i],o=s.bound;let u=r.bounds,a;if(s.nested)r.items.length&&n.dirty(r.items[0]),u=Fb(r,o),r.items.forEach(l=>{l.bounds.clear().union(u)});else if(i===Nb||t.modified())switch(e.visit(e.MOD,l=>n.dirty(l)),u.clear(),r.items.forEach(l=>u.union(Fb(l,o))),r.role){case RL:case NL:case OL:e.reflow()}else a=e.changed(e.REM),e.visit(e.ADD,l=>{u.union(Fb(l,o))}),e.visit(e.MOD,l=>{a=a||u.alignsWith(l.bounds),n.dirty(l),u.union(Fb(l,o))}),a&&(u.clear(),r.items.forEach(l=>u.union(l.bounds)));return BUe(r),e.modifies("bounds")}});function Fb(t,e,n){return e(t.bounds.clear(),t,n)}const Yne=":vega_identifier:";function LL(t){pe.call(this,0,t)}LL.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},Fe(LL,pe,{transform(t,e){const n=VUe(e.dataflow),r=t.as;let i=n.value;return e.visit(e.ADD,s=>s[r]=s[r]||++i),n.set(this.value=i),e}});function VUe(t){return t._signals[Yne]||(t._signals[Yne]=t.add(0))}function Kne(t){pe.call(this,null,t)}Fe(Kne,pe,{transform(t,e){let n=this.value;n||(n=e.dataflow.scenegraph().mark(t.markdef,YUe(t),t.index),n.group.context=t.context,t.context.group||(t.context.group=n.group),n.source=this.source,n.clip=t.clip,n.interactive=t.interactive,this.value=n);const r=n.marktype===Nb?Q9:z9;return e.visit(e.ADD,i=>r.call(i,n)),(t.modified("clip")||t.modified("interactive"))&&(n.clip=t.clip,n.interactive=!!t.interactive,n.zdirty=!0,e.reflow()),n.items=e.source,e}});function YUe(t){const e=t.groups,n=t.parent;return e&&e.size===1?e.get(Object.keys(e.object)[0]):e&&n?e.lookup(n):null}function Xne(t){pe.call(this,null,t)}const Jne={parity:t=>t.filter((e,n)=>n%2?e.opacity=0:1),greedy:(t,e)=>{let n;return t.filter((r,i)=>!i||!Zne(n.bounds,r.bounds,e)?(n=r,1):r.opacity=0)}},Zne=(t,e,n)=>n>Math.max(e.x1-t.x2,t.x1-e.x2,e.y1-t.y2,t.y1-e.y2),ere=(t,e)=>{for(var n=1,r=t.length,i=t[0].bounds,s;n<r;i=s,++n)if(Zne(i,s=t[n].bounds,e))return!0},KUe=t=>{const e=t.bounds;return e.width()>1&&e.height()>1},XUe=(t,e,n)=>{var r=t.range(),i=new nr;return e===l1||e===$c?i.set(r[0],-1/0,r[1],1/0):i.set(-1/0,r[0],1/0,r[1]),i.expand(n||1),s=>i.encloses(s.bounds)},tre=t=>(t.forEach(e=>e.opacity=1),t),nre=(t,e)=>t.reflow(e.modified()).modifies("opacity");Fe(Xne,pe,{transform(t,e){const n=Jne[t.method]||Jne.parity,r=t.separation||0;let i=e.materialize(e.SOURCE).source,s,o;if(!i||!i.length)return;if(!t.method)return t.modified("method")&&(tre(i),e=nre(e,t)),e;if(i=i.filter(KUe),!i.length)return;if(t.sort&&(i=i.slice().sort(t.sort)),s=tre(i),e=nre(e,t),s.length>=3&&ere(s,r)){do s=n(s,r);while(s.length>=3&&ere(s,r));s.length<3&&!St(i).opacity&&(s.length>1&&(St(s).opacity=0),St(i).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(o=XUe(t.boundScale,t.boundOrient,+t.boundTolerance),i.forEach(a=>{o(a)||(a.opacity=0)}));const u=s[0].mark.bounds.clear();return i.forEach(a=>{a.opacity&&u.union(a.bounds)}),e}});function rre(t){pe.call(this,null,t)}Fe(rre,pe,{transform(t,e){const n=e.dataflow;if(e.visit(e.ALL,r=>n.dirty(r)),e.fields&&e.fields.zindex){const r=e.source&&e.source[0];r&&(r.mark.zdirty=!0)}}});const ri=new nr;function c1(t,e,n){return t[e]===n?0:(t[e]=n,1)}function JUe(t){var e=t.items[0].orient;return e===au||e===lu}function ZUe(t){let e=+t.grid;return[t.ticks?e++:-1,t.labels?e++:-1,e+ +t.domain]}function eqe(t,e,n,r){var i=e.items[0],s=i.datum,o=i.translate!=null?i.translate:.5,u=i.orient,a=ZUe(s),l=i.range,c=i.offset,f=i.position,x=i.minExtent,h=i.maxExtent,p=s.title&&i.items[a[2]].items[0],m=i.titlePadding,g=i.bounds,y=p&&Kte(p),E=0,A=0,v,S;switch(ri.clear().union(g),g.clear(),(v=a[0])>-1&&g.union(i.items[v].bounds),(v=a[1])>-1&&g.union(i.items[v].bounds),u){case l1:E=f||0,A=-c,S=Math.max(x,Math.min(h,-g.y1)),g.add(0,-S).add(l,0),p&&wb(t,p,S,m,y,0,-1,g);break;case au:E=-c,A=f||0,S=Math.max(x,Math.min(h,-g.x1)),g.add(-S,0).add(0,l),p&&wb(t,p,S,m,y,1,-1,g);break;case lu:E=n+c,A=f||0,S=Math.max(x,Math.min(h,g.x2)),g.add(0,0).add(S,l),p&&wb(t,p,S,m,y,1,1,g);break;case $c:E=f||0,A=r+c,S=Math.max(x,Math.min(h,g.y2)),g.add(0,0).add(l,S),p&&wb(t,p,S,m,0,0,1,g);break;default:E=i.x,A=i.y}return Dc(g.translate(E,A),i),c1(i,"x",E+o)|c1(i,"y",A+o)&&(i.bounds=ri,t.dirty(i),i.bounds=g,t.dirty(i)),i.mark.bounds.clear().union(g)}function wb(t,e,n,r,i,s,o,u){const a=e.bounds;if(e.auto){const l=o*(n+i+r);let c=0,f=0;t.dirty(e),s?c=(e.x||0)-(e.x=l):f=(e.y||0)-(e.y=l),e.mark.bounds.clear().union(a.translate(-c,-f)),t.dirty(e)}u.union(a)}const ire=(t,e)=>Math.floor(Math.min(t,e)),sre=(t,e)=>Math.ceil(Math.max(t,e));function tqe(t){var e=t.items,n=e.length,r=0,i,s;const o={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;r<n;++r)if(i=e[r],s=i.items,i.marktype===Nb)switch(i.role){case RL:case NL:case OL:break;case Mne:o.rowheaders.push(...s);break;case jne:o.rowfooters.push(...s);break;case qne:o.colheaders.push(...s);break;case Hne:o.colfooters.push(...s);break;case Une:o.rowtitle=s[0];break;case zne:o.coltitle=s[0];break;default:o.marks.push(...s)}return o}function nqe(t){return new nr().set(0,0,t.width||0,t.height||0)}function rqe(t){const e=t.bounds.clone();return e.empty()?e.set(0,0,0,0):e.translate(-(t.x||0),-(t.y||0))}function xn(t,e,n){const r=He(t)?t[e]:t;return r??(n!==void 0?n:0)}function ore(t){return t<0?Math.ceil(-t):0}function ure(t,e,n){var r=!n.nodirty,i=n.bounds===wL?nqe:rqe,s=ri.set(0,0,0,0),o=xn(n.align,Bc),u=xn(n.align,kc),a=xn(n.padding,Bc),l=xn(n.padding,kc),c=n.columns||e.length,f=c<=0?1:Math.ceil(e.length/c),x=e.length,h=Array(x),p=Array(c),m=0,g=Array(x),y=Array(f),E=0,A=Array(x),v=Array(x),S=Array(x),C,_,b,R,O,L,M,q,W,B,G;for(_=0;_<c;++_)p[_]=0;for(_=0;_<f;++_)y[_]=0;for(_=0;_<x;++_)L=e[_],O=S[_]=i(L),L.x=L.x||0,A[_]=0,L.y=L.y||0,v[_]=0,b=_%c,R=~~(_/c),m=Math.max(m,M=Math.ceil(O.x2)),E=Math.max(E,q=Math.ceil(O.y2)),p[b]=Math.max(p[b],M),y[R]=Math.max(y[R],q),h[_]=a+ore(O.x1),g[_]=l+ore(O.y1),r&&t.dirty(e[_]);for(_=0;_<x;++_)_%c===0&&(h[_]=0),_<c&&(g[_]=0);if(o===FL)for(b=1;b<c;++b){for(G=0,_=b;_<x;_+=c)G<h[_]&&(G=h[_]);for(_=b;_<x;_+=c)h[_]=G+p[b-1]}else if(o===Db){for(G=0,_=0;_<x;++_)_%c&&G<h[_]&&(G=h[_]);for(_=0;_<x;++_)_%c&&(h[_]=G+m)}else for(o=!1,b=1;b<c;++b)for(_=b;_<x;_+=c)h[_]+=p[b-1];if(u===FL)for(R=1;R<f;++R){for(G=0,_=R*c,C=_+c;_<C;++_)G<g[_]&&(G=g[_]);for(_=R*c;_<C;++_)g[_]=G+y[R-1]}else if(u===Db){for(G=0,_=c;_<x;++_)G<g[_]&&(G=g[_]);for(_=c;_<x;++_)g[_]=G+E}else for(u=!1,R=1;R<f;++R)for(_=R*c,C=_+c;_<C;++_)g[_]+=y[R-1];for(W=0,_=0;_<x;++_)W=h[_]+(_%c?W:0),A[_]+=W-e[_].x;for(b=0;b<c;++b)for(B=0,_=b;_<x;_+=c)B+=g[_],v[_]+=B-e[_].y;if(o&&xn(n.center,Bc)&&f>1)for(_=0;_<x;++_)O=o===Db?m:p[_%c],W=O-S[_].x2-e[_].x-A[_],W>0&&(A[_]+=W/2);if(u&&xn(n.center,kc)&&c!==1)for(_=0;_<x;++_)O=u===Db?E:y[~~(_/c)],B=O-S[_].y2-e[_].y-v[_],B>0&&(v[_]+=B/2);for(_=0;_<x;++_)s.union(S[_].translate(A[_],v[_]));switch(W=xn(n.anchor,UUe),B=xn(n.anchor,qUe),xn(n.anchor,Bc)){case wi:W-=s.width();break;case TL:W-=s.width()/2}switch(xn(n.anchor,kc)){case wi:B-=s.height();break;case TL:B-=s.height()/2}for(W=Math.round(W),B=Math.round(B),s.clear(),_=0;_<x;++_)e[_].mark.bounds.clear();for(_=0;_<x;++_)L=e[_],L.x+=A[_]+=W,L.y+=v[_]+=B,s.union(L.mark.bounds.union(L.bounds.translate(A[_],v[_]))),r&&t.dirty(L);return s}function iqe(t,e,n){var r=tqe(e),i=r.marks,s=n.bounds===wL?sqe:oqe,o=n.offset,u=n.columns||i.length,a=u<=0?1:Math.ceil(i.length/u),l=a*u,c,f,x,h,p,m,g;const y=ure(t,i,n);y.empty()&&y.set(0,0,0,0),r.rowheaders&&(m=xn(n.headerBand,kc,null),c=Lb(t,r.rowheaders,i,u,a,-xn(o,"rowHeader"),ire,0,s,"x1",0,u,1,m)),r.colheaders&&(m=xn(n.headerBand,Bc,null),f=Lb(t,r.colheaders,i,u,u,-xn(o,"columnHeader"),ire,1,s,"y1",0,1,u,m)),r.rowfooters&&(m=xn(n.footerBand,kc,null),x=Lb(t,r.rowfooters,i,u,a,xn(o,"rowFooter"),sre,0,s,"x2",u-1,u,1,m)),r.colfooters&&(m=xn(n.footerBand,Bc,null),h=Lb(t,r.colfooters,i,u,u,xn(o,"columnFooter"),sre,1,s,"y2",l-u,1,u,m)),r.rowtitle&&(p=xn(n.titleAnchor,kc),g=xn(o,"rowTitle"),g=p===wi?x+g:c-g,m=xn(n.titleBand,kc,.5),are(t,r.rowtitle,g,0,y,m)),r.coltitle&&(p=xn(n.titleAnchor,Bc),g=xn(o,"columnTitle"),g=p===wi?h+g:f-g,m=xn(n.titleBand,Bc,.5),are(t,r.coltitle,g,1,y,m))}function sqe(t,e){return e==="x1"?t.x||0:e==="y1"?t.y||0:e==="x2"?(t.x||0)+(t.width||0):e==="y2"?(t.y||0)+(t.height||0):void 0}function oqe(t,e){return t.bounds[e]}function Lb(t,e,n,r,i,s,o,u,a,l,c,f,x,h){var p=n.length,m=0,g=0,y,E,A,v,S,C,_,b,R;if(!p)return m;for(y=c;y<p;y+=f)n[y]&&(m=o(m,a(n[y],l)));if(!e.length)return m;for(e.length>i&&(t.warn("Grid headers exceed limit: "+i),e=e.slice(0,i)),m+=s,E=0,v=e.length;E<v;++E)t.dirty(e[E]),e[E].mark.bounds.clear();for(y=c,E=0,v=e.length;E<v;++E,y+=f){for(C=e[E],S=C.mark.bounds,A=y;A>=0&&(_=n[A])==null;A-=x);u?(b=h==null?_.x:Math.round(_.bounds.x1+h*_.bounds.width()),R=m):(b=m,R=h==null?_.y:Math.round(_.bounds.y1+h*_.bounds.height())),S.union(C.bounds.translate(b-(C.x||0),R-(C.y||0))),C.x=b,C.y=R,t.dirty(C),g=o(g,S[l])}return g}function are(t,e,n,r,i,s){if(e){t.dirty(e);var o=n,u=n;r?o=Math.round(i.x1+s*i.width()):u=Math.round(i.y1+s*i.height()),e.bounds.translate(o-(e.x||0),u-(e.y||0)),e.mark.bounds.clear().union(e.bounds),e.x=o,e.y=u,t.dirty(e)}}function uqe(t,e){const n=t[e]||{};return(r,i)=>n[r]!=null?n[r]:t[r]!=null?t[r]:i}function aqe(t,e){let n=-1/0;return t.forEach(r=>{r.offset!=null&&(n=Math.max(n,r.offset))}),n>-1/0?n:e}function lqe(t,e,n,r,i,s,o){const u=uqe(n,e),a=aqe(t,u("offset",0)),l=u("anchor",bL),c=l===wi?1:l===TL?.5:0,f={align:FL,bounds:u("bounds",wL),columns:u("direction")==="vertical"?1:t.length,padding:u("margin",8),center:u("center"),nodirty:!0};switch(e){case au:f.anchor={x:Math.floor(r.x1)-a,column:wi,y:c*(o||r.height()+2*r.y1),row:l};break;case lu:f.anchor={x:Math.ceil(r.x2)+a,y:c*(o||r.height()+2*r.y1),row:l};break;case l1:f.anchor={y:Math.floor(i.y1)-a,row:wi,x:c*(s||i.width()+2*i.x1),column:l};break;case $c:f.anchor={y:Math.ceil(i.y2)+a,x:c*(s||i.width()+2*i.x1),column:l};break;case kUe:f.anchor={x:a,y:a};break;case PUe:f.anchor={x:s-a,y:a,column:wi};break;case MUe:f.anchor={x:a,y:o-a,row:wi};break;case jUe:f.anchor={x:s-a,y:o-a,column:wi,row:wi};break}return f}function cqe(t,e){var n=e.items[0],r=n.datum,i=n.orient,s=n.bounds,o=n.x,u=n.y,a,l;return n._bounds?n._bounds.clear().union(s):n._bounds=s.clone(),s.clear(),xqe(t,n,n.items[0].items[0]),s=fqe(n,s),a=2*n.padding,l=2*n.padding,s.empty()||(a=Math.ceil(s.width()+a),l=Math.ceil(s.height()+l)),r.type===GUe&&dqe(n.items[0].items[0].items[0].items),i!==DL&&(n.x=o=0,n.y=u=0),n.width=a,n.height=l,Dc(s.set(o,u,o+a,u+l),n),n.mark.bounds.clear().union(s),n}function fqe(t,e){return t.items.forEach(n=>e.union(n.bounds)),e.x1=t.padding,e.y1=t.padding,e}function xqe(t,e,n){var r=e.padding,i=r-n.x,s=r-n.y;if(!e.datum.title)(i||s)&&by(t,n,i,s);else{var o=e.items[1].items[0],u=o.anchor,a=e.titlePadding||0,l=r-o.x,c=r-o.y;switch(o.orient){case au:i+=Math.ceil(o.bounds.width())+a;break;case lu:case $c:break;default:s+=o.bounds.height()+a}switch((i||s)&&by(t,n,i,s),o.orient){case au:c+=f1(e,n,o,u,1,1);break;case lu:l+=f1(e,n,o,wi,0,0)+a,c+=f1(e,n,o,u,1,1);break;case $c:l+=f1(e,n,o,u,0,0),c+=f1(e,n,o,wi,-1,0,1)+a;break;default:l+=f1(e,n,o,u,0,0)}(l||c)&&by(t,o,l,c),(l=Math.round(o.bounds.x1-r))<0&&(by(t,n,-l,0),by(t,o,-l,0))}}function f1(t,e,n,r,i,s,o){const u=t.datum.type!=="symbol",a=n.datum.vgrad,l=u&&(s||!a)&&!o?e.items[0]:e,c=l.bounds[i?"y2":"x2"]-t.padding,f=a&&s?c:0,x=a&&s?0:c,h=i<=0?0:Kte(n);return Math.round(r===bL?f:r===wi?x-h:.5*(c-h))}function by(t,e,n,r){e.x+=n,e.y+=r,e.bounds.translate(n,r),e.mark.bounds.translate(n,r),t.dirty(e)}function dqe(t){const e=t.reduce((n,r)=>(n[r.column]=Math.max(r.bounds.x2-r.x,n[r.column]||0),n),{});t.forEach(n=>{n.width=e[n.column],n.height=n.bounds.y2-n.y})}function hqe(t,e,n,r,i){var s=e.items[0],o=s.frame,u=s.orient,a=s.anchor,l=s.offset,c=s.padding,f=s.items[0].items[0],x=s.items[1]&&s.items[1].items[0],h=u===au||u===lu?r:n,p=0,m=0,g=0,y=0,E=0,A;if(o!==Nb?u===au?(p=i.y2,h=i.y1):u===lu?(p=i.y1,h=i.y2):(p=i.x1,h=i.x2):u===au&&(p=r,h=0),A=a===bL?p:a===wi?h:(p+h)/2,x&&x.text){switch(u){case l1:case $c:E=f.bounds.height()+c;break;case au:y=f.bounds.width()+c;break;case lu:y=-f.bounds.width()-c;break}ri.clear().union(x.bounds),ri.translate(y-(x.x||0),E-(x.y||0)),c1(x,"x",y)|c1(x,"y",E)&&(t.dirty(x),x.bounds.clear().union(ri),x.mark.bounds.clear().union(ri),t.dirty(x)),ri.clear().union(x.bounds)}else ri.clear();switch(ri.union(f.bounds),u){case l1:m=A,g=i.y1-ri.height()-l;break;case au:m=i.x1-ri.width()-l,g=A;break;case lu:m=i.x2+ri.width()+l,g=A;break;case $c:m=A,g=i.y2+l;break;default:m=s.x,g=s.y}return c1(s,"x",m)|c1(s,"y",g)&&(ri.translate(m,g),t.dirty(s),s.bounds.clear().union(ri),e.bounds.clear().union(ri),t.dirty(s)),s.bounds}function lre(t){pe.call(this,null,t)}Fe(lre,pe,{transform(t,e){const n=e.dataflow;return t.mark.items.forEach(r=>{t.layout&&iqe(n,r,t.layout),gqe(n,r,t)}),pqe(t.mark.group)?e.reflow():e}});function pqe(t){return t&&t.mark.role!=="legend-entry"}function gqe(t,e,n){var r=e.items,i=Math.max(0,e.width||0),s=Math.max(0,e.height||0),o=new nr().set(0,0,i,s),u=o.clone(),a=o.clone(),l=[],c,f,x,h,p,m;for(p=0,m=r.length;p<m;++p)switch(f=r[p],f.role){case RL:h=JUe(f)?u:a,h.union(eqe(t,f,i,s));break;case OL:c=f;break;case NL:l.push(cqe(t,f));break;case HUe:case zUe:case Mne:case jne:case Une:case qne:case Hne:case zne:u.union(f.bounds),a.union(f.bounds);break;default:o.union(f.bounds)}if(l.length){const g={};l.forEach(y=>{x=y.orient||lu,x!==DL&&(g[x]||(g[x]=[])).push(y)});for(const y in g){const E=g[y];ure(t,E,lqe(E,y,n.legends,u,a,i,s))}l.forEach(y=>{const E=y.bounds;if(E.equals(y._bounds)||(y.bounds=y._bounds,t.dirty(y),y.bounds=E,t.dirty(y)),n.autosize&&(n.autosize.type===Qne||n.autosize.type===Gne||n.autosize.type===Wne))switch(y.orient){case au:case lu:o.add(E.x1,0).add(E.x2,0);break;case l1:case $c:o.add(0,E.y1).add(0,E.y2)}else o.union(E)})}o.union(u).union(a),c&&o.union(hqe(t,c,i,s,o)),e.clip&&o.set(0,0,e.width||0,e.height||0),mqe(t,e,o,n)}function mqe(t,e,n,r){const i=r.autosize||{},s=i.type;if(t._autosize<1||!s)return;let o=t._width,u=t._height,a=Math.max(0,e.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,e.height||0),f=Math.max(0,Math.ceil(-n.y1));const x=Math.max(0,Math.ceil(n.x2-a)),h=Math.max(0,Math.ceil(n.y2-c));if(i.contains===QUe){const p=t.padding();o-=p.left+p.right,u-=p.top+p.bottom}s===DL?(l=0,f=0,a=o,c=u):s===Qne?(a=Math.max(0,o-l-x),c=Math.max(0,u-f-h)):s===Gne?(a=Math.max(0,o-l-x),u=c+f+h):s===Wne?(o=a+l+x,c=Math.max(0,u-f-h)):s===WUe&&(o=a+l+x,u=c+f+h),t._resizeView(o,u,a,c,[l,f],i.resize)}const yqe=Object.freeze(Object.defineProperty({__proto__:null,bound:Vne,identifier:LL,mark:Kne,overlap:Xne,render:rre,viewlayout:lre},Symbol.toStringTag,{value:"Module"}));function cre(t){pe.call(this,null,t)}Fe(cre,pe,{transform(t,e){if(this.value&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.scale,o=t.count==null?t.values?t.values.length:10:t.count,u=I9(s,o,t.minstep),a=t.format||fte(n,s,u,t.formatSpecifier,t.formatType,!!t.values),l=t.values?cte(s,t.values,u):$9(s,u);return i&&(r.rem=i),i=l.map((c,f)=>$t({index:f/(l.length-1||1),value:c,label:a(c)})),t.extra&&i.length&&i.push($t({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}});function fre(t){pe.call(this,null,t)}function Eqe(){return $t({})}function Aqe(t){const e=m3().test(n=>n.exit);return e.lookup=n=>e.get(t(n)),e}Fe(fre,pe,{transform(t,e){var n=e.dataflow,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.item||Eqe,s=t.key||Ze,o=this.value;return _e(r.encode)&&(r.encode=null),o&&(t.modified("key")||e.modified(s))&&Se("DataJoin does not support modified key function or fields."),o||(e=e.addAll(),this.value=o=Aqe(s)),e.visit(e.ADD,u=>{const a=s(u);let l=o.get(a);l?l.exit?(o.empty--,r.add.push(l)):r.mod.push(l):(l=i(u),o.set(a,l),r.add.push(l)),l.datum=u,l.exit=!1}),e.visit(e.MOD,u=>{const a=s(u),l=o.get(a);l&&(l.datum=u,r.mod.push(l))}),e.visit(e.REM,u=>{const a=s(u),l=o.get(a);u===l.datum&&!l.exit&&(r.rem.push(l),l.exit=!0,++o.empty)}),e.changed(e.ADD_MOD)&&r.modifies("datum"),(e.clean()||t.clean&&o.empty>n.cleanThreshold)&&n.runAfter(o.clean),r}});function xre(t){pe.call(this,null,t)}Fe(xre,pe,{transform(t,e){var n=e.fork(e.ADD_REM),r=t.mod||!1,i=t.encoders,s=e.encode;if(_e(s))if(n.changed()||s.every(f=>i[f]))s=s[0],n.encode=null;else return e.StopPropagation;var o=s==="enter",u=i.update||Fx,a=i.enter||Fx,l=i.exit||Fx,c=(s&&!o?i[s]:u)||Fx;if(e.changed(e.ADD)&&(e.visit(e.ADD,f=>{a(f,t),u(f,t)}),n.modifies(a.output),n.modifies(u.output),c!==Fx&&c!==u&&(e.visit(e.ADD,f=>{c(f,t)}),n.modifies(c.output))),e.changed(e.REM)&&l!==Fx&&(e.visit(e.REM,f=>{l(f,t)}),n.modifies(l.output)),o||c!==Fx){const f=e.MOD|(t.modified()?e.REFLOW:0);o?(e.visit(f,x=>{const h=a(x,t)||r;(c(x,t)||h)&&n.mod.push(x)}),n.mod.length&&n.modifies(a.output)):e.visit(f,x=>{(c(x,t)||r)&&n.mod.push(x)}),n.mod.length&&n.modifies(c.output)}return n.changed()?n:e.StopPropagation}});function dre(t){pe.call(this,[],t)}Fe(dre,pe,{transform(t,e){if(this.value!=null&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.type||tb,o=t.scale,u=+t.limit,a=I9(o,t.count==null?5:t.count,t.minstep),l=!!t.values||s===tb,c=t.format||pte(n,o,a,s,t.formatSpecifier,t.formatType,l),f=t.values||hte(o,a),x,h,p,m,g;return i&&(r.rem=i),s===tb?(u&&f.length>u?(e.dataflow.warn("Symbol legend count exceeds limit, filtering items."),i=f.slice(0,u-1),g=!0):i=f,ct(p=t.size)?(!t.values&&o(i[0])===0&&(i=i.slice(1)),m=i.reduce((y,E)=>Math.max(y,p(E,t)),0)):p=Ci(m=p||8),i=i.map((y,E)=>$t({index:E,label:c(y,E,i),value:y,offset:m,size:p(y,t)})),g&&(g=f[i.length],i.push($t({index:i.length,label:`…${f.length-i.length} entries`,value:g,offset:m,size:p(g,t)})))):s===MPe?(x=o.domain(),h=ite(o,x[0],St(x)),f.length<3&&!t.values&&x[0]!==St(x)&&(f=[x[0],St(x)]),i=f.map((y,E)=>$t({index:E,label:c(y,E,f),value:y,perc:h(y)}))):(p=f.length-1,h=KPe(o),i=f.map((y,E)=>$t({index:E,label:c(y,E,f),value:y,perc:E?h(y):0,perc2:E===p?1:h(f[E+1])}))),r.source=i,r.add=i,this.value=i,r}});const vqe=t=>t.source.x,Sqe=t=>t.source.y,_qe=t=>t.target.x,Cqe=t=>t.target.y;function IL(t){pe.call(this,{},t)}IL.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},Fe(IL,pe,{transform(t,e){var n=t.sourceX||vqe,r=t.sourceY||Sqe,i=t.targetX||_qe,s=t.targetY||Cqe,o=t.as||"path",u=t.orient||"vertical",a=t.shape||"line",l=mre.get(a+"-"+u)||mre.get(a);return l||Se("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),e.visit(e.SOURCE,c=>{c[o]=l(n(c),r(c),i(c),s(c))}),e.reflow(t.modified()).modifies(o)}});const hre=(t,e,n,r)=>"M"+t+","+e+"L"+n+","+r,bqe=(t,e,n,r)=>hre(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),pre=(t,e,n,r)=>{var i=n-t,s=r-e,o=Math.sqrt(i*i+s*s)/2,u=180*Math.atan2(s,i)/Math.PI;return"M"+t+","+e+"A"+o+","+o+" "+u+" 0 1 "+n+","+r},Tqe=(t,e,n,r)=>pre(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),gre=(t,e,n,r)=>{const i=n-t,s=r-e,o=.2*(i+s),u=.2*(s-i);return"M"+t+","+e+"C"+(t+o)+","+(e+u)+" "+(n+u)+","+(r-o)+" "+n+","+r},mre=m3({line:hre,"line-radial":bqe,arc:pre,"arc-radial":Tqe,curve:gre,"curve-radial":(t,e,n,r)=>gre(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),"orthogonal-horizontal":(t,e,n,r)=>"M"+t+","+e+"V"+r+"H"+n,"orthogonal-vertical":(t,e,n,r)=>"M"+t+","+e+"H"+n+"V"+r,"orthogonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=Math.abs(n-t)>Math.PI?n<=t:n>t;return"M"+e*i+","+e*s+"A"+e+","+e+" 0 0,"+(a?1:0)+" "+e*o+","+e*u+"L"+r*o+","+r*u},"diagonal-horizontal":(t,e,n,r)=>{const i=(t+n)/2;return"M"+t+","+e+"C"+i+","+e+" "+i+","+r+" "+n+","+r},"diagonal-vertical":(t,e,n,r)=>{const i=(e+r)/2;return"M"+t+","+e+"C"+t+","+i+" "+n+","+i+" "+n+","+r},"diagonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=(e+r)/2;return"M"+e*i+","+e*s+"C"+a*i+","+a*s+" "+a*o+","+a*u+" "+r*o+","+r*u}});function $L(t){pe.call(this,null,t)}$L.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},Fe($L,pe,{transform(t,e){var n=t.as||["startAngle","endAngle"],r=n[0],i=n[1],s=t.field||g3,o=t.startAngle||0,u=t.endAngle!=null?t.endAngle:2*Math.PI,a=e.source,l=a.map(s),c=l.length,f=o,x=(u-o)/cX(l),h=Ps(c),p,m,g;for(t.sort&&h.sort((y,E)=>l[y]-l[E]),p=0;p<c;++p)g=l[h[p]],m=a[h[p]],m[r]=f,m[i]=f+=g*x;return this.value=l,e.reflow(t.modified()).modifies(n)}});const Rqe=5;function Oqe(t){const e=t.type;return!t.bins&&(e===e1||e===uy||e===ay)}function yre(t){return F9(t)&&t!==va}const Nqe=ia(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function Ere(t){pe.call(this,null,t),this.modified(!0)}Fe(Ere,pe,{transform(t,e){var n=e.dataflow,r=this.value,i=Dqe(t);(!r||i!==r.type)&&(this.value=r=Ot(i)());for(i in t)if(!Nqe[i]){if(i==="padding"&&yre(r.type))continue;ct(r[i])?r[i](t[i]):n.warn("Unsupported scale property: "+i)}return Bqe(r,t,$qe(r,t,wqe(r,t,n))),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function Dqe(t){var e=t.type,n="",r;return e===va?va+"-"+e1:(Fqe(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?va+"-":r===3?t1+"-":""),(n+e||e1).toLowerCase())}function Fqe(t){const e=t.type;return F9(e)&&e!==nd&&e!==rd&&(t.scheme||t.range&&t.range.length&&t.range.every(je))}function wqe(t,e,n){const r=Lqe(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,s=t.type,o=e.zero||e.zero===void 0&&Oqe(t),u,a;if(!i)return 0;if(yre(s)&&e.padding&&i[0]!==St(i)&&(i=Iqe(s,i,e.range,e.padding,e.exponent,e.constant)),(o||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(u=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[u]<0&&(i[u]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[u]=e.domainMax),e.domainMid!=null)){a=e.domainMid;const l=a>i[u]?u+1:a<i[0]?0:u;l!==u&&n.warn("Scale domainMid exceeds domain min or max.",a),i.splice(l,0,a)}return t.domain(Are(s,i,n)),s===T9&&t.unknown(e.domainImplicit?Jw:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&I9(t,e.nice)||null),i.length}function Lqe(t,e,n){return e?(t.domain(Are(t.type,e,n)),e.length):-1}function Iqe(t,e,n,r,i,s){var o=Math.abs(St(n)-n[0]),u=o/(o-2*r),a=t===zl?MY(e,null,u):t===ay?zF(e,null,u,.5):t===uy?zF(e,null,u,i||1):t===XC?jY(e,null,u,s||1):PY(e,null,u);return e=e.slice(),e[0]=a[0],e[e.length-1]=a[1],e}function Are(t,e,n){if(tte(t)){var r=Math.abs(e.reduce((i,s)=>i+(s<0?-1:s>0?1:0),0));r!==e.length&&n.warn("Log scale domain includes zero: "+we(e))}return e}function $qe(t,e,n){let r=e.bins;if(r&&!_e(r)){const i=t.domain(),s=i[0],o=St(i),u=r.step;let a=r.start==null?s:r.start,l=r.stop==null?o:r.stop;u||Se("Scale bins parameter missing step property."),a<s&&(a=u*Math.ceil(s/u)),l>o&&(l=u*Math.floor(o/u)),r=Ps(a,l+u/2,u)}return r?t.bins=r:t.bins&&delete t.bins,t.type===O9&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function Bqe(t,e,n){var r=t.type,i=e.round||!1,s=e.range;if(e.rangeStep!=null)s=kqe(r,e,n);else if(e.scheme&&(s=Pqe(r,e,n),ct(s))){if(t.interpolator)return t.interpolator(s);Se(`Scale type ${r} does not support interpolating color schemes.`)}if(s&&nte(r))return t.interpolator(L9(BL(s,e.reverse),e.interpolate,e.interpolateGamma));s&&e.interpolate&&t.interpolate?t.interpolate(ste(e.interpolate,e.interpolateGamma)):ct(t.round)?t.round(i):ct(t.rangeRound)&&t.interpolate(i?sy:Tc),s&&t.range(BL(s,e.reverse))}function kqe(t,e,n){t!==Yee&&t!==R9&&Se("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===R9?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*b9(n,i,r)]}function Pqe(t,e,n){var r=e.schemeExtent,i,s;return _e(e.scheme)?s=L9(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),s=lte(i),s||Se(`Unrecognized scheme name: ${e.scheme}`)),n=t===ZC?n+1:t===O9?n-1:t===n1||t===JC?+e.schemeCount||Rqe:n,nte(t)?vre(s,r,e.reverse):ct(s)?IPe(vre(s,r),n):t===T9?s:s.slice(0,n)}function vre(t,e,n){return ct(t)&&(e||n)?LPe(t,BL(e||[0,1],n)):t}function BL(t,e){return e?t.slice().reverse():t}function Sre(t){pe.call(this,null,t)}Fe(Sre,pe,{transform(t,e){const n=t.modified("sort")||e.changed(e.ADD)||e.modified(t.sort.fields)||e.modified("datum");return n&&e.source.sort(Gx(t.sort)),this.modified(n),e}});const _re="zero",Cre="center",bre="normalize",Tre=["y0","y1"];function kL(t){pe.call(this,null,t)}kL.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:_re,values:[_re,Cre,bre]},{name:"as",type:"string",array:!0,length:2,default:Tre}]},Fe(kL,pe,{transform(t,e){var n=t.as||Tre,r=n[0],i=n[1],s=Gx(t.sort),o=t.field||g3,u=t.offset===Cre?Mqe:t.offset===bre?jqe:Uqe,a,l,c,f;for(a=qqe(e.source,t.groupby,s,o),l=0,c=a.length,f=a.max;l<c;++l)u(a[l],f,o,r,i);return e.reflow(t.modified()).modifies(n)}});function Mqe(t,e,n,r,i){for(var s=(e-t.sum)/2,o=t.length,u=0,a;u<o;++u)a=t[u],a[r]=s,a[i]=s+=Math.abs(n(a))}function jqe(t,e,n,r,i){for(var s=1/t.sum,o=0,u=t.length,a=0,l=0,c;a<u;++a)c=t[a],c[r]=o,c[i]=o=s*(l+=Math.abs(n(c)))}function Uqe(t,e,n,r,i){for(var s=0,o=0,u=t.length,a=0,l,c;a<u;++a)c=t[a],l=+n(c),l<0?(c[r]=o,c[i]=o+=l):(c[r]=s,c[i]=s+=l)}function qqe(t,e,n,r){var i=[],s=m=>m(c),o,u,a,l,c,f,x,h,p;if(e==null)i.push(t.slice());else for(o={},u=0,a=t.length;u<a;++u)c=t[u],f=e.map(s),x=o[f],x||(o[f]=x=[],i.push(x)),x.push(c);for(f=0,p=0,l=i.length;f<l;++f){for(x=i[f],u=0,h=0,a=x.length;u<a;++u)h+=Math.abs(r(x[u]));x.sum=h,h>p&&(p=h),n&&x.sort(n)}return i.max=p,i}const Hqe=Object.freeze(Object.defineProperty({__proto__:null,axisticks:cre,datajoin:fre,encode:xre,legendentries:dre,linkpath:IL,pie:$L,scale:Ere,sortitems:Sre,stack:kL},Symbol.toStringTag,{value:"Module"}));var tt=1e-6,Ib=1e-12,ht=Math.PI,wn=ht/2,$b=ht/4,Li=ht*2,Mn=180/ht,dt=ht/180,yt=Math.abs,x1=Math.atan,_o=Math.atan2,nt=Math.cos,Bb=Math.ceil,Rre=Math.exp,PL=Math.hypot,kb=Math.log,ML=Math.pow,Ke=Math.sin,Co=Math.sign||function(t){return t>0?1:t<0?-1:0},Ii=Math.sqrt,jL=Math.tan;function Ore(t){return t>1?0:t<-1?ht:Math.acos(t)}function ds(t){return t>1?wn:t<-1?-wn:Math.asin(t)}function Br(){}function Pb(t,e){t&&Dre.hasOwnProperty(t.type)&&Dre[t.type](t,e)}var Nre={Feature:function(t,e){Pb(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Pb(n[r].geometry,e)}},Dre={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){UL(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)UL(n[r],e,0)},Polygon:function(t,e){Fre(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Fre(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Pb(n[r],e)}};function UL(t,e,n){var r=-1,i=t.length-n,s;for(e.lineStart();++r<i;)s=t[r],e.point(s[0],s[1],s[2]);e.lineEnd()}function Fre(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)UL(t[n],e,1);e.polygonEnd()}function Yl(t,e){t&&Nre.hasOwnProperty(t.type)?Nre[t.type](t,e):Pb(t,e)}var Mb=new Oi,jb=new Oi,wre,Lre,qL,HL,zL,Ra={point:Br,lineStart:Br,lineEnd:Br,polygonStart:function(){Mb=new Oi,Ra.lineStart=zqe,Ra.lineEnd=Qqe},polygonEnd:function(){var t=+Mb;jb.add(t<0?Li+t:t),this.lineStart=this.lineEnd=this.point=Br},sphere:function(){jb.add(Li)}};function zqe(){Ra.point=Gqe}function Qqe(){Ire(wre,Lre)}function Gqe(t,e){Ra.point=Ire,wre=t,Lre=e,t*=dt,e*=dt,qL=t,HL=nt(e=e/2+$b),zL=Ke(e)}function Ire(t,e){t*=dt,e*=dt,e=e/2+$b;var n=t-qL,r=n>=0?1:-1,i=r*n,s=nt(e),o=Ke(e),u=zL*o,a=HL*s+u*nt(i),l=u*r*Ke(i);Mb.add(_o(l,a)),qL=t,HL=s,zL=o}function Wqe(t){return jb=new Oi,Yl(t,Ra),jb*2}function Ub(t){return[_o(t[1],t[0]),ds(t[2])]}function hd(t){var e=t[0],n=t[1],r=nt(n);return[r*nt(e),r*Ke(e),Ke(n)]}function qb(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function d1(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function QL(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Hb(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function zb(t){var e=Ii(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var An,hs,Ln,qs,pd,$re,Bre,h1,Ty,Pc,Kl,Xl={point:GL,lineStart:Pre,lineEnd:Mre,polygonStart:function(){Xl.point=jre,Xl.lineStart=Vqe,Xl.lineEnd=Yqe,Ty=new Oi,Ra.polygonStart()},polygonEnd:function(){Ra.polygonEnd(),Xl.point=GL,Xl.lineStart=Pre,Xl.lineEnd=Mre,Mb<0?(An=-(Ln=180),hs=-(qs=90)):Ty>tt?qs=90:Ty<-tt&&(hs=-90),Kl[0]=An,Kl[1]=Ln},sphere:function(){An=-(Ln=180),hs=-(qs=90)}};function GL(t,e){Pc.push(Kl=[An=t,Ln=t]),e<hs&&(hs=e),e>qs&&(qs=e)}function kre(t,e){var n=hd([t*dt,e*dt]);if(h1){var r=d1(h1,n),i=[r[1],-r[0],0],s=d1(i,r);zb(s),s=Ub(s);var o=t-pd,u=o>0?1:-1,a=s[0]*Mn*u,l,c=yt(o)>180;c^(u*pd<a&&a<u*t)?(l=s[1]*Mn,l>qs&&(qs=l)):(a=(a+360)%360-180,c^(u*pd<a&&a<u*t)?(l=-s[1]*Mn,l<hs&&(hs=l)):(e<hs&&(hs=e),e>qs&&(qs=e))),c?t<pd?Hs(An,t)>Hs(An,Ln)&&(Ln=t):Hs(t,Ln)>Hs(An,Ln)&&(An=t):Ln>=An?(t<An&&(An=t),t>Ln&&(Ln=t)):t>pd?Hs(An,t)>Hs(An,Ln)&&(Ln=t):Hs(t,Ln)>Hs(An,Ln)&&(An=t)}else Pc.push(Kl=[An=t,Ln=t]);e<hs&&(hs=e),e>qs&&(qs=e),h1=n,pd=t}function Pre(){Xl.point=kre}function Mre(){Kl[0]=An,Kl[1]=Ln,Xl.point=GL,h1=null}function jre(t,e){if(h1){var n=t-pd;Ty.add(yt(n)>180?n+(n>0?360:-360):n)}else $re=t,Bre=e;Ra.point(t,e),kre(t,e)}function Vqe(){Ra.lineStart()}function Yqe(){jre($re,Bre),Ra.lineEnd(),yt(Ty)>tt&&(An=-(Ln=180)),Kl[0]=An,Kl[1]=Ln,h1=null}function Hs(t,e){return(e-=t)<0?e+360:e}function Kqe(t,e){return t[0]-e[0]}function Ure(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function Xqe(t){var e,n,r,i,s,o,u;if(qs=Ln=-(An=hs=1/0),Pc=[],Yl(t,Xl),n=Pc.length){for(Pc.sort(Kqe),e=1,r=Pc[0],s=[r];e<n;++e)i=Pc[e],Ure(r,i[0])||Ure(r,i[1])?(Hs(r[0],i[1])>Hs(r[0],r[1])&&(r[1]=i[1]),Hs(i[0],r[1])>Hs(r[0],r[1])&&(r[0]=i[0])):s.push(r=i);for(o=-1/0,n=s.length-1,e=0,r=s[n];e<=n;r=i,++e)i=s[e],(u=Hs(r[1],i[0]))>o&&(o=u,An=i[0],Ln=r[1])}return Pc=Kl=null,An===1/0||hs===1/0?[[NaN,NaN],[NaN,NaN]]:[[An,hs],[Ln,qs]]}var Ry,Qb,Gb,Wb,Vb,Yb,Kb,Xb,WL,VL,YL,qre,Hre,$i,Bi,ki,cu={sphere:Br,point:KL,lineStart:zre,lineEnd:Qre,polygonStart:function(){cu.lineStart=eHe,cu.lineEnd=tHe},polygonEnd:function(){cu.lineStart=zre,cu.lineEnd=Qre}};function KL(t,e){t*=dt,e*=dt;var n=nt(e);Oy(n*nt(t),n*Ke(t),Ke(e))}function Oy(t,e,n){++Ry,Gb+=(t-Gb)/Ry,Wb+=(e-Wb)/Ry,Vb+=(n-Vb)/Ry}function zre(){cu.point=Jqe}function Jqe(t,e){t*=dt,e*=dt;var n=nt(e);$i=n*nt(t),Bi=n*Ke(t),ki=Ke(e),cu.point=Zqe,Oy($i,Bi,ki)}function Zqe(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Ke(t),s=Ke(e),o=_o(Ii((o=Bi*s-ki*i)*o+(o=ki*r-$i*s)*o+(o=$i*i-Bi*r)*o),$i*r+Bi*i+ki*s);Qb+=o,Yb+=o*($i+($i=r)),Kb+=o*(Bi+(Bi=i)),Xb+=o*(ki+(ki=s)),Oy($i,Bi,ki)}function Qre(){cu.point=KL}function eHe(){cu.point=nHe}function tHe(){Gre(qre,Hre),cu.point=KL}function nHe(t,e){qre=t,Hre=e,t*=dt,e*=dt,cu.point=Gre;var n=nt(e);$i=n*nt(t),Bi=n*Ke(t),ki=Ke(e),Oy($i,Bi,ki)}function Gre(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Ke(t),s=Ke(e),o=Bi*s-ki*i,u=ki*r-$i*s,a=$i*i-Bi*r,l=PL(o,u,a),c=ds(l),f=l&&-c/l;WL.add(f*o),VL.add(f*u),YL.add(f*a),Qb+=c,Yb+=c*($i+($i=r)),Kb+=c*(Bi+(Bi=i)),Xb+=c*(ki+(ki=s)),Oy($i,Bi,ki)}function rHe(t){Ry=Qb=Gb=Wb=Vb=Yb=Kb=Xb=0,WL=new Oi,VL=new Oi,YL=new Oi,Yl(t,cu);var e=+WL,n=+VL,r=+YL,i=PL(e,n,r);return i<Ib&&(e=Yb,n=Kb,r=Xb,Qb<tt&&(e=Gb,n=Wb,r=Vb),i=PL(e,n,r),i<Ib)?[NaN,NaN]:[_o(n,e)*Mn,ds(r/i)*Mn]}function XL(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function JL(t,e){return yt(t)>ht&&(t-=Math.round(t/Li)*Li),[t,e]}JL.invert=JL;function Wre(t,e,n){return(t%=Li)?e||n?XL(Yre(t),Kre(e,n)):Yre(t):e||n?Kre(e,n):JL}function Vre(t){return function(e,n){return e+=t,yt(e)>ht&&(e-=Math.round(e/Li)*Li),[e,n]}}function Yre(t){var e=Vre(t);return e.invert=Vre(-t),e}function Kre(t,e){var n=nt(t),r=Ke(t),i=nt(e),s=Ke(e);function o(u,a){var l=nt(a),c=nt(u)*l,f=Ke(u)*l,x=Ke(a),h=x*n+c*r;return[_o(f*i-h*s,c*n-x*r),ds(h*i+f*s)]}return o.invert=function(u,a){var l=nt(a),c=nt(u)*l,f=Ke(u)*l,x=Ke(a),h=x*i-f*s;return[_o(f*i+x*s,c*n+h*r),ds(h*n-c*r)]},o}function iHe(t){t=Wre(t[0]*dt,t[1]*dt,t.length>2?t[2]*dt:0);function e(n){return n=t(n[0]*dt,n[1]*dt),n[0]*=Mn,n[1]*=Mn,n}return e.invert=function(n){return n=t.invert(n[0]*dt,n[1]*dt),n[0]*=Mn,n[1]*=Mn,n},e}function sHe(t,e,n,r,i,s){if(n){var o=nt(e),u=Ke(e),a=r*n;i==null?(i=e+r*Li,s=e-a/2):(i=Xre(o,i),s=Xre(o,s),(r>0?i<s:i>s)&&(i+=r*Li));for(var l,c=i;r>0?c>s:c<s;c-=a)l=Ub([o,-u*nt(c),-u*Ke(c)]),t.point(l[0],l[1])}}function Xre(t,e){e=hd(e),e[0]-=t,zb(e);var n=Ore(-e[1]);return((-e[2]<0?-n:n)+Li-tt)%Li}function Jre(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:Br,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Jb(t,e){return yt(t[0]-e[0])<tt&&yt(t[1]-e[1])<tt}function Zb(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Zre(t,e,n,r,i){var s=[],o=[],u,a;if(t.forEach(function(p){if(!((m=p.length-1)<=0)){var m,g=p[0],y=p[m],E;if(Jb(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),u=0;u<m;++u)i.point((g=p[u])[0],g[1]);i.lineEnd();return}y[0]+=2*tt}s.push(E=new Zb(g,p,null,!0)),o.push(E.o=new Zb(g,null,E,!1)),s.push(E=new Zb(y,p,null,!1)),o.push(E.o=new Zb(y,null,E,!0))}}),!!s.length){for(o.sort(e),eie(s),eie(o),u=0,a=o.length;u<a;++u)o[u].e=n=!n;for(var l=s[0],c,f;;){for(var x=l,h=!0;x.v;)if((x=x.n)===l)return;c=x.z,i.lineStart();do{if(x.v=x.o.v=!0,x.e){if(h)for(u=0,a=c.length;u<a;++u)i.point((f=c[u])[0],f[1]);else r(x.x,x.n.x,1,i);x=x.n}else{if(h)for(c=x.p.z,u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1]);else r(x.x,x.p.x,-1,i);x=x.p}x=x.o,c=x.z,h=!h}while(!x.v);i.lineEnd()}}}function eie(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function ZL(t){return yt(t[0])<=ht?t[0]:Co(t[0])*((yt(t[0])+ht)%Li-ht)}function oHe(t,e){var n=ZL(e),r=e[1],i=Ke(r),s=[Ke(n),-nt(n),0],o=0,u=0,a=new Oi;i===1?r=wn+tt:i===-1&&(r=-wn-tt);for(var l=0,c=t.length;l<c;++l)if(x=(f=t[l]).length)for(var f,x,h=f[x-1],p=ZL(h),m=h[1]/2+$b,g=Ke(m),y=nt(m),E=0;E<x;++E,p=v,g=C,y=_,h=A){var A=f[E],v=ZL(A),S=A[1]/2+$b,C=Ke(S),_=nt(S),b=v-p,R=b>=0?1:-1,O=R*b,L=O>ht,M=g*C;if(a.add(_o(M*R*Ke(O),y*_+M*nt(O))),o+=L?b+R*Li:b,L^p>=n^v>=n){var q=d1(hd(h),hd(A));zb(q);var W=d1(s,q);zb(W);var B=(L^b>=0?-1:1)*ds(W[2]);(r>B||r===B&&(q[0]||q[1]))&&(u+=L^b>=0?1:-1)}}return(o<-tt||o<tt&&a<-Ib)^u&1}function tie(t,e,n,r){return function(i){var s=e(i),o=Jre(),u=e(o),a=!1,l,c,f,x={point:h,lineStart:m,lineEnd:g,polygonStart:function(){x.point=y,x.lineStart=E,x.lineEnd=A,c=[],l=[]},polygonEnd:function(){x.point=h,x.lineStart=m,x.lineEnd=g,c=lX(c);var v=oHe(l,r);c.length?(a||(i.polygonStart(),a=!0),Zre(c,aHe,v,n,i)):v&&(a||(i.polygonStart(),a=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),a&&(i.polygonEnd(),a=!1),c=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(v,S){t(v,S)&&i.point(v,S)}function p(v,S){s.point(v,S)}function m(){x.point=p,s.lineStart()}function g(){x.point=h,s.lineEnd()}function y(v,S){f.push([v,S]),u.point(v,S)}function E(){u.lineStart(),f=[]}function A(){y(f[0][0],f[0][1]),u.lineEnd();var v=u.clean(),S=o.result(),C,_=S.length,b,R,O;if(f.pop(),l.push(f),f=null,!!_){if(v&1){if(R=S[0],(b=R.length-1)>0){for(a||(i.polygonStart(),a=!0),i.lineStart(),C=0;C<b;++C)i.point((O=R[C])[0],O[1]);i.lineEnd()}return}_>1&&v&2&&S.push(S.pop().concat(S.shift())),c.push(S.filter(uHe))}}return x}}function uHe(t){return t.length>1}function aHe(t,e){return((t=t.x)[0]<0?t[1]-wn-tt:wn-t[1])-((e=e.x)[0]<0?e[1]-wn-tt:wn-e[1])}const nie=tie(function(){return!0},lHe,fHe,[-ht,-wn]);function lHe(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(s,o){var u=s>0?ht:-ht,a=yt(s-e);yt(a-ht)<tt?(t.point(e,n=(n+o)/2>0?wn:-wn),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),t.point(s,n),i=0):r!==u&&a>=ht&&(yt(e-r)<tt&&(e-=r*tt),yt(s-u)<tt&&(s-=u*tt),n=cHe(e,n,s,o),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),i=0),t.point(e=s,n=o),r=u},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function cHe(t,e,n,r){var i,s,o=Ke(t-n);return yt(o)>tt?x1((Ke(e)*(s=nt(r))*Ke(n)-Ke(r)*(i=nt(e))*Ke(t))/(i*s*o)):(e+r)/2}function fHe(t,e,n,r){var i;if(t==null)i=n*wn,r.point(-ht,i),r.point(0,i),r.point(ht,i),r.point(ht,0),r.point(ht,-i),r.point(0,-i),r.point(-ht,-i),r.point(-ht,0),r.point(-ht,i);else if(yt(t[0]-e[0])>tt){var s=t[0]<e[0]?ht:-ht;i=n*s/2,r.point(-s,i),r.point(0,i),r.point(s,i)}else r.point(e[0],e[1])}function xHe(t){var e=nt(t),n=6*dt,r=e>0,i=yt(e)>tt;function s(c,f,x,h){sHe(h,t,n,x,c,f)}function o(c,f){return nt(c)*nt(f)>e}function u(c){var f,x,h,p,m;return{lineStart:function(){p=h=!1,m=1},point:function(g,y){var E=[g,y],A,v=o(g,y),S=r?v?0:l(g,y):v?l(g+(g<0?ht:-ht),y):0;if(!f&&(p=h=v)&&c.lineStart(),v!==h&&(A=a(f,E),(!A||Jb(f,A)||Jb(E,A))&&(E[2]=1)),v!==h)m=0,v?(c.lineStart(),A=a(E,f),c.point(A[0],A[1])):(A=a(f,E),c.point(A[0],A[1],2),c.lineEnd()),f=A;else if(i&&f&&r^v){var C;!(S&x)&&(C=a(E,f,!0))&&(m=0,r?(c.lineStart(),c.point(C[0][0],C[0][1]),c.point(C[1][0],C[1][1]),c.lineEnd()):(c.point(C[1][0],C[1][1]),c.lineEnd(),c.lineStart(),c.point(C[0][0],C[0][1],3)))}v&&(!f||!Jb(f,E))&&c.point(E[0],E[1]),f=E,h=v,x=S},lineEnd:function(){h&&c.lineEnd(),f=null},clean:function(){return m|(p&&h)<<1}}}function a(c,f,x){var h=hd(c),p=hd(f),m=[1,0,0],g=d1(h,p),y=qb(g,g),E=g[0],A=y-E*E;if(!A)return!x&&c;var v=e*y/A,S=-e*E/A,C=d1(m,g),_=Hb(m,v),b=Hb(g,S);QL(_,b);var R=C,O=qb(_,R),L=qb(R,R),M=O*O-L*(qb(_,_)-1);if(!(M<0)){var q=Ii(M),W=Hb(R,(-O-q)/L);if(QL(W,_),W=Ub(W),!x)return W;var B=c[0],G=f[0],te=c[1],X=f[1],de;G<B&&(de=B,B=G,G=de);var be=G-B,ee=yt(be-ht)<tt,U=ee||be<tt;if(!ee&&X<te&&(de=te,te=X,X=de),U?ee?te+X>0^W[1]<(yt(W[0]-B)<tt?te:X):te<=W[1]&&W[1]<=X:be>ht^(B<=W[0]&&W[0]<=G)){var T=Hb(R,(-O+q)/L);return QL(T,_),[W,Ub(T)]}}}function l(c,f){var x=r?t:ht-t,h=0;return c<-x?h|=1:c>x&&(h|=2),f<-x?h|=4:f>x&&(h|=8),h}return tie(o,u,s,r?[0,-t]:[-ht,t-ht])}function dHe(t,e,n,r,i,s){var o=t[0],u=t[1],a=e[0],l=e[1],c=0,f=1,x=a-o,h=l-u,p;if(p=n-o,!(!x&&p>0)){if(p/=x,x<0){if(p<c)return;p<f&&(f=p)}else if(x>0){if(p>f)return;p>c&&(c=p)}if(p=i-o,!(!x&&p<0)){if(p/=x,x<0){if(p>f)return;p>c&&(c=p)}else if(x>0){if(p<c)return;p<f&&(f=p)}if(p=r-u,!(!h&&p>0)){if(p/=h,h<0){if(p<c)return;p<f&&(f=p)}else if(h>0){if(p>f)return;p>c&&(c=p)}if(p=s-u,!(!h&&p<0)){if(p/=h,h<0){if(p>f)return;p>c&&(c=p)}else if(h>0){if(p<c)return;p<f&&(f=p)}return c>0&&(t[0]=o+c*x,t[1]=u+c*h),f<1&&(e[0]=o+f*x,e[1]=u+f*h),!0}}}}}var Ny=1e9,eT=-Ny;function rie(t,e,n,r){function i(l,c){return t<=l&&l<=n&&e<=c&&c<=r}function s(l,c,f,x){var h=0,p=0;if(l==null||(h=o(l,f))!==(p=o(c,f))||a(l,c)<0^f>0)do x.point(h===0||h===3?t:n,h>1?r:e);while((h=(h+f+4)%4)!==p);else x.point(c[0],c[1])}function o(l,c){return yt(l[0]-t)<tt?c>0?0:3:yt(l[0]-n)<tt?c>0?2:1:yt(l[1]-e)<tt?c>0?1:0:c>0?3:2}function u(l,c){return a(l.x,c.x)}function a(l,c){var f=o(l,1),x=o(c,1);return f!==x?f-x:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c=l,f=Jre(),x,h,p,m,g,y,E,A,v,S,C,_={point:b,lineStart:M,lineEnd:q,polygonStart:O,polygonEnd:L};function b(B,G){i(B,G)&&c.point(B,G)}function R(){for(var B=0,G=0,te=h.length;G<te;++G)for(var X=h[G],de=1,be=X.length,ee=X[0],U,T,w=ee[0],k=ee[1];de<be;++de)U=w,T=k,ee=X[de],w=ee[0],k=ee[1],T<=r?k>r&&(w-U)*(r-T)>(k-T)*(t-U)&&++B:k<=r&&(w-U)*(r-T)<(k-T)*(t-U)&&--B;return B}function O(){c=f,x=[],h=[],C=!0}function L(){var B=R(),G=C&&B,te=(x=lX(x)).length;(G||te)&&(l.polygonStart(),G&&(l.lineStart(),s(null,null,1,l),l.lineEnd()),te&&Zre(x,u,B,s,l),l.polygonEnd()),c=l,x=h=p=null}function M(){_.point=W,h&&h.push(p=[]),S=!0,v=!1,E=A=NaN}function q(){x&&(W(m,g),y&&v&&f.rejoin(),x.push(f.result())),_.point=b,v&&c.lineEnd()}function W(B,G){var te=i(B,G);if(h&&p.push([B,G]),S)m=B,g=G,y=te,S=!1,te&&(c.lineStart(),c.point(B,G));else if(te&&v)c.point(B,G);else{var X=[E=Math.max(eT,Math.min(Ny,E)),A=Math.max(eT,Math.min(Ny,A))],de=[B=Math.max(eT,Math.min(Ny,B)),G=Math.max(eT,Math.min(Ny,G))];dHe(X,de,t,e,n,r)?(v||(c.lineStart(),c.point(X[0],X[1])),c.point(de[0],de[1]),te||c.lineEnd(),C=!1):te&&(c.lineStart(),c.point(B,G),C=!1)}E=B,A=G,v=te}return _}}function iie(t,e,n){var r=Ps(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[i,s]})}}function sie(t,e,n){var r=Ps(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[s,i]})}}function hHe(){var t,e,n,r,i,s,o,u,a=10,l=a,c=90,f=360,x,h,p,m,g=2.5;function y(){return{type:"MultiLineString",coordinates:E()}}function E(){return Ps(Bb(r/c)*c,n,c).map(p).concat(Ps(Bb(u/f)*f,o,f).map(m)).concat(Ps(Bb(e/a)*a,t,a).filter(function(A){return yt(A%c)>tt}).map(x)).concat(Ps(Bb(s/l)*l,i,l).filter(function(A){return yt(A%f)>tt}).map(h))}return y.lines=function(){return E().map(function(A){return{type:"LineString",coordinates:A}})},y.outline=function(){return{type:"Polygon",coordinates:[p(r).concat(m(o).slice(1),p(n).reverse().slice(1),m(u).reverse().slice(1))]}},y.extent=function(A){return arguments.length?y.extentMajor(A).extentMinor(A):y.extentMinor()},y.extentMajor=function(A){return arguments.length?(r=+A[0][0],n=+A[1][0],u=+A[0][1],o=+A[1][1],r>n&&(A=r,r=n,n=A),u>o&&(A=u,u=o,o=A),y.precision(g)):[[r,u],[n,o]]},y.extentMinor=function(A){return arguments.length?(e=+A[0][0],t=+A[1][0],s=+A[0][1],i=+A[1][1],e>t&&(A=e,e=t,t=A),s>i&&(A=s,s=i,i=A),y.precision(g)):[[e,s],[t,i]]},y.step=function(A){return arguments.length?y.stepMajor(A).stepMinor(A):y.stepMinor()},y.stepMajor=function(A){return arguments.length?(c=+A[0],f=+A[1],y):[c,f]},y.stepMinor=function(A){return arguments.length?(a=+A[0],l=+A[1],y):[a,l]},y.precision=function(A){return arguments.length?(g=+A,x=iie(s,i,90),h=sie(e,t,g),p=iie(u,o,90),m=sie(r,n,g),y):g},y.extentMajor([[-180,-90+tt],[180,90-tt]]).extentMinor([[-180,-80-tt],[180,80+tt]])}const Dy=t=>t;var eI=new Oi,tI=new Oi,oie,uie,nI,rI,Jl={point:Br,lineStart:Br,lineEnd:Br,polygonStart:function(){Jl.lineStart=pHe,Jl.lineEnd=mHe},polygonEnd:function(){Jl.lineStart=Jl.lineEnd=Jl.point=Br,eI.add(yt(tI)),tI=new Oi},result:function(){var t=eI/2;return eI=new Oi,t}};function pHe(){Jl.point=gHe}function gHe(t,e){Jl.point=aie,oie=nI=t,uie=rI=e}function aie(t,e){tI.add(rI*t-nI*e),nI=t,rI=e}function mHe(){aie(oie,uie)}var p1=1/0,tT=p1,Fy=-p1,nT=Fy,rT={point:yHe,lineStart:Br,lineEnd:Br,polygonStart:Br,polygonEnd:Br,result:function(){var t=[[p1,tT],[Fy,nT]];return Fy=nT=-(tT=p1=1/0),t}};function yHe(t,e){t<p1&&(p1=t),t>Fy&&(Fy=t),e<tT&&(tT=e),e>nT&&(nT=e)}var iI=0,sI=0,wy=0,iT=0,sT=0,g1=0,oI=0,uI=0,Ly=0,lie,cie,Oa,Na,bo={point:gd,lineStart:fie,lineEnd:xie,polygonStart:function(){bo.lineStart=vHe,bo.lineEnd=SHe},polygonEnd:function(){bo.point=gd,bo.lineStart=fie,bo.lineEnd=xie},result:function(){var t=Ly?[oI/Ly,uI/Ly]:g1?[iT/g1,sT/g1]:wy?[iI/wy,sI/wy]:[NaN,NaN];return iI=sI=wy=iT=sT=g1=oI=uI=Ly=0,t}};function gd(t,e){iI+=t,sI+=e,++wy}function fie(){bo.point=EHe}function EHe(t,e){bo.point=AHe,gd(Oa=t,Na=e)}function AHe(t,e){var n=t-Oa,r=e-Na,i=Ii(n*n+r*r);iT+=i*(Oa+t)/2,sT+=i*(Na+e)/2,g1+=i,gd(Oa=t,Na=e)}function xie(){bo.point=gd}function vHe(){bo.point=_He}function SHe(){die(lie,cie)}function _He(t,e){bo.point=die,gd(lie=Oa=t,cie=Na=e)}function die(t,e){var n=t-Oa,r=e-Na,i=Ii(n*n+r*r);iT+=i*(Oa+t)/2,sT+=i*(Na+e)/2,g1+=i,i=Na*t-Oa*e,oI+=i*(Oa+t),uI+=i*(Na+e),Ly+=i*3,gd(Oa=t,Na=e)}function hie(t){this._context=t}hie.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,Li);break}}},result:Br};var aI=new Oi,lI,pie,gie,Iy,$y,By={point:Br,lineStart:function(){By.point=CHe},lineEnd:function(){lI&&mie(pie,gie),By.point=Br},polygonStart:function(){lI=!0},polygonEnd:function(){lI=null},result:function(){var t=+aI;return aI=new Oi,t}};function CHe(t,e){By.point=mie,pie=Iy=t,gie=$y=e}function mie(t,e){Iy-=t,$y-=e,aI.add(Ii(Iy*Iy+$y*$y)),Iy=t,$y=e}let yie,oT,Eie,Aie;class vie{constructor(e){this._append=e==null?Sie:bHe(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==Eie||this._append!==oT){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,Eie=r,oT=this._append,Aie=this._,this._=i}this._+=Aie;break}}}result(){const e=this._;return this._="",e.length?e:null}}function Sie(t){let e=1;this._+=t[0];for(const n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function bHe(t){const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Sie;if(e!==yie){const n=10**e;yie=e,oT=function(i){let s=1;this._+=i[0];for(const o=i.length;s<o;++s)this._+=Math.round(arguments[s]*n)/n+i[s]}}return oT}function _ie(t,e){let n=3,r=4.5,i,s;function o(u){return u&&(typeof r=="function"&&s.pointRadius(+r.apply(this,arguments)),Yl(u,i(s))),s.result()}return o.area=function(u){return Yl(u,i(Jl)),Jl.result()},o.measure=function(u){return Yl(u,i(By)),By.result()},o.bounds=function(u){return Yl(u,i(rT)),rT.result()},o.centroid=function(u){return Yl(u,i(bo)),bo.result()},o.projection=function(u){return arguments.length?(i=u==null?(t=null,Dy):(t=u).stream,o):t},o.context=function(u){return arguments.length?(s=u==null?(e=null,new vie(n)):new hie(e=u),typeof r!="function"&&s.pointRadius(r),o):e},o.pointRadius=function(u){return arguments.length?(r=typeof u=="function"?u:(s.pointRadius(+u),+u),o):r},o.digits=function(u){if(!arguments.length)return n;if(u==null)n=null;else{const a=Math.floor(u);if(!(a>=0))throw new RangeError(`invalid digits: ${u}`);n=a}return e===null&&(s=new vie(n)),o},o.projection(t).digits(n).context(e)}function uT(t){return function(e){var n=new cI;for(var r in t)n[r]=t[r];return n.stream=e,n}}function cI(){}cI.prototype={constructor:cI,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function fI(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),Yl(n,t.stream(rT)),e(rT.result()),r!=null&&t.clipExtent(r),t}function aT(t,e,n){return fI(t,function(r){var i=e[1][0]-e[0][0],s=e[1][1]-e[0][1],o=Math.min(i/(r[1][0]-r[0][0]),s/(r[1][1]-r[0][1])),u=+e[0][0]+(i-o*(r[1][0]+r[0][0]))/2,a=+e[0][1]+(s-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([u,a])},n)}function xI(t,e,n){return aT(t,[[0,0],e],n)}function dI(t,e,n){return fI(t,function(r){var i=+e,s=i/(r[1][0]-r[0][0]),o=(i-s*(r[1][0]+r[0][0]))/2,u=-s*r[0][1];t.scale(150*s).translate([o,u])},n)}function hI(t,e,n){return fI(t,function(r){var i=+e,s=i/(r[1][1]-r[0][1]),o=-s*r[0][0],u=(i-s*(r[1][1]+r[0][1]))/2;t.scale(150*s).translate([o,u])},n)}var Cie=16,THe=nt(30*dt);function bie(t,e){return+e?OHe(t,e):RHe(t)}function RHe(t){return uT({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function OHe(t,e){function n(r,i,s,o,u,a,l,c,f,x,h,p,m,g){var y=l-r,E=c-i,A=y*y+E*E;if(A>4*e&&m--){var v=o+x,S=u+h,C=a+p,_=Ii(v*v+S*S+C*C),b=ds(C/=_),R=yt(yt(C)-1)<tt||yt(s-f)<tt?(s+f)/2:_o(S,v),O=t(R,b),L=O[0],M=O[1],q=L-r,W=M-i,B=E*q-y*W;(B*B/A>e||yt((y*q+E*W)/A-.5)>.3||o*x+u*h+a*p<THe)&&(n(r,i,s,o,u,a,L,M,R,v/=_,S/=_,C,m,g),g.point(L,M),n(L,M,R,v,S,C,l,c,f,x,h,p,m,g))}}return function(r){var i,s,o,u,a,l,c,f,x,h,p,m,g={point:y,lineStart:E,lineEnd:v,polygonStart:function(){r.polygonStart(),g.lineStart=S},polygonEnd:function(){r.polygonEnd(),g.lineStart=E}};function y(b,R){b=t(b,R),r.point(b[0],b[1])}function E(){f=NaN,g.point=A,r.lineStart()}function A(b,R){var O=hd([b,R]),L=t(b,R);n(f,x,c,h,p,m,f=L[0],x=L[1],c=b,h=O[0],p=O[1],m=O[2],Cie,r),r.point(f,x)}function v(){g.point=y,r.lineEnd()}function S(){E(),g.point=C,g.lineEnd=_}function C(b,R){A(i=b,R),s=f,o=x,u=h,a=p,l=m,g.point=A}function _(){n(f,x,c,h,p,m,s,o,i,u,a,l,Cie,r),g.lineEnd=v,v()}return g}}var NHe=uT({point:function(t,e){this.stream.point(t*dt,e*dt)}});function DHe(t){return uT({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function FHe(t,e,n,r,i){function s(o,u){return o*=r,u*=i,[e+t*o,n-t*u]}return s.invert=function(o,u){return[(o-e)/t*r,(n-u)/t*i]},s}function Tie(t,e,n,r,i,s){if(!s)return FHe(t,e,n,r,i);var o=nt(s),u=Ke(s),a=o*t,l=u*t,c=o/t,f=u/t,x=(u*n-o*e)/t,h=(u*e+o*n)/t;function p(m,g){return m*=r,g*=i,[a*m-l*g+e,n-l*m-a*g]}return p.invert=function(m,g){return[r*(c*m-f*g+x),i*(h-f*m-c*g)]},p}function Da(t){return Rie(function(){return t})()}function Rie(t){var e,n=150,r=480,i=250,s=0,o=0,u=0,a=0,l=0,c,f=0,x=1,h=1,p=null,m=nie,g=null,y,E,A,v=Dy,S=.5,C,_,b,R,O;function L(B){return b(B[0]*dt,B[1]*dt)}function M(B){return B=b.invert(B[0],B[1]),B&&[B[0]*Mn,B[1]*Mn]}L.stream=function(B){return R&&O===B?R:R=NHe(DHe(c)(m(C(v(O=B)))))},L.preclip=function(B){return arguments.length?(m=B,p=void 0,W()):m},L.postclip=function(B){return arguments.length?(v=B,g=y=E=A=null,W()):v},L.clipAngle=function(B){return arguments.length?(m=+B?xHe(p=B*dt):(p=null,nie),W()):p*Mn},L.clipExtent=function(B){return arguments.length?(v=B==null?(g=y=E=A=null,Dy):rie(g=+B[0][0],y=+B[0][1],E=+B[1][0],A=+B[1][1]),W()):g==null?null:[[g,y],[E,A]]},L.scale=function(B){return arguments.length?(n=+B,q()):n},L.translate=function(B){return arguments.length?(r=+B[0],i=+B[1],q()):[r,i]},L.center=function(B){return arguments.length?(s=B[0]%360*dt,o=B[1]%360*dt,q()):[s*Mn,o*Mn]},L.rotate=function(B){return arguments.length?(u=B[0]%360*dt,a=B[1]%360*dt,l=B.length>2?B[2]%360*dt:0,q()):[u*Mn,a*Mn,l*Mn]},L.angle=function(B){return arguments.length?(f=B%360*dt,q()):f*Mn},L.reflectX=function(B){return arguments.length?(x=B?-1:1,q()):x<0},L.reflectY=function(B){return arguments.length?(h=B?-1:1,q()):h<0},L.precision=function(B){return arguments.length?(C=bie(_,S=B*B),W()):Ii(S)},L.fitExtent=function(B,G){return aT(L,B,G)},L.fitSize=function(B,G){return xI(L,B,G)},L.fitWidth=function(B,G){return dI(L,B,G)},L.fitHeight=function(B,G){return hI(L,B,G)};function q(){var B=Tie(n,0,0,x,h,f).apply(null,e(s,o)),G=Tie(n,r-B[0],i-B[1],x,h,f);return c=Wre(u,a,l),_=XL(e,G),b=XL(c,_),C=bie(_,S),W()}function W(){return R=O=null,L}return function(){return e=t.apply(this,arguments),L.invert=e.invert&&M,q()}}function pI(t){var e=0,n=ht/3,r=Rie(t),i=r(e,n);return i.parallels=function(s){return arguments.length?r(e=s[0]*dt,n=s[1]*dt):[e*Mn,n*Mn]},i}function wHe(t){var e=nt(t);function n(r,i){return[r*e,Ke(i)/e]}return n.invert=function(r,i){return[r/e,ds(i*e)]},n}function LHe(t,e){var n=Ke(t),r=(n+Ke(e))/2;if(yt(r)<tt)return wHe(t);var i=1+n*(2*r-n),s=Ii(i)/r;function o(u,a){var l=Ii(i-2*r*Ke(a))/r;return[l*Ke(u*=r),s-l*nt(u)]}return o.invert=function(u,a){var l=s-a,c=_o(u,yt(l))*Co(l);return l*r<0&&(c-=ht*Co(u)*Co(l)),[c/r,ds((i-(u*u+l*l)*r*r)/(2*r))]},o}function lT(){return pI(LHe).scale(155.424).center([0,33.6442])}function Oie(){return lT().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function IHe(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function $He(){var t,e,n=Oie(),r,i=lT().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s,o=lT().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,a,l={point:function(x,h){a=[x,h]}};function c(x){var h=x[0],p=x[1];return a=null,r.point(h,p),a||(s.point(h,p),a)||(u.point(h,p),a)}c.invert=function(x){var h=n.scale(),p=n.translate(),m=(x[0]-p[0])/h,g=(x[1]-p[1])/h;return(g>=.12&&g<.234&&m>=-.425&&m<-.214?i:g>=.166&&g<.234&&m>=-.214&&m<-.115?o:n).invert(x)},c.stream=function(x){return t&&e===x?t:t=IHe([n.stream(e=x),i.stream(x),o.stream(x)])},c.precision=function(x){return arguments.length?(n.precision(x),i.precision(x),o.precision(x),f()):n.precision()},c.scale=function(x){return arguments.length?(n.scale(x),i.scale(x*.35),o.scale(x),c.translate(n.translate())):n.scale()},c.translate=function(x){if(!arguments.length)return n.translate();var h=n.scale(),p=+x[0],m=+x[1];return r=n.translate(x).clipExtent([[p-.455*h,m-.238*h],[p+.455*h,m+.238*h]]).stream(l),s=i.translate([p-.307*h,m+.201*h]).clipExtent([[p-.425*h+tt,m+.12*h+tt],[p-.214*h-tt,m+.234*h-tt]]).stream(l),u=o.translate([p-.205*h,m+.212*h]).clipExtent([[p-.214*h+tt,m+.166*h+tt],[p-.115*h-tt,m+.234*h-tt]]).stream(l),f()},c.fitExtent=function(x,h){return aT(c,x,h)},c.fitSize=function(x,h){return xI(c,x,h)},c.fitWidth=function(x,h){return dI(c,x,h)},c.fitHeight=function(x,h){return hI(c,x,h)};function f(){return t=e=null,c}return c.scale(1070)}function Nie(t){return function(e,n){var r=nt(e),i=nt(n),s=t(r*i);return s===1/0?[2,0]:[s*i*Ke(e),s*Ke(n)]}}function ky(t){return function(e,n){var r=Ii(e*e+n*n),i=t(r),s=Ke(i),o=nt(i);return[_o(e*s,r*o),ds(r&&n*s/r)]}}var Die=Nie(function(t){return Ii(2/(1+t))});Die.invert=ky(function(t){return 2*ds(t/2)});function BHe(){return Da(Die).scale(124.75).clipAngle(180-.001)}var Fie=Nie(function(t){return(t=Ore(t))&&t/Ke(t)});Fie.invert=ky(function(t){return t});function kHe(){return Da(Fie).scale(79.4188).clipAngle(180-.001)}function cT(t,e){return[t,kb(jL((wn+e)/2))]}cT.invert=function(t,e){return[t,2*x1(Rre(e))-wn]};function PHe(){return wie(cT).scale(961/Li)}function wie(t){var e=Da(t),n=e.center,r=e.scale,i=e.translate,s=e.clipExtent,o=null,u,a,l;e.scale=function(f){return arguments.length?(r(f),c()):r()},e.translate=function(f){return arguments.length?(i(f),c()):i()},e.center=function(f){return arguments.length?(n(f),c()):n()},e.clipExtent=function(f){return arguments.length?(f==null?o=u=a=l=null:(o=+f[0][0],u=+f[0][1],a=+f[1][0],l=+f[1][1]),c()):o==null?null:[[o,u],[a,l]]};function c(){var f=ht*r(),x=e(iHe(e.rotate()).invert([0,0]));return s(o==null?[[x[0]-f,x[1]-f],[x[0]+f,x[1]+f]]:t===cT?[[Math.max(x[0]-f,o),u],[Math.min(x[0]+f,a),l]]:[[o,Math.max(x[1]-f,u)],[a,Math.min(x[1]+f,l)]])}return c()}function fT(t){return jL((wn+t)/2)}function MHe(t,e){var n=nt(t),r=t===e?Ke(t):kb(n/nt(e))/kb(fT(e)/fT(t)),i=n*ML(fT(t),r)/r;if(!r)return cT;function s(o,u){i>0?u<-wn+tt&&(u=-wn+tt):u>wn-tt&&(u=wn-tt);var a=i/ML(fT(u),r);return[a*Ke(r*o),i-a*nt(r*o)]}return s.invert=function(o,u){var a=i-u,l=Co(r)*Ii(o*o+a*a),c=_o(o,yt(a))*Co(a);return a*r<0&&(c-=ht*Co(o)*Co(a)),[c/r,2*x1(ML(i/l,1/r))-wn]},s}function jHe(){return pI(MHe).scale(109.5).parallels([30,30])}function xT(t,e){return[t,e]}xT.invert=xT;function UHe(){return Da(xT).scale(152.63)}function qHe(t,e){var n=nt(t),r=t===e?Ke(t):(n-nt(e))/(e-t),i=n/r+t;if(yt(r)<tt)return xT;function s(o,u){var a=i-u,l=r*o;return[a*Ke(l),i-a*nt(l)]}return s.invert=function(o,u){var a=i-u,l=_o(o,yt(a))*Co(a);return a*r<0&&(l-=ht*Co(o)*Co(a)),[l/r,i-Co(r)*Ii(o*o+a*a)]},s}function HHe(){return pI(qHe).scale(131.154).center([0,13.9389])}var Py=1.340264,My=-.081106,jy=893e-6,Uy=.003796,dT=Ii(3)/2,zHe=12;function Lie(t,e){var n=ds(dT*Ke(e)),r=n*n,i=r*r*r;return[t*nt(n)/(dT*(Py+3*My*r+i*(7*jy+9*Uy*r))),n*(Py+My*r+i*(jy+Uy*r))]}Lie.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,s=0,o,u,a;s<zHe&&(u=n*(Py+My*r+i*(jy+Uy*r))-e,a=Py+3*My*r+i*(7*jy+9*Uy*r),n-=o=u/a,r=n*n,i=r*r*r,!(yt(o)<Ib));++s);return[dT*t*(Py+3*My*r+i*(7*jy+9*Uy*r))/nt(n),ds(Ke(n)/dT)]};function QHe(){return Da(Lie).scale(177.158)}function Iie(t,e){var n=nt(e),r=nt(t)*n;return[n*Ke(t)/r,Ke(e)/r]}Iie.invert=ky(x1);function GHe(){return Da(Iie).scale(144.049).clipAngle(60)}function WHe(){var t=1,e=0,n=0,r=1,i=1,s=0,o,u,a=null,l,c,f,x=1,h=1,p=uT({point:function(v,S){var C=A([v,S]);this.stream.point(C[0],C[1])}}),m=Dy,g,y;function E(){return x=t*r,h=t*i,g=y=null,A}function A(v){var S=v[0]*x,C=v[1]*h;if(s){var _=C*o-S*u;S=S*o+C*u,C=_}return[S+e,C+n]}return A.invert=function(v){var S=v[0]-e,C=v[1]-n;if(s){var _=C*o+S*u;S=S*o-C*u,C=_}return[S/x,C/h]},A.stream=function(v){return g&&y===v?g:g=p(m(y=v))},A.postclip=function(v){return arguments.length?(m=v,a=l=c=f=null,E()):m},A.clipExtent=function(v){return arguments.length?(m=v==null?(a=l=c=f=null,Dy):rie(a=+v[0][0],l=+v[0][1],c=+v[1][0],f=+v[1][1]),E()):a==null?null:[[a,l],[c,f]]},A.scale=function(v){return arguments.length?(t=+v,E()):t},A.translate=function(v){return arguments.length?(e=+v[0],n=+v[1],E()):[e,n]},A.angle=function(v){return arguments.length?(s=v%360*dt,u=Ke(s),o=nt(s),E()):s*Mn},A.reflectX=function(v){return arguments.length?(r=v?-1:1,E()):r<0},A.reflectY=function(v){return arguments.length?(i=v?-1:1,E()):i<0},A.fitExtent=function(v,S){return aT(A,v,S)},A.fitSize=function(v,S){return xI(A,v,S)},A.fitWidth=function(v,S){return dI(A,v,S)},A.fitHeight=function(v,S){return hI(A,v,S)},A}function $ie(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}$ie.invert=function(t,e){var n=e,r=25,i;do{var s=n*n,o=s*s;n-=i=(n*(1.007226+s*(.015085+o*(-.044475+.028874*s-.005916*o)))-e)/(1.007226+s*(.015085*3+o*(-.044475*7+.028874*9*s-.005916*11*o)))}while(yt(i)>tt&&--r>0);return[t/(.8707+(s=n*n)*(-.131979+s*(-.013791+s*s*s*(.003971-.001529*s)))),n]};function VHe(){return Da($ie).scale(175.295)}function Bie(t,e){return[nt(e)*Ke(t),Ke(e)]}Bie.invert=ky(ds);function YHe(){return Da(Bie).scale(249.5).clipAngle(90+tt)}function kie(t,e){var n=nt(e),r=1+nt(t)*n;return[n*Ke(t)/r,Ke(e)/r]}kie.invert=ky(function(t){return 2*x1(t)});function KHe(){return Da(kie).scale(250).clipAngle(142)}function Pie(t,e){return[kb(jL((wn+e)/2)),-t]}Pie.invert=function(t,e){return[-e,2*x1(Rre(t))-wn]};function XHe(){var t=wie(Pie),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}var JHe=Math.abs,gI=Math.cos,hT=Math.sin,ZHe=1e-6,Mie=Math.PI,mI=Mie/2,jie=eze(2);function Uie(t){return t>1?mI:t<-1?-mI:Math.asin(t)}function eze(t){return t>0?Math.sqrt(t):0}function tze(t,e){var n=t*hT(e),r=30,i;do e-=i=(e+hT(e)-n)/(1+gI(e));while(JHe(i)>ZHe&&--r>0);return e/2}function nze(t,e,n){function r(i,s){return[t*i*gI(s=tze(n,s)),e*hT(s)]}return r.invert=function(i,s){return s=Uie(s/e),[i/(t*gI(s)),Uie((2*s+hT(2*s))/n)]},r}var rze=nze(jie/mI,jie,Mie);function ize(){return Da(rze).scale(169.529)}const sze=_ie(),yI=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function oze(t,e){return function n(){const r=e();return r.type=t,r.path=_ie().projection(r),r.copy=r.copy||function(){const i=n();return yI.forEach(s=>{r[s]&&i[s](r[s]())}),i.path.pointRadius(r.path.pointRadius()),i},Zee(r)}}function qie(t,e){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(pT[t]=oze(t,e),this):pT[t]||null}function Hie(t){return t&&t.path||sze}const pT={albers:Oie,albersusa:$He,azimuthalequalarea:BHe,azimuthalequidistant:kHe,conicconformal:jHe,conicequalarea:lT,conicequidistant:HHe,equalEarth:QHe,equirectangular:UHe,gnomonic:GHe,identity:WHe,mercator:PHe,mollweide:ize,naturalEarth1:VHe,orthographic:YHe,stereographic:KHe,transversemercator:XHe};for(const t in pT)qie(t,pT[t]);function uze(){}const Zl=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function zie(){var t=1,e=1,n=u;function r(a,l){return l.map(c=>i(a,c))}function i(a,l){var c=[],f=[];return s(a,l,x=>{n(x,a,l),aze(x)>0?c.push([x]):f.push(x)}),f.forEach(x=>{for(var h=0,p=c.length,m;h<p;++h)if(lze((m=c[h])[0],x)!==-1){m.push(x);return}}),{type:"MultiPolygon",value:l,coordinates:c}}function s(a,l,c){var f=new Array,x=new Array,h,p,m,g,y,E;for(h=p=-1,g=a[0]>=l,Zl[g<<1].forEach(A);++h<t-1;)m=g,g=a[h+1]>=l,Zl[m|g<<1].forEach(A);for(Zl[g<<0].forEach(A);++p<e-1;){for(h=-1,g=a[p*t+t]>=l,y=a[p*t]>=l,Zl[g<<1|y<<2].forEach(A);++h<t-1;)m=g,g=a[p*t+t+h+1]>=l,E=y,y=a[p*t+h+1]>=l,Zl[m|g<<1|y<<2|E<<3].forEach(A);Zl[g|y<<3].forEach(A)}for(h=-1,y=a[p*t]>=l,Zl[y<<2].forEach(A);++h<t-1;)E=y,y=a[p*t+h+1]>=l,Zl[y<<2|E<<3].forEach(A);Zl[y<<3].forEach(A);function A(v){var S=[v[0][0]+h,v[0][1]+p],C=[v[1][0]+h,v[1][1]+p],_=o(S),b=o(C),R,O;(R=x[_])?(O=f[b])?(delete x[R.end],delete f[O.start],R===O?(R.ring.push(C),c(R.ring)):f[R.start]=x[O.end]={start:R.start,end:O.end,ring:R.ring.concat(O.ring)}):(delete x[R.end],R.ring.push(C),x[R.end=b]=R):(R=f[b])?(O=x[_])?(delete f[R.start],delete x[O.end],R===O?(R.ring.push(C),c(R.ring)):f[O.start]=x[R.end]={start:O.start,end:R.end,ring:O.ring.concat(R.ring)}):(delete f[R.start],R.ring.unshift(S),f[R.start=_]=R):f[_]=x[b]={start:_,end:b,ring:[S,C]}}}function o(a){return a[0]*2+a[1]*(t+1)*4}function u(a,l,c){a.forEach(f=>{var x=f[0],h=f[1],p=x|0,m=h|0,g,y=l[m*t+p];x>0&&x<t&&p===x&&(g=l[m*t+p-1],f[0]=x+(c-g)/(y-g)-.5),h>0&&h<e&&m===h&&(g=l[(m-1)*t+p],f[1]=h+(c-g)/(y-g)-.5)})}return r.contour=i,r.size=function(a){if(!arguments.length)return[t,e];var l=Math.floor(a[0]),c=Math.floor(a[1]);return l>=0&&c>=0||Se("invalid size"),t=l,e=c,r},r.smooth=function(a){return arguments.length?(n=a?u:uze,r):n===u},r}function aze(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}function lze(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=cze(t,e[n]))return i;return 0}function cze(t,e){for(var n=e[0],r=e[1],i=-1,s=0,o=t.length,u=o-1;s<o;u=s++){var a=t[s],l=a[0],c=a[1],f=t[u],x=f[0],h=f[1];if(fze(a,f,e))return 0;c>r!=h>r&&n<(x-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function fze(t,e,n){var r;return xze(t,e,n)&&dze(t[r=+(t[0]===e[0])],n[r],e[r])}function xze(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function dze(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function Qie(t,e,n){return function(r){var i=vl(r),s=n?Math.min(i[0],0):i[0],o=i[1],u=o-s,a=e?gc(s,o,t):u/(t+1);return Ps(s+a,o,a)}}function EI(t){pe.call(this,null,t)}EI.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},Fe(EI,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=t.field||Si,s=zie().smooth(t.smooth!==!1),o=t.thresholds||hze(r,i,t),u=t.as===null?null:t.as||"contour",a=[];return r.forEach(l=>{const c=i(l),f=s.size([c.width,c.height])(c.values,_e(o)?o:o(c.values));pze(f,c,l,t),f.forEach(x=>{a.push(SC(l,$t(u!=null?{[u]:x}:x)))})}),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function hze(t,e,n){const r=Qie(n.levels||10,n.nice,n.zero!==!1);return n.resolve!=="shared"?r:r(t.map(i=>Ux(e(i).values)))}function pze(t,e,n,r){let i=r.scale||e.scale,s=r.translate||e.translate;if(ct(i)&&(i=i(n,r)),ct(s)&&(s=s(n,r)),(i===1||i==null)&&!s)return;const o=(nn(i)?i:i[0])||1,u=(nn(i)?i:i[1])||1,a=s&&s[0]||0,l=s&&s[1]||0;t.forEach(Gie(e,o,u,a,l))}function Gie(t,e,n,r,i){const s=t.x1||0,o=t.y1||0,u=e*n<0;function a(f){f.forEach(l)}function l(f){u&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-s)*e+r,f[1]=(f[1]-o)*n+i}return function(f){return f.coordinates.forEach(a),f}}function Wie(t,e,n){const r=t>=0?t:TJ(e,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function AI(t){return ct(t)?t:Ci(+t)}function Vie(){var t=a=>a[0],e=a=>a[1],n=g3,r=[-1,-1],i=960,s=500,o=2;function u(a,l){const c=Wie(r[0],a,t)>>o,f=Wie(r[1],a,e)>>o,x=c?c+2:0,h=f?f+2:0,p=2*x+(i>>o),m=2*h+(s>>o),g=new Float32Array(p*m),y=new Float32Array(p*m);let E=g;a.forEach(v=>{const S=x+(+t(v)>>o),C=h+(+e(v)>>o);S>=0&&S<p&&C>=0&&C<m&&(g[S+C*p]+=+n(v))}),c>0&&f>0?(m1(p,m,g,y,c),y1(p,m,y,g,f),m1(p,m,g,y,c),y1(p,m,y,g,f),m1(p,m,g,y,c),y1(p,m,y,g,f)):c>0?(m1(p,m,g,y,c),m1(p,m,y,g,c),m1(p,m,g,y,c),E=y):f>0&&(y1(p,m,g,y,f),y1(p,m,y,g,f),y1(p,m,g,y,f),E=y);const A=l?Math.pow(2,-2*o):1/cX(E);for(let v=0,S=p*m;v<S;++v)E[v]*=A;return{values:E,scale:1<<o,width:p,height:m,x1:x,y1:h,x2:x+(i>>o),y2:h+(s>>o)}}return u.x=function(a){return arguments.length?(t=AI(a),u):t},u.y=function(a){return arguments.length?(e=AI(a),u):e},u.weight=function(a){return arguments.length?(n=AI(a),u):n},u.size=function(a){if(!arguments.length)return[i,s];var l=+a[0],c=+a[1];return l>=0&&c>=0||Se("invalid size"),i=l,s=c,u},u.cellSize=function(a){return arguments.length?((a=+a)>=1||Se("invalid cell size"),o=Math.floor(Math.log(a)/Math.LN2),u):1<<o},u.bandwidth=function(a){return arguments.length?(a=Pe(a),a.length===1&&(a=[+a[0],+a[0]]),a.length!==2&&Se("invalid bandwidth"),r=a,u):r},u}function m1(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<e;++o)for(let u=0,a=0;u<t+i;++u)u<t&&(a+=n[u+o*t]),u>=i&&(u>=s&&(a-=n[u-s+o*t]),r[u-i+o*t]=a/Math.min(u+1,t-1+s-u,s))}function y1(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<t;++o)for(let u=0,a=0;u<e+i;++u)u<e&&(a+=n[o+u*t]),u>=i&&(u>=s&&(a-=n[o+(u-s)*t]),r[o+(u-i)*t]=a/Math.min(u+1,e-1+s-u,s))}function vI(t){pe.call(this,null,t)}vI.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const gze=["x","y","weight","size","cellSize","bandwidth"];function Yie(t,e){return gze.forEach(n=>e[n]!=null?t[n](e[n]):0),t}Fe(vI,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=mze(r,t.groupby),s=(t.groupby||[]).map(Pn),o=Yie(Vie(),t),u=t.as||"grid",a=[];function l(c,f){for(let x=0;x<s.length;++x)c[s[x]]=f[x];return c}return a=i.map(c=>$t(l({[u]:o(c,t.counts)},c.dims))),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function mze(t,e){var n=[],r=c=>c(u),i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function SI(t){pe.call(this,null,t)}SI.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},Fe(SI,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=zie().smooth(t.smooth!==!1),i=t.values,s=t.thresholds||Qie(t.count||10,t.nice,!!i),o=t.size,u,a;return i||(i=e.materialize(e.SOURCE).source,u=Yie(Vie(),t)(i,!0),a=Gie(u,u.scale||1,u.scale||1,0,0),o=[u.width,u.height],i=u.values),s=_e(s)?s:s(i),i=r.size(o)(i,s),a&&i.forEach(a),this.value&&(n.rem=this.value),this.value=n.source=n.add=(i||[]).map($t),n}});const _I="Feature",CI="FeatureCollection",yze="MultiPoint";function bI(t){pe.call(this,null,t)}bI.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},Fe(bI,pe,{transform(t,e){var n=this._features,r=this._points,i=t.fields,s=i&&i[0],o=i&&i[1],u=t.geojson||!i&&Si,a=e.ADD,l;l=t.modified()||e.changed(e.REM)||e.modified(vi(u))||s&&e.modified(vi(s))||o&&e.modified(vi(o)),(!this.value||l)&&(a=e.SOURCE,this._features=n=[],this._points=r=[]),u&&e.visit(a,c=>n.push(u(c))),s&&o&&(e.visit(a,c=>{var f=s(c),x=o(c);f!=null&&x!=null&&(f=+f)===f&&(x=+x)===x&&r.push([f,x])}),n=n.concat({type:_I,geometry:{type:yze,coordinates:r}})),this.value={type:CI,features:n}}});function TI(t){pe.call(this,null,t)}TI.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},Fe(TI,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.field||Si,s=t.as||"path",o=n.SOURCE;!r||t.modified()?(this.value=r=Hie(t.projection),n.materialize().reflow()):o=i===Si||e.modified(i.fields)?n.ADD_MOD:n.ADD;const u=Eze(r,t.pointRadius);return n.visit(o,a=>a[s]=r(i(a))),r.pointRadius(u),n.modifies(s)}});function Eze(t,e){const n=t.pointRadius();return t.context(null),e!=null&&t.pointRadius(e),n}function RI(t){pe.call(this,null,t)}RI.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},Fe(RI,pe,{transform(t,e){var n=t.projection,r=t.fields[0],i=t.fields[1],s=t.as||["x","y"],o=s[0],u=s[1],a;function l(c){const f=n([r(c),i(c)]);f?(c[o]=f[0],c[u]=f[1]):(c[o]=void 0,c[u]=void 0)}return t.modified()?e=e.materialize().reflow(!0).visit(e.SOURCE,l):(a=e.modified(r.fields)||e.modified(i.fields),e.visit(a?e.ADD_MOD:e.ADD,l)),e.modifies(s)}});function OI(t){pe.call(this,null,t)}OI.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},Fe(OI,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.as||"shape",s=n.ADD;return(!r||t.modified())&&(this.value=r=Aze(Hie(t.projection),t.field||Bs("datum"),t.pointRadius),n.materialize().reflow(),s=n.SOURCE),n.visit(s,o=>o[i]=r),n.modifies(i)}});function Aze(t,e,n){const r=n==null?i=>t(e(i)):i=>{var s=t.pointRadius(),o=t.pointRadius(n)(e(i));return t.pointRadius(s),o};return r.context=i=>(t.context(i),r),r}function NI(t){pe.call(this,[],t),this.generator=hHe()}NI.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},Fe(NI,pe,{transform(t,e){var n=this.value,r=this.generator,i;if(!n.length||t.modified())for(const s in t)ct(r[s])&&r[s](t[s]);return i=r(),n.length?e.mod.push(xJ(n[0],i)):e.add.push($t(i)),n[0]=i,e}});function DI(t){pe.call(this,null,t)}DI.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},Fe(DI,pe,{transform(t,e){if(!e.changed()&&!t.modified())return e.StopPropagation;var n=e.materialize(e.SOURCE).source,r=t.resolve==="shared",i=t.field||Si,s=Sze(t.opacity,t),o=vze(t.color,t),u=t.as||"image",a={$x:0,$y:0,$value:0,$max:r?Ux(n.map(l=>Ux(i(l).values))):0};return n.forEach(l=>{const c=i(l),f=ft({},l,a);r||(f.$max=Ux(c.values||[])),l[u]=_ze(c,f,o.dep?o:Ci(o(f)),s.dep?s:Ci(s(f)))}),e.reflow(!0).modifies(u)}});function vze(t,e){let n;return ct(t)?(n=r=>bc(t(r,e)),n.dep=Kie(t)):n=Ci(bc(t||"#888")),n}function Sze(t,e){let n;return ct(t)?(n=r=>t(r,e),n.dep=Kie(t)):t?n=Ci(t):(n=r=>r.$value/r.$max||0,n.dep=!0),n}function Kie(t){if(!ct(t))return!1;const e=ia(vi(t));return e.$x||e.$y||e.$value||e.$max}function _ze(t,e,n,r){const i=t.width,s=t.height,o=t.x1||0,u=t.y1||0,a=t.x2||i,l=t.y2||s,c=t.values,f=c?g=>c[g]:Dx,x=Sc(a-o,l-u),h=x.getContext("2d"),p=h.getImageData(0,0,a-o,l-u),m=p.data;for(let g=u,y=0;g<l;++g){e.$y=g-u;for(let E=o,A=g*i;E<a;++E,y+=4){e.$x=E-o,e.$value=f(E+A);const v=n(e);m[y+0]=v.r,m[y+1]=v.g,m[y+2]=v.b,m[y+3]=~~(255*r(e))}}return h.putImageData(p,0,0),x}function Xie(t){pe.call(this,null,t),this.modified(!0)}Fe(Xie,pe,{transform(t,e){let n=this.value;return!n||t.modified("type")?(this.value=n=bze(t.type),yI.forEach(r=>{t[r]!=null&&Jie(n,r,t[r])})):yI.forEach(r=>{t.modified(r)&&Jie(n,r,t[r])}),t.pointRadius!=null&&n.path.pointRadius(t.pointRadius),t.fit&&Cze(n,t),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function Cze(t,e){const n=Tze(e.fit);e.extent?t.fitExtent(e.extent,n):e.size&&t.fitSize(e.size,n)}function bze(t){const e=qie((t||"mercator").toLowerCase());return e||Se("Unrecognized projection type: "+t),e()}function Jie(t,e,n){ct(t[e])&&t[e](n)}function Tze(t){return t=Pe(t),t.length===1?t[0]:{type:CI,features:t.reduce((e,n)=>e.concat(Rze(n)),[])}}function Rze(t){return t.type===CI?t.features:Pe(t).filter(e=>e!=null).map(e=>e.type===_I?e:{type:_I,geometry:e})}const Oze=Object.freeze(Object.defineProperty({__proto__:null,contour:SI,geojson:bI,geopath:TI,geopoint:RI,geoshape:OI,graticule:NI,heatmap:DI,isocontour:EI,kde2d:vI,projection:Xie},Symbol.toStringTag,{value:"Module"}));function Nze(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var s,o=n.length,u,a=0,l=0;for(s=0;s<o;++s)u=n[s],a+=u.x,l+=u.y;for(a=(a/o-t)*r,l=(l/o-e)*r,s=0;s<o;++s)u=n[s],u.x-=a,u.y-=l}return i.initialize=function(s){n=s},i.x=function(s){return arguments.length?(t=+s,i):t},i.y=function(s){return arguments.length?(e=+s,i):e},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function Dze(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return Zie(this.cover(e,n),e,n,t)}function Zie(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,s=t._root,o={data:r},u=t._x0,a=t._y0,l=t._x1,c=t._y1,f,x,h,p,m,g,y,E;if(!s)return t._root=o,t;for(;s.length;)if((m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x,i=s,!(s=s[y=g<<1|m]))return i[y]=o,t;if(h=+t._x.call(null,s.data),p=+t._y.call(null,s.data),e===h&&n===p)return o.next=s,i?i[y]=o:t._root=o,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x;while((y=g<<1|m)===(E=(p>=x)<<1|h>=f));return i[E]=s,i[y]=o,t}function Fze(t){var e,n,r=t.length,i,s,o=new Array(r),u=new Array(r),a=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=i,u[n]=s,i<a&&(a=i),i>c&&(c=i),s<l&&(l=s),s>f&&(f=s));if(a>c||l>f)return this;for(this.cover(a,l).cover(c,f),n=0;n<r;++n)Zie(this,o[n],u[n],t[n]);return this}function wze(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,s=(r=Math.floor(e))+1;else{for(var o=i-n||1,u=this._root,a,l;n>t||t>=i||r>e||e>=s;)switch(l=(e<r)<<1|t<n,a=new Array(4),a[l]=u,u=a,o*=2,l){case 0:i=n+o,s=r+o;break;case 1:n=i-o,s=r+o;break;case 2:i=n+o,r=s-o;break;case 3:n=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=i,this._y1=s,this}function Lze(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function Ize(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Pi(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function $ze(t,e,n){var r,i=this._x0,s=this._y0,o,u,a,l,c=this._x1,f=this._y1,x=[],h=this._root,p,m;for(h&&x.push(new Pi(h,i,s,c,f)),n==null?n=1/0:(i=t-n,s=e-n,c=t+n,f=e+n,n*=n);p=x.pop();)if(!(!(h=p.node)||(o=p.x0)>c||(u=p.y0)>f||(a=p.x1)<i||(l=p.y1)<s))if(h.length){var g=(o+a)/2,y=(u+l)/2;x.push(new Pi(h[3],g,y,a,l),new Pi(h[2],o,y,g,l),new Pi(h[1],g,u,a,y),new Pi(h[0],o,u,g,y)),(m=(e>=y)<<1|t>=g)&&(p=x[x.length-1],x[x.length-1]=x[x.length-1-m],x[x.length-1-m]=p)}else{var E=t-+this._x.call(null,h.data),A=e-+this._y.call(null,h.data),v=E*E+A*A;if(v<n){var S=Math.sqrt(n=v);i=t-S,s=e-S,c=t+S,f=e+S,r=h.data}}return r}function Bze(t){if(isNaN(c=+this._x.call(null,t))||isNaN(f=+this._y.call(null,t)))return this;var e,n=this._root,r,i,s,o=this._x0,u=this._y0,a=this._x1,l=this._y1,c,f,x,h,p,m,g,y;if(!n)return this;if(n.length)for(;;){if((p=c>=(x=(o+a)/2))?o=x:a=x,(m=f>=(h=(u+l)/2))?u=h:l=h,e=n,!(n=n[g=m<<1|p]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(s=n.next)&&delete n.next,i?(s?i.next=s:delete i.next,this):e?(s?e[g]=s:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=s,this)}function kze(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function Pze(){return this._root}function Mze(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function jze(t){var e=[],n,r=this._root,i,s,o,u,a;for(r&&e.push(new Pi(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,s=n.x0,o=n.y0,u=n.x1,a=n.y1)&&r.length){var l=(s+u)/2,c=(o+a)/2;(i=r[3])&&e.push(new Pi(i,l,c,u,a)),(i=r[2])&&e.push(new Pi(i,s,c,l,a)),(i=r[1])&&e.push(new Pi(i,l,o,u,c)),(i=r[0])&&e.push(new Pi(i,s,o,l,c))}return this}function Uze(t){var e=[],n=[],r;for(this._root&&e.push(new Pi(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var s,o=r.x0,u=r.y0,a=r.x1,l=r.y1,c=(o+a)/2,f=(u+l)/2;(s=i[0])&&e.push(new Pi(s,o,u,c,f)),(s=i[1])&&e.push(new Pi(s,c,u,a,f)),(s=i[2])&&e.push(new Pi(s,o,f,c,l)),(s=i[3])&&e.push(new Pi(s,c,f,a,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function qze(t){return t[0]}function Hze(t){return arguments.length?(this._x=t,this):this._x}function zze(t){return t[1]}function Qze(t){return arguments.length?(this._y=t,this):this._y}function FI(t,e,n){var r=new wI(e??qze,n??zze,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function wI(t,e,n,r,i,s){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function ese(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var Mi=FI.prototype=wI.prototype;Mi.copy=function(){var t=new wI(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=ese(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=ese(r));return t},Mi.add=Dze,Mi.addAll=Fze,Mi.cover=wze,Mi.data=Lze,Mi.extent=Ize,Mi.find=$ze,Mi.remove=Bze,Mi.removeAll=kze,Mi.root=Pze,Mi.size=Mze,Mi.visit=jze,Mi.visitAfter=Uze,Mi.x=Hze,Mi.y=Qze;function ji(t){return function(){return t}}function Mc(t){return(t()-.5)*1e-6}function Gze(t){return t.x+t.vx}function Wze(t){return t.y+t.vy}function Vze(t){var e,n,r,i=1,s=1;typeof t!="function"&&(t=ji(t==null?1:+t));function o(){for(var l,c=e.length,f,x,h,p,m,g,y=0;y<s;++y)for(f=FI(e,Gze,Wze).visitAfter(u),l=0;l<c;++l)x=e[l],m=n[x.index],g=m*m,h=x.x+x.vx,p=x.y+x.vy,f.visit(E);function E(A,v,S,C,_){var b=A.data,R=A.r,O=m+R;if(b){if(b.index>x.index){var L=h-b.x-b.vx,M=p-b.y-b.vy,q=L*L+M*M;q<O*O&&(L===0&&(L=Mc(r),q+=L*L),M===0&&(M=Mc(r),q+=M*M),q=(O-(q=Math.sqrt(q)))/q*i,x.vx+=(L*=q)*(O=(R*=R)/(g+R)),x.vy+=(M*=q)*O,b.vx-=L*(O=1-O),b.vy-=M*O)}return}return v>h+O||C<h-O||S>p+O||_<p-O}}function u(l){if(l.data)return l.r=n[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function a(){if(e){var l,c=e.length,f;for(n=new Array(c),l=0;l<c;++l)f=e[l],n[f.index]=+t(f,l,e)}}return o.initialize=function(l,c){e=l,r=c,a()},o.iterations=function(l){return arguments.length?(s=+l,o):s},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:ji(+l),a(),o):t},o}function Yze(t){return t.index}function tse(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Kze(t){var e=Yze,n=f,r,i=ji(30),s,o,u,a,l,c=1;t==null&&(t=[]);function f(g){return 1/Math.min(u[g.source.index],u[g.target.index])}function x(g){for(var y=0,E=t.length;y<c;++y)for(var A=0,v,S,C,_,b,R,O;A<E;++A)v=t[A],S=v.source,C=v.target,_=C.x+C.vx-S.x-S.vx||Mc(l),b=C.y+C.vy-S.y-S.vy||Mc(l),R=Math.sqrt(_*_+b*b),R=(R-s[A])/R*g*r[A],_*=R,b*=R,C.vx-=_*(O=a[A]),C.vy-=b*O,S.vx+=_*(O=1-O),S.vy+=b*O}function h(){if(o){var g,y=o.length,E=t.length,A=new Map(o.map((S,C)=>[e(S,C,o),S])),v;for(g=0,u=new Array(y);g<E;++g)v=t[g],v.index=g,typeof v.source!="object"&&(v.source=tse(A,v.source)),typeof v.target!="object"&&(v.target=tse(A,v.target)),u[v.source.index]=(u[v.source.index]||0)+1,u[v.target.index]=(u[v.target.index]||0)+1;for(g=0,a=new Array(E);g<E;++g)v=t[g],a[g]=u[v.source.index]/(u[v.source.index]+u[v.target.index]);r=new Array(E),p(),s=new Array(E),m()}}function p(){if(o)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function m(){if(o)for(var g=0,y=t.length;g<y;++g)s[g]=+i(t[g],g,t)}return x.initialize=function(g,y){o=g,l=y,h()},x.links=function(g){return arguments.length?(t=g,h(),x):t},x.id=function(g){return arguments.length?(e=g,x):e},x.iterations=function(g){return arguments.length?(c=+g,x):c},x.strength=function(g){return arguments.length?(n=typeof g=="function"?g:ji(+g),p(),x):n},x.distance=function(g){return arguments.length?(i=typeof g=="function"?g:ji(+g),m(),x):i},x}var Xze={value:()=>{}};function nse(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new gT(n)}function gT(t){this._=t}function Jze(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}gT.prototype=nse.prototype={constructor:gT,on:function(t,e){var n=this._,r=Jze(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=Zze(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=r[s]).type)n[i]=rse(n[i],t.name,e);else if(e==null)for(i in n)n[i]=rse(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new gT(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,s;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],r=0,i=s.length;r<i;++r)s[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,s=r.length;i<s;++i)r[i].value.apply(e,n)}};function Zze(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function rse(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Xze,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var E1=0,qy=0,Hy=0,ise=1e3,mT,zy,yT=0,md=0,ET=0,Qy=typeof performance=="object"&&performance.now?performance:Date,sse=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function LI(){return md||(sse(eQe),md=Qy.now()+ET)}function eQe(){md=0}function AT(){this._call=this._time=this._next=null}AT.prototype=ose.prototype={constructor:AT,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?LI():+n)+(e==null?0:+e),!this._next&&zy!==this&&(zy?zy._next=this:mT=this,zy=this),this._call=t,this._time=n,II()},stop:function(){this._call&&(this._call=null,this._time=1/0,II())}};function ose(t,e,n){var r=new AT;return r.restart(t,e,n),r}function tQe(){LI(),++E1;for(var t=mT,e;t;)(e=md-t._time)>=0&&t._call.call(void 0,e),t=t._next;--E1}function use(){md=(yT=Qy.now())+ET,E1=qy=0;try{tQe()}finally{E1=0,rQe(),md=0}}function nQe(){var t=Qy.now(),e=t-yT;e>ise&&(ET-=e,yT=t)}function rQe(){for(var t,e=mT,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:mT=n);zy=t,II(r)}function II(t){if(!E1){qy&&(qy=clearTimeout(qy));var e=t-md;e>24?(t<1/0&&(qy=setTimeout(use,t-Qy.now()-ET)),Hy&&(Hy=clearInterval(Hy))):(Hy||(yT=Qy.now(),Hy=setInterval(nQe,ise)),E1=1,sse(use))}}function iQe(t,e,n){var r=new AT,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(s,o,u){o=+o,u=u==null?LI():+u,r._restart(function a(l){l+=i,r._restart(a,i+=o,u),s(l)},o,u)},r.restart(t,e,n),r)}const sQe=1664525,oQe=1013904223,ase=4294967296;function uQe(){let t=1;return()=>(t=(sQe*t+oQe)%ase)/ase}function aQe(t){return t.x}function lQe(t){return t.y}var cQe=10,fQe=Math.PI*(3-Math.sqrt(5));function xQe(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,u=new Map,a=ose(f),l=nse("tick","end"),c=uQe();t==null&&(t=[]);function f(){x(),l.call("tick",e),n<r&&(a.stop(),l.call("end",e))}function x(m){var g,y=t.length,E;m===void 0&&(m=1);for(var A=0;A<m;++A)for(n+=(s-n)*i,u.forEach(function(v){v(n)}),g=0;g<y;++g)E=t[g],E.fx==null?E.x+=E.vx*=o:(E.x=E.fx,E.vx=0),E.fy==null?E.y+=E.vy*=o:(E.y=E.fy,E.vy=0);return e}function h(){for(var m=0,g=t.length,y;m<g;++m){if(y=t[m],y.index=m,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var E=cQe*Math.sqrt(.5+m),A=m*fQe;y.x=E*Math.cos(A),y.y=E*Math.sin(A)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function p(m){return m.initialize&&m.initialize(t,c),m}return h(),e={tick:x,restart:function(){return a.restart(f),e},stop:function(){return a.stop(),e},nodes:function(m){return arguments.length?(t=m,h(),u.forEach(p),e):t},alpha:function(m){return arguments.length?(n=+m,e):n},alphaMin:function(m){return arguments.length?(r=+m,e):r},alphaDecay:function(m){return arguments.length?(i=+m,e):+i},alphaTarget:function(m){return arguments.length?(s=+m,e):s},velocityDecay:function(m){return arguments.length?(o=1-m,e):1-o},randomSource:function(m){return arguments.length?(c=m,u.forEach(p),e):c},force:function(m,g){return arguments.length>1?(g==null?u.delete(m):u.set(m,p(g)),e):u.get(m)},find:function(m,g,y){var E=0,A=t.length,v,S,C,_,b;for(y==null?y=1/0:y*=y,E=0;E<A;++E)_=t[E],v=m-_.x,S=g-_.y,C=v*v+S*S,C<y&&(b=_,y=C);return b},on:function(m,g){return arguments.length>1?(l.on(m,g),e):l.on(m)}}}function dQe(){var t,e,n,r,i=ji(-30),s,o=1,u=1/0,a=.81;function l(h){var p,m=t.length,g=FI(t,aQe,lQe).visitAfter(f);for(r=h,p=0;p<m;++p)e=t[p],g.visit(x)}function c(){if(t){var h,p=t.length,m;for(s=new Array(p),h=0;h<p;++h)m=t[h],s[m.index]=+i(m,h,t)}}function f(h){var p=0,m,g,y=0,E,A,v;if(h.length){for(E=A=v=0;v<4;++v)(m=h[v])&&(g=Math.abs(m.value))&&(p+=m.value,y+=g,E+=g*m.x,A+=g*m.y);h.x=E/y,h.y=A/y}else{m=h,m.x=m.data.x,m.y=m.data.y;do p+=s[m.data.index];while(m=m.next)}h.value=p}function x(h,p,m,g){if(!h.value)return!0;var y=h.x-e.x,E=h.y-e.y,A=g-p,v=y*y+E*E;if(A*A/a<v)return v<u&&(y===0&&(y=Mc(n),v+=y*y),E===0&&(E=Mc(n),v+=E*E),v<o&&(v=Math.sqrt(o*v)),e.vx+=y*h.value*r/v,e.vy+=E*h.value*r/v),!0;if(h.length||v>=u)return;(h.data!==e||h.next)&&(y===0&&(y=Mc(n),v+=y*y),E===0&&(E=Mc(n),v+=E*E),v<o&&(v=Math.sqrt(o*v)));do h.data!==e&&(A=s[h.data.index]*r/v,e.vx+=y*A,e.vy+=E*A);while(h=h.next)}return l.initialize=function(h,p){t=h,n=p,c()},l.strength=function(h){return arguments.length?(i=typeof h=="function"?h:ji(+h),c(),l):i},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l.theta=function(h){return arguments.length?(a=h*h,l):Math.sqrt(a)},l}function hQe(t){var e=ji(.1),n,r,i;typeof t!="function"&&(t=ji(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vx+=(i[a]-c.x)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:ji(+u),o(),s):e},s.x=function(u){return arguments.length?(t=typeof u=="function"?u:ji(+u),o(),s):t},s}function pQe(t){var e=ji(.1),n,r,i;typeof t!="function"&&(t=ji(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vy+=(i[a]-c.y)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:ji(+u),o(),s):e},s.y=function(u){return arguments.length?(t=typeof u=="function"?u:ji(+u),o(),s):t},s}const lse={center:Nze,collide:Vze,nbody:dQe,link:Kze,x:hQe,y:pQe},Gy="forces",$I=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],gQe=["static","iterations"],cse=["x","y","vx","vy"];function BI(t){pe.call(this,null,t)}BI.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:cse}]},Fe(BI,pe,{transform(t,e){var n=this.value,r=e.changed(e.ADD_REM),i=t.modified($I),s=t.iterations||300;if(n?(r&&(e.modifies("index"),n.nodes(e.source)),(i||e.changed(e.MOD))&&fse(n,t,0,e)):(this.value=n=yQe(e.source,t),n.on("tick",mQe(e.dataflow,this)),t.static||(r=!0,n.tick()),e.modifies("index")),i||r||t.modified(gQe)||e.changed()&&t.restart){if(n.alpha(Math.max(n.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(n.alphaMin(),1/s)),t.static)for(n.stop();--s>=0;)n.tick();else if(n.stopped()&&n.restart(),!r)return e.StopPropagation}return this.finish(t,e)},finish(t,e){const n=e.dataflow;for(let u=this._argops,a=0,l=u.length,c;a<l;++a)if(c=u[a],!(c.name!==Gy||c.op._argval.force!=="link")){for(var r=c.op._argops,i=0,s=r.length,o;i<s;++i)if(r[i].name==="links"&&(o=r[i].op.source)){n.pulse(o,n.changeset().reflow());break}}return e.reflow(t.modified()).modifies(cse)}});function mQe(t,e){return()=>t.touch(e).run()}function yQe(t,e){const n=xQe(t),r=n.stop,i=n.restart;let s=!1;return n.stopped=()=>s,n.restart=()=>(s=!1,i()),n.stop=()=>(s=!0,r()),fse(n,e,!0).on("end",()=>s=!0)}function fse(t,e,n,r){var i=Pe(e.forces),s,o,u,a;for(s=0,o=$I.length;s<o;++s)u=$I[s],u!==Gy&&e.modified(u)&&t[u](e[u]);for(s=0,o=i.length;s<o;++s)a=Gy+s,u=n||e.modified(Gy,s)?AQe(i[s]):r&&EQe(i[s],r)?t.force(a):null,u&&t.force(a,u);for(o=t.numForces||0;s<o;++s)t.force(Gy+s,null);return t.numForces=i.length,t}function EQe(t,e){var n,r;for(n in t)if(ct(r=t[n])&&e.modified(vi(r)))return 1;return 0}function AQe(t){var e,n;Je(lse,t.force)||Se("Unrecognized force: "+t.force),e=lse[t.force]();for(n in t)ct(e[n])&&vQe(e[n],t[n],t);return e}function vQe(t,e,n){t(ct(e)?r=>e(r,n):e)}const SQe=Object.freeze(Object.defineProperty({__proto__:null,force:BI},Symbol.toStringTag,{value:"Module"}));function _Qe(t,e){return t.parent===e.parent?1:2}function CQe(t){return t.reduce(bQe,0)/t.length}function bQe(t,e){return t+e.x}function TQe(t){return 1+t.reduce(RQe,0)}function RQe(t,e){return Math.max(t,e.y)}function OQe(t){for(var e;e=t.children;)t=e[0];return t}function NQe(t){for(var e;e=t.children;)t=e[e.length-1];return t}function DQe(){var t=_Qe,e=1,n=1,r=!1;function i(s){var o,u=0;s.eachAfter(function(x){var h=x.children;h?(x.x=CQe(h),x.y=TQe(h)):(x.x=o?u+=t(x,o):0,x.y=0,o=x)});var a=OQe(s),l=NQe(s),c=a.x-t(a,l)/2,f=l.x+t(l,a)/2;return s.eachAfter(r?function(x){x.x=(x.x-s.x)*e,x.y=(s.y-x.y)*n}:function(x){x.x=(x.x-c)/(f-c)*e,x.y=(1-(s.y?x.y/s.y:1))*n})}return i.separation=function(s){return arguments.length?(t=s,i):t},i.size=function(s){return arguments.length?(r=!1,e=+s[0],n=+s[1],i):r?null:[e,n]},i.nodeSize=function(s){return arguments.length?(r=!0,e=+s[0],n=+s[1],i):r?[e,n]:null},i}function FQe(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function wQe(){return this.eachAfter(FQe)}function LQe(t,e){let n=-1;for(const r of this)t.call(e,r,++n,this);return this}function IQe(t,e){for(var n=this,r=[n],i,s,o=-1;n=r.pop();)if(t.call(e,n,++o,this),i=n.children)for(s=i.length-1;s>=0;--s)r.push(i[s]);return this}function $Qe(t,e){for(var n=this,r=[n],i=[],s,o,u,a=-1;n=r.pop();)if(i.push(n),s=n.children)for(o=0,u=s.length;o<u;++o)r.push(s[o]);for(;n=i.pop();)t.call(e,n,++a,this);return this}function BQe(t,e){let n=-1;for(const r of this)if(t.call(e,r,++n,this))return r}function kQe(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function PQe(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function MQe(t){for(var e=this,n=jQe(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function jQe(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function UQe(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function qQe(){return Array.from(this)}function HQe(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function zQe(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*QQe(){var t=this,e,n=[t],r,i,s;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,s=r.length;i<s;++i)n.push(r[i]);while(n.length)}function kI(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=VQe)):e===void 0&&(e=WQe);for(var n=new A1(t),r,i=[n],s,o,u,a;r=i.pop();)if((o=e(r.data))&&(a=(o=Array.from(o)).length))for(r.children=o,u=a-1;u>=0;--u)i.push(s=o[u]=new A1(o[u])),s.parent=r,s.depth=r.depth+1;return n.eachBefore(xse)}function GQe(){return kI(this).eachBefore(YQe)}function WQe(t){return t.children}function VQe(t){return Array.isArray(t)?t[1]:null}function YQe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function xse(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function A1(t){this.data=t,this.depth=this.height=0,this.parent=null}A1.prototype=kI.prototype={constructor:A1,count:wQe,each:LQe,eachAfter:$Qe,eachBefore:IQe,find:BQe,sum:kQe,sort:PQe,path:MQe,ancestors:UQe,descendants:qQe,leaves:HQe,links:zQe,copy:GQe,[Symbol.iterator]:QQe};function vT(t){return t==null?null:dse(t)}function dse(t){if(typeof t!="function")throw new Error;return t}function yd(){return 0}function v1(t){return function(){return t}}const KQe=1664525,XQe=1013904223,hse=4294967296;function JQe(){let t=1;return()=>(t=(KQe*t+XQe)%hse)/hse}function ZQe(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function eGe(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function tGe(t,e){for(var n=0,r=(t=eGe(Array.from(t),e)).length,i=[],s,o;n<r;)s=t[n],o&&pse(o,s)?++n:(o=rGe(i=nGe(i,s)),n=0);return o}function nGe(t,e){var n,r;if(PI(e,t))return[e];for(n=0;n<t.length;++n)if(ST(e,t[n])&&PI(Wy(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(ST(Wy(t[n],t[r]),e)&&ST(Wy(t[n],e),t[r])&&ST(Wy(t[r],e),t[n])&&PI(gse(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function ST(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function pse(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function PI(t,e){for(var n=0;n<e.length;++n)if(!pse(t,e[n]))return!1;return!0}function rGe(t){switch(t.length){case 1:return iGe(t[0]);case 2:return Wy(t[0],t[1]);case 3:return gse(t[0],t[1],t[2])}}function iGe(t){return{x:t.x,y:t.y,r:t.r}}function Wy(t,e){var n=t.x,r=t.y,i=t.r,s=e.x,o=e.y,u=e.r,a=s-n,l=o-r,c=u-i,f=Math.sqrt(a*a+l*l);return{x:(n+s+a/f*c)/2,y:(r+o+l/f*c)/2,r:(f+i+u)/2}}function gse(t,e,n){var r=t.x,i=t.y,s=t.r,o=e.x,u=e.y,a=e.r,l=n.x,c=n.y,f=n.r,x=r-o,h=r-l,p=i-u,m=i-c,g=a-s,y=f-s,E=r*r+i*i-s*s,A=E-o*o-u*u+a*a,v=E-l*l-c*c+f*f,S=h*p-x*m,C=(p*v-m*A)/(S*2)-r,_=(m*g-p*y)/S,b=(h*A-x*v)/(S*2)-i,R=(x*y-h*g)/S,O=_*_+R*R-1,L=2*(s+C*_+b*R),M=C*C+b*b-s*s,q=-(Math.abs(O)>1e-6?(L+Math.sqrt(L*L-4*O*M))/(2*O):M/L);return{x:r+C+_*q,y:i+b+R*q,r:q}}function mse(t,e,n){var r=t.x-e.x,i,s,o=t.y-e.y,u,a,l=r*r+o*o;l?(s=e.r+n.r,s*=s,a=t.r+n.r,a*=a,s>a?(i=(l+a-s)/(2*l),u=Math.sqrt(Math.max(0,a/l-i*i)),n.x=t.x-i*r-u*o,n.y=t.y-i*o+u*r):(i=(l+s-a)/(2*l),u=Math.sqrt(Math.max(0,s/l-i*i)),n.x=e.x+i*r-u*o,n.y=e.y+i*o+u*r)):(n.x=e.x+n.r,n.y=e.y)}function yse(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Ese(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,s=(e.y*n.r+n.y*e.r)/r;return i*i+s*s}function _T(t){this._=t,this.next=null,this.previous=null}function sGe(t,e){if(!(s=(t=ZQe(t)).length))return 0;var n,r,i,s,o,u,a,l,c,f,x;if(n=t[0],n.x=0,n.y=0,!(s>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(s>2))return n.r+r.r;mse(r,n,i=t[2]),n=new _T(n),r=new _T(r),i=new _T(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;e:for(a=3;a<s;++a){mse(n._,r._,i=t[a]),i=new _T(i),l=r.next,c=n.previous,f=r._.r,x=n._.r;do if(f<=x){if(yse(l._,i._)){r=l,n.next=r,r.previous=n,--a;continue e}f+=l._.r,l=l.next}else{if(yse(c._,i._)){n=c,n.next=r,r.previous=n,--a;continue e}x+=c._.r,c=c.previous}while(l!==c.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,o=Ese(n);(i=i.next)!==r;)(u=Ese(i))<o&&(n=i,o=u);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=tGe(n,e),a=0;a<s;++a)n=t[a],n.x-=i.x,n.y-=i.y;return i.r}function oGe(t){return Math.sqrt(t.value)}function uGe(){var t=null,e=1,n=1,r=yd;function i(s){const o=JQe();return s.x=e/2,s.y=n/2,t?s.eachBefore(Ase(t)).eachAfter(MI(r,.5,o)).eachBefore(vse(1)):s.eachBefore(Ase(oGe)).eachAfter(MI(yd,1,o)).eachAfter(MI(r,s.r/Math.min(e,n),o)).eachBefore(vse(Math.min(e,n)/(2*s.r))),s}return i.radius=function(s){return arguments.length?(t=vT(s),i):t},i.size=function(s){return arguments.length?(e=+s[0],n=+s[1],i):[e,n]},i.padding=function(s){return arguments.length?(r=typeof s=="function"?s:v1(+s),i):r},i}function Ase(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function MI(t,e,n){return function(r){if(i=r.children){var i,s,o=i.length,u=t(r)*e||0,a;if(u)for(s=0;s<o;++s)i[s].r+=u;if(a=sGe(i,n),u)for(s=0;s<o;++s)i[s].r-=u;r.r=a+u}}}function vse(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function Sse(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Vy(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(r-e)/t.value;++u<a;)o=s[u],o.y0=n,o.y1=i,o.x0=e,o.x1=e+=o.value*l}function aGe(){var t=1,e=1,n=0,r=!1;function i(o){var u=o.height+1;return o.x0=o.y0=n,o.x1=t,o.y1=e/u,o.eachBefore(s(e,u)),r&&o.eachBefore(Sse),o}function s(o,u){return function(a){a.children&&Vy(a,a.x0,o*(a.depth+1)/u,a.x1,o*(a.depth+2)/u);var l=a.x0,c=a.y0,f=a.x1-n,x=a.y1-n;f<l&&(l=f=(l+f)/2),x<c&&(c=x=(c+x)/2),a.x0=l,a.y0=c,a.x1=f,a.y1=x}}return i.round=function(o){return arguments.length?(r=!!o,i):r},i.size=function(o){return arguments.length?(t=+o[0],e=+o[1],i):[t,e]},i.padding=function(o){return arguments.length?(n=+o,i):n},i}var lGe={depth:-1},_se={},jI={};function cGe(t){return t.id}function fGe(t){return t.parentId}function Cse(){var t=cGe,e=fGe,n;function r(i){var s=Array.from(i),o=t,u=e,a,l,c,f,x,h,p,m,g=new Map;if(n!=null){const y=s.map((v,S)=>xGe(n(v,S,i))),E=y.map(bse),A=new Set(y).add("");for(const v of E)A.has(v)||(A.add(v),y.push(v),E.push(bse(v)),s.push(jI));o=(v,S)=>y[S],u=(v,S)=>E[S]}for(c=0,a=s.length;c<a;++c)l=s[c],h=s[c]=new A1(l),(p=o(l,c,i))!=null&&(p+="")&&(m=h.id=p,g.set(m,g.has(m)?_se:h)),(p=u(l,c,i))!=null&&(p+="")&&(h.parent=p);for(c=0;c<a;++c)if(h=s[c],p=h.parent){if(x=g.get(p),!x)throw new Error("missing: "+p);if(x===_se)throw new Error("ambiguous: "+p);x.children?x.children.push(h):x.children=[h],h.parent=x}else{if(f)throw new Error("multiple roots");f=h}if(!f)throw new Error("no root");if(n!=null){for(;f.data===jI&&f.children.length===1;)f=f.children[0],--a;for(let y=s.length-1;y>=0&&(h=s[y],h.data===jI);--y)h.data=null}if(f.parent=lGe,f.eachBefore(function(y){y.depth=y.parent.depth+1,--a}).eachBefore(xse),f.parent=null,a>0)throw new Error("cycle");return f}return r.id=function(i){return arguments.length?(t=vT(i),r):t},r.parentId=function(i){return arguments.length?(e=vT(i),r):e},r.path=function(i){return arguments.length?(n=vT(i),r):n},r}function xGe(t){t=`${t}`;let e=t.length;return UI(t,e-1)&&!UI(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function bse(t){let e=t.length;if(e<2)return"";for(;--e>1&&!UI(t,e););return t.slice(0,e)}function UI(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if(!(n&1))return!0}return!1}function dGe(t,e){return t.parent===e.parent?1:2}function qI(t){var e=t.children;return e?e[0]:t.t}function HI(t){var e=t.children;return e?e[e.length-1]:t.t}function hGe(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function pGe(t){for(var e=0,n=0,r=t.children,i=r.length,s;--i>=0;)s=r[i],s.z+=e,s.m+=e,e+=s.s+(n+=s.c)}function gGe(t,e,n){return t.a.parent===e.parent?t.a:n}function CT(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}CT.prototype=Object.create(A1.prototype);function mGe(t){for(var e=new CT(t,0),n,r=[e],i,s,o,u;n=r.pop();)if(s=n._.children)for(n.children=new Array(u=s.length),o=u-1;o>=0;--o)r.push(i=n.children[o]=new CT(s[o],o)),i.parent=n;return(e.parent=new CT(null,0)).children=[e],e}function yGe(){var t=dGe,e=1,n=1,r=null;function i(l){var c=mGe(l);if(c.eachAfter(s),c.parent.m=-c.z,c.eachBefore(o),r)l.eachBefore(a);else{var f=l,x=l,h=l;l.eachBefore(function(E){E.x<f.x&&(f=E),E.x>x.x&&(x=E),E.depth>h.depth&&(h=E)});var p=f===x?1:t(f,x)/2,m=p-f.x,g=e/(x.x+p+m),y=n/(h.depth||1);l.eachBefore(function(E){E.x=(E.x+m)*g,E.y=E.depth*y})}return l}function s(l){var c=l.children,f=l.parent.children,x=l.i?f[l.i-1]:null;if(c){pGe(l);var h=(c[0].z+c[c.length-1].z)/2;x?(l.z=x.z+t(l._,x._),l.m=l.z-h):l.z=h}else x&&(l.z=x.z+t(l._,x._));l.parent.A=u(l,x,l.parent.A||f[0])}function o(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function u(l,c,f){if(c){for(var x=l,h=l,p=c,m=x.parent.children[0],g=x.m,y=h.m,E=p.m,A=m.m,v;p=HI(p),x=qI(x),p&&x;)m=qI(m),h=HI(h),h.a=l,v=p.z+E-x.z-g+t(p._,x._),v>0&&(hGe(gGe(p,l,f),l,v),g+=v,y+=v),E+=p.m,g+=x.m,A+=m.m,y+=h.m;p&&!HI(h)&&(h.t=p,h.m+=E-y),x&&!qI(m)&&(m.t=x,m.m+=g-A,f=l)}return f}function a(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function bT(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(i-n)/t.value;++u<a;)o=s[u],o.x0=e,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var Tse=(1+Math.sqrt(5))/2;function Rse(t,e,n,r,i,s){for(var o=[],u=e.children,a,l,c=0,f=0,x=u.length,h,p,m=e.value,g,y,E,A,v,S,C;c<x;){h=i-n,p=s-r;do g=u[f++].value;while(!g&&f<x);for(y=E=g,S=Math.max(p/h,h/p)/(m*t),C=g*g*S,v=Math.max(E/C,C/y);f<x;++f){if(g+=l=u[f].value,l<y&&(y=l),l>E&&(E=l),C=g*g*S,A=Math.max(E/C,C/y),A>v){g-=l;break}v=A}o.push(a={value:g,dice:h<p,children:u.slice(c,f)}),a.dice?Vy(a,n,r,i,m?r+=p*g/m:s):bT(a,n,r,m?n+=h*g/m:i,s),m-=g,c=f}return o}const Ose=function t(e){function n(r,i,s,o,u){Rse(e,r,i,s,o,u)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(Tse);function EGe(){var t=Ose,e=!1,n=1,r=1,i=[0],s=yd,o=yd,u=yd,a=yd,l=yd;function c(x){return x.x0=x.y0=0,x.x1=n,x.y1=r,x.eachBefore(f),i=[0],e&&x.eachBefore(Sse),x}function f(x){var h=i[x.depth],p=x.x0+h,m=x.y0+h,g=x.x1-h,y=x.y1-h;g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),x.x0=p,x.y0=m,x.x1=g,x.y1=y,x.children&&(h=i[x.depth+1]=s(x)/2,p+=l(x)-h,m+=o(x)-h,g-=u(x)-h,y-=a(x)-h,g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),t(x,p,m,g,y))}return c.round=function(x){return arguments.length?(e=!!x,c):e},c.size=function(x){return arguments.length?(n=+x[0],r=+x[1],c):[n,r]},c.tile=function(x){return arguments.length?(t=dse(x),c):t},c.padding=function(x){return arguments.length?c.paddingInner(x).paddingOuter(x):c.paddingInner()},c.paddingInner=function(x){return arguments.length?(s=typeof x=="function"?x:v1(+x),c):s},c.paddingOuter=function(x){return arguments.length?c.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x):c.paddingTop()},c.paddingTop=function(x){return arguments.length?(o=typeof x=="function"?x:v1(+x),c):o},c.paddingRight=function(x){return arguments.length?(u=typeof x=="function"?x:v1(+x),c):u},c.paddingBottom=function(x){return arguments.length?(a=typeof x=="function"?x:v1(+x),c):a},c.paddingLeft=function(x){return arguments.length?(l=typeof x=="function"?x:v1(+x),c):l},c}function AGe(t,e,n,r,i){var s=t.children,o,u=s.length,a,l=new Array(u+1);for(l[0]=a=o=0;o<u;++o)l[o+1]=a+=s[o].value;c(0,u,t.value,e,n,r,i);function c(f,x,h,p,m,g,y){if(f>=x-1){var E=s[f];E.x0=p,E.y0=m,E.x1=g,E.y1=y;return}for(var A=l[f],v=h/2+A,S=f+1,C=x-1;S<C;){var _=S+C>>>1;l[_]<v?S=_+1:C=_}v-l[S-1]<l[S]-v&&f+1<S&&--S;var b=l[S]-A,R=h-b;if(g-p>y-m){var O=h?(p*R+g*b)/h:g;c(f,S,b,p,m,O,y),c(S,x,R,O,m,g,y)}else{var L=h?(m*R+y*b)/h:y;c(f,S,b,p,m,g,L),c(S,x,R,p,L,g,y)}}}function vGe(t,e,n,r,i){(t.depth&1?bT:Vy)(t,e,n,r,i)}const SGe=function t(e){function n(r,i,s,o,u){if((a=r._squarify)&&a.ratio===e)for(var a,l,c,f,x=-1,h,p=a.length,m=r.value;++x<p;){for(l=a[x],c=l.children,f=l.value=0,h=c.length;f<h;++f)l.value+=c[f].value;l.dice?Vy(l,i,s,o,m?s+=(u-s)*l.value/m:u):bT(l,i,s,m?i+=(o-i)*l.value/m:o,u),m-=l.value}else r._squarify=a=Rse(e,r,i,s,o,u),a.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(Tse);function zI(t,e,n){const r={};return t.each(i=>{const s=i.data;n(s)&&(r[e(s)]=i)}),t.lookup=r,t}function QI(t){pe.call(this,null,t)}QI.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const _Ge=t=>t.values;Fe(QI,pe,{transform(t,e){e.source||Se("Nest transform requires an upstream data source.");var n=t.generate,r=t.modified(),i=e.clone(),s=this.value;return(!s||r||e.changed())&&(s&&s.each(o=>{o.children&&rw(o.data)&&i.rem.push(o.data)}),this.value=s=kI({values:Pe(t.keys).reduce((o,u)=>(o.key(u),o),CGe()).entries(i.source)},_Ge),n&&s.each(o=>{o.children&&(o=$t(o.data),i.add.push(o),i.source.push(o))}),zI(s,Ze,Ze)),i.source.root=s,i}});function CGe(){const t=[],e={entries:i=>r(n(i,0),0),key:i=>(t.push(i),e)};function n(i,s){if(s>=t.length)return i;const o=i.length,u=t[s++],a={},l={};let c=-1,f,x,h;for(;++c<o;)f=u(x=i[c])+"",(h=a[f])?h.push(x):a[f]=[x];for(f in a)l[f]=n(a[f],s);return l}function r(i,s){if(++s>t.length)return i;const o=[];for(const u in i)o.push({key:u,values:r(i[u],s)});return o}return e}function e0(t){pe.call(this,null,t)}const bGe=(t,e)=>t.parent===e.parent?1:2;Fe(e0,pe,{transform(t,e){(!e.source||!e.source.root)&&Se(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(t.method),r=this.fields,i=e.source.root,s=t.as||r;t.field?i.sum(t.field):i.count(),t.sort&&i.sort(Gx(t.sort,o=>o.data)),TGe(n,this.params,t),n.separation&&n.separation(t.separation!==!1?bGe:g3);try{this.value=n(i)}catch(o){Se(o)}return i.each(o=>RGe(o,r,s)),e.reflow(t.modified()).modifies(s).modifies("leaf")}});function TGe(t,e,n){for(let r,i=0,s=e.length;i<s;++i)r=e[i],r in n&&t[r](n[r])}function RGe(t,e,n){const r=t.data,i=e.length-1;for(let s=0;s<i;++s)r[n[s]]=t[e[s]];r[n[i]]=t.children?t.children.length:0}const GI=["x","y","r","depth","children"];function WI(t){e0.call(this,t)}WI.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:GI.length,default:GI}]},Fe(WI,e0,{layout:uGe,params:["radius","size","padding"],fields:GI});const VI=["x0","y0","x1","y1","depth","children"];function YI(t){e0.call(this,t)}YI.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:VI.length,default:VI}]},Fe(YI,e0,{layout:aGe,params:["size","round","padding"],fields:VI});function KI(t){pe.call(this,null,t)}KI.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},Fe(KI,pe,{transform(t,e){e.source||Se("Stratify transform requires an upstream data source.");let n=this.value;const r=t.modified(),i=e.fork(e.ALL).materialize(e.SOURCE),s=!n||r||e.changed(e.ADD_REM)||e.modified(t.key.fields)||e.modified(t.parentKey.fields);return i.source=i.source.slice(),s&&(n=i.source.length?zI(Cse().id(t.key).parentId(t.parentKey)(i.source),t.key,Zo):zI(Cse()([{}]),t.key,t.key)),i.source.root=this.value=n,i}});const Nse={tidy:yGe,cluster:DQe},XI=["x","y","depth","children"];function JI(t){e0.call(this,t)}JI.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:XI.length,default:XI}]},Fe(JI,e0,{layout(t){const e=t||"tidy";if(Je(Nse,e))return Nse[e]();Se("Unrecognized Tree layout method: "+e)},params:["size","nodeSize"],fields:XI});function ZI(t){pe.call(this,[],t)}ZI.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},Fe(ZI,pe,{transform(t,e){const n=this.value,r=e.source&&e.source.root,i=e.fork(e.NO_SOURCE),s={};return r||Se("TreeLinks transform requires a tree data source."),e.changed(e.ADD_REM)?(i.rem=n,e.visit(e.SOURCE,o=>s[Ze(o)]=1),r.each(o=>{const u=o.data,a=o.parent&&o.parent.data;a&&s[Ze(u)]&&s[Ze(a)]&&i.add.push($t({source:a,target:u}))}),this.value=i.add):e.changed(e.MOD)&&(e.visit(e.MOD,o=>s[Ze(o)]=1),n.forEach(o=>{(s[Ze(o.source)]||s[Ze(o.target)])&&i.mod.push(o)})),i}});const Dse={binary:AGe,dice:Vy,slice:bT,slicedice:vGe,squarify:Ose,resquarify:SGe},e$=["x0","y0","x1","y1","depth","children"];function t$(t){e0.call(this,t)}t$.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:e$.length,default:e$}]},Fe(t$,e0,{layout(){const t=EGe();return t.ratio=e=>{const n=t.tile();n.ratio&&t.tile(n.ratio(e))},t.method=e=>{Je(Dse,e)?t.tile(Dse[e]):Se("Unrecognized Treemap layout method: "+e)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:e$});const OGe=Object.freeze(Object.defineProperty({__proto__:null,nest:QI,pack:WI,partition:YI,stratify:KI,tree:JI,treelinks:ZI,treemap:t$},Symbol.toStringTag,{value:"Module"})),n$=4278190080;function NGe(t,e){const n=t.bitmap();return(e||[]).forEach(r=>n.set(t(r.boundary[0]),t(r.boundary[3]))),[n,void 0]}function DGe(t,e,n,r,i){const s=t.width,o=t.height,u=r||i,a=Sc(s,o).getContext("2d"),l=Sc(s,o).getContext("2d"),c=u&&Sc(s,o).getContext("2d");n.forEach(b=>TT(a,b,!1)),TT(l,e,!1),u&&TT(c,e,!0);const f=r$(a,s,o),x=r$(l,s,o),h=u&&r$(c,s,o),p=t.bitmap(),m=u&&t.bitmap();let g,y,E,A,v,S,C,_;for(y=0;y<o;++y)for(g=0;g<s;++g)v=y*s+g,S=f[v]&n$,_=x[v]&n$,C=u&&h[v]&n$,(S||C||_)&&(E=t(g),A=t(y),!i&&(S||_)&&p.set(E,A),u&&(S||C)&&m.set(E,A));return[p,m]}function r$(t,e,n){return new Uint32Array(t.getImageData(0,0,e,n).data.buffer)}function TT(t,e,n){if(!e.length)return;const r=e[0].mark.marktype;r==="group"?e.forEach(i=>{i.items.forEach(s=>TT(t,s.items,n))}):So[r].draw(t,{items:n?e.map(FGe):e})}function FGe(t){const e=SC(t,{});return e.stroke&&e.strokeOpacity!==0||e.fill&&e.fillOpacity!==0?{...e,strokeOpacity:1,stroke:"#000",fillOpacity:0}:e}const t0=5,Ui=31,Yy=32,jc=new Uint32Array(Yy+1),fu=new Uint32Array(Yy+1);fu[0]=0,jc[0]=~fu[0];for(let t=1;t<=Yy;++t)fu[t]=fu[t-1]<<1|1,jc[t]=~fu[t];function wGe(t,e){const n=new Uint32Array(~~((t*e+Yy)/Yy));function r(s,o){n[s]|=o}function i(s,o){n[s]&=o}return{array:n,get:(s,o)=>{const u=o*t+s;return n[u>>>t0]&1<<(u&Ui)},set:(s,o)=>{const u=o*t+s;r(u>>>t0,1<<(u&Ui))},clear:(s,o)=>{const u=o*t+s;i(u>>>t0,~(1<<(u&Ui)))},getRange:(s,o,u,a)=>{let l=a,c,f,x,h;for(;l>=o;--l)if(c=l*t+s,f=l*t+u,x=c>>>t0,h=f>>>t0,x===h){if(n[x]&jc[c&Ui]&fu[(f&Ui)+1])return!0}else{if(n[x]&jc[c&Ui]||n[h]&fu[(f&Ui)+1])return!0;for(let p=x+1;p<h;++p)if(n[p])return!0}return!1},setRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>t0,x=c>>>t0,f===x)r(f,jc[l&Ui]&fu[(c&Ui)+1]);else for(r(f,jc[l&Ui]),r(x,fu[(c&Ui)+1]),h=f+1;h<x;++h)r(h,4294967295)},clearRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>t0,x=c>>>t0,f===x)i(f,fu[l&Ui]|jc[(c&Ui)+1]);else for(i(f,fu[l&Ui]),i(x,jc[(c&Ui)+1]),h=f+1;h<x;++h)i(h,0)},outOfBounds:(s,o,u,a)=>s<0||o<0||a>=e||u>=t}}function LGe(t,e,n){const r=Math.max(1,Math.sqrt(t*e/1e6)),i=~~((t+2*n+r)/r),s=~~((e+2*n+r)/r),o=u=>~~((u+n)/r);return o.invert=u=>u*r-n,o.bitmap=()=>wGe(i,s),o.ratio=r,o.padding=n,o.width=t,o.height=e,o}function IGe(t,e,n,r){const i=t.width,s=t.height;return function(o){const u=o.datum.datum.items[r].items,a=u.length,l=o.datum.fontSize,c=ba.width(o.datum,o.datum.text);let f=0,x,h,p,m,g,y,E;for(let A=0;A<a;++A)x=u[A].x,p=u[A].y,h=u[A].x2===void 0?x:u[A].x2,m=u[A].y2===void 0?p:u[A].y2,g=(x+h)/2,y=(p+m)/2,E=Math.abs(h-x+m-p),E>=f&&(f=E,o.x=g,o.y=y);return g=c/2,y=l/2,x=o.x-g,h=o.x+g,p=o.y-y,m=o.y+y,o.align="center",x<0&&h<=i?o.align="left":0<=x&&i<h&&(o.align="right"),o.baseline="middle",p<0&&m<=s?o.baseline="top":0<=p&&s<m&&(o.baseline="bottom"),!0}}function RT(t,e,n,r,i,s){let o=n/2;return t-o<0||t+o>i||e-(o=r/2)<0||e+o>s}function Uc(t,e,n,r,i,s,o,u){const a=i*s/(r*2),l=t(e-a),c=t(e+a),f=t(n-(s=s/2)),x=t(n+s);return o.outOfBounds(l,f,c,x)||o.getRange(l,f,c,x)||u&&u.getRange(l,f,c,x)}function $Ge(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1];function a(l,c,f,x,h){const p=t.invert(l),m=t.invert(c);let g=f,y=s,E;if(!RT(p,m,x,h,i,s)&&!Uc(t,p,m,h,x,g,o,u)&&!Uc(t,p,m,h,x,h,o,null)){for(;y-g>=1;)E=(g+y)/2,Uc(t,p,m,h,x,E,o,u)?y=E:g=E;if(g>f)return[p,m,g,!0]}}return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=ba.width(l.datum,l.datum.text);let p=n?x:0,m=!1,g=!1,y=0,E,A,v,S,C,_,b,R,O,L,M,q,W,B,G,te,X;for(let de=0;de<f;++de){for(E=c[de].x,v=c[de].y,A=c[de].x2===void 0?E:c[de].x2,S=c[de].y2===void 0?v:c[de].y2,E>A&&(X=E,E=A,A=X),v>S&&(X=v,v=S,S=X),O=t(E),M=t(A),L=~~((O+M)/2),q=t(v),B=t(S),W=~~((q+B)/2),b=L;b>=O;--b)for(R=W;R>=q;--R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);for(b=L;b<=M;++b)for(R=W;R<=B;++R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);!m&&!n&&(G=Math.abs(A-E+S-v),C=(E+A)/2,_=(v+S)/2,G>=y&&!RT(C,_,h,x,i,s)&&!Uc(t,C,_,x,h,x,o,null)&&(y=G,l.x=C,l.y=_,g=!0))}return m||g?(C=h/2,_=x/2,o.setRange(t(l.x-C),t(l.y-_),t(l.x+C),t(l.y+_)),l.align="center",l.baseline="middle",!0):!1}}const BGe=[-1,-1,1,1],kGe=[-1,1,-1,1];function PGe(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=t.bitmap();return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=ba.width(l.datum,l.datum.text),p=[];let m=n?x:0,g=!1,y=!1,E=0,A,v,S,C,_,b,R,O,L,M,q,W;for(let B=0;B<f;++B){for(A=c[B].x,S=c[B].y,v=c[B].x2===void 0?A:c[B].x2,C=c[B].y2===void 0?S:c[B].y2,p.push([t((A+v)/2),t((S+C)/2)]);p.length;)if([R,O]=p.pop(),!(o.get(R,O)||u.get(R,O)||a.get(R,O))){a.set(R,O);for(let G=0;G<4;++G)_=R+BGe[G],b=O+kGe[G],a.outOfBounds(_,b,_,b)||p.push([_,b]);if(_=t.invert(R),b=t.invert(O),L=m,M=s,!RT(_,b,h,x,i,s)&&!Uc(t,_,b,x,h,L,o,u)&&!Uc(t,_,b,x,h,x,o,null)){for(;M-L>=1;)q=(L+M)/2,Uc(t,_,b,x,h,q,o,u)?M=q:L=q;L>m&&(l.x=_,l.y=b,m=L,g=!0)}}!g&&!n&&(W=Math.abs(v-A+C-S),_=(A+v)/2,b=(S+C)/2,W>=E&&!RT(_,b,h,x,i,s)&&!Uc(t,_,b,x,h,x,o,null)&&(E=W,l.x=_,l.y=b,y=!0))}return g||y?(_=h/2,b=x/2,o.setRange(t(l.x-_),t(l.y-b),t(l.x+_),t(l.y+b)),l.align="center",l.baseline="middle",!0):!1}}const MGe=["right","center","left"],jGe=["bottom","middle","top"];function UGe(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=r.length;return function(l){const c=l.boundary,f=l.datum.fontSize;if(c[2]<0||c[5]<0||c[0]>i||c[3]>s)return!1;let x=l.textWidth??0,h,p,m,g,y,E,A,v,S,C,_,b,R,O,L;for(let M=0;M<a;++M){if(h=(n[M]&3)-1,p=(n[M]>>>2&3)-1,m=h===0&&p===0||r[M]<0,g=h&&p?Math.SQRT1_2:1,y=r[M]<0?-1:1,E=c[1+h]+r[M]*h*g,_=c[4+p]+y*f*p/2+r[M]*p*g,v=_-f/2,S=_+f/2,b=t(E),O=t(v),L=t(S),!x)if(Fse(b,b,O,L,o,u,E,E,v,S,c,m))x=ba.width(l.datum,l.datum.text);else continue;if(C=E+y*x*h/2,E=C-x/2,A=C+x/2,b=t(E),R=t(A),Fse(b,R,O,L,o,u,E,A,v,S,c,m))return l.x=h?h*y<0?A:E:C,l.y=p?p*y<0?S:v:_,l.align=MGe[h*y+1],l.baseline=jGe[p*y+1],o.setRange(b,O,R,L),!0}return!1}}function Fse(t,e,n,r,i,s,o,u,a,l,c,f){return!(i.outOfBounds(t,n,e,r)||(f&&s||i).getRange(t,n,e,r))}const i$=0,s$=4,o$=8,u$=0,a$=1,l$=2,qGe={"top-left":i$+u$,top:i$+a$,"top-right":i$+l$,left:s$+u$,middle:s$+a$,right:s$+l$,"bottom-left":o$+u$,bottom:o$+a$,"bottom-right":o$+l$},HGe={naive:IGe,"reduced-search":$Ge,floodfill:PGe};function zGe(t,e,n,r,i,s,o,u,a,l,c){if(!t.length)return t;const f=Math.max(r.length,i.length),x=QGe(r,f),h=GGe(i,f),p=WGe(t[0].datum),m=p==="group"&&t[0].datum.items[a].marktype,g=m==="area",y=VGe(p,m,u,a),E=l===null||l===1/0,A=g&&c==="naive";let v=-1,S=-1;const C=t.map(O=>{const L=E?ba.width(O,O.text):void 0;return v=Math.max(v,L),S=Math.max(S,O.fontSize),{datum:O,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(O),textWidth:L}});l=l===null||l===1/0?Math.max(v,S)+Math.max(...r):l;const _=LGe(e[0],e[1],l);let b;if(!A){n&&C.sort((M,q)=>n(M.datum,q.datum));let O=!1;for(let M=0;M<h.length&&!O;++M)O=h[M]===5||x[M]<0;const L=(p&&o||g)&&t.map(M=>M.datum);b=s.length||L?DGe(_,L||[],s,O,g):NGe(_,o&&C)}const R=g?HGe[c](_,b,o,a):UGe(_,b,h,x);return C.forEach(O=>O.opacity=+R(O)),C}function QGe(t,e){const n=new Float64Array(e),r=t.length;for(let i=0;i<r;++i)n[i]=t[i]||0;for(let i=r;i<e;++i)n[i]=n[r-1];return n}function GGe(t,e){const n=new Int8Array(e),r=t.length;for(let i=0;i<r;++i)n[i]|=qGe[t[i]];for(let i=r;i<e;++i)n[i]=n[r-1];return n}function WGe(t){return t&&t.mark&&t.mark.marktype}function VGe(t,e,n,r){const i=s=>[s.x,s.x,s.x,s.y,s.y,s.y];return t?t==="line"||t==="area"?s=>i(s.datum):e==="line"?s=>{const o=s.datum.items[r].items;return i(o.length?o[n==="start"?0:o.length-1]:{x:NaN,y:NaN})}:s=>{const o=s.datum.bounds;return[o.x1,(o.x1+o.x2)/2,o.x2,o.y1,(o.y1+o.y2)/2,o.y2]}:i}const c$=["x","y","opacity","align","baseline"],wse=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function f$(t){pe.call(this,null,t)}f$.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:wse},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:c$.length,default:c$}]},Fe(f$,pe,{transform(t,e){function n(s){const o=t[s];return ct(o)&&e.modified(o.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||n("sort")))return;(!t.size||t.size.length!==2)&&Se("Size parameter should be specified as a [width, height] array.");const i=t.as||c$;return zGe(e.materialize(e.SOURCE).source||[],t.size,t.sort,Pe(t.offset==null?1:t.offset),Pe(t.anchor||wse),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(s=>{const o=s.datum;o[i[0]]=s.x,o[i[1]]=s.y,o[i[2]]=s.opacity,o[i[3]]=s.align,o[i[4]]=s.baseline}),e.reflow(r).modifies(i)}});const YGe=Object.freeze(Object.defineProperty({__proto__:null,label:f$},Symbol.toStringTag,{value:"Module"}));function Lse(t,e){var n=[],r=function(c){return c(u)},i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function x$(t){pe.call(this,null,t)}x$.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},Fe(x$,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Lse(r,t.groupby),s=(t.groupby||[]).map(Pn),o=s.length,u=t.as||[Pn(t.x),Pn(t.y)],a=[];i.forEach(l=>{Y$e(l,t.x,t.y,t.bandwidth||.3).forEach(c=>{const f={};for(let x=0;x<o;++x)f[s[x]]=l.dims[x];f[u[0]]=c[0],f[u[1]]=c[1],a.push($t(f))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=a}return n}});const d$={linear:MJ,log:H$e,exp:z$e,pow:Q$e,quad:jJ,poly:G$e},KGe=(t,e)=>t==="poly"?e:t==="quad"?2:1;function h$(t){pe.call(this,null,t)}h$.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(d$)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},Fe(h$,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Lse(r,t.groupby),s=(t.groupby||[]).map(Pn),o=t.method||"linear",u=t.order||3,a=KGe(o,u),l=t.as||[Pn(t.x),Pn(t.y)],c=d$[o],f=[];let x=t.extent;Je(d$,o)||Se("Invalid regression method: "+o),x!=null&&o==="log"&&x[0]<=0&&(e.dataflow.warn("Ignoring extent with values <= 0 for log regression."),x=null),i.forEach(h=>{if(h.length<=a){e.dataflow.warn("Skipping regression with more parameters than data points.");return}const m=c(h,t.x,t.y,u);if(t.params){f.push($t({keys:h.dims,coef:m.coef,rSquared:m.rSquared}));return}const g=x||vl(h,t.x),y=E=>{const A={};for(let v=0;v<s.length;++v)A[s[v]]=h.dims[v];A[l[0]]=E[0],A[l[1]]=E[1],f.push($t(A))};o==="linear"?g.forEach(E=>y([E,m.predict(E)])):xw(m.predict,g,25,200).forEach(y)}),this.value&&(n.rem=this.value),this.value=n.add=n.source=f}return n}});const XGe=Object.freeze(Object.defineProperty({__proto__:null,loess:x$,regression:h$},Symbol.toStringTag,{value:"Module"})),n0=11102230246251565e-32,ii=134217729,JGe=(3+8*n0)*n0;function p$(t,e,n,r,i){let s,o,u,a,l=e[0],c=r[0],f=0,x=0;c>l==c>-l?(s=l,l=e[++f]):(s=c,c=r[++x]);let h=0;if(f<t&&x<n)for(c>l==c>-l?(o=l+s,u=s-(o-l),l=e[++f]):(o=c+s,u=s-(o-c),c=r[++x]),s=o,u!==0&&(i[h++]=u);f<t&&x<n;)c>l==c>-l?(o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f]):(o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x]),s=o,u!==0&&(i[h++]=u);for(;f<t;)o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f],s=o,u!==0&&(i[h++]=u);for(;x<n;)o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x],s=o,u!==0&&(i[h++]=u);return(s!==0||h===0)&&(i[h++]=s),h}function ZGe(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function Ky(t){return new Float64Array(t)}const eWe=(3+16*n0)*n0,tWe=(2+12*n0)*n0,nWe=(9+64*n0)*n0*n0,S1=Ky(4),Ise=Ky(8),$se=Ky(12),Bse=Ky(16),qi=Ky(4);function rWe(t,e,n,r,i,s,o){let u,a,l,c,f,x,h,p,m,g,y,E,A,v,S,C,_,b;const R=t-i,O=n-i,L=e-s,M=r-s;v=R*M,x=ii*R,h=x-(x-R),p=R-h,x=ii*M,m=x-(x-M),g=M-m,S=p*g-(v-h*m-p*m-h*g),C=L*O,x=ii*L,h=x-(x-L),p=L-h,x=ii*O,m=x-(x-O),g=O-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,S1[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,S1[1]=A-(y+f)+(f-C),b=E+y,f=b-E,S1[2]=E-(b-f)+(y-f),S1[3]=b;let q=ZGe(4,S1),W=tWe*o;if(q>=W||-q>=W||(f=t-R,u=t-(R+f)+(f-i),f=n-O,l=n-(O+f)+(f-i),f=e-L,a=e-(L+f)+(f-s),f=r-M,c=r-(M+f)+(f-s),u===0&&a===0&&l===0&&c===0)||(W=nWe*o+JGe*Math.abs(q),q+=R*c+M*u-(L*l+O*a),q>=W||-q>=W))return q;v=u*M,x=ii*u,h=x-(x-u),p=u-h,x=ii*M,m=x-(x-M),g=M-m,S=p*g-(v-h*m-p*m-h*g),C=a*O,x=ii*a,h=x-(x-a),p=a-h,x=ii*O,m=x-(x-O),g=O-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,qi[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,qi[1]=A-(y+f)+(f-C),b=E+y,f=b-E,qi[2]=E-(b-f)+(y-f),qi[3]=b;const B=p$(4,S1,4,qi,Ise);v=R*c,x=ii*R,h=x-(x-R),p=R-h,x=ii*c,m=x-(x-c),g=c-m,S=p*g-(v-h*m-p*m-h*g),C=L*l,x=ii*L,h=x-(x-L),p=L-h,x=ii*l,m=x-(x-l),g=l-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,qi[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,qi[1]=A-(y+f)+(f-C),b=E+y,f=b-E,qi[2]=E-(b-f)+(y-f),qi[3]=b;const G=p$(B,Ise,4,qi,$se);v=u*c,x=ii*u,h=x-(x-u),p=u-h,x=ii*c,m=x-(x-c),g=c-m,S=p*g-(v-h*m-p*m-h*g),C=a*l,x=ii*a,h=x-(x-a),p=a-h,x=ii*l,m=x-(x-l),g=l-m,_=p*g-(C-h*m-p*m-h*g),y=S-_,f=S-y,qi[0]=S-(y+f)+(f-_),E=v+y,f=E-v,A=v-(E-f)+(y-f),y=A-C,f=A-y,qi[1]=A-(y+f)+(f-C),b=E+y,f=b-E,qi[2]=E-(b-f)+(y-f),qi[3]=b;const te=p$(G,$se,4,qi,Bse);return Bse[te-1]}function OT(t,e,n,r,i,s){const o=(e-s)*(n-i),u=(t-i)*(r-s),a=o-u;if(o===0||u===0||o>0!=u>0)return a;const l=Math.abs(o+u);return Math.abs(a)>=eWe*l?a:-rWe(t,e,n,r,i,s,l)}const kse=Math.pow(2,-52),NT=new Uint32Array(512);class DT{static from(e,n=aWe,r=lWe){const i=e.length,s=new Float64Array(i*2);for(let o=0;o<i;o++){const u=e[o];s[2*o]=n(u),s[2*o+1]=r(u)}return new DT(s)}constructor(e){const n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;const r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:s}=this,o=e.length>>1;let u=1/0,a=1/0,l=-1/0,c=-1/0;for(let O=0;O<o;O++){const L=e[2*O],M=e[2*O+1];L<u&&(u=L),M<a&&(a=M),L>l&&(l=L),M>c&&(c=M),this._ids[O]=O}const f=(u+l)/2,x=(a+c)/2;let h=1/0,p,m,g;for(let O=0;O<o;O++){const L=g$(f,x,e[2*O],e[2*O+1]);L<h&&(p=O,h=L)}const y=e[2*p],E=e[2*p+1];h=1/0;for(let O=0;O<o;O++){if(O===p)continue;const L=g$(y,E,e[2*O],e[2*O+1]);L<h&&L>0&&(m=O,h=L)}let A=e[2*m],v=e[2*m+1],S=1/0;for(let O=0;O<o;O++){if(O===p||O===m)continue;const L=oWe(y,E,A,v,e[2*O],e[2*O+1]);L<S&&(g=O,S=L)}let C=e[2*g],_=e[2*g+1];if(S===1/0){for(let M=0;M<o;M++)this._dists[M]=e[2*M]-e[0]||e[2*M+1]-e[1];_1(this._ids,this._dists,0,o-1);const O=new Uint32Array(o);let L=0;for(let M=0,q=-1/0;M<o;M++){const W=this._ids[M];this._dists[W]>q&&(O[L++]=W,q=this._dists[W])}this.hull=O.subarray(0,L),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(OT(y,E,A,v,C,_)<0){const O=m,L=A,M=v;m=g,A=C,v=_,g=O,C=L,_=M}const b=uWe(y,E,A,v,C,_);this._cx=b.x,this._cy=b.y;for(let O=0;O<o;O++)this._dists[O]=g$(e[2*O],e[2*O+1],b.x,b.y);_1(this._ids,this._dists,0,o-1),this._hullStart=p;let R=3;r[p]=n[g]=m,r[m]=n[p]=g,r[g]=n[m]=p,i[p]=0,i[m]=1,i[g]=2,s.fill(-1),s[this._hashKey(y,E)]=p,s[this._hashKey(A,v)]=m,s[this._hashKey(C,_)]=g,this.trianglesLen=0,this._addTriangle(p,m,g,-1,-1,-1);for(let O=0,L,M;O<this._ids.length;O++){const q=this._ids[O],W=e[2*q],B=e[2*q+1];if(O>0&&Math.abs(W-L)<=kse&&Math.abs(B-M)<=kse||(L=W,M=B,q===p||q===m||q===g))continue;let G=0;for(let ee=0,U=this._hashKey(W,B);ee<this._hashSize&&(G=s[(U+ee)%this._hashSize],!(G!==-1&&G!==r[G]));ee++);G=n[G];let te=G,X;for(;X=r[te],OT(W,B,e[2*te],e[2*te+1],e[2*X],e[2*X+1])>=0;)if(te=X,te===G){te=-1;break}if(te===-1)continue;let de=this._addTriangle(te,q,r[te],-1,-1,i[te]);i[q]=this._legalize(de+2),i[te]=de,R++;let be=r[te];for(;X=r[be],OT(W,B,e[2*be],e[2*be+1],e[2*X],e[2*X+1])<0;)de=this._addTriangle(be,q,X,i[q],-1,i[be]),i[q]=this._legalize(de+2),r[be]=be,R--,be=X;if(te===G)for(;X=n[te],OT(W,B,e[2*X],e[2*X+1],e[2*te],e[2*te+1])<0;)de=this._addTriangle(X,q,te,-1,i[te],i[X]),this._legalize(de+2),i[X]=de,r[te]=te,R--,te=X;this._hullStart=n[q]=te,r[te]=n[be]=q,r[q]=be,s[this._hashKey(W,B)]=q,s[this._hashKey(e[2*te],e[2*te+1])]=te}this.hull=new Uint32Array(R);for(let O=0,L=this._hullStart;O<R;O++)this.hull[O]=L,L=r[L];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(iWe(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:n,_halfedges:r,coords:i}=this;let s=0,o=0;for(;;){const u=r[e],a=e-e%3;if(o=a+(e+2)%3,u===-1){if(s===0)break;e=NT[--s];continue}const l=u-u%3,c=a+(e+1)%3,f=l+(u+2)%3,x=n[o],h=n[e],p=n[c],m=n[f];if(sWe(i[2*x],i[2*x+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1],i[2*m],i[2*m+1])){n[e]=m,n[u]=x;const y=r[f];if(y===-1){let A=this._hullStart;do{if(this._hullTri[A]===f){this._hullTri[A]=e;break}A=this._hullPrev[A]}while(A!==this._hullStart)}this._link(e,y),this._link(u,r[o]),this._link(o,f);const E=l+(u+1)%3;s<NT.length&&(NT[s++]=E)}else{if(s===0)break;e=NT[--s]}}return o}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,s,o){const u=this.trianglesLen;return this._triangles[u]=e,this._triangles[u+1]=n,this._triangles[u+2]=r,this._link(u,i),this._link(u+1,s),this._link(u+2,o),this.trianglesLen+=3,u}}function iWe(t,e){const n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function g$(t,e,n,r){const i=t-n,s=e-r;return i*i+s*s}function sWe(t,e,n,r,i,s,o,u){const a=t-o,l=e-u,c=n-o,f=r-u,x=i-o,h=s-u,p=a*a+l*l,m=c*c+f*f,g=x*x+h*h;return a*(f*g-m*h)-l*(c*g-m*x)+p*(c*h-f*x)<0}function oWe(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=(l*c-u*f)*x,p=(o*f-a*c)*x;return h*h+p*p}function uWe(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=t+(l*c-u*f)*x,p=e+(o*f-a*c)*x;return{x:h,y:p}}function _1(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){const s=t[i],o=e[s];let u=i-1;for(;u>=n&&e[t[u]]>o;)t[u+1]=t[u--];t[u+1]=s}else{const i=n+r>>1;let s=n+1,o=r;Xy(t,i,s),e[t[n]]>e[t[r]]&&Xy(t,n,r),e[t[s]]>e[t[r]]&&Xy(t,s,r),e[t[n]]>e[t[s]]&&Xy(t,n,s);const u=t[s],a=e[u];for(;;){do s++;while(e[t[s]]<a);do o--;while(e[t[o]]>a);if(o<s)break;Xy(t,s,o)}t[n+1]=t[o],t[o]=u,r-s+1>=o-n?(_1(t,e,s,r),_1(t,e,n,o-1)):(_1(t,e,n,o-1),_1(t,e,s,r))}}function Xy(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function aWe(t){return t[0]}function lWe(t){return t[1]}const Pse=1e-6;class Ed{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;const i=e+r,s=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${s}`:(Math.abs(this._x1-i)>Pse||Math.abs(this._y1-s)>Pse)&&(this._+="L"+i+","+s),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=s}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}}class m${constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}}let cWe=class{constructor(e,[n,r,i,s]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((s=+s)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=s,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this;let s,o;const u=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let m=0,g=0,y=r.length,E,A;m<y;m+=3,g+=2){const v=r[m]*2,S=r[m+1]*2,C=r[m+2]*2,_=e[v],b=e[v+1],R=e[S],O=e[S+1],L=e[C],M=e[C+1],q=R-_,W=O-b,B=L-_,G=M-b,te=(q*G-W*B)*2;if(Math.abs(te)<1e-9){if(s===void 0){s=o=0;for(const de of n)s+=e[de*2],o+=e[de*2+1];s/=n.length,o/=n.length}const X=1e9*Math.sign((s-_)*G-(o-b)*B);E=(_+L)/2-X*G,A=(b+M)/2+X*B}else{const X=1/te,de=q*q+W*W,be=B*B+G*G;E=_+(G*de-W*be)*X,A=b+(q*be-B*de)*X}u[g]=E,u[g+1]=A}let a=n[n.length-1],l,c=a*4,f,x=e[2*a],h,p=e[2*a+1];i.fill(0);for(let m=0;m<n.length;++m)a=n[m],l=c,f=x,h=p,c=a*4,x=e[2*a],p=e[2*a+1],i[l+2]=i[c]=h-p,i[l+3]=i[c+1]=x-f}render(e){const n=e==null?e=new Ed:void 0,{delaunay:{halfedges:r,inedges:i,hull:s},circumcenters:o,vectors:u}=this;if(s.length<=1)return null;for(let c=0,f=r.length;c<f;++c){const x=r[c];if(x<c)continue;const h=Math.floor(c/3)*2,p=Math.floor(x/3)*2,m=o[h],g=o[h+1],y=o[p],E=o[p+1];this._renderSegment(m,g,y,E,e)}let a,l=s[s.length-1];for(let c=0;c<s.length;++c){a=l,l=s[c];const f=Math.floor(i[l]/3)*2,x=o[f],h=o[f+1],p=a*4,m=this._project(x,h,u[p+2],u[p+3]);m&&this._renderSegment(x,h,m[0],m[1],e)}return n&&n.value()}renderBounds(e){const n=e==null?e=new Ed:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){const r=n==null?n=new Ed:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let s=i.length;for(;i[0]===i[s-2]&&i[1]===i[s-1]&&s>1;)s-=2;for(let o=2;o<s;o+=2)(i[o]!==i[o-2]||i[o+1]!==i[o-1])&&n.lineTo(i[o],i[o+1]);return n.closePath(),r&&r.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){const i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){const n=new m$;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,s){let o;const u=this._regioncode(e,n),a=this._regioncode(r,i);u===0&&a===0?(s.moveTo(e,n),s.lineTo(r,i)):(o=this._clipSegment(e,n,r,i,u,a))&&(s.moveTo(o[0],o[1]),s.lineTo(o[2],o[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){const n=this._clip(e);if(n)for(const r of this.delaunay.neighbors(e)){const i=this._clip(r);if(i){e:for(let s=0,o=n.length;s<o;s+=2)for(let u=0,a=i.length;u<a;u+=2)if(n[s]===i[u]&&n[s+1]===i[u+1]&&n[(s+2)%o]===i[(u+a-2)%a]&&n[(s+3)%o]===i[(u+a-1)%a]){yield r;break e}}}}_cell(e){const{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:s}}=this,o=r[e];if(o===-1)return null;const u=[];let a=o;do{const l=Math.floor(a/3);if(u.push(n[l*2],n[l*2+1]),a=a%3===2?a-2:a+1,s[a]!==e)break;a=i[a]}while(a!==o&&a!==-1);return u}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(e);if(n===null)return null;const{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){const r=n.length;let i=null,s,o,u=n[r-2],a=n[r-1],l,c=this._regioncode(u,a),f,x=0;for(let h=0;h<r;h+=2)if(s=u,o=a,u=n[h],a=n[h+1],l=c,c=this._regioncode(u,a),l===0&&c===0)f=x,x=0,i?i.push(u,a):i=[u,a];else{let p,m,g,y,E;if(l===0){if((p=this._clipSegment(s,o,u,a,l,c))===null)continue;[m,g,y,E]=p}else{if((p=this._clipSegment(u,a,s,o,c,l))===null)continue;[y,E,m,g]=p,f=x,x=this._edgecode(m,g),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(m,g):i=[m,g]}f=x,x=this._edgecode(y,E),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(y,E):i=[y,E]}if(i)f=x,x=this._edgecode(i[0],i[1]),f&&x&&this._edge(e,f,x,i,i.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return i}_clipSegment(e,n,r,i,s,o){const u=s<o;for(u&&([e,n,r,i,s,o]=[r,i,e,n,o,s]);;){if(s===0&&o===0)return u?[r,i,e,n]:[e,n,r,i];if(s&o)return null;let a,l,c=s||o;c&8?(a=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):c&4?(a=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):c&2?(l=n+(i-n)*(this.xmax-e)/(r-e),a=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),a=this.xmin),s?(e=a,n=l,s=this._regioncode(e,n)):(r=a,i=l,o=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,s,o){let u=Array.from(n),a;if((a=this._project(u[0],u[1],r,i))&&u.unshift(a[0],a[1]),(a=this._project(u[u.length-2],u[u.length-1],s,o))&&u.push(a[0],a[1]),u=this._clipFinite(e,u))for(let l=0,c=u.length,f,x=this._edgecode(u[c-2],u[c-1]);l<c;l+=2)f=x,x=this._edgecode(u[l],u[l+1]),f&&x&&(l=this._edge(e,f,x,u,l),c=u.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(u=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return u}_edge(e,n,r,i,s){for(;n!==r;){let o,u;switch(n){case 5:n=4;continue;case 4:n=6,o=this.xmax,u=this.ymin;break;case 6:n=2;continue;case 2:n=10,o=this.xmax,u=this.ymax;break;case 10:n=8;continue;case 8:n=9,o=this.xmin,u=this.ymax;break;case 9:n=1;continue;case 1:n=5,o=this.xmin,u=this.ymin;break}(i[s]!==o||i[s+1]!==u)&&this.contains(e,o,u)&&(i.splice(s,0,o,u),s+=2)}return s}_project(e,n,r,i){let s=1/0,o,u,a;if(i<0){if(n<=this.ymin)return null;(o=(this.ymin-n)/i)<s&&(a=this.ymin,u=e+(s=o)*r)}else if(i>0){if(n>=this.ymax)return null;(o=(this.ymax-n)/i)<s&&(a=this.ymax,u=e+(s=o)*r)}if(r>0){if(e>=this.xmax)return null;(o=(this.xmax-e)/r)<s&&(u=this.xmax,a=n+(s=o)*i)}else if(r<0){if(e<=this.xmin)return null;(o=(this.xmin-e)/r)<s&&(u=this.xmin,a=n+(s=o)*i)}return[u,a]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){const r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}};const fWe=2*Math.PI,C1=Math.pow;function xWe(t){return t[0]}function dWe(t){return t[1]}function hWe(t){const{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){const i=2*e[r],s=2*e[r+1],o=2*e[r+2];if((n[o]-n[i])*(n[s+1]-n[i+1])-(n[s]-n[i])*(n[o+1]-n[i+1])>1e-10)return!1}return!0}function pWe(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}class y${static from(e,n=xWe,r=dWe,i){return new y$("length"in e?gWe(e,n,r,i):Float64Array.from(mWe(e,n,r,i)))}constructor(e){this._delaunator=new DT(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&hWe(e)){this.collinear=Int32Array.from({length:n.length/2},(x,h)=>h).sort((x,h)=>n[2*x]-n[2*h]||n[2*x+1]-n[2*h+1]);const a=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[n[2*a],n[2*a+1],n[2*l],n[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let x=0,h=n.length/2;x<h;++x){const p=pWe(n[2*x],n[2*x+1],f);n[2*x]=p[0],n[2*x+1]=p[1]}this._delaunator=new DT(n)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,s=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),u=this._hullIndex.fill(-1);for(let a=0,l=r.length;a<l;++a){const c=s[a%3===2?a-2:a+1];(r[a]===-1||o[c]===-1)&&(o[c]=a)}for(let a=0,l=i.length;a<l;++a)u[i[a]]=a;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,i.length===2&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new cWe(this,e)}*neighbors(e){const{inedges:n,hull:r,_hullIndex:i,halfedges:s,triangles:o,collinear:u}=this;if(u){const f=u.indexOf(e);f>0&&(yield u[f-1]),f<u.length-1&&(yield u[f+1]);return}const a=n[e];if(a===-1)return;let l=a,c=-1;do{if(yield c=o[l],l=l%3===2?l-2:l+1,o[l]!==e)return;if(l=s[l],l===-1){const f=r[(i[e]+1)%r.length];f!==c&&(yield f);return}}while(l!==a)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;const i=r;let s;for(;(s=this._step(r,e,n))>=0&&s!==r&&s!==i;)r=s;return s}_step(e,n,r){const{inedges:i,hull:s,_hullIndex:o,halfedges:u,triangles:a,points:l}=this;if(i[e]===-1||!l.length)return(e+1)%(l.length>>1);let c=e,f=C1(n-l[e*2],2)+C1(r-l[e*2+1],2);const x=i[e];let h=x;do{let p=a[h];const m=C1(n-l[p*2],2)+C1(r-l[p*2+1],2);if(m<f&&(f=m,c=p),h=h%3===2?h-2:h+1,a[h]!==e)break;if(h=u[h],h===-1){if(h=s[(o[e]+1)%s.length],h!==p&&C1(n-l[h*2],2)+C1(r-l[h*2+1],2)<f)return h;break}}while(h!==x);return c}render(e){const n=e==null?e=new Ed:void 0,{points:r,halfedges:i,triangles:s}=this;for(let o=0,u=i.length;o<u;++o){const a=i[o];if(a<o)continue;const l=s[o]*2,c=s[a]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[c],r[c+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;const r=e==null?e=new Ed:void 0,{points:i}=this;for(let s=0,o=i.length;s<o;s+=2){const u=i[s],a=i[s+1];e.moveTo(u+n,a),e.arc(u,a,n,0,fWe)}return r&&r.value()}renderHull(e){const n=e==null?e=new Ed:void 0,{hull:r,points:i}=this,s=r[0]*2,o=r.length;e.moveTo(i[s],i[s+1]);for(let u=1;u<o;++u){const a=2*r[u];e.lineTo(i[a],i[a+1])}return e.closePath(),n&&n.value()}hullPolygon(){const e=new m$;return this.renderHull(e),e.value()}renderTriangle(e,n){const r=n==null?n=new Ed:void 0,{points:i,triangles:s}=this,o=s[e*=3]*2,u=s[e+1]*2,a=s[e+2]*2;return n.moveTo(i[o],i[o+1]),n.lineTo(i[u],i[u+1]),n.lineTo(i[a],i[a+1]),n.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){const n=new m$;return this.renderTriangle(e,n),n.value()}}function gWe(t,e,n,r){const i=t.length,s=new Float64Array(i*2);for(let o=0;o<i;++o){const u=t[o];s[o*2]=e.call(r,u,o,t),s[o*2+1]=n.call(r,u,o,t)}return s}function*mWe(t,e,n,r){let i=0;for(const s of t)yield e.call(r,s,i,t),yield n.call(r,s,i,t),++i}function E$(t){pe.call(this,null,t)}E$.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const yWe=[-1e5,-1e5,1e5,1e5];Fe(E$,pe,{transform(t,e){const n=t.as||"path",r=e.source;if(!r||!r.length)return e;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:yWe;const s=this.value=y$.from(r,t.x,t.y).voronoi(i);for(let o=0,u=r.length;o<u;++o){const a=s.cellPolygon(o);r[o][n]=a?EWe(a):null}return e.reflow(t.modified()).modifies(n)}});function EWe(t){const e=t[0][0],n=t[0][1];let r=t.length-1;for(;t[r][0]===e&&t[r][1]===n;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}const AWe=Object.freeze(Object.defineProperty({__proto__:null,voronoi:E$},Symbol.toStringTag,{value:"Module"}));var A$=Math.PI/180,Jy=64,FT=2048;function vWe(){var t=[256,256],e,n,r,i,s,o,u,a=Mse,l=[],c=Math.random,f={};f.layout=function(){for(var p=x(Sc()),m=RWe((t[0]>>5)*t[1]),g=null,y=l.length,E=-1,A=[],v=l.map(C=>({text:e(C),font:n(C),style:i(C),weight:s(C),rotate:o(C),size:~~(r(C)+1e-14),padding:u(C),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:C})).sort((C,_)=>_.size-C.size);++E<y;){var S=v[E];S.x=t[0]*(c()+.5)>>1,S.y=t[1]*(c()+.5)>>1,SWe(p,S,v,E),S.hasText&&h(m,S,g)&&(A.push(S),g?CWe(g,S):g=[{x:S.x+S.x0,y:S.y+S.y0},{x:S.x+S.x1,y:S.y+S.y1}],S.x-=t[0]>>1,S.y-=t[1]>>1)}return A};function x(p){p.width=p.height=1;var m=Math.sqrt(p.getContext("2d").getImageData(0,0,1,1).data.length>>2);p.width=(Jy<<5)/m,p.height=FT/m;var g=p.getContext("2d");return g.fillStyle=g.strokeStyle="red",g.textAlign="center",{context:g,ratio:m}}function h(p,m,g){for(var y=m.x,E=m.y,A=Math.sqrt(t[0]*t[0]+t[1]*t[1]),v=a(t),S=c()<.5?1:-1,C=-S,_,b,R;(_=v(C+=S))&&(b=~~_[0],R=~~_[1],!(Math.min(Math.abs(b),Math.abs(R))>=A));)if(m.x=y+b,m.y=E+R,!(m.x+m.x0<0||m.y+m.y0<0||m.x+m.x1>t[0]||m.y+m.y1>t[1])&&(!g||!_We(m,p,t[0]))&&(!g||bWe(m,g))){for(var O=m.sprite,L=m.width>>5,M=t[0]>>5,q=m.x-(L<<4),W=q&127,B=32-W,G=m.y1-m.y0,te=(m.y+m.y0)*M+(q>>5),X,de=0;de<G;de++){X=0;for(var be=0;be<=L;be++)p[te+be]|=X<<B|(be<L?(X=O[de*L+be])>>>W:0);te+=M}return m.sprite=null,!0}return!1}return f.words=function(p){return arguments.length?(l=p,f):l},f.size=function(p){return arguments.length?(t=[+p[0],+p[1]],f):t},f.font=function(p){return arguments.length?(n=Ad(p),f):n},f.fontStyle=function(p){return arguments.length?(i=Ad(p),f):i},f.fontWeight=function(p){return arguments.length?(s=Ad(p),f):s},f.rotate=function(p){return arguments.length?(o=Ad(p),f):o},f.text=function(p){return arguments.length?(e=Ad(p),f):e},f.spiral=function(p){return arguments.length?(a=OWe[p]||p,f):a},f.fontSize=function(p){return arguments.length?(r=Ad(p),f):r},f.padding=function(p){return arguments.length?(u=Ad(p),f):u},f.random=function(p){return arguments.length?(c=p,f):c},f}function SWe(t,e,n,r){if(!e.sprite){var i=t.context,s=t.ratio;i.clearRect(0,0,(Jy<<5)/s,FT/s);var o=0,u=0,a=0,l=n.length,c,f,x,h,p;for(--r;++r<l;){if(e=n[r],i.save(),i.font=e.style+" "+e.weight+" "+~~((e.size+1)/s)+"px "+e.font,c=i.measureText(e.text+"m").width*s,x=e.size<<1,e.rotate){var m=Math.sin(e.rotate*A$),g=Math.cos(e.rotate*A$),y=c*g,E=c*m,A=x*g,v=x*m;c=Math.max(Math.abs(y+v),Math.abs(y-v))+31>>5<<5,x=~~Math.max(Math.abs(E+A),Math.abs(E-A))}else c=c+31>>5<<5;if(x>a&&(a=x),o+c>=Jy<<5&&(o=0,u+=a,a=0),u+x>=FT)break;i.translate((o+(c>>1))/s,(u+(x>>1))/s),e.rotate&&i.rotate(e.rotate*A$),i.fillText(e.text,0,0),e.padding&&(i.lineWidth=2*e.padding,i.strokeText(e.text,0,0)),i.restore(),e.width=c,e.height=x,e.xoff=o,e.yoff=u,e.x1=c>>1,e.y1=x>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,o+=c}for(var S=i.getImageData(0,0,(Jy<<5)/s,FT/s).data,C=[];--r>=0;)if(e=n[r],!!e.hasText){for(c=e.width,f=c>>5,x=e.y1-e.y0,h=0;h<x*f;h++)C[h]=0;if(o=e.xoff,o==null)return;u=e.yoff;var _=0,b=-1;for(p=0;p<x;p++){for(h=0;h<c;h++){var R=f*p+(h>>5),O=S[(u+p)*(Jy<<5)+(o+h)<<2]?1<<31-h%32:0;C[R]|=O,_|=O}_?b=p:(e.y0++,x--,p--,u++)}e.y1=e.y0+b,e.sprite=C.slice(0,(e.y1-e.y0)*f)}}}function _We(t,e,n){n>>=5;for(var r=t.sprite,i=t.width>>5,s=t.x-(i<<4),o=s&127,u=32-o,a=t.y1-t.y0,l=(t.y+t.y0)*n+(s>>5),c,f=0;f<a;f++){c=0;for(var x=0;x<=i;x++)if((c<<u|(x<i?(c=r[f*i+x])>>>o:0))&e[l+x])return!0;l+=n}return!1}function CWe(t,e){var n=t[0],r=t[1];e.x+e.x0<n.x&&(n.x=e.x+e.x0),e.y+e.y0<n.y&&(n.y=e.y+e.y0),e.x+e.x1>r.x&&(r.x=e.x+e.x1),e.y+e.y1>r.y&&(r.y=e.y+e.y1)}function bWe(t,e){return t.x+t.x1>e[0].x&&t.x+t.x0<e[1].x&&t.y+t.y1>e[0].y&&t.y+t.y0<e[1].y}function Mse(t){var e=t[0]/t[1];return function(n){return[e*(n*=.1)*Math.cos(n),n*Math.sin(n)]}}function TWe(t){var e=4,n=e*t[0]/t[1],r=0,i=0;return function(s){var o=s<0?-1:1;switch(Math.sqrt(1+4*o*s)-o&3){case 0:r+=n;break;case 1:i+=e;break;case 2:r-=n;break;default:i-=e;break}return[r,i]}}function RWe(t){for(var e=[],n=-1;++n<t;)e[n]=0;return e}function Ad(t){return typeof t=="function"?t:function(){return t}}var OWe={archimedean:Mse,rectangular:TWe};const jse=["x","y","font","fontSize","fontStyle","fontWeight","angle"],NWe=["text","font","rotate","fontSize","fontStyle","fontWeight"];function v$(t){pe.call(this,vWe(),t)}v$.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:jse}]},Fe(v$,pe,{transform(t,e){t.size&&!(t.size[0]&&t.size[1])&&Se("Wordcloud size dimensions must be non-zero.");function n(p){const m=t[p];return ct(m)&&e.modified(m.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||NWe.some(n)))return;const i=e.materialize(e.SOURCE).source,s=this.value,o=t.as||jse;let u=t.fontSize||14,a;if(ct(u)?a=t.fontSizeRange:u=Ci(u),a){const p=u,m=Ot("sqrt")().domain(vl(i,p)).range(a);u=g=>m(p(g))}i.forEach(p=>{p[o[0]]=NaN,p[o[1]]=NaN,p[o[3]]=0});const l=s.words(i).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(u).random(ql).layout(),c=s.size(),f=c[0]>>1,x=c[1]>>1,h=l.length;for(let p=0,m,g;p<h;++p)m=l[p],g=m.datum,g[o[0]]=m.x+f,g[o[1]]=m.y+x,g[o[2]]=m.font,g[o[3]]=m.size,g[o[4]]=m.style,g[o[5]]=m.weight,g[o[6]]=m.rotate;return e.reflow(r).modifies(o)}});const DWe=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:v$},Symbol.toStringTag,{value:"Module"})),FWe=t=>new Uint8Array(t),wWe=t=>new Uint16Array(t),Zy=t=>new Uint32Array(t);function LWe(){let t=8,e=[],n=Zy(0),r=wT(0,t),i=wT(0,t);return{data:()=>e,seen:()=>n=IWe(n,e.length),add(s){for(let o=0,u=e.length,a=s.length,l;o<a;++o)l=s[o],l._index=u++,e.push(l)},remove(s,o){const u=e.length,a=Array(u-s),l=e;let c,f,x;for(f=0;!o[f]&&f<u;++f)a[f]=e[f],l[f]=f;for(x=f;f<u;++f)c=e[f],o[f]?l[f]=-1:(l[f]=x,r[x]=r[f],i[x]=i[f],a[x]=c,c._index=x++),r[f]=0;return e=a,l},size:()=>e.length,curr:()=>r,prev:()=>i,reset:s=>i[s]=r[s],all:()=>t<257?255:t<65537?65535:4294967295,set(s,o){r[s]|=o},clear(s,o){r[s]&=~o},resize(s,o){const u=r.length;(s>u||o>t)&&(t=Math.max(o,t),r=wT(s,t,r),i=wT(s,t))}}}function IWe(t,e,n){return t.length>=e?t:(n=n||new t.constructor(e),n.set(t),n)}function wT(t,e,n){const r=(e<257?FWe:e<65537?wWe:Zy)(t);return n&&r.set(n),r}function Use(t,e,n){const r=1<<e;return{one:r,zero:~r,range:n.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd(i,s){const o=this,u=o.bisect(o.range,i.value),a=i.index,l=u[0],c=u[1],f=a.length;let x;for(x=0;x<l;++x)s[a[x]]|=r;for(x=c;x<f;++x)s[a[x]]|=r;return o}}}function qse(){let t=Zy(0),e=[],n=0;function r(u,a,l){if(!a.length)return[];const c=n,f=a.length,x=Zy(f);let h=Array(f),p,m,g;for(g=0;g<f;++g)h[g]=u(a[g]),x[g]=g;if(h=$We(h,x),c)p=e,m=t,e=Array(c+f),t=Zy(c+f),BWe(l,p,m,c,h,x,f,e,t);else{if(l>0)for(g=0;g<f;++g)x[g]+=l;e=h,t=x}return n=c+f,{index:x,value:h}}function i(u,a){const l=n;let c,f,x;for(f=0;!a[t[f]]&&f<l;++f);for(x=f;f<l;++f)a[c=t[f]]||(t[x]=c,e[x]=e[f],++x);n=l-u}function s(u){for(let a=0,l=n;a<l;++a)t[a]=u[t[a]]}function o(u,a){let l;return a?l=a.length:(a=e,l=n),[_9e(a,u[0],0,l),pc(a,u[1],0,l)]}return{insert:r,remove:i,bisect:o,reindex:s,index:()=>t,size:()=>n}}function $We(t,e){return t.sort.call(e,(n,r)=>{const i=t[n],s=t[r];return i<s?-1:i>s?1:0}),T9e(t,e)}function BWe(t,e,n,r,i,s,o,u,a){let l=0,c=0,f;for(f=0;l<r&&c<o;++f)e[l]<i[c]?(u[f]=e[l],a[f]=n[l++]):(u[f]=i[c],a[f]=s[c++]+t);for(;l<r;++l,++f)u[f]=e[l],a[f]=n[l];for(;c<o;++c,++f)u[f]=i[c],a[f]=s[c]+t}function S$(t){pe.call(this,LWe(),t),this._indices=null,this._dims=null}S$.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},Fe(S$,pe,{transform(t,e){if(this._dims){var n=t.modified("fields")||t.fields.some(r=>e.modified(r.fields));return n?this.reinit(t,e):this.eval(t,e)}else return this.init(t,e)},init(t,e){const n=t.fields,r=t.query,i=this._indices={},s=this._dims=[],o=r.length;let u=0,a,l;for(;u<o;++u)a=n[u].fname,l=i[a]||(i[a]=qse()),s.push(Use(l,u,r[u]));return this.eval(t,e)},reinit(t,e){const n=e.materialize().fork(),r=t.fields,i=t.query,s=this._indices,o=this._dims,u=this.value,a=u.curr(),l=u.prev(),c=u.all(),f=n.rem=n.add,x=n.mod,h=i.length,p={};let m,g,y,E,A,v,S,C,_;if(l.set(a),e.rem.length&&(A=this.remove(t,e,n)),e.add.length&&u.add(e.add),e.mod.length)for(v={},E=e.mod,S=0,C=E.length;S<C;++S)v[E[S]._index]=1;for(S=0;S<h;++S)_=r[S],(!o[S]||t.modified("fields",S)||e.modified(_.fields))&&(y=_.fname,(m=p[y])||(s[y]=g=qse(),p[y]=m=g.insert(_,e.source,0)),o[S]=Use(g,S,i[S]).onAdd(m,a));for(S=0,C=u.data().length;S<C;++S)A[S]||(l[S]!==a[S]?f.push(S):v[S]&&a[S]!==c&&x.push(S));return u.mask=(1<<h)-1,n},eval(t,e){const n=e.materialize().fork(),r=this._dims.length;let i=0;return e.rem.length&&(this.remove(t,e,n),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,e,n)),e.add.length&&(this.insert(t,e,n),i|=(1<<r)-1),e.mod.length&&(this.modify(e,n),i|=(1<<r)-1),this.value.mask=i,n},insert(t,e,n){const r=e.add,i=this.value,s=this._dims,o=this._indices,u=t.fields,a={},l=n.add,c=i.size()+r.length,f=s.length;let x=i.size(),h,p,m;i.resize(c,f),i.add(r);const g=i.curr(),y=i.prev(),E=i.all();for(h=0;h<f;++h)p=u[h].fname,m=a[p]||(a[p]=o[p].insert(u[h],r,x)),s[h].onAdd(m,g);for(;x<c;++x)y[x]=E,g[x]!==E&&l.push(x)},modify(t,e){const n=e.mod,r=this.value,i=r.curr(),s=r.all(),o=t.mod;let u,a,l;for(u=0,a=o.length;u<a;++u)l=o[u]._index,i[l]!==s&&n.push(l)},remove(t,e,n){const r=this._indices,i=this.value,s=i.curr(),o=i.prev(),u=i.all(),a={},l=n.rem,c=e.rem;let f,x,h,p;for(f=0,x=c.length;f<x;++f)h=c[f]._index,a[h]=1,o[h]=p=s[h],s[h]=u,p!==u&&l.push(h);for(h in r)r[h].remove(x,a);return this.reindex(e,x,a),a},reindex(t,e,n){const r=this._indices,i=this.value;t.runAfter(()=>{const s=i.remove(e,n);for(const o in r)r[o].reindex(s)})},update(t,e,n){const r=this._dims,i=t.query,s=e.stamp,o=r.length;let u=0,a,l;for(n.filters=0,l=0;l<o;++l)t.modified("query",l)&&(a=l,++u);if(u===1)u=r[a].one,this.incrementOne(r[a],i[a],n.add,n.rem);else for(l=0,u=0;l<o;++l)t.modified("query",l)&&(u|=r[l].one,this.incrementAll(r[l],i[l],s,n.add),n.rem=n.add);return u},incrementAll(t,e,n,r){const i=this.value,s=i.seen(),o=i.curr(),u=i.prev(),a=t.index(),l=t.bisect(t.range),c=t.bisect(e),f=c[0],x=c[1],h=l[0],p=l[1],m=t.one;let g,y,E;if(f<h)for(g=f,y=Math.min(h,x);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;if(x>p)for(g=Math.max(f,p),y=x;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(x<p)for(g=Math.max(h,x),y=p;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;t.range=e.slice()},incrementOne(t,e,n,r){const i=this.value,s=i.curr(),o=t.index(),u=t.bisect(t.range),a=t.bisect(e),l=a[0],c=a[1],f=u[0],x=u[1],h=t.one;let p,m,g;if(l<f)for(p=l,m=Math.min(f,c);p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(l>f)for(p=f,m=Math.min(l,x);p<m;++p)g=o[p],s[g]^=h,r.push(g);if(c>x)for(p=Math.max(l,x),m=c;p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(c<x)for(p=Math.max(f,c),m=x;p<m;++p)g=o[p],s[g]^=h,r.push(g);t.range=e.slice()}});function _$(t){pe.call(this,null,t)}_$.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},Fe(_$,pe,{transform(t,e){const n=~(t.ignore||0),r=t.filter,i=r.mask;if(!(i&n))return e.StopPropagation;const s=e.fork(e.ALL),o=r.data(),u=r.curr(),a=r.prev(),l=c=>u[c]&n?null:o[c];return s.filter(s.MOD,l),i&i-1?(s.filter(s.ADD,c=>{const f=u[c]&n;return!f&&f^a[c]&n?o[c]:null}),s.filter(s.REM,c=>{const f=u[c]&n;return f&&!(f^(f^a[c]&n))?o[c]:null})):(s.filter(s.ADD,l),s.filter(s.REM,c=>(u[c]&n)===i?o[c]:null)),s.filter(s.SOURCE,c=>l(c._index))}});const kWe=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:S$,resolvefilter:_$},Symbol.toStringTag,{value:"Module"})),PWe="RawCode",vd="Literal",MWe="Property",jWe="Identifier",UWe="ArrayExpression",qWe="BinaryExpression",Hse="CallExpression",HWe="ConditionalExpression",zWe="LogicalExpression",QWe="MemberExpression",GWe="ObjectExpression",WWe="UnaryExpression";function xu(t){this.type=t}xu.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=VWe(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function VWe(t){switch(t.type){case UWe:return t.elements;case qWe:case zWe:return[t.left,t.right];case Hse:return[t.callee].concat(t.arguments);case HWe:return[t.test,t.consequent,t.alternate];case QWe:return[t.object,t.property];case GWe:return t.properties;case MWe:return[t.key,t.value];case WWe:return[t.argument];case jWe:case vd:case PWe:default:return[]}}var Fa,Ge,Ae,si,Pt,LT=1,eE=2,Sd=3,qc=4,IT=5,_d=6,ps=7,tE=8,YWe=9;Fa={},Fa[LT]="Boolean",Fa[eE]="<end>",Fa[Sd]="Identifier",Fa[qc]="Keyword",Fa[IT]="Null",Fa[_d]="Numeric",Fa[ps]="Punctuator",Fa[tE]="String",Fa[YWe]="RegularExpression";var KWe="ArrayExpression",XWe="BinaryExpression",JWe="CallExpression",ZWe="ConditionalExpression",zse="Identifier",eVe="Literal",tVe="LogicalExpression",nVe="MemberExpression",rVe="ObjectExpression",iVe="Property",sVe="UnaryExpression",vr="Unexpected token %0",oVe="Unexpected number",uVe="Unexpected string",aVe="Unexpected identifier",lVe="Unexpected reserved word",cVe="Unexpected end of input",C$="Invalid regular expression",b$="Invalid regular expression: missing /",Qse="Octal literals are not allowed in strict mode.",fVe="Duplicate data property in object literal not allowed in strict mode",kr="ILLEGAL",nE="Disabled.",xVe=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),dVe=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function $T(t,e){if(!t)throw new Error("ASSERT: "+e)}function r0(t){return t>=48&&t<=57}function T$(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function rE(t){return"01234567".indexOf(t)>=0}function hVe(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function iE(t){return t===10||t===13||t===8232||t===8233}function sE(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&xVe.test(String.fromCharCode(t))}function BT(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&dVe.test(String.fromCharCode(t))}const pVe={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Gse(){for(;Ae<si;){const t=Ge.charCodeAt(Ae);if(hVe(t)||iE(t))++Ae;else break}}function R$(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)Ae<si&&T$(Ge[Ae])?(r=Ge[Ae++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Nt({},vr,kr);return String.fromCharCode(i)}function gVe(){var t,e,n,r;for(t=Ge[Ae],e=0,t==="}"&&Nt({},vr,kr);Ae<si&&(t=Ge[Ae++],!!T$(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&Nt({},vr,kr),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function Wse(){var t,e;for(t=Ge.charCodeAt(Ae++),e=String.fromCharCode(t),t===92&&(Ge.charCodeAt(Ae)!==117&&Nt({},vr,kr),++Ae,t=R$("u"),(!t||t==="\\"||!sE(t.charCodeAt(0)))&&Nt({},vr,kr),e=t);Ae<si&&(t=Ge.charCodeAt(Ae),!!BT(t));)++Ae,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),Ge.charCodeAt(Ae)!==117&&Nt({},vr,kr),++Ae,t=R$("u"),(!t||t==="\\"||!BT(t.charCodeAt(0)))&&Nt({},vr,kr),e+=t);return e}function mVe(){var t,e;for(t=Ae++;Ae<si;){if(e=Ge.charCodeAt(Ae),e===92)return Ae=t,Wse();if(BT(e))++Ae;else break}return Ge.slice(t,Ae)}function yVe(){var t,e,n;return t=Ae,e=Ge.charCodeAt(Ae)===92?Wse():mVe(),e.length===1?n=Sd:pVe.hasOwnProperty(e)?n=qc:e==="null"?n=IT:e==="true"||e==="false"?n=LT:n=Sd,{type:n,value:e,start:t,end:Ae}}function O$(){var t=Ae,e=Ge.charCodeAt(Ae),n,r=Ge[Ae],i,s,o;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++Ae,{type:ps,value:String.fromCharCode(e),start:t,end:Ae};default:if(n=Ge.charCodeAt(Ae+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return Ae+=2,{type:ps,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:Ae};case 33:case 61:return Ae+=2,Ge.charCodeAt(Ae)===61&&++Ae,{type:ps,value:Ge.slice(t,Ae),start:t,end:Ae}}}if(o=Ge.substr(Ae,4),o===">>>=")return Ae+=4,{type:ps,value:o,start:t,end:Ae};if(s=o.substr(0,3),s===">>>"||s==="<<="||s===">>=")return Ae+=3,{type:ps,value:s,start:t,end:Ae};if(i=s.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return Ae+=2,{type:ps,value:i,start:t,end:Ae};if(i==="//"&&Nt({},vr,kr),"<>=!+-*%&|^/".indexOf(r)>=0)return++Ae,{type:ps,value:r,start:t,end:Ae};Nt({},vr,kr)}function EVe(t){let e="";for(;Ae<si&&T$(Ge[Ae]);)e+=Ge[Ae++];return e.length===0&&Nt({},vr,kr),sE(Ge.charCodeAt(Ae))&&Nt({},vr,kr),{type:_d,value:parseInt("0x"+e,16),start:t,end:Ae}}function AVe(t){let e="0"+Ge[Ae++];for(;Ae<si&&rE(Ge[Ae]);)e+=Ge[Ae++];return(sE(Ge.charCodeAt(Ae))||r0(Ge.charCodeAt(Ae)))&&Nt({},vr,kr),{type:_d,value:parseInt(e,8),octal:!0,start:t,end:Ae}}function Vse(){var t,e,n;if(n=Ge[Ae],$T(r0(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=Ae,t="",n!=="."){if(t=Ge[Ae++],n=Ge[Ae],t==="0"){if(n==="x"||n==="X")return++Ae,EVe(e);if(rE(n))return AVe(e);n&&r0(n.charCodeAt(0))&&Nt({},vr,kr)}for(;r0(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="."){for(t+=Ge[Ae++];r0(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="e"||n==="E")if(t+=Ge[Ae++],n=Ge[Ae],(n==="+"||n==="-")&&(t+=Ge[Ae++]),r0(Ge.charCodeAt(Ae)))for(;r0(Ge.charCodeAt(Ae));)t+=Ge[Ae++];else Nt({},vr,kr);return sE(Ge.charCodeAt(Ae))&&Nt({},vr,kr),{type:_d,value:parseFloat(t),start:e,end:Ae}}function vVe(){var t="",e,n,r,i,s=!1;for(e=Ge[Ae],$T(e==="'"||e==='"',"String literal must starts with a quote"),n=Ae,++Ae;Ae<si;)if(r=Ge[Ae++],r===e){e="";break}else if(r==="\\")if(r=Ge[Ae++],!r||!iE(r.charCodeAt(0)))switch(r){case"u":case"x":Ge[Ae]==="{"?(++Ae,t+=gVe()):t+=R$(r);break;case"n":t+=`
|
|
1466
1466
|
`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:rE(r)?(i="01234567".indexOf(r),i!==0&&(s=!0),Ae<si&&rE(Ge[Ae])&&(s=!0,i=i*8+"01234567".indexOf(Ge[Ae++]),"0123".indexOf(r)>=0&&Ae<si&&rE(Ge[Ae])&&(i=i*8+"01234567".indexOf(Ge[Ae++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&Ge[Ae]===`
|
|
1467
|
-
`&&++Ae;else{if(iE(r.charCodeAt(0)))break;t+=r}return e!==""&&Nt({},vr,kr),{type:tE,value:t,octal:s,start:n,end:Ae}}function SVe(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";Nt({},C$)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Nt({},C$)}try{return new RegExp(t,e)}catch{return null}}function _Ve(){var t,e,n,r,i;for(t=Ge[Ae],$T(t==="/","Regular expression literal must start with a slash"),e=Ge[Ae++],n=!1,r=!1;Ae<si;)if(t=Ge[Ae++],e+=t,t==="\\")t=Ge[Ae++],iE(t.charCodeAt(0))&&Nt({},b$),e+=t;else if(iE(t.charCodeAt(0)))Nt({},b$);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||Nt({},b$),i=e.substr(1,e.length-2),{value:i,literal:e}}function CVe(){var t,e,n;for(e="",n="";Ae<si&&(t=Ge[Ae],!!BT(t.charCodeAt(0)));)++Ae,t==="\\"&&Ae<si?Nt({},vr,kr):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&Nt({},C$,n),{value:n,literal:e}}function bVe(){var t,e,n,r;return Mt=null,Gse(),t=Ae,e=_Ve(),n=CVe(),r=SVe(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:Ae}}function TVe(t){return t.type===Sd||t.type===qc||t.type===LT||t.type===IT}function Yse(){if(Gse(),Ae>=si)return{type:eE,start:Ae,end:Ae};const t=Ge.charCodeAt(Ae);return sE(t)?yVe():t===40||t===41||t===59?O$():t===39||t===34?vVe():t===46?r0(Ge.charCodeAt(Ae+1))?Vse():O$():r0(t)?Vse():O$()}function gs(){const t=Mt;return Ae=t.end,Mt=Yse(),Ae=t.end,t}function Kse(){const t=Ae;Mt=Yse(),Ae=t}function RVe(t){const e=new xu(KWe);return e.elements=t,e}function Xse(t,e,n){const r=new xu(t==="||"||t==="&&"?tVe:XWe);return r.operator=t,r.left=e,r.right=n,r}function OVe(t,e){const n=new xu(JWe);return n.callee=t,n.arguments=e,n}function NVe(t,e,n){const r=new xu(ZWe);return r.test=t,r.consequent=e,r.alternate=n,r}function N$(t){const e=new xu(zse);return e.name=t,e}function oE(t){const e=new xu(eVe);return e.value=t.value,e.raw=Ge.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function Jse(t,e,n){const r=new xu(nVe);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function DVe(t){const e=new xu(rVe);return e.properties=t,e}function Zse(t,e,n){const r=new xu(iVe);return r.key=e,r.value=n,r.kind=t,r}function FVe(t,e){const n=new xu(sVe);return n.operator=t,n.argument=e,n.prefix=!0,n}function Nt(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(s,o)=>($T(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=Ae,n.description=i,n}function kT(t){t.type===eE&&Nt(t,cVe),t.type===_d&&Nt(t,oVe),t.type===tE&&Nt(t,uVe),t.type===Sd&&Nt(t,aVe),t.type===qc&&Nt(t,lVe),Nt(t,vr,t.value)}function oi(t){const e=gs();(e.type!==ps||e.value!==t)&&kT(e)}function on(t){return Mt.type===ps&&Mt.value===t}function D$(t){return Mt.type===qc&&Mt.value===t}function wVe(){const t=[];for(Ae=Mt.start,oi("[");!on("]");)on(",")?(gs(),t.push(null)):(t.push(Cd()),on("]")||oi(","));return gs(),RVe(t)}function eoe(){Ae=Mt.start;const t=gs();return t.type===tE||t.type===_d?(t.octal&&Nt(t,Qse),oE(t)):N$(t.value)}function LVe(){var t,e,n,r;if(Ae=Mt.start,t=Mt,t.type===Sd)return n=eoe(),oi(":"),r=Cd(),Zse("init",n,r);if(t.type===eE||t.type===ps)kT(t);else return e=eoe(),oi(":"),r=Cd(),Zse("init",e,r)}function IVe(){var t=[],e,n,r,i={},s=String;for(Ae=Mt.start,oi("{");!on("}");)e=LVe(),e.key.type===zse?n=e.key.name:n=s(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Nt({},fVe):i[r]=!0,t.push(e),on("}")||oi(",");return oi("}"),DVe(t)}function $Ve(){oi("(");const t=F$();return oi(")"),t}const BVe={if:1};function kVe(){var t,e,n;if(on("("))return $Ve();if(on("["))return wVe();if(on("{"))return IVe();if(t=Mt.type,Ae=Mt.start,t===Sd||BVe[Mt.value])n=N$(gs().value);else if(t===tE||t===_d)Mt.octal&&Nt(Mt,Qse),n=oE(gs());else{if(t===qc)throw new Error(nE);t===LT?(e=gs(),e.value=e.value==="true",n=oE(e)):t===IT?(e=gs(),e.value=null,n=oE(e)):on("/")||on("/=")?(n=oE(bVe()),Kse()):kT(gs())}return n}function PVe(){const t=[];if(oi("("),!on(")"))for(;Ae<si&&(t.push(Cd()),!on(")"));)oi(",");return oi(")"),t}function MVe(){Ae=Mt.start;const t=gs();return TVe(t)||kT(t),N$(t.value)}function jVe(){return oi("."),MVe()}function UVe(){oi("[");const t=F$();return oi("]"),t}function qVe(){var t,e,n;for(t=kVe();;)if(on("."))n=jVe(),t=Jse(".",t,n);else if(on("("))e=PVe(),t=OVe(t,e);else if(on("["))n=UVe(),t=Jse("[",t,n);else break;return t}function toe(){const t=qVe();if(Mt.type===ps&&(on("++")||on("--")))throw new Error(nE);return t}function PT(){var t,e;if(Mt.type!==ps&&Mt.type!==qc)e=toe();else{if(on("++")||on("--"))throw new Error(nE);if(on("+")||on("-")||on("~")||on("!"))t=gs(),e=PT(),e=FVe(t.value,e);else{if(D$("delete")||D$("void")||D$("typeof"))throw new Error(nE);e=toe()}}return e}function noe(t){let e=0;if(t.type!==ps&&t.type!==qc)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function HVe(){var t,e,n,r,i,s,o,u,a,l;if(t=Mt,a=PT(),r=Mt,i=noe(r),i===0)return a;for(r.prec=i,gs(),e=[t,Mt],o=PT(),s=[a,r,o];(i=noe(Mt))>0;){for(;s.length>2&&i<=s[s.length-2].prec;)o=s.pop(),u=s.pop().value,a=s.pop(),e.pop(),n=Xse(u,a,o),s.push(n);r=gs(),r.prec=i,s.push(r),e.push(Mt),n=PT(),s.push(n)}for(l=s.length-1,n=s[l],e.pop();l>1;)e.pop(),n=Xse(s[l-1].value,s[l-2],n),l-=2;return n}function Cd(){var t,e,n;return t=HVe(),on("?")&&(gs(),e=Cd(),oi(":"),n=Cd(),t=NVe(t,e,n)),t}function F$(){const t=Cd();if(on(","))throw new Error(nE);return t}function roe(t){Ge=t,Ae=0,si=Ge.length,Mt=null,Kse();const e=F$();if(Mt.type!==eE)throw new Error("Unexpect token after expression.");return e}var ioe={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function soe(t){function e(o,u,a,l){let c=t(u[0]);return a&&(c=a+"("+c+")",a.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+o+(l<0?"":l===0?"()":"("+u.slice(1).map(t).join(",")+")")}function n(o,u,a){return l=>e(o,l,u,a)}const r="new Date",i="String",s="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Se("Missing arguments to clamp function."),o.length>3&&Se("Too many arguments to clamp function.");const u=o.map(t);return"Math.max("+u[1]+", Math.min("+u[2]+","+u[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:s,test:n("test",s),if:function(o){o.length<3&&Se("Missing arguments to if function."),o.length>3&&Se("Too many arguments to if function.");const u=o.map(t);return"("+u[0]+"?"+u[1]+":"+u[2]+")"}}}function zVe(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function QVe(t){t=t||{};const e=t.allowed?ia(t.allowed):{},n=t.forbidden?ia(t.forbidden):{},r=t.constants||ioe,i=(t.functions||soe)(f),s=t.globalvar,o=t.fieldvar,u=ct(s)?s:p=>`${s}["${p}"]`;let a={},l={},c=0;function f(p){if(je(p))return p;const m=x[p.type];return m==null&&Se("Unsupported type: "+p.type),m(p)}const x={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Je(n,m)?Se("Illegal identifier: "+m):Je(r,m)?r[m]:Je(e,m)?m:(a[m]=1,u(m))},MemberExpression:p=>{const m=!p.computed,g=f(p.object);m&&(c+=1);const y=f(p.property);return g===o&&(l[zVe(y)]=1),m&&(c-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Se("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=Je(i,m)&&i[m];return y||Se("Unrecognized function: "+m),ct(y)?y(g):y+"("+g.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function h(p){const m={code:f(p),globals:Object.keys(a),fields:Object.keys(l)};return a={},l={},m}return h.functions=i,h.constants=r,h}function w$(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function GVe(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function WVe(t){let e,n,r;t.length!==2?(e=w$,n=(u,a)=>w$(t(u),a),r=(u,a)=>t(u)-a):(e=t===w$||t===GVe?t:VVe,n=t,r=t);function i(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<0?l=f+1:c=f}while(l<c)}return l}function s(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<=0?l=f+1:c=f}while(l<c)}return l}function o(u,a,l=0,c=u.length){const f=i(u,a,l,c-1);return f>l&&r(u[f-1],a)>-r(u[f],a)?f-1:f}return{left:i,center:o,right:s}}function VVe(){return 0}function YVe(t,...e){t=new oC(t),e=e.map(KVe);e:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue e}return t}function KVe(t){return t instanceof oC?t:new oC(t)}function XVe(...t){const e=new oC;for(const n of t)for(const r of n)e.add(r);return e}const L$="intersect",ooe="union",JVe="vlMulti",ZVe="vlPoint",uoe="or",eYe="and",wa="_vgsid_",uE=Bs(wa),tYe="E",nYe="R",rYe="R-E",iYe="R-LE",sYe="R-RE",MT="index:unit";function aoe(t,e){for(var n=e.fields,r=e.values,i=n.length,s=0,o,u;s<i;++s)if(u=n[s],u.getter=Bs.getter||Bs(u.field),o=u.getter(t),wx(o)&&(o=_i(o)),wx(r[s])&&(r[s]=_i(r[s])),wx(r[s][0])&&(r[s]=r[s].map(_i)),u.type===tYe){if(_e(r[s])?r[s].indexOf(o)<0:o!==r[s])return!1}else if(u.type===nYe){if(!y3(o,r[s]))return!1}else if(u.type===sYe){if(!y3(o,r[s],!0,!1))return!1}else if(u.type===rYe){if(!y3(o,r[s],!1,!1))return!1}else if(u.type===iYe&&!y3(o,r[s],!1,!0))return!1;return!0}function oYe(t,e,n){for(var r=this.context.data[t],i=r?r.values.value:[],s=r?r[MT]&&r[MT].value:void 0,o=n===L$,u=i.length,a=0,l,c,f,x,h;a<u;++a)if(l=i[a],s&&o){if(c=c||{},f=c[x=l.unit]||0,f===-1)continue;if(h=aoe(e,l),c[x]=h?-1:++f,h&&s.size===1)return!0;if(!h&&f===s.get(x).count)return!1}else if(h=aoe(e,l),o^h)return h;return u&&o}const loe=WVe(uE),uYe=loe.left,aYe=loe.right;function lYe(t,e,n){const r=this.context.data[t],i=r?r.values.value:[],s=r?r[MT]&&r[MT].value:void 0,o=n===L$,u=uE(e),a=uYe(i,u);if(a===i.length||uE(i[a])!==u)return!1;if(s&&o){if(s.size===1)return!0;if(aYe(i,u)-a<s.size)return!1}return!0}function cYe(t,e){return t.map(n=>ft(e.fields?{values:e.fields.map(r=>(r.getter||(r.getter=Bs(r.field)))(n.datum))}:{[wa]:uE(n.datum)},e))}function fYe(t,e,n,r){for(var i=this.context.data[t],s=i?i.values.value:[],o={},u={},a={},l,c,f,x,h,p,m,g,y,E,A=s.length,v=0,S,C;v<A;++v)if(l=s[v],x=l.unit,c=l.fields,f=l.values,c&&f){for(S=0,C=c.length;S<C;++S)h=c[S],m=o[h.field]||(o[h.field]={}),g=m[x]||(m[x]=[]),a[h.field]=y=h.type.charAt(0),E=I$[`${y}_union`],m[x]=E(g,Pe(f[S]));n&&(g=u[x]||(u[x]=[]),g.push(Pe(f).reduce((_,b,R)=>(_[c[R].field]=b,_),{})))}else h=wa,p=uE(l),m=o[h]||(o[h]={}),g=m[x]||(m[x]=[]),g.push(p),n&&(g=u[x]||(u[x]=[]),g.push({[wa]:p}));if(e=e||ooe,o[wa]?o[wa]=I$[`${wa}_${e}`](...Object.values(o[wa])):Object.keys(o).forEach(_=>{o[_]=Object.keys(o[_]).map(b=>o[_][b]).reduce((b,R)=>b===void 0?R:I$[`${a[_]}_${e}`](b,R))}),s=Object.keys(u),n&&s.length){const _=r?ZVe:JVe;o[_]=e===ooe?{[uoe]:s.reduce((b,R)=>(b.push(...u[R]),b),[])}:{[eYe]:s.map(b=>({[uoe]:u[b]}))}}return o}var I$={[`${wa}_union`]:XVe,[`${wa}_intersect`]:YVe,E_union:function(t,e){if(!t.length)return e;for(var n=0,r=e.length;n<r;++n)t.indexOf(e[n])<0&&t.push(e[n]);return t},E_intersect:function(t,e){return t.length?t.filter(n=>e.indexOf(n)>=0):e},R_union:function(t,e){var n=_i(e[0]),r=_i(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?(t[0]>n&&(t[0]=n),t[1]<r&&(t[1]=r),t):[n,r]},R_intersect:function(t,e){var n=_i(e[0]),r=_i(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?r<t[0]||t[1]<n?[]:(t[0]<n&&(t[0]=n),t[1]>r&&(t[1]=r),t):[n,r]}};const xYe=":",dYe="@";function $$(t,e,n,r){e[0].type!==vd&&Se("First argument to selection functions must be a string literal.");const i=e[0].value,s=e.length>=2&&St(e).value,o="unit",u=dYe+o,a=xYe+i;s===L$&&!Je(r,u)&&(r[u]=n.getData(i).indataRef(n,o)),Je(r,a)||(r[a]=n.getData(i).tuplesRef())}function coe(t){const e=this.context.data[t];return e?e.values.value:[]}function hYe(t,e,n){const r=this.context.data[t]["index:"+e],i=r?r.value.get(n):void 0;return i&&i.count}function pYe(t,e){const n=this.context.dataflow,r=this.context.data[t],i=r.input;return n.pulse(i,n.changeset().remove(Zo).insert(e)),1}function gYe(t,e,n){if(t){const r=this.context.dataflow,i=t.mark.source;r.pulse(i,r.changeset().encode(t,e))}return n!==void 0?n:t}const aE=t=>function(e,n){return this.context.dataflow.locale()[t](n)(e)},mYe=aE("format"),foe=aE("timeFormat"),yYe=aE("utcFormat"),EYe=aE("timeParse"),AYe=aE("utcParse"),jT=new Date(2e3,0,1);function UT(t,e,n){return!Number.isInteger(t)||!Number.isInteger(e)?"":(jT.setYear(2e3),jT.setMonth(t),jT.setDate(e),foe.call(this,jT,n))}function vYe(t){return UT.call(this,t,1,"%B")}function SYe(t){return UT.call(this,t,1,"%b")}function _Ye(t){return UT.call(this,0,2+t,"%A")}function CYe(t){return UT.call(this,0,2+t,"%a")}const bYe=":",TYe="@",B$="%",xoe="$";function k$(t,e,n,r){e[0].type!==vd&&Se("First argument to data functions must be a string literal.");const i=e[0].value,s=bYe+i;if(!Je(s,r))try{r[s]=n.getData(i).tuplesRef()}catch{}}function RYe(t,e,n,r){e[0].type!==vd&&Se("First argument to indata must be a string literal."),e[1].type!==vd&&Se("Second argument to indata must be a string literal.");const i=e[0].value,s=e[1].value,o=TYe+s;Je(o,r)||(r[o]=n.getData(i).indataRef(n,s))}function ms(t,e,n,r){if(e[0].type===vd)doe(n,r,e[0].value);else for(t in n.scales)doe(n,r,t)}function doe(t,e,n){const r=B$+n;if(!Je(e,r))try{e[r]=t.scaleRef(n)}catch{}}function i0(t,e){if(ct(t))return t;if(je(t)){const n=e.scales[t];return n&&NPe(n.value)?n.value:void 0}}function OYe(t,e,n){e.__bandwidth=i=>i&&i.bandwidth?i.bandwidth():0,n._bandwidth=ms,n._range=ms,n._scale=ms;const r=i=>"_["+(i.type===vd?we(B$+i.value):we(B$)+"+"+t(i))+"]";return{_bandwidth:i=>`this.__bandwidth(${r(i[0])})`,_range:i=>`${r(i[0])}.range()`,_scale:i=>`${r(i[0])}(${t(i[1])})`}}function P$(t,e){return function(n,r,i){if(n){const s=i0(n,(i||this).context);return s&&s.path[t](r)}else return e(r)}}const NYe=P$("area",Wqe),DYe=P$("bounds",Xqe),FYe=P$("centroid",rHe);function wYe(t){const e=this.context.group;let n=!1;if(e)for(;t;){if(t===e){n=!0;break}t=t.mark.group}return n}function M$(t,e,n){try{t[e].apply(t,["EXPRESSION"].concat([].slice.call(n)))}catch(r){t.warn(r)}return n[n.length-1]}function LYe(){return M$(this.context.dataflow,"warn",arguments)}function IYe(){return M$(this.context.dataflow,"info",arguments)}function $Ye(){return M$(this.context.dataflow,"debug",arguments)}function j$(t){const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}function U$(t){const e=bc(t),n=j$(e.r),r=j$(e.g),i=j$(e.b);return .2126*n+.7152*r+.0722*i}function BYe(t,e){const n=U$(t),r=U$(e),i=Math.max(n,r),s=Math.min(n,r);return(i+.05)/(s+.05)}function kYe(){const t=[].slice.call(arguments);return t.unshift({}),ft(...t)}function hoe(t,e){return t===e||t!==t&&e!==e?!0:_e(t)?_e(e)&&t.length===e.length?PYe(t,e):!1:He(t)&&He(e)?poe(t,e):!1}function PYe(t,e){for(let n=0,r=t.length;n<r;++n)if(!hoe(t[n],e[n]))return!1;return!0}function poe(t,e){for(const n in t)if(!hoe(t[n],e[n]))return!1;return!0}function goe(t){return e=>poe(t,e)}function MYe(t,e,n,r,i,s){const o=this.context.dataflow,u=this.context.data[t],a=u.input,l=o.stamp();let c=u.changes,f,x;if(o._trigger===!1||!(a.value.length||e||r))return 0;if((!c||c.stamp<l)&&(u.changes=c=o.changeset(),c.stamp=l,o.runAfter(()=>{u.modified=!0,o.pulse(a,c).run()},!0,1)),n&&(f=n===!0?Zo:_e(n)||rw(n)?n:goe(n),c.remove(f)),e&&c.insert(e),r&&(f=goe(r),a.value.some(f)?c.remove(f):c.insert(r)),i)for(x in s)c.modify(i,x,s[x]);return 1}function jYe(t){const e=t.touches,n=e[0].clientX-e[1].clientX,r=e[0].clientY-e[1].clientY;return Math.sqrt(n*n+r*r)}function UYe(t){const e=t.touches;return Math.atan2(e[0].clientY-e[1].clientY,e[0].clientX-e[1].clientX)}const moe={};function qYe(t,e){const n=moe[e]||(moe[e]=Bs(e));return _e(t)?t.map(n):n(t)}function q$(t){return _e(t)||ArrayBuffer.isView(t)?t:null}function H$(t){return q$(t)||(je(t)?t:null)}function HYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return q$(t).join(...n)}function zYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return H$(t).indexOf(...n)}function QYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return H$(t).lastIndexOf(...n)}function GYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return H$(t).slice(...n)}function WYe(t,e,n){return ct(n)&&Se("Function argument passed to replace."),String(t).replace(e,n)}function VYe(t){return q$(t).slice().reverse()}function YYe(t,e,n){return b9(t||0,e||0,n||0)}function KYe(t,e){const n=i0(t,(e||this).context);return n&&n.bandwidth?n.bandwidth():0}function XYe(t,e){const n=i0(t,(e||this).context);return n?n.copy():void 0}function JYe(t,e){const n=i0(t,(e||this).context);return n?n.domain():[]}function ZYe(t,e,n){const r=i0(t,(n||this).context);return r?_e(e)?(r.invertRange||r.invert)(e):(r.invert||r.invertExtent)(e):void 0}function eKe(t,e){const n=i0(t,(e||this).context);return n&&n.range?n.range():[]}function tKe(t,e,n){const r=i0(t,(n||this).context);return r?r(e):void 0}function nKe(t,e,n,r,i){t=i0(t,(i||this).context);const s=ZPe(e,n);let o=t.domain(),u=o[0],a=St(o),l=Si;return a-u?l=ite(t,u,a):t=(t.interpolator?Ot("sequential")().interpolator(t.interpolator()):Ot("linear")().interpolate(t.interpolate()).range(t.range())).domain([u=0,a=1]),t.ticks&&(o=t.ticks(+r||15),u!==o[0]&&o.unshift(u),a!==St(o)&&o.push(a)),o.forEach(c=>s.stop(l(c),t(c))),s}function rKe(t,e,n){const r=i0(t,(n||this).context);return function(i){return r?r.path.context(i)(e):""}}function iKe(t){let e=null;return function(n){return n?rb(n,e=e||P9(t)):t}}const yoe=t=>t.data;function Eoe(t,e){const n=coe.call(e,t);return n.root&&n.root.lookup||{}}function sKe(t,e,n){const r=Eoe(t,this),i=r[e],s=r[n];return i&&s?i.path(s).map(yoe):void 0}function oKe(t,e){const n=Eoe(t,this)[e];return n?n.ancestors().map(yoe):void 0}const Aoe=()=>typeof window<"u"&&window||null;function uKe(){const t=Aoe();return t?t.screen:{}}function aKe(){const t=Aoe();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]}function lKe(){const t=this.context.dataflow,e=t.container&&t.container();return e?[e.clientWidth,e.clientHeight]:[void 0,void 0]}function voe(t,e,n){if(!t)return[];const[r,i]=t,s=new nr().set(r[0],r[1],i[0],i[1]),o=n||this.context.dataflow.scenegraph().root;return IUe(o,s,cKe(e))}function cKe(t){let e=null;if(t){const n=Pe(t.marktype),r=Pe(t.markname);e=i=>(!n.length||n.some(s=>i.marktype===s))&&(!r.length||r.some(s=>i.name===s))}return e}function fKe(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;t=Pe(t);const i=t[t.length-1];return i===void 0||Math.sqrt((i[0]-e)**2+(i[1]-n)**2)>r?[...t,[e,n]]:t}function xKe(t){return Pe(t).reduce((e,n,r)=>{let[i,s]=n;return e+=r==0?`M ${i},${s} `:r===t.length-1?" Z":`L ${i},${s} `},"")}function dKe(t,e,n){const{x:r,y:i,mark:s}=n,o=new nr().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[a,l]of e)a<o.x1&&(o.x1=a),a>o.x2&&(o.x2=a),l<o.y1&&(o.y1=l),l>o.y2&&(o.y2=l);return o.translate(r,i),voe([[o.x1,o.y1],[o.x2,o.y2]],t,s).filter(a=>hKe(a.x,a.y,e))}function hKe(t,e,n){let r=0;for(let i=0,s=n.length-1;i<n.length;s=i++){const[o,u]=n[s],[a,l]=n[i];l>e!=u>e&&t<(o-a)*(e-l)/(u-l)+a&&r++}return r&1}const lE={random(){return ql()},cumulativeNormal:cw,cumulativeLogNormal:LJ,cumulativeUniform:kJ,densityNormal:OJ,densityLogNormal:wJ,densityUniform:BJ,quantileNormal:fw,quantileLogNormal:IJ,quantileUniform:PJ,sampleNormal:lw,sampleLogNormal:FJ,sampleUniform:$J,isArray:_e,isBoolean:D2,isDate:wx,isDefined(t){return t!==void 0},isNumber:nn,isObject:He,isRegExp:kFe,isString:je,isTuple:rw,isValid(t){return t!=null&&t===t},toBoolean:zY,toDate(t){return QY(t)},toNumber:_i,toString:GY,indexof:zYe,join:HYe,lastindexof:QYe,replace:WYe,reverse:VYe,slice:GYe,flush:$Fe,lerp:PFe,merge:kYe,pad:qFe,peek:St,pluck:qYe,span:H5,inrange:y3,truncate:zFe,rgb:bc,lab:qC,hcl:HC,hsl:MC,luminance:U$,contrast:BYe,sequence:Ps,format:mYe,utcFormat:yYe,utcParse:AYe,utcOffset:gLe,utcSequence:yLe,timeFormat:foe,timeParse:EYe,timeOffset:pLe,timeSequence:mLe,timeUnitSpecifier:Z9e,monthFormat:vYe,monthAbbrevFormat:SYe,dayFormat:_Ye,dayAbbrevFormat:CYe,quarter:TFe,utcquarter:RFe,week:tLe,utcweek:iLe,dayofyear:eLe,utcdayofyear:rLe,warn:LYe,info:IYe,debug:$Ye,extent(t){return vl(t)},inScope:wYe,intersect:voe,clampRange:OFe,pinchDistance:jYe,pinchAngle:UYe,screen:uKe,containerSize:lKe,windowSize:aKe,bandspace:YYe,setdata:pYe,pathShape:iKe,panLinear:SFe,panLog:_Fe,panPow:CFe,panSymlog:bFe,zoomLinear:PY,zoomLog:MY,zoomPow:zF,zoomSymlog:jY,encode:gYe,modify:MYe,lassoAppend:fKe,lassoPath:xKe,intersectLasso:dKe},pKe=["view","item","group","xy","x","y"],gKe="event.vega.",Soe="this.",z$={},_oe={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${we(xoe+t)}]`,functions:mKe,constants:ioe,visitors:z$},Q$=QVe(_oe);function mKe(t){const e=soe(t);pKe.forEach(n=>e[n]=gKe+n);for(const n in lE)e[n]=Soe+n;return ft(e,OYe(t,lE,z$)),e}function ir(t,e,n){return arguments.length===1?lE[t]:(lE[t]=e,n&&(z$[t]=n),Q$&&(Q$.functions[t]=Soe+t),this)}ir("bandwidth",KYe,ms),ir("copy",XYe,ms),ir("domain",JYe,ms),ir("range",eKe,ms),ir("invert",ZYe,ms),ir("scale",tKe,ms),ir("gradient",nKe,ms),ir("geoArea",NYe,ms),ir("geoBounds",DYe,ms),ir("geoCentroid",FYe,ms),ir("geoShape",rKe,ms),ir("indata",hYe,RYe),ir("data",coe,k$),ir("treePath",sKe,k$),ir("treeAncestors",oKe,k$),ir("vlSelectionTest",oYe,$$),ir("vlSelectionIdTest",lYe,$$),ir("vlSelectionResolve",fYe,$$),ir("vlSelectionTuples",cYe);function La(t,e){const n={};let r;try{t=je(t)?t:we(t)+"",r=roe(t)}catch{Se("Expression parse error: "+t)}r.visit(s=>{if(s.type!==Hse)return;const o=s.callee.name,u=_oe.visitors[o];u&&u(o,s.arguments,e,n)});const i=Q$(r);return i.globals.forEach(s=>{const o=xoe+s;!Je(n,o)&&e.getSignal(s)&&(n[o]=e.signalRef(s))}),{$expr:ft({code:i.code},e.options.ast?{ast:r}:null),$fields:i.fields,$params:n}}function yKe(t){const e=this,n=t.operators||[];return t.background&&(e.background=t.background),t.eventConfig&&(e.eventConfig=t.eventConfig),t.locale&&(e.locale=t.locale),n.forEach(r=>e.parseOperator(r)),n.forEach(r=>e.parseOperatorParameters(r)),(t.streams||[]).forEach(r=>e.parseStream(r)),(t.updates||[]).forEach(r=>e.parseUpdate(r)),e.resolve()}const EKe=ia(["rule"]),Coe=ia(["group","image","rect"]);function AKe(t,e){let n="";return EKe[e]||(t.x2&&(t.x?(Coe[e]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),t.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(Coe[e]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),t.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}function G$(t){return(t+"").toLowerCase()}function vKe(t){return G$(t)==="operator"}function SKe(t){return G$(t)==="collect"}function cE(t,e,n){n.endsWith(";")||(n="return("+n+");");const r=Function(...e.concat(n));return t&&t.functions?r.bind(t.functions):r}function _Ke(t,e,n,r){return`((u = ${t}) < (v = ${e}) || u == null) && v != null ? ${n}
|
|
1467
|
+
`&&++Ae;else{if(iE(r.charCodeAt(0)))break;t+=r}return e!==""&&Nt({},vr,kr),{type:tE,value:t,octal:s,start:n,end:Ae}}function SVe(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";Nt({},C$)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Nt({},C$)}try{return new RegExp(t,e)}catch{return null}}function _Ve(){var t,e,n,r,i;for(t=Ge[Ae],$T(t==="/","Regular expression literal must start with a slash"),e=Ge[Ae++],n=!1,r=!1;Ae<si;)if(t=Ge[Ae++],e+=t,t==="\\")t=Ge[Ae++],iE(t.charCodeAt(0))&&Nt({},b$),e+=t;else if(iE(t.charCodeAt(0)))Nt({},b$);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||Nt({},b$),i=e.substr(1,e.length-2),{value:i,literal:e}}function CVe(){var t,e,n;for(e="",n="";Ae<si&&(t=Ge[Ae],!!BT(t.charCodeAt(0)));)++Ae,t==="\\"&&Ae<si?Nt({},vr,kr):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&Nt({},C$,n),{value:n,literal:e}}function bVe(){var t,e,n,r;return Pt=null,Gse(),t=Ae,e=_Ve(),n=CVe(),r=SVe(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:Ae}}function TVe(t){return t.type===Sd||t.type===qc||t.type===LT||t.type===IT}function Yse(){if(Gse(),Ae>=si)return{type:eE,start:Ae,end:Ae};const t=Ge.charCodeAt(Ae);return sE(t)?yVe():t===40||t===41||t===59?O$():t===39||t===34?vVe():t===46?r0(Ge.charCodeAt(Ae+1))?Vse():O$():r0(t)?Vse():O$()}function gs(){const t=Pt;return Ae=t.end,Pt=Yse(),Ae=t.end,t}function Kse(){const t=Ae;Pt=Yse(),Ae=t}function RVe(t){const e=new xu(KWe);return e.elements=t,e}function Xse(t,e,n){const r=new xu(t==="||"||t==="&&"?tVe:XWe);return r.operator=t,r.left=e,r.right=n,r}function OVe(t,e){const n=new xu(JWe);return n.callee=t,n.arguments=e,n}function NVe(t,e,n){const r=new xu(ZWe);return r.test=t,r.consequent=e,r.alternate=n,r}function N$(t){const e=new xu(zse);return e.name=t,e}function oE(t){const e=new xu(eVe);return e.value=t.value,e.raw=Ge.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function Jse(t,e,n){const r=new xu(nVe);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function DVe(t){const e=new xu(rVe);return e.properties=t,e}function Zse(t,e,n){const r=new xu(iVe);return r.key=e,r.value=n,r.kind=t,r}function FVe(t,e){const n=new xu(sVe);return n.operator=t,n.argument=e,n.prefix=!0,n}function Nt(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(s,o)=>($T(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=Ae,n.description=i,n}function kT(t){t.type===eE&&Nt(t,cVe),t.type===_d&&Nt(t,oVe),t.type===tE&&Nt(t,uVe),t.type===Sd&&Nt(t,aVe),t.type===qc&&Nt(t,lVe),Nt(t,vr,t.value)}function oi(t){const e=gs();(e.type!==ps||e.value!==t)&&kT(e)}function on(t){return Pt.type===ps&&Pt.value===t}function D$(t){return Pt.type===qc&&Pt.value===t}function wVe(){const t=[];for(Ae=Pt.start,oi("[");!on("]");)on(",")?(gs(),t.push(null)):(t.push(Cd()),on("]")||oi(","));return gs(),RVe(t)}function eoe(){Ae=Pt.start;const t=gs();return t.type===tE||t.type===_d?(t.octal&&Nt(t,Qse),oE(t)):N$(t.value)}function LVe(){var t,e,n,r;if(Ae=Pt.start,t=Pt,t.type===Sd)return n=eoe(),oi(":"),r=Cd(),Zse("init",n,r);if(t.type===eE||t.type===ps)kT(t);else return e=eoe(),oi(":"),r=Cd(),Zse("init",e,r)}function IVe(){var t=[],e,n,r,i={},s=String;for(Ae=Pt.start,oi("{");!on("}");)e=LVe(),e.key.type===zse?n=e.key.name:n=s(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Nt({},fVe):i[r]=!0,t.push(e),on("}")||oi(",");return oi("}"),DVe(t)}function $Ve(){oi("(");const t=F$();return oi(")"),t}const BVe={if:1};function kVe(){var t,e,n;if(on("("))return $Ve();if(on("["))return wVe();if(on("{"))return IVe();if(t=Pt.type,Ae=Pt.start,t===Sd||BVe[Pt.value])n=N$(gs().value);else if(t===tE||t===_d)Pt.octal&&Nt(Pt,Qse),n=oE(gs());else{if(t===qc)throw new Error(nE);t===LT?(e=gs(),e.value=e.value==="true",n=oE(e)):t===IT?(e=gs(),e.value=null,n=oE(e)):on("/")||on("/=")?(n=oE(bVe()),Kse()):kT(gs())}return n}function PVe(){const t=[];if(oi("("),!on(")"))for(;Ae<si&&(t.push(Cd()),!on(")"));)oi(",");return oi(")"),t}function MVe(){Ae=Pt.start;const t=gs();return TVe(t)||kT(t),N$(t.value)}function jVe(){return oi("."),MVe()}function UVe(){oi("[");const t=F$();return oi("]"),t}function qVe(){var t,e,n;for(t=kVe();;)if(on("."))n=jVe(),t=Jse(".",t,n);else if(on("("))e=PVe(),t=OVe(t,e);else if(on("["))n=UVe(),t=Jse("[",t,n);else break;return t}function toe(){const t=qVe();if(Pt.type===ps&&(on("++")||on("--")))throw new Error(nE);return t}function PT(){var t,e;if(Pt.type!==ps&&Pt.type!==qc)e=toe();else{if(on("++")||on("--"))throw new Error(nE);if(on("+")||on("-")||on("~")||on("!"))t=gs(),e=PT(),e=FVe(t.value,e);else{if(D$("delete")||D$("void")||D$("typeof"))throw new Error(nE);e=toe()}}return e}function noe(t){let e=0;if(t.type!==ps&&t.type!==qc)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function HVe(){var t,e,n,r,i,s,o,u,a,l;if(t=Pt,a=PT(),r=Pt,i=noe(r),i===0)return a;for(r.prec=i,gs(),e=[t,Pt],o=PT(),s=[a,r,o];(i=noe(Pt))>0;){for(;s.length>2&&i<=s[s.length-2].prec;)o=s.pop(),u=s.pop().value,a=s.pop(),e.pop(),n=Xse(u,a,o),s.push(n);r=gs(),r.prec=i,s.push(r),e.push(Pt),n=PT(),s.push(n)}for(l=s.length-1,n=s[l],e.pop();l>1;)e.pop(),n=Xse(s[l-1].value,s[l-2],n),l-=2;return n}function Cd(){var t,e,n;return t=HVe(),on("?")&&(gs(),e=Cd(),oi(":"),n=Cd(),t=NVe(t,e,n)),t}function F$(){const t=Cd();if(on(","))throw new Error(nE);return t}function roe(t){Ge=t,Ae=0,si=Ge.length,Pt=null,Kse();const e=F$();if(Pt.type!==eE)throw new Error("Unexpect token after expression.");return e}var ioe={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function soe(t){function e(o,u,a,l){let c=t(u[0]);return a&&(c=a+"("+c+")",a.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+o+(l<0?"":l===0?"()":"("+u.slice(1).map(t).join(",")+")")}function n(o,u,a){return l=>e(o,l,u,a)}const r="new Date",i="String",s="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Se("Missing arguments to clamp function."),o.length>3&&Se("Too many arguments to clamp function.");const u=o.map(t);return"Math.max("+u[1]+", Math.min("+u[2]+","+u[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:s,test:n("test",s),if:function(o){o.length<3&&Se("Missing arguments to if function."),o.length>3&&Se("Too many arguments to if function.");const u=o.map(t);return"("+u[0]+"?"+u[1]+":"+u[2]+")"}}}function zVe(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function QVe(t){t=t||{};const e=t.allowed?ia(t.allowed):{},n=t.forbidden?ia(t.forbidden):{},r=t.constants||ioe,i=(t.functions||soe)(f),s=t.globalvar,o=t.fieldvar,u=ct(s)?s:p=>`${s}["${p}"]`;let a={},l={},c=0;function f(p){if(je(p))return p;const m=x[p.type];return m==null&&Se("Unsupported type: "+p.type),m(p)}const x={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Je(n,m)?Se("Illegal identifier: "+m):Je(r,m)?r[m]:Je(e,m)?m:(a[m]=1,u(m))},MemberExpression:p=>{const m=!p.computed,g=f(p.object);m&&(c+=1);const y=f(p.property);return g===o&&(l[zVe(y)]=1),m&&(c-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Se("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=Je(i,m)&&i[m];return y||Se("Unrecognized function: "+m),ct(y)?y(g):y+"("+g.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function h(p){const m={code:f(p),globals:Object.keys(a),fields:Object.keys(l)};return a={},l={},m}return h.functions=i,h.constants=r,h}function w$(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function GVe(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function WVe(t){let e,n,r;t.length!==2?(e=w$,n=(u,a)=>w$(t(u),a),r=(u,a)=>t(u)-a):(e=t===w$||t===GVe?t:VVe,n=t,r=t);function i(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<0?l=f+1:c=f}while(l<c)}return l}function s(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<=0?l=f+1:c=f}while(l<c)}return l}function o(u,a,l=0,c=u.length){const f=i(u,a,l,c-1);return f>l&&r(u[f-1],a)>-r(u[f],a)?f-1:f}return{left:i,center:o,right:s}}function VVe(){return 0}function YVe(t,...e){t=new oC(t),e=e.map(KVe);e:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue e}return t}function KVe(t){return t instanceof oC?t:new oC(t)}function XVe(...t){const e=new oC;for(const n of t)for(const r of n)e.add(r);return e}const L$="intersect",ooe="union",JVe="vlMulti",ZVe="vlPoint",uoe="or",eYe="and",wa="_vgsid_",uE=Bs(wa),tYe="E",nYe="R",rYe="R-E",iYe="R-LE",sYe="R-RE",MT="index:unit";function aoe(t,e){for(var n=e.fields,r=e.values,i=n.length,s=0,o,u;s<i;++s)if(u=n[s],u.getter=Bs.getter||Bs(u.field),o=u.getter(t),wx(o)&&(o=_i(o)),wx(r[s])&&(r[s]=_i(r[s])),wx(r[s][0])&&(r[s]=r[s].map(_i)),u.type===tYe){if(_e(r[s])?r[s].indexOf(o)<0:o!==r[s])return!1}else if(u.type===nYe){if(!y3(o,r[s]))return!1}else if(u.type===sYe){if(!y3(o,r[s],!0,!1))return!1}else if(u.type===rYe){if(!y3(o,r[s],!1,!1))return!1}else if(u.type===iYe&&!y3(o,r[s],!1,!0))return!1;return!0}function oYe(t,e,n){for(var r=this.context.data[t],i=r?r.values.value:[],s=r?r[MT]&&r[MT].value:void 0,o=n===L$,u=i.length,a=0,l,c,f,x,h;a<u;++a)if(l=i[a],s&&o){if(c=c||{},f=c[x=l.unit]||0,f===-1)continue;if(h=aoe(e,l),c[x]=h?-1:++f,h&&s.size===1)return!0;if(!h&&f===s.get(x).count)return!1}else if(h=aoe(e,l),o^h)return h;return u&&o}const loe=WVe(uE),uYe=loe.left,aYe=loe.right;function lYe(t,e,n){const r=this.context.data[t],i=r?r.values.value:[],s=r?r[MT]&&r[MT].value:void 0,o=n===L$,u=uE(e),a=uYe(i,u);if(a===i.length||uE(i[a])!==u)return!1;if(s&&o){if(s.size===1)return!0;if(aYe(i,u)-a<s.size)return!1}return!0}function cYe(t,e){return t.map(n=>ft(e.fields?{values:e.fields.map(r=>(r.getter||(r.getter=Bs(r.field)))(n.datum))}:{[wa]:uE(n.datum)},e))}function fYe(t,e,n,r){for(var i=this.context.data[t],s=i?i.values.value:[],o={},u={},a={},l,c,f,x,h,p,m,g,y,E,A=s.length,v=0,S,C;v<A;++v)if(l=s[v],x=l.unit,c=l.fields,f=l.values,c&&f){for(S=0,C=c.length;S<C;++S)h=c[S],m=o[h.field]||(o[h.field]={}),g=m[x]||(m[x]=[]),a[h.field]=y=h.type.charAt(0),E=I$[`${y}_union`],m[x]=E(g,Pe(f[S]));n&&(g=u[x]||(u[x]=[]),g.push(Pe(f).reduce((_,b,R)=>(_[c[R].field]=b,_),{})))}else h=wa,p=uE(l),m=o[h]||(o[h]={}),g=m[x]||(m[x]=[]),g.push(p),n&&(g=u[x]||(u[x]=[]),g.push({[wa]:p}));if(e=e||ooe,o[wa]?o[wa]=I$[`${wa}_${e}`](...Object.values(o[wa])):Object.keys(o).forEach(_=>{o[_]=Object.keys(o[_]).map(b=>o[_][b]).reduce((b,R)=>b===void 0?R:I$[`${a[_]}_${e}`](b,R))}),s=Object.keys(u),n&&s.length){const _=r?ZVe:JVe;o[_]=e===ooe?{[uoe]:s.reduce((b,R)=>(b.push(...u[R]),b),[])}:{[eYe]:s.map(b=>({[uoe]:u[b]}))}}return o}var I$={[`${wa}_union`]:XVe,[`${wa}_intersect`]:YVe,E_union:function(t,e){if(!t.length)return e;for(var n=0,r=e.length;n<r;++n)t.indexOf(e[n])<0&&t.push(e[n]);return t},E_intersect:function(t,e){return t.length?t.filter(n=>e.indexOf(n)>=0):e},R_union:function(t,e){var n=_i(e[0]),r=_i(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?(t[0]>n&&(t[0]=n),t[1]<r&&(t[1]=r),t):[n,r]},R_intersect:function(t,e){var n=_i(e[0]),r=_i(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?r<t[0]||t[1]<n?[]:(t[0]<n&&(t[0]=n),t[1]>r&&(t[1]=r),t):[n,r]}};const xYe=":",dYe="@";function $$(t,e,n,r){e[0].type!==vd&&Se("First argument to selection functions must be a string literal.");const i=e[0].value,s=e.length>=2&&St(e).value,o="unit",u=dYe+o,a=xYe+i;s===L$&&!Je(r,u)&&(r[u]=n.getData(i).indataRef(n,o)),Je(r,a)||(r[a]=n.getData(i).tuplesRef())}function coe(t){const e=this.context.data[t];return e?e.values.value:[]}function hYe(t,e,n){const r=this.context.data[t]["index:"+e],i=r?r.value.get(n):void 0;return i&&i.count}function pYe(t,e){const n=this.context.dataflow,r=this.context.data[t],i=r.input;return n.pulse(i,n.changeset().remove(Zo).insert(e)),1}function gYe(t,e,n){if(t){const r=this.context.dataflow,i=t.mark.source;r.pulse(i,r.changeset().encode(t,e))}return n!==void 0?n:t}const aE=t=>function(e,n){return this.context.dataflow.locale()[t](n)(e)},mYe=aE("format"),foe=aE("timeFormat"),yYe=aE("utcFormat"),EYe=aE("timeParse"),AYe=aE("utcParse"),jT=new Date(2e3,0,1);function UT(t,e,n){return!Number.isInteger(t)||!Number.isInteger(e)?"":(jT.setYear(2e3),jT.setMonth(t),jT.setDate(e),foe.call(this,jT,n))}function vYe(t){return UT.call(this,t,1,"%B")}function SYe(t){return UT.call(this,t,1,"%b")}function _Ye(t){return UT.call(this,0,2+t,"%A")}function CYe(t){return UT.call(this,0,2+t,"%a")}const bYe=":",TYe="@",B$="%",xoe="$";function k$(t,e,n,r){e[0].type!==vd&&Se("First argument to data functions must be a string literal.");const i=e[0].value,s=bYe+i;if(!Je(s,r))try{r[s]=n.getData(i).tuplesRef()}catch{}}function RYe(t,e,n,r){e[0].type!==vd&&Se("First argument to indata must be a string literal."),e[1].type!==vd&&Se("Second argument to indata must be a string literal.");const i=e[0].value,s=e[1].value,o=TYe+s;Je(o,r)||(r[o]=n.getData(i).indataRef(n,s))}function ms(t,e,n,r){if(e[0].type===vd)doe(n,r,e[0].value);else for(t in n.scales)doe(n,r,t)}function doe(t,e,n){const r=B$+n;if(!Je(e,r))try{e[r]=t.scaleRef(n)}catch{}}function i0(t,e){if(ct(t))return t;if(je(t)){const n=e.scales[t];return n&&NPe(n.value)?n.value:void 0}}function OYe(t,e,n){e.__bandwidth=i=>i&&i.bandwidth?i.bandwidth():0,n._bandwidth=ms,n._range=ms,n._scale=ms;const r=i=>"_["+(i.type===vd?we(B$+i.value):we(B$)+"+"+t(i))+"]";return{_bandwidth:i=>`this.__bandwidth(${r(i[0])})`,_range:i=>`${r(i[0])}.range()`,_scale:i=>`${r(i[0])}(${t(i[1])})`}}function P$(t,e){return function(n,r,i){if(n){const s=i0(n,(i||this).context);return s&&s.path[t](r)}else return e(r)}}const NYe=P$("area",Wqe),DYe=P$("bounds",Xqe),FYe=P$("centroid",rHe);function wYe(t){const e=this.context.group;let n=!1;if(e)for(;t;){if(t===e){n=!0;break}t=t.mark.group}return n}function M$(t,e,n){try{t[e].apply(t,["EXPRESSION"].concat([].slice.call(n)))}catch(r){t.warn(r)}return n[n.length-1]}function LYe(){return M$(this.context.dataflow,"warn",arguments)}function IYe(){return M$(this.context.dataflow,"info",arguments)}function $Ye(){return M$(this.context.dataflow,"debug",arguments)}function j$(t){const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}function U$(t){const e=bc(t),n=j$(e.r),r=j$(e.g),i=j$(e.b);return .2126*n+.7152*r+.0722*i}function BYe(t,e){const n=U$(t),r=U$(e),i=Math.max(n,r),s=Math.min(n,r);return(i+.05)/(s+.05)}function kYe(){const t=[].slice.call(arguments);return t.unshift({}),ft(...t)}function hoe(t,e){return t===e||t!==t&&e!==e?!0:_e(t)?_e(e)&&t.length===e.length?PYe(t,e):!1:He(t)&&He(e)?poe(t,e):!1}function PYe(t,e){for(let n=0,r=t.length;n<r;++n)if(!hoe(t[n],e[n]))return!1;return!0}function poe(t,e){for(const n in t)if(!hoe(t[n],e[n]))return!1;return!0}function goe(t){return e=>poe(t,e)}function MYe(t,e,n,r,i,s){const o=this.context.dataflow,u=this.context.data[t],a=u.input,l=o.stamp();let c=u.changes,f,x;if(o._trigger===!1||!(a.value.length||e||r))return 0;if((!c||c.stamp<l)&&(u.changes=c=o.changeset(),c.stamp=l,o.runAfter(()=>{u.modified=!0,o.pulse(a,c).run()},!0,1)),n&&(f=n===!0?Zo:_e(n)||rw(n)?n:goe(n),c.remove(f)),e&&c.insert(e),r&&(f=goe(r),a.value.some(f)?c.remove(f):c.insert(r)),i)for(x in s)c.modify(i,x,s[x]);return 1}function jYe(t){const e=t.touches,n=e[0].clientX-e[1].clientX,r=e[0].clientY-e[1].clientY;return Math.sqrt(n*n+r*r)}function UYe(t){const e=t.touches;return Math.atan2(e[0].clientY-e[1].clientY,e[0].clientX-e[1].clientX)}const moe={};function qYe(t,e){const n=moe[e]||(moe[e]=Bs(e));return _e(t)?t.map(n):n(t)}function q$(t){return _e(t)||ArrayBuffer.isView(t)?t:null}function H$(t){return q$(t)||(je(t)?t:null)}function HYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return q$(t).join(...n)}function zYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return H$(t).indexOf(...n)}function QYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return H$(t).lastIndexOf(...n)}function GYe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return H$(t).slice(...n)}function WYe(t,e,n){return ct(n)&&Se("Function argument passed to replace."),String(t).replace(e,n)}function VYe(t){return q$(t).slice().reverse()}function YYe(t,e,n){return b9(t||0,e||0,n||0)}function KYe(t,e){const n=i0(t,(e||this).context);return n&&n.bandwidth?n.bandwidth():0}function XYe(t,e){const n=i0(t,(e||this).context);return n?n.copy():void 0}function JYe(t,e){const n=i0(t,(e||this).context);return n?n.domain():[]}function ZYe(t,e,n){const r=i0(t,(n||this).context);return r?_e(e)?(r.invertRange||r.invert)(e):(r.invert||r.invertExtent)(e):void 0}function eKe(t,e){const n=i0(t,(e||this).context);return n&&n.range?n.range():[]}function tKe(t,e,n){const r=i0(t,(n||this).context);return r?r(e):void 0}function nKe(t,e,n,r,i){t=i0(t,(i||this).context);const s=ZPe(e,n);let o=t.domain(),u=o[0],a=St(o),l=Si;return a-u?l=ite(t,u,a):t=(t.interpolator?Ot("sequential")().interpolator(t.interpolator()):Ot("linear")().interpolate(t.interpolate()).range(t.range())).domain([u=0,a=1]),t.ticks&&(o=t.ticks(+r||15),u!==o[0]&&o.unshift(u),a!==St(o)&&o.push(a)),o.forEach(c=>s.stop(l(c),t(c))),s}function rKe(t,e,n){const r=i0(t,(n||this).context);return function(i){return r?r.path.context(i)(e):""}}function iKe(t){let e=null;return function(n){return n?rb(n,e=e||P9(t)):t}}const yoe=t=>t.data;function Eoe(t,e){const n=coe.call(e,t);return n.root&&n.root.lookup||{}}function sKe(t,e,n){const r=Eoe(t,this),i=r[e],s=r[n];return i&&s?i.path(s).map(yoe):void 0}function oKe(t,e){const n=Eoe(t,this)[e];return n?n.ancestors().map(yoe):void 0}const Aoe=()=>typeof window<"u"&&window||null;function uKe(){const t=Aoe();return t?t.screen:{}}function aKe(){const t=Aoe();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]}function lKe(){const t=this.context.dataflow,e=t.container&&t.container();return e?[e.clientWidth,e.clientHeight]:[void 0,void 0]}function voe(t,e,n){if(!t)return[];const[r,i]=t,s=new nr().set(r[0],r[1],i[0],i[1]),o=n||this.context.dataflow.scenegraph().root;return IUe(o,s,cKe(e))}function cKe(t){let e=null;if(t){const n=Pe(t.marktype),r=Pe(t.markname);e=i=>(!n.length||n.some(s=>i.marktype===s))&&(!r.length||r.some(s=>i.name===s))}return e}function fKe(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;t=Pe(t);const i=t[t.length-1];return i===void 0||Math.sqrt((i[0]-e)**2+(i[1]-n)**2)>r?[...t,[e,n]]:t}function xKe(t){return Pe(t).reduce((e,n,r)=>{let[i,s]=n;return e+=r==0?`M ${i},${s} `:r===t.length-1?" Z":`L ${i},${s} `},"")}function dKe(t,e,n){const{x:r,y:i,mark:s}=n,o=new nr().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[a,l]of e)a<o.x1&&(o.x1=a),a>o.x2&&(o.x2=a),l<o.y1&&(o.y1=l),l>o.y2&&(o.y2=l);return o.translate(r,i),voe([[o.x1,o.y1],[o.x2,o.y2]],t,s).filter(a=>hKe(a.x,a.y,e))}function hKe(t,e,n){let r=0;for(let i=0,s=n.length-1;i<n.length;s=i++){const[o,u]=n[s],[a,l]=n[i];l>e!=u>e&&t<(o-a)*(e-l)/(u-l)+a&&r++}return r&1}const lE={random(){return ql()},cumulativeNormal:cw,cumulativeLogNormal:LJ,cumulativeUniform:kJ,densityNormal:OJ,densityLogNormal:wJ,densityUniform:BJ,quantileNormal:fw,quantileLogNormal:IJ,quantileUniform:PJ,sampleNormal:lw,sampleLogNormal:FJ,sampleUniform:$J,isArray:_e,isBoolean:D2,isDate:wx,isDefined(t){return t!==void 0},isNumber:nn,isObject:He,isRegExp:kFe,isString:je,isTuple:rw,isValid(t){return t!=null&&t===t},toBoolean:zY,toDate(t){return QY(t)},toNumber:_i,toString:GY,indexof:zYe,join:HYe,lastindexof:QYe,replace:WYe,reverse:VYe,slice:GYe,flush:$Fe,lerp:PFe,merge:kYe,pad:qFe,peek:St,pluck:qYe,span:H5,inrange:y3,truncate:zFe,rgb:bc,lab:qC,hcl:HC,hsl:MC,luminance:U$,contrast:BYe,sequence:Ps,format:mYe,utcFormat:yYe,utcParse:AYe,utcOffset:gLe,utcSequence:yLe,timeFormat:foe,timeParse:EYe,timeOffset:pLe,timeSequence:mLe,timeUnitSpecifier:Z9e,monthFormat:vYe,monthAbbrevFormat:SYe,dayFormat:_Ye,dayAbbrevFormat:CYe,quarter:TFe,utcquarter:RFe,week:tLe,utcweek:iLe,dayofyear:eLe,utcdayofyear:rLe,warn:LYe,info:IYe,debug:$Ye,extent(t){return vl(t)},inScope:wYe,intersect:voe,clampRange:OFe,pinchDistance:jYe,pinchAngle:UYe,screen:uKe,containerSize:lKe,windowSize:aKe,bandspace:YYe,setdata:pYe,pathShape:iKe,panLinear:SFe,panLog:_Fe,panPow:CFe,panSymlog:bFe,zoomLinear:PY,zoomLog:MY,zoomPow:zF,zoomSymlog:jY,encode:gYe,modify:MYe,lassoAppend:fKe,lassoPath:xKe,intersectLasso:dKe},pKe=["view","item","group","xy","x","y"],gKe="event.vega.",Soe="this.",z$={},_oe={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${we(xoe+t)}]`,functions:mKe,constants:ioe,visitors:z$},Q$=QVe(_oe);function mKe(t){const e=soe(t);pKe.forEach(n=>e[n]=gKe+n);for(const n in lE)e[n]=Soe+n;return ft(e,OYe(t,lE,z$)),e}function ir(t,e,n){return arguments.length===1?lE[t]:(lE[t]=e,n&&(z$[t]=n),Q$&&(Q$.functions[t]=Soe+t),this)}ir("bandwidth",KYe,ms),ir("copy",XYe,ms),ir("domain",JYe,ms),ir("range",eKe,ms),ir("invert",ZYe,ms),ir("scale",tKe,ms),ir("gradient",nKe,ms),ir("geoArea",NYe,ms),ir("geoBounds",DYe,ms),ir("geoCentroid",FYe,ms),ir("geoShape",rKe,ms),ir("indata",hYe,RYe),ir("data",coe,k$),ir("treePath",sKe,k$),ir("treeAncestors",oKe,k$),ir("vlSelectionTest",oYe,$$),ir("vlSelectionIdTest",lYe,$$),ir("vlSelectionResolve",fYe,$$),ir("vlSelectionTuples",cYe);function La(t,e){const n={};let r;try{t=je(t)?t:we(t)+"",r=roe(t)}catch{Se("Expression parse error: "+t)}r.visit(s=>{if(s.type!==Hse)return;const o=s.callee.name,u=_oe.visitors[o];u&&u(o,s.arguments,e,n)});const i=Q$(r);return i.globals.forEach(s=>{const o=xoe+s;!Je(n,o)&&e.getSignal(s)&&(n[o]=e.signalRef(s))}),{$expr:ft({code:i.code},e.options.ast?{ast:r}:null),$fields:i.fields,$params:n}}function yKe(t){const e=this,n=t.operators||[];return t.background&&(e.background=t.background),t.eventConfig&&(e.eventConfig=t.eventConfig),t.locale&&(e.locale=t.locale),n.forEach(r=>e.parseOperator(r)),n.forEach(r=>e.parseOperatorParameters(r)),(t.streams||[]).forEach(r=>e.parseStream(r)),(t.updates||[]).forEach(r=>e.parseUpdate(r)),e.resolve()}const EKe=ia(["rule"]),Coe=ia(["group","image","rect"]);function AKe(t,e){let n="";return EKe[e]||(t.x2&&(t.x?(Coe[e]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),t.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(Coe[e]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),t.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}function G$(t){return(t+"").toLowerCase()}function vKe(t){return G$(t)==="operator"}function SKe(t){return G$(t)==="collect"}function cE(t,e,n){n.endsWith(";")||(n="return("+n+");");const r=Function(...e.concat(n));return t&&t.functions?r.bind(t.functions):r}function _Ke(t,e,n,r){return`((u = ${t}) < (v = ${e}) || u == null) && v != null ? ${n}
|
|
1468
1468
|
: (u > v || v == null) && u != null ? ${r}
|
|
1469
1469
|
: ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}
|
|
1470
1470
|
: v !== v && u === u ? ${r} : `}var CKe={operator:(t,e)=>cE(t,["_"],e.code),parameter:(t,e)=>cE(t,["datum","_"],e.code),event:(t,e)=>cE(t,["event"],e.code),handler:(t,e)=>{const n=`var datum=event.item&&event.item.datum;return ${e.code};`;return cE(t,["_","event"],n)},encode:(t,e)=>{const{marktype:n,channels:r}=e;let i="var o=item,datum=o.datum,m=0,$;";for(const s in r){const o="o["+we(s)+"]";i+=`$=${r[s].code};if(${o}!==$)${o}=$,m=1;`}return i+=AKe(r,n),i+="return m;",cE(t,["item","_"],i)},codegen:{get(t){const e=`[${t.map(we).join("][")}]`,n=Function("_",`return _${e};`);return n.path=e,n},comparator(t,e){let n;const r=(s,o)=>{const u=e[o];let a,l;return s.path?(a=`a${s.path}`,l=`b${s.path}`):((n=n||{})["f"+o]=s,a=`this.f${o}(a)`,l=`this.f${o}(b)`),_Ke(a,l,-u,u)},i=Function("a","b","var u, v; return "+t.map(r).join("")+"0;");return n?i.bind(n):i}}};function bKe(t){const e=this;vKe(t.type)||!t.type?e.operator(t,t.update?e.operatorExpression(t.update):null):e.transform(t,t.type)}function TKe(t){const e=this;if(t.params){const n=e.get(t.id);n||Se("Invalid operator id: "+t.id),e.dataflow.connect(n,n.parameters(e.parseParameters(t.params),t.react,t.initonly))}}function RKe(t,e){e=e||{};const n=this;for(const r in t){const i=t[r];e[r]=_e(i)?i.map(s=>boe(s,n,e)):boe(i,n,e)}return e}function boe(t,e,n){if(!t||!He(t))return t;for(let r=0,i=Toe.length,s;r<i;++r)if(s=Toe[r],Je(t,s.key))return s.parse(t,e,n);return t}var Toe=[{key:"$ref",parse:OKe},{key:"$key",parse:DKe},{key:"$expr",parse:NKe},{key:"$field",parse:FKe},{key:"$encode",parse:LKe},{key:"$compare",parse:wKe},{key:"$context",parse:IKe},{key:"$subflow",parse:$Ke},{key:"$tupleid",parse:BKe}];function OKe(t,e){return e.get(t.$ref)||Se("Operator not defined: "+t.$ref)}function NKe(t,e,n){t.$params&&e.parseParameters(t.$params,n);const r="e:"+t.$expr.code;return e.fn[r]||(e.fn[r]=$s(e.parameterExpression(t.$expr),t.$fields))}function DKe(t,e){const n="k:"+t.$key+"_"+!!t.$flat;return e.fn[n]||(e.fn[n]=HY(t.$key,t.$flat,e.expr.codegen))}function FKe(t,e){if(!t.$field)return null;const n="f:"+t.$field+"_"+t.$name;return e.fn[n]||(e.fn[n]=Bs(t.$field,t.$name,e.expr.codegen))}function wKe(t,e){const n="c:"+t.$compare+"_"+t.$order,r=Pe(t.$compare).map(i=>i&&i.$tupleid?Ze:i);return e.fn[n]||(e.fn[n]=UY(r,t.$order,e.expr.codegen))}function LKe(t,e){const n=t.$encode,r={};for(const i in n){const s=n[i];r[i]=$s(e.encodeExpression(s.$expr),s.$fields),r[i].output=s.$output}return r}function IKe(t,e){return e}function $Ke(t,e){const n=t.$subflow;return function(r,i,s){const o=e.fork().parse(n),u=o.get(n.operators[0].id),a=o.signals.parent;return a&&a.set(s),u.detachSubflow=()=>e.detach(o),u}}function BKe(){return Ze}function kKe(t){var e=this,n=t.filter!=null?e.eventExpression(t.filter):void 0,r=t.stream!=null?e.get(t.stream):void 0,i;t.source?r=e.events(t.source,t.type,n):t.merge&&(i=t.merge.map(s=>e.get(s)),r=i[0].merge.apply(i[0],i.slice(1))),t.between&&(i=t.between.map(s=>e.get(s)),r=r.between(i[0],i[1])),t.filter&&(r=r.filter(n)),t.throttle!=null&&(r=r.throttle(+t.throttle)),t.debounce!=null&&(r=r.debounce(+t.debounce)),r==null&&Se("Invalid stream definition: "+JSON.stringify(t)),t.consume&&r.consume(!0),e.stream(t,r)}function PKe(t){var e=this,n=He(n=t.source)?n.$ref:n,r=e.get(n),i=null,s=t.update,o=void 0;r||Se("Source not defined: "+t.source),i=t.target&&t.target.$expr?e.eventExpression(t.target.$expr):e.get(t.target),s&&s.$expr&&(s.$params&&(o=e.parseParameters(s.$params)),s=e.handlerExpression(s.$expr)),e.update(t,r,i,s,o)}const MKe={skip:!0};function jKe(t){var e=this,n={};if(t.signals){var r=n.signals={};Object.keys(e.signals).forEach(s=>{const o=e.signals[s];t.signals(s,o)&&(r[s]=o.value)})}if(t.data){var i=n.data={};Object.keys(e.data).forEach(s=>{const o=e.data[s];t.data(s,o)&&(i[s]=o.input.value)})}return e.subcontext&&t.recurse!==!1&&(n.subcontext=e.subcontext.map(s=>s.getState(t))),n}function UKe(t){var e=this,n=e.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach(s=>{n.update(e.signals[s],i[s],MKe)}),Object.keys(r||{}).forEach(s=>{n.pulse(e.data[s].input,n.changeset().remove(Zo).insert(r[s]))}),(t.subcontext||[]).forEach((s,o)=>{const u=e.subcontext[o];u&&u.setState(s)})}function qKe(t,e,n,r){return new Roe(t,e,n,r)}function Roe(t,e,n,r){this.dataflow=t,this.transforms=e,this.events=t.events.bind(t),this.expr=r||CKe,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function Ooe(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.events=t.events,this.expr=t.expr,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}Roe.prototype=Ooe.prototype={fork(){const t=new Ooe(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter(n=>n!==t);const e=Object.keys(t.nodes);for(const n of e)t.nodes[n]._targets=null;for(const n of e)t.nodes[n].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,e){return this.nodes[t]=e},add(t,e){const n=this,r=n.dataflow,i=t.value;if(n.set(t.id,e),SKe(t.type)&&i&&(i.$ingest?r.ingest(e,i.$ingest,i.$format):i.$request?r.preload(e,i.$request,i.$format):r.pulse(e,r.changeset().insert(i))),t.root&&(n.root=e),t.parent){let s=n.get(t.parent.$ref);s?(r.connect(s,[e]),e.targets().add(s)):(n.unresolved=n.unresolved||[]).push(()=>{s=n.get(t.parent.$ref),r.connect(s,[e]),e.targets().add(s)})}if(t.signal&&(n.signals[t.signal]=e),t.scale&&(n.scales[t.scale]=e),t.data)for(const s in t.data){const o=n.data[s]||(n.data[s]={});t.data[s].forEach(u=>o[u]=e)}},resolve(){return(this.unresolved||[]).forEach(t=>t()),delete this.unresolved,this},operator(t,e){this.add(t,this.dataflow.add(t.value,e))},transform(t,e){this.add(t,this.dataflow.add(this.transforms[G$(e)]))},stream(t,e){this.set(t.id,e)},update(t,e,n,r,i){this.dataflow.on(e,n,r,i,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:yKe,parseOperator:bKe,parseOperatorParameters:TKe,parseParameters:RKe,parseStream:kKe,parseUpdate:PKe,getState:jKe,setState:UKe};function HKe(t){const e=t.container();e&&(e.setAttribute("role","graphics-document"),e.setAttribute("aria-roleDescription","visualization"),Noe(e,t.description()))}function Noe(t,e){t&&(e==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",e))}function zKe(t){t.add(null,e=>(t._background=e.bg,t._resize=1,e.bg),{bg:t._signals.background})}const W$="default";function QKe(t){const e=t._signals.cursor||(t._signals.cursor=t.add({user:W$,item:null}));t.on(t.events("view","mousemove"),e,(n,r)=>{const i=e.value,s=i?je(i)?i:i.user:W$,o=r.item&&r.item.cursor||null;return i&&s===i.user&&o==i.item?i:{user:s,item:o}}),t.add(null,function(n){let r=n.cursor,i=this.value;return je(r)||(i=r.item,r=r.user),V$(t,r&&r!==W$?r:i||r),i},{cursor:e})}function V$(t,e){const n=t.globalCursor()?typeof document<"u"&&document.body:t.container();if(n)return e==null?n.style.removeProperty("cursor"):n.style.cursor=e}function qT(t,e){var n=t._runtime.data;return Je(n,e)||Se("Unrecognized data set: "+e),n[e]}function GKe(t,e){return arguments.length<2?qT(this,t).values.value:HT.call(this,t,G2().remove(Zo).insert(e))}function HT(t,e){dJ(e)||Se("Second argument to changes must be a changeset.");const n=qT(this,t);return n.modified=!0,this.pulse(n.input,e)}function WKe(t,e){return HT.call(this,t,G2().insert(e))}function VKe(t,e){return HT.call(this,t,G2().remove(e))}function Doe(t){var e=t.padding();return Math.max(0,t._viewWidth+e.left+e.right)}function Foe(t){var e=t.padding();return Math.max(0,t._viewHeight+e.top+e.bottom)}function zT(t){var e=t.padding(),n=t._origin;return[e.left+n[0],e.top+n[1]]}function YKe(t){var e=zT(t),n=Doe(t),r=Foe(t);t._renderer.background(t.background()),t._renderer.resize(n,r,e),t._handler.origin(e),t._resizeListeners.forEach(i=>{try{i(n,r)}catch(s){t.error(s)}})}function KKe(t,e,n){var r=t._renderer,i=r&&r.canvas(),s,o,u;return i&&(u=zT(t),o=e.changedTouches?e.changedTouches[0]:e,s=xL(o,i),s[0]-=u[0],s[1]-=u[1]),e.dataflow=t,e.item=n,e.vega=XKe(t,n,s),e}function XKe(t,e,n){const r=e?e.mark.marktype==="group"?e:e.mark.group:null;function i(o){var u=r,a;if(o){for(a=e;a;a=a.mark.group)if(a.mark.name===o){u=a;break}}return u&&u.mark&&u.mark.interactive?u:{}}function s(o){if(!o)return n;je(o)&&(o=i(o));const u=n.slice();for(;o;)u[0]-=o.x||0,u[1]-=o.y||0,o=o.mark&&o.mark.group;return u}return{view:Ci(t),item:Ci(e||{}),group:i,xy:s,x:o=>s(o)[0],y:o=>s(o)[1]}}const woe="view",JKe="timer",ZKe="window",eXe={trap:!1};function tXe(t){const e=ft({defaults:{}},t),n=(r,i)=>{i.forEach(s=>{_e(r[s])&&(r[s]=ia(r[s]))})};return n(e.defaults,["prevent","allow"]),n(e,["view","window","selector"]),e}function Loe(t,e,n,r){t._eventListeners.push({type:n,sources:Pe(e),handler:r})}function nXe(t,e){var n=t._eventConfig.defaults,r=n.prevent,i=n.allow;return r===!1||i===!0?!1:r===!0||i===!1?!0:r?r[e]:i?!i[e]:t.preventDefault()}function QT(t,e,n){const r=t._eventConfig&&t._eventConfig[e];return r===!1||He(r)&&!r[n]?(t.warn(`Blocked ${e} ${n} event listener.`),!1):!0}function rXe(t,e,n){var r=this,i=new ow(n),s=function(l,c){r.runAsync(null,()=>{t===woe&&nXe(r,e)&&l.preventDefault(),i.receive(KKe(r,l,c))})},o;if(t===JKe)QT(r,"timer",e)&&r.timer(s,e);else if(t===woe)QT(r,"view",e)&&r.addEventListener(e,s,eXe);else if(t===ZKe?QT(r,"window",e)&&typeof window<"u"&&(o=[window]):typeof document<"u"&&QT(r,"selector",e)&&(o=Array.from(document.querySelectorAll(t))),!o)r.warn("Can not resolve event source: "+t);else{for(var u=0,a=o.length;u<a;++u)o[u].addEventListener(e,s);Loe(r,o,e,s)}return i}function Ioe(t){return t.item}function $oe(t){return t.item.mark.source}function Boe(t){return function(e,n){return n.vega.view().changeset().encode(n.item,t)}}function iXe(t,e){return t=[t||"hover"],e=[e||"update",t[0]],this.on(this.events("view","mouseover",Ioe),$oe,Boe(t)),this.on(this.events("view","mouseout",Ioe),$oe,Boe(e)),this}function sXe(){var t=this._tooltip,e=this._timers,n=this._eventListeners,r,i,s;for(r=e.length;--r>=0;)e[r].stop();for(r=n.length;--r>=0;)for(s=n[r],i=s.sources.length;--i>=0;)s.sources[i].removeEventListener(s.type,s.handler);return t&&t.call(this,this._handler,null,null,null),this}function zs(t,e,n){const r=document.createElement(t);for(const i in e)r.setAttribute(i,e[i]);return n!=null&&(r.textContent=n),r}const oXe="vega-bind",uXe="vega-bind-name",aXe="vega-bind-radio";function lXe(t,e,n){if(!e)return;const r=n.param;let i=n.state;return i||(i=n.state={elements:null,active:!1,set:null,update:o=>{o!=t.signal(r.signal)&&t.runAsync(null,()=>{i.source=!0,t.signal(r.signal,o)})}},r.debounce&&(i.update=qY(r.debounce,i.update))),(r.input==null&&r.element?cXe:xXe)(i,e,r,t),i.active||(t.on(t._signals[r.signal],null,()=>{i.source?i.source=!1:i.set(t.signal(r.signal))}),i.active=!0),i}function cXe(t,e,n,r){const i=n.event||"input",s=()=>t.update(e.value);r.signal(n.signal,e.value),e.addEventListener(i,s),Loe(r,e,i,s),t.set=o=>{e.value=o,e.dispatchEvent(fXe(i))}}function fXe(t){return typeof Event<"u"?new Event(t):{type:t}}function xXe(t,e,n,r){const i=r.signal(n.signal),s=zs("div",{class:oXe}),o=n.input==="radio"?s:s.appendChild(zs("label"));o.appendChild(zs("span",{class:uXe},n.name||n.signal)),e.appendChild(s);let u=dXe;switch(n.input){case"checkbox":u=hXe;break;case"select":u=pXe;break;case"radio":u=gXe;break;case"range":u=mXe;break}u(t,o,n,i)}function dXe(t,e,n,r){const i=zs("input");for(const s in n)s!=="signal"&&s!=="element"&&i.setAttribute(s==="input"?"type":s,n[s]);i.setAttribute("name",n.signal),i.value=r,e.appendChild(i),i.addEventListener("input",()=>t.update(i.value)),t.elements=[i],t.set=s=>i.value=s}function hXe(t,e,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const s=zs("input",i);e.appendChild(s),s.addEventListener("change",()=>t.update(s.checked)),t.elements=[s],t.set=o=>s.checked=!!o||null}function pXe(t,e,n,r){const i=zs("select",{name:n.signal}),s=n.labels||[];n.options.forEach((o,u)=>{const a={value:o};GT(o,r)&&(a.selected=!0),i.appendChild(zs("option",a,(s[u]||o)+""))}),e.appendChild(i),i.addEventListener("change",()=>{t.update(n.options[i.selectedIndex])}),t.elements=[i],t.set=o=>{for(let u=0,a=n.options.length;u<a;++u)if(GT(n.options[u],o)){i.selectedIndex=u;return}}}function gXe(t,e,n,r){const i=zs("span",{class:aXe}),s=n.labels||[];e.appendChild(i),t.elements=n.options.map((o,u)=>{const a={type:"radio",name:n.signal,value:o};GT(o,r)&&(a.checked=!0);const l=zs("input",a);l.addEventListener("change",()=>t.update(o));const c=zs("label",{},(s[u]||o)+"");return c.prepend(l),i.appendChild(c),l}),t.set=o=>{const u=t.elements,a=u.length;for(let l=0;l<a;++l)GT(u[l].value,o)&&(u[l].checked=!0)}}function mXe(t,e,n,r){r=r!==void 0?r:(+n.max+ +n.min)/2;const i=n.max!=null?n.max:Math.max(100,+r)||100,s=n.min||Math.min(0,i,+r)||0,o=n.step||gc(s,i,100),u=zs("input",{type:"range",name:n.signal,min:s,max:i,step:o});u.value=r;const a=zs("span",{},+r);e.appendChild(u),e.appendChild(a);const l=()=>{a.textContent=u.value,t.update(+u.value)};u.addEventListener("input",l),u.addEventListener("change",l),t.elements=[u],t.set=c=>{u.value=c,a.textContent=c}}function GT(t,e){return t===e||t+""==e+""}function koe(t,e,n,r,i,s){return e=e||new r(t.loader()),e.initialize(n,Doe(t),Foe(t),zT(t),i,s).background(t.background())}function Y$(t,e){return e?function(){try{e.apply(this,arguments)}catch(n){t.error(n)}}:null}function yXe(t,e,n,r){const i=new r(t.loader(),Y$(t,t.tooltip())).scene(t.scenegraph().root).initialize(n,zT(t),t);return e&&e.handlers().forEach(s=>{i.on(s.type,s.handler)}),i}function EXe(t,e){const n=this,r=n._renderType,i=n._eventConfig.bind,s=_L(r);t=n._el=t?K$(n,t,!0):null,HKe(n),s||n.error("Unrecognized renderer type: "+r);const o=s.handler||bb,u=t?s.renderer:s.headless;return n._renderer=u?koe(n,n._renderer,t,u):null,n._handler=yXe(n,n._handler,t,o),n._redraw=!0,t&&i!=="none"&&(e=e?n._elBind=K$(n,e,!0):t.appendChild(zs("form",{class:"vega-bindings"})),n._bind.forEach(a=>{a.param.element&&i!=="container"&&(a.element=K$(n,a.param.element,!!a.param.input))}),n._bind.forEach(a=>{lXe(n,a.element||e,a)})),n}function K$(t,e,n){if(typeof e=="string")if(typeof document<"u"){if(e=document.querySelector(e),!e)return t.error("Signal bind element not found: "+e),null}else return t.error("DOM document instance not found."),null;if(e&&n)try{e.textContent=""}catch(r){e=null,t.error(r)}return e}const fE=t=>+t||0,AXe=t=>({top:t,bottom:t,left:t,right:t});function Poe(t){return He(t)?{top:fE(t.top),bottom:fE(t.bottom),left:fE(t.left),right:fE(t.right)}:AXe(fE(t))}async function X$(t,e,n,r){const i=_L(e),s=i&&i.headless;return s||Se("Unrecognized renderer type: "+e),await t.runAsync(),koe(t,null,null,s,n,r).renderAsync(t._scenegraph.root)}async function vXe(t,e){t!==dd.Canvas&&t!==dd.SVG&&t!==dd.PNG&&Se("Unrecognized image type: "+t);const n=await X$(this,t,e);return t===dd.SVG?SXe(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function SXe(t,e){const n=new Blob([t],{type:e});return window.URL.createObjectURL(n)}async function _Xe(t,e){return(await X$(this,dd.Canvas,t,e)).canvas()}async function CXe(t){return(await X$(this,dd.SVG,t)).svg()}function bXe(t,e,n){return qKe(t,V3,lE,n).parse(e)}function TXe(t){var e=this._runtime.scales;return Je(e,t)||Se("Unrecognized scale or projection: "+t),e[t].value}var Moe="width",joe="height",J$="padding",Uoe={skip:!0};function qoe(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===J$?r.left+r.right:0)}function Hoe(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===J$?r.top+r.bottom:0)}function RXe(t){var e=t._signals,n=e[Moe],r=e[joe],i=e[J$];function s(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,u=>{t._width=u.size,t._viewWidth=qoe(t,u.size),s()},{size:n}),t._resizeHeight=t.add(null,u=>{t._height=u.size,t._viewHeight=Hoe(t,u.size),s()},{size:r});const o=t.add(null,s,{pad:i});t._resizeWidth.rank=n.rank+1,t._resizeHeight.rank=r.rank+1,o.rank=i.rank+1}function OXe(t,e,n,r,i,s){this.runAfter(o=>{let u=0;o._autosize=0,o.width()!==n&&(u=1,o.signal(Moe,n,Uoe),o._resizeWidth.skip(!0)),o.height()!==r&&(u=1,o.signal(joe,r,Uoe),o._resizeHeight.skip(!0)),o._viewWidth!==t&&(o._resize=1,o._viewWidth=t),o._viewHeight!==e&&(o._resize=1,o._viewHeight=e),(o._origin[0]!==i[0]||o._origin[1]!==i[1])&&(o._resize=1,o._origin=i),u&&o.run("enter"),s&&o.runAfter(a=>a.resize())},!1,1)}function NXe(t){return this._runtime.getState(t||{data:DXe,signals:FXe,recurse:!0})}function DXe(t,e){return e.modified&&_e(e.input.value)&&t.indexOf("_:vega:_")}function FXe(t,e){return!(t==="parent"||e instanceof V3.proxy)}function wXe(t){return this.runAsync(null,e=>{e._trigger=!1,e._runtime.setState(t)},e=>{e._trigger=!0}),this}function LXe(t,e){function n(r){t({timestamp:Date.now(),elapsed:r})}this._timers.push(iQe(n,e))}function IXe(t,e,n,r){const i=t.element();i&&i.setAttribute("title",$Xe(r))}function $Xe(t){return t==null?"":_e(t)?zoe(t):He(t)&&!wx(t)?BXe(t):t+""}function BXe(t){return Object.keys(t).map(e=>{const n=t[e];return e+": "+(_e(n)?zoe(n):Qoe(n))}).join(`
|
|
1471
|
-
`)}function zoe(t){return"["+t.map(Qoe).join(", ")+"]"}function Qoe(t){return _e(t)?"[…]":He(t)&&!wx(t)?"{…}":t}function Z$(t,e){const n=this;if(e=e||{},G3.call(n),e.loader&&n.loader(e.loader),e.logger&&n.logger(e.logger),e.logLevel!=null&&n.logLevel(e.logLevel),e.locale||t.locale){const s=ft({},t.locale,e.locale);n.locale(rJ(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||dd.Canvas,n._scenegraph=new ene;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||IXe,n._redraw=!0,n._handler=new bb().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=tXe(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=bXe(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ft({},s)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=qoe(n,n._width),n._viewHeight=Hoe(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,RXe(n),zKe(n),QKe(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function WT(t,e){return Je(t._signals,e)?t._signals[e]:Se("Unrecognized signal name: "+we(e))}function Goe(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function Woe(t,e,n,r){let i=Goe(n,r);return i||(i=Y$(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function Voe(t,e,n){const r=Goe(e,n);return r&&e._targets.remove(r),t}Fe(Z$,G3,{async evaluate(t,e,n){if(await G3.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,YKe(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&vC(this,n),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=t!=null?t+"":null;return e!==this._desc&&Noe(this._el,this._desc=e),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,e,n){const r=WT(this,t);return arguments.length===1?r.value:this.update(r,e,n)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",Poe(t)):Poe(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(_L(t)||Se("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(G3.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(WT(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:OXe,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Y$(this,e),r.raw=e),this._handler.on(t,r),this},removeEventListener(t,e){for(var n=this._handler.handlers(t),r=n.length,i,s;--r>=0;)if(s=n[r].type,i=n[r].handler,t===s&&(e===i||e===i.raw)){this._handler.off(s,i);break}return this},addResizeListener(t){const e=this._resizeListeners;return e.indexOf(t)<0&&e.push(t),this},removeResizeListener(t){var e=this._resizeListeners,n=e.indexOf(t);return n>=0&&e.splice(n,1),this},addSignalListener(t,e){return Woe(this,t,WT(this,t),e)},removeSignalListener(t,e){return Voe(this,WT(this,t),e)},addDataListener(t,e){return Woe(this,t,qT(this,t).values,e)},removeDataListener(t,e){return Voe(this,qT(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=V$(this,null);this._globalCursor=!!t,e&&V$(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:LXe,events:rXe,finalize:sXe,hover:iXe,data:GKe,change:HT,insert:WKe,remove:VKe,scale:TXe,initialize:EXe,toImageURL:vXe,toCanvas:_Xe,toSVG:CXe,getState:NXe,setState:wXe});const kXe="view",VT="[",YT="]",Yoe="{",Koe="}",PXe=":",Xoe=",",MXe="@",jXe=">",UXe=/[[\]{}]/,qXe={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let Joe,Zoe;function bd(t,e,n){return Joe=e||kXe,Zoe=n||qXe,eue(t.trim()).map(eB)}function HXe(t){return Zoe[t]}function xE(t,e,n,r,i){const s=t.length;let o=0,u;for(;e<s;++e){if(u=t[e],!o&&u===n)return e;i&&i.indexOf(u)>=0?--o:r&&r.indexOf(u)>=0&&++o}return e}function eue(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=xE(t,i,Xoe,VT+Yoe,YT+Koe),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function eB(t){return t[0]==="["?zXe(t):QXe(t)}function zXe(t){const e=t.length;let n=1,r;if(n=xE(t,n,YT,VT,YT),n===e)throw"Empty between selector: "+t;if(r=eue(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==jXe)throw"Expected '>' after between selector: "+t;r=r.map(eB);const i=eB(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function QXe(t){const e={source:Joe},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===Koe){if(u=t.lastIndexOf(Yoe),u>=0){try{r=GXe(t.substring(u+1,o-1))}catch{throw"Invalid throttle specification: "+t}t=t.slice(0,u).trim(),o=t.length}else throw"Unmatched right brace: "+t;u=0}if(!o)throw t;if(t[0]===MXe&&(i=++u),a=xE(t,u,PXe),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=xE(t,u,VT),u===o)n.push(t.substring(s,o).trim());else if(n.push(t.substring(s,u).trim()),l=[],s=++u,s===o)throw"Unmatched left bracket: "+t;for(;u<o;){if(u=xE(t,u,YT),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==VT)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||UXe.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):HXe(n[0])?e.marktype=n[0]:e.source=n[0]):e.type=n[0],e.type.slice(-1)==="!"&&(e.consume=!0,e.type=e.type.slice(0,-1)),l!=null&&(e.filter=l),r[0]&&(e.throttle=r[0]),r[1]&&(e.debounce=r[1]),e}function GXe(t){const e=t.split(Xoe);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function WXe(t){return He(t)?t:{type:t||"pad"}}const dE=t=>+t||0,VXe=t=>({top:t,bottom:t,left:t,right:t});function YXe(t){return He(t)?t.signal?t:{top:dE(t.top),bottom:dE(t.bottom),left:dE(t.left),right:dE(t.right)}:VXe(dE(t))}const Sr=t=>He(t)&&!_e(t)?ft({},t):{value:t};function tue(t,e,n,r){return n!=null?(He(n)&&!_e(n)||_e(n)&&n.length&&He(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Pr(t,e,n){for(const r in e)tue(t,r,e[r]);for(const r in n)tue(t,r,n[r],"update")}function b1(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ft(t[r]||{},e[r]));return t}function T1(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const tB="mark",nB="frame",rB="scope",KXe="axis",XXe="axis-domain",JXe="axis-grid",ZXe="axis-label",eJe="axis-tick",tJe="axis-title",nJe="legend",rJe="legend-band",iJe="legend-entry",sJe="legend-gradient",nue="legend-label",oJe="legend-symbol",uJe="legend-title",aJe="title",lJe="title-text",cJe="title-subtitle";function fJe(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!T1(a,t)&&iB(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===nB?i.group:n===tB?ft({},i.mark,i[e]):null;for(a in c)l=T1(a,t)||(a==="fill"||a==="stroke")&&(T1("fill",t)||T1("stroke",t)),l||iB(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)T1(h,t)||iB(s,h,x[h])}),t=ft({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ft(o,t.enter),u&&(t.update=ft(u,t.update)),t}function iB(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const rue=t=>je(t)?we(t):t.signal?`(${t.signal})`:iue(t);function KT(t){if(t.gradient!=null)return dJe(t);let e=t.signal?`(${t.signal})`:t.color?xJe(t.color):t.field!=null?iue(t.field):t.value!==void 0?we(t.value):void 0;return t.scale!=null&&(e=hJe(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${JT(t.exponent)})`),t.mult!=null&&(e+=`*${JT(t.mult)}`),t.offset!=null&&(e+=`+${JT(t.offset)}`),t.round&&(e=`round(${e})`),e}const XT=(t,e,n,r)=>`(${t}(${[e,n,r].map(KT).join(",")})+'')`;function xJe(t){return t.c?XT("hcl",t.h,t.c,t.l):t.h||t.s?XT("hsl",t.h,t.s,t.l):t.l||t.a?XT("lab",t.l,t.a,t.b):t.r||t.g||t.b?XT("rgb",t.r,t.g,t.b):null}function dJe(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:we(n));for(;e.length&&St(e)==null;)e.pop();return e.unshift(rue(t.gradient)),`gradient(${e.join(",")})`}function JT(t){return He(t)?"("+KT(t)+")":t}function iue(t){return sue(He(t)?t:{datum:t})}function sue(t){let e,n,r;if(t.signal)e="datum",r=t.signal;else if(t.group||t.parent){for(n=Math.max(1,t.level||1),e="item";n-- >0;)e+=".mark.group";t.parent?(r=t.parent,e+=".datum"):r=t.group}else t.datum?(e="datum",r=t.datum):Se("Invalid field reference: "+we(t));return t.signal||(r=je(r)?Al(r).map(we).join("]["):sue(r)),e+"["+r+"]"}function hJe(t,e){const n=rue(t.scale);return t.range!=null?e=`lerp(_range(${n}), ${+t.range})`:(e!==void 0&&(e=`_scale(${n}, ${e})`),t.band&&(e=(e?e+"+":"")+`_bandwidth(${n})`+(+t.band==1?"":"*"+JT(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function pJe(t){let e="";return t.forEach(n=>{const r=KT(n);e+=n.test?`(${n.test})?${r}:`:r}),St(e)===":"&&(e+="null"),e}function oue(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=fJe(t,e,n,r,i.config);for(const u in t)o[u]=gJe(t[u],e,s,i);return s}function gJe(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=yJe(mJe(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function mJe(t){return _e(t)?pJe(t):KT(t)}function yJe(t,e,n,r){const i=La(t,e);return i.$fields.forEach(s=>r[s]=1),ft(n,i.$params),i.$expr}const EJe="outer",AJe=["value","update","init","react","bind"];function uue(t,e){Se(t+' for "outer" push: '+we(e))}function aue(t,e){const n=t.name;if(t.push===EJe)e.signals[n]||uue("No prior signal definition",n),AJe.forEach(r=>{t[r]!==void 0&&uue("Invalid property ",r)});else{const r=e.addSignal(n,t.value);t.react===!1&&(r.react=!1),t.bind&&e.addBinding(n,t.bind)}}function sB(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function ZT(t,e,n,r){return new sB(t,e,n,r)}function e6(t,e){return ZT("operator",t,e)}function Xe(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function hE(t,e){return e?{$field:t,$name:e}:{$field:t}}const oB=hE("key");function lue(t,e){return{$compare:t,$order:e}}function vJe(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const SJe="ascending",_Je="descending";function CJe(t){return He(t)?(t.order===_Je?"-":"+")+t6(t.op,t.field):""}function t6(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const uB="scope",aB="view";function sr(t){return t&&t.signal}function bJe(t){return t&&t.expr}function n6(t){if(sr(t))return!0;if(He(t)){for(const e in t)if(n6(t[e]))return!0}return!1}function du(t,e){return t??e}function Td(t){return t&&t.signal||t}const cue="timer";function pE(t,e){return(t.merge?RJe:t.stream?OJe:t.type?NJe:Se("Invalid stream specification: "+we(t)))(t,e)}function TJe(t){return t===uB?aB:t||aB}function RJe(t,e){const n=t.merge.map(i=>pE(i,e)),r=lB({merge:n},t,e);return e.addStream(r).id}function OJe(t,e){const n=pE(t.stream,e),r=lB({stream:n},t,e);return e.addStream(r).id}function NJe(t,e){let n;t.type===cue?(n=e.event(cue,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(TJe(t.source),t.type);const r=lB({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function lB(t,e,n){let r=e.between;return r&&(r.length!==2&&Se('Stream "between" parameter must have 2 entries: '+we(e)),t.between=[pE(r[0],n),pE(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(DJe(e.marktype,e.markname,e.markrole)),e.source===uB&&r.push("inScope(event.item)"),r.length&&(t.filter=La("("+r.join(")&&(")+")",n).$expr),(r=e.throttle)!=null&&(t.throttle=+r),(r=e.debounce)!=null&&(t.debounce=+r),e.consume&&(t.consume=!0),t}function DJe(t,e,n){const r="event.item";return r+(t&&t!=="*"?"&&"+r+".mark.marktype==='"+t+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(e?"&&"+r+".mark.name==='"+e+"'":"")}const FJe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function wJe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||Se("Signal update missing events specification."),je(s)&&(s=bd(s,e.isSubscope()?uB:aB)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[IJe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&Se("Signal encode and update are mutually exclusive."),o="encode(item(),"+we(r)+")"),i.update=je(o)?La(o,e):o.expr!=null?La(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:FJe,$params:{$value:e.signalRef(o.signal)}}:Se("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ft(LJe(a,e),i)))}function LJe(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):pE(t,e)}}function IJe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function $Je(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?Se("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=La(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>wJe(i,e,n.id))}const Ut=t=>(e,n,r)=>ZT(t,n,e||void 0,r),fue=Ut("aggregate"),BJe=Ut("axisticks"),xue=Ut("bound"),hu=Ut("collect"),due=Ut("compare"),kJe=Ut("datajoin"),hue=Ut("encode"),PJe=Ut("expression"),MJe=Ut("facet"),jJe=Ut("field"),UJe=Ut("key"),qJe=Ut("legendentries"),HJe=Ut("load"),zJe=Ut("mark"),QJe=Ut("multiextent"),GJe=Ut("multivalues"),WJe=Ut("overlap"),VJe=Ut("params"),pue=Ut("prefacet"),YJe=Ut("projection"),KJe=Ut("proxy"),XJe=Ut("relay"),gue=Ut("render"),JJe=Ut("scale"),Rd=Ut("sieve"),ZJe=Ut("sortitems"),mue=Ut("viewlayout"),eZe=Ut("values");let tZe=0;const yue={min:"min",max:"max",count:"sum"};function nZe(t,e){const n=t.type||"linear";ete(n)||Se("Unrecognized scale type: "+we(n)),e.addScale(t.name,{type:n,domain:void 0})}function rZe(t,e){const n=e.getScale(t.name).params;let r;n.domain=Eue(t.domain,t,e),t.range!=null&&(n.range=vue(t,e,n)),t.interpolate!=null&&dZe(t.interpolate,n),t.nice!=null&&(n.nice=xZe(t.nice)),t.bins!=null&&(n.bins=fZe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=To(t[r],e))}function To(t,e){return He(t)?t.signal?e.signalRef(t.signal):Se("Unsupported object: "+we(t)):t}function r6(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>To(n,e))}function i6(t){Se("Can not find data set: "+we(t))}function Eue(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&Se("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?iZe:t.fields?oZe:sZe)(t,e,n)}function iZe(t,e,n){return t.map(r=>To(r,n))}function sZe(t,e,n){const r=n.getData(t.data);return r||i6(t.data),r1(e.type)?r.valuesRef(n,t.field,Aue(t.sort,!1)):rte(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function oZe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?uZe(o,n):o,s.push(o),s),[]);return(r1(e.type)?aZe:rte(e.type)?lZe:cZe)(t,n,i)}function uZe(t,e){const n="_:vega:_"+tZe++,r=hu({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+we(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,Rd({})]),{data:n,field:"data"}}function aZe(t,e,n){const r=Aue(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||i6(l.data),c.countsRef(e,l.field,r)}),u={groupby:oB,pulse:o};r&&(i=r.op||"count",s=r.field?t6(i,r.field):"count",u.ops=[yue[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(fue(u));const a=e.add(hu({pulse:Xe(i)}));return s=e.add(eZe({field:oB,sort:e.sortRef(r),pulse:Xe(a)})),Xe(s)}function Aue(t,e){return t&&(!t.field&&!t.op?He(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?Se("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!yue[t.op]&&Se("Multiple domain scales can not be sorted using "+t.op)),t}function lZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||i6(i.data),s.domainRef(e,i.field)});return Xe(e.add(GJe({values:r})))}function cZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||i6(i.data),s.extentRef(e,i.field)});return Xe(e.add(QJe({extents:r})))}function fZe(t,e){return t.signal||_e(t)?r6(t,e):e.objectProperty(t)}function xZe(t){return He(t)?{interval:To(t.interval),step:To(t.step)}:To(t)}function dZe(t,e){e.interpolate=To(t.type||t),t.gamma!=null&&(e.interpolateGamma=To(t.gamma))}function vue(t,e,n){const r=e.config.range;let i=t.range;if(i.signal)return e.signalRef(i.signal);if(je(i)){if(r&&Je(r,i))return t=ft({},t,{range:r[i]}),vue(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=r1(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:Se("Unrecognized scale range value: "+we(i))}else if(i.scheme){n.scheme=_e(i.scheme)?r6(i.scheme,e):To(i.scheme,e),i.extent&&(n.schemeExtent=r6(i.extent,e)),i.count&&(n.schemeCount=To(i.count,e));return}else if(i.step){n.rangeStep=To(i.step,e);return}else{if(r1(t.type)&&!_e(i))return Eue(i,t,e);_e(i)||Se("Unsupported range type: "+we(i))}return i.map(s=>(_e(s)?r6:To)(s,e))}function hZe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=cB(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=cB(n[i],i,e));e.addProjection(t.name,r)}function cB(t,e,n){return _e(t)?t.map(r=>cB(r,e,n)):He(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:Se("Unsupported parameter object: "+we(t)):t}const pu="top",R1="left",O1="right",Hc="bottom",Sue="center",pZe="vertical",gZe="start",mZe="middle",yZe="end",fB="index",xB="label",EZe="offset",N1="perc",AZe="perc2",Ro="value",gE="guide-label",dB="guide-title",vZe="group-title",SZe="group-subtitle",_ue="symbol",s6="gradient",hB="discrete",pB="size",gB=[pB,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],mE={name:1,style:1,interactive:1},bt={value:0},Oo={value:1},o6="group",Cue="rect",mB="rule",_Ze="symbol",Od="text";function yE(t){return t.type=o6,t.interactive=t.interactive||!1,t}function ys(t,e){const n=(r,i)=>du(t[r],du(e[r],i));return n.isVertical=r=>pZe===du(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>du(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>du(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>du(t.columns,du(e.columns,+n.isVertical(!0))),n}function bue(t,e){const n=e&&(e.update&&e.update[t]||e.enter&&e.enter[t]);return n&&n.signal?n:n?n.value:null}function CZe(t,e,n){const r=e.config.style[n];return r&&r[t]}function u6(t,e,n){return`item.anchor === '${gZe}' ? ${t} : item.anchor === '${yZe}' ? ${e} : ${n}`}const yB=u6(we(R1),we(O1),we(Sue));function bZe(t){const e=t("tickBand");let n=t("tickOffset"),r,i;return e?e.signal?(r={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${e.signal}) === 'extent'`},He(n)||(n={signal:`(${e.signal}) === 'extent' ? 0 : ${n}`})):e==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=t("bandPosition"),i=t("tickExtra")),{extra:i,band:r,offset:n}}function Tue(t,e){return e?t?He(t)?Object.assign({},t,{offset:Tue(t.offset,e)}):{value:t,offset:e}:e:t}function Qs(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=b1(t.encode,e,mE)):t.interactive=!1,t}function TZe(t,e,n,r){const i=ys(t,n),s=i.isVertical(),o=i.gradientThickness(),u=i.gradientLength();let a,l,c,f,x;s?(l=[0,1],c=[0,0],f=o,x=u):(l=[0,0],c=[1,0],f=u,x=o);const h={enter:a={opacity:bt,x:bt,y:bt,width:Sr(f),height:Sr(x)},update:ft({},a,{opacity:Oo,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:bt}};return Pr(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Qs({type:Cue,role:sJe,encode:h},r)}function RZe(t,e,n,r,i){const s=ys(t,n),o=s.isVertical(),u=s.gradientThickness(),a=s.gradientLength();let l,c,f,x,h="";o?(l="y",f="y2",c="x",x="width",h="1-"):(l="x",f="x2",c="y",x="height");const p={opacity:bt,fill:{scale:e,field:Ro}};p[l]={signal:h+"datum."+N1,mult:a},p[c]=bt,p[f]={signal:h+"datum."+AZe,mult:a},p[x]=Sr(u);const m={enter:p,update:ft({},p,{opacity:Oo}),exit:{opacity:bt}};return Pr(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),Qs({type:Cue,role:rJe,key:Ro,from:i,encode:m},r)}const OZe=`datum.${N1}<=0?"${R1}":datum.${N1}>=1?"${O1}":"${Sue}"`,NZe=`datum.${N1}<=0?"${Hc}":datum.${N1}>=1?"${pu}":"${mZe}"`;function Rue(t,e,n,r){const i=ys(t,e),s=i.isVertical(),o=Sr(i.gradientThickness()),u=i.gradientLength();let a=i("labelOverlap"),l,c,f,x,h="";const p={enter:l={opacity:bt},update:c={opacity:Oo,text:{field:xB}},exit:{opacity:bt}};return Pr(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:du(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:NZe},f="y",x="x",h="1-"):(l.align=c.align={signal:OZe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+N1,mult:u},l[x]=c[x]=o,o.offset=du(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+fB}:void 0,Qs({type:Od,role:nue,style:gE,key:Ro,from:r,encode:p,overlap:a},n)}function DZe(t,e,n,r,i){const s=ys(t,e),o=n.entries,u=!!(o&&o.interactive),a=o?o.name:void 0,l=s("clipHeight"),c=s("symbolOffset"),f={data:"value"},x=`(${i}) ? datum.${EZe} : datum.${pB}`,h=l?Sr(l):{field:pB},p=`datum.${fB}`,m=`max(1, ${i})`;let g,y,E,A,v;h.mult=.5,g={enter:y={opacity:bt,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:Oo,x:y.x,y:y.y},exit:{opacity:bt}};let S=null,C=null;t.fill||(S=e.symbolBaseFillColor,C=e.symbolBaseStrokeColor),Pr(g,{fill:s("symbolFillColor",S),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",C),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),gB.forEach(O=>{t[O]&&(E[O]=y[O]={scale:t[O],field:Ro})});const _=Qs({type:_Ze,role:oJe,key:Ro,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=Sr(c);b.offset=s("labelOffset"),g={enter:y={opacity:bt,x:{signal:x,offset:b},y:h},update:E={opacity:Oo,text:{field:xB},x:y.x,y:y.y},exit:{opacity:bt}},Pr(g,{align:s("labelAlign"),baseline:s("labelBaseline"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:s("labelLimit")});const R=Qs({type:Od,role:nue,style:gE,key:Ro,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:bt,height:l?Sr(l):bt,opacity:bt},exit:{opacity:bt},update:E={opacity:Oo,row:{signal:null},column:{signal:null}}},s.isVertical(!0)?(A=`ceil(item.mark.items.length / ${m})`,E.row.signal=`${p}%${A}`,E.column.signal=`floor(${p} / ${A})`,v={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,v={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:fB}},yE({role:rB,from:r,encode:b1(g,o,mE),marks:[_,R],name:a,interactive:u,sort:v})}function FZe(t,e){const n=ys(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const EB='item.orient === "left"',AB='item.orient === "right"',a6=`(${EB} || ${AB})`,wZe=`datum.vgrad && ${a6}`,LZe=u6('"top"','"bottom"','"middle"'),IZe=u6('"right"','"left"','"center"'),$Ze=`datum.vgrad && ${AB} ? (${IZe}) : (${a6} && !(datum.vgrad && ${EB})) ? "left" : ${yB}`,BZe=`item._anchor || (${a6} ? "middle" : "start")`,kZe=`${wZe} ? (${EB} ? -90 : 90) : 0`,PZe=`${a6} ? (datum.vgrad ? (${AB} ? "bottom" : "top") : ${LZe}) : "top"`;function MZe(t,e,n,r){const i=ys(t,e),s={enter:{opacity:bt},update:{opacity:Oo,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:bt}};return Pr(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:BZe},angle:{signal:kZe},align:{signal:$Ze},baseline:{signal:PZe},text:t.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),Qs({type:Od,role:uJe,style:dB,from:r,encode:s},n)}function jZe(t,e){let n;return He(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+Oue(t.path)+")":t.sphere&&(n="geoShape("+Oue(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function Oue(t){return He(t)&&t.signal?t.signal:we(t)}function Nue(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===o6?rB:e||tB}function UZe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Nue(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function qZe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function vB(t,e){const n=w$e(t.type);n||Se("Unrecognized transform type: "+we(t.type));const r=ZT(n.type.toLowerCase(),null,Due(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Due(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=HZe(o,e,n)}return r}function HZe(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return zZe(t,e,n);if(i===void 0){t.required&&Se("Missing required "+we(e.type)+" parameter: "+we(t.name));return}else{if(r==="param")return QZe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!sr(i)?i.map(s=>Fue(t,s,n)):Fue(t,i,n)}function Fue(t,e,n){const r=t.type;if(sr(e))return Lue(r)?Se("Expression references can not be signals."):SB(r)?n.fieldRef(e):Iue(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||SB(r);return i&&GZe(e)?n.exprRef(e.expr,e.as):i&&WZe(e)?hE(e.field,e.as):Lue(r)?La(e,n):VZe(r)?Xe(n.getData(e).values):SB(r)?hE(e):Iue(r)?n.compareRef(e):e}}function zZe(t,e,n){return je(e.from)||Se('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function QZe(t,e,n){const r=e[t.name];return t.array?(_e(r)||Se("Expected an array of sub-parameters. Instead: "+we(r)),r.map(i=>wue(t,i,n))):wue(t,r,n)}function wue(t,e,n){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const u in i.key)if(i.key[u]!==e[u]){i=null;break}if(i)break}i||Se("Unsupported parameter: "+we(e));const s=ft(Due(i,e,n),i.key);return Xe(n.add(VJe(s)))}const GZe=t=>t&&t.expr,WZe=t=>t&&t.field,VZe=t=>t==="data",Lue=t=>t==="expr",SB=t=>t==="field",Iue=t=>t==="compare";function YZe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||Se("Only group marks can be faceted."),r.field!=null?o=u=l6(r,n):(t.data?u=Xe(n.getData(t.data).aggregate):(s=vB(ft({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=l6(r,n),o=u=Xe(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Xe(n.add(hu(null,[{}]))),o||(o=l6(t,n)),{key:i,pulse:o,parent:u}}function l6(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Xe(e.getData(t.data).output)}function Nd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}Nd.fromEntries=function(t,e){const n=e.length,r=e[n-1],i=e[n-2];let s=e[0],o=null,u=1;for(s&&s.type==="load"&&(s=e[1]),t.add(e[0]);u<n;++u)e[u].params.pulse=Xe(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new Nd(t,s,i,r,o)};function $ue(t){return je(t)?t:null}function Bue(t,e,n){const r=t6(n.op,n.field);let i;if(e.ops){for(let s=0,o=e.as.length;s<o;++s)if(e.as[s]===r)return}else e.ops=["count"],e.fields=[null],e.as=["count"];n.op&&(e.ops.push((i=n.op.signal)?t.signalRef(i):n.op),e.fields.push(t.fieldRef(n.field)),e.as.push(r))}function EE(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=CJe(s);let l=$ue(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:oB,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Xe(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(ZT(r,void 0,x)),o&&(e.index[i]=f),c=Xe(f),l!=null&&(u[l]=c)}return c}Nd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=$ue(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&Bue(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Xe(r.output)},n&&n.field&&Bue(t,a,n),u=t.add(fue(a)),o=t.add(hu({pulse:Xe(u)})),o={agg:u,ref:Xe(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Xe(this.values)},extentRef(t,e){return EE(t,this,"extent","extent",e,!1)},domainRef(t,e){return EE(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return EE(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return EE(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return EE(t,this,"indata","tupleindex",e,!0,!0)}};function KZe(t,e,n){const r=t.from.facet,i=r.name,s=l6(r,e);let o;r.name||Se("Facet must have a name: "+we(r)),r.data||Se("Facet must reference a data set: "+we(r)),r.field?o=e.add(pue({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(MJe({key:e.keyRef(r.groupby),group:Xe(e.proxy(n.parent)),pulse:s})):Se("Facet must specify groupby or field: "+we(r));const u=e.fork(),a=u.add(hu()),l=u.add(Rd({pulse:Xe(a)}));u.addData(i,new Nd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function XZe(t,e,n){const r=e.add(pue({pulse:n.pulse})),i=e.fork();i.add(Rd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function kue(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(e6()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=La(l,e);a.update=c.$expr,a.params=c.$params}function c6(t,e){const n=Nue(t),r=t.type===o6,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===rB||n===nB,u,a,l,c,f,x,h;const p=n===tB||o||i,m=YZe(t.from,r,e);a=e.add(kJe({key:m.key||(t.key?hE(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Xe(a);a=l=e.add(hu({pulse:g})),a=e.add(zJe({markdef:UZe(t),interactive:qZe(t.interactive,e),clip:jZe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Xe(a)}));const y=Xe(a);a=c=e.add(hue(oue(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(C=>{const _=vB(C,e),b=_.metadata;(b.generates||b.changes)&&Se("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),_.params.pulse=Xe(a),e.add(a=_)}),t.sort&&(a=e.add(ZJe({sort:e.compareRef(t.sort),pulse:Xe(a)})));const E=Xe(a);(i||o)&&(o=e.add(mue({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Xe(o));const A=e.add(xue({mark:y,pulse:x||E}));h=Xe(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?KZe(t,e,m):p?XZe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=JZe(s,h,e));const v=e.add(gue({pulse:h})),S=e.add(Rd({pulse:Xe(v)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new Nd(e,l,v,S)),t.on&&t.on.forEach(C=>{(C.insert||C.remove||C.toggle)&&Se("Marks only support modify triggers."),kue(C,e,f)}))}function JZe(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:sr(s)?n.signalRef(s.signal):s,method:sr(r)?n.signalRef(r.signal):r,pulse:e};if(t.order&&(o.sort=n.compareRef({field:t.order})),i){const u=i.tolerance;o.boundTolerance=sr(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Xe(n.add(WJe(o)))}function ZZe(t,e){const n=e.config.legend,r=t.encode||{},i=ys(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;gB.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||Se("Missing valid scale for legend.");const p=eet(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Xe(e.add(hu(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Xe(e.add(qJe(x={type:p,scale:e.scaleRef(c),count:e.objectProperty(i("tickCount")),limit:e.property(i("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));return p===s6?(h=[TZe(t,c,n,r.gradient),Rue(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${Td(i.gradientLength())})/100))`)):p===hB?h=[RZe(t,c,n,r.gradient,E),Rue(t,n,r.labels,E)]:(f=FZe(t,n),h=[DZe(t,n,r,E,Td(f.columns))],x.size=ret(t,e,h[0].marks)),h=[yE({role:iJe,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(MZe(t,n,r.title,g)),c6(yE({role:nJe,from:g,encode:b1(net(i,t,n),s,mE),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function eet(t,e){let n=t.type||_ue;return!t.type&&tet(t)===1&&(t.fill||t.stroke)&&(n=F9(e)?s6:w9(e)?hB:_ue),n!==s6?n:w9(e)?hB:s6}function tet(t){return gB.reduce((e,n)=>e+(t[n]?1:0),0)}function net(t,e,n){const r={enter:{},update:{}};return Pr(r,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:t("legendX"),y:t("legendY"),format:e.format,formatType:e.formatType}),r}function ret(t,e,n){const r=Td(Pue("size",t,n)),i=Td(Pue("strokeWidth",t,n)),s=Td(iet(n[1].encode,e,gE));return La(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function Pue(t,e,n){return e[t]?`scale("${e[t]}",datum)`:bue(t,n[0].encode)}function iet(t,e,n){return bue("fontSize",t)||CZe("fontSize",e,n)}const set=`item.orient==="${R1}"?-90:item.orient==="${O1}"?90:0`;function oet(t,e){t=je(t)?{text:t}:t;const n=ys(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Xe(e.add(hu(null,[l])));return a.push(cet(t,n,uet(t),c)),t.subtitle&&a.push(fet(t,n,r.subtitle,c)),c6(yE({role:aJe,from:c,encode:aet(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function uet(t){const e=t.encode;return e&&e.title||ft({name:t.name,interactive:t.interactive,style:t.style},e)}function aet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:yB},angle:{signal:set},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),b1(n,e,mE)}function cet(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("color"),font:e("font"),fontSize:e("fontSize"),fontStyle:e("fontStyle"),fontWeight:e("fontWeight"),lineHeight:e("lineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Qs({type:Od,role:lJe,style:vZe,from:r,encode:o},n)}function fet(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("subtitleColor"),font:e("subtitleFont"),fontSize:e("subtitleFontSize"),fontStyle:e("subtitleFontStyle"),fontWeight:e("subtitleFontWeight"),lineHeight:e("subtitleLineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Qs({type:Od,role:cJe,style:SZe,from:r,encode:o},n)}function xet(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(vB(r,e))}),t.on&&t.on.forEach(r=>{kue(r,e,t.name)}),e.addDataPipeline(t.name,det(t,e,n))}function det(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?sr(t.values)||n6(t.format)?(r.push(Mue(e,t)),r.push(i=Dd())):r.push(i=Dd({$ingest:t.values,$format:t.format})):t.url?n6(t.url)||n6(t.format)?(r.push(Mue(e,t)),r.push(i=Dd())):r.push(i=Dd({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Xe(e.getData(x).output)),r.push(null)),a=0,l=n.length;a<l;++a)c=n[a],f=c.metadata,!i&&!f.source&&r.push(i=Dd()),r.push(c),f.generates&&(o=!0),f.modifies&&!o&&(s=!0),f.source?i=c:f.changes&&(i=null);return u&&(l=u.length-1,r[0]=XJe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,Dd())),i||r.push(Dd()),r.push(Rd({})),r}function Dd(t){const e=hu({},t);return e.metadata={source:!0},e}function Mue(t,e){return HJe({url:e.url?t.property(e.url):void 0,async:e.async?t.property(e.async):void 0,values:e.values?t.property(e.values):void 0,format:t.objectProperty(e.format)})}const jue=t=>t===Hc||t===pu,f6=(t,e,n)=>sr(t)?met(t.signal,e,n):t===R1||t===pu?e:n,_r=(t,e,n)=>sr(t)?pet(t.signal,e,n):jue(t)?e:n,gu=(t,e,n)=>sr(t)?get(t.signal,e,n):jue(t)?n:e,Uue=(t,e,n)=>sr(t)?yet(t.signal,e,n):t===pu?{value:e}:{value:n},het=(t,e,n)=>sr(t)?Eet(t.signal,e,n):t===O1?{value:e}:{value:n},pet=(t,e,n)=>que(`${t} === '${pu}' || ${t} === '${Hc}'`,e,n),get=(t,e,n)=>que(`${t} !== '${pu}' && ${t} !== '${Hc}'`,e,n),met=(t,e,n)=>_B(`${t} === '${R1}' || ${t} === '${pu}'`,e,n),yet=(t,e,n)=>_B(`${t} === '${pu}'`,e,n),Eet=(t,e,n)=>_B(`${t} === '${O1}'`,e,n),que=(t,e,n)=>(e=e!=null?Sr(e):e,n=n!=null?Sr(n):n,Hue(e)&&Hue(n)?(e=e?e.signal||we(e.value):null,n=n?n.signal||we(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ft({test:t},e)].concat(n||[])),Hue=t=>t==null||Object.keys(t).length===1,_B=(t,e,n)=>({signal:`${t} ? (${D1(e)}) : (${D1(n)})`}),Aet=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${R1}' ? (${D1(r)}) : `:"")+(n!=null?`${t} === '${Hc}' ? (${D1(n)}) : `:"")+(i!=null?`${t} === '${O1}' ? (${D1(i)}) : `:"")+(e!=null?`${t} === '${pu}' ? (${D1(e)}) : `:"")+"(null)"}),D1=t=>sr(t)?t.signal:t==null?null:we(t),vet=(t,e)=>e===0?0:sr(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},F1=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function w1(t,e,n,r){let i;if(e&&Je(e,t))return e[t];if(Je(n,t))return n[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[dB][i]}else if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[gE][i]}return null}function zue(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function _et(t,e){var n=e.config,r=n.style,i=n.axis,s=e.scaleType(t.scale)==="band"&&n.axisBand,o=t.orient,u,a,l;if(sr(o)){const f=zue([n.axisX,n.axisY]),x=zue([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=_r(o,w1(l,n.axisX,i,r),w1(l,n.axisY,i,r));a={};for(l of x)a[l]=Aet(o.signal,w1(l,n.axisTop,i,r),w1(l,n.axisBottom,i,r),w1(l,n.axisLeft,i,r),w1(l,n.axisRight,i,r))}else u=o===pu||o===Hc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ft({},i,u,a,s):i}function Cet(t,e,n,r){const i=ys(t,e),s=t.orient;let o,u;const a={enter:o={opacity:bt},update:u={opacity:Oo},exit:{opacity:bt}};Pr(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=Que(t,0),c=Que(t,1);return o.x=u.x=_r(s,l,bt),o.x2=u.x2=_r(s,c),o.y=u.y=gu(s,l,bt),o.y2=u.y2=gu(s,c),Qs({type:mB,role:XXe,from:r,encode:a},n)}function Que(t,e){return{scale:t.scale,range:e}}function bet(t,e,n,r,i){const s=ys(t,e),o=t.orient,u=t.gridScale,a=f6(o,1,-1),l=Tet(t.offset,a);let c,f,x;const h={enter:c={opacity:bt},update:x={opacity:Oo},exit:f={opacity:bt}};Pr(h,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});const p={scale:t.scale,field:Ro,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=_r(o,{signal:"height"},{signal:"width"}),g=u?{scale:u,range:0,mult:a,offset:l}:{value:0,offset:l},y=u?{scale:u,range:1,mult:a,offset:l}:ft(m,{mult:a,offset:l});return c.x=x.x=_r(o,p,g),c.y=x.y=gu(o,p,g),c.x2=x.x2=gu(o,y),c.y2=x.y2=_r(o,y),f.x=_r(o,p),f.y=gu(o,p),Qs({type:mB,role:JXe,key:Ro,from:r,encode:h},n)}function Tet(t,e){if(e!==1)if(!He(t))t=sr(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ft({},t);for(;n.mult!=null;)if(He(n.mult))n=n.mult=ft({},n.mult);else return n.mult=sr(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function Ret(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=f6(u,-1,1);let l,c,f;const x={enter:l={opacity:bt},update:f={opacity:Oo},exit:c={opacity:bt}};Pr(x,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=Sr(i);h.mult=a;const p={scale:t.scale,field:Ro,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=_r(u,bt,p),f.y2=l.y2=_r(u,h),c.x=_r(u,p),f.x=l.x=gu(u,bt,p),f.x2=l.x2=gu(u,h),c.y=gu(u,p),Qs({type:mB,role:eJe,key:Ro,from:r,encode:x},n)}function CB(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function Oet(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=t.scale,l=f6(u,-1,1),c=Td(o("labelFlush")),f=Td(o("labelFlushOffset")),x=o("labelAlign"),h=o("labelBaseline");let p=c===0||!!c,m;const g=Sr(i);g.mult=l,g.offset=Sr(o("labelPadding")||0),g.offset.mult=l;const y={scale:a,field:Ro,band:.5,offset:Tue(s.offset,o("labelOffset"))},E=_r(u,p?CB(a,c,'"left"','"right"','"center"'):{value:"center"},het(u,"left","right")),A=_r(u,Uue(u,"bottom","top"),p?CB(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),v=CB(a,c,`-(${f})`,f,0);p=p&&f;const S={opacity:bt,x:_r(u,y,g),y:gu(u,y,g)},C={enter:S,update:m={opacity:Oo,text:{field:xB},x:S.x,y:S.y,align:E,baseline:A},exit:{opacity:bt,x:S.x,y:S.y}};Pr(C,{dx:!x&&p?_r(u,v):null,dy:!h&&p?gu(u,v):null}),Pr(C,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:x,baseline:h});const _=o("labelBound");let b=o("labelOverlap");return b=b||_?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:_?{scale:a,orient:u,tolerance:_}:null}:void 0,m.align!==E&&(m.align=F1(m.align,E)),m.baseline!==A&&(m.baseline=F1(m.baseline,A)),Qs({type:Od,role:ZXe,style:gE,key:Ro,from:r,encode:C,overlap:b},n)}function Net(t,e,n,r){const i=ys(t,e),s=t.orient,o=f6(s,-1,1);let u,a;const l={enter:u={opacity:bt,anchor:Sr(i("titleAnchor",null)),align:{signal:yB}},update:a=ft({},u,{opacity:Oo,text:Sr(t.title)}),exit:{opacity:bt}},c={signal:`lerp(range("${t.scale}"), ${u6(0,1,.5)})`};return a.x=_r(s,c),a.y=gu(s,c),u.angle=_r(s,bt,vet(o,90)),u.baseline=_r(s,Uue(s,Hc,pu),{value:Hc}),a.angle=u.angle,a.baseline=u.baseline,Pr(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),Det(i,s,l,n),l.update.align=F1(l.update.align,u.align),l.update.angle=F1(l.update.angle,u.angle),l.update.baseline=F1(l.update.baseline,u.baseline),Qs({type:Od,role:tJe,style:dB,from:r,encode:l},n)}function Det(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=F1(Sr(u),n.update[a]),!1):!T1(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?Sr(o):_r(e,Sr(o),Sr(s))}function Fet(t,e){const n=_et(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=ys(t,n),l=bZe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Xe(e.add(hu({},[c]))),x=Xe(e.add(BJe({scale:e.scaleRef(t.scale),extra:e.property(l.extra),count:e.objectProperty(t.tickCount),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)}))),h=[];let p;return c.grid&&h.push(bet(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(Ret(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(Oet(t,n,r.labels,x,p,l))),c.domain&&h.push(Cet(t,n,r.domain,f)),c.title&&h.push(Net(t,n,r.title,f)),c6(yE({role:KXe,from:f,encode:b1(wet(a,t),i,mE),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function wet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),offset:t("offset")||0,position:du(e.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${e.scale}")))`},translate:t("translate"),format:e.format,formatType:e.formatType}),n}function Gue(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>aue(s,e)),Pe(t.projections).forEach(s=>hZe(s,e)),i.forEach(s=>nZe(s,e)),Pe(t.data).forEach(s=>xet(s,e)),i.forEach(s=>rZe(s,e)),(n||r).forEach(s=>$Je(s,e)),Pe(t.axes).forEach(s=>Fet(s,e)),Pe(t.marks).forEach(s=>c6(s,e)),Pe(t.legends).forEach(s=>ZZe(s,e)),t.title&&oet(t.title,e),e.parseLambdas(),e}const Let=t=>b1({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function Iet(t,e){const n=e.config,r=Xe(e.root=e.add(e6())),i=$et(t,n);i.forEach(l=>aue(l,e)),e.description=t.description||n.description,e.eventConfig=n.events,e.legends=e.objectProperty(n.legend&&n.legend.layout),e.locale=n.locale;const s=e.add(hu()),o=e.add(hue(oue(Let(t.encode),o6,nB,t.style,e,{pulse:Xe(s)}))),u=e.add(mue({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Xe(o)}));e.operators.pop(),e.pushState(Xe(o),Xe(u),null),Gue(t,e,i),e.operators.push(u);let a=e.add(xue({mark:r,pulse:Xe(u)}));return a=e.add(gue({pulse:Xe(a)})),a=e.add(Rd({pulse:Xe(a)})),e.addData("root",new Nd(e,s,s,a)),e}function AE(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function $et(t,e){const n=o=>du(t[o],e[o]),r=[AE("background",n("background")),AE("autosize",WXe(n("autosize"))),AE("padding",YXe(n("padding"))),AE("width",n("width")||0),AE("height",n("height")||0)],i=r.reduce((o,u)=>(o[u.name]=u,o),{}),s={};return Pe(t.signals).forEach(o=>{Je(i,o.name)?o=ft(i[o.name],o):r.push(o),s[o.name]=o}),Pe(e.signals).forEach(o=>{!Je(s,o.name)&&!Je(i,o.name)&&r.push(o)}),r}function Wue(t,e){this.config=t||{},this.options=e||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function Vue(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}Wue.prototype=Vue.prototype={parse(t){return Gue(t,this)},fork(){return new Vue(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(e=>{e.$ref=t.id}),t.refs=null),t},proxy(t){const e=t instanceof sB?Xe(t):t;return this.add(KJe({value:e}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,e;this.root&&(this.root.root=!0);for(t in this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(r,i,s){let o,u;r&&(o=r.data||(r.data={}),u=o[i]||(o[i]=[]),u.push(s))}for(t in this.data){e=this.data[t],n(e.input,t,"input"),n(e.output,t,"output"),n(e.values,t,"values");for(const r in e.index)n(e.index[r],t,"index:"+r)}return this},pushState(t,e,n){this._encode.push(Xe(this.add(Rd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Xe(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return St(this._parent)},encode(){return St(this._encode)},lookup(){return St(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return hE(t,e);t.signal||Se("Unsupported field reference: "+we(t));const n=t.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};e&&(i.as=e),this.field[n]=r=Xe(this.add(jJe(i)))}return r},compareRef(t){let e=!1;const n=s=>sr(s)?(e=!0,this.signalRef(s.signal)):bJe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Xe(this.add(due({fields:r,orders:i}))):lue(r,i)},keyRef(t,e){let n=!1;const r=s=>sr(s)?(n=!0,Xe(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Xe(this.add(UJe({fields:t,flat:e}))):vJe(t,e)},sortRef(t){if(!t)return t;const e=t6(t.op,t.field),n=t.order||SJe;return n.signal?Xe(this.add(due({fields:e,orders:this.signalRef(n.signal)}))):lue(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:t,type:e}),this.events[n]=r}return this.events[n]},hasOwnSignal(t){return Je(this.signals,t)},addSignal(t,e){this.hasOwnSignal(t)&&Se("Duplicate signal name: "+we(t));const n=e instanceof sB?e:this.add(e6(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||Se("Unrecognized signal name: "+we(t)),this.signals[t]},signalRef(t){return this.signals[t]?Xe(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(e6(null))),Xe(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;e<n;++e){const r=t[e],i=La(r,this),s=this.lambdas[r];s.params=i.$params,s.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return!t||!He(t)?t:this.signalRef(t.signal||bB(t))},exprRef(t,e){const n={expr:La(t,this)};return e&&(n.expr.$name=e),Xe(this.add(PJe(n)))},addBinding(t,e){this.bindings||Se("Nested signals do not support binding: "+we(t)),this.bindings.push(ft({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&Se("Duplicate scale or projection name: "+we(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,JJe(e))},addProjection(t,e){this.addScaleProj(t,YJe(e))},getScale(t){return this.scales[t]||Se("Unrecognized scale name: "+we(t)),this.scales[t]},scaleRef(t){return Xe(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,e){return Je(this.data,t)&&Se("Duplicate data set name: "+we(t)),this.data[t]=e},getData(t){return this.data[t]||Se("Undefined data set name: "+we(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&Se("Duplicate data set name: "+we(t)),this.addData(t,Nd.fromEntries(this,e))}};function bB(t){return(_e(t)?Bet:ket)(t)}function Bet(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(He(i)?i.signal||bB(i):we(i))}return n+"]"}function ket(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+we(r)+":"+(He(i)?i.signal||bB(i):we(i));return e+"}"}function Pet(){const t="sans-serif",r="#4c78a8",i="#000",s="#888",o="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:t,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:t,fontSize:10},"guide-title":{fill:i,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:t,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:o},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:s,grid:!1,gridWidth:1,gridColor:o,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:s,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:o,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:s,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}function Yue(t,e,n){return He(t)||Se("Input Vega specification must be an object."),e=HF(Pet(),e,t.config),Iet(t,new Wue(e,n)).toRuntime()}ft(V3,UBe,yqe,Hqe,Oze,SQe,YGe,OGe,XGe,AWe,DWe,kWe);const vE={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Met(t){return t==="quantitative"||t==="temporal"}function Kue(t){return t==="ordinal"||t==="nominal"}const Fd=vE.quantitative,TB=vE.ordinal,L1=vE.temporal,RB=vE.nominal,I1=vE.geojson;function jet(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Fd:return"quantitative";case"t":case L1:return"temporal";case"o":case TB:return"ordinal";case"n":case RB:return"nominal";case I1:return"geojson"}}var Uet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Es={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",SYMLOG:"symlog",IDENTITY:"identity",SEQUENTIAL:"sequential",TIME:"time",UTC:"utc",QUANTILE:"quantile",QUANTIZE:"quantize",THRESHOLD:"threshold",BIN_ORDINAL:"bin-ordinal",ORDINAL:"ordinal",POINT:"point",BAND:"band"},OB={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function qet(t,e){const n=OB[t],r=OB[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const Het={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function Xue(t){return Het[t]}const Jue=new Set(["linear","log","pow","sqrt","symlog"]),Zue=new Set([...Jue,"time","utc"]);function eae(t){return Jue.has(t)}const tae=new Set(["quantile","quantize","threshold"]),zet=new Set([...Zue,...tae,"sequential","identity"]),Qet=new Set(["ordinal","bin-ordinal","point","band"]);function Cr(t){return Qet.has(t)}function Gs(t){return zet.has(t)}function mu(t){return Zue.has(t)}function $1(t){return tae.has(t)}const Get={pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4};function Wet(t){return!je(t)&&!!t.name}function nae(t){return t==null?void 0:t.param}function Vet(t){return t&&t.unionWith}function Yet(t){return He(t)&&"field"in t}const Ket=Uet({type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},["type","domain","range","rangeMax","rangeMin","scheme"]),Xet=Te(Ket);function NB(t,e){switch(e){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return mu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return mu(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"clamp":return mu(t);case"nice":return mu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return Gs(t)&&!Ct(["log","time","utc","threshold","quantile"],t)}}function rae(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return $2(t)?void 0:mwe(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}function Jet(t,e){return Ct([TB,RB],e)?t===void 0||Cr(t):e===L1?Ct([Es.TIME,Es.UTC,void 0],t):e===Fd?eae(t)||$1(t)||t===void 0:!0}function Zet(t,e,n=!1){if(!fc(t))return!1;switch(t){case En:case gr:case sc:case I2:case nu:case oa:return mu(e)||e==="band"?!0:e==="point"?!n:!1;case Ol:case ac:case Nl:case oc:case uc:case $x:return mu(e)||$1(e)||Ct(["band","point","ordinal"],e);case us:case la:case ca:return e!=="band";case lc:case as:return e==="ordinal"||$1(e)}}const Hi={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},iae=Hi.arc,x6=Hi.area,d6=Hi.bar,ett=Hi.image,h6=Hi.line,p6=Hi.point,ttt=Hi.rect,g6=Hi.rule,sae=Hi.text,DB=Hi.tick,ntt=Hi.trail,FB=Hi.circle,wB=Hi.square,oae=Hi.geoshape;function zc(t){return["line","area","trail"].includes(t)}function uae(t){return["rect","bar","image","arc"].includes(t)}const rtt=new Set(Te(Hi));function Ia(t){return t.type}const itt=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],stt=["fill","fillOpacity"],ott=[...itt,...stt],aae=Te({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),utt={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},att={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},lae=Te({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function B1(t){return t&&t.band!=null}const ltt={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},cae=5,ctt={binSpacing:1,continuousBandSize:cae,timeUnitBandPosition:.5},ftt={binSpacing:0,continuousBandSize:cae,timeUnitBandPosition:.5},xtt={thickness:1};function dtt(t){return Ia(t)?t.type:t}function LB(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=$B(t);return Ie(n)&&!xK(n.aggregate)&&i&&mu(i.get("type"))?htt({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function htt({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return zc(n.type)?r:It("invalid",n,i)===null?[ptt(t,e),r]:r}function ptt(t,e){const n=IB(t,!0),i=kx(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function IB(t,e=!0){return _8(je(t)?t:$e(t,{expr:"datum"}),!e)}function gtt(t){const{datum:e}=t;return jx(e)?T3(e):`${rn(e)}`}function wd(t,e,n,r){const i={};if(e&&(i.scale=e),Ba(t)){const{datum:s}=t;jx(s)?i.signal=T3(s):Ye(s)?i.signal=s.signal:b3(s)?i.signal=s.expr:i.value=s}else i.field=$e(t,n);if(r){const{offset:s,band:o}=r;s&&(i.offset=s),o&&(i.band=o)}return i}function m6({scaleName:t,fieldOrDatumDef:e,fieldOrDatumDef2:n,offset:r,startSuffix:i,bandPosition:s=.5}){const o=0<s&&s<1?"datum":void 0,u=$e(e,{expr:o,suffix:i}),a=n!==void 0?$e(n,{expr:o}):$e(e,{suffix:"end",expr:o}),l={};if(s===0||s===1){l.scale=t;const c=s===0?u:a;l.field=c}else{const c=Ye(s)?`${s.signal} * ${u} + (1-${s.signal}) * ${a}`:`${s} * ${u} + ${1-s} * ${a}`;l.signal=`scale("${t}", ${c})`}return r&&(l.offset=r),l}function $B({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l,bandPosition:c}){var f;if(e){if(st(e)){const x=o==null?void 0:o.get("type");if(No(e)){c??(c=Sae({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Kt(h)||c&&p&&m===L1)return u!=null&&u.impute?wd(e,s,{binSuffix:"mid"},{offset:a}):c&&!Cr(x)?m6({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):wd(e,s,bE(e,t)?{binSuffix:"range"}:{},{offset:a});if(Ti(h)){if(Ie(n))return m6({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Re(MK(t===En?tu:sa))}}return wd(e,s,Cr(x)?{binSuffix:"range"}:{},{offset:a,band:x==="band"?(f=c??e.bandPosition)!==null&&f!==void 0?f:.5:void 0})}else if(yu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},SE(t,x)),h)}}return ct(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function SE(t,e){return Ct(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:Ct(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:sn(e)}function Ld(t){return t&&t!=="number"&&t!=="time"}function fae(t,e,n){return`${t}(${e}${n?`, ${rn(n)}`:""})`}const mtt=" – ";function BB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if(Ld(n))return kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=xae(t,r,i);if(M1(t)){const l=Ett(a,Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Id(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===Es.UTC);return l?{signal:l}:void 0}if(e=pae(UB(t),e,s),Ie(t)&&Kt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:y6(a,l,e,n,s)}}else return e||UB(t)==="quantitative"?{signal:`${gae(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function xae(t,e,n){return Ie(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):gtt(t)}function kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=xae(t,r,i)),Ie(t)&&Kt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:y6(o,u,e,n,s)}}return{signal:fae(n,o,e)}}function dae(t,e,n,r,i,s){var o;if(!Ld(r)){if(M1(t)){const u=Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return ytt(n,u,i,s)}return pae(e,n,i)}}function hae(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(M1(e)&&n!=="time"&&n!=="utc")return"time"}function pae(t,e,n){if(je(e))return e;if(t===Fd)return n.numberFormat}function ytt(t,e,n,r){return t||(e?{signal:QK(e)}:r?void 0:n.timeFormat)}function gae(t,e){return`format(${t}, "${e||""}")`}function mae(t,e,n,r){var i;return Ld(n)?fae(n,t,e):gae(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function y6(t,e,n,r,i){const s=mae(t,n,r,i),o=mae(e,n,r,i);return`${_8(t,!1)} ? "null" : ${s} + "${mtt}" + ${o}`}function Ett(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):n9e(e,t,i)}const E6="min",Att={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function yae(t){return t in Att}function Eae(t){return!!t&&!!t.encoding}function $a(t){return!!t&&(t.op==="count"||!!t.field)}function Aae(t){return!!t&&_e(t)}function _E(t){return"row"in t||"column"in t}function PB(t){return!!t&&"header"in t}function A6(t){return"facet"in t}var MB=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function vtt(t){return t.param}function Stt(t){return t&&!je(t)&&"repeat"in t}function vae(t){const{field:e,timeUnit:n,bin:r,aggregate:i}=t;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),r?{bin:r}:{}),i?{aggregate:i}:{}),{field:e})}function jB(t){return"sort"in t}function Sae({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(st(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Ie(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return uae(n.type)?0:Mx("timeUnitBandPosition",n,r);if(Kt(s))return .5}}function _ae({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=ls(t),f=It(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Ie(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:Mx("timeUnitBandSize",r,i)};if(Kt(h)&&!Cr(s))return{band:1}}if(uae(r.type))return s?Cr(s)?((u=i[r.type])===null||u===void 0?void 0:u.discreteBandSize)||{band:1}:(a=i[r.type])===null||a===void 0?void 0:a.continuousBandSize:(l=i[r.type])===null||l===void 0?void 0:l.discreteBandSize}function Cae(t,e,n,r){return Kt(t.bin)||t.timeUnit&&No(t)&&t.type==="temporal"?Sae({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function v6(t){return t&&"condition"in t}function S6(t){const e=t&&t.condition;return!!e&&!_e(e)&&Ie(e)}function CE(t){const e=t&&t.condition;return!!e&&!_e(e)&&st(e)}function _tt(t){const e=t&&t.condition;return!!e&&(_e(e)||yu(e))}function Ie(t){return t&&(!!t.field||t.aggregate==="count")}function UB(t){return t&&t.type}function Ba(t){return t&&"datum"in t}function ka(t){return No(t)&&!_6(t)||qB(t)}function qB(t){return Ba(t)&&nn(t.datum)}function st(t){return Ie(t)||Ba(t)}function No(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function yu(t){return t&&"value"in t&&"value"in t}function Id(t){return t&&("scale"in t||"sort"in t)}function HB(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function bae(t){return t&&"legend"in t}function Tae(t){return t&&("format"in t||"formatType"in t)}function Ctt(t){return ho(t,["legend","axis","header","scale"])}function btt(t){return"op"in t}function $e(t,e={}){var n,r,i;let s=t.field;const o=e.prefix;let u=e.suffix,a="";if(Rtt(t))s=i8e("count");else{let l;if(!e.nofn)if(btt(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Kt(c)?(l=dK(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?xc(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):Fl(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=r9e(x),u=(!["range","mid"].includes(e.binSuffix)&&e.binSuffix||"")+((i=e.suffix)!==null&&i!==void 0?i:""))}l&&(s=s?`${l}_${s}`:l)}return u&&(s=`${s}_${u}`),o&&(s=`${o}_${s}`),e.forAs?eK(s):e.expr?e8e(s,e.expr)+a:eu(s)+a}function _6(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Ie(t)&&!!t.bin;case"temporal":return!1}throw new Error(LK(t.type))}function Ttt(t){var e;return Id(t)&&$1((e=t.scale)===null||e===void 0?void 0:e.type)}function Rtt(t){return t.aggregate==="count"}function Ott(t,e){var n;const{field:r,bin:i,timeUnit:s,aggregate:o}=t;if(o==="count")return e.countTitle;if(Kt(i))return`${r} (binned)`;if(s){const u=(n=Ri(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${p8(u).join("-")})`}else if(o)return xc(o)?`${r} for max ${o.argmax}`:Fl(o)?`${r} for min ${o.argmin}`:`${W5(o)} of ${r}`;return r}function Ntt(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(xc(e))return`${i} for argmax(${e.argmax})`;if(Fl(e))return`${i} for argmin(${e.argmin})`;const s=Ri(r),o=e||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Kt(n)&&"bin";return o?`${o.toUpperCase()}(${i})`:i}const Rae=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return Ntt(t);default:return Ott(t,e)}};let Oae=Rae;function Nae(t){Oae=t}function Dtt(){Nae(Rae)}function k1(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=zB(t))===null||i===void 0?void 0:i.title;if(!Ie(t))return o??t.title;const u=t,a=r?QB(u,e):void 0;return n?Zn(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function zB(t){if(HB(t)&&t.axis)return t.axis;if(bae(t)&&t.legend)return t.legend;if(PB(t)&&t.header)return t.header}function QB(t,e){return Oae(t,e)}function C6(t){var e;if(Tae(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=zB(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function Ftt(t,e){var n;switch(e){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(jB(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!xc(r)&&!Fl(r))return"quantitative";if(Id(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(OB[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Pa(t){if(Ie(t))return t;if(S6(t))return t.condition}function or(t){if(st(t))return t;if(CE(t))return t.condition}function Dae(t,e,n,r={}){if(je(t)||nn(t)||D2(t)){const i=je(t)?"string":nn(t)?"number":"boolean";return Re(iwe(e,i,t)),{value:t}}return st(t)?b6(t,e,n,r):CE(t)?Object.assign(Object.assign({},t),{condition:b6(t.condition,e,n,r)}):t}function b6(t,e,n,r){if(Tae(t)){const{format:i,formatType:s}=t,o=MB(t,["format","formatType"]);if(Ld(s)&&!n.customFormatTypes)return Re(wK(e)),b6(o,e,n,r)}else{const i=HB(t)?"axis":bae(t)?"legend":PB(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=MB(s,["format","formatType"]);if(Ld(u)&&!n.customFormatTypes)return Re(wK(e)),b6(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Ie(t)?GB(t,e,r):wtt(t)}function wtt(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=nn(n)?"quantitative":je(n)?"nominal":jx(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function GB(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!s8(r)&&!xc(r)&&!Fl(r)&&(Re(owe(r)),delete u.aggregate),i&&(u.timeUnit=Ri(i)),o&&(u.field=`${o}`),Kt(s)&&(u.bin=T6(s,e)),Ti(s)&&!Ir(e)&&Re(Mwe(e)),No(u)){const{type:a}=u,l=jet(a);a!==l&&(u.type=l),a!=="quantitative"&&xK(r)&&(Re(swe(a,r)),u.type="quantitative")}else if(!sK(e)){const a=Ftt(u,e);u.type=a}if(No(u)){const{compatible:a,warning:l}=Ltt(u,e)||{};a===!1&&Re(l)}if(jB(u)&&je(u.sort)){const{sort:a}=u;if(yae(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&yae(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(PB(u)){const{header:a}=u;if(a){const{orient:l}=a,c=MB(a,["orient"]);if(l)return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},c),{labelOrient:a.labelOrient||l,titleOrient:a.titleOrient||l})})}}return u}function T6(t,e){return D2(t)?{maxbins:hK(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:hK(e)}):t}const P1={compatible:!0};function Ltt(t,e){const n=t.type;if(n==="geojson"&&e!=="shape")return{compatible:!1,warning:`Channel ${e} should not be used with a geojson data.`};switch(e){case Cl:case bl:case Y5:return _6(t)?P1:{compatible:!1,warning:fwe(e)};case En:case gr:case sc:case I2:case us:case la:case ca:case S3:case C3:case K5:case Bx:case X5:case J5:case $x:case nu:case oa:case Z5:return P1;case aa:case po:case ua:case ru:return n!==Fd?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:P1;case Nl:case oc:case uc:case ac:case Ol:case Rl:case Tl:case tu:case sa:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:P1;case as:case lc:return!_6(t)&&!Ttt(t)?{compatible:!1,warning:xwe(e)}:P1;case _3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:P1}}function M1(t){const{formatType:e}=C6(t);return e==="time"||!e&&Itt(t)}function Itt(t){return t&&(t.type==="temporal"||Ie(t)&&!!t.timeUnit)}function R6(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=Ri(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return b3(t)?a=t.expr:Ye(t)?a=t.signal:jx(t)?(u=!0,a=T3(t)):(je(t)||nn(t))&&u&&(a=`datetime(${rn(t)})`,Jwe(o)&&(nn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=T3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:rn(t)}function Fae(t,e){const{type:n}=t;return e.map(r=>{const i=R6(r,{timeUnit:Ie(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function bE(t,e){return Kt(t.bin)?fc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const wae={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function TE(t){return t&&t.condition}const Lae=["domain","grid","labels","ticks","title"],$tt={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},Iae={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},Btt=Object.assign(Object.assign({},Iae),{style:1,labelExpr:1,encoding:1});function $ae(t){return!!Btt[t]}const Bae=Te({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function s0(t){return"mark"in t}class O6{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return s0(e)?dtt(e.mark)===this.name:!1}}var ktt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function $d(t,e){const n=t&&t[e];return n?_e(n)?w2(n,r=>!!r.field):Ie(n)||S6(n):!1}function kae(t,e){const n=t&&t[e];return n?_e(n)?w2(n,r=>!!r.field):Ie(n)||Ba(n)||CE(n):!1}function WB(t,e){if(Ir(e)){const n=t[e];if((Ie(n)||Ba(n))&&Kue(n.type)){const r=oK(e);return kae(t,r)}}return!1}function VB(t){return w2(c8e,e=>{if($d(t,e)){const n=t[e];if(_e(n))return w2(n,r=>!!r.aggregate);{const r=Pa(n);return r&&!!r.aggregate}}return!1})}function Pae(t,e){const n=[],r=[],i=[],s=[],o={};return YB(t,(u,a)=>{if(Ie(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=ktt(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=zB(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:k1(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(xc(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Fl(c)?(E="argmin",g=$e({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(E=c),E){const A={op:E,as:g};l&&(A.field=l),s.push(A)}}else if(n.push(g),No(u)&&Kt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),bE(u,a)&&n.push($e(u,{binSuffix:"range"})),Ir(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",sK(a)||(y.type=Fd)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=No(u)&&u.type!==L1&&"time";E&&(a===S3||a===Bx?y.formatType=E:A8e(a)?y.legend=Object.assign({formatType:E},y.legend):Ir(a)&&(y.axis=Object.assign({formatType:E},y.axis)))}o[a]=y}else n.push(l),o[a]=t[a]}else o[a]=t[a]}),{bins:r,timeUnits:i,aggregate:s,groupby:n,encoding:o}}function Ptt(t,e,n){const r=S8e(e,n);if(r){if(r==="binned"){const i=t[e===tu?En:gr];return!!(Ie(i)&&Ie(t[e])&&Ti(i.bin))}}else return!1;return!0}function Mtt(t,e,n,r){const i={};for(const s of Te(t))iK(s)||Re(cwe(s));for(let s of g8e){if(!t[s])continue;const o=t[s];if(B2(s)){const u=uK(s),a=i[u];if(Ie(a)){if(Met(a.type)&&Ie(o)){Re(nwe(u));continue}}else s=u,Re(rwe(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Re(twe),s=nu),!Ptt(t,s,e)){Re(iC(s,e));continue}if(s===Ol&&e==="line"){const u=Pa(t[s]);if(u!=null&&u.aggregate){Re(awe);continue}}if(s===us&&(n?"fill"in t:"stroke"in t)){Re(IK("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===C3||s===_3&&!_e(o)&&!yu(o)||s===Bx&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Ie(a)?u.push(GB(a,s)):Re(c8(a,s)),u),[]));else{if(s===Bx&&o===null)i[s]=null;else if(!Ie(o)&&!Ba(o)&&!yu(o)&&!v6(o)&&!Ye(o)){Re(c8(o,s));continue}i[s]=Dae(o,s,r)}}return i}function N6(t,e){const n={};for(const r of Te(t)){const i=Dae(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function jtt(t){const e=[];for(const n of Te(t))if($d(t,n)){const r=t[n],i=Pe(r);for(const s of i)Ie(s)?e.push(s):S6(s)&&e.push(s.condition)}return e}function YB(t,e,n){if(t)for(const r of Te(t)){const i=t[r];if(_e(i))for(const s of i)e.call(n,s,r);else e.call(n,i,r)}}function Utt(t,e,n,r){return t?Te(t).reduce((i,s)=>{const o=t[s];return _e(o)?o.reduce((u,a)=>e.call(r,u,a,s),i):e.call(r,i,o,s)},n):n}function Mae(t,e){return Te(e).reduce((n,r)=>{switch(r){case En:case gr:case X5:case Z5:case J5:case tu:case sa:case sc:case I2:case nu:case Rl:case oa:case Tl:case ua:case aa:case ru:case po:case S3:case as:case $x:case Bx:return n;case _3:if(t==="line"||t==="trail")return n;case C3:case K5:{const i=e[r];if(_e(i)||Ie(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Ol:if(t==="trail")return n;case us:case la:case ca:case Nl:case oc:case uc:case lc:case ac:{const i=Pa(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var jae=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function qtt(t){const{tooltip:e}=t,n=jae(t,["tooltip"]);if(!e)return{filteredEncoding:n};let r,i;if(_e(e)){for(const s of e)s.aggregate?(r||(r=[]),r.push(s)):(i||(i=[]),i.push(s));r&&(n.tooltip=r)}else e.aggregate?n.tooltip=e:i=e;return _e(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function KB(t,e,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:u})=>{const a=r?` of ${XB(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=jtt(n).map(Ctt);return{tooltip:[...i,..._l(s,_t)]}}function XB(t){const{title:e,field:n}=t;return Zn(e,n)}function JB(t,e,n,r,i){const{scale:s,axis:o}=n;return({partName:u,mark:a,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const x=XB(n);return Uae(t,u,i,{mark:a,encoding:Object.assign(Object.assign(Object.assign({[e]:Object.assign(Object.assign(Object.assign({field:`${l}_${n.field}`,type:n.type},x!==void 0?{title:x}:{}),s!==void 0?{scale:s}:{}),o!==void 0?{axis:o}:{})},je(c)?{[`${e}2`]:{field:`${c}_${n.field}`}}:{}),r),f)})}}function Uae(t,e,n,r){const{clip:i,color:s,opacity:o}=t,u=t.type;return t[e]||t[e]===void 0&&n[e]?[Object.assign(Object.assign({},r),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[e]),i?{clip:i}:{}),s?{color:s}:{}),o?{opacity:o}:{}),Ia(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),D2(t[e])?{}:t[e])})]:[]}function qae(t,e,n){const{encoding:r}=t,i=e==="vertical"?"y":"x",s=r[i],o=r[`${i}2`],u=r[`${i}Error`],a=r[`${i}Error2`];return{continuousAxisChannelDef:D6(s,n),continuousAxisChannelDef2:D6(o,n),continuousAxisChannelDefError:D6(u,n),continuousAxisChannelDefError2:D6(a,n),continuousAxis:i}}function D6(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=jae(t,["aggregate"]);return n!==e&&Re(Pwe(n,e)),r}else return t}function Hae(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(Ia(n)&&n.orient)return n.orient;if(ka(i)){if(ka(s)){const o=Ie(i)&&i.aggregate,u=Ie(s)&&s.aggregate;if(!o&&u===e)return"vertical";if(!u&&o===e)return"horizontal";if(o===e&&u===e)throw new Error("Both x and y cannot have aggregate");return M1(s)&&!M1(i)?"horizontal":"vertical"}return"horizontal"}else{if(ka(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var F6=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const w6="boxplot",Htt=["box","median","outliers","rule","ticks"],ztt=new O6(w6,Qae);function zae(t){return nn(t)?"tukey":t}function Qae(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:N6(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=F6(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(NK("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=It("size",l,e),x=zae(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:v,ticksOrient:S,boxOrient:C,customTooltipWithoutAggregatedField:_}=Qtt(t,c,e),{color:b,size:R}=v,O=F6(v,["color","size"]),L=J=>JB(l,y,g,J,e.boxplot),M=L(O),q=L(v),W=L(Object.assign(Object.assign({},O),R?{size:R}:{})),B=KB([{fieldPrefix:x==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:x==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,v),G={type:"tick",color:"black",opacity:1,orient:S,invalid:null,aria:!1},te=x==="min-max"?B:KB([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,v),X=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:te}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"lower_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"upper_whisker",extraEncoding:te})],de=[...x!=="tukey"?X:[],...q({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:C,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...W({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},He(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:S,aria:!1}),positionPrefix:"mid_box",extraEncoding:B})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:de});const be=`datum["lower_box_${g.field}"]`,ee=`datum["upper_box_${g.field}"]`,U=`(${ee} - ${be})`,T=`${be} - ${c} * ${U}`,w=`${ee} + ${c} * ${U}`,k=`datum["${g.field}"]`,z={joinaggregate:Gae(g.field),groupby:E},Y={transform:[{filter:`(${T} <= ${k}) && (${k} <= ${w})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${g.field}`},{op:"max",field:g.field,as:`upper_whisker_${g.field}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${g.field}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${g.field}`},...A],groupby:E}],layer:X},V=F6(O,["tooltip"]),{scale:D,axis:$}=g,j=XB(g),Q=ho($,["title"]),I=Uae(l,"outliers",e.boxplot,{transform:[{filter:`(${k} < ${T}) || (${k} > ${w})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},j!==void 0?{title:j}:{}),D!==void 0?{scale:D}:{}),Wt(Q)?{}:{axis:Q})},V),b?{color:b}:{}),_?{tooltip:_}:{})})[0];let H;const P=[...h,...p,z];return I?H={transform:P,layer:[I,Y]}:(H=Y,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:de}]})}function Gae(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function Qtt(t,e,n){const r=Hae(t,w6),{continuousAxisChannelDef:i,continuousAxis:s}=qae(t,r,w6),o=i.field,u=zae(e),a=[...Gae(o),{op:"median",field:o,as:`mid_box_${o}`},{op:"min",field:o,as:(u==="min-max"?"lower_whisker_":"min_")+o},{op:"max",field:o,as:(u==="min-max"?"upper_whisker_":"max_")+o}],l=u==="min-max"||u==="tukey"?[]:[{calculate:`datum["upper_box_${o}"] - datum["lower_box_${o}"]`,as:`iqr_${o}`},{calculate:`min(datum["upper_box_${o}"] + datum["iqr_${o}"] * ${e}, datum["max_${o}"])`,as:`upper_whisker_${o}`},{calculate:`max(datum["lower_box_${o}"] - datum["iqr_${o}"] * ${e}, datum["min_${o}"])`,as:`lower_whisker_${o}`}],c=t.encoding,f=s;c[f];const x=F6(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=qtt(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=Pae(p,n),v=r==="vertical"?"horizontal":"vertical",S=r,C=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:C,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:v,boxOrient:S,customTooltipWithoutAggregatedField:h}}var Wae=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ZB="errorbar",Gtt=["ticks","rule"],Wtt=new O6(ZB,Vae);function Vae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:N6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Yae(t,ZB,e);delete s.size;const c=JB(u,i,r,s,e.errorbar),f=u.thickness,x=u.size,h=Object.assign(Object.assign({type:"tick",orient:o,aria:!1},f!==void 0?{thickness:f}:{}),x!==void 0?{size:x}:{}),p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:Object.assign({type:"rule",ariaRoleDescription:"errorbar"},f!==void 0?{size:f}:{}),positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return Object.assign(Object.assign(Object.assign({},a),{transform:n}),p.length>1?{layer:p}:Object.assign({},p[0]))}function Vtt(t,e){const{encoding:n}=t;if(Ytt(n))return{orient:Hae(t,e),inputType:"raw"};const r=Ktt(n),i=Xtt(n),s=n.x,o=n.y;if(r){if(i)throw new Error(`${e} cannot be both type aggregated-upper-lower and aggregated-error`);const u=n.x2,a=n.y2;if(st(u)&&st(a))throw new Error(`${e} cannot have both x2 and y2`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(st(a)){if(ka(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${e}`)}throw new Error("No ranged axis")}else{const u=n.xError,a=n.xError2,l=n.yError,c=n.yError2;if(st(a)&&!st(u))throw new Error(`${e} cannot have xError2 without xError`);if(st(c)&&!st(l))throw new Error(`${e} cannot have yError2 without yError`);if(st(u)&&st(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(st(l)){if(ka(o))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function Ytt(t){return(st(t.x)||st(t.y))&&!st(t.x2)&&!st(t.y2)&&!st(t.xError)&&!st(t.xError2)&&!st(t.yError)&&!st(t.yError2)}function Ktt(t){return st(t.x2)||st(t.y2)}function Xtt(t){return st(t.xError)||st(t.xError2)||st(t.yError)||st(t.yError2)}function Yae(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=Wae(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(NK(e));const{orient:c,inputType:f}=Vtt(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=qae(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:v}=Jtt(l,x,h,p,m,f,e,n),S=s,C=g;S[C];const _=g==="x"?"x2":"y2";S[_];const b=g==="x"?"xError":"yError";S[b];const R=g==="x"?"xError2":"yError2";S[R];const O=Wae(S,[typeof C=="symbol"?C:C+"",typeof _=="symbol"?_:_+"",typeof b=="symbol"?b:b+"",typeof R=="symbol"?R:R+""]),{bins:L,timeUnits:M,aggregate:q,groupby:W,encoding:B}=Pae(O,n),G=[...q,...y],te=f!=="raw"?[]:W,X=KB(A,x,B,v);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...L,...M,...G.length===0?[]:[{aggregate:G,groupby:te}],...E],groupby:te,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:B,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:X}}function Jtt(t,e,n,r,i,s,o,u){let a=[],l=[];const c=e.field;let f,x=!1;if(s==="raw"){const h=t.center?t.center:t.extent?t.extent==="iqr"?"median":"mean":u.errorbar.center,p=t.extent?t.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&Re(kwe(h,p,o)),p==="stderr"||p==="stdev")a=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`datum["center_${c}"] + datum["extent_${c}"]`,as:`upper_${c}`},{calculate:`datum["center_${c}"] - datum["extent_${c}"]`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:W5(h)},{fieldPrefix:"upper_",titlePrefix:Kae(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:Kae(h,p,"-")}],x=!0;else{let m,g,y;p==="ci"?(m="mean",g="ci0",y="ci1"):(m="median",g="q1",y="q3"),a=[{op:g,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:m,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:k1({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:k1({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:k1({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Re(Bwe(t.center,t.extent)),s==="aggregated-upper-lower"?(f=[],l=[{calculate:`datum["${n.field}"]`,as:`upper_${c}`},{calculate:`datum["${c}"]`,as:`lower_${c}`}]):s==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`datum["${c}"] + datum["${r.field}"]`,as:`upper_${c}`}],i?l.push({calculate:`datum["${c}"] + datum["${i.field}"]`,as:`lower_${c}`}):l.push({calculate:`datum["${c}"] - datum["${r.field}"]`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:L2(L2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function Kae(t,e,n){return`${W5(t)} ${n} ${e}`}const ek="errorband",Ztt=["band","borders"],ent=new O6(ek,Xae);function Xae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:N6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Yae(t,ek,e),l=o,c=JB(l,i,r,s,e.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let x={type:f?"area":"rect"},h={type:f?"line":"rule"};const p=Object.assign(Object.assign({},l.interpolate?{interpolate:l.interpolate}:{}),l.tension&&l.interpolate?{tension:l.tension}:{});return f?(x=Object.assign(Object.assign(Object.assign({},x),p),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),p),{aria:!1})):l.interpolate?Re(PK("interpolate")):l.tension&&Re(PK("tension")),Object.assign(Object.assign({},u),{transform:n,layer:[...c({partName:"band",mark:x,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:a})]})}const Jae={};function tk(t,e,n){const r=new O6(t,e);Jae[t]={normalizer:r,parts:n}}function tnt(){return Te(Jae)}tk(w6,Qae,Htt),tk(ZB,Vae,Gtt),tk(ek,Xae,Ztt);const nnt=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Zae={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},ele={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},rnt=Te(Zae),int=Te(ele),tle=Te({header:1,headerRow:1,headerColumn:1,headerFacet:1}),nle=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],snt={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},ont={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},RE="_vgsid_",unt={point:{on:"click",fields:[RE],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function nk(t){return!!t&&(t==="legend"||!!t.legend)}function rk(t){return nk(t)&&He(t)}function ik(t){return!!t.select}var ant=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function rle(t){const e=[];for(const n of t||[]){if(ik(n))continue;const{expr:r,bind:i}=n,s=ant(n,["expr","bind"]);if(i&&r){const o=Object.assign(Object.assign({},s),{bind:i,init:r});e.push(o)}else{const o=Object.assign(Object.assign(Object.assign({},s),r?{update:r}:{}),i?{bind:i}:{});e.push(o)}}return e}function lnt(t){return L6(t)||ok(t)||sk(t)}function sk(t){return"concat"in t}function L6(t){return"vconcat"in t}function ok(t){return"hconcat"in t}function ile({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function Ma(t){return He(t)&&t.step!==void 0}function sle(t){return t.view||t.width||t.height}const ole=20,cnt=Te({align:1,bounds:1,center:1,columns:1,spacing:1});function fnt(t,e,n){var r,i;const s=n[e],o={},{spacing:u,columns:a}=s;u!==void 0&&(o.spacing=u),a!==void 0&&(A6(t)&&!_E(t.facet)||sk(t))&&(o.columns=a),L6(t)&&(o.columns=1);for(const l of cnt)if(t[l]!==void 0)if(l==="spacing"){const c=t[l];o[l]=nn(c)?c:{row:(r=c.row)!==null&&r!==void 0?r:u,column:(i=c.column)!==null&&i!==void 0?i:u}}else o[l]=t[l];return o}var xnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function uk(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function I6(t,e){const n=$6(t,e);return Ma(n)?n.step:ule}function $6(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return Zn(r,{step:t.step})}const ule=20,dnt={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:ule},mark:att,arc:{},area:{},bar:ctt,circle:{},geoshape:{},image:{},line:{},point:{},rect:ftt,rule:{color:"black"},square:{},text:{color:"black"},tick:xtt,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:Get,projection:{},legend:snt,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:unt,style:{},title:{},facet:{spacing:ole},concat:{spacing:ole}},o0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],ale={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},lle={blue:o0[0],orange:o0[1],red:o0[2],teal:o0[3],green:o0[4],yellow:o0[5],purple:o0[6],pink:o0[7],brown:o0[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function hnt(t={}){return{signals:[{name:"color",value:He(t)?Object.assign(Object.assign({},lle),t):lle}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}function pnt(t){return{signals:[{name:"fontSize",value:He(t)?Object.assign(Object.assign({},ale),t):ale}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}function gnt(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function cle(t){const e=Te(t||{}),n={};for(const r of e){const i=t[r];n[r]=TE(i)?gK(i):ks(i)}return n}function mnt(t){const e=Te(t),n={};for(const r of e)n[r]=cle(t[r]);return n}const ynt=[...lae,...Bae,...tle,"background","padding","legend","lineBreak","scale","style","title","view"];function fle(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=xnt(t,["color","font","fontSize","selection"]),o=HF({},ut(dnt),n?gnt(n):{},e?hnt(e):{},r?pnt(r):{},s||{});i&&k5(o,"selection",i,!0);const u=ho(o,ynt);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=ks(o[a]));for(const a of lae)o[a]&&(u[a]=cs(o[a]));for(const a of Bae)o[a]&&(u[a]=cle(o[a]));for(const a of tle)o[a]&&(u[a]=cs(o[a]));return o.legend&&(u.legend=cs(o.legend)),o.scale&&(u.scale=cs(o.scale)),o.style&&(u.style=mnt(o.style)),o.title&&(u.title=cs(o.title)),o.view&&(u.view=cs(o.view)),u}const Ent=new Set(["view",...rtt]),Ant=["color","fontSize","background","padding","facet","concat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],vnt=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},utt);function Snt(t){t=ut(t);for(const e of Ant)delete t[e];if(t.axis)for(const e in t.axis)TE(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of nnt)delete t.legend[e];if(t.mark){for(const e of aae)delete t.mark[e];t.mark.tooltip&&He(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(rle(t.params)),delete t.params);for(const e of Ent){for(const r of aae)delete t[e][r];const n=vnt[e];if(n)for(const r of n)delete t[e][r];Cnt(t,e)}for(const e of tnt())delete t[e];_nt(t);for(const e in t)He(t[e])&&Wt(t[e])&&delete t[e];return Wt(t)?void 0:t}function _nt(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=pK(t.title);Wt(e)||(t.style["group-title"]=Object.assign(Object.assign({},t.style["group-title"]),e)),Wt(n)||(t.style["group-subtitle"]=Object.assign(Object.assign({},t.style["group-subtitle"]),n)),Wt(r)?delete t.title:t.title=r}function Cnt(t,e,n,r){const i=r?t[e][r]:t[e];e==="view"&&(n="cell");const s=Object.assign(Object.assign({},i),t.style[n??e]);Wt(s)||(t.style[n??e]=s),r||delete t[e]}function B6(t){return"layer"in t}function bnt(t){return"repeat"in t}function Tnt(t){return!_e(t.repeat)&&t.repeat.layer}var Rnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class ak{map(e,n){return A6(e)?this.mapFacet(e,n):bnt(e)?this.mapRepeat(e,n):ok(e)?this.mapHConcat(e,n):L6(e)?this.mapVConcat(e,n):sk(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(B6(e))return this.mapLayer(e,n);if(s0(e))return this.mapUnit(e,n);throw new Error(a8(e))}mapLayer(e,n){return Object.assign(Object.assign({},e),{layer:e.layer.map(r=>this.mapLayerOrUnit(r,n))})}mapHConcat(e,n){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(r=>this.map(r,n))})}mapVConcat(e,n){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(r=>this.map(r,n))})}mapConcat(e,n){const{concat:r}=e,i=Rnt(e,["concat"]);return Object.assign(Object.assign({},i),{concat:r.map(s=>this.map(s,n))})}mapFacet(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}mapRepeat(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}}const Ont={zero:1,center:1,normalize:1};function Nnt(t){return t in Ont}const Dnt=new Set([iae,d6,x6,g6,p6,FB,wB,h6,sae,DB]),Fnt=new Set([d6,x6,iae]);function j1(t){return Ie(t)&&UB(t)==="quantitative"&&!t.bin}function xle(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Ie(s)&&Ie(o))if(j1(s)&&j1(o)){if(s.stack)return e;if(o.stack)return i;const u=Ie(s)&&!!s.aggregate,a=Ie(o)&&!!o.aggregate;if(u!==a)return u?e:i;{const l=(n=s.scale)===null||n===void 0?void 0:n.type,c=(r=o.scale)===null||r===void 0?void 0:r.type;if(l&&l!=="linear")return i;if(c&&c!=="linear")return e}}else{if(j1(s))return e;if(j1(o))return i}else{if(j1(s))return e;if(j1(o))return i}}function wnt(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function dle(t,e,n={}){var r,i;const s=Ia(t)?t.type:t;if(!Dnt.has(s))return null;const o=xle(e,"x")||xle(e,"theta");if(!o)return null;const u=e[o],a=Ie(u)?$e(u,{}):void 0,l=wnt(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Ie(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Ie(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=m8e.reduce((p,m)=>{if(m!=="tooltip"&&$d(e,m)){const g=e[m];for(const y of Pe(g)){const E=Pa(y);if(E.aggregate)continue;const A=$e(E,{});(!A||!f.has(A))&&p.push({channel:m,fieldDef:E})}}return p},[]);let h;if(u.stack!==void 0?D2(u.stack)?h=u.stack?"zero":null:h=u.stack:Fnt.has(s)&&(h="zero"),!h||!Nnt(h)||VB(e)&&x.length===0)return null;if(!((r=u==null?void 0:u.scale)===null||r===void 0)&&r.type&&((i=u==null?void 0:u.scale)===null||i===void 0?void 0:i.type)!==Es.LINEAR){if(n.disallowNonLinearStack)return null;Re(Lwe(u.scale.type))}return st(e[Dl(o)])?(u.stack!==void 0&&Re(wwe(o)),null):(Ie(u)&&u.aggregate&&!N8e.has(u.aggregate)&&Re(Iwe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:zc(s),stackBy:x,offset:h})}var hle=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Lnt(t){const e=hle(t,["point","line"]);return Te(e).length>1?e:e.type}function Int(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:ho(t[e],["point","line"])}));return t}function lk(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?He(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?He(e.point)?e.point:{}:void 0}function ple(t,e={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:e.line?e.line===!0?{}:e.line:void 0}class $nt{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(s0(e)){const{mark:r,encoding:i}=e,s=Ia(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!lk(s,n[s.type],i);case"area":return!!lk(s,n[s.type],i)||!!ple(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=hle(e,["params","projection","mark","encoding"]),c=N6(a,i),f=Ia(u)?u:{type:u},x=lk(f,i[f.type],c),h=f.type==="area"&&ple(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:Lnt(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:ho(c,["shape"])})],m=dle(f,c);let g=c;if(m){const{fieldChannel:y,offset:E}=m;g=Object.assign(Object.assign({},c),{[y]:Object.assign(Object.assign({},c[y]),E?{stack:E}:{})})}return h&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},E3(f,["clip","interpolate","tension","tooltip"])),h),encoding:g})),x&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},E3(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:Int(i)}))}}var Bnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function knt(t,e){return e?_E(t)?Ele(t,e):gle(t,e):t}function ck(t,e){return e?Ele(t,e):t}function fk(t,e,n){const r=e[t];if(Stt(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Re(V8e(r.repeat));return}return e}function gle(t,e){if(t=fk("field",t,e),t!==void 0){if(t===null)return null;if(jB(t)&&$a(t.sort)){const n=fk("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function mle(t,e){if(Ie(t))return gle(t,e);{const n=fk("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function yle(t,e){if(st(t)){const n=mle(t,e);if(n)return n;if(v6(t))return{condition:t.condition}}else{if(CE(t)){const n=mle(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):Bnt(t,["condition"])}return t}}function Ele(t,e){const n={};for(const r in t)if(Je(t,r)){const i=t[r];if(_e(i))n[r]=i.map(s=>yle(s,e)).filter(s=>s);else{const s=yle(i,e);s!==void 0&&(n[r]=s)}}return n}class Pnt{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(s0(e)){const{encoding:n,mark:r}=e;if(r==="line"||Ia(r)&&r.type==="line")for(const i of h8e){const s=kx(i),o=n[s];if(n[i]&&(Ie(o)&&!Ti(o.bin)||Ba(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Re(pwe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:He(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var Qc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Mnt extends ak{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[ztt,Wtt,ent,new $nt,new Pnt]}map(e,n){if(s0(e)){const r=$d(e.encoding,Cl),i=$d(e.encoding,bl),s=$d(e.encoding,Y5);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=ck(e.encoding,n.repeater),o=Object.assign(Object.assign({},e),s?{encoding:s}:{});if(r||i)return this.mapUnitWithParentEncodingOrProjection(o,n);const u=this.mapLayerOrUnit.bind(this);for(const a of this.nonFacetUnitNormalizers)if(a.hasMatchingType(o,n.config))return a.run(o,n,u);return o}mapRepeat(e,n){return Tnt(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=Qc(e,["repeat","spec"]),{row:o,column:u,layer:a}=r,{repeater:l={},repeaterPrefix:c=""}=n;return o||u?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),u?{column:u}:{}),spec:{repeat:{layer:a},spec:i}}),n):Object.assign(Object.assign({},s),{layer:a.map(f=>{const x=Object.assign(Object.assign({},l),{layer:f}),h=`${(i.name||"")+c}child__layer_${yn(f)}`,p=this.mapLayerOrUnit(i,Object.assign(Object.assign({},n),{repeater:x,repeaterPrefix:h}));return p.name=h,p})})}mapNonLayerRepeat(e,n){var r;const{repeat:i,spec:s,data:o}=e,u=Qc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=ho(e,["columns"]),Re(DK("repeat")));const a=[],{repeater:l={},repeaterPrefix:c=""}=n,f=!_e(i)&&i.row||[l?l.row:null],x=!_e(i)&&i.column||[l?l.column:null],h=_e(i)&&i||[l?l.repeat:null];for(const m of h)for(const g of f)for(const y of x){const E={repeat:m,row:g,column:y,layer:l.layer},A=(s.name||"")+c+"child__"+(_e(i)?`${yn(m)}`:(i.row?`row_${yn(g)}`:"")+(i.column?`column_${yn(y)}`:"")),v=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));v.name=A,a.push(ho(v,["data"]))}const p=_e(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:(r=s.data)!==null&&r!==void 0?r:o,align:"all"},u),{columns:p,concat:a})}mapFacet(e,n){const{facet:r}=e;return _E(r)&&e.columns&&(e=ho(e,["columns"]),Re(DK("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=vle({parentProjection:o,projection:i}),l=Ale({parentEncoding:s,encoding:ck(r,n.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),l?{encoding:l}:{}),{config:u})}mapFacetedUnit(e,n){const r=e.encoding,{row:i,column:s,facet:o}=r,u=Qc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=Qc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=ck(u,n.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},m),y),{facet:g,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l?{width:l}:{}),f?{height:f}:{}),x?{view:x}:{}),c?{projection:c}:{}),{mark:a,encoding:E}),h?{params:h}:{})}),n)}getFacetMappingAndLayout(e,n){var r;const{row:i,column:s,facet:o}=e;if(i||s){o&&Re(dwe([...i?[Cl]:[],...s?[bl]:[]]));const u={},a={};for(const l of[Cl,bl]){const c=e[l];if(c){const f=Qc(c,["align","center","spacing","columns"]);u[l]=f;for(const x of["align","center","spacing"])c[x]!==void 0&&((r=a[x])!==null&&r!==void 0||(a[x]={}),a[x][l]=c[x])}}return{facetMapping:u,layout:a}}else{const{align:u,center:a,spacing:l,columns:c}=o,f=Qc(o,["align","center","spacing","columns"]);return{facetMapping:knt(f,n.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},u?{align:u}:{}),a?{center:a}:{}),l?{spacing:l}:{}),c?{columns:c}:{})}}}mapLayer(e,n){var{parentEncoding:r,parentProjection:i}=n,s=Qc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=Qc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:Ale({parentEncoding:r,encoding:o,layer:!0}),parentProjection:vle({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function Ale({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...Te(t),...Te(e)]);for(const s of i){const o=e[s],u=t[s];if(st(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else CE(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||yu(u)||Ye(u)||st(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Wt(r)?void 0:r}function vle(t){const{parentProjection:e,projection:n}=t;return e&&n&&Re(ewe({parentProjection:e,projection:n})),n??e}function xk(t){return"filter"in t}function jnt(t){return(t==null?void 0:t.stop)!==void 0}function Sle(t){return"lookup"in t}function Unt(t){return"data"in t}function qnt(t){return"param"in t}function Hnt(t){return"pivot"in t}function znt(t){return"density"in t}function Qnt(t){return"quantile"in t}function Gnt(t){return"regression"in t}function Wnt(t){return"loess"in t}function Vnt(t){return"sample"in t}function Ynt(t){return"window"in t}function Knt(t){return"joinaggregate"in t}function Xnt(t){return"flatten"in t}function Jnt(t){return"calculate"in t}function _le(t){return"bin"in t}function Znt(t){return"impute"in t}function ert(t){return"timeUnit"in t}function trt(t){return"aggregate"in t}function nrt(t){return"stack"in t}function rrt(t){return"fold"in t}function irt(t){return t.map(e=>xk(e)?{filter:F2(e.filter,u9e)}:e)}var Gc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class srt extends ak{map(e,n){var r,i;return(r=n.emptySelections)!==null&&r!==void 0||(n.emptySelections={}),(i=n.selectionPredicates)!==null&&i!==void 0||(n.selectionPredicates={}),e=Cle(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=Cle(e,n),e.encoding){const r={};for(const[i,s]of Ix(e.encoding))r[i]=ble(s,n);e=Object.assign(Object.assign({},e),{encoding:r})}return super.mapLayerOrUnit(e,n)}mapUnit(e,n){const r=e,{selection:i}=r,s=Gc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:Ix(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Gc(l,["init","bind","empty"]);h.type==="single"?(h.type="point",h.toggle=!1):h.type==="multi"&&(h.type="point"),n.emptySelections[o]=x!=="none";for(const p of bi((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function Cle(t,e){const{transform:n}=t,r=Gc(t,["transform"]);if(n){const i=n.map(s=>{if(xk(s))return{filter:dk(s,e)};if(_le(s)&&Px(s.bin))return Object.assign(Object.assign({},s),{bin:Tle(s.bin)});if(Sle(s)){const o=s.from,{selection:u}=o,a=Gc(o,["selection"]);return u?Object.assign(Object.assign({},s),{from:Object.assign({param:u},a)}):s}return s});return Object.assign(Object.assign({},r),{transform:i})}return t}function ble(t,e){var n,r;const i=ut(t);if(Ie(i)&&Px(i.bin)&&(i.bin=Tle(i.bin)),Id(i)&&(!((r=(n=i.scale)===null||n===void 0?void 0:n.domain)===null||r===void 0)&&r.selection)){const s=i.scale.domain,{selection:o}=s,u=Gc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(v6(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Gc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:dk(s,e)})});else{const s=ble(i.condition,e),{selection:o,param:u,test:a}=s,l=Gc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:dk(i.condition,e)})}return i}function Tle(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Gc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function dk(t,e){const n=r=>F2(r,i=>{var s,o,u;const a=(s=e.emptySelections[i])!==null&&s!==void 0?s:!0,l={param:i,empty:a};return(o=(u=e.selectionPredicates)[i])!==null&&o!==void 0||(u[i]=[]),e.selectionPredicates[i].push(l),l});return t.selection?n(t.selection):F2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class hk extends ak{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!s0(e)){const s=[];for(const o of e.params)ik(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,Rle(e,n))}mapUnit(e,n){var r;const i=n.selections;if(!i||!i.length)return e;const s=((r=n.path)!==null&&r!==void 0?r:[]).concat(e.name),o=[];for(const u of i)if(!u.views||!u.views.length)o.push(u);else for(const a of u.views)(je(a)&&(a===e.name||s.indexOf(a)>=0)||_e(a)&&a.map(l=>s.indexOf(l)).every((l,c,f)=>l!==-1&&(c===0||l>f[c-1])))&&o.push(u);return o.length&&(e.params=o),e}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=hk.prototype[t];hk.prototype[t]=function(n,r){return e.call(this,n,Rle(n,r))}}function Rle(t,e){var n;return t.name?Object.assign(Object.assign({},e),{path:((n=e.path)!==null&&n!==void 0?n:[]).concat(t.name)}):e}function ort(t,e){e===void 0&&(e=fle(t.config));const n=crt(t,e),{width:r,height:i}=t,s=frt(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const urt=new Mnt,art=new srt,lrt=new hk;function crt(t,e={}){const n={config:e};return lrt.map(urt.map(art.map(t,n),n),n)}function Ole(t){return je(t)?{type:t}:t??{}}function frt(t,e,n){let{width:r,height:i}=e;const s=s0(t)||B6(t),o={};s?r=="container"&&i=="container"?(o.type="fit",o.contains="padding"):r=="container"?(o.type="fit-x",o.contains="padding"):i=="container"&&(o.type="fit-y",o.contains="padding"):(r=="container"&&(Re(bK("width")),r=void 0),i=="container"&&(Re(bK("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?Ole(n.autosize):{}),Ole(t.autosize));if(u.type==="fit"&&!s&&(Re(P8e),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Re(TK("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Re(TK("height")),!Sl(u,{type:"pad"}))return u}function xrt(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function drt(t){return t?`fit-${eC(t)}`:"fit"}const hrt=["background","padding"];function Nle(t,e){const n={};for(const r of hrt)t&&t[r]!==void 0&&(n[r]=ks(t[r]));return e&&(n.params=t.params),n}class u0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new u0(ut(this.explicit),ut(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return Zn(this.explicit[e],this.implicit[e])}getWithExplicit(e){return this.explicit[e]!==void 0?{explicit:!0,value:this.explicit[e]}:this.implicit[e]!==void 0?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:n,explicit:r}){n!==void 0&&this.set(e,n,r)}set(e,n,r){return delete this[r?"implicit":"explicit"][e],this[r?"explicit":"implicit"][e]=n,this}copyKeyFromSplit(e,{explicit:n,implicit:r}){n[e]!==void 0?this.set(e,n[e],!0):r[e]!==void 0&&this.set(e,r[e],!1)}copyKeyFromObject(e,n){n[e]!==void 0&&this.set(e,n[e],!0)}copyAll(e){for(const n of Te(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function ja(t){return{explicit:!0,value:t}}function Ws(t){return{explicit:!1,value:t}}function Dle(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:k6(e,n,r,i)}}function k6(t,e,n,r){return t.explicit&&e.explicit&&Re(bwe(n,r,t.value,e.value)),t}function Wc(t,e,n,r,i=k6){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Sl(t.value,e.value)?t:i(t,e,n,r)}class prt extends u0{constructor(e={},n={},r=!1){super(e,n),this.explicit=e,this.implicit=n,this.parseNothing=r}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function U1(t){return"url"in t}function OE(t){return"values"in t}function Fle(t){return"name"in t&&!U1(t)&&!OE(t)&&!Vc(t)}function Vc(t){return t&&(wle(t)||Lle(t)||pk(t))}function wle(t){return"sequence"in t}function Lle(t){return"sphere"in t}function pk(t){return"graticule"in t}var Jt;(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup"})(Jt||(Jt={}));var grt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function q1(t,e=!0,n=Si){if(_e(t)){const r=t.map(i=>q1(i,e,n));return e?`[${r.join(", ")}]`:r}else if(jx(t))return n(e?T3(t):Kwe(t));return e?n(rn(t)):t}function mrt(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${Xc}, ${r.resolve==="global"?"true":`{unit: ${Q1(t)}}`}`;for(const o of q6)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+Krt,on:[{events:{signal:r.name+Xc},update:`modify(${we(r.name+Bd)}, ${s})`}]})}return gk(e)}function yrt(t,e){if(t.component.selection&&Te(t.component.selection).length){const n=we(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:bd("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return gk(e)}function Ert(t,e){var n;let r=!1;for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=we(s+Bd);if(e.filter(a=>a.name===s).length===0){const a=i.resolve==="global"?"union":i.resolve,l=i.type==="point"?", true, true)":")";e.push({name:i.name,update:`${n0e}(${o}, ${we(a)}${l}`})}r=!0;for(const a of q6)a.defined(i)&&a.topLevelSignals&&(e=a.topLevelSignals(t,i,e))}return r&&e.filter(s=>s.name==="unit").length===0&&e.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),gk(e)}function Art(t,e){var n;const r=[...e];for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+Bd};if(i.init){const u=i.project.items.map(a=>grt(a,["signals"]));s.values=i.init.map(a=>({unit:Q1(t,{escape:!1}),fields:u,values:q1(a,!1)}))}r.filter(u=>u.name===i.name+Bd).length||r.push(s)}return r}function Ile(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of q6)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function vrt(t,e){for(const n of t.children)Qn(n)&&(e=Ile(n,e));return e}function Srt(t,e,n,r){const i=u0e(t,e.param,e);return{signal:Gs(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function gk(t){return t.map(e=>(e.on&&!e.on.length&&delete e.on,e))}class qt{constructor(e,n){this.debugName=n,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,n){if(this._children.includes(e)){Re(X8e);return}n!==void 0?this._children.splice(n,0,e):this._children.push(e)}removeChild(e){const n=this._children.indexOf(e);return this._children.splice(n,1),n}remove(){let e=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,e++)}insertAsParentOf(e){const n=e.parent;n.removeChild(this),this.parent=n,e.parent=this}swapWithParent(){const e=this._parent,n=e.parent;for(const r of this._children)r.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=n,e.parent=this}}class zi extends qt{constructor(e,n,r,i){super(e,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${r8e()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var $le=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Ua extends qt{constructor(e,n){super(e),this.formula=n}clone(){return new Ua(null,ut(this.formula))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s)=>{const{field:o,timeUnit:u}=s;if(u){const a=$e(s,{forAs:!0});i[_t({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Wt(r)?null:new Ua(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=$le(r,["timeUnit"]),o=Ri(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new Ua(e,{[_t(u)]:u})}merge(e){this.formula=Object.assign({},this.formula);for(const n in e.formula)this.formula[n]||(this.formula[n]=e.formula[n]);for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}removeFormulas(e){const n={};for(const[r,i]of Ix(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set(bi(this.formula).map(e=>e.as))}dependentFields(){return new Set(bi(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${_t(this.formula)}`}assemble(){const e=[];for(const n of bi(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=Ri(s),{unit:u,utc:a}=o,l=$le(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:eu(r),type:"timeunit"},u?{units:p8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var _rt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const NE="_tuple_fields";class Crt{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const brt={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new Crt,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=yn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=yn(`${i}_${y}_${A}`);return a.add(E),{[g]:E}},c=e.type,f=t.config.selection[c],x=n.value!==void 0?Pe(n.value):null;let{fields:h,encodings:p}=He(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(He(m))for(const g of Te(m))d8e(g)?(p||(p=[])).push(g):c==="interval"?(Re(W8e),p=f.encodings):(h||(h=[])).push(g)}!h&&!p&&(p=f.encodings,"fields"in f&&(h=f.fields));for(const m of p??[]){const g=t.fieldDef(m);if(g){let y=g.field;if(g.aggregate){Re(M8e(m,g.aggregate));continue}else if(!y){Re(OK(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[_t(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const v=t.getScaleComponent(m).get("type");Gs(v)&&(E="R")}else g.bin&&(E="R-RE");const A={field:y,channel:m,type:E};A.signals=Object.assign(Object.assign({},l(A,"data")),l(A,"visual")),s.items.push(o[y]=A),s.hasField[y]=s.hasChannel[m]=o[y]}}else Re(OK(m))}for(const m of h??[]){if(s.hasField[m])continue;const g={type:"E",field:m};g.signals=Object.assign({},l(g,"data")),s.items.push(g),s.hasField[m]=g}x&&(e.init=x.map(m=>s.items.map(g=>He(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Wt(u)||(s.timeUnit=new Ua(null,u))},signals:(t,e,n)=>{const r=e.name+NE;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=_rt(s,["signals","hasLegend"]);return o.field=eu(o.field),o})})}},Yc={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,e)=>{const n=e.scales=[];for(const r of e.project.items){const i=r.channel;if(!fc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!Gs(o)){Re(q8e);continue}s.set("selectionExtent",{param:e.name,field:r.field},!0),n.push(r)}},topLevelSignals:(t,e,n)=>{const r=e.scales.filter(o=>n.filter(u=>u.name===o.signals.data).length===0);if(!t.parent||yk(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(n0e)>=0)i.update=`{${r.map(o=>`${we(eu(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${we(eu(o.field))}: ${o.signals.data}`;s.includes(u)||(s=`${s.substring(0,s.length-1)}, ${u}}`)}i.update=s}return n.concat(r.map(o=>({name:o.signals.data})))},signals:(t,e,n)=>{if(t.parent&&!yk(t))for(const r of e.scales){const i=n.filter(s=>s.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function mk(t,e){return`domain(${we(t.scaleName(e))})`}function yk(t){var e;return t.parent&&J1(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:yk(t.parent.parent))}var Trt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const H1="_brush",Ek="_scale_trigger",Rrt={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+NE,s=Yc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${we(r+H1)}`;Ble(e,(f,x)=>{var h,p;const m=Pe((h=(p=x.between[0]).filter)!==null&&h!==void 0?h:p.filter=[]);return m.includes(c)||m.push(c),f})}e.project.items.forEach((c,f)=>{const x=c.channel;if(x!==En&&x!==gr){Re("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=Ort(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=we(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=Gs(E)?"+":"";n.push(...p),u.push(m),a.push({scaleName:t.scaleName(x),expr:`(!isArray(${m}) || (${A}invert(${y}, ${g})[0] === ${A}${m}[0] && ${A}invert(${y}, ${g})[1] === ${A}${m}[1]))`})}),!s&&a.length&&n.push({name:r+Ek,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+Ek} : {}`}]});const l=`unit: ${Q1(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+Xc},o?{init:`{${l}: ${q1(o)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${l}: [${u}]} : null`}]}:{}))},marks:(t,e,n)=>{const r=e.name,{x:i,y:s}=e.project.hasChannel,o=i==null?void 0:i.signals.visual,u=s==null?void 0:s.signals.visual,a=`data(${we(e.name+Bd)})`;if(Yc.defined(e)||!i&&!s)return n;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:s!==void 0?{signal:`${u}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:s!==void 0?{signal:`${u}[1]`}:{field:{group:"height"}}};if(e.resolve==="global")for(const g of Te(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${Q1(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=Trt(c,["fill","fillOpacity","cursor"]),m=Te(p).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,s!==void 0&&`${u}[0] !== ${u}[1]`].filter(E=>E).join(" && "),value:p[y]},{value:null}],g),{});return[{name:`${r+H1}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+H1,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function Ort(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=Yc.defined(e),a=we(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===En?"width":"height").signal,h=`${i}(unit)`,p=Ble(e,(m,g)=>[...m,{events:g.between[0],update:`[${h}, ${h}]`},{events:g,update:`[${s}[0], clamp(${h}, 0, ${x})]`}]);return p.push({events:{signal:e.name+Ek},update:Gs(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:q1(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:q1(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function Ble(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Re(`${r} is not an ordered event stream for interval selections.`),n),[])}const Nrt={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+NE,o=e.project,u="(item().isVoronoi ? datum.datum : datum)",a=o.items.map(h=>{const p=t.fieldDef(h.channel);return p!=null&&p.bin?`[${u}[${we(t.vgField(h.channel,{}))}], ${u}[${we(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${we(h.field)}]`}).join(", "),l=`unit: ${Q1(t)}, fields: ${s}, values`,c=e.events,f=bi((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+H1):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+Xc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function z1(t,e,n,r){const i=v6(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(vtt(a)){const{param:c,empty:f}=a,x=o0e(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=H6(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function Ak(t,e="text"){const n=t.encoding[e];return z1(t,n,e,r=>P6(r,t.config))}function P6(t,e,n="datum"){if(t){if(yu(t))return sn(t.value);if(st(t)){const{format:r,formatType:i}=C6(t);return BB({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function kle(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Mle({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return z1(t,o,"tooltip",a=>{const l=P6(a,i,u);if(l)return l;if(a===null)return;let c=It("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(He(c))return Ye(c)?c:c.content==="encoding"?Mle(n,s,i,e):{signal:u}})}}function Ple(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=kx(c),x=No(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||QB(x,n),p=Pe(h).join(", ");let m;if(Ir(c)){const g=c==="x"?"x2":"y2",y=Pa(t[g]);if(Ti(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:v,formatType:S}=C6(x);m=y6(E,A,v,S,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=C6(x);m=BB({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=P6(x,n,s).signal),o.push({channel:c,key:p,value:m})}YB(t,(l,c)=>{Ie(l)?u(l,c):S6(l)&&u(l.condition,c)});const a={};for(const{channel:l,key:c,value:f}of o)!i[l]&&!a[c]&&(a[c]=f);return a}function Mle(t,e,n,{reactiveGeom:r}={}){const i=Ple(t,e,n,{reactiveGeom:r}),s=Ix(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function Drt(t){const{markDef:e,config:n}=t,r=It("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),Frt(t)),wrt(t))}function Frt(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=It("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in $8e?{}:{ariaRoleDescription:{value:e}}}function wrt(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return z1(t,s,"description",a=>P6(a,t.config));const o=It("description",n,r);if(o!=null)return{description:sn(o)};if(r.aria===!1)return{};const u=Ple(e,i,r);if(!Wt(u))return{description:{signal:Ix(u).map(([a,l],c)=>`"${c>0?"; ":""}${a}: " + (${l})`).join(" + ")}}}function br(t,e,n={}){const{markDef:r,encoding:i,config:s}=e,{vgChannel:o}=n;let{defaultRef:u,defaultValue:a}=n;u===void 0&&(a??(a=It(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=sn(a)));const l=i[t];return z1(e,l,o??t,c=>$B({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function jle(t,e={filled:void 0}){var n,r,i,s;const{markDef:o,encoding:u,config:a}=t,{type:l}=o,c=(n=e.filled)!==null&&n!==void 0?n:It("filled",o,a),f=Ct(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=It(c===!0?"color":void 0,o,a,{vgChannel:"fill"}))!==null&&r!==void 0?r:a.mark[c===!0&&"color"])!==null&&i!==void 0?i:f,h=(s=It(c===!1?"color":void 0,o,a,{vgChannel:"stroke"}))!==null&&s!==void 0?s:a.mark[c===!1&&"color"],p=c?"fill":"stroke",m=Object.assign(Object.assign({},x?{fill:sn(x)}:{}),h?{stroke:sn(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Re(IK("property",{fill:"fill"in o,stroke:"stroke"in o})),Object.assign(Object.assign(Object.assign(Object.assign({},m),br("color",t,{vgChannel:p,defaultValue:c?x:h})),br("fill",t,{defaultValue:u.fill?x:void 0})),br("stroke",t,{defaultValue:u.stroke?h:void 0}))}function Lrt(t){const{encoding:e,mark:n}=t,r=e.order;return!zc(n)&&yu(r)?z1(t,r,"zindex",i=>sn(i.value)):{}}function DE({channel:t,markDef:e,encoding:n={},model:r,bandPosition:i}){const s=`${t}Offset`,o=e[s],u=n[s];if((s==="xOffset"||s==="yOffset")&&u)return{offsetType:"encoding",offset:$B({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:sn(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ui(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[Dl(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=DE({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=vk({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&Ir(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:Irt({channel:t,channelDef:a,channel2Def:l,markDef:s,config:o,scaleName:c,scale:f,stack:u,offset:x,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function Irt(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(st(n)&&i&&e===i.fieldChannel){if(Ie(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return m6({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return wd(n,r,{suffix:"end"},{offset:s})}return LB(t)}function vk({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=kx(n),a=cc(n),l=It(n,s,o,{vgChannel:a});if(l!==void 0)return SE(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!Ct([Es.LOG,Es.TIME,Es.UTC],c)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(e==="zeroOrMin")return u==="y"?{field:{group:"height"}}:{value:0};switch(u){case"radius":return{signal:`min(${t.width.signal},${t.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const c=t[ls(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const $rt={left:"x",center:"xc",right:"x2"},Brt={top:"y",middle:"yc",bottom:"y2"};function Ule(t,e,n,r="middle"){if(t==="radius"||t==="theta")return cc(t);const i=t==="x"?"align":"baseline",s=It(i,e,n);let o;return Ye(s)?(Re(hwe(i)),o=void 0):o=s,t==="x"?$rt[o||(r==="top"?"left":"center")]:Brt[o||r]}function M6(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?qle(t,e,{defaultPos:n,defaultPos2:r}):ui(t,e,{defaultPos:n})}function qle(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=Dl(t),u=ls(t),a=krt(e,r,o),l=a[u]?Ule(t,i,s):cc(t);return Object.assign(Object.assign({},ui(t,e,{defaultPos:n,vgChannel:l})),a)}function krt(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=kx(n),l=ls(n),c=cc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?DE({channel:n,markDef:s,encoding:r,model:t}):DE({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=ls(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=Prt({channel:n,channelDef:f,channel2Def:r[n],markDef:s,config:u,scaleName:x,scale:h,stack:o,offset:p,defaultRef:void 0});return m!==void 0?{[c]:m}:j6(n,s)||j6(n,{[n]:rC(n,s,u.style),[l]:rC(l,s,u.style)})||j6(n,u[i])||j6(n,u.mark)||{[c]:vk({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function Prt({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return st(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?wd(e,s,{suffix:"start"},{offset:a}):LB({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function j6(t,e){const n=ls(t),r=cc(t);if(e[r]!==void 0)return{[r]:SE(t,e[r])};if(e[t]!==void 0)return{[r]:SE(t,e[t])};if(e[n]){const i=e[n];if(B1(i))Re(uwe(n));else return{[n]:SE(t,i)}}}function Kc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=Dl(e),l=ls(e),c=s[e],f=s[a],x=t.getScaleComponent(e),h=x?x.get("type"):void 0,p=o.orient,m=(r=(n=s[l])!==null&&n!==void 0?n:s.size)!==null&&r!==void 0?r:It("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Ie(c)&&(Kt(c.bin)||Ti(c.bin)||c.timeUnit&&!f)&&!(m&&!B1(m))&&!Cr(h)?Urt({fieldDef:c,fieldDef2:f,channel:e,model:t}):(st(c)&&Cr(h)||g)&&!f?jrt(c,e,t):qle(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function Mrt(t,e,n,r,i){if(B1(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Re(ywe(o)),i=void 0)}else return{mult:i.band,field:{group:t}};else{if(Ye(i))return i;if(i)return{value:i}}if(n){const o=n.get("range");if(hc(o)&&nn(o.step))return{value:o.step-2}}return{value:I6(r.view,t)-2}}function jrt(t,e,n){const{markDef:r,encoding:i,config:s,stack:o}=n,u=r.orient,a=n.scaleName(e),l=n.getScaleComponent(e),c=ls(e),f=Dl(e),x=p8e(e),h=n.scaleName(x),p=u==="horizontal"&&e==="y"||u==="vertical"&&e==="x";let m;(i.size||r.size)&&(p?m=br("size",n,{vgChannel:c,defaultRef:sn(r.size)}):Re(Swe(r.type)));const g=_ae({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:Mrt(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=Ule(e,r,s,y),A=E==="xc"||E==="yc",{offset:v,offsetType:S}=DE({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),C=LB({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:v,defaultRef:vk({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?S==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:B1(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:C},m);{const _=cc(f),b=m[c],R=v?Object.assign(Object.assign({},b),{offset:v}):b;return{[E]:C,[_]:_e(C)?[C[0],Object.assign(Object.assign({},C[1]),{offset:R})]:Object.assign(Object.assign({},C),{offset:R})}}}function FE(t,e,n,r,i){if(nK(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=Ll(n),u=Ll(i),a=Ll(r),l=a?`${a} + `:"",c=o?`(${o} ? -1 : 1) * `:"",f=u?`(${u} + ${s})`:s;return{signal:l+c+f}}else return i=i||0,r+(n?-i-s:+i+s)}function Urt({fieldDef:t,fieldDef2:e,channel:n,model:r}){var i,s,o;const{config:u,markDef:a,encoding:l}=r,c=r.getScaleComponent(n),f=r.scaleName(n),x=c?c.get("type"):void 0,h=c.get("reverse"),p=_ae({channel:n,fieldDef:t,markDef:a,config:u,scaleType:x}),m=(i=r.component.axes[n])===null||i===void 0?void 0:i[0],g=(s=m==null?void 0:m.get("translate"))!==null&&s!==void 0?s:.5,y=Ir(n)&&(o=It("binSpacing",a,u))!==null&&o!==void 0?o:0,E=Dl(n),A=cc(n),v=cc(E),{offset:S}=DE({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),C=Ye(p)?{signal:`(1-${p.signal})/2`}:B1(p)?(1-p.band)/2:.5;if(Kt(t.bin)||t.timeUnit)return{[v]:Hle({fieldDef:t,scaleName:f,bandPosition:C,offset:FE(E,y,h,g,S)}),[A]:Hle({fieldDef:t,scaleName:f,bandPosition:Ye(C)?{signal:`1-${C.signal}`}:1-C,offset:FE(n,y,h,g,S)})};if(Ti(t.bin)){const _=wd(t,f,{},{offset:FE(E,y,h,g,S)});if(Ie(e))return{[v]:_,[A]:wd(e,f,{},{offset:FE(n,y,h,g,S)})};if(Px(t.bin)&&t.bin.step)return{[v]:_,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:FE(n,y,h,g,S)}}}Re(MK(E))}function Hle({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return m6({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const qrt=new Set(["aria","width","height"]);function Do(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?jle(t):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Hrt(t.markDef,e)),zle(t,"fill",n)),zle(t,"stroke",r)),br("opacity",t)),br("fillOpacity",t)),br("strokeOpacity",t)),br("strokeWidth",t)),br("strokeDash",t)),Lrt(t)),kle(t)),Ak(t,"href")),Drt(t))}function zle(t,e,n){const{config:r,mark:i,markDef:s}=t;if(It("invalid",s,r)==="hide"&&n&&!zc(i)){const u=zrt(t,{invalid:!0,channels:tC});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function Hrt(t,e){return I8e.reduce((n,r)=>(!qrt.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=sn(t[r])),n),{})}function zrt(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&Gs(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function Sk(t){const{config:e,markDef:n}=t;if(It("invalid",n,e)){const i=Qrt(t,{channels:fa});if(i)return{defined:{signal:i}}}return{}}function Qrt(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&Gs(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function Qle(t,e){if(e!==void 0)return{[t]:sn(e)}}const _k="voronoi",Gle={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(_k)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(zc(s))return Re(j8e(s)),n;const o={name:t.getName(_k),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},kle(t,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let u=0,a=!1;return n.forEach((l,c)=>{var f;const x=(f=l.name)!==null&&f!==void 0?f:"";x===t.component.mark[0].name?u=c:x.indexOf(_k)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},Wle={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!nk(t.bind),parse:(t,e,n)=>r0e(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Gle.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=yn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:q1(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${we(a.field)}] : null`}]:[],bind:(f=(c=s[a.field])!==null&&c!==void 0?c:s[a.channel])!==null&&f!==void 0?f:s}))}),n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.filter(l=>l.name===r+Xc)[0],o=r+NE,u=i.items.map(l=>yn(`${r}_${l.field}`)),a=u.map(l=>`${l} !== null`).join(" && ");return u.length&&(s.update=`${a} ? {fields: ${o}, values: [${u.join(", ")}]} : null`),delete s.value,delete s.on,n}},U6="_toggle",Vle={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+U6,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+Xc,r=e.name+U6;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${Q1(t)}}, `)+`${r} ? ${n} : null`}},Grt={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?bd(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(Wle.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===yn(`${e.name}_${r.field}`));i!==-1&&n[i].on.push({events:e.clear,update:"null"})}return n},signals:(t,e,n)=>{function r(i,s){i!==-1&&n[i].on&&n[i].on.push({events:e.clear,update:s})}if(e.type==="interval")for(const i of e.project.items){const s=n.findIndex(o=>o.name===i.signals.visual);if(r(s,"[0, 0]"),s===-1){const o=n.findIndex(u=>u.name===i.signals.data);r(o,"null")}}else{let i=n.findIndex(s=>s.name===e.name+Xc);r(i,"null"),Vle.defined(e)&&(i=n.findIndex(s=>s.name===e.name+U6),r(i,"false"))}return n}},Yle={defined:t=>{const e=t.resolve==="global"&&t.bind&&nk(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==RE;return e&&!n&&Re(H8e),e&&n},parse:(t,e,n)=>{var r;const i=ut(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),r0e(e,i),He(n.select)&&(n.select.on||n.select.clear)){const u='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of e.events)a.filter=Pe((r=a.filter)!==null&&r!==void 0?r:[]),a.filter.includes(u)||a.filter.push(u)}const s=rk(e.bind)?e.bind.legend:"click",o=je(s)?bd(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=rk(e.bind)&&e.bind.legend,s=o=>u=>{const a=ut(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${yn(o.field)}_legend`,a=`${r}_${u}`;if(n.filter(c=>c.name===a).length===0){const c=i.merge.map(s(`${u}_symbols`)).concat(i.merge.map(s(`${u}_labels`))).concat(i.merge.map(s(`${u}_entries`)));n.unshift(Object.assign(Object.assign({name:a},e.init?{}:{value:null}),{on:[{events:c,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${a}`,force:!0}]}))}}return n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.find(x=>x.name===r+Xc),o=r+NE,u=i.items.filter(x=>x.hasLegend).map(x=>yn(`${r}_${yn(x.field)}_legend`)),l=`${u.map(x=>`${x} !== null`).join(" && ")} ? {fields: ${o}, values: [${u.join(", ")}]} : null`;e.events&&u.length>0?s.on.push({events:u.map(x=>({signal:x})),update:l}):u.length>0&&(s.update=l,delete s.value,delete s.on);const c=n.find(x=>x.name===r+U6),f=rk(e.bind)&&e.bind.legend;return c&&(e.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:f})):c.on[0].events=f),n}};function Wrt(t,e,n){var r,i,s,o;const u=(r=t.fieldDef(e))===null||r===void 0?void 0:r.field;for(const a of bi((i=t.component.selection)!==null&&i!==void 0?i:{})){const l=(s=a.project.hasField[u])!==null&&s!==void 0?s:a.project.hasChannel[e];if(l&&Yle.defined(a)){const c=(o=n.get("selections"))!==null&&o!==void 0?o:[];c.push(a.name),n.set("selections",c,!1),l.hasLegend=!0}}}const Kle="_translate_anchor",Xle="_translate_delta",Vrt={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=Yc.defined(e),s=r+Kle,{x:o,y:u}=e.project.hasChannel;let a=bd(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+H1,l))),n.push({name:s,value:{},on:[{events:a.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?mk(t,En):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?mk(t,gr):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Xle,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&Jle(t,e,o,"width",n),u!==void 0&&Jle(t,e,u,"height",n),n}};function Jle(t,e,n,r,i){var s,o;const u=e.name,a=u+Kle,l=u+Xle,c=n.channel,f=Yc.defined(e),x=i.filter(_=>_.name===n.signals[f?"data":"visual"])[0],h=t.getSizeSignalRef(r).signal,p=t.getScaleComponent(c),m=p.get("type"),g=p.get("reverse"),y=f?c===En?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,v=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",S=f?m==="pow"?`, ${(s=p.get("exponent"))!==null&&s!==void 0?s:1}`:m==="symlog"?`, ${(o=p.get("constant"))!==null&&o!==void 0?o:1}`:"":"",C=`${v}(${E}, ${A}${S})`;x.on.push({events:{signal:l},update:f?C:`clampRange(${C}, 0, ${h})`})}const Zle="_zoom_anchor",e0e="_zoom_delta",Yrt={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=Yc.defined(e),s=r+e0e,{x:o,y:u}=e.project.hasChannel,a=we(t.scaleName(En)),l=we(t.scaleName(gr));let c=bd(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+H1,f))),n.push({name:r+Zle,on:[{events:c,update:i?"{"+[a?`x: invert(${a}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>!!f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:s,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&t0e(t,e,o,"width",n),u!==void 0&&t0e(t,e,u,"height",n),n}};function t0e(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=Yc.defined(e),c=i.filter(v=>v.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?mk(t,a):c.name,m=u+e0e,g=`${u}${Zle}.${a}`,y=l?h==="log"?"zoomLog":h==="symlog"?"zoomSymlog":h==="pow"?"zoomPow":"zoomLinear":"zoomLinear",E=l?h==="pow"?`, ${(s=x.get("exponent"))!==null&&s!==void 0?s:1}`:h==="symlog"?`, ${(o=x.get("constant"))!==null&&o!==void 0?o:1}`:"":"",A=`${y}(${p}, ${g}, ${m}${E})`;c.on.push({events:{signal:m},update:l?A:`clampRange(${A}, 0, ${f})`})}const Bd="_store",Xc="_tuple",Krt="_modify",n0e="vlSelectionResolve",q6=[Nrt,Rrt,brt,Vle,Wle,Yc,Yle,Grt,Vrt,Yrt,Gle];function Xrt(t){let e=t.parent;for(;e&&!vu(e);)e=e.parent;return e}function Q1(t,{escape:e}={escape:!0}){let n=e?we(t.name):t.name;const r=Xrt(t);if(r){const{facet:i}=r;for(const s of go)i[s]&&(n+=` + '__facet_${s}_' + (facet[${we(r.vgField(s))}])`)}return n}function Ck(t){var e;return bi((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===RE),!1)}function r0e(t,e){(je(e.select)||!e.select.on)&&delete t.events,(je(e.select)||!e.select.clear)&&delete t.clear,(je(e.select)||!e.select.toggle)&&delete t.toggle}function bk(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...bk(t.object)),e.push(...bk(t.property))),e)}function i0e(t){return t.object.type==="MemberExpression"?i0e(t.object):t.object.name==="datum"}function s0e(t){const e=roe(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&i0e(r)&&n.add(bk(r).slice(1).join("."))}),n}class G1 extends qt{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=H6(this.model,this.filter,this),this._dependentFields=s0e(this.expr)}clone(){return new G1(null,this.model,ut(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Jrt(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=yn(s.name),u=s.select,a=je(u)?u:u.type,l=He(u)?ut(u):{type:a},c=i[a];for(const x in c)x==="fields"||x==="encodings"||(x==="mark"&&(l[x]=Object.assign(Object.assign({},c[x]),l[x])),(l[x]===void 0||l[x]===!0)&&(l[x]=(n=c[x])!==null&&n!==void 0?n:l[x]));const f=r[o]=Object.assign(Object.assign({},l),{name:o,type:a,init:s.value,bind:s.bind,events:je(l.on)?bd(l.on,"scope"):Pe(ut(l.on))});for(const x of q6)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function o0e(t,e,n,r="datum"){const i=je(e)?e:e.param,s=yn(i),o=we(s+Bd);let u;try{u=t.getSelectionComponent(s,i)}catch{return`!!${s}`}if(u.project.timeUnit){const c=n??t.component.data.raw,f=u.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const a=`vlSelectionTest(${o}, ${r}${u.resolve==="global"?")":`, ${we(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function u0e(t,e,n){const r=yn(e),i=n.encoding;let s=n.field,o;try{o=t.getSelectionComponent(r,e)}catch{return r}if(!i&&!s)s=o.project.items[0].field,o.project.items.length>1&&Re(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${we(s)}.`);else if(i&&!s){const u=o.project.items.filter(a=>a.channel===i);!u.length||u.length>1?(s=o.project.items[0].field,Re((u.length?"Multiple ":"No ")+`matching ${we(i)} encoding found for selection ${we(n.param)}. Using "field": ${we(s)}.`)):s=u[0].field}return`${o.name}[${we(eu(s))}]`}function Zrt(t,e){var n;for(const[r,i]of Ix((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new zi(new G1(e,t,{param:r}),s,Jt.Lookup,t.component.data.outputNodeRefCounts)}}function H6(t,e,n){return G5(e,r=>je(r)?r:i9e(r)?o0e(t,r,n):WK(r))}var z6=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function eit(t,e){if(t)return _e(t)&&!dc(t)?t.map(n=>QB(n,e)).join(", "):t}function Tk(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function wE(t,e,n,r={header:!1}){var i,s;const o=t.combine(),{disable:u,orient:a,scale:l,labelExpr:c,title:f,zindex:x}=o,h=z6(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=$tt[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(TE(g)){const{condition:y}=g,E=z6(g,["condition"]),A=Pe(y),v=wae[p];if(v){const{vgProp:S,part:C}=v,_=[...A.map(b=>{const{test:R}=b,O=z6(b,["test"]);return Object.assign({test:H6(null,R)},O)}),E];Tk(h,C,S,_),delete h[p]}else if(v===null){const S={signal:A.map(C=>{const{test:_}=C,b=z6(C,["test"]);return`${H6(null,_)} ? ${yK(b)} : `}).join("")+yK(E)};h[p]=S}}else if(Ye(g)){const y=wae[p];if(y){const{vgProp:E,part:A}=y;Tk(h,A,E,g),delete h[p]}}Ct(["labelAlign","labelBaseline"],p)&&h[p]===null&&delete h[p]}if(e==="grid"){if(!h.grid)return;if(h.encode){const{grid:p}=h.encode;h.encode=Object.assign({},p?{grid:p}:{}),Wt(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:l,orient:a},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Zn(x,0)})}else{if(!r.header&&t.mainExtracted)return;if(c!==void 0){let m=c;!((s=(i=h.encode)===null||i===void 0?void 0:i.labels)===null||s===void 0)&&s.update&&Ye(h.encode.labels.update.text)&&(m=L2(c,"datum.label",h.encode.labels.update.text.signal)),Tk(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of Lae)t.hasAxisPart(m)||delete h.encode[m];Wt(h.encode)&&delete h.encode}const p=eit(f,n);return Object.assign(Object.assign(Object.assign(Object.assign({scale:l,orient:a,grid:!1},p?{title:p}:{}),h),n.aria===!1?{aria:!1}:{}),{zindex:Zn(x,0)})}}}function a0e(t){const{axes:e}=t.component,n=[];for(const r of fa)if(e[r]){for(const i of e[r])if(!i.get("disable")&&!i.get("gridScale")){const s=r==="x"?"height":"width",o=t.getSizeSignalRef(s).signal;s!==o&&n.push({name:s,update:o})}}return n}function tit(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>wE(i,"grid",e)),...r.map(i=>wE(i,"grid",e)),...n.map(i=>wE(i,"main",e)),...r.map(i=>wE(i,"main",e))].filter(i=>i)}function l0e(t,e,n,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const s=n==="x"?"bottom":"left",o=e[n==="x"?"axisBottom":"axisLeft"]||{},u=e[n==="x"?"axisTop":"axisRight"]||{},a=new Set([...Te(o),...Te(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${Ll(o[c])} : ${Ll(u[c])}`};return l}return e[i]})])}function nit(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:eae(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${W5(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:l0e(u,r,t,n),vgAxisConfig:l0e(a,r,t,n),axisConfigStyle:rit([...a,...u],r)}}function rit(t,e){var n;const r=[{}];for(const i of t){let s=(n=e[i])===null||n===void 0?void 0:n.style;if(s){s=Pe(s);for(const o of s)r.push(e.style[o])}}return Object.assign.apply(null,r)}function Rk(t,e,n,r={}){var i;const s=AK(t,n,e);if(s!==void 0)return{configFrom:"style",configValue:s};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((i=r[o])===null||i===void 0?void 0:i[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const c0e={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return dae(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return hae(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:iit(n,t)},gridScale:({model:t,channel:e})=>sit(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||x0e(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||f0e(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:uit(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:ait(e.type,n,Ie(e)&&!!e.timeUnit,Ie(e)?e.sort:void 0)},orient:({orient:t})=>t,tickCount:({channel:t,model:e,axis:n,fieldOrDatumDef:r,scaleType:i})=>{var s;const o=t==="x"?"width":t==="y"?"height":void 0,u=o?e.getSizeSignalRef(o):void 0;return(s=n.tickCount)!==null&&s!==void 0?s:cit({fieldOrDatumDef:r,scaleType:i,size:u,values:n.values})},title:({axis:t,model:e,channel:n})=>{if(t.title!==void 0)return t.title;const r=d0e(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return SK(i?[vae(i)]:[],Ie(o)?[vae(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>fit(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:xit(n,e)}};function iit(t,e){return!Cr(t)&&Ie(e)&&!Kt(e==null?void 0:e.bin)&&!Ti(e==null?void 0:e.bin)}function sit(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function oit(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:V5(s);{const{configValue:o}=Rk("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?V5(o):n===En&&Ct([RB,TB],t.type)&&!(Ie(t)&&t.timeUnit)?270:void 0}}function Ok(t){return`(((${t.signal} % 360) + 360) % 360)`}function f0e(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=Ok(t),s=Ye(e)?`(${e.signal} === "top")`:e==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${s} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(Ye(e)){const i=t<=45||315<=t?"===":"!==";return{signal:`${e.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(e==="top")?"bottom":"top"}else{if(Ye(t)){const i=Ok(t),s=Ye(e)?`(${e.signal} === "left")`:e==="left";return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${s} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(Ye(e)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${e.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(e==="left")?"top":"bottom"}}function x0e(t,e,n){if(t===void 0)return;const r=n==="x",i=r?0:90,s=r?"bottom":"left";if(Ye(t)){const o=Ok(t),u=Ye(e)?`(${e.signal} === "${s}")`:e===s;return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${u} ? "left" : "right"`}}if((t+i)%180===0)return r?null:"center";if(Ye(e)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${e.signal} ${o} "${s}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(e===s)?"left":"right"}function uit(t,e){if(e==="x"&&Ct(["quantitative","temporal"],t))return!0}function ait(t,e,n,r){if(n&&!He(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function lit(t){return t==="x"?"bottom":"left"}function cit({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Cr(e)&&e!=="log"){if(Ie(t)){if(Kt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&Ct(["month","hours","day","quarter"],(i=Ri(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function d0e(t,e){const n=e==="x"?"x2":"y2",r=t.fieldDef(e),i=t.fieldDef(n),s=r?r.title:void 0,o=i?i.title:void 0;if(s&&o)return _K(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function fit(t,e){const n=t.values;if(_e(n))return Fae(e,n);if(Ye(n))return n}function xit(t,e){return t==="rect"&&_6(e)?1:0}class W1 extends qt{constructor(e,n){super(e),this.transform=n,this._dependentFields=s0e(this.transform.calculate)}clone(){return new W1(null,ut(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Id(r)&&Aae(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${WK({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new W1(e,{calculate:a,as:V1(r,i,{forAs:!0})})}}),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${_t(this.transform)}`}}function V1(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function Q6(t,e){return Ct(["top","bottom"],e)?"column":Ct(["left","right"],e)||t==="row"?"row":"column"}function Y1(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return Zn((e||{})[t],i[t],n.header[t])}function G6(t,e,n,r){const i={};for(const s of t){const o=Y1(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const Nk=["row","column"],Dk=["header","footer"];function dit(t,e){const n=t.component.layoutHeaders[e].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[e].facetFieldDef?t.component.layoutHeaders[e].facetFieldDef:void 0,{titleAnchor:s,titleAngle:o,titleOrient:u}=G6(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=Q6(e,u),l=V5(o);return{name:`${e}-title`,type:"group",role:`${a}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},e==="row"?{orient:"left"}:{}),{style:"guide-title"}),p0e(l,a)),h0e(a,l,s)),g0e(r,i,e,rnt,Zae))}}function h0e(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=x0e(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function p0e(t,e){const n=f0e(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function hit(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of Dk)if(n[i])for(const s of n[i]){const o=git(t,e,i,n,s);o!=null&&r.push(o)}return r}function pit(t,e){var n;const{sort:r}=t;return $a(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:V1(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function Fk(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=G6(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=BB({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=Q6(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?L2(L2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),p0e(s,c)),h0e(c,s,o)),g0e(n,t,e,int,ele))}function git(t,e,n,r,i){if(i){let s=null;const{facetFieldDef:o}=r,u=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=G6(["labelOrient"],o.header,u,e);(e==="row"&&!Ct(["top","bottom"],f)||e==="column"&&!Ct(["left","right"],f))&&(s=Fk(o,e,u))}const a=vu(t)&&!_E(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(s||c){const f=e==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName(`${e}_${n}`),type:"group",role:`${e}-${n}`},r.facetFieldDef?{from:{data:t.getName(`${e}_domain`)},sort:pit(o,e)}:{}),c&&a?{from:{data:t.getName(`facet_domain_${e}`)}}:{}),s?{title:s}:{}),i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{}),c?{axes:l}:{})}}return null}const mit={column:{start:0,end:1},row:{start:1,end:0}};function yit(t,e){return mit[e][t]}function Eit(t,e){const n={};for(const r of go){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=G6(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=Q6(r,o),a=yit(s,u);a!==void 0&&(n[u]=a)}}return Wt(n)?void 0:n}function g0e(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=Y1(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function wk(t){return[...W6(t,"width"),...W6(t,"height"),...W6(t,"childWidth"),...W6(t,"childHeight")]}function W6(t,e){const n=e==="width"?"x":"y",r=t.component.layoutSize.get(e);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(e).signal;if(r==="step"){const s=t.getScaleComponent(n);if(s){const o=s.get("type"),u=s.get("range");if(Cr(o)&&hc(u)){const a=t.scaleName(n);return vu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[m0e(a,u)]:[m0e(a,u),{name:i,update:y0e(a,s,`domain('${a}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const s=i.endsWith("width"),o=s?"containerSize()[0]":"containerSize()[1]",u=uk(t.config.view,s?"width":"height"),a=`isFinite(${o}) ? ${o} : ${u}`;return[{name:i,init:a,on:[{update:a,events:"window:resize"}]}]}else return[{name:i,value:r}]}function m0e(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function y0e(t,e,n){const r=e.get("type"),i=e.get("padding"),s=Zn(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${Ll(o)}, ${Ll(s)}) * ${t}_step`}function E0e(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function A0e(t,e){return Te(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),z1(e,i,r,s=>sn(s.value)))},{})}function v0e(t,e){if(vu(e))return t==="theta"?"independent":"shared";if(J1(e))return"shared";if(Vk(e))return Ir(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function Lk(t,e){const n=t.scale[e],r=Ir(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Re(Rwe(e)),"independent"):t[r][e]||"shared"}const Ait=Object.assign(Object.assign({},ont),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),S0e=Te(Ait);class vit extends u0{}const _0e={symbols:Sit,gradient:_it,labels:Cit,entries:bit};function Sit(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i,legendType:s}){var o,u,a,l,c,f,x,h;if(s!=="symbol")return;const{markDef:p,encoding:m,config:g,mark:y}=n,E=p.filled&&y!=="trail";let A=Object.assign(Object.assign({},k8e({},n,ott)),jle(n,{filled:E}));const v=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,S=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,C=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,_=v===void 0?(l=C0e(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===us)delete A.fill;else if(A.fill.field)S?delete A.fill:(A.fill=sn((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=sn(_??1));else if(_e(A.fill)){const b=(h=(x=Ik((f=m.fill)!==null&&f!==void 0?f:m.color))!==null&&x!==void 0?x:p.fill)!==null&&h!==void 0?h:E&&p.color;b&&(A.fill=sn(b))}}if(A.stroke){if(r==="stroke"||!E&&r===us)delete A.stroke;else if(A.stroke.field||C)delete A.stroke;else if(_e(A.stroke)){const b=Zn(Ik(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Nl){const b=Ie(e)&&T0e(n,i,e);b?A.opacity=[Object.assign({test:b},sn(_??1)),sn(g.legend.unselectedOpacity)]:_&&(A.opacity=sn(_))}return A=Object.assign(Object.assign({},A),t),Wt(A)?void 0:A}function _it(t,{model:e,legendType:n,legendCmpt:r}){var i;if(n!=="gradient")return;const{config:s,markDef:o,encoding:u}=e;let a={};const c=((i=r.get("gradientOpacity"))!==null&&i!==void 0?i:s.legend.gradientOpacity)===void 0?C0e(u.opacity)||o.opacity:void 0;return c&&(a.opacity=sn(c)),a=Object.assign(Object.assign({},a),t),Wt(a)?void 0:a}function Cit(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Ie(e)?T0e(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=Ld(c)?kB({fieldOrDatumDef:e,field:"datum.value",format:l,formatType:c,config:o}):void 0,x=Object.assign(Object.assign(Object.assign({},a?{opacity:a}:{}),f?{text:f}:{}),t);return Wt(x)?void 0:x}function bit(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function C0e(t){return b0e(t,(e,n)=>Math.max(e,n.value))}function Ik(t){return b0e(t,(e,n)=>Zn(e,n.value))}function b0e(t,e){if(_tt(t))return Pe(t.condition).reduce(e,t.value);if(yu(t))return t.value}function T0e(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=we(n.field);return r.map(s=>`(!length(data(${we(yn(s)+Bd)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const R0e={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return dae(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return hae(r,e,n)},gradientLength:t=>{var e,n;const{legend:r,legendConfig:i}=t;return(n=(e=r.gradientLength)!==null&&e!==void 0?e:i.gradientLength)!==null&&n!==void 0?n:wit(t)},labelOverlap:({legend:t,legendConfig:e,scaleType:n})=>{var r,i;return(i=(r=t.labelOverlap)!==null&&r!==void 0?r:e.labelOverlap)!==null&&i!==void 0?i:Lit(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:Rit(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>k1(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if($2(n)&&mu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>Tit(e,t)};function Tit(t,e){const n=t.values;if(_e(n))return Fae(e,n);if(Ye(n))return n}function Rit(t,e,n,r){var i;if(e!=="shape"){const s=(i=Ik(n))!==null&&i!==void 0?i:r;if(s)return s}switch(t){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}function Oit(t){const{legend:e}=t;return Zn(e.type,Nit(t))}function Nit({channel:t,timeUnit:e,scaleType:n}){if($2(t)){if(Ct(["quarter","month","day"],e))return"symbol";if(mu(n))return"gradient"}return"symbol"}function Dit({legendConfig:t,legendType:e,orient:n,legend:r}){var i,s;return(s=(i=r.direction)!==null&&i!==void 0?i:t[e?"gradientDirection":"symbolDirection"])!==null&&s!==void 0?s:Fit(n,e)}function Fit(t,e){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return e==="gradient"?"horizontal":void 0}}function wit({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(mu(i))return n==="horizontal"?r==="top"||r==="bottom"?O0e(e,"width",o,s):o:O0e(e,"height",a,u)}function O0e(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function Lit(t){if(Ct(["quantile","threshold","log","symlog"],t))return"greedy"}function N0e(t){const e=Qn(t)?Iit(t):Pit(t);return t.component.legends=e,e}function Iit(t){const{encoding:e}=t,n={};for(const r of[us,...nle]){const i=or(e[r]);!i||!t.getScaleComponent(r)||r===as&&Ie(i)&&i.type===I1||(n[r]=kit(t,r))}return n}function $it(t,e){const n=t.scaleName(e);if(t.mark==="trail"){if(e==="color")return{stroke:n};if(e==="size")return{strokeWidth:n}}return e==="color"?t.markDef.filled?{fill:n}:{stroke:n}:{[e]:n}}function Bit(t,e,n,r){switch(e){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(e==="title"&&t===(r==null?void 0:r.title))return!0}return t===(n||{})[e]}function kit(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new vit({},$it(t,e));Wrt(t,e,c);const f=s!==void 0?!s:l.disable;if(c.set("disable",f,s!==void 0),f)return c;s=s||{};const x=t.getScaleComponent(e).get("type"),h=or(u[e]),p=Ie(h)?(n=Ri(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=Oit({legend:s,channel:e,timeUnit:p,scaleType:x}),y=Dit({legend:s,legendType:g,orient:m,legendConfig:l}),E={legend:s,channel:e,model:t,markDef:o,encoding:u,fieldOrDatumDef:h,legendConfig:l,config:a,scaleType:x,orient:m,legendType:g,direction:y};for(const _ of S0e){if(g==="gradient"&&_.startsWith("symbol")||g==="symbol"&&_.startsWith("gradient"))continue;const b=_ in R0e?R0e[_](E):s[_];if(b!==void 0){const R=Bit(b,_,s,t.fieldDef(e));(R||a.legend[_]===void 0)&&c.set(_,b,R)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},v=c.get("selections"),S={},C={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const _ of["labels","legend","title","symbols","gradient","entries"]){const b=A0e((i=A[_])!==null&&i!==void 0?i:{},t),R=_ in _0e?_0e[_](b,C):b;R!==void 0&&!Wt(R)&&(S[_]=Object.assign(Object.assign(Object.assign({},v!=null&&v.length&&Ie(h)?{name:`${yn(h.field)}_legend_${_}`}:{}),v!=null&&v.length?{interactive:!!v}:{}),{update:R}))}return Wt(S)||c.set("encode",S,!!(s!=null&&s.encoding)),c}function Pit(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){N0e(r);for(const i of Te(r.component.legends))n.legend[i]=Lk(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=D0e(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of Te(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function D0e(t,e){var n,r,i,s;if(!t)return e.clone();const o=t.getWithExplicit("orient"),u=e.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;let a=!1;for(const l of S0e){const c=Wc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return Mit(f,x);case"title":return CK(f,x);case"type":return a=!0,Ws("symbol")}return k6(f,x,l,"legend")});t.setWithExplicit(l,c)}return a&&(!((r=(n=t.implicit)===null||n===void 0?void 0:n.encode)===null||r===void 0)&&r.gradient&&KF(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&KF(t.explicit,["encode","gradient"])),t}function Mit(t,e){return e.value==="circle"?e:t}var jit=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Uit(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function F0e(t){const e=t.component.legends,n={};for(const i of Te(e)){const s=t.getScaleComponent(i),o=rn(s.get("domains"));if(n[o])for(const u of n[o])D0e(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return bi(n).flat().map(i=>qit(i,t.config)).filter(i=>i!==void 0)}function qit(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=jit(s,["disable","labelExpr","selections"]);if(!o){if(e.aria===!1&&l.aria==null&&(l.aria=!1),!((n=l.encode)===null||n===void 0)&&n.symbols){const c=l.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!l.stroke&&(c.stroke={value:"transparent"});for(const f of nle)l[f]&&delete c[f]}if(l.title||delete l.title,u!==void 0){let c=u;!((i=(r=l.encode)===null||r===void 0?void 0:r.labels)===null||i===void 0)&&i.update&&Ye(l.encode.labels.update.text)&&(c=L2(u,"datum.label",l.encode.labels.update.text.signal)),Uit(l,"labels","text",{signal:c})}return l}}function Hit(t){return J1(t)||Vk(t)?zit(t):w0e(t)}function zit(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),w0e(t))}function w0e(t){const e=t.component.projection;if(!e||e.merged)return[];const n=e.combine(),{name:r}=n;if(e.data){const i={signal:`[${e.size.map(o=>o.signal).join(", ")}]`},s=e.data.reduce((o,u)=>{const a=Ye(u)?u.signal:`data('${t.lookupDataSource(u)}')`;return Ct(o,a)||o.push(a),o},[]);if(s.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:r,size:i,fit:{signal:s.length>1?`[${s.join(", ")}]`:s[0]}},n)]}else return[Object.assign(Object.assign({name:r},{translate:{signal:"[width / 2, height / 2]"}}),n)]}const Qit=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class L0e extends u0{constructor(e,n,r,i){super(Object.assign({},n),{name:e}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function I0e(t){t.component.projection=Qn(t)?Git(t):Yit(t)}function Git(t){var e;if(t.hasProjection){const n=cs(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?Wit(t):void 0,o=new L0e(t.projectionName(!0),Object.assign(Object.assign({},(e=cs(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function Wit(t){const e=[],{encoding:n}=t;for(const r of[[aa,ua],[po,ru]])(or(n[r[0]])||or(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(as)&&t.typedFieldDef(as).type===I1&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Jt.Main)),e}function Vit(t,e){const n=YY(Qit,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Sl(t.get(i),e.get(i))));if(Sl(t.size,e.size)){if(n)return t;if(Sl(t.explicit,{}))return e;if(Sl(e.explicit,{}))return t}return null}function Yit(t){if(t.children.length===0)return;let e;for(const r of t.children)I0e(r);const n=YY(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=Vit(e,i);return s&&(e=s),!!s}else return e=i,!0;else return!0});if(e&&n){const r=t.projectionName(!0),i=new L0e(r,e.specifiedProjection,e.size,ut(e.data));for(const s of t.children){const o=s.component.projection;o&&(o.isFit&&i.data.push(...s.component.projection.data),s.renameProjection(o.get("name"),r),o.merged=!0)}return i}}var Kit=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Xit(t,e,n,r){var i,s;if(bE(e,n)){const o=Qn(t)?(s=(i=t.axis(n))!==null&&i!==void 0?i:t.legend(n))!==null&&s!==void 0?s:{}:{},u=$e(e,{expr:"datum"}),a=$e(e,{expr:"datum",binSuffix:"end"});return{formulaAs:$e(e,{binSuffix:"range",forAs:!0}),formula:y6(u,a,o.format,o.formatType,r)}}return{}}function $0e(t,e){return`${dK(t)}_${e}`}function Jit(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function $k(t,e,n){var r;const i=(r=T6(n,void 0))!==null&&r!==void 0?r:{},s=$0e(i,e);return t.getName(`${s}_bins`)}function Zit(t){return"as"in t}function B0e(t,e,n){let r,i;Zit(t)?r=je(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:r=[$e(t,{forAs:!0}),$e(t,{binSuffix:"end",forAs:!0})];const s=Object.assign({},T6(e,void 0)),o=$0e(s,t.field),{signal:u,extentSignal:a}=Jit(n,o);if(nC(s.extent)){const c=s.extent;i=u0e(n,c.param,c),delete s.extent}const l=Object.assign(Object.assign(Object.assign({bin:s,field:t.field,as:[r]},u?{signal:u}:{}),a?{extentSignal:a}:{}),i?{span:i}:{});return{key:o,binComponent:l}}class qa extends qt{constructor(e,n){super(e),this.bins=n}clone(){return new qa(null,ut(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(No(s)&&Kt(s.bin)){const{key:u,binComponent:a}=B0e(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),Xit(n,s,o,n.config))}return i},{});return Wt(r)?null:new qa(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=B0e(n,n.bin,r);return new qa(e,{[i]:s})}merge(e,n){for(const r of Te(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=_l([...this.bins[r].as,...e.bins[r].as],_t)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set(bi(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(bi(this.bins).map(e=>e.field))}hash(){return`Bin ${_t(this.bins)}`}assemble(){return bi(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=Kit(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:eu(e.field),as:r,signal:e.signal},nC(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:eu(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),n.push(a);for(const l of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:$e({field:r[c]},{expr:"datum"}),as:l[c]});return e.formula&&n.push({type:"formula",expr:e.formula,as:e.formulaAs}),n})}}function est(t,e,n,r){var i;const s=Qn(r)?r.encoding[Dl(e)]:void 0;if(No(n)&&Qn(r)&&Cae(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&bE(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(a8e(e)){const o=u8e(e);t.add(r.getName(o))}else t.add($e(n));return Id(n)&&Yet((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function tst(t,e){var n;for(const r of Te(e)){const i=e[r];for(const s of Te(i))r in t?t[r][s]=new Set([...(n=t[r][s])!==null&&n!==void 0?n:[],...i[s]]):t[r]={[s]:i[s]}}}class Eu extends qt{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new Eu(null,new Set(this.dimensions),ut(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,n){let r=!1;n.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},s=new Set;return!r||(n.forEachFieldDef((o,u)=>{var a,l,c,f;const{aggregate:x,field:h}=o;if(x)if(x==="count")(a=i["*"])!==null&&a!==void 0||(i["*"]={}),i["*"].count=new Set([$e(o,{forAs:!0})]);else{if(Fl(x)||xc(x)){const p=Fl(x)?"argmin":"argmax",m=x[p];(l=i[m])!==null&&l!==void 0||(i[m]={}),i[m][p]=new Set([$e({op:p,field:m},{forAs:!0})])}else(c=i[h])!==null&&c!==void 0||(i[h]={}),i[h][x]=new Set([$e(o,{forAs:!0})]);fc(u)&&n.scaleDomain(u)==="unaggregated"&&((f=i[h])!==null&&f!==void 0||(i[h]={}),i[h].min=new Set([$e({field:h,aggregate:"min"},{forAs:!0})]),i[h].max=new Set([$e({field:h,aggregate:"max"},{forAs:!0})]))}else est(s,u,o,n)}),s.size+Te(i).length===0)?null:new Eu(e,s,i)}static makeFromTransform(e,n){var r,i,s;const o=new Set,u={};for(const a of n.aggregate){const{op:l,field:c,as:f}=a;l&&(l==="count"?((r=u["*"])!==null&&r!==void 0||(u["*"]={}),u["*"].count=new Set([f||$e(a,{forAs:!0})])):((i=u[c])!==null&&i!==void 0||(u[c]={}),u[c][l]=new Set([f||$e(a,{forAs:!0})])))}for(const a of(s=n.groupby)!==null&&s!==void 0?s:[])o.add(a);return o.size+Te(u).length===0?null:new Eu(e,o,u)}merge(e){return ZFe(this.dimensions,e.dimensions)?(tst(this.measures,e.measures),!0):(Hwe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Te(this.measures)])}producedFields(){const e=new Set;for(const n of Te(this.measures))for(const r of Te(this.measures[n])){const i=this.measures[n][r];i.size===0?e.add(`${r}_${n}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${_t({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of Te(this.measures))for(const o of Te(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:eu(s));return{type:"aggregate",groupby:[...this.dimensions].map(eu),ops:e,fields:n,as:r}}}class K1 extends qt{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of go){const o=n.facet[s];if(o){const{bin:u,sort:a}=o;this[s]=Object.assign({name:n.getName(`${s}_domain`),fields:[$e(o),...Kt(u)?[$e(o,{binSuffix:"end"})]:[]]},$a(a)?{sortField:a}:_e(a)?{sortIndexField:V1(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of go)this[n]&&(e+=` ${n.charAt(0)}:${_t(this[n])}`);return e}get fields(){var e;const n=[];for(const r of go)!((e=this[r])===null||e===void 0)&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const e=new Set(this.fields);for(const n of go)this[n]&&(this[n].sortField&&e.add(this[n].sortField.field),this[n].sortIndexField&&e.add(this[n].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const n of fa){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Cr(i)&&hc(s)){const o=Y6(this.childModel,n),u=Qk(o);u?e[n]=u:Re(l8(n))}}}return e}assembleRowColumnHeaderData(e,n,r){const i={row:"y",column:"x",facet:void 0}[e],s=[],o=[],u=[];i&&r&&r[i]&&(n?(s.push(`distinct_${r[i]}`),o.push("max")):(s.push(r[i]),o.push("distinct")),u.push(`distinct_${r[i]}`));const{sortField:a,sortIndexField:l}=this[e];if(a){const{op:c=E6,field:f}=a;s.push(f),o.push(c),u.push($e(a,{forAs:!0}))}else l&&(s.push(l),o.push("max"),u.push(l));return{name:this[e].name,source:n??this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},s.length?{fields:s,ops:o,as:u}:{})]}}assembleFacetHeaderData(e){var n,r;const{columns:i}=this.model.layout,{layoutHeaders:s}=this.model.component,o=[],u={};for(const c of Nk){for(const f of Dk){const x=(n=s[c]&&s[c][f])!==null&&n!==void 0?n:[];for(const h of x)if(((r=h.axes)===null||r===void 0?void 0:r.length)>0){u[c]=!0;break}}if(u[c]){const f=`length(data("${this.facet.name}"))`,x=c==="row"?i?{signal:`ceil(${f} / ${i})`}:1:i?{signal:`min(${f}, ${i})`}:{signal:f};o.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:x}]})}}const{row:a,column:l}=u;return(a||l)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,n;const r=[];let i=null;const s=this.getChildIndependentFieldsWithStep(),{column:o,row:u,facet:a}=this;if(o&&u&&(s.x||s.y)){i=`cross_${this.column.name}_${this.row.name}`;const l=[].concat((e=s.x)!==null&&e!==void 0?e:[],(n=s.y)!==null&&n!==void 0?n:[]),c=l.map(()=>"distinct");r.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:l,ops:c}]})}for(const l of[bl,Cl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function k0e(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function nst(t,e){const n=ZY(t);if(e==="number")return`toNumber(${n})`;if(e==="boolean")return`toBoolean(${n})`;if(e==="string")return`toString(${n})`;if(e==="date")return`toDate(${n})`;if(e==="flatten")return n;if(e.startsWith("date:")){const r=k0e(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=k0e(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Re(K8e(e)),null}function rst(t){const e={};return z5(t.filter,n=>{var r;if(GK(n)){let i=null;g8(n)?i=ks(n.equal):y8(n)?i=ks(n.lte):m8(n)?i=ks(n.lt):E8(n)?i=ks(n.gt):A8(n)?i=ks(n.gte):v8(n)?i=n.range[0]:S8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(jx(i)?e[n.field]="date":nn(i)?e[n.field]="number":je(i)&&(e[n.field]="string")),n.timeUnit&&(e[n.field]="date")}}),e}function ist(t){const e={};function n(r){M1(r)?e[r.field]="date":r.type==="quantitative"&&O8e(r.aggregate)?e[r.field]="number":A3(r.field)>1?r.field in e||(e[r.field]="flatten"):Id(r)&&$a(r.sort)&&A3(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((Qn(t)||vu(t))&&t.forEachFieldDef((r,i)=>{if(No(r))n(r);else{const s=kx(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),Qn(t)){const{mark:r,markDef:i,encoding:s}=t;if(zc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Ie(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function sst(t){const e={};if(Qn(t)&&t.component.selection)for(const n of Te(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&A3(i.field)>1&&(e[i.field]="flatten")}return e}class ai extends qt{constructor(e,n){super(e),this._parse=n}clone(){return new ai(null,ut(this._parse))}hash(){return`Parse ${_t(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Vc(o)&&(!((i=o==null?void 0:o.format)===null||i===void 0)&&i.parse)&&(s=o.format.parse),this.makeWithAncestors(e,s,{},r)}static makeWithAncestors(e,n,r,i){for(const u of Te(r)){const a=i.getWithExplicit(u);a.value!==void 0&&(a.explicit||a.value===r[u]||a.value==="derived"||r[u]==="flatten"?delete r[u]:Re(FK(u,r[u],a.value)))}for(const u of Te(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Re(FK(u,n[u],a)))}const s=new u0(n,r);i.copyAll(s);const o={};for(const u of Te(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return Te(o).length===0||i.parseNothing?null:new ai(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const n of Te(this._parse)){const r=this._parse[n];A3(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(Te(this._parse))}dependentFields(){return new Set(Te(this._parse))}assembleTransforms(e=!1){return Te(this._parse).filter(n=>e?A3(n)>1:!0).map(n=>{const r=nst(n,this._parse[n]);return r?{type:"formula",expr:r,as:eK(n)}:null}).filter(n=>n!==null)}}class Jc extends qt{clone(){return new Jc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([RE])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:RE}}}class LE extends qt{constructor(e,n){super(e),this.params=n}clone(){return new LE(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${_t(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class IE extends qt{constructor(e,n){super(e),this.params=n}clone(){return new IE(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([(e=this.params.as)!==null&&e!==void 0?e:"data"])}hash(){return`Hash ${_t(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class kd extends qt{constructor(e){super(null),e??(e={name:"source"});let n;if(Vc(e)||(n=e.format?Object.assign({},ho(e.format,["parse"])):{}),OE(e))this._data={values:e.values};else if(U1(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];Ct(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else Lle(e)?this._data={values:[{type:"Sphere"}]}:(Fle(e)||Vc(e))&&(this._data={});this._generator=Vc(e),e.name&&(this._name=e.name),n&&!Wt(n)&&(this._data.format=n)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var P0e=function(t,e,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,n):i?i.value=n:e.set(t,n),n},ost=function(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)},$E;function Bk(t){return t instanceof kd||t instanceof LE||t instanceof IE}class kk{constructor(){$E.set(this,void 0),P0e(this,$E,!1,"f")}setModified(){P0e(this,$E,!0,"f")}get modifiedFlag(){return ost(this,$E,"f")}}$E=new WeakMap;class Pd extends kk{getNodeDepths(e,n,r){r.set(e,n);for(const i of e.children)this.getNodeDepths(i,n+1,r);return r}optimize(e){const r=[...this.getNodeDepths(e,0,new Map).entries()].sort((i,s)=>s[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class Pk extends kk{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class ust extends Pk{mergeNodes(e,n){const r=n.shift();for(const i of n)e.removeChild(i),i.parent=r,i.remove()}run(e){const n=e.children.map(i=>i.hash()),r={};for(let i=0;i<n.length;i++)r[n[i]]===void 0?r[n[i]]=[e.children[i]]:r[n[i]].push(e.children[i]);for(const i of Te(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class ast extends Pk{constructor(e){super(),this.requiresSelectionId=e&&Ck(e)}run(e){e instanceof Jc&&(this.requiresSelectionId&&(Bk(e.parent)||e.parent instanceof Eu||e.parent instanceof ai)||(this.setModified(),e.remove()))}}class lst extends kk{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof Ua&&(r=e.producedFields(),KY(r,n)&&(this.setModified(),e.removeFormulas(n),e.producedFields.length===0&&e.remove()));for(const i of e.children)this.run(i,new Set([...n,...r]))}}class cst extends Pk{constructor(){super()}run(e){e instanceof zi&&!e.isRequired()&&(this.setModified(),e.remove())}}class fst extends Pd{run(e){if(!Bk(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof ai)if(e instanceof ai)this.setModified(),e.merge(n);else{if(JY(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class xst extends Pd{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof ai);if(e.numChildren()>1&&r.length>=1){const i={},s=new Set;for(const o of r){const u=o.parse;for(const a of Te(u))a in i?i[a]!==u[a]&&s.add(a):i[a]=u[a]}for(const o of s)delete i[o];if(!Wt(i)){this.setModified();const o=new ai(e,i);for(const u of n){if(u instanceof ai)for(const a of Te(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof ai&&Te(u.parse).length===0&&u.remove()}}}}}class dst extends Pd{run(e){e instanceof zi||e.numChildren()>0||e instanceof K1||e instanceof kd||(this.setModified(),e.remove())}}class hst extends Pd{run(e){const n=e.children.filter(i=>i instanceof Ua),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class pst extends Pd{run(e){const n=e.children.filter(i=>i instanceof Eu),r={};for(const i of n){const s=_t(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of Te(r)){const s=r[i];if(s.length>1){const o=s.pop();for(const u of s)o.merge(u)&&(e.removeChild(u),u.parent=o,u.remove(),this.setModified())}}}}class gst extends Pd{constructor(e){super(),this.model=e}run(e){const n=!(Bk(e)||e instanceof G1||e instanceof ai||e instanceof Jc),r=[],i=[];for(const s of e.children)s instanceof qa&&(n&&!JY(e.producedFields(),s.dependentFields())?r.push(s):i.push(s));if(r.length>0){const s=r.pop();for(const o of r)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof qa?e.merge(s,this.model.renameSignal.bind(this.model)):s.swapWithParent()}if(i.length>1){const s=i.pop();for(const o of i)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class mst extends Pd{run(e){const n=[...e.children];if(!w2(n,o=>o instanceof zi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof zi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof zi)u=a;else break}i.push(...u.children),s?(e.removeChild(o),o.parent=s.parent,s.parent.removeChild(s),s.parent=u,this.setModified()):s=u}else i.push(o);if(i.length){this.setModified();for(const o of i)o.parent.removeChild(o),o.parent=s}}}class Md extends qt{constructor(e,n){super(e),this.transform=n}clone(){return new Md(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(this.transform.groupby.concat(e),n=>n)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`JoinAggregateTransform ${_t(this.transform)}`}assemble(){const e=[],n=[],r=[];for(const s of this.transform.joinaggregate)n.push(s.op),r.push(this.getDefaultName(s)),e.push(s.field===void 0?null:s.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:r,ops:n,fields:e},i!==void 0?{groupby:i}:{})}}function yst(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function Est(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class a0 extends qt{constructor(e,n){super(e),this._stack=n}clone(){return new a0(null,ut(this._stack))}static makeFromTransform(e,n){const{stack:r,groupby:i,as:s,offset:o="zero"}=n,u=[],a=[];if(n.sort!==void 0)for(const f of n.sort)u.push(f.field),a.push(Zn(f.order,"ascending"));const l={field:u,order:a};let c;return Est(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new a0(e,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(e,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:s,fieldChannel:o,offset:u,impute:a}=r,l=s.map(h=>{const p=i[h];return Pa(p)}).filter(h=>!!h),c=yst(n),f=n.encoding.order;let x;return _e(f)||Ie(f)?x=vK(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new a0(e,{dimensionFieldDefs:l,stackField:n.vgField(o),facetby:[],stackby:c,sort:x,offset:u,impute:a,as:[n.vgField(o,{suffix:"start",forAs:!0}),n.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${_t(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:n,groupby:r}=this._stack;return e.length>0?e.map(i=>i.bin?n?[$e(i,{binSuffix:"mid"})]:[$e(i,{}),$e(i,{binSuffix:"end"})]:[$e(i)]).flat():r??[]}assemble(){const e=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:s,sort:o,offset:u,impute:a,as:l}=this._stack;if(a)for(const c of r){const{bandPosition:f=.5,bin:x}=c;if(x){const h=$e(c,{expr:"datum"}),p=$e(c,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${f}*${h}+${1-f}*${p}`,as:$e(c,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...s,...n],key:$e(c,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:o,as:l,offset:u}),e}}class X1 extends qt{constructor(e,n){super(e),this.transform=n}clone(){return new X1(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(this.transform.groupby.concat(e),n=>n)}dependentFields(){var e,n;const r=new Set;return((e=this.transform.groupby)!==null&&e!==void 0?e:[]).forEach(r.add,r),((n=this.transform.sort)!==null&&n!==void 0?n:[]).forEach(i=>r.add(i.field)),this.transform.window.map(i=>i.field).filter(i=>i!==void 0).forEach(r.add,r),r}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`WindowTransform ${_t(this.transform)}`}assemble(){var e;const n=[],r=[],i=[],s=[];for(const x of this.transform.window)r.push(x.op),i.push(this.getDefaultName(x)),s.push(x.param===void 0?null:x.param),n.push(x.field===void 0?null:x.field);const o=this.transform.frame,u=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&r.every(x=>s8(x)))return Object.assign({type:"joinaggregate",as:i,ops:r,fields:n},u!==void 0?{groupby:u}:{});const a=[],l=[];if(this.transform.sort!==void 0)for(const x of this.transform.sort)a.push(x.field),l.push((e=x.order)!==null&&e!==void 0?e:"ascending");const c={field:a,order:l},f=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:s,as:i,ops:r,fields:n,sort:c},f!==void 0?{ignorePeers:f}:{}),u!==void 0?{groupby:u}:{}),o!==void 0?{frame:o}:{})}}function Ast(t){function e(n){if(!(n instanceof K1)){const r=n.clone();if(r instanceof zi){const i=jk+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof Eu||r instanceof a0||r instanceof X1||r instanceof Md)&&r.addDimensions(t.fields);for(const i of n.children.flatMap(e))i.parent=r;return[r]}return n.children.flatMap(e)}return e}function Mk(t){if(t instanceof K1)if(t.numChildren()===1&&!(t.children[0]instanceof zi)){const e=t.children[0];(e instanceof Eu||e instanceof a0||e instanceof X1||e instanceof Md)&&e.addDimensions(t.fields),e.swapWithParent(),Mk(t)}else{const e=t.model.component.data.main;M0e(e);const n=Ast(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(Mk)}function M0e(t){if(t instanceof zi&&t.type===Jt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof K1||(e.swapWithParent(),M0e(t))}}const jk="scale_",V6=5;function Uk(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!Uk(e.children))return!1}return!0}function Au(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function j0e(t,e,n){let r=t.sources,i=!1;return i=Au(new cst,r)||i,i=Au(new ast(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=Au(new dst,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=Au(new fst,r)||i,i=Au(new gst(e),r)||i,i=Au(new lst,r)||i,i=Au(new xst,r)||i,i=Au(new pst,r)||i,i=Au(new hst,r)||i,i=Au(new ust,r)||i,i=Au(new mst,r)||i),t.sources=r,i}function vst(t,e){Uk(t.sources);let n=0,r=0;for(let i=0;i<V6&&j0e(t,e,!0);i++)n++;t.sources.map(Mk);for(let i=0;i<V6&&j0e(t,e,!1);i++)r++;Uk(t.sources),Math.max(n,r)===V6&&Re(`Maximum optimization runs(${V6}) reached.`)}class As{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new As(()=>e(n))}}var Sst=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function U0e(t){Qn(t)?_st(t):Cst(t)}function _st(t){const e=t.component.scales;for(const n of Te(e)){const r=Tst(t,n);if(e[n].setWithExplicit("domains",r),Ost(t,n),t.component.data.isFaceted){let s=t;for(;!vu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)wl(u)&&(u.data=jk+u.data.replace(jk,""))}}}function Cst(t){for(const n of t.children)U0e(n);const e=t.component.scales;for(const n of Te(e)){let r,i=null;for(const s of t.children){const o=s.component.scales[n];if(o){r===void 0?r=o.getWithExplicit("domains"):r=Wc(r,o.getWithExplicit("domains"),"domains","scale",zk);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Re(G8e),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function bst(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=q0e(e,n);if(!i){Re(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=q0e(e,n);if(i)return"unaggregated"}return t}function Tst(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=bst(t.scaleDomain(e),t.typedFieldDef(e),n,t.config.scale);return i!==t.scaleDomain(e)&&(t.specifiedScales[e]=Object.assign(Object.assign({},t.specifiedScales[e]),{domain:i})),e==="x"&&or(r.x2)?or(r.x)?Wc(Zc(n,i,t,"x"),Zc(n,i,t,"x2"),"domain","scale",zk):Zc(n,i,t,"x2"):e==="y"&&or(r.y2)?or(r.y)?Wc(Zc(n,i,t,"y"),Zc(n,i,t,"y2"),"domain","scale",zk):Zc(n,i,t,"y2"):Zc(n,i,t,e)}function Rst(t,e,n){return t.map(r=>({signal:`{data: ${R6(r,{timeUnit:n,type:e})}}`}))}function qk(t,e,n){var r;const i=(r=Ri(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?Rst(t,e,i):[t]}function Zc(t,e,n,r){const{encoding:i}=n,s=or(i[r]),{type:o}=s,u=s.timeUnit;if(Vet(e)){const f=Zc(t,void 0,n,r),x=qk(e.unionWith,o,u);return ja([...f.value,...x])}else{if(Ye(e))return ja([e]);if(e&&e!=="unaggregated"&&!nae(e))return ja(qk(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Ws([[0,1]]);const f=n.requestDataName(Jt.Main);return Ws([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=fc(r)&&Ie(s)?Nst(n,r,t):void 0;if(Ba(s)){const f=qk([s.datum],o,u);return Ws(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Jt.Main),{field:x}=s;return Ws([{data:f,field:$e({field:x,aggregate:"min"})},{data:f,field:$e({field:x,aggregate:"max"})}])}else if(Kt(c.bin)){if(Cr(t))return Ws(t==="bin-ordinal"?[]:[{data:Q5(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r,bE(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!He(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Kt(f)){const x=$k(n,c.field,f);return Ws([new As(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Ws([{data:n.requestDataName(Jt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&Ct(["time","utc"],t)&&Cae(c,Qn(n)?n.encoding[Dl(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Jt.Main);return Ws([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Ws(l?[{data:Q5(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r),sort:l}]:[{data:n.requestDataName(Jt.Main),field:n.vgField(r)}])}function Hk(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":E6)},r?{field:eu(r)}:{}),i?{order:i}:{})}function Ost(t,e){var n;const r=t.component.scales[e],i=t.specifiedScales[e].domain,s=(n=t.fieldDef(e))===null||n===void 0?void 0:n.bin,o=nae(i)&&i,u=Px(s)&&nC(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function Nst(t,e,n){if(!Cr(n))return;const r=t.fieldDef(e),i=r.sort;if(Aae(i))return{op:"min",field:V1(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if($a(i)){const u=s&&!o.has(i.field);return Hk(i,u)}else if(Eae(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(Fl(c)||xc(c))return Hk({field:$e(l),order:a},x);if(s8(c)||!c)return Hk({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(Ct(["ascending",void 0],i))return!0}}function q0e(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!D8e.has(n)?{valid:!1,reason:Awe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:vwe(t)}:{valid:!0}:{valid:!1,reason:Ewe(t)}}function zk(t,e,n,r){return t.explicit&&e.explicit&&Re(Twe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function Dst(t){const e=_l(t.map(o=>wl(o)?Sst(o,["sort"]):o),_t),n=_l(t.map(o=>{if(wl(o)){const u=o.sort;return u!==void 0&&!Q5(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),_t);if(e.length===0)return;if(e.length===1){const o=t[0];if(wl(o)&&n.length>0){let u=n[0];if(n.length>1)Re(kK),u=!0;else if(He(u)&&"field"in u){const a=u.field;o.field===a&&(u=u.order?{order:u.order}:!0)}return Object.assign(Object.assign({},o),{sort:u})}return o}const r=_l(n.map(o=>Q5(o)||!("op"in o)||je(o.op)&&o.op in T8e?o:(Re(Owe(o)),!0)),_t);let i;r.length===1?i=r[0]:r.length>1&&(Re(kK),i=!0);const s=_l(t.map(o=>wl(o)?o.data:null),o=>o);return s.length===1&&s[0]!==null?Object.assign({data:s[0],fields:e.map(u=>u.field)},i?{sort:i}:{}):Object.assign({fields:e},i?{sort:i}:{})}function Qk(t){if(wl(t)&&je(t.field))return t.field;if(w8e(t)){let e;for(const n of t.fields)if(wl(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Re(Nwe),e}return Re(Dwe),e}else if(L8e(t)){Re(Fwe);const e=t.fields[0];return je(e)?e:void 0}}function Y6(t,e){const r=t.component.scales[e].get("domains").map(i=>(wl(i)&&(i.data=t.lookupDataSource(i.data)),i));return Dst(r)}var Fst=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function H0e(t){return J1(t)||Vk(t)?t.children.reduce((e,n)=>e.concat(H0e(n)),z0e(t)):z0e(t)}function z0e(t){return Te(t.component.scales).reduce((e,n)=>{const r=t.component.scales[n];if(r.merged)return e;const i=r.combine(),{name:s,type:o,selectionExtent:u,domains:a,range:l,reverse:c}=i,f=Fst(i,["name","type","selectionExtent","domains","range","reverse"]),x=wst(i.range,s,n,t),h=Y6(t,n),p=u?Srt(t,u,r,h):null;return e.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:s,type:o},h?{domain:h}:{}),p?{domainRaw:p}:{}),{range:x}),c!==void 0?{reverse:c}:{}),f)),e},[])}function wst(t,e,n,r){if(Ir(n)){if(hc(t))return{step:{signal:`${e}_step`}}}else if(He(t)&&wl(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class Q0e extends u0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:w2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const Lst=["range","scheme"];function Ist(t){const e=t.component.scales;for(const n of tC){const r=e[n];if(!r)continue;const i=$st(n,t);r.setWithExplicit("range",i)}}function G0e(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=ls(e),o=t.getName(s);if(He(r)&&r.binned&&r.step!==void 0)return new As(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Kt(r)){const u=$k(t,i,r);return new As(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function $st(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of Lst)if(n[f]!==void 0){const x=NB(s,f),h=rae(t,f);if(!x)Re($K(s,f,t));else if(h)Re(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(Ir(t))return ja(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return As.fromName(y,g)}return m}))}else if(He(p))return ja({data:e.requestDataName(Jt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return ja(p)}case"scheme":return ja(Bst(n[f]))}}const o=t===En||t==="xOffset"?"width":"height",u=r[o];if(Ma(u)){if(Ir(t))if(Cr(s)){const f=W0e(u,e,t);if(f)return ja({step:f})}else Re(BK(o));else if(B2(t)){const f=t===sc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=V0e(u,s);if(p)return ja(p)}}}const{rangeMin:a,rangeMax:l}=n,c=kst(t,e);return(a!==void 0||l!==void 0)&&NB(s,"rangeMin")&&_e(c)&&c.length===2?ja([a??c[0],l??c[1]]):Ws(c)}function Bst(t){return Wet(t)?Object.assign({scheme:t.name},ho(t,["name"])):{scheme:t}}function kst(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=or(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case En:case gr:{if(Ct(["point","band"],l)){const p=Y0e(t,n,r.view);if(Ma(p))return{step:W0e(p,e,t)}}const x=ls(t),h=e.getName(x);return t===gr&&Gs(l)?[As.fromName(o,h),0]:[0,As.fromName(o,h)]}case sc:case I2:return Pst(t,e,l);case Ol:{const x=e.component.scales[t].get("zero"),h=K0e(i,x,r),p=Ust(i,n,e,r);return $1(l)?jst(h,p,Mst(l,r,c,t)):[h,p]}case nu:return[0,Math.PI*2];case $x:return[0,360];case oa:return[0,new As(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case ac:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case lc:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case as:return"symbol";case us:case la:case ca:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Nl:case oc:case uc:return[r.scale.minOpacity,r.scale.maxOpacity]}}function W0e(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=oK(n),f=a[c];if(ile({step:t,offsetIsDiscrete:st(f)&&Kue(f.type)})==="offset"&&kae(a,c)){const h=e.getScaleComponent(c);let m=`domain('${e.scaleName(c)}').length`;if(h.get("type")==="band"){const y=(i=(r=h.get("paddingInner"))!==null&&r!==void 0?r:h.get("padding"))!==null&&i!==void 0?i:0,E=(o=(s=h.get("paddingOuter"))!==null&&s!==void 0?s:h.get("padding"))!==null&&o!==void 0?o:0;m=`bandspace(${m}, ${y}, ${E})`}const g=(u=l.get("paddingInner"))!==null&&u!==void 0?u:l.get("padding");return{signal:`${t.step} * ${m} / (1-${B8e(g)})`}}else return t.step}function V0e(t,e){if(ile({step:t,offsetIsDiscrete:Cr(e)})==="offset")return{step:t.step}}function Pst(t,e,n){const r=t===sc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=Y0e(r,e.size,e.config.view);if(Ma(u)){const a=V0e(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return KFe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function Y0e(t,e,n){const r=t===En?"width":"height",i=e[r];return i||$6(n,r)}function Mst(t,e,n,r){switch(t){case"quantile":return e.scale.quantileCount;case"quantize":return e.scale.quantizeCount;case"threshold":return n!==void 0&&_e(n)?n.length+1:(Re(jwe(r)),3)}}function jst(t,e,n){const r=()=>{const i=Ll(e),s=Ll(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new As(r):{signal:r()}}function K0e(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${K0e(t,!1,n)}`}:0;switch(t){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(iC("size",t))}const X0e=.95;function Ust(t,e,n,r){const i={x:G0e(n,"x"),y:G0e(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=J0e(e,i,r.view);return nn(s)?s-1:new As(()=>`${s.signal} - 1`)}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const s=J0e(e,i,r.view);return nn(s)?Math.pow(X0e*s,2):new As(()=>`pow(${X0e} * ${s.signal}, 2)`)}}throw new Error(iC("size",t))}function J0e(t,e,n){const r=Ma(t.width)?t.width.step:I6(n,"width"),i=Ma(t.height)?t.height.step:I6(n,"height");return e.x||e.y?new As(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function Z0e(t,e){Qn(t)?qst(t,e):nce(t,e)}function qst(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of Te(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=or(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=NB(h,e),y=rae(u,e);if(x!==void 0&&(g?y&&Re(y):Re($K(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":jx(a[e])||A==="temporal"||E?l.set(e,{signal:R6(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in ece?ece[e]({model:t,channel:u,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:a.domain,domainMin:a.domainMin,domainMax:a.domainMax,markDef:s,config:r,hasNestedOffsetScale:WB(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const ece={bins:({model:t,fieldOrDatumDef:e})=>Ie(e)?Hst(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>zst(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Qst(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Gst(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Wst(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>Vst(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Ie(t)?t.sort:void 0;return Yst(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Kst(t,e,n,r,i)};function tce(t){Qn(t)?Ist(t):nce(t,"range")}function nce(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?tce(r):Z0e(r,e);for(const r of Te(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=Wc(i,u,e,"scale",Dle((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Hst(t,e){const n=e.bin;if(Kt(n)){const r=$k(t,e.field,n);return new As(()=>t.getSignalName(r))}else if(Ti(n)&&Px(n)&&n.step!==void 0)return{step:n.step}}function zst(t,e){if(Ct([us,la,ca],t)&&e!=="nominal")return"hcl"}function Qst(t,e,n,r,i,s){var o;if(!(!((o=Pa(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||Ct([Es.TIME,Es.UTC],t)))return Ir(e)?!0:void 0}function Gst(t,e,n,r,i,s){if(Ir(t)){if(mu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Ie(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===Es.POINT)return n.pointPadding}}function Wst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:Zn(o,n==="bar"?u:a)}else if(B2(e)&&r===Es.BAND)return i.offsetBandPaddingInner}}function Vst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===Es.BAND)return Zn(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(B2(e)){if(n===Es.POINT)return .5;if(n===Es.BAND)return i.offsetBandPaddingOuter}}}function Yst(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return Gs(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(Gs(t)&&e==="descending")return!0}function Kst(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&Gs(i)){if(_e(n)){const o=n[0],u=n[n.length-1];if(o<=0&&u>=0)return!0}return!1}if(t==="size"&&e.type==="quantitative"&&!$1(i))return!0;if(!(Ie(e)&&e.bin)&&Ct([...fa,...y8e],t)){const{orient:o,type:u}=r;return!(Ct(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function Xst(t,e,n,r,i=!1){const s=Jst(e,n,r,i),{type:o}=t;return fc(e)?o!==void 0?Zet(e,o)?Ie(n)&&!Jet(o,n.type)?(Re(Cwe(o,s)),s):o:(Re(_we(e,o,s)),s):s:null}function Jst(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if($2(t)||i8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Re(f8(t,"ordinal")),"ordinal";if(Ir(t)||B2(t)){if(Ct(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in r8)return"band";const s=n[ls(t)];return B1(s)||HB(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return $2(t)?"time":i8(t)==="discrete"?(Re(f8(t,"temporal")),"ordinal"):Ie(e)&&e.timeUnit&&Ri(e.timeUnit).utc?"utc":"time";case"quantitative":return $2(t)?Ie(e)&&Kt(e.bin)?"bin-ordinal":"linear":i8(t)==="discrete"?(Re(f8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(LK(e.type))}function Zst(t,{ignoreRange:e}={}){rce(t),U0e(t);for(const n of Xet)Z0e(t,n);e||tce(t)}function rce(t){Qn(t)?t.component.scales=eot(t):t.component.scales=not(t)}function eot(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of tC){const o=or(e[s]);if(o&&n===oae&&s===as&&o.type===I1)continue;let u=o&&o.scale;if(B2(s)){const a=uK(s);if(!WB(e,a)){u&&Re(lwe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=WB(e,s),l=Xst(u,s,o,r,a);i[s]=new Q0e(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const tot=Dle((t,e)=>Xue(t)-Xue(e));function not(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){rce(o);for(const u of Te(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=v0e(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?qet(a.value,l.value)?i[u]=Wc(a,l,"type","scale",tot):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of Te(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new Q0e(u,a);for(const l of t.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),u),c.merged=!0)}}return r}var Gk=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Wk{constructor(){this.nameMap={}}rename(e,n){this.nameMap[e]=n}has(e){return this.nameMap[e]!==void 0}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function Qn(t){return(t==null?void 0:t.type)==="unit"}function vu(t){return(t==null?void 0:t.type)==="facet"}function Vk(t){return(t==null?void 0:t.type)==="concat"}function J1(t){return(t==null?void 0:t.type)==="layer"}class Yk{constructor(e,n,r,i,s,o,u){var a,l;this.type=n,this.parent=r,this.config=s,this.correctDataNames=c=>{var f,x,h;return!((f=c.from)===null||f===void 0)&&f.data&&(c.from.data=this.lookupDataSource(c.from.data)),!((h=(x=c.from)===null||x===void 0?void 0:x.facet)===null||h===void 0)&&h.data&&(c.from.facet.data=this.lookupDataSource(c.from.facet.data)),c},this.parent=r,this.config=s,this.view=cs(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=dc(e.title)?{text:e.title}:e.title?cs(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Wk,this.projectionNameMap=r?r.projectionNameMap:new Wk,this.signalNameMap=r?r.signalNameMap:new Wk,this.data=e.data,this.description=e.description,this.transforms=irt((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:fnt(e,n,s),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:A6(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new u0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ut(o):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){Zst(this)}parseProjection(){I0e(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){N0e(this)}assembleEncodeFromView(e){const n=Gk(e,["style"]),r={};for(const i of Te(n)){const s=n[i];s!==void 0&&(r[i]=sn(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=sn(this.description)),this.type==="unit"||this.type==="layer")?Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},n??{}):Wt(n)?void 0:n}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:n}=e,r=Gk(e,["spacing"]),{component:i,config:s}=this,o=Eit(i.layoutHeaders,s);return Object.assign(Object.assign(Object.assign({padding:n},this.assembleDefaultLayout()),r),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let n=[];for(const r of go)e[r].title&&n.push(dit(this,r));for(const r of Nk)n=n.concat(hit(this,r));return n}assembleAxes(){return tit(this.component.axes,this.config)}assembleLegends(){return F0e(this)}assembleProjections(){return Hit(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=Gk(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},pK(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return Ct(["unit","layer"],this.type)?Ct(["middle",void 0],u.anchor)&&((n=u.frame)!==null&&n!==void 0||(u.frame="group")):(r=u.anchor)!==null&&r!==void 0||(u.anchor="start"),Wt(u)?void 0:u}assembleGroup(e=[]){const n={};e=e.concat(this.assembleSignals()),e.length>0&&(n.signals=e);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||vu(this.parent)?H0e(this):[];i.length>0&&(n.scales=i);const s=this.assembleAxes();s.length>0&&(n.axes=s);const o=this.assembleLegends();return o.length>0&&(n.legends=o),n}getName(e){return yn((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Jt[e].toLowerCase())}requestDataName(e){const n=this.getDataName(e),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(e){if(vu(this.parent)){const n=E0e(e),r=eC(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Cr(s)&&hc(o)){const u=i.get("name"),a=Y6(this,r),l=Qk(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:y0e(u,i,c)}}else return Re(l8(r)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const n=this.component.data.outputNodes[e];return n?n.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,n){this.signalNameMap.rename(e,n)}renameScale(e,n){this.scaleNameMap.rename(e,n)}renameProjection(e,n){this.projectionNameMap.rename(e,n)}scaleName(e,n){if(n)return this.getName(e);if(iK(e)&&fc(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e)))return this.scaleNameMap.get(this.getName(e))}projectionName(e){if(e)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[e];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,n){let r=this.component.selection[e];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(e,n)),!r)throw new Error(U8e(n));return r}hasAxisOrientSignalRef(){var e,n;return((e=this.component.axes.x)===null||e===void 0?void 0:e.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)===null||n===void 0?void 0:n.some(r=>r.hasOrientSignalRef()))}}class ice extends Yk{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return Utt(this.getMapping(),(r,i,s)=>{const o=Pa(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){YB(this.getMapping(),(r,i)=>{const s=Pa(r);s&&e(s,i)},n)}}var rot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class K6 extends qt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"value",(s=o[1])!==null&&s!==void 0?s:"density"]}clone(){return new K6(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=rot(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class BE extends qt{constructor(e,n){super(e),this.filter=n}clone(){return new BE(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if(It("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=fc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");Gs(x)&&l.aggregate!=="count"&&!zc(i)&&(a[l.field]=l)}return a},{});return Te(u).length?new BE(e,u):null}dependentFields(){return new Set(Te(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${_t(this.filter)}`}assemble(){const e=Te(this.filter).reduce((n,r)=>{const i=this.filter[r],s=$e(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${s}) || (isValid(${s}) && isFinite(+${s})))`):i.type==="quantitative"&&(n.push(`isValid(${s})`),n.push(`isFinite(+${s})`))),n},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class X6 extends qt{constructor(e,n){super(e),this.transform=n,this.transform=ut(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((s,o)=>{var u;return(u=i[o])!==null&&u!==void 0?u:s})}clone(){return new X6(this.parent,ut(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${_t(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class J6 extends qt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"key",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new J6(null,ut(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${_t(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class Z1 extends qt{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new Z1(null,ut(this.fields),this.geojson,this.signal)}static parseAll(e,n){if(n.component.projection&&!n.component.projection.isFit)return e;let r=0;for(const i of[[aa,ua],[po,ru]]){const s=i.map(o=>{const u=or(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new Z1(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(as)){const i=n.typedFieldDef(as);i.type===I1&&(e=new Z1(e,null,i.field,n.getName(`geojson_${r++}`)))}return e}dependentFields(){var e;const n=((e=this.fields)!==null&&e!==void 0?e:[]).filter(je);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${_t(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class kE extends qt{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new kE(null,this.projection,ut(this.fields),ut(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[aa,ua],[po,ru]]){const i=r.map(o=>{const u=or(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===po?"2":"";(i[0]||i[1])&&(e=new kE(e,n.projectionName(),i,[n.getName(`x${s}`),n.getName(`y${s}`)]))}return e}dependentFields(){return new Set(this.fields.filter(je))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${_t(this.fields)} ${_t(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class jd extends qt{constructor(e,n){super(e),this.transform=n}clone(){return new jd(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:n=0,stop:r,step:i}=e;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,n){return new jd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Ie(i)&&Ie(s)){const o=i.impute?i:s.impute?s:void 0;if(o===void 0)return;const u=i.impute?s:s.impute?i:void 0,{method:a,value:l,frame:c,keyvals:f}=o.impute,x=Mae(n.mark,r);return new jd(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:u.field},a?{method:a}:{}),l!==void 0?{value:l}:{}),c?{frame:c}:{}),f!==void 0?{keyvals:f}:{}),x.length?{groupby:x}:{}))}return null}hash(){return`Impute ${_t(this.transform)}`}assemble(){const{impute:e,key:n,keyvals:r,method:i,groupby:s,value:o,frame:u=[null,null]}=this.transform,a=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:n},r?{keyvals:jnt(r)?this.processSequence(r):r}:{}),{method:"value"}),s?{groupby:s}:{}),{value:!i||i==="value"?o:null});if(i&&i!=="value"){const l=Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:u,ignorePeers:!1},s?{groupby:s}:{}),c={type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e};return[a,l,c]}else return[a]}}var iot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Z6 extends qt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.loess]}clone(){return new Z6(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=iot(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class PE extends qt{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new PE(null,ut(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(Unt(o)){let a=ace(o.data,s);a||(a=new kd(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new zi(a,l,Jt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(qnt(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(yn(a),a)}catch{throw new Error(z8e(a))}if(u=l.materialized,!u)throw new Error(Q8e(a))}return new PE(e,r,u.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Pe(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${_t({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:Pe(this.transform.as)}:{});else{let n=this.transform.as;je(n)||(Re(Z8e),n="_lookup"),e={as:[n]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}var sot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class eR extends qt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"prob",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new eR(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=sot(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var oot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class tR extends qt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.regression]}clone(){return new tR(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=oot(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class nR extends qt{constructor(e,n){super(e),this.transform=n}clone(){return new nR(null,ut(this.transform))}addDimensions(e){var n;this.transform.groupby=_l(((n=this.transform.groupby)!==null&&n!==void 0?n:[]).concat(e),r=>r)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}hash(){return`PivotTransform ${_t(this.transform)}`}assemble(){const{pivot:e,value:n,groupby:r,limit:i,op:s}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:n},i!==void 0?{limit:i}:{}),s!==void 0?{op:s}:{}),r!==void 0?{groupby:r}:{})}}class rR extends qt{constructor(e,n){super(e),this.transform=n}clone(){return new rR(null,ut(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${_t(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function sce(t){let e=0;function n(r,i){var s;if(r instanceof kd&&!r.isGenerator&&!U1(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof ai&&(r.parent instanceof kd&&!i.source?(i.format=Object.assign(Object.assign({},(s=i.format)!==null&&s!==void 0?s:{}),{parse:r.assembleFormatParse()}),i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof K1){i.name||(i.name=`data_${e++}`),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,t.push(...r.assemble());return}switch((r instanceof LE||r instanceof IE||r instanceof BE||r instanceof G1||r instanceof W1||r instanceof kE||r instanceof Eu||r instanceof PE||r instanceof X1||r instanceof Md||r instanceof J6||r instanceof X6||r instanceof K6||r instanceof Z6||r instanceof eR||r instanceof tR||r instanceof Jc||r instanceof rR||r instanceof nR)&&i.transform.push(r.assemble()),(r instanceof qa||r instanceof Ua||r instanceof jd||r instanceof a0||r instanceof Z1)&&i.transform.push(...r.assemble()),r instanceof zi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof zi?r.setSource(i.name):(i.name||(i.name=`data_${e++}`),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof zi&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${e++}`);let o=i.name;!i.source||i.transform.length>0?t.push(i):o=i.source;for(const u of r.children)n(u,{name:null,source:o,transform:[]});break}}}return n}function uot(t){const e=[],n=sce(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function aot(t,e){var n,r;const i=[],s=sce(i);let o=0;for(const a of t.sources){a.hasName()||(a.dataName=`source_${o++}`);const l=a.assemble();s(a,l)}for(const a of i)a.transform.length===0&&delete a.transform;let u=0;for(const[a,l]of i.entries())((n=l.transform)!==null&&n!==void 0?n:[]).length===0&&!l.source&&i.splice(u++,0,i.splice(a,1)[0]);for(const a of i)for(const l of(r=a.transform)!==null&&r!==void 0?r:[])l.type==="lookup"&&(l.from=t.outputNodes[l.from].getSource());for(const a of i)a.name in e&&(a.values=e[a.name]);return i}function lot(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function cot(t){for(const e of go)fot(t,e);uce(t,"x"),uce(t,"y")}function fot(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=Y1("title",null,i,e);let l=k1(u,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});s.component.layoutHeaders[e].title&&(l=_e(l)?l.join(", "):l,l+=` / ${s.component.layoutHeaders[e].title}`,s.component.layoutHeaders[e].title=null);const c=Y1("labelOrient",u.header,i,e),f=u.header!==null?Zn((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=Ct(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[oce(t,e,f)]}}}function oce(t,e,n){const r=e==="row"?"height":"width";return{labels:n,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function uce(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=Lk(s,e),s.axis[e]==="shared"){const o=e==="x"?"column":"row",u=i[o];for(const a of r.component.axes[e]){const l=lot(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[oce(t,o,!1)]);const c=wE(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function xot(t){Kk(t),iR(t,"width"),iR(t,"height")}function dot(t){Kk(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";iR(t,e),iR(t,n)}function Kk(t){for(const e of t.children)e.parseLayoutSize()}function iR(t,e){var n;const r=E0e(e),i=eC(r),s=t.component.resolve,o=t.component.layoutSize;let u;for(const a of t.children){const l=a.component.layoutSize.getWithExplicit(r),c=(n=s.scale[i])!==null&&n!==void 0?n:v0e(i,t);if(c==="independent"&&l.value==="step"){u=void 0;break}if(u){if(c==="independent"&&u.value!==l.value){u=void 0;break}u=Wc(u,l,r,"")}else u=l}if(u){for(const a of t.children)t.renameSignal(a.getName(r),t.getName(e)),a.component.layoutSize.set(r,"merged",!1);o.setWithExplicit(e,u)}else o.setWithExplicit(e,{explicit:!1,value:void 0})}function hot(t){const{size:e,component:n}=t;for(const r of fa){const i=ls(r);if(e[i]){const s=e[i];n.layoutSize.set(i,Ma(s)?"step":s,!0)}else{const s=pot(t,i);n.layoutSize.set(i,s,!1)}}}function pot(t,e){const n=e==="width"?"x":"y",r=t.config,i=t.getScaleComponent(n);if(i){const s=i.get("type"),o=i.get("range");if(Cr(s)){const u=$6(r.view,e);return hc(o)||Ma(u)?"step":u}else return uk(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return uk(r.view,e);{const s=$6(r.view,e);return Ma(s)?s.step:s}}}function Xk(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class ME extends ice{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=nP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!_E(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=Te(e),r={};for(const i of n){if(![Cl,bl].includes(i)){Re(iC(i,"facet"));break}const s=e[i];if(s.field===void 0){Re(c8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=GB(e,n);return r.header?r.header=cs(r.header):r.header===null&&(r.header=null),r}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=sR(this),this.child.parseData()}parseLayoutSize(){Kk(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),cot(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,n,r;const i={};for(const s of go)for(const o of Dk){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=Y1("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=Q6(s,c);(e=i.titleAnchor)!==null&&e!==void 0||(i.titleAnchor={}),i.titleAnchor[f]="end"}}if(a!=null&&a[0]){const c=s==="row"?"height":"width",f=o==="header"?"headerBand":"footerBand";s!=="facet"&&!this.child.component.layoutSize.get(c)&&((n=i[f])!==null&&n!==void 0||(i[f]={}),i[f][s]=.5),u.title&&((r=i.offset)!==null&&r!==void 0||(i.offset={}),i.offset[s==="row"?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:n}=this.facet,r=e?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!e&&this.component.resolve.scale.y==="independent")&&(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),r?{columns:r}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof ME))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof ME?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:$e(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],n=[],r=[];if(this.child instanceof ME){if(this.child.channelHasField("column")){const i=$e(this.child.facet.column);e.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of fa){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Cr(o)&&hc(u)){const a=Y6(this.child,i),l=Qk(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Re(l8(i))}}}return{fields:e,ops:n,as:r}}assembleFacet(){const{name:e,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:s,ops:o,as:u}=this.getCardinalityAggregateForChild(),a=[];for(const c of go){const f=this.facet[c];if(f){a.push($e(f));const{bin:x,sort:h}=f;if(Kt(x)&&a.push($e(f,{binSuffix:"end"})),$a(h)){const{field:p,op:m=E6}=h,g=Xk(f,h);r&&i?(s.push(g),o.push("max"),u.push(g)):(s.push(p),o.push(m),u.push(g))}else if(_e(h)){const p=V1(f,c);s.push(p),o.push("max"),u.push(p)}}}const l=!!r&&!!i;return Object.assign({name:e,data:n,groupby:a},l||s.length>0?{aggregate:Object.assign(Object.assign({},l?{cross:l}:{}),s.length?{fields:s,ops:o,as:u}:{})}:{})}facetSortFields(e){const{facet:n}=this,r=n[e];return r?$a(r.sort)?[Xk(r,r.sort,{expr:"datum"})]:_e(r.sort)?[V1(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[($a(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return Fk(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of Nk)if(n[s]){const o=Y1("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return Fk(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=uot(n),i=e.assembleGroupEncodeEntry(!1),s=this.assembleLabelTitle()||e.assembleTitle(),o=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},s?{title:s}:{}),o?{style:o}:{}),{from:{facet:this.assembleFacet()},sort:{field:go.map(a=>this.facetSortFields(a)).flat(),order:go.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(yrt(this,[])))]}getMapping(){return this.facet}}function got(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if($a(s.sort)){const{field:o,op:u=E6}=s.sort;t=i=new Md(t,{joinaggregate:[{op:u,field:o,as:Xk(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function ace(t,e){var n,r,i,s;for(const o of e){const u=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const a=(n=t.format)===null||n===void 0?void 0:n.mesh,l=(r=u.format)===null||r===void 0?void 0:r.feature;if(a&&l)continue;const c=(i=t.format)===null||i===void 0?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(s=u.format)===null||s===void 0?void 0:s.mesh;if(!((a||f)&&a!==f)){if(OE(t)&&OE(u)){if(Sl(t.values,u.values))return o}else if(U1(t)&&U1(u)){if(t.url===u.url)return o}else if(Fle(t)&&t.name===o.dataName)return o}}return null}function mot(t,e){if(t.data||!t.parent){if(t.data===null){const r=new kd({values:[]});return e.push(r),r}const n=ace(t.data,e);if(n)return Vc(t.data)||(n.data.format=XFe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new kd(t.data);return e.push(r),r}}else return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}function yot(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(Jnt(o))a=t=new W1(t,o),u="derived";else if(xk(o)){const l=rst(o);a=t=(r=ai.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new G1(t,e,o.filter)}else if(_le(o))a=t=qa.makeFromTransform(t,o,e),u="number";else if(ert(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new ai(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=Ua.makeFromTransform(t,o);else if(trt(o))a=t=Eu.makeFromTransform(t,o),u="number",Ck(e)&&(t=new Jc(t));else if(Sle(o))a=t=PE.make(t,e,o,s++),u="derived";else if(Ynt(o))a=t=new X1(t,o),u="number";else if(Knt(o))a=t=new Md(t,o),u="number";else if(nrt(o))a=t=a0.makeFromTransform(t,o),u="derived";else if(rrt(o))a=t=new J6(t,o),u="derived";else if(Xnt(o))a=t=new X6(t,o),u="derived";else if(Hnt(o))a=t=new nR(t,o),u="derived";else if(Vnt(o))t=new rR(t,o);else if(Znt(o))a=t=jd.makeFromTransform(t,o),u="derived";else if(znt(o))a=t=new K6(t,o),u="derived";else if(Qnt(o))a=t=new eR(t,o),u="derived";else if(Gnt(o))a=t=new tR(t,o),u="derived";else if(Wnt(o))a=t=new Z6(t,o),u="derived";else{Re(J8e(o));continue}if(a&&u!==void 0)for(const l of(i=a.producedFields())!==null&&i!==void 0?i:[])n.set(l,u,!1)}return t}function sR(t){var e,n,r,i,s,o,u,a,l,c;let f=mot(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Vc(p)||U1(p)||OE(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new prt;Vc(p)?(wle(p)?f=new IE(f,p.sequence):pk(p)&&(f=new LE(f,p.graticule)),g.parseNothing=!0):((e=p==null?void 0:p.format)===null||e===void 0?void 0:e.parse)===null&&(g.parseNothing=!0),f=(n=ai.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Jc(f);const y=t.parent&&J1(t.parent);(Qn(t)||vu(t))&&y&&(f=(r=qa.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=yot(f,t,g));const E=sst(t),A=ist(t);f=(i=ai.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,Qn(t)&&(f=Z1.parseAll(f,t),f=kE.parseAll(f,t)),(Qn(t)||vu(t))&&(y||(f=(s=qa.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=Ua.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=W1.parseAllForSortIndex(f,t));const v=t.getDataName(Jt.Raw),S=new zi(f,v,Jt.Raw,h);if(x[v]=S,f=S,Qn(t)){const R=Eu.makeFromEncoding(f,t);R&&(f=R,Ck(t)&&(f=new Jc(f))),f=(u=jd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=a0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}Qn(t)&&(f=(l=BE.make(f,t))!==null&&l!==void 0?l:f);const C=t.getDataName(Jt.Main),_=new zi(f,C,Jt.Main,h);x[C]=_,f=_,Qn(t)&&Zrt(t,_);let b=null;if(vu(t)){const R=t.getName("facet");f=(c=got(f,t.facet))!==null&&c!==void 0?c:f,b=new K1(f,t,R,_.getSource()),x[R]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:S,main:_,facetRoot:b,ancestorParse:g})}class Eot extends Yk{constructor(e,n,r,i){var s,o,u,a;super(e,"concat",n,r,i,e.resolve),(((o=(s=e.resolve)===null||s===void 0?void 0:s.axis)===null||o===void 0?void 0:o.x)==="shared"||((a=(u=e.resolve)===null||u===void 0?void 0:u.axis)===null||a===void 0?void 0:a.y)==="shared")&&Re(Y8e),this.children=this.getChildren(e).map((l,c)=>nP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=sR(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return L6(e)?e.vconcat:ok(e)?e.hconcat:e.concat}parseLayoutSize(){dot(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){const e=wk(this);for(const n of this.children)e.push(...n.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleMarks(){return this.children.map(e=>{const n=e.assembleTitle(),r=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},n?{title:n}:{}),r?{style:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},e!=null?{columns:e}:{}),{bounds:"full",align:"each"})}}function Aot(t){return t===!1||t===null}const vot=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Iae),{labelExpr:1,encode:1}),lce=Te(vot);class Jk extends u0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new Jk(ut(this.explicit),ut(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!Aot(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function Sot(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=or(i[e]))!==null&&r!==void 0?r:or(i[Dl(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return Ld(l)?Object.assign({text:kB({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function _ot(t){return fa.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[Dot(n,t)]),e),{})}const Cot={bottom:"top",top:"bottom",left:"right",right:"left"};function bot(t){var e;const{axes:n,resolve:r}=t.component,i={top:0,bottom:0,right:0,left:0};for(const s of t.children){s.parseAxesAndHeaders();for(const o of Te(s.component.axes))r.axis[o]=Lk(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=Tot(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of fa){for(const o of t.children)if(o.component.axes[s]){if(r.axis[s]==="independent"){n[s]=((e=n[s])!==null&&e!==void 0?e:[]).concat(o.component.axes[s]);for(const u of o.component.axes[s]){const{value:a,explicit:l}=u.getWithExplicit("orient");if(!Ye(a)){if(i[a]>0&&!l){const c=Cot[a];i[a]>i[c]&&u.set("orient",c,!1)}i[a]++}}}delete o.component.axes[s]}if(r.axis[s]==="independent"&&n[s]&&n[s].length>1)for(const o of n[s])o.get("grid")&&!o.explicit.grid&&(o.implicit.grid=!1)}}function Tot(t,e){if(t){if(t.length!==e.length)return;const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=e[r];if(!!i!=!!s)return;if(i&&s){const o=i.getWithExplicit("orient"),u=s.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;t[r]=Rot(i,s)}}}else return e.map(n=>n.clone());return t}function Rot(t,e){for(const n of lce){const r=Wc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return CK(i,s);case"gridScale":return{explicit:i.explicit,value:Zn(i.value,s.value)}}return k6(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function Oot(t,e,n,r,i){if(e==="disable")return n!==void 0;switch(n=n||{},e){case"titleAngle":case"labelAngle":return t===(Ye(n.labelAngle)?n.labelAngle:V5(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===d0e(r,i))return!0}return t===n[e]}const Not=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Dot(t,e){var n,r,i;let s=e.axis(t);const o=new Jk,u=or(e.encoding[t]),{mark:a,config:l}=e,c=(s==null?void 0:s.orient)||((n=l[t==="x"?"axisX":"axisY"])===null||n===void 0?void 0:n.orient)||((r=l.axis)===null||r===void 0?void 0:r.orient)||lit(t),f=e.getScaleComponent(t).get("type"),x=nit(t,f,c,e.config),h=s!==void 0?!s:Rk("disable",l.style,s==null?void 0:s.style,x).configValue;if(o.set("disable",h,s!==void 0),h)return o;s=s||{};const p=oit(u,s,t,l.style,x),m={fieldOrDatumDef:u,axis:s,channel:t,model:e,scaleType:f,orient:c,labelAngle:p,mark:a,config:l};for(const E of lce){const A=E in c0e?c0e[E](m):$ae(E)?s[E]:void 0,v=A!==void 0,S=Oot(A,E,s,e,t);if(v&&S)o.set(E,A,S);else{const{configValue:C=void 0,configFrom:_=void 0}=$ae(E)&&E!=="values"?Rk(E,l.style,s.style,x):{},b=C!==void 0;v&&!b?o.set(E,A,S):(_!=="vgAxisConfig"||Not.has(E)&&b||TE(C)||Ye(C))&&o.set(E,C,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=Lae.reduce((E,A)=>{var v;if(!o.hasAxisPart(A))return E;const S=A0e((v=g[A])!==null&&v!==void 0?v:{},e),C=A==="labels"?Sot(e,t,S):S;return C!==void 0&&!Wt(C)&&(E[A]={update:C}),E},{});return Wt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function Fot({encoding:t,size:e}){for(const n of fa){const r=ls(n);Ma(e[r])&&ka(t[n])&&(delete e[r],Re(BK(r)))}return e}function wot(t,e,n){const r=cs(t),i=It("orient",r,n);if(r.orient=Bot(r.type,e,i),i!==void 0&&i!==r.orient&&Re(gwe(r.orient,i)),r.type==="bar"&&r.orient){const u=It("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:ltt[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return It("opacity",r,n)===void 0&&(r.opacity=Iot(r.type,e)),It("cursor",r,n)===void 0&&(r.cursor=Lot(r,e,n)),r}function Lot(t,e,n){return e.href||t.href||It("href",t,n)?"pointer":t.cursor}function Iot(t,e){if(Ct([p6,DB,FB,wB],t)&&!VB(e))return .7}function $ot(t,e,{graticule:n}){if(n)return!1;const r=Mx("filled",t,e),i=t.type;return Zn(r,i!==p6&&i!==h6&&i!==g6)}function Bot(t,e,n){switch(t){case p6:case FB:case wB:case sae:case ttt:case ett:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case d6:if(Ie(r)&&(Ti(r.bin)||Ie(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Ie(i)&&(Ti(i.bin)||Ie(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Ie(r)&&r.type===Fd&&!Kt(r.bin)||qB(r)))return"horizontal";if(!o&&(Ie(i)&&i.type===Fd&&!Kt(i.bin)||qB(i)))return"vertical"}case g6:if(s&&!(Ie(r)&&Ti(r.bin))&&o&&!(Ie(i)&&Ti(i.bin)))return;case x6:if(o)return Ie(i)&&Ti(i.bin)?"horizontal":"vertical";if(s)return Ie(r)&&Ti(r.bin)?"vertical":"horizontal";if(t===g6){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case h6:case DB:{const u=ka(r),a=ka(i);if(n)return n;if(u&&!a)return t!=="tick"?"horizontal":"vertical";if(!u&&a)return t!=="tick"?"vertical":"horizontal";if(u&&a){const l=r,c=i,f=l.type===L1,x=c.type===L1;return f&&!x?t!=="tick"?"vertical":"horizontal":!f&&x?t!=="tick"?"horizontal":"vertical":!l.aggregate&&c.aggregate?t!=="tick"?"vertical":"horizontal":l.aggregate&&!c.aggregate&&t!=="tick"?"horizontal":"vertical"}else return}}return"vertical"}const kot={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Kc(t,"radius")),Kc(t,"theta"))},Pot={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),M6("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),M6("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),Sk(t))},Mot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Kc(t,"x")),Kc(t,"y"))},jot={vgMark:"shape",encodeEntry:t=>Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:t=>{const{encoding:e}=t,n=e.shape;return[Object.assign({type:"geoshape",projection:t.projectionName()},n&&Ie(n)&&n.type===I1?{field:$e(n,{expr:"datum"})}:{})]}},Uot={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Kc(t,"x")),Kc(t,"y")),Ak(t,"url"))},qot={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t,{vgChannel:"strokeWidth"})),Sk(t))},Hot={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),Sk(t))};function Zk(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),br("angle",t)),zot(t,n,e))}function zot(t,e,n){return n?{shape:{value:n}}:br("shape",t)}const Qot={vgMark:"symbol",encodeEntry:t=>Zk(t)},Got={vgMark:"symbol",encodeEntry:t=>Zk(t,"circle")},Wot={vgMark:"symbol",encodeEntry:t=>Zk(t,"square")},Vot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Kc(t,"x")),Kc(t,"y"))},Yot={vgMark:"rule",encodeEntry:t=>{const{markDef:e}=t,n=e.orient;return!t.encoding.x&&!t.encoding.y&&!t.encoding.latitude&&!t.encoding.longitude?{}:Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),M6("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),M6("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),br("size",t,{vgChannel:"strokeWidth"}))}},Kot={vgMark:"text",encodeEntry:t=>{const{config:e,encoding:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Ak(t)),br("size",t,{vgChannel:"fontSize"})),br("angle",t)),Qle("align",Xot(t.markDef,n,e))),Qle("baseline",Jot(t.markDef,n,e))),ui("radius",t,{defaultPos:null})),ui("theta",t,{defaultPos:null}))}};function Xot(t,e,n){if(It("align",t,n)===void 0)return"center"}function Jot(t,e,n){if(It("baseline",t,n)===void 0)return"middle"}const Zot={vgMark:"rect",encodeEntry:t=>{const{config:e,markDef:n}=t,r=n.orient,i=r==="horizontal"?"width":"height",s=r==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid",vgChannel:"xc"})),ui("y",t,{defaultPos:"mid",vgChannel:"yc"})),br("size",t,{defaultValue:eut(t),vgChannel:i})),{[s]:sn(It("thickness",n,e))})}};function eut(t){var e;const{config:n,markDef:r}=t,{orient:i}=r,s=i==="horizontal"?"width":"height",o=t.getScaleComponent(i==="horizontal"?"x":"y"),u=(e=It("size",r,n,{vgChannel:s}))!==null&&e!==void 0?e:n.tick.bandSize;if(u!==void 0)return u;{const a=o?o.get("range"):void 0;return a&&hc(a)&&nn(a.step)?a.step*3/4:I6(n.view,s)*3/4}}const oR={arc:kot,area:Pot,bar:Mot,circle:Got,geoshape:jot,image:Uot,line:qot,point:Qot,rect:Vot,rule:Yot,square:Wot,text:Kot,tick:Zot,trail:Hot};function tut(t){if(Ct([h6,x6,ntt],t.mark)){const e=Mae(t.mark,t.encoding);if(e.length>0)return nut(t,e)}else if(t.mark===d6){const e=o8.some(n=>It(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return rut(t)}return eP(t)}const cce="faceted_path_";function nut(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:cce+t.requestDataName(Jt.Main),data:t.requestDataName(Jt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:eP(t,{fromPrefix:cce})}]}const fce="stack_group_";function rut(t){var e;const[n]=eP(t,{fromPrefix:fce}),r=t.scaleName(t.stack.fieldChannel),i=(c={})=>t.vgField(t.stack.fieldChannel,c),s=(c,f)=>{const x=[i({prefix:"min",suffix:"start",expr:f}),i({prefix:"max",suffix:"start",expr:f}),i({prefix:"min",suffix:"end",expr:f}),i({prefix:"max",suffix:"end",expr:f})];return`${c}(${x.map(h=>`scale('${r}',${h})`).join(",")})`};let o,u;t.stack.fieldChannel==="x"?(o=Object.assign(Object.assign({},E3(n.encode.update,["y","yc","y2","height",...o8])),{x:{signal:s("min","datum")},x2:{signal:s("max","datum")},clip:{value:!0}}),u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update=Object.assign(Object.assign({},ho(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},E3(n.encode.update,["x","xc","x2","width"])),{y:{signal:s("min","datum")},y2:{signal:s("max","datum")},clip:{value:!0}}),u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update=Object.assign(Object.assign({},ho(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of o8){const f=Mx(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=sn(f)),f&&(n.encode.update[c]={value:0})}const a=[];if(((e=t.stack.groupbyChannels)===null||e===void 0?void 0:e.length)>0)for(const c of t.stack.groupbyChannels){const f=t.fieldDef(c),x=$e(f);x&&a.push(x),(f!=null&&f.bin||f!=null&&f.timeUnit)&&a.push($e(f,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((c,f)=>{if(n.encode.update[f])return Object.assign(Object.assign({},c),{[f]:n.encode.update[f]});{const x=Mx(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:sn(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Jt.Main),name:fce+t.requestDataName(Jt.Main),groupby:a,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:u},marks:[n]}]}]}function iut(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&yu(u)&&VY(u.value)||!u&&VY(It("order",s,o)))){if((_e(u)||Ie(u))&&!r)return vK(u,{expr:"datum"});if(zc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Ie(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if($a(c))return{field:$e({aggregate:VB(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(Eae(c)){const f=t.fieldDef(c.encoding);return{field:$e(f,{expr:"datum"}),order:c.order}}else return c===null?void 0:{field:$e(l,{binSuffix:!((e=t.stack)===null||e===void 0)&&e.impute?"mid":void 0,expr:"datum"})}}return}}}function eP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=Zn(r.clip,sut(t),out(t)),u=EK(r),a=i.key,l=iut(t),c=uut(t),f=It("aria",r,s),x=oR[n].postEncodingTransform?oR[n].postEncodingTransform(t):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName("marks"),type:oR[n].vgMark},o?{clip:!0}:{}),u?{style:u}:{}),a?{key:a.field}:{}),l?{sort:l}:{}),c||{}),f===!1?{aria:f}:{}),{from:{data:e.fromPrefix+t.requestDataName(Jt.Main)},encode:{update:oR[n].encodeEntry(t)}}),x?{transform:x}:{})]}function sut(t){const e=t.getScaleComponent("x"),n=t.getScaleComponent("y");return e!=null&&e.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function out(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function uut(t){if(!t.component.selection)return null;const e=Te(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=Te(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class xce extends ice{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,sle(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=Ia(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=$ot(u,s,{graticule:e.data&&pk(e.data)}));const l=this.encoding=Mtt(e.encoding||{},a,u.filled,s);this.markDef=wot(u,l,s),this.size=Fot({encoding:l,size:sle(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=dle(a,l),this.specifiedScales=this.initScales(a,l),this.specifiedAxes=this.initAxes(l),this.specifiedLegends=this.initLegends(l),this.specifiedProjection=e.projection,this.selection=((o=e.params)!==null&&o!==void 0?o:[]).filter(c=>ik(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===oae,r=e&&l8e.some(i=>st(e[i]));return n||r}scaleDomain(e){const n=this.specifiedScales[e];return n?n.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,n){return tC.reduce((r,i)=>{var s;const o=or(n[i]);return o&&(r[i]=this.initScale((s=o.scale)!==null&&s!==void 0?s:{})),r},{})}initScale(e){const{domain:n,range:r}=e,i=cs(e);return _e(n)&&(i.domain=n.map(ks)),_e(r)&&(i.range=r.map(ks)),i}initAxes(e){return fa.reduce((n,r)=>{const i=e[r];if(st(i)||r===En&&st(e.x2)||r===gr&&st(e.y2)){const s=st(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=Te(e),r={};for(const i of n){const s=e[i];r[i]=TE(s)?gK(s):ks(s)}return r}initLegends(e){return E8e.reduce((n,r)=>{const i=or(e[r]);if(i&&v8e(r)){const s=i.legend;n[r]=s&&cs(s)}return n},{})}parseData(){this.component.data=sR(this)}parseLayoutSize(){hot(this)}parseSelections(){this.component.selection=Jrt(this,this.selection)}parseMarkGroup(){this.component.mark=tut(this)}parseAxesAndHeaders(){this.component.axes=_ot(this)}assembleSelectionTopLevelSignals(e){return Ert(this,e)}assembleSignals(){return[...a0e(this),...mrt(this,[])]}assembleSelectionData(e){return Art(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return wk(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!J1(this.parent))&&(n=Ile(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};if(e!==void 0)return e;if(this.encoding.x||this.encoding.y)return"cell"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return $d(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Pa(n)}typedFieldDef(e){const n=this.fieldDef(e);return No(n)?n:null}}class tP extends Yk{constructor(e,n,r,i,s){super(e,"layer",n,r,s,e.resolve,e.view);const o=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((u,a)=>{if(B6(u))return new tP(u,this,this.getName(`layer_${a}`),o,s);if(s0(u))return new xce(u,this,this.getName(`layer_${a}`),o,s);throw new Error(a8(u))})}parseData(){this.component.data=sR(this);for(const e of this.children)e.parseData()}parseLayoutSize(){xot(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){bot(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),a0e(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),wk(this))}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleGroupStyle(){const e=new Set;for(const r of this.children)for(const i of Pe(r.assembleGroupStyle()))e.add(i);const n=Array.from(e);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const n of this.children)if(e=n.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return vrt(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),F0e(this))}}function nP(t,e,n,r,i){if(A6(t))return new ME(t,e,n,i);if(B6(t))return new tP(t,e,n,r,i);if(s0(t))return new xce(t,e,n,r,i);if(lnt(t))return new Eot(t,e,n,i);throw new Error(a8(t))}var aut=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function dce(t,e={}){e.logger&&Uwe(e.logger),e.fieldTitle&&Nae(e.fieldTitle);try{const n=fle(HF(e.config,t.config)),r=ort(t,n),i=nP(r,null,"",void 0,n);return i.parse(),vst(i.component.data,i),{spec:cut(i,lut(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&qwe(),e.fieldTitle&&Dtt()}}function lut(t,e,n,r){const i=r.component.layoutSize.get("width"),s=r.component.layoutSize.get("height");if(e===void 0?(e={type:"pad"},r.hasAxisOrientSignalRef()&&(e.resize=!0)):je(e)&&(e={type:e}),i&&s&&xrt(e.type)){if(i==="step"&&s==="step")Re(RK()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Re(RK(eC(o)));const u=o==="width"?"height":"width";e.type=drt(u)}}return Object.assign(Object.assign(Object.assign({},Te(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),Nle(n,!1)),Nle(t,!0))}function cut(t,e,n={},r){const i=t.config?Snt(t.config):void 0,s=[].concat(t.assembleSelectionData([]),aot(t.component.data,n)),o=t.assembleProjections(),u=t.assembleTitle(),a=t.assembleGroupStyle(),l=t.assembleGroupEncodeEntry(!0);let c=t.assembleLayoutSignals();c=c.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(e[h.name]=+h.value,!1):!0);const{params:f}=e,x=aut(e,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},t.description?{description:t.description}:{}),x),u?{title:u}:{}),a?{style:a}:{}),l?{encode:{update:l}}:{}),{data:s}),o.length>0?{projections:o}:{}),t.assembleGroup([...c,...t.assembleSelectionTopLevelSignals([]),...rle(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}class jE{constructor(e,n,r,i={},s){this.document=e,this.styleDefaults=n,this.options=r,this.timezone=s,this.size=i.size||this.styleDefaults.size||"medium"}mapData(e){const n=[];for(const r of e){const i={};for(const s of e.field.intrinsicFields){let o=this.getDataValue(r.cell(s));o instanceof Date&&(o=YDe(o,this.timezone)),i[s.name]=o}n.push(i)}return n}getSize(){return this.size==="large"?{height:350,width:500}:{height:175,width:250}}async render(e){if(!e.isArray())throw new Error("Invalid type for chart renderer");const n=this.getVegaLiteSpec(e),r=dce(n,{logger:{level(o){return o!==void 0?this:0},info(){return this},error(){return this},warn(){return this},debug(){return this}}}).spec,i=new Z$(Yue(r),{renderer:"none"});i.logger().level(-1);const s=this.document.createElement("div");return s.innerHTML=await i.toSVG(),s}}const fut={AL:"01",Alabama:"01",AK:"02",Alaska:"02",AZ:"04",Arizona:"04",AR:"05",Arkansas:"05",CA:"06",California:"06",CO:"08",Colorado:"08",CT:"09",Connecticut:"09",DE:"10",Delaware:"10",DC:"11","District of Columbia":"11",FL:"12",Florida:"12",GA:"13",Georgia:"13",HI:"15",Hawaii:"12",ID:"16",Idaho:"16",IL:"17",Illinois:"17",IN:"18",Indiana:"18",IA:"19",Iowa:"19",KS:"20",Kansas:"20",KY:"21",Kentucky:"21",LA:"22",Louisiana:"22",ME:"23",Maine:"23",MD:"24",Maryland:"24",MA:"25",Massachusetts:"25",MI:"26",Michigan:"26",MN:"27",Minnesota:"27",MS:"28",Mississippi:"28",MO:"29",Missouri:"29",MT:"30",Montana:"30",NE:"31",Nebraska:"31",NV:"32",Nevada:"32",NH:"33","New Hampshire":"33",NJ:"34","New Jersey":"34",NM:"35","New Mexico":"35",NY:"36","New York":"36",NC:"37","North Carolina":"37",ND:"38","North Dakota":"38",OH:"39",Ohio:"39",OK:"40",Oklahoma:"40",OR:"41",Oregon:"41",PA:"42",Pennsylvania:"42",RI:"44","Rhode Island":"44",SC:"45","South Carolina":"45",SD:"46","South Dakota":"46",TN:"47",Tennessee:"47",TX:"48",Texas:"48",UT:"49",Utah:"49",VT:"50",Vermont:"50",VA:"51",Virginia:"51",WA:"53",Washington:"53",WV:"54","West Virginia":"54",WI:"55",Wisconsin:"55",WY:"56",Wyoming:"56",PR:"72","Puerto Rico":"72",VI:"78",AS:"60",MP:"69",GU:"66"};class xut extends jE{getRegionField(e){return e.intrinsicFields[0]}getColorField(e){return e.intrinsicFields[1]}getDataValue(e){if(e.isNumber())return e.value;if(e.isString())if(e.field===this.getRegionField(e.field.parentExplore)){const n=fut[e.value];return n===void 0?void 0:n}else return e.value;else{if(e.isNull())return;throw new Error("Invalid field type for shape map.")}}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"nominal";if(e.isString())return e===this.getRegionField(e.parentExplore)?"quantitative":"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for shape map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");if(!e.isArray())throw new Error("Invalid data for shape map");const n=this.getRegionField(e.field),r=this.getColorField(e.field),i=r?this.getDataType(r):void 0,s=r!==void 0?{field:r.name,type:i,axis:{title:os(this.options,r,void 0,this.timezone)},scale:ss(i,!1)}:void 0,o=this.mapData(e).filter(u=>u[n.name]!==void 0);return{...this.getSize(),data:{values:o},projection:{type:"albersUsa"},layer:[{data:{values:$5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{transform:[{lookup:n.name,from:{data:{values:$5,format:{type:"topojson",feature:"states"}},key:"id"},as:"geo"}],mark:"geoshape",encoding:{shape:{field:"geo",type:"geojson"},color:s}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const RR=class RR extends fn{create(e,n,r,i,s,o){return new xut(e,n,r,s,o)}get rendererName(){return"shape_map"}};RR.instance=new RR;let rP=RR;class dut extends jE{getDataValue(e){if(e.isNumber()||e.isString())return e.value;if(e.isTimestamp()||e.isDate())return N5(e.value,e.field.timeframe||wt.TimestampTimeframe.Second,this.timezone);throw new Error("Invalid field type for point map chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for point map.")}isTimeFieldDef(e){return!!(e.isAtomicField()&&(e.isDate()||e.isTimestamp()))}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=s?this.getDataType(s):void 0,l=o?this.getDataType(o):void 0,c=u?this.getDataType(u):void 0,f=s!==void 0?{field:s.name,type:a,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(a,!1)}:void 0,x=o?{field:o.name,type:l,axis:{title:os(this.options,o,void 0,this.timezone)}}:{value:5},h=u?{field:u.name,type:c,axis:{title:os(this.options,u,void 0,this.timezone)}}:{value:"circle"};return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:$5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{mark:"point",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},size:x,color:f,shape:h}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-Roboto"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const OR=class OR extends fn{create(e,n,r,i,s,o){return new dut(e,n,r,s,o)}get rendererName(){return"point_map"}};OR.instance=new OR;let iP=OR;class hut{constructor(e){this.document=e}async render(e){if(!e.isString())return xo(this.document,"Invalid field for Image renderer");const{tag:n}=e.field.tagParse(),r=n.tag("image");if(!r)return xo(this.document,"Missing tag for Image renderer");const i=e.isNull()?x3(this.document):this.document.createElement("img"),s=r.text("width"),o=r.text("height");s&&(i.style.width=s),o&&(i.style.height=o);const u=i,a=r.tag("alt");if(a){const l=JDe({tag:a,data:e})??a.text();l&&(u.alt=l)}return e.isNull()||(u.src=e.value),i}}const NR=class NR extends fn{create(e,n,r,i,s){return new hut(e)}get rendererName(){return"image"}};NR.instance=new NR;let sP=NR;class put extends jE{getDataValue(e){if(e.isNull()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for segment map.")}getDataType(e){if(e.isAtomicField()){if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for segment map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=u?this.getDataType(u):void 0,l=u!==void 0?{field:u.name,type:a,axis:{title:os(this.options,u,void 0,this.timezone)},scale:ss(a,!1)}:void 0;return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:$5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"lightgray",stroke:"white"}},{mark:"line",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},latitude2:{field:s.name,type:"quantitative"},longitude2:{field:o.name,type:"quantitative"},color:l}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const DR=class DR extends fn{create(e,n,r,i,s,o){return new put(e,n,r,s,o)}get rendererName(){return"segment_map"}};DR.instance=new DR;let oP=DR;const ef={$schema:"https://vega.github.io/schema/vega-lite/v5.json",config:{params:[{name:"defaultFont",value:"var(--malloy-font-family, 'Roboto')"},{name:"titleColor",value:"var(--malloy-title-color, #505050)"},{name:"labelColor",value:"var(--malloy-label-color, #505050)"}],background:void 0,color:{expr:"titleColor"},header:{labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500},text:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},mark:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},title:{font:{expr:"defaultFont"},subtitleFont:{expr:"defaultFont"},fontWeight:500},axis:{labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12},legend:{titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12,labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"}}}},tf={config:ef.config,encoding:{y:{field:"#{1}",type:"nominal",axis:null,sort:null}},layer:[{mark:{type:"bar",color:"#aec7e8"},encoding:{x:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}},{mark:{type:"text",align:"left",x:5},encoding:{text:{field:"#{1}"}}}]},uR={...ef,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...uR,encoding:{...uR.encoding,color:ss("quantitative",!0,!0)}},{...uR,encoding:{...uR.encoding,color:ss("nominal",!0,!0)}}),{...tf,layer:({...tf.layer[0],encoding:{...tf.layer[0].encoding,color:ss("nominal",!0,!0)}},tf.layer[1])},{...tf,layer:({...tf.layer[0],encoding:{...tf.layer[0].encoding,color:ss("quantitative",!0,!0)}},tf.layer[1])};const aR={...ef,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...aR,encoding:{...aR.encoding,color:ss("nominal",!0)}},{...aR,encoding:{...aR.encoding,color:ss("quantitative",!0)}});function hce(t){return Array.isArray(t)||t!==null&&typeof t=="object"}class gut extends jE{constructor(e,n,r,i,s){super(e,n,r);const o=s.spec;if(o)this.spec=o;else if(s.spec_name){const u=r.dataStyles[s.spec_name];if(u!==void 0&&u.renderer==="vega")if(u.spec)this.spec=u.spec;else throw new Error(`No spec defined on ${s.spec_name}`);else throw new Error(`No Vega renderer named ${s.spec_name}`)}else throw new Error(`No top level vega spec defined for ${i.name}`)}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for vega chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for vega chart.")}translateField(e,n){const r=n.match(/#\{(\d+)\}/);return r&&r.groups?e.intrinsicFields[parseInt(r.groups[1])-1].name:n}translateFields(e,n){if(Array.isArray(e))for(const r of e)hce(r)&&this.translateFields(r,n);else if(e&&typeof e=="object")for(const[r,i]of Object.entries(e))if(r==="field"&&typeof i=="string")e[r]=this.translateField(n,i);else if(r==="repeat"&&Array.isArray(i))for(const s of i.keys()){const o=i[s];typeof o=="string"&&(i[s]=this.translateField(n,o))}else hce(i)&&this.translateFields(i,n)}getVegaLiteSpec(e){if(e.isNull()||!e.isArray())throw new Error("Expected struct value not to be null.");const n=structuredClone(this.spec);this.translateFields(n,e.field);const r={values:this.mapData(e)};return n.data=r,n}}const FR=class FR extends fn{create(e,n,r,i,s){return new gut(e,n,r,i,s)}get rendererName(){return"vega"}};FR.instance=new FR;let uP=FR;class aP extends jE{getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=this.getDataType(r),l=this.getDataType(i),c=s?this.getDataType(s):void 0,f=o?this.getDataType(o):void 0,x=u?this.getDataType(u):void 0,h=this.getMark(),p=s!==void 0?{field:s.name,type:c,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(c,h==="bar")}:{value:"#4285F4"},m=o?{field:o.name,type:f,axis:{title:os(this.options,o,void 0,this.timezone)}}:void 0,g=u?{field:u.name,type:x,axis:{title:os(this.options,u,void 0,this.timezone)}}:void 0,y=a==="nominal"?null:void 0,E=l==="nominal"?null:void 0,A={field:r.name,type:a,sort:y,axis:{title:os(this.options,r,void 0,this.timezone)},scale:{zero:!1}},v={field:i.name,type:l,sort:E,axis:{title:os(this.options,i,void 0,this.timezone)},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},mark:h,encoding:{x:A,y:v,size:m,color:p,shape:g},background:"transparent"}}}class pce extends aP{getMark(){return"line"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for line chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for line chart.")}}const wR=class wR extends fn{create(e,n,r,i,s,o){return new pce(e,n,r,s,o)}get rendererName(){return"line_chart"}};wR.instance=new wR;let lP=wR;class gce extends pce{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"line",tooltip:!0},encoding:{x,y:h,color:l},background:"transparent"}}}const LR=class LR extends fn{create(e,n,r,i,s,o){return new gce(e,n,r,s,o)}get rendererName(){return"sparkline"}};LR.instance=new LR;let cP=LR;class fP extends aP{getMark(){return"bar"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for bar chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate())return N5(e.value,e.field.timeframe,this.timezone);if(e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for bar chart.")}}const IR=class IR extends fn{create(e,n,r,i,s,o){return new fP(e,n,r,s,o)}get rendererName(){return"bar_chart"}};IR.instance=new IR;let xP=IR;class mut extends fP{getSize(){return this.size==="large"?{height:250,width:100}:{height:125,width:50}}getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{y:h,x:p,color:c},background:"transparent"}}}const $R=class $R extends fn{isValidMatch(e){return e.name.endsWith("_bar")}create(e,n,r,i,s,o){return new mut(e,n,r,s,o)}get rendererName(){return"sparkline"}};$R.instance=new $R;let dP=$R;class yut extends gce{getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"area",line:{color:"#4285F4"},point:!1},encoding:{x,y:h,color:l},background:"transparent"}}}const BR=class BR extends fn{isValidMatch(e){return e.name.endsWith("area")}create(e,n,r,i,s,o){return new yut(e,n,r,s,o)}get rendererName(){return"sparkline"}};BR.instance=new BR;let hP=BR;class Eut extends fP{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{x:h,y:p,color:c},background:"transparent"}}}const kR=class kR extends fn{isValidMatch(e){return e.name.endsWith("_column")}create(e,n,r,i,s,o){return new Eut(e,n,r,s,o)}get rendererName(){return"sparkline"}};kR.instance=new kR;let pP=kR;class Aut extends aP{getMark(){return"point"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for scatter chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for scatter chart.")}}const PR=class PR extends fn{create(e,n,r,i,s,o){return new Aut(e,n,r,s,o)}get rendererName(){return"scatter_chart"}};PR.instance=new PR;let gP=PR;class vut{constructor(e,n){this.document=e,this.queryTimezone=n}async render(e){if(e.isNull())return x3(this.document);if(!e.isDate()&&!e.isTimestamp())return xo(this.document,"Invalid field for date renderer");const n=e.field.timeframe||(e.isTimestamp()?wt.TimestampTimeframe.Second:wt.DateTimeframe.Day),r=N5(e.value,n,this.queryTimezone),i=this.document.createElement("span");return i.appendChild(this.document.createTextNode(r)),i}}const MR=class MR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&(e.type===wt.AtomicFieldType.Date||e.type===wt.AtomicFieldType.Timestamp)}create(e,n,r,i,s,o){return new vut(e,o)}get rendererName(){return"time"}};MR.instance=new MR;let mP=MR;var l0=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(l0||{}),nf=(t=>(t.Bytes="bytes",t.Kilobytes="kb",t.Megabytes="mb",t.Gigabytes="gb",t.Terabytes="tb",t))(nf||{}),ur=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(ur||{});class Sut extends ic{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;let n="$";switch(this.options.currency){case l0.Euros:n="€";break;case l0.Pounds:n="£";break;case l0.Dollars:break}const r=e.number.value.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2});return`${n}${r}`}}const jR=class jR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.currency=(n==null?void 0:n.text())??l0.Dollars},this.rendererName)}create(e,n,r,i,s){return new Sut(e,s)}get rendererName(){return"currency"}};jR.instance=new jR;let yP=jR;class _ut extends I5{getText(e){if(e.isNull())return null;const n=e.number.value;return n===null?n:(n*100).toLocaleString("en",{maximumFractionDigits:2})+"%"}}const UR=class UR extends fn{create(e,n,r,i,s){return new _ut(e,s)}get rendererName(){return"percent"}};UR.instance=new UR;let EP=UR;class Cut extends ic{getText(e){return e.isNull()?null:e.bytes.value.toString("base64")}}const qR=class qR extends fn{create(e,n,r,i,s){return new Cut(e)}get rendererName(){return"bytes"}};qR.instance=new qR;let AP=qR;class but extends ic{getText(e){return e.isNull()?null:`${e.boolean.value}`}}const HR=class HR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.type===wt.AtomicFieldType.Boolean}create(e,n,r,i,s){return new but(e)}get rendererName(){return"boolean"}};HR.instance=new HR;let vP=HR;class Tut{constructor(e){this.document=e}async render(e){if(e.isNull())return x3(this.document);if(!e.isString())return xo(this.document,"Invalid type for link renderer.");const n=this.document.createElement("a");return n.href=e.value,n.target="_blank",n.appendChild(this.document.createTextNode(e.value.replace(/\//g,"/"))),n}}const zR=class zR extends fn{create(e,n,r,i,s){return new Tut(e)}get rendererName(){return"link"}};zR.instance=new zR;let SP=zR;class Rut{constructor(e){this.document=e}getText(e){const n=e.value;if(typeof n=="string")return n;if(n===null)return null;if(typeof e.value=="object"){const r=e.value;if("value"in r&&typeof r.value=="string")return r.value}return JSON.stringify(e.value)}async render(e){const n=this.getText(e);if(n===null)return x3(this.document);const r=this.document.createElement("span");return r.appendChild(this.document.createTextNode(n)),r}}const QR=class QR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.isUnsupported()}create(e,n,r,i,s){return new Rut(e)}get rendererName(){}};QR.instance=new QR;let _P=QR;const ci=class ci extends ic{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;if(!e.isNumber())throw new Error(`Cannot format field ${e.field.name} as data volume since its not a number`);let n=e.number.value,r="Bytes";switch(this.options.data_volume_unit){case nf.Bytes:break;case nf.Kilobytes:n=n/ci.kbMultiplier,r="KB";break;case nf.Megabytes:n=n/ci.mbMultiplier,r="MB";break;case nf.Gigabytes:n=n/ci.gbMultiplier,r="GB";break;case nf.Terabytes:n=n/ci.tbMultiplier,r="TB";break}return n===null?n:`${n.toLocaleString()} ${r}`}};ci.kbMultiplier=1024,ci.mbMultiplier=ci.kbMultiplier*ci.kbMultiplier,ci.gbMultiplier=ci.mbMultiplier*ci.kbMultiplier,ci.tbMultiplier=ci.gbMultiplier*ci.kbMultiplier;let CP=ci;const GR=class GR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.data_volume_unit=(n==null?void 0:n.text())??nf.Bytes},this.rendererName)}create(e,n,r,i,s){return new CP(e,s)}get rendererName(){return"data_volume"}};GR.instance=new GR;let bP=GR;const WR=class WR extends ic{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;if(!e.isNumber())throw new Error(`Cannot format field ${e.field.name} as a duration unit since its not a number`);const n=this.options.duration_unit??ur.Seconds;let r=e.number.value,i=0,s=[],o=!1;for(const[u,a]of WR.multiplierMap)if(u===n&&(o=!0),!!o&&(i=r%a,r=Math.floor(r/=a),i>0&&(s=[this.formatTimeUnit(i,u),...s]),r===0))break;return s.length>0?s.slice(0,2).join(" "):this.formatTimeUnit(0,n)}formatTimeUnit(e,n){let r=n.toString();return e===1&&(r=r.substring(0,r.length-1)),`${e} ${r}`}};WR.multiplierMap=new Map([[ur.Nanoseconds,1e3],[ur.Microseconds,1e3],[ur.Milliseconds,1e3],[ur.Seconds,60],[ur.Minutes,60],[ur.Hours,24],[ur.Days,Number.MAX_VALUE]]);let TP=WR;const VR=class VR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.duration_unit=(n==null?void 0:n.text())??ur.Seconds},this.rendererName)}create(e,n,r,i,s){return new TP(e,s)}get rendererName(){return"duration"}};VR.instance=new VR;let RP=VR;const YR=class YR{create(e,n,r,i,s,o,u){let a;for(const l of YR.renderFactories)if((this.matchesRenderDef(e,l)||this.matchesTag(n,l))&&l.isValidMatch(o)||l.activates(o)){a=l;break}return a==null?void 0:a.create(r,i,s,o,e||a.parseTagParameters(n)||{},u)}matchesRenderDef(e,n){return e&&n.rendererName&&e.renderer===n.rendererName}matchesTag(e,n){return n.rendererName&&e.has(n.rendererName)}};YR.renderFactories=[rP.instance,iP.instance,sP.instance,oP.instance,kF.instance,lP.instance,pP.instance,dP.instance,hP.instance,cP.instance,gP.instance,xP.instance,uP.instance,mP.instance,yP.instance,EP.instance,bP.instance,AP.instance,SP.instance,RP.instance,vP.instance,qF.instance,_P.instance,MF.instance];let OP=YR;function Out(t){return Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=Object.assign({},i),Ece(i.value)&&!Lut(i.value)&&!Array.isArray(i.value)&&(n[r].value=Object.assign({},i.value)),Array.isArray(i.value)&&(n[r].value=i.value.slice(0)),n},{})}function Nut(t){return t?Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=Ece(i)&&"value"in i?i:{value:i},n[r].attribute||(n[r].attribute=wut(r)),n[r].parse="parse"in n[r]?n[r].parse:typeof n[r].value!="string",n},{}):{}}function Dut(t){return Object.keys(t).reduce((n,r)=>(n[r]=t[r].value,n),{})}function Fut(t,e){const n=Out(e);return Object.keys(e).forEach(i=>{const s=n[i],o=t.getAttribute(s.attribute),u=t[i];o&&(s.value=s.parse?mce(o):o),u!=null&&(s.value=Array.isArray(u)?u.slice(0):u),s.reflect&&yce(t,s.attribute,s.value),Object.defineProperty(t,i,{get(){return s.value},set(a){const l=s.value;s.value=a,s.reflect&&yce(this,s.attribute,s.value);for(let c=0,f=this.__propertyChangedCallbacks.length;c<f;c++)this.__propertyChangedCallbacks[c](i,a,l)},enumerable:!0,configurable:!0})}),n}function mce(t){if(t)try{return JSON.parse(t)}catch{return t}}function yce(t,e,n){if(n==null||n===!1)return t.removeAttribute(e);let r=JSON.stringify(n);t.__updating[e]=!0,r==="true"&&(r=""),t.setAttribute(e,r),Promise.resolve().then(()=>delete t.__updating[e])}function wut(t){return t.replace(/\.?([A-Z]+)/g,(e,n)=>"-"+n.toLowerCase()).replace("_","-").replace(/^-/,"")}function Ece(t){return t!=null&&(typeof t=="object"||typeof t=="function")}function Lut(t){return Object.prototype.toString.call(t)==="[object Function]"}function Iut(t){return typeof t=="function"&&t.toString().indexOf("class")===0}let NP;function $ut(t,e){const n=Object.keys(e);return class extends t{static get observedAttributes(){return n.map(i=>e[i].attribute)}constructor(){super(),this.__initialized=!1,this.__released=!1,this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props={}}connectedCallback(){if(this.__initialized)return;this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props=Fut(this,e);const i=Dut(this.props),s=this.Component,o=NP;try{NP=this,this.__initialized=!0,Iut(s)?new s(i,{element:this}):s(i,{element:this})}finally{NP=o}}async disconnectedCallback(){if(await Promise.resolve(),this.isConnected)return;this.__propertyChangedCallbacks.length=0;let i=null;for(;i=this.__releaseCallbacks.pop();)i(this);delete this.__initialized,this.__released=!0}attributeChangedCallback(i,s,o){if(this.__initialized&&!this.__updating[i]&&(i=this.lookupProp(i),i in e)){if(o==null&&!this[i])return;this[i]=e[i].parse?mce(o):o}}lookupProp(i){if(e)return n.find(s=>i===s||i===e[s].attribute)}get renderRoot(){return this.shadowRoot||this.attachShadow({mode:"open"})}addReleaseCallback(i){this.__releaseCallbacks.push(i)}addPropertyChangedCallback(i){this.__propertyChangedCallbacks.push(i)}}}function But(...t){return t.length===0?e=>e:t.length===1?t[0]:t.reduce((e,n)=>(...r)=>e(n(...r)))}function kut(t,e={},n={}){const{BaseElement:r=HTMLElement,extension:i}=n;return s=>{if(!t)throw new Error("tag is required to register a Component");let o=customElements.get(t);return o?(o.prototype.Component=s,o):(o=$ut(r,Nut(e)),o.prototype.Component=s,o.prototype.registeredTag=t,customElements.define(t,o,i),o)}}const Put=(t,e)=>t===e,DP=Symbol("solid-proxy"),Mut=Symbol("solid-track"),lR={equals:Put};let Ace=Rce;const rf=1,cR=2,vce={owned:null,cleanups:null,context:null,owner:null};var un=null;let FP=null,jut=null,Gn=null,li=null,c0=null,fR=0;function xR(t,e){const n=Gn,r=un,i=t.length===0,s=e===void 0?r:e,o=i?vce:{owned:null,cleanups:null,context:s?s.context:null,owner:s},u=i?t:()=>t(()=>Su(()=>pR(o)));un=o,Gn=null;try{return qE(u,!0)}finally{Gn=n,un=r}}function wP(t,e){e=e?Object.assign({},lR,e):lR;const n={value:t,observers:null,observerSlots:null,comparator:e.equals||void 0},r=i=>(typeof i=="function"&&(i=i(n.value)),Tce(n,i));return[bce.bind(n),r]}function sf(t,e,n){const r=$P(t,e,!1,rf);UE(r)}function LP(t,e,n){Ace=zut;const r=$P(t,e,!1,rf),i=Cce&&IP(Cce);i&&(r.suspense=i),(!n||!n.render)&&(r.user=!0),c0?c0.push(r):UE(r)}function Fo(t,e,n){n=n?Object.assign({},lR,n):lR;const r=$P(t,e,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,UE(r),bce.bind(r)}function Su(t){if(Gn===null)return t();const e=Gn;Gn=null;try{return t()}finally{Gn=e}}function Uut(t){return un===null||(un.cleanups===null?un.cleanups=[t]:un.cleanups.push(t)),t}function Sce(t,e){const n=Symbol("context");return{id:n,Provider:Gut(n),defaultValue:t}}function IP(t){return un&&un.context&&un.context[t.id]!==void 0?un.context[t.id]:t.defaultValue}function _ce(t){const e=Fo(t),n=Fo(()=>BP(e()));return n.toArray=()=>{const r=n();return Array.isArray(r)?r:r!=null?[r]:[]},n}let Cce;function bce(){if(this.sources&&this.state)if(this.state===rf)UE(this);else{const t=li;li=null,qE(()=>hR(this),!1),li=t}if(Gn){const t=this.observers?this.observers.length:0;Gn.sources?(Gn.sources.push(this),Gn.sourceSlots.push(t)):(Gn.sources=[this],Gn.sourceSlots=[t]),this.observers?(this.observers.push(Gn),this.observerSlots.push(Gn.sources.length-1)):(this.observers=[Gn],this.observerSlots=[Gn.sources.length-1])}return this.value}function Tce(t,e,n){let r=t.value;return(!t.comparator||!t.comparator(r,e))&&(t.value=e,t.observers&&t.observers.length&&qE(()=>{for(let i=0;i<t.observers.length;i+=1){const s=t.observers[i],o=FP&&FP.running;o&&FP.disposed.has(s),(o?!s.tState:!s.state)&&(s.pure?li.push(s):c0.push(s),s.observers&&Oce(s)),o||(s.state=rf)}if(li.length>1e6)throw li=[],new Error},!1)),e}function UE(t){if(!t.fn)return;pR(t);const e=fR;qut(t,t.value,e)}function qut(t,e,n){let r;const i=un,s=Gn;Gn=un=t;try{r=t.fn(e)}catch(o){return t.pure&&(t.state=rf,t.owned&&t.owned.forEach(pR),t.owned=null),t.updatedAt=n+1,Nce(o)}finally{Gn=s,un=i}(!t.updatedAt||t.updatedAt<=n)&&(t.updatedAt!=null&&"observers"in t?Tce(t,r):t.value=r,t.updatedAt=n)}function $P(t,e,n,r=rf,i){const s={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:e,owner:un,context:un?un.context:null,pure:n};return un===null||un!==vce&&(un.owned?un.owned.push(s):un.owned=[s]),s}function dR(t){if(t.state===0)return;if(t.state===cR)return hR(t);if(t.suspense&&Su(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<fR);)t.state&&e.push(t);for(let n=e.length-1;n>=0;n--)if(t=e[n],t.state===rf)UE(t);else if(t.state===cR){const r=li;li=null,qE(()=>hR(t,e[0]),!1),li=r}}function qE(t,e){if(li)return t();let n=!1;e||(li=[]),c0?n=!0:c0=[],fR++;try{const r=t();return Hut(n),r}catch(r){n||(c0=null),li=null,Nce(r)}}function Hut(t){if(li&&(Rce(li),li=null),t)return;const e=c0;c0=null,e.length&&qE(()=>Ace(e),!1)}function Rce(t){for(let e=0;e<t.length;e++)dR(t[e])}function zut(t){let e,n=0;for(e=0;e<t.length;e++){const r=t[e];r.user?t[n++]=r:dR(r)}for(e=0;e<n;e++)dR(t[e])}function hR(t,e){t.state=0;for(let n=0;n<t.sources.length;n+=1){const r=t.sources[n];if(r.sources){const i=r.state;i===rf?r!==e&&(!r.updatedAt||r.updatedAt<fR)&&dR(r):i===cR&&hR(r,e)}}}function Oce(t){for(let e=0;e<t.observers.length;e+=1){const n=t.observers[e];n.state||(n.state=cR,n.pure?li.push(n):c0.push(n),n.observers&&Oce(n))}}function pR(t){let e;if(t.sources)for(;t.sources.length;){const n=t.sources.pop(),r=t.sourceSlots.pop(),i=n.observers;if(i&&i.length){const s=i.pop(),o=n.observerSlots.pop();r<i.length&&(s.sourceSlots[o]=r,i[r]=s,n.observerSlots[r]=o)}}if(t.owned){for(e=t.owned.length-1;e>=0;e--)pR(t.owned[e]);t.owned=null}if(t.cleanups){for(e=t.cleanups.length-1;e>=0;e--)t.cleanups[e]();t.cleanups=null}t.state=0}function Qut(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function Nce(t,e=un){throw Qut(t)}function BP(t){if(typeof t=="function"&&!t.length)return BP(t());if(Array.isArray(t)){const e=[];for(let n=0;n<t.length;n++){const r=BP(t[n]);Array.isArray(r)?e.push.apply(e,r):e.push(r)}return e}return t}function Gut(t,e){return function(r){let i;return sf(()=>i=Su(()=>(un.context={...un.context,[t]:r.value},_ce(()=>r.children))),void 0),i}}const Wut=Symbol("fallback");function Dce(t){for(let e=0;e<t.length;e++)t[e]()}function Vut(t,e,n={}){let r=[],i=[],s=[],o=0,u=e.length>1?[]:null;return Uut(()=>Dce(s)),()=>{let a=t()||[],l,c;return a[Mut],Su(()=>{let x=a.length,h,p,m,g,y,E,A,v,S;if(x===0)o!==0&&(Dce(s),s=[],r=[],i=[],o=0,u&&(u=[])),n.fallback&&(r=[Wut],i[0]=xR(C=>(s[0]=C,n.fallback())),o=1);else if(o===0){for(i=new Array(x),c=0;c<x;c++)r[c]=a[c],i[c]=xR(f);o=x}else{for(m=new Array(x),g=new Array(x),u&&(y=new Array(x)),E=0,A=Math.min(o,x);E<A&&r[E]===a[E];E++);for(A=o-1,v=x-1;A>=E&&v>=E&&r[A]===a[v];A--,v--)m[v]=i[A],g[v]=s[A],u&&(y[v]=u[A]);for(h=new Map,p=new Array(v+1),c=v;c>=E;c--)S=a[c],l=h.get(S),p[c]=l===void 0?-1:l,h.set(S,c);for(l=E;l<=A;l++)S=r[l],c=h.get(S),c!==void 0&&c!==-1?(m[c]=i[l],g[c]=s[l],u&&(y[c]=u[l]),c=p[c],h.set(S,c)):s[l]();for(c=E;c<x;c++)c in m?(i[c]=m[c],s[c]=g[c],u&&(u[c]=y[c],u[c](c))):i[c]=xR(f);i=i.slice(0,o=x),r=a.slice(0)}return i});function f(x){if(s[c]=x,u){const[h,p]=wP(c);return u[c]=p,e(a[c],h)}return e(a[c])}}}function Wn(t,e){return Su(()=>t(e||{}))}function gR(){return!0}const Yut={get(t,e,n){return e===DP?n:t.get(e)},has(t,e){return e===DP?!0:t.has(e)},set:gR,deleteProperty:gR,getOwnPropertyDescriptor(t,e){return{configurable:!0,enumerable:!0,get(){return t.get(e)},set:gR,deleteProperty:gR}},ownKeys(t){return t.keys()}};function kP(t){return(t=typeof t=="function"?t():t)?t:{}}function Kut(){for(let t=0,e=this.length;t<e;++t){const n=this[t]();if(n!==void 0)return n}}function Xut(...t){let e=!1;for(let o=0;o<t.length;o++){const u=t[o];e=e||!!u&&DP in u,t[o]=typeof u=="function"?(e=!0,Fo(u)):u}if(e)return new Proxy({get(o){for(let u=t.length-1;u>=0;u--){const a=kP(t[u])[o];if(a!==void 0)return a}},has(o){for(let u=t.length-1;u>=0;u--)if(o in kP(t[u]))return!0;return!1},keys(){const o=[];for(let u=0;u<t.length;u++)o.push(...Object.keys(kP(t[u])));return[...new Set(o)]}},Yut);const n={},r=Object.create(null);for(let o=t.length-1;o>=0;o--){const u=t[o];if(!u)continue;const a=Object.getOwnPropertyNames(u);for(let l=a.length-1;l>=0;l--){const c=a[l];if(c==="__proto__"||c==="constructor")continue;const f=Object.getOwnPropertyDescriptor(u,c);if(!r[c])r[c]=f.get?{enumerable:!0,configurable:!0,get:Kut.bind(n[c]=[f.get.bind(u)])}:f.value!==void 0?f:void 0;else{const x=n[c];x&&(f.get?x.push(f.get.bind(u)):f.value!==void 0&&x.push(()=>f.value))}}}const i={},s=Object.keys(r);for(let o=s.length-1;o>=0;o--){const u=s[o],a=r[u];a&&a.get?Object.defineProperty(i,u,a):i[u]=a?a.value:void 0}return i}const Fce=t=>`Stale read from <${t}>.`;function Jut(t){const e="fallback"in t&&{fallback:()=>t.fallback};return Fo(Vut(()=>t.each,t.children,e||void 0))}function Zut(t){const e=t.keyed,n=Fo(()=>t.when,void 0,{equals:(r,i)=>e?r===i:!r==!i});return Fo(()=>{const r=n();if(r){const i=t.children;return typeof i=="function"&&i.length>0?Su(()=>i(e?r:()=>{if(!Su(n))throw Fce("Show");return t.when})):i}return t.fallback},void 0,void 0)}function wce(t){let e=!1;const n=(s,o)=>(e?s[1]===o[1]:!s[1]==!o[1])&&s[2]===o[2],r=_ce(()=>t.children),i=Fo(()=>{let s=r();Array.isArray(s)||(s=[s]);for(let o=0;o<s.length;o++){const u=s[o].when;if(u)return e=!!s[o].keyed,[o,u,s[o]]}return[-1]},void 0,{equals:n});return Fo(()=>{const[s,o,u]=i();if(s<0)return t.fallback;const a=u.children;return typeof a=="function"&&a.length>0?Su(()=>a(e?o:()=>{if(Su(i)[0]!==s)throw Fce("Match");return u.when})):a},void 0,void 0)}function PP(t){return t}function eat(t,e,n){let r=n.length,i=e.length,s=r,o=0,u=0,a=e[i-1].nextSibling,l=null;for(;o<i||u<s;){if(e[o]===n[u]){o++,u++;continue}for(;e[i-1]===n[s-1];)i--,s--;if(i===o){const c=s<r?u?n[u-1].nextSibling:n[s-u]:a;for(;u<s;)t.insertBefore(n[u++],c)}else if(s===u)for(;o<i;)(!l||!l.has(e[o]))&&e[o].remove(),o++;else if(e[o]===n[s-1]&&n[u]===e[i-1]){const c=e[--i].nextSibling;t.insertBefore(n[u++],e[o++].nextSibling),t.insertBefore(n[--s],c),e[i]=n[s]}else{if(!l){l=new Map;let f=u;for(;f<s;)l.set(n[f],f++)}const c=l.get(e[o]);if(c!=null)if(u<c&&c<s){let f=o,x=1,h;for(;++f<i&&f<s&&!((h=l.get(e[f]))==null||h!==c+x);)x++;if(x>c-u){const p=e[o];for(;u<c;)t.insertBefore(n[u++],p)}else t.replaceChild(n[u++],e[o++])}else o++;else e[o++].remove()}}}function Ud(t,e,n){let r;const i=()=>{const o=document.createElement("template");return o.innerHTML=t,n?o.content.firstChild.firstChild:o.content.firstChild},s=e?()=>Su(()=>document.importNode(r||(r=i()),!0)):()=>(r||(r=i())).cloneNode(!0);return s.cloneNode=s,s}function tat(t,e,n){n==null?t.removeAttribute(e):t.setAttribute(e,n)}function nat(t,e,n){if(!e)return n?tat(t,"style"):e;const r=t.style;if(typeof e=="string")return r.cssText=e;typeof n=="string"&&(r.cssText=n=void 0),n||(n={}),e||(e={});let i,s;for(s in n)e[s]==null&&r.removeProperty(s),delete n[s];for(s in e)i=e[s],i!==n[s]&&(r.setProperty(s,i),n[s]=i);return n}function rat(t,e,n){return Su(()=>t(e,n))}function f0(t,e,n,r){if(n!==void 0&&!r&&(r=[]),typeof e!="function")return mR(t,e,r,n);sf(i=>mR(t,e(),i,n),r)}function mR(t,e,n,r,i){for(;typeof n=="function";)n=n();if(e===n)return n;const s=typeof e,o=r!==void 0;if(t=o&&n[0]&&n[0].parentNode||t,s==="string"||s==="number")if(s==="number"&&(e=e.toString()),o){let u=n[0];u&&u.nodeType===3?u.data!==e&&(u.data=e):u=document.createTextNode(e),n=ep(t,n,r,u)}else n!==""&&typeof n=="string"?n=t.firstChild.data=e:n=t.textContent=e;else if(e==null||s==="boolean")n=ep(t,n,r);else{if(s==="function")return sf(()=>{let u=e();for(;typeof u=="function";)u=u();n=mR(t,u,n,r)}),()=>n;if(Array.isArray(e)){const u=[],a=n&&Array.isArray(n);if(MP(u,e,n,i))return sf(()=>n=mR(t,u,n,r,!0)),()=>n;if(u.length===0){if(n=ep(t,n,r),o)return n}else a?n.length===0?Lce(t,u,r):eat(t,n,u):(n&&ep(t),Lce(t,u));n=u}else if(e.nodeType){if(Array.isArray(n)){if(o)return n=ep(t,n,r,e);ep(t,n,null,e)}else n==null||n===""||!t.firstChild?t.appendChild(e):t.replaceChild(e,t.firstChild);n=e}}return n}function MP(t,e,n,r){let i=!1;for(let s=0,o=e.length;s<o;s++){let u=e[s],a=n&&n[t.length],l;if(!(u==null||u===!0||u===!1))if((l=typeof u)=="object"&&u.nodeType)t.push(u);else if(Array.isArray(u))i=MP(t,u,a)||i;else if(l==="function")if(r){for(;typeof u=="function";)u=u();i=MP(t,Array.isArray(u)?u:[u],Array.isArray(a)?a:[a])||i}else t.push(u),i=!0;else{const c=String(u);a&&a.nodeType===3&&a.data===c?t.push(a):t.push(document.createTextNode(c))}}return i}function Lce(t,e,n=null){for(let r=0,i=e.length;r<i;r++)t.insertBefore(e[r],n)}function ep(t,e,n,r){if(n===void 0)return t.textContent="";const i=r||document.createTextNode("");if(e.length){let s=!1;for(let o=e.length-1;o>=0;o--){const u=e[o];if(i!==u){const a=u.parentNode===t;!s&&!o?a?t.replaceChild(i,u):t.insertBefore(i,n):a&&u.remove()}else s=!0}}else t.insertBefore(i,n);return[i]}function iat(t){const e=Object.keys(t),n={};for(let r=0;r<e.length;r++){const[i,s]=wP(t[e[r]]);Object.defineProperty(n,e[r],{get:i,set(o){s(()=>o)}})}return n}function sat(t){if(t.assignedSlot&&t.assignedSlot._$owner)return t.assignedSlot._$owner;let e=t.parentNode;for(;e&&!e._$owner&&!(e.assignedSlot&&e.assignedSlot._$owner);)e=e.parentNode;return e&&e.assignedSlot?e.assignedSlot._$owner:t._$owner}function oat(t){return(e,n)=>{const{element:r}=n;return xR(i=>{const s=iat(e);r.addPropertyChangedCallback((u,a)=>s[u]=a),r.addReleaseCallback(()=>{r.renderRoot.textContent="",i()});const o=t(s,n);return f0(r.renderRoot,o)},sat(r))}}function jP(t,...e){return e.some(n=>Array.isArray(n)?t.has(...n):t.has(n))}function Ice(t){const e=t.parentExplore;return(e==null?void 0:e.allFields.findIndex(n=>n.name===t.name))??-1}function UP(t){return t.parentExplore?Ice(t)===t.parentExplore.allFields.length-1:!0}function qP(t){return Ice(t)===0}function $ce(t,e){return t.isAtomicField()&&t.isNumber()&&e!==null}function Bce(t,e){return t.isAtomicField()&&t.isString()&&e!==null}function HE(t,e,n){const i=(n??document.createElement("canvas")).getContext("2d");return i.font=e,i.measureText(t).width}function uat(t,e,n){return Math.max(t,Math.min(e,n))}function kce(t,e){if(!t.isExplore()&&t.isAtomicField())return"cell";const n=e??t.tagParse().tag;return jP(n,"bar_chart")?"chart":"table"}function qd(t){return JSON.stringify(t.fieldPath)}function aat(){return{x:{fields:[],type:null},y:{fields:[],type:null},color:{fields:[],type:null},fx:{fields:[],type:null},fy:{fields:[],type:null},marks:[]}}function Pce(t,e){t.allFields.forEach(n=>{e(n),n.isExplore()&&Pce(n,e)})}function Mce(t){const e=t.isExplore()&&!t.isExploreField()?[]:[t.name];let n=t.parentExplore;for(;n!=null&&n.isExploreField();)e.unshift(n.name),n=n.parentExplore;return e}function yR(t,e){const n=Mce(t),r=Mce(e),i=n.length;let s=0;for(;n[s];){if(n[s]!==r[s])throw new Error("Tried to get path from parent field to child field, but parent field is not a parent of child field.");s++}return r.slice(i).join(".")}function lat(t,e){const n=e??t.tagParse().tag,r=n.tag("bar_chart")??n.tag("bar");if(!r)throw new Error("Tried to render a bar_chart, but no bar_chart tag was found");const i=aat();r.text("x")&&i.x.fields.push(r.text("x")),r.text("y")&&i.y.fields.push(r.text("y"));const s=[],o=[];if(Pce(t,a=>{const{tag:l}=a.tagParse();l.has("x")&&s.push(yR(t,a)),l.has("y")&&o.push(yR(t,a))}),s.forEach(a=>{i.x.fields.push(a)}),o.at(0)&&i.y.fields.push(o.at(0)),i.x.fields.length===0){const a=t.allFields.filter(l=>l.isAtomicField()&&l.isString());a.length>0&&i.x.fields.push(yR(t,a[0]))}if(i.y.fields.length===0){const a=t.allFields.find(l=>l.isAtomicField()&&l.isNumber());a&&i.y.fields.push(yR(t,a))}const u={id:"bar",type:"bar_y",x:null,y:null};return i.marks.push(u),i.x.type="nominal",i.y.type="quantitative",i}const cat={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},ER=28;function fat(t,e){const n=t.allFields.at(0),r=t.allFields.at(1),{tag:i}=t.tagParse();let s=0,o=0;const u=i.numeric("size","width"),a=i.numeric("size","height");let l=i.text("size");u&&a?(s=u,o=a):(l=l||"md",[s,o]=cat[l],o=o*ER);let c=0,f=0,x=-90,h="right",p="middle",m=0,g=0;const y=l!=="spark",E=l!=="spark",A=e.fields[qd(t)];let v=l!=="spark"?ER-1:0,S;const C=qd(r),_=e.fields[C].max,b=Ot("linear")().domain([0,_]).nice().range([o,0]),R=b.domain();if(E){const q=b.domain().at(1),B=rJ().format(",")(q);f=HE(B,"Inter, sans-serif 12px")+5+31;const X=Math.ceil(o/40),de=b.ticks(X);if(de.at(-1)<q){const be=(q-de.at(-1))/q,ee=o/(1-be);v=v-(ee-o),o=ee,S=X}}if(y){const q=qd(n),W=e.fields[q].maxString,B=HE(W,"Inter, sans-serif 12px"),G=.3;g=22+15,c=Math.min(B,G*o),m=c;const X=(s-f)/A.maxRecordCt;X>c&&(x=0,m=X,h=void 0,p="top")}const O=o+c+g,L=Math.ceil(O/ER)*ER;g+=L-O;const M=i.text("size")==="spark";return{plotWidth:s,plotHeight:o,xAxis:{labelAngle:x,labelAlign:h,labelBaseline:p,labelSize:m,height:c,titleSize:g,hidden:M},yAxis:{width:f,tickCount:S,hidden:M},yScale:{domain:R},padding:M?{top:0,left:0,bottom:0,right:0}:{top:v+1,left:f,bottom:c+g,right:0},xField:n,yField:r,get totalWidth(){return this.plotWidth+this.padding.left+this.padding.right},get totalHeight(){return this.plotHeight+this.padding.top+this.padding.bottom}}}const AR="#727883",vR="#E5E7EB";function xat(t,e){const n=fat(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:vR,tickColor:vR,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:AR,labelPadding:5,titleColor:AR,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:vR,tickColor:vR,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:AR,titleColor:AR,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10},view:{strokeWidth:0}},data:[{name:"table",values:[]}],marks:[],scales:[],legends:[],axes:[],autosize:{type:"none",resize:!0,contains:"content"},padding:n.padding},i={name:"xscale",type:t.x.type==="nominal"?"band":"linear",domain:{data:"table",field:t.x.fields.at(0)},range:"width"};i.type==="band"&&(i.paddingInner=.1,i.paddingOuter=.05,i.round=!0);const s={name:"yscale",type:t.y.type==="nominal"?"band":"linear",domain:n.yScale.domain??{data:"table",fields:t.y.fields},range:"height"};s.type==="linear"&&(s.nice=!0),r.scales.push(i),r.scales.push(s);for(const o of t.marks){const u={},a={name:o.id,source:"table",transform:[]};if(r.data.push(a),o.type==="bar_y"){u.type="rect",u.from={data:o.id};const l=o.x??t.x.fields.at(0),c=o.y??t.y.fields.at(0);u.encode={enter:{x:{scale:"xscale",field:l,band:.1},width:{scale:"xscale",band:.8},y:{scale:"yscale",field:c},y2:{scale:"yscale",value:0},fill:{value:"#53B2C8"}}},r.marks.push(u)}}return n.xAxis.hidden||r.axes.push({orient:"bottom",scale:"xscale",title:t.x.fields.join(", "),labelAngle:n.xAxis.labelAngle,labelLimit:n.xAxis.labelSize,labelAlign:n.xAxis.labelAlign,labelBaseline:n.xAxis.labelBaseline,maxExtent:n.xAxis.height}),n.yAxis.hidden||r.axes.push({orient:"left",scale:"yscale",grid:!0,maxExtent:n.yAxis.width,labelLimit:n.yAxis.width+10,tickCount:n.yAxis.tickCount??{signal:"ceil(height/40)"},title:[...new Set(s.domain.fields)].filter(o=>typeof o=="string").join(", ")}),{spec:r,plotWidth:n.plotWidth,plotHeight:n.plotHeight,totalWidth:n.totalWidth,totalHeight:n.totalHeight}}function dat(){const t=new WeakMap;return{get:e=>{if(!t.has(e)&&e.isArray()){const n=[];for(const r of e)n.push(r.toObject());t.set(e,n)}return t.get(e)}}}function hat(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=qd(u);return e.set(u,a),a},r=dat(),i={fields:{},fieldKeyMap:e,getFieldKey:n,field:u=>i.fields[n(u)],getData:r.get},s=t.data.field,o=i.getFieldKey(s);return i.fields[o]={field:s,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},jce(t.data.field,i),Uce(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?qce(a,a.tagParse().tag,i):a.isExplore()&&qce(a,t.tagParse().tag,i)}),i}function jce(t,e){for(const n of t.allFields){const r=e.getFieldKey(n);e.fields[r]={field:n,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},n.isExploreField()&&jce(n,e)}}const Uce=(t,e)=>{let n=0;for(const s of t){n++;for(const o of t.field.allFields){const u=o.isAtomicField()?s.cell(o).value:void 0,a=e.field(o);if($ce(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(Bce(o,u)){const l=u;a.values.add(l),(!a.minString||a.minString.length>l.length)&&(a.minString=l),(!a.maxString||a.maxString.length<l.length)&&(a.maxString=l)}else if(o.isExploreField()){const l=s.cell(o);Uce(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function qce(t,e,n){const r=n.field(t);if(jP(e,"bar","bar_chart")){const i=lat(t,e);r.vegaChartProps=xat(i,{field:t,metadata:n})}}const Hce=Sce(),zce=()=>{const t=IP(Hce);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};function mlt(t){return t}function ylt(t){return t}var pat=Ud("<div>");function gat(t){let e,n=null;return LP(()=>{n&&n.finalize();const r=t.type==="vega-lite"?dce(t.spec).spec:t.spec;n=new Z$(Yue(r)).initialize(e).renderer("svg").hover(),n.run()}),LP(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=pat(),i=e;return typeof i=="function"?rat(i,r):e=r,r})()}function Qce(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,Wn(gat,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}const mat=new Map([[ur.Nanoseconds,1e3],[ur.Microseconds,1e3],[ur.Milliseconds,1e3],[ur.Seconds,60],[ur.Minutes,60],[ur.Hours,24],[ur.Days,Number.MAX_VALUE]]);function Gce(t,e){let n=e.toString();return t===1&&(n=n.substring(0,n.length-1)),`${t} ${n}`}function Wce(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case l0.Euros:i="€";break;case l0.Pounds:i="£";break;case l0.Dollars:break}n=L5.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=L5.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??ur.Seconds;let o=e,u=0,a=[],l=!1;for(const[c,f]of mat)if(c===s&&(l=!0),!!l&&(u=o%f,o=Math.floor(o/=f),u>0&&(a=[Gce(u,c),...a]),o===0))break;a.length>0?n=a.slice(0,2).join(" "):n=Gce(0,s)}else r.has("number")?n=L5.format(r.text("number"),e):n=e.toLocaleString();return n}const yat=32,Eat=384,Vce=12,Aat=28;function vat(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:Sat(i,t),height:null},{tag:o}=i.tagParse();jP(o,"bar","bar_chart")&&i.isExploreField()?(s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight):!i.isExplore()&&i.isAtomicField()&&(s.height=Aat),e[n]=s}return e}function Sat(t,e){const n=qd(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=HE(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(HE(r.maxString,s),o)+Vce;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":Wce(t,r.max);i=Math.max(HE(u,s),o)+Vce}else i=130;i=uat(yat,Eat,i)}return i}const Yce=Sce(),zE=()=>IP(Yce);var _at=Ud("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),Cat=Ud("<th class=column-cell>"),bat=Ud("<td class=column-cell>"),Tat=Ud("<div class=sticky-header><div class=sticky-header-content>"),Rat=Ud("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),Oat=Ud("<tr>");const Kce=t=>{const e=()=>{const n=zE().layout,r=n[qd(t.field)].width,i=n[qd(t.field)].height;let s="";return t.isHeader||typeof r<"u"&&(s+=`width: ${r}px; min-width: ${r}px; max-width: ${r}px;`,typeof i=="number"&&(s+=`height: ${i}px;`)),s};return(()=>{var n=_at(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return f0(i,()=>t.value),sf(o=>{var u=!!t.hideStartGutter,a=!!t.isHeader,l=e(),c=!!t.hideEndGutter;return u!==o.e&&r.classList.toggle("hide-gutter-border",o.e=u),a!==o.t&&i.classList.toggle("header",o.t=a),o.a=nat(i,l,o.a),c!==o.o&&s.classList.toggle("hide-gutter-border",o.o=c),o},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},Nat=t=>{const e=qP(t.field),n=qP(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=UP(t.field),o=UP(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=Cat();return f0(a,Wn(Kce,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),sf(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},Dat=t=>{const e=zE(),n=kce(t.field);let r="";if(e.pinnedHeader)r="";else if(n==="cell"){const i=t.row.cell(t.field).value;$ce(t.field,i)?r=Wce(t.field,i):i===null?r="∅":Bce(t.field,i)&&(r=i)}else if(n==="chart"){const i=zce();r=Wn(Qce,{get field(){return t.field},get data(){return i.getData(t.row.cell(t.field))},metadata:i})}return(()=>{var i=bat();return f0(i,Wn(wce,{get children(){return[Wn(PP,{when:n==="table",get children(){return Wn(HP,{get data(){return t.row.cell(t.field)},get pinnedHeader(){return e.pinnedHeader},get rowLimit(){return e.pinnedHeader?1:1/0}})}}),Wn(PP,{when:!0,get children(){return Wn(Kce,{get field(){return t.field},value:r,get hideStartGutter(){return qP(t.field)},get hideEndGutter(){return UP(t.field)}})}})]}})),sf(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},Fat=t=>{const e=Xut({rowLimit:1/0,pinnedHeader:!1},t),n=zE(),[r,i]=wP(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=Fo(()=>{const u=[];let a=0;for(const l of e.data){if(a>=e.rowLimit)break;u.push(l),a++}return u});return(()=>{var u=Rat(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),f0(u,Wn(Zut,{get when(){return n.root},get children(){var x=Tat(),h=x.firstChild;return f0(h,Wn(HP,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),f0(c,()=>e.data.field.allFields.map(x=>Wn(Nat,{field:x}))),f0(f,Wn(Jut,{get each(){return o()},children:x=>(()=>{var h=Oat();return f0(h,()=>e.data.field.allFields.map(p=>Wn(Dat,{field:p,row:x}))),h})()})),sf(x=>{var h=!!n.root,p=!!n.pinnedHeader,m=!!r();return h!==x.e&&u.classList.toggle("root",x.e=h),p!==x.t&&u.classList.toggle("pinned-header",x.t=p),m!==x.a&&u.classList.toggle("scrolled",x.a=m),x},{e:void 0,t:void 0,a:void 0}),u})()},HP=t=>{const e=zce(),n=!!zE(),r=Fo(()=>{if(n){const i=zE();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:vat(e)}});return Wn(Yce.Provider,{get value(){return r()},get children(){return Wn(Fat,t)}})};function wat(t,{element:e}){const n=Fo(()=>{if(t.result)return t.result;if(t.queryResult&&t.modelDef)return new wt.Result(t.queryResult,t.modelDef);throw Error("MalloyRender: Must provide either a result or a queryResult and modelDef.")}),r=Fo(()=>hat(n())),i=()=>{const o=n().modelTag,u=n().tagParse().tag,a=o.tag("theme"),l=u.tag("theme");return{modelTag:o,resultTag:u,modelTheme:a,localTheme:l}};LP(()=>{if(e){const o=Lat(i().modelTheme,i().localTheme);for(const[u,a]of Object.entries(o))e.style.setProperty(u,a)}});const s=()=>{const o=i().resultTag,u=n().resultExplore;return kce(u,o)};return Wn(Hce.Provider,{get value(){return r()},get children(){return Wn(wce,{get fallback(){return Wn(HP,{get data(){return n().data}})},get children(){return Wn(PP,{get when(){return s()==="chart"},get children(){return Wn(Qce,{get field(){return n().resultExplore},get data(){return r().getData(n().data)},get metadata(){return r()}})}})}})}})}function wo(t,...e){let n;for(const r of e)if(n=r==null?void 0:r.text(t),typeof n<"u")break;return n??`var(--malloy-theme--${t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()})`}function Lat(t,e){const n={},r=wo("tableRowHeight",e,t),i=wo("tableBodyColor",e,t),s=wo("tableFontSize",e,t),o=wo("tableHeaderColor",e,t),u=wo("tableHeaderWeight",e,t),a=wo("tableBodyWeight",e,t),l=wo("tableBorder",e,t),c=wo("tableBackground",e,t),f=wo("tableGutterSize",e,t),x=wo("tablePinnedBackground",e,t),h=wo("tablePinnedBorder",e,t),p=wo("fontFamily",e,t);return n["--malloy-render--table-row-height"]=r,n["--malloy-render--table-body-color"]=i,n["--malloy-render--table-font-size"]=s,n["--malloy-render--font-family"]=p,n["--malloy-render--table-header-color"]=o,n["--malloy-render--table-header-weight"]=u,n["--malloy-render--table-body-weight"]=a,n["--malloy-render--table-border"]=l,n["--malloy-render--table-background"]=c,n["--malloy-render--table-gutter-size"]=f,n["--malloy-render--table-pinned-background"]=x,n["--malloy-render--table-pinned-border"]=h,n}const Iat=`:host {
|
|
1471
|
+
`)}function zoe(t){return"["+t.map(Qoe).join(", ")+"]"}function Qoe(t){return _e(t)?"[…]":He(t)&&!wx(t)?"{…}":t}function Z$(t,e){const n=this;if(e=e||{},G3.call(n),e.loader&&n.loader(e.loader),e.logger&&n.logger(e.logger),e.logLevel!=null&&n.logLevel(e.logLevel),e.locale||t.locale){const s=ft({},t.locale,e.locale);n.locale(rJ(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||dd.Canvas,n._scenegraph=new ene;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||IXe,n._redraw=!0,n._handler=new bb().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=tXe(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=bXe(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ft({},s)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=qoe(n,n._width),n._viewHeight=Hoe(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,RXe(n),zKe(n),QKe(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function WT(t,e){return Je(t._signals,e)?t._signals[e]:Se("Unrecognized signal name: "+we(e))}function Goe(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function Woe(t,e,n,r){let i=Goe(n,r);return i||(i=Y$(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function Voe(t,e,n){const r=Goe(e,n);return r&&e._targets.remove(r),t}Fe(Z$,G3,{async evaluate(t,e,n){if(await G3.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,YKe(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&vC(this,n),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=t!=null?t+"":null;return e!==this._desc&&Noe(this._el,this._desc=e),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,e,n){const r=WT(this,t);return arguments.length===1?r.value:this.update(r,e,n)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",Poe(t)):Poe(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(_L(t)||Se("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(G3.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(WT(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:OXe,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Y$(this,e),r.raw=e),this._handler.on(t,r),this},removeEventListener(t,e){for(var n=this._handler.handlers(t),r=n.length,i,s;--r>=0;)if(s=n[r].type,i=n[r].handler,t===s&&(e===i||e===i.raw)){this._handler.off(s,i);break}return this},addResizeListener(t){const e=this._resizeListeners;return e.indexOf(t)<0&&e.push(t),this},removeResizeListener(t){var e=this._resizeListeners,n=e.indexOf(t);return n>=0&&e.splice(n,1),this},addSignalListener(t,e){return Woe(this,t,WT(this,t),e)},removeSignalListener(t,e){return Voe(this,WT(this,t),e)},addDataListener(t,e){return Woe(this,t,qT(this,t).values,e)},removeDataListener(t,e){return Voe(this,qT(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=V$(this,null);this._globalCursor=!!t,e&&V$(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:LXe,events:rXe,finalize:sXe,hover:iXe,data:GKe,change:HT,insert:WKe,remove:VKe,scale:TXe,initialize:EXe,toImageURL:vXe,toCanvas:_Xe,toSVG:CXe,getState:NXe,setState:wXe});const kXe="view",VT="[",YT="]",Yoe="{",Koe="}",PXe=":",Xoe=",",MXe="@",jXe=">",UXe=/[[\]{}]/,qXe={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let Joe,Zoe;function bd(t,e,n){return Joe=e||kXe,Zoe=n||qXe,eue(t.trim()).map(eB)}function HXe(t){return Zoe[t]}function xE(t,e,n,r,i){const s=t.length;let o=0,u;for(;e<s;++e){if(u=t[e],!o&&u===n)return e;i&&i.indexOf(u)>=0?--o:r&&r.indexOf(u)>=0&&++o}return e}function eue(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=xE(t,i,Xoe,VT+Yoe,YT+Koe),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function eB(t){return t[0]==="["?zXe(t):QXe(t)}function zXe(t){const e=t.length;let n=1,r;if(n=xE(t,n,YT,VT,YT),n===e)throw"Empty between selector: "+t;if(r=eue(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==jXe)throw"Expected '>' after between selector: "+t;r=r.map(eB);const i=eB(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function QXe(t){const e={source:Joe},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===Koe){if(u=t.lastIndexOf(Yoe),u>=0){try{r=GXe(t.substring(u+1,o-1))}catch{throw"Invalid throttle specification: "+t}t=t.slice(0,u).trim(),o=t.length}else throw"Unmatched right brace: "+t;u=0}if(!o)throw t;if(t[0]===MXe&&(i=++u),a=xE(t,u,PXe),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=xE(t,u,VT),u===o)n.push(t.substring(s,o).trim());else if(n.push(t.substring(s,u).trim()),l=[],s=++u,s===o)throw"Unmatched left bracket: "+t;for(;u<o;){if(u=xE(t,u,YT),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==VT)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||UXe.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):HXe(n[0])?e.marktype=n[0]:e.source=n[0]):e.type=n[0],e.type.slice(-1)==="!"&&(e.consume=!0,e.type=e.type.slice(0,-1)),l!=null&&(e.filter=l),r[0]&&(e.throttle=r[0]),r[1]&&(e.debounce=r[1]),e}function GXe(t){const e=t.split(Xoe);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function WXe(t){return He(t)?t:{type:t||"pad"}}const dE=t=>+t||0,VXe=t=>({top:t,bottom:t,left:t,right:t});function YXe(t){return He(t)?t.signal?t:{top:dE(t.top),bottom:dE(t.bottom),left:dE(t.left),right:dE(t.right)}:VXe(dE(t))}const Sr=t=>He(t)&&!_e(t)?ft({},t):{value:t};function tue(t,e,n,r){return n!=null?(He(n)&&!_e(n)||_e(n)&&n.length&&He(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Pr(t,e,n){for(const r in e)tue(t,r,e[r]);for(const r in n)tue(t,r,n[r],"update")}function b1(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ft(t[r]||{},e[r]));return t}function T1(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const tB="mark",nB="frame",rB="scope",KXe="axis",XXe="axis-domain",JXe="axis-grid",ZXe="axis-label",eJe="axis-tick",tJe="axis-title",nJe="legend",rJe="legend-band",iJe="legend-entry",sJe="legend-gradient",nue="legend-label",oJe="legend-symbol",uJe="legend-title",aJe="title",lJe="title-text",cJe="title-subtitle";function fJe(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!T1(a,t)&&iB(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===nB?i.group:n===tB?ft({},i.mark,i[e]):null;for(a in c)l=T1(a,t)||(a==="fill"||a==="stroke")&&(T1("fill",t)||T1("stroke",t)),l||iB(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)T1(h,t)||iB(s,h,x[h])}),t=ft({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ft(o,t.enter),u&&(t.update=ft(u,t.update)),t}function iB(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const rue=t=>je(t)?we(t):t.signal?`(${t.signal})`:iue(t);function KT(t){if(t.gradient!=null)return dJe(t);let e=t.signal?`(${t.signal})`:t.color?xJe(t.color):t.field!=null?iue(t.field):t.value!==void 0?we(t.value):void 0;return t.scale!=null&&(e=hJe(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${JT(t.exponent)})`),t.mult!=null&&(e+=`*${JT(t.mult)}`),t.offset!=null&&(e+=`+${JT(t.offset)}`),t.round&&(e=`round(${e})`),e}const XT=(t,e,n,r)=>`(${t}(${[e,n,r].map(KT).join(",")})+'')`;function xJe(t){return t.c?XT("hcl",t.h,t.c,t.l):t.h||t.s?XT("hsl",t.h,t.s,t.l):t.l||t.a?XT("lab",t.l,t.a,t.b):t.r||t.g||t.b?XT("rgb",t.r,t.g,t.b):null}function dJe(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:we(n));for(;e.length&&St(e)==null;)e.pop();return e.unshift(rue(t.gradient)),`gradient(${e.join(",")})`}function JT(t){return He(t)?"("+KT(t)+")":t}function iue(t){return sue(He(t)?t:{datum:t})}function sue(t){let e,n,r;if(t.signal)e="datum",r=t.signal;else if(t.group||t.parent){for(n=Math.max(1,t.level||1),e="item";n-- >0;)e+=".mark.group";t.parent?(r=t.parent,e+=".datum"):r=t.group}else t.datum?(e="datum",r=t.datum):Se("Invalid field reference: "+we(t));return t.signal||(r=je(r)?Al(r).map(we).join("]["):sue(r)),e+"["+r+"]"}function hJe(t,e){const n=rue(t.scale);return t.range!=null?e=`lerp(_range(${n}), ${+t.range})`:(e!==void 0&&(e=`_scale(${n}, ${e})`),t.band&&(e=(e?e+"+":"")+`_bandwidth(${n})`+(+t.band==1?"":"*"+JT(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function pJe(t){let e="";return t.forEach(n=>{const r=KT(n);e+=n.test?`(${n.test})?${r}:`:r}),St(e)===":"&&(e+="null"),e}function oue(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=fJe(t,e,n,r,i.config);for(const u in t)o[u]=gJe(t[u],e,s,i);return s}function gJe(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=yJe(mJe(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function mJe(t){return _e(t)?pJe(t):KT(t)}function yJe(t,e,n,r){const i=La(t,e);return i.$fields.forEach(s=>r[s]=1),ft(n,i.$params),i.$expr}const EJe="outer",AJe=["value","update","init","react","bind"];function uue(t,e){Se(t+' for "outer" push: '+we(e))}function aue(t,e){const n=t.name;if(t.push===EJe)e.signals[n]||uue("No prior signal definition",n),AJe.forEach(r=>{t[r]!==void 0&&uue("Invalid property ",r)});else{const r=e.addSignal(n,t.value);t.react===!1&&(r.react=!1),t.bind&&e.addBinding(n,t.bind)}}function sB(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function ZT(t,e,n,r){return new sB(t,e,n,r)}function e6(t,e){return ZT("operator",t,e)}function Xe(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function hE(t,e){return e?{$field:t,$name:e}:{$field:t}}const oB=hE("key");function lue(t,e){return{$compare:t,$order:e}}function vJe(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const SJe="ascending",_Je="descending";function CJe(t){return He(t)?(t.order===_Je?"-":"+")+t6(t.op,t.field):""}function t6(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const uB="scope",aB="view";function sr(t){return t&&t.signal}function bJe(t){return t&&t.expr}function n6(t){if(sr(t))return!0;if(He(t)){for(const e in t)if(n6(t[e]))return!0}return!1}function du(t,e){return t??e}function Td(t){return t&&t.signal||t}const cue="timer";function pE(t,e){return(t.merge?RJe:t.stream?OJe:t.type?NJe:Se("Invalid stream specification: "+we(t)))(t,e)}function TJe(t){return t===uB?aB:t||aB}function RJe(t,e){const n=t.merge.map(i=>pE(i,e)),r=lB({merge:n},t,e);return e.addStream(r).id}function OJe(t,e){const n=pE(t.stream,e),r=lB({stream:n},t,e);return e.addStream(r).id}function NJe(t,e){let n;t.type===cue?(n=e.event(cue,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(TJe(t.source),t.type);const r=lB({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function lB(t,e,n){let r=e.between;return r&&(r.length!==2&&Se('Stream "between" parameter must have 2 entries: '+we(e)),t.between=[pE(r[0],n),pE(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(DJe(e.marktype,e.markname,e.markrole)),e.source===uB&&r.push("inScope(event.item)"),r.length&&(t.filter=La("("+r.join(")&&(")+")",n).$expr),(r=e.throttle)!=null&&(t.throttle=+r),(r=e.debounce)!=null&&(t.debounce=+r),e.consume&&(t.consume=!0),t}function DJe(t,e,n){const r="event.item";return r+(t&&t!=="*"?"&&"+r+".mark.marktype==='"+t+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(e?"&&"+r+".mark.name==='"+e+"'":"")}const FJe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function wJe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||Se("Signal update missing events specification."),je(s)&&(s=bd(s,e.isSubscope()?uB:aB)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[IJe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&Se("Signal encode and update are mutually exclusive."),o="encode(item(),"+we(r)+")"),i.update=je(o)?La(o,e):o.expr!=null?La(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:FJe,$params:{$value:e.signalRef(o.signal)}}:Se("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ft(LJe(a,e),i)))}function LJe(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):pE(t,e)}}function IJe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function $Je(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?Se("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=La(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>wJe(i,e,n.id))}const jt=t=>(e,n,r)=>ZT(t,n,e||void 0,r),fue=jt("aggregate"),BJe=jt("axisticks"),xue=jt("bound"),hu=jt("collect"),due=jt("compare"),kJe=jt("datajoin"),hue=jt("encode"),PJe=jt("expression"),MJe=jt("facet"),jJe=jt("field"),UJe=jt("key"),qJe=jt("legendentries"),HJe=jt("load"),zJe=jt("mark"),QJe=jt("multiextent"),GJe=jt("multivalues"),WJe=jt("overlap"),VJe=jt("params"),pue=jt("prefacet"),YJe=jt("projection"),KJe=jt("proxy"),XJe=jt("relay"),gue=jt("render"),JJe=jt("scale"),Rd=jt("sieve"),ZJe=jt("sortitems"),mue=jt("viewlayout"),eZe=jt("values");let tZe=0;const yue={min:"min",max:"max",count:"sum"};function nZe(t,e){const n=t.type||"linear";ete(n)||Se("Unrecognized scale type: "+we(n)),e.addScale(t.name,{type:n,domain:void 0})}function rZe(t,e){const n=e.getScale(t.name).params;let r;n.domain=Eue(t.domain,t,e),t.range!=null&&(n.range=vue(t,e,n)),t.interpolate!=null&&dZe(t.interpolate,n),t.nice!=null&&(n.nice=xZe(t.nice)),t.bins!=null&&(n.bins=fZe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=To(t[r],e))}function To(t,e){return He(t)?t.signal?e.signalRef(t.signal):Se("Unsupported object: "+we(t)):t}function r6(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>To(n,e))}function i6(t){Se("Can not find data set: "+we(t))}function Eue(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&Se("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?iZe:t.fields?oZe:sZe)(t,e,n)}function iZe(t,e,n){return t.map(r=>To(r,n))}function sZe(t,e,n){const r=n.getData(t.data);return r||i6(t.data),r1(e.type)?r.valuesRef(n,t.field,Aue(t.sort,!1)):rte(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function oZe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?uZe(o,n):o,s.push(o),s),[]);return(r1(e.type)?aZe:rte(e.type)?lZe:cZe)(t,n,i)}function uZe(t,e){const n="_:vega:_"+tZe++,r=hu({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+we(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,Rd({})]),{data:n,field:"data"}}function aZe(t,e,n){const r=Aue(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||i6(l.data),c.countsRef(e,l.field,r)}),u={groupby:oB,pulse:o};r&&(i=r.op||"count",s=r.field?t6(i,r.field):"count",u.ops=[yue[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(fue(u));const a=e.add(hu({pulse:Xe(i)}));return s=e.add(eZe({field:oB,sort:e.sortRef(r),pulse:Xe(a)})),Xe(s)}function Aue(t,e){return t&&(!t.field&&!t.op?He(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?Se("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!yue[t.op]&&Se("Multiple domain scales can not be sorted using "+t.op)),t}function lZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||i6(i.data),s.domainRef(e,i.field)});return Xe(e.add(GJe({values:r})))}function cZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||i6(i.data),s.extentRef(e,i.field)});return Xe(e.add(QJe({extents:r})))}function fZe(t,e){return t.signal||_e(t)?r6(t,e):e.objectProperty(t)}function xZe(t){return He(t)?{interval:To(t.interval),step:To(t.step)}:To(t)}function dZe(t,e){e.interpolate=To(t.type||t),t.gamma!=null&&(e.interpolateGamma=To(t.gamma))}function vue(t,e,n){const r=e.config.range;let i=t.range;if(i.signal)return e.signalRef(i.signal);if(je(i)){if(r&&Je(r,i))return t=ft({},t,{range:r[i]}),vue(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=r1(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:Se("Unrecognized scale range value: "+we(i))}else if(i.scheme){n.scheme=_e(i.scheme)?r6(i.scheme,e):To(i.scheme,e),i.extent&&(n.schemeExtent=r6(i.extent,e)),i.count&&(n.schemeCount=To(i.count,e));return}else if(i.step){n.rangeStep=To(i.step,e);return}else{if(r1(t.type)&&!_e(i))return Eue(i,t,e);_e(i)||Se("Unsupported range type: "+we(i))}return i.map(s=>(_e(s)?r6:To)(s,e))}function hZe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=cB(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=cB(n[i],i,e));e.addProjection(t.name,r)}function cB(t,e,n){return _e(t)?t.map(r=>cB(r,e,n)):He(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:Se("Unsupported parameter object: "+we(t)):t}const pu="top",R1="left",O1="right",Hc="bottom",Sue="center",pZe="vertical",gZe="start",mZe="middle",yZe="end",fB="index",xB="label",EZe="offset",N1="perc",AZe="perc2",Ro="value",gE="guide-label",dB="guide-title",vZe="group-title",SZe="group-subtitle",_ue="symbol",s6="gradient",hB="discrete",pB="size",gB=[pB,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],mE={name:1,style:1,interactive:1},bt={value:0},Oo={value:1},o6="group",Cue="rect",mB="rule",_Ze="symbol",Od="text";function yE(t){return t.type=o6,t.interactive=t.interactive||!1,t}function ys(t,e){const n=(r,i)=>du(t[r],du(e[r],i));return n.isVertical=r=>pZe===du(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>du(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>du(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>du(t.columns,du(e.columns,+n.isVertical(!0))),n}function bue(t,e){const n=e&&(e.update&&e.update[t]||e.enter&&e.enter[t]);return n&&n.signal?n:n?n.value:null}function CZe(t,e,n){const r=e.config.style[n];return r&&r[t]}function u6(t,e,n){return`item.anchor === '${gZe}' ? ${t} : item.anchor === '${yZe}' ? ${e} : ${n}`}const yB=u6(we(R1),we(O1),we(Sue));function bZe(t){const e=t("tickBand");let n=t("tickOffset"),r,i;return e?e.signal?(r={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${e.signal}) === 'extent'`},He(n)||(n={signal:`(${e.signal}) === 'extent' ? 0 : ${n}`})):e==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=t("bandPosition"),i=t("tickExtra")),{extra:i,band:r,offset:n}}function Tue(t,e){return e?t?He(t)?Object.assign({},t,{offset:Tue(t.offset,e)}):{value:t,offset:e}:e:t}function Qs(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=b1(t.encode,e,mE)):t.interactive=!1,t}function TZe(t,e,n,r){const i=ys(t,n),s=i.isVertical(),o=i.gradientThickness(),u=i.gradientLength();let a,l,c,f,x;s?(l=[0,1],c=[0,0],f=o,x=u):(l=[0,0],c=[1,0],f=u,x=o);const h={enter:a={opacity:bt,x:bt,y:bt,width:Sr(f),height:Sr(x)},update:ft({},a,{opacity:Oo,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:bt}};return Pr(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Qs({type:Cue,role:sJe,encode:h},r)}function RZe(t,e,n,r,i){const s=ys(t,n),o=s.isVertical(),u=s.gradientThickness(),a=s.gradientLength();let l,c,f,x,h="";o?(l="y",f="y2",c="x",x="width",h="1-"):(l="x",f="x2",c="y",x="height");const p={opacity:bt,fill:{scale:e,field:Ro}};p[l]={signal:h+"datum."+N1,mult:a},p[c]=bt,p[f]={signal:h+"datum."+AZe,mult:a},p[x]=Sr(u);const m={enter:p,update:ft({},p,{opacity:Oo}),exit:{opacity:bt}};return Pr(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),Qs({type:Cue,role:rJe,key:Ro,from:i,encode:m},r)}const OZe=`datum.${N1}<=0?"${R1}":datum.${N1}>=1?"${O1}":"${Sue}"`,NZe=`datum.${N1}<=0?"${Hc}":datum.${N1}>=1?"${pu}":"${mZe}"`;function Rue(t,e,n,r){const i=ys(t,e),s=i.isVertical(),o=Sr(i.gradientThickness()),u=i.gradientLength();let a=i("labelOverlap"),l,c,f,x,h="";const p={enter:l={opacity:bt},update:c={opacity:Oo,text:{field:xB}},exit:{opacity:bt}};return Pr(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:du(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:NZe},f="y",x="x",h="1-"):(l.align=c.align={signal:OZe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+N1,mult:u},l[x]=c[x]=o,o.offset=du(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+fB}:void 0,Qs({type:Od,role:nue,style:gE,key:Ro,from:r,encode:p,overlap:a},n)}function DZe(t,e,n,r,i){const s=ys(t,e),o=n.entries,u=!!(o&&o.interactive),a=o?o.name:void 0,l=s("clipHeight"),c=s("symbolOffset"),f={data:"value"},x=`(${i}) ? datum.${EZe} : datum.${pB}`,h=l?Sr(l):{field:pB},p=`datum.${fB}`,m=`max(1, ${i})`;let g,y,E,A,v;h.mult=.5,g={enter:y={opacity:bt,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:Oo,x:y.x,y:y.y},exit:{opacity:bt}};let S=null,C=null;t.fill||(S=e.symbolBaseFillColor,C=e.symbolBaseStrokeColor),Pr(g,{fill:s("symbolFillColor",S),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",C),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),gB.forEach(O=>{t[O]&&(E[O]=y[O]={scale:t[O],field:Ro})});const _=Qs({type:_Ze,role:oJe,key:Ro,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=Sr(c);b.offset=s("labelOffset"),g={enter:y={opacity:bt,x:{signal:x,offset:b},y:h},update:E={opacity:Oo,text:{field:xB},x:y.x,y:y.y},exit:{opacity:bt}},Pr(g,{align:s("labelAlign"),baseline:s("labelBaseline"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:s("labelLimit")});const R=Qs({type:Od,role:nue,style:gE,key:Ro,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:bt,height:l?Sr(l):bt,opacity:bt},exit:{opacity:bt},update:E={opacity:Oo,row:{signal:null},column:{signal:null}}},s.isVertical(!0)?(A=`ceil(item.mark.items.length / ${m})`,E.row.signal=`${p}%${A}`,E.column.signal=`floor(${p} / ${A})`,v={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,v={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:fB}},yE({role:rB,from:r,encode:b1(g,o,mE),marks:[_,R],name:a,interactive:u,sort:v})}function FZe(t,e){const n=ys(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const EB='item.orient === "left"',AB='item.orient === "right"',a6=`(${EB} || ${AB})`,wZe=`datum.vgrad && ${a6}`,LZe=u6('"top"','"bottom"','"middle"'),IZe=u6('"right"','"left"','"center"'),$Ze=`datum.vgrad && ${AB} ? (${IZe}) : (${a6} && !(datum.vgrad && ${EB})) ? "left" : ${yB}`,BZe=`item._anchor || (${a6} ? "middle" : "start")`,kZe=`${wZe} ? (${EB} ? -90 : 90) : 0`,PZe=`${a6} ? (datum.vgrad ? (${AB} ? "bottom" : "top") : ${LZe}) : "top"`;function MZe(t,e,n,r){const i=ys(t,e),s={enter:{opacity:bt},update:{opacity:Oo,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:bt}};return Pr(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:BZe},angle:{signal:kZe},align:{signal:$Ze},baseline:{signal:PZe},text:t.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),Qs({type:Od,role:uJe,style:dB,from:r,encode:s},n)}function jZe(t,e){let n;return He(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+Oue(t.path)+")":t.sphere&&(n="geoShape("+Oue(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function Oue(t){return He(t)&&t.signal?t.signal:we(t)}function Nue(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===o6?rB:e||tB}function UZe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Nue(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function qZe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function vB(t,e){const n=w$e(t.type);n||Se("Unrecognized transform type: "+we(t.type));const r=ZT(n.type.toLowerCase(),null,Due(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Due(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=HZe(o,e,n)}return r}function HZe(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return zZe(t,e,n);if(i===void 0){t.required&&Se("Missing required "+we(e.type)+" parameter: "+we(t.name));return}else{if(r==="param")return QZe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!sr(i)?i.map(s=>Fue(t,s,n)):Fue(t,i,n)}function Fue(t,e,n){const r=t.type;if(sr(e))return Lue(r)?Se("Expression references can not be signals."):SB(r)?n.fieldRef(e):Iue(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||SB(r);return i&&GZe(e)?n.exprRef(e.expr,e.as):i&&WZe(e)?hE(e.field,e.as):Lue(r)?La(e,n):VZe(r)?Xe(n.getData(e).values):SB(r)?hE(e):Iue(r)?n.compareRef(e):e}}function zZe(t,e,n){return je(e.from)||Se('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function QZe(t,e,n){const r=e[t.name];return t.array?(_e(r)||Se("Expected an array of sub-parameters. Instead: "+we(r)),r.map(i=>wue(t,i,n))):wue(t,r,n)}function wue(t,e,n){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const u in i.key)if(i.key[u]!==e[u]){i=null;break}if(i)break}i||Se("Unsupported parameter: "+we(e));const s=ft(Due(i,e,n),i.key);return Xe(n.add(VJe(s)))}const GZe=t=>t&&t.expr,WZe=t=>t&&t.field,VZe=t=>t==="data",Lue=t=>t==="expr",SB=t=>t==="field",Iue=t=>t==="compare";function YZe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||Se("Only group marks can be faceted."),r.field!=null?o=u=l6(r,n):(t.data?u=Xe(n.getData(t.data).aggregate):(s=vB(ft({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=l6(r,n),o=u=Xe(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Xe(n.add(hu(null,[{}]))),o||(o=l6(t,n)),{key:i,pulse:o,parent:u}}function l6(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Xe(e.getData(t.data).output)}function Nd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}Nd.fromEntries=function(t,e){const n=e.length,r=e[n-1],i=e[n-2];let s=e[0],o=null,u=1;for(s&&s.type==="load"&&(s=e[1]),t.add(e[0]);u<n;++u)e[u].params.pulse=Xe(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new Nd(t,s,i,r,o)};function $ue(t){return je(t)?t:null}function Bue(t,e,n){const r=t6(n.op,n.field);let i;if(e.ops){for(let s=0,o=e.as.length;s<o;++s)if(e.as[s]===r)return}else e.ops=["count"],e.fields=[null],e.as=["count"];n.op&&(e.ops.push((i=n.op.signal)?t.signalRef(i):n.op),e.fields.push(t.fieldRef(n.field)),e.as.push(r))}function EE(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=CJe(s);let l=$ue(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:oB,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Xe(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(ZT(r,void 0,x)),o&&(e.index[i]=f),c=Xe(f),l!=null&&(u[l]=c)}return c}Nd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=$ue(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&Bue(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Xe(r.output)},n&&n.field&&Bue(t,a,n),u=t.add(fue(a)),o=t.add(hu({pulse:Xe(u)})),o={agg:u,ref:Xe(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Xe(this.values)},extentRef(t,e){return EE(t,this,"extent","extent",e,!1)},domainRef(t,e){return EE(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return EE(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return EE(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return EE(t,this,"indata","tupleindex",e,!0,!0)}};function KZe(t,e,n){const r=t.from.facet,i=r.name,s=l6(r,e);let o;r.name||Se("Facet must have a name: "+we(r)),r.data||Se("Facet must reference a data set: "+we(r)),r.field?o=e.add(pue({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(MJe({key:e.keyRef(r.groupby),group:Xe(e.proxy(n.parent)),pulse:s})):Se("Facet must specify groupby or field: "+we(r));const u=e.fork(),a=u.add(hu()),l=u.add(Rd({pulse:Xe(a)}));u.addData(i,new Nd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function XZe(t,e,n){const r=e.add(pue({pulse:n.pulse})),i=e.fork();i.add(Rd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function kue(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(e6()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=La(l,e);a.update=c.$expr,a.params=c.$params}function c6(t,e){const n=Nue(t),r=t.type===o6,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===rB||n===nB,u,a,l,c,f,x,h;const p=n===tB||o||i,m=YZe(t.from,r,e);a=e.add(kJe({key:m.key||(t.key?hE(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Xe(a);a=l=e.add(hu({pulse:g})),a=e.add(zJe({markdef:UZe(t),interactive:qZe(t.interactive,e),clip:jZe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Xe(a)}));const y=Xe(a);a=c=e.add(hue(oue(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(C=>{const _=vB(C,e),b=_.metadata;(b.generates||b.changes)&&Se("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),_.params.pulse=Xe(a),e.add(a=_)}),t.sort&&(a=e.add(ZJe({sort:e.compareRef(t.sort),pulse:Xe(a)})));const E=Xe(a);(i||o)&&(o=e.add(mue({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Xe(o));const A=e.add(xue({mark:y,pulse:x||E}));h=Xe(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?KZe(t,e,m):p?XZe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=JZe(s,h,e));const v=e.add(gue({pulse:h})),S=e.add(Rd({pulse:Xe(v)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new Nd(e,l,v,S)),t.on&&t.on.forEach(C=>{(C.insert||C.remove||C.toggle)&&Se("Marks only support modify triggers."),kue(C,e,f)}))}function JZe(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:sr(s)?n.signalRef(s.signal):s,method:sr(r)?n.signalRef(r.signal):r,pulse:e};if(t.order&&(o.sort=n.compareRef({field:t.order})),i){const u=i.tolerance;o.boundTolerance=sr(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Xe(n.add(WJe(o)))}function ZZe(t,e){const n=e.config.legend,r=t.encode||{},i=ys(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;gB.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||Se("Missing valid scale for legend.");const p=eet(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Xe(e.add(hu(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Xe(e.add(qJe(x={type:p,scale:e.scaleRef(c),count:e.objectProperty(i("tickCount")),limit:e.property(i("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));return p===s6?(h=[TZe(t,c,n,r.gradient),Rue(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${Td(i.gradientLength())})/100))`)):p===hB?h=[RZe(t,c,n,r.gradient,E),Rue(t,n,r.labels,E)]:(f=FZe(t,n),h=[DZe(t,n,r,E,Td(f.columns))],x.size=ret(t,e,h[0].marks)),h=[yE({role:iJe,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(MZe(t,n,r.title,g)),c6(yE({role:nJe,from:g,encode:b1(net(i,t,n),s,mE),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function eet(t,e){let n=t.type||_ue;return!t.type&&tet(t)===1&&(t.fill||t.stroke)&&(n=F9(e)?s6:w9(e)?hB:_ue),n!==s6?n:w9(e)?hB:s6}function tet(t){return gB.reduce((e,n)=>e+(t[n]?1:0),0)}function net(t,e,n){const r={enter:{},update:{}};return Pr(r,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:t("legendX"),y:t("legendY"),format:e.format,formatType:e.formatType}),r}function ret(t,e,n){const r=Td(Pue("size",t,n)),i=Td(Pue("strokeWidth",t,n)),s=Td(iet(n[1].encode,e,gE));return La(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function Pue(t,e,n){return e[t]?`scale("${e[t]}",datum)`:bue(t,n[0].encode)}function iet(t,e,n){return bue("fontSize",t)||CZe("fontSize",e,n)}const set=`item.orient==="${R1}"?-90:item.orient==="${O1}"?90:0`;function oet(t,e){t=je(t)?{text:t}:t;const n=ys(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Xe(e.add(hu(null,[l])));return a.push(cet(t,n,uet(t),c)),t.subtitle&&a.push(fet(t,n,r.subtitle,c)),c6(yE({role:aJe,from:c,encode:aet(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function uet(t){const e=t.encode;return e&&e.title||ft({name:t.name,interactive:t.interactive,style:t.style},e)}function aet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:yB},angle:{signal:set},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),b1(n,e,mE)}function cet(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("color"),font:e("font"),fontSize:e("fontSize"),fontStyle:e("fontStyle"),fontWeight:e("fontWeight"),lineHeight:e("lineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Qs({type:Od,role:lJe,style:vZe,from:r,encode:o},n)}function fet(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("subtitleColor"),font:e("subtitleFont"),fontSize:e("subtitleFontSize"),fontStyle:e("subtitleFontStyle"),fontWeight:e("subtitleFontWeight"),lineHeight:e("subtitleLineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Qs({type:Od,role:cJe,style:SZe,from:r,encode:o},n)}function xet(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(vB(r,e))}),t.on&&t.on.forEach(r=>{kue(r,e,t.name)}),e.addDataPipeline(t.name,det(t,e,n))}function det(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?sr(t.values)||n6(t.format)?(r.push(Mue(e,t)),r.push(i=Dd())):r.push(i=Dd({$ingest:t.values,$format:t.format})):t.url?n6(t.url)||n6(t.format)?(r.push(Mue(e,t)),r.push(i=Dd())):r.push(i=Dd({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Xe(e.getData(x).output)),r.push(null)),a=0,l=n.length;a<l;++a)c=n[a],f=c.metadata,!i&&!f.source&&r.push(i=Dd()),r.push(c),f.generates&&(o=!0),f.modifies&&!o&&(s=!0),f.source?i=c:f.changes&&(i=null);return u&&(l=u.length-1,r[0]=XJe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,Dd())),i||r.push(Dd()),r.push(Rd({})),r}function Dd(t){const e=hu({},t);return e.metadata={source:!0},e}function Mue(t,e){return HJe({url:e.url?t.property(e.url):void 0,async:e.async?t.property(e.async):void 0,values:e.values?t.property(e.values):void 0,format:t.objectProperty(e.format)})}const jue=t=>t===Hc||t===pu,f6=(t,e,n)=>sr(t)?met(t.signal,e,n):t===R1||t===pu?e:n,_r=(t,e,n)=>sr(t)?pet(t.signal,e,n):jue(t)?e:n,gu=(t,e,n)=>sr(t)?get(t.signal,e,n):jue(t)?n:e,Uue=(t,e,n)=>sr(t)?yet(t.signal,e,n):t===pu?{value:e}:{value:n},het=(t,e,n)=>sr(t)?Eet(t.signal,e,n):t===O1?{value:e}:{value:n},pet=(t,e,n)=>que(`${t} === '${pu}' || ${t} === '${Hc}'`,e,n),get=(t,e,n)=>que(`${t} !== '${pu}' && ${t} !== '${Hc}'`,e,n),met=(t,e,n)=>_B(`${t} === '${R1}' || ${t} === '${pu}'`,e,n),yet=(t,e,n)=>_B(`${t} === '${pu}'`,e,n),Eet=(t,e,n)=>_B(`${t} === '${O1}'`,e,n),que=(t,e,n)=>(e=e!=null?Sr(e):e,n=n!=null?Sr(n):n,Hue(e)&&Hue(n)?(e=e?e.signal||we(e.value):null,n=n?n.signal||we(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ft({test:t},e)].concat(n||[])),Hue=t=>t==null||Object.keys(t).length===1,_B=(t,e,n)=>({signal:`${t} ? (${D1(e)}) : (${D1(n)})`}),Aet=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${R1}' ? (${D1(r)}) : `:"")+(n!=null?`${t} === '${Hc}' ? (${D1(n)}) : `:"")+(i!=null?`${t} === '${O1}' ? (${D1(i)}) : `:"")+(e!=null?`${t} === '${pu}' ? (${D1(e)}) : `:"")+"(null)"}),D1=t=>sr(t)?t.signal:t==null?null:we(t),vet=(t,e)=>e===0?0:sr(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},F1=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function w1(t,e,n,r){let i;if(e&&Je(e,t))return e[t];if(Je(n,t))return n[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[dB][i]}else if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[gE][i]}return null}function zue(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function _et(t,e){var n=e.config,r=n.style,i=n.axis,s=e.scaleType(t.scale)==="band"&&n.axisBand,o=t.orient,u,a,l;if(sr(o)){const f=zue([n.axisX,n.axisY]),x=zue([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=_r(o,w1(l,n.axisX,i,r),w1(l,n.axisY,i,r));a={};for(l of x)a[l]=Aet(o.signal,w1(l,n.axisTop,i,r),w1(l,n.axisBottom,i,r),w1(l,n.axisLeft,i,r),w1(l,n.axisRight,i,r))}else u=o===pu||o===Hc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ft({},i,u,a,s):i}function Cet(t,e,n,r){const i=ys(t,e),s=t.orient;let o,u;const a={enter:o={opacity:bt},update:u={opacity:Oo},exit:{opacity:bt}};Pr(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=Que(t,0),c=Que(t,1);return o.x=u.x=_r(s,l,bt),o.x2=u.x2=_r(s,c),o.y=u.y=gu(s,l,bt),o.y2=u.y2=gu(s,c),Qs({type:mB,role:XXe,from:r,encode:a},n)}function Que(t,e){return{scale:t.scale,range:e}}function bet(t,e,n,r,i){const s=ys(t,e),o=t.orient,u=t.gridScale,a=f6(o,1,-1),l=Tet(t.offset,a);let c,f,x;const h={enter:c={opacity:bt},update:x={opacity:Oo},exit:f={opacity:bt}};Pr(h,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});const p={scale:t.scale,field:Ro,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=_r(o,{signal:"height"},{signal:"width"}),g=u?{scale:u,range:0,mult:a,offset:l}:{value:0,offset:l},y=u?{scale:u,range:1,mult:a,offset:l}:ft(m,{mult:a,offset:l});return c.x=x.x=_r(o,p,g),c.y=x.y=gu(o,p,g),c.x2=x.x2=gu(o,y),c.y2=x.y2=_r(o,y),f.x=_r(o,p),f.y=gu(o,p),Qs({type:mB,role:JXe,key:Ro,from:r,encode:h},n)}function Tet(t,e){if(e!==1)if(!He(t))t=sr(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ft({},t);for(;n.mult!=null;)if(He(n.mult))n=n.mult=ft({},n.mult);else return n.mult=sr(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function Ret(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=f6(u,-1,1);let l,c,f;const x={enter:l={opacity:bt},update:f={opacity:Oo},exit:c={opacity:bt}};Pr(x,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=Sr(i);h.mult=a;const p={scale:t.scale,field:Ro,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=_r(u,bt,p),f.y2=l.y2=_r(u,h),c.x=_r(u,p),f.x=l.x=gu(u,bt,p),f.x2=l.x2=gu(u,h),c.y=gu(u,p),Qs({type:mB,role:eJe,key:Ro,from:r,encode:x},n)}function CB(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function Oet(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=t.scale,l=f6(u,-1,1),c=Td(o("labelFlush")),f=Td(o("labelFlushOffset")),x=o("labelAlign"),h=o("labelBaseline");let p=c===0||!!c,m;const g=Sr(i);g.mult=l,g.offset=Sr(o("labelPadding")||0),g.offset.mult=l;const y={scale:a,field:Ro,band:.5,offset:Tue(s.offset,o("labelOffset"))},E=_r(u,p?CB(a,c,'"left"','"right"','"center"'):{value:"center"},het(u,"left","right")),A=_r(u,Uue(u,"bottom","top"),p?CB(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),v=CB(a,c,`-(${f})`,f,0);p=p&&f;const S={opacity:bt,x:_r(u,y,g),y:gu(u,y,g)},C={enter:S,update:m={opacity:Oo,text:{field:xB},x:S.x,y:S.y,align:E,baseline:A},exit:{opacity:bt,x:S.x,y:S.y}};Pr(C,{dx:!x&&p?_r(u,v):null,dy:!h&&p?gu(u,v):null}),Pr(C,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:x,baseline:h});const _=o("labelBound");let b=o("labelOverlap");return b=b||_?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:_?{scale:a,orient:u,tolerance:_}:null}:void 0,m.align!==E&&(m.align=F1(m.align,E)),m.baseline!==A&&(m.baseline=F1(m.baseline,A)),Qs({type:Od,role:ZXe,style:gE,key:Ro,from:r,encode:C,overlap:b},n)}function Net(t,e,n,r){const i=ys(t,e),s=t.orient,o=f6(s,-1,1);let u,a;const l={enter:u={opacity:bt,anchor:Sr(i("titleAnchor",null)),align:{signal:yB}},update:a=ft({},u,{opacity:Oo,text:Sr(t.title)}),exit:{opacity:bt}},c={signal:`lerp(range("${t.scale}"), ${u6(0,1,.5)})`};return a.x=_r(s,c),a.y=gu(s,c),u.angle=_r(s,bt,vet(o,90)),u.baseline=_r(s,Uue(s,Hc,pu),{value:Hc}),a.angle=u.angle,a.baseline=u.baseline,Pr(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),Det(i,s,l,n),l.update.align=F1(l.update.align,u.align),l.update.angle=F1(l.update.angle,u.angle),l.update.baseline=F1(l.update.baseline,u.baseline),Qs({type:Od,role:tJe,style:dB,from:r,encode:l},n)}function Det(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=F1(Sr(u),n.update[a]),!1):!T1(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?Sr(o):_r(e,Sr(o),Sr(s))}function Fet(t,e){const n=_et(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=ys(t,n),l=bZe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Xe(e.add(hu({},[c]))),x=Xe(e.add(BJe({scale:e.scaleRef(t.scale),extra:e.property(l.extra),count:e.objectProperty(t.tickCount),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)}))),h=[];let p;return c.grid&&h.push(bet(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(Ret(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(Oet(t,n,r.labels,x,p,l))),c.domain&&h.push(Cet(t,n,r.domain,f)),c.title&&h.push(Net(t,n,r.title,f)),c6(yE({role:KXe,from:f,encode:b1(wet(a,t),i,mE),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function wet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),offset:t("offset")||0,position:du(e.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${e.scale}")))`},translate:t("translate"),format:e.format,formatType:e.formatType}),n}function Gue(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>aue(s,e)),Pe(t.projections).forEach(s=>hZe(s,e)),i.forEach(s=>nZe(s,e)),Pe(t.data).forEach(s=>xet(s,e)),i.forEach(s=>rZe(s,e)),(n||r).forEach(s=>$Je(s,e)),Pe(t.axes).forEach(s=>Fet(s,e)),Pe(t.marks).forEach(s=>c6(s,e)),Pe(t.legends).forEach(s=>ZZe(s,e)),t.title&&oet(t.title,e),e.parseLambdas(),e}const Let=t=>b1({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function Iet(t,e){const n=e.config,r=Xe(e.root=e.add(e6())),i=$et(t,n);i.forEach(l=>aue(l,e)),e.description=t.description||n.description,e.eventConfig=n.events,e.legends=e.objectProperty(n.legend&&n.legend.layout),e.locale=n.locale;const s=e.add(hu()),o=e.add(hue(oue(Let(t.encode),o6,nB,t.style,e,{pulse:Xe(s)}))),u=e.add(mue({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Xe(o)}));e.operators.pop(),e.pushState(Xe(o),Xe(u),null),Gue(t,e,i),e.operators.push(u);let a=e.add(xue({mark:r,pulse:Xe(u)}));return a=e.add(gue({pulse:Xe(a)})),a=e.add(Rd({pulse:Xe(a)})),e.addData("root",new Nd(e,s,s,a)),e}function AE(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function $et(t,e){const n=o=>du(t[o],e[o]),r=[AE("background",n("background")),AE("autosize",WXe(n("autosize"))),AE("padding",YXe(n("padding"))),AE("width",n("width")||0),AE("height",n("height")||0)],i=r.reduce((o,u)=>(o[u.name]=u,o),{}),s={};return Pe(t.signals).forEach(o=>{Je(i,o.name)?o=ft(i[o.name],o):r.push(o),s[o.name]=o}),Pe(e.signals).forEach(o=>{!Je(s,o.name)&&!Je(i,o.name)&&r.push(o)}),r}function Wue(t,e){this.config=t||{},this.options=e||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function Vue(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}Wue.prototype=Vue.prototype={parse(t){return Gue(t,this)},fork(){return new Vue(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(e=>{e.$ref=t.id}),t.refs=null),t},proxy(t){const e=t instanceof sB?Xe(t):t;return this.add(KJe({value:e}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,e;this.root&&(this.root.root=!0);for(t in this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(r,i,s){let o,u;r&&(o=r.data||(r.data={}),u=o[i]||(o[i]=[]),u.push(s))}for(t in this.data){e=this.data[t],n(e.input,t,"input"),n(e.output,t,"output"),n(e.values,t,"values");for(const r in e.index)n(e.index[r],t,"index:"+r)}return this},pushState(t,e,n){this._encode.push(Xe(this.add(Rd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Xe(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return St(this._parent)},encode(){return St(this._encode)},lookup(){return St(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return hE(t,e);t.signal||Se("Unsupported field reference: "+we(t));const n=t.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};e&&(i.as=e),this.field[n]=r=Xe(this.add(jJe(i)))}return r},compareRef(t){let e=!1;const n=s=>sr(s)?(e=!0,this.signalRef(s.signal)):bJe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Xe(this.add(due({fields:r,orders:i}))):lue(r,i)},keyRef(t,e){let n=!1;const r=s=>sr(s)?(n=!0,Xe(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Xe(this.add(UJe({fields:t,flat:e}))):vJe(t,e)},sortRef(t){if(!t)return t;const e=t6(t.op,t.field),n=t.order||SJe;return n.signal?Xe(this.add(due({fields:e,orders:this.signalRef(n.signal)}))):lue(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:t,type:e}),this.events[n]=r}return this.events[n]},hasOwnSignal(t){return Je(this.signals,t)},addSignal(t,e){this.hasOwnSignal(t)&&Se("Duplicate signal name: "+we(t));const n=e instanceof sB?e:this.add(e6(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||Se("Unrecognized signal name: "+we(t)),this.signals[t]},signalRef(t){return this.signals[t]?Xe(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(e6(null))),Xe(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;e<n;++e){const r=t[e],i=La(r,this),s=this.lambdas[r];s.params=i.$params,s.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return!t||!He(t)?t:this.signalRef(t.signal||bB(t))},exprRef(t,e){const n={expr:La(t,this)};return e&&(n.expr.$name=e),Xe(this.add(PJe(n)))},addBinding(t,e){this.bindings||Se("Nested signals do not support binding: "+we(t)),this.bindings.push(ft({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&Se("Duplicate scale or projection name: "+we(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,JJe(e))},addProjection(t,e){this.addScaleProj(t,YJe(e))},getScale(t){return this.scales[t]||Se("Unrecognized scale name: "+we(t)),this.scales[t]},scaleRef(t){return Xe(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,e){return Je(this.data,t)&&Se("Duplicate data set name: "+we(t)),this.data[t]=e},getData(t){return this.data[t]||Se("Undefined data set name: "+we(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&Se("Duplicate data set name: "+we(t)),this.addData(t,Nd.fromEntries(this,e))}};function bB(t){return(_e(t)?Bet:ket)(t)}function Bet(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(He(i)?i.signal||bB(i):we(i))}return n+"]"}function ket(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+we(r)+":"+(He(i)?i.signal||bB(i):we(i));return e+"}"}function Pet(){const t="sans-serif",r="#4c78a8",i="#000",s="#888",o="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:t,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:t,fontSize:10},"guide-title":{fill:i,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:t,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:o},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:s,grid:!1,gridWidth:1,gridColor:o,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:s,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:o,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:s,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}function Yue(t,e,n){return He(t)||Se("Input Vega specification must be an object."),e=HF(Pet(),e,t.config),Iet(t,new Wue(e,n)).toRuntime()}ft(V3,UBe,yqe,Hqe,Oze,SQe,YGe,OGe,XGe,AWe,DWe,kWe);const vE={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Met(t){return t==="quantitative"||t==="temporal"}function Kue(t){return t==="ordinal"||t==="nominal"}const Fd=vE.quantitative,TB=vE.ordinal,L1=vE.temporal,RB=vE.nominal,I1=vE.geojson;function jet(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Fd:return"quantitative";case"t":case L1:return"temporal";case"o":case TB:return"ordinal";case"n":case RB:return"nominal";case I1:return"geojson"}}var Uet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Es={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",SYMLOG:"symlog",IDENTITY:"identity",SEQUENTIAL:"sequential",TIME:"time",UTC:"utc",QUANTILE:"quantile",QUANTIZE:"quantize",THRESHOLD:"threshold",BIN_ORDINAL:"bin-ordinal",ORDINAL:"ordinal",POINT:"point",BAND:"band"},OB={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function qet(t,e){const n=OB[t],r=OB[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const Het={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function Xue(t){return Het[t]}const Jue=new Set(["linear","log","pow","sqrt","symlog"]),Zue=new Set([...Jue,"time","utc"]);function eae(t){return Jue.has(t)}const tae=new Set(["quantile","quantize","threshold"]),zet=new Set([...Zue,...tae,"sequential","identity"]),Qet=new Set(["ordinal","bin-ordinal","point","band"]);function Cr(t){return Qet.has(t)}function Gs(t){return zet.has(t)}function mu(t){return Zue.has(t)}function $1(t){return tae.has(t)}const Get={pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4};function Wet(t){return!je(t)&&!!t.name}function nae(t){return t==null?void 0:t.param}function Vet(t){return t&&t.unionWith}function Yet(t){return He(t)&&"field"in t}const Ket=Uet({type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},["type","domain","range","rangeMax","rangeMin","scheme"]),Xet=Te(Ket);function NB(t,e){switch(e){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return mu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return mu(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"clamp":return mu(t);case"nice":return mu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return Gs(t)&&!Ct(["log","time","utc","threshold","quantile"],t)}}function rae(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return $2(t)?void 0:mwe(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}function Jet(t,e){return Ct([TB,RB],e)?t===void 0||Cr(t):e===L1?Ct([Es.TIME,Es.UTC,void 0],t):e===Fd?eae(t)||$1(t)||t===void 0:!0}function Zet(t,e,n=!1){if(!fc(t))return!1;switch(t){case En:case gr:case sc:case I2:case nu:case oa:return mu(e)||e==="band"?!0:e==="point"?!n:!1;case Ol:case ac:case Nl:case oc:case uc:case $x:return mu(e)||$1(e)||Ct(["band","point","ordinal"],e);case us:case la:case ca:return e!=="band";case lc:case as:return e==="ordinal"||$1(e)}}const Hi={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},iae=Hi.arc,x6=Hi.area,d6=Hi.bar,ett=Hi.image,h6=Hi.line,p6=Hi.point,ttt=Hi.rect,g6=Hi.rule,sae=Hi.text,DB=Hi.tick,ntt=Hi.trail,FB=Hi.circle,wB=Hi.square,oae=Hi.geoshape;function zc(t){return["line","area","trail"].includes(t)}function uae(t){return["rect","bar","image","arc"].includes(t)}const rtt=new Set(Te(Hi));function Ia(t){return t.type}const itt=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],stt=["fill","fillOpacity"],ott=[...itt,...stt],aae=Te({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),utt={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},att={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},lae=Te({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function B1(t){return t&&t.band!=null}const ltt={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},cae=5,ctt={binSpacing:1,continuousBandSize:cae,timeUnitBandPosition:.5},ftt={binSpacing:0,continuousBandSize:cae,timeUnitBandPosition:.5},xtt={thickness:1};function dtt(t){return Ia(t)?t.type:t}function LB(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=$B(t);return Ie(n)&&!xK(n.aggregate)&&i&&mu(i.get("type"))?htt({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function htt({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return zc(n.type)?r:It("invalid",n,i)===null?[ptt(t,e),r]:r}function ptt(t,e){const n=IB(t,!0),i=kx(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function IB(t,e=!0){return _8(je(t)?t:$e(t,{expr:"datum"}),!e)}function gtt(t){const{datum:e}=t;return jx(e)?T3(e):`${rn(e)}`}function wd(t,e,n,r){const i={};if(e&&(i.scale=e),Ba(t)){const{datum:s}=t;jx(s)?i.signal=T3(s):Ye(s)?i.signal=s.signal:b3(s)?i.signal=s.expr:i.value=s}else i.field=$e(t,n);if(r){const{offset:s,band:o}=r;s&&(i.offset=s),o&&(i.band=o)}return i}function m6({scaleName:t,fieldOrDatumDef:e,fieldOrDatumDef2:n,offset:r,startSuffix:i,bandPosition:s=.5}){const o=0<s&&s<1?"datum":void 0,u=$e(e,{expr:o,suffix:i}),a=n!==void 0?$e(n,{expr:o}):$e(e,{suffix:"end",expr:o}),l={};if(s===0||s===1){l.scale=t;const c=s===0?u:a;l.field=c}else{const c=Ye(s)?`${s.signal} * ${u} + (1-${s.signal}) * ${a}`:`${s} * ${u} + ${1-s} * ${a}`;l.signal=`scale("${t}", ${c})`}return r&&(l.offset=r),l}function $B({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l,bandPosition:c}){var f;if(e){if(st(e)){const x=o==null?void 0:o.get("type");if(No(e)){c??(c=Sae({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Kt(h)||c&&p&&m===L1)return u!=null&&u.impute?wd(e,s,{binSuffix:"mid"},{offset:a}):c&&!Cr(x)?m6({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):wd(e,s,bE(e,t)?{binSuffix:"range"}:{},{offset:a});if(Ti(h)){if(Ie(n))return m6({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Re(MK(t===En?tu:sa))}}return wd(e,s,Cr(x)?{binSuffix:"range"}:{},{offset:a,band:x==="band"?(f=c??e.bandPosition)!==null&&f!==void 0?f:.5:void 0})}else if(yu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},SE(t,x)),h)}}return ct(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function SE(t,e){return Ct(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:Ct(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:sn(e)}function Ld(t){return t&&t!=="number"&&t!=="time"}function fae(t,e,n){return`${t}(${e}${n?`, ${rn(n)}`:""})`}const mtt=" – ";function BB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if(Ld(n))return kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=xae(t,r,i);if(M1(t)){const l=Ett(a,Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Id(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===Es.UTC);return l?{signal:l}:void 0}if(e=pae(UB(t),e,s),Ie(t)&&Kt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:y6(a,l,e,n,s)}}else return e||UB(t)==="quantitative"?{signal:`${gae(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function xae(t,e,n){return Ie(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):gtt(t)}function kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=xae(t,r,i)),Ie(t)&&Kt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:y6(o,u,e,n,s)}}return{signal:fae(n,o,e)}}function dae(t,e,n,r,i,s){var o;if(!Ld(r)){if(M1(t)){const u=Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return ytt(n,u,i,s)}return pae(e,n,i)}}function hae(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(M1(e)&&n!=="time"&&n!=="utc")return"time"}function pae(t,e,n){if(je(e))return e;if(t===Fd)return n.numberFormat}function ytt(t,e,n,r){return t||(e?{signal:QK(e)}:r?void 0:n.timeFormat)}function gae(t,e){return`format(${t}, "${e||""}")`}function mae(t,e,n,r){var i;return Ld(n)?fae(n,t,e):gae(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function y6(t,e,n,r,i){const s=mae(t,n,r,i),o=mae(e,n,r,i);return`${_8(t,!1)} ? "null" : ${s} + "${mtt}" + ${o}`}function Ett(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):n9e(e,t,i)}const E6="min",Att={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function yae(t){return t in Att}function Eae(t){return!!t&&!!t.encoding}function $a(t){return!!t&&(t.op==="count"||!!t.field)}function Aae(t){return!!t&&_e(t)}function _E(t){return"row"in t||"column"in t}function PB(t){return!!t&&"header"in t}function A6(t){return"facet"in t}var MB=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function vtt(t){return t.param}function Stt(t){return t&&!je(t)&&"repeat"in t}function vae(t){const{field:e,timeUnit:n,bin:r,aggregate:i}=t;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),r?{bin:r}:{}),i?{aggregate:i}:{}),{field:e})}function jB(t){return"sort"in t}function Sae({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(st(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Ie(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return uae(n.type)?0:Mx("timeUnitBandPosition",n,r);if(Kt(s))return .5}}function _ae({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=ls(t),f=It(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Ie(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:Mx("timeUnitBandSize",r,i)};if(Kt(h)&&!Cr(s))return{band:1}}if(uae(r.type))return s?Cr(s)?((u=i[r.type])===null||u===void 0?void 0:u.discreteBandSize)||{band:1}:(a=i[r.type])===null||a===void 0?void 0:a.continuousBandSize:(l=i[r.type])===null||l===void 0?void 0:l.discreteBandSize}function Cae(t,e,n,r){return Kt(t.bin)||t.timeUnit&&No(t)&&t.type==="temporal"?Sae({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function v6(t){return t&&"condition"in t}function S6(t){const e=t&&t.condition;return!!e&&!_e(e)&&Ie(e)}function CE(t){const e=t&&t.condition;return!!e&&!_e(e)&&st(e)}function _tt(t){const e=t&&t.condition;return!!e&&(_e(e)||yu(e))}function Ie(t){return t&&(!!t.field||t.aggregate==="count")}function UB(t){return t&&t.type}function Ba(t){return t&&"datum"in t}function ka(t){return No(t)&&!_6(t)||qB(t)}function qB(t){return Ba(t)&&nn(t.datum)}function st(t){return Ie(t)||Ba(t)}function No(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function yu(t){return t&&"value"in t&&"value"in t}function Id(t){return t&&("scale"in t||"sort"in t)}function HB(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function bae(t){return t&&"legend"in t}function Tae(t){return t&&("format"in t||"formatType"in t)}function Ctt(t){return ho(t,["legend","axis","header","scale"])}function btt(t){return"op"in t}function $e(t,e={}){var n,r,i;let s=t.field;const o=e.prefix;let u=e.suffix,a="";if(Rtt(t))s=i8e("count");else{let l;if(!e.nofn)if(btt(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Kt(c)?(l=dK(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?xc(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):Fl(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=r9e(x),u=(!["range","mid"].includes(e.binSuffix)&&e.binSuffix||"")+((i=e.suffix)!==null&&i!==void 0?i:""))}l&&(s=s?`${l}_${s}`:l)}return u&&(s=`${s}_${u}`),o&&(s=`${o}_${s}`),e.forAs?eK(s):e.expr?e8e(s,e.expr)+a:eu(s)+a}function _6(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Ie(t)&&!!t.bin;case"temporal":return!1}throw new Error(LK(t.type))}function Ttt(t){var e;return Id(t)&&$1((e=t.scale)===null||e===void 0?void 0:e.type)}function Rtt(t){return t.aggregate==="count"}function Ott(t,e){var n;const{field:r,bin:i,timeUnit:s,aggregate:o}=t;if(o==="count")return e.countTitle;if(Kt(i))return`${r} (binned)`;if(s){const u=(n=Ri(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${p8(u).join("-")})`}else if(o)return xc(o)?`${r} for max ${o.argmax}`:Fl(o)?`${r} for min ${o.argmin}`:`${W5(o)} of ${r}`;return r}function Ntt(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(xc(e))return`${i} for argmax(${e.argmax})`;if(Fl(e))return`${i} for argmin(${e.argmin})`;const s=Ri(r),o=e||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Kt(n)&&"bin";return o?`${o.toUpperCase()}(${i})`:i}const Rae=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return Ntt(t);default:return Ott(t,e)}};let Oae=Rae;function Nae(t){Oae=t}function Dtt(){Nae(Rae)}function k1(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=zB(t))===null||i===void 0?void 0:i.title;if(!Ie(t))return o??t.title;const u=t,a=r?QB(u,e):void 0;return n?Zn(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function zB(t){if(HB(t)&&t.axis)return t.axis;if(bae(t)&&t.legend)return t.legend;if(PB(t)&&t.header)return t.header}function QB(t,e){return Oae(t,e)}function C6(t){var e;if(Tae(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=zB(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function Ftt(t,e){var n;switch(e){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(jB(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!xc(r)&&!Fl(r))return"quantitative";if(Id(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(OB[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Pa(t){if(Ie(t))return t;if(S6(t))return t.condition}function or(t){if(st(t))return t;if(CE(t))return t.condition}function Dae(t,e,n,r={}){if(je(t)||nn(t)||D2(t)){const i=je(t)?"string":nn(t)?"number":"boolean";return Re(iwe(e,i,t)),{value:t}}return st(t)?b6(t,e,n,r):CE(t)?Object.assign(Object.assign({},t),{condition:b6(t.condition,e,n,r)}):t}function b6(t,e,n,r){if(Tae(t)){const{format:i,formatType:s}=t,o=MB(t,["format","formatType"]);if(Ld(s)&&!n.customFormatTypes)return Re(wK(e)),b6(o,e,n,r)}else{const i=HB(t)?"axis":bae(t)?"legend":PB(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=MB(s,["format","formatType"]);if(Ld(u)&&!n.customFormatTypes)return Re(wK(e)),b6(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Ie(t)?GB(t,e,r):wtt(t)}function wtt(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=nn(n)?"quantitative":je(n)?"nominal":jx(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function GB(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!s8(r)&&!xc(r)&&!Fl(r)&&(Re(owe(r)),delete u.aggregate),i&&(u.timeUnit=Ri(i)),o&&(u.field=`${o}`),Kt(s)&&(u.bin=T6(s,e)),Ti(s)&&!Ir(e)&&Re(Mwe(e)),No(u)){const{type:a}=u,l=jet(a);a!==l&&(u.type=l),a!=="quantitative"&&xK(r)&&(Re(swe(a,r)),u.type="quantitative")}else if(!sK(e)){const a=Ftt(u,e);u.type=a}if(No(u)){const{compatible:a,warning:l}=Ltt(u,e)||{};a===!1&&Re(l)}if(jB(u)&&je(u.sort)){const{sort:a}=u;if(yae(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&yae(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(PB(u)){const{header:a}=u;if(a){const{orient:l}=a,c=MB(a,["orient"]);if(l)return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},c),{labelOrient:a.labelOrient||l,titleOrient:a.titleOrient||l})})}}return u}function T6(t,e){return D2(t)?{maxbins:hK(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:hK(e)}):t}const P1={compatible:!0};function Ltt(t,e){const n=t.type;if(n==="geojson"&&e!=="shape")return{compatible:!1,warning:`Channel ${e} should not be used with a geojson data.`};switch(e){case Cl:case bl:case Y5:return _6(t)?P1:{compatible:!1,warning:fwe(e)};case En:case gr:case sc:case I2:case us:case la:case ca:case S3:case C3:case K5:case Bx:case X5:case J5:case $x:case nu:case oa:case Z5:return P1;case aa:case po:case ua:case ru:return n!==Fd?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:P1;case Nl:case oc:case uc:case ac:case Ol:case Rl:case Tl:case tu:case sa:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:P1;case as:case lc:return!_6(t)&&!Ttt(t)?{compatible:!1,warning:xwe(e)}:P1;case _3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:P1}}function M1(t){const{formatType:e}=C6(t);return e==="time"||!e&&Itt(t)}function Itt(t){return t&&(t.type==="temporal"||Ie(t)&&!!t.timeUnit)}function R6(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=Ri(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return b3(t)?a=t.expr:Ye(t)?a=t.signal:jx(t)?(u=!0,a=T3(t)):(je(t)||nn(t))&&u&&(a=`datetime(${rn(t)})`,Jwe(o)&&(nn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=T3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:rn(t)}function Fae(t,e){const{type:n}=t;return e.map(r=>{const i=R6(r,{timeUnit:Ie(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function bE(t,e){return Kt(t.bin)?fc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const wae={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function TE(t){return t&&t.condition}const Lae=["domain","grid","labels","ticks","title"],$tt={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},Iae={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},Btt=Object.assign(Object.assign({},Iae),{style:1,labelExpr:1,encoding:1});function $ae(t){return!!Btt[t]}const Bae=Te({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function s0(t){return"mark"in t}class O6{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return s0(e)?dtt(e.mark)===this.name:!1}}var ktt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function $d(t,e){const n=t&&t[e];return n?_e(n)?w2(n,r=>!!r.field):Ie(n)||S6(n):!1}function kae(t,e){const n=t&&t[e];return n?_e(n)?w2(n,r=>!!r.field):Ie(n)||Ba(n)||CE(n):!1}function WB(t,e){if(Ir(e)){const n=t[e];if((Ie(n)||Ba(n))&&Kue(n.type)){const r=oK(e);return kae(t,r)}}return!1}function VB(t){return w2(c8e,e=>{if($d(t,e)){const n=t[e];if(_e(n))return w2(n,r=>!!r.aggregate);{const r=Pa(n);return r&&!!r.aggregate}}return!1})}function Pae(t,e){const n=[],r=[],i=[],s=[],o={};return YB(t,(u,a)=>{if(Ie(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=ktt(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=zB(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:k1(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(xc(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Fl(c)?(E="argmin",g=$e({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(E=c),E){const A={op:E,as:g};l&&(A.field=l),s.push(A)}}else if(n.push(g),No(u)&&Kt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),bE(u,a)&&n.push($e(u,{binSuffix:"range"})),Ir(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",sK(a)||(y.type=Fd)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=No(u)&&u.type!==L1&&"time";E&&(a===S3||a===Bx?y.formatType=E:A8e(a)?y.legend=Object.assign({formatType:E},y.legend):Ir(a)&&(y.axis=Object.assign({formatType:E},y.axis)))}o[a]=y}else n.push(l),o[a]=t[a]}else o[a]=t[a]}),{bins:r,timeUnits:i,aggregate:s,groupby:n,encoding:o}}function Ptt(t,e,n){const r=S8e(e,n);if(r){if(r==="binned"){const i=t[e===tu?En:gr];return!!(Ie(i)&&Ie(t[e])&&Ti(i.bin))}}else return!1;return!0}function Mtt(t,e,n,r){const i={};for(const s of Te(t))iK(s)||Re(cwe(s));for(let s of g8e){if(!t[s])continue;const o=t[s];if(B2(s)){const u=uK(s),a=i[u];if(Ie(a)){if(Met(a.type)&&Ie(o)){Re(nwe(u));continue}}else s=u,Re(rwe(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Re(twe),s=nu),!Ptt(t,s,e)){Re(iC(s,e));continue}if(s===Ol&&e==="line"){const u=Pa(t[s]);if(u!=null&&u.aggregate){Re(awe);continue}}if(s===us&&(n?"fill"in t:"stroke"in t)){Re(IK("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===C3||s===_3&&!_e(o)&&!yu(o)||s===Bx&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Ie(a)?u.push(GB(a,s)):Re(c8(a,s)),u),[]));else{if(s===Bx&&o===null)i[s]=null;else if(!Ie(o)&&!Ba(o)&&!yu(o)&&!v6(o)&&!Ye(o)){Re(c8(o,s));continue}i[s]=Dae(o,s,r)}}return i}function N6(t,e){const n={};for(const r of Te(t)){const i=Dae(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function jtt(t){const e=[];for(const n of Te(t))if($d(t,n)){const r=t[n],i=Pe(r);for(const s of i)Ie(s)?e.push(s):S6(s)&&e.push(s.condition)}return e}function YB(t,e,n){if(t)for(const r of Te(t)){const i=t[r];if(_e(i))for(const s of i)e.call(n,s,r);else e.call(n,i,r)}}function Utt(t,e,n,r){return t?Te(t).reduce((i,s)=>{const o=t[s];return _e(o)?o.reduce((u,a)=>e.call(r,u,a,s),i):e.call(r,i,o,s)},n):n}function Mae(t,e){return Te(e).reduce((n,r)=>{switch(r){case En:case gr:case X5:case Z5:case J5:case tu:case sa:case sc:case I2:case nu:case Rl:case oa:case Tl:case ua:case aa:case ru:case po:case S3:case as:case $x:case Bx:return n;case _3:if(t==="line"||t==="trail")return n;case C3:case K5:{const i=e[r];if(_e(i)||Ie(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Ol:if(t==="trail")return n;case us:case la:case ca:case Nl:case oc:case uc:case lc:case ac:{const i=Pa(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var jae=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function qtt(t){const{tooltip:e}=t,n=jae(t,["tooltip"]);if(!e)return{filteredEncoding:n};let r,i;if(_e(e)){for(const s of e)s.aggregate?(r||(r=[]),r.push(s)):(i||(i=[]),i.push(s));r&&(n.tooltip=r)}else e.aggregate?n.tooltip=e:i=e;return _e(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function KB(t,e,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:u})=>{const a=r?` of ${XB(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=jtt(n).map(Ctt);return{tooltip:[...i,..._l(s,_t)]}}function XB(t){const{title:e,field:n}=t;return Zn(e,n)}function JB(t,e,n,r,i){const{scale:s,axis:o}=n;return({partName:u,mark:a,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const x=XB(n);return Uae(t,u,i,{mark:a,encoding:Object.assign(Object.assign(Object.assign({[e]:Object.assign(Object.assign(Object.assign({field:`${l}_${n.field}`,type:n.type},x!==void 0?{title:x}:{}),s!==void 0?{scale:s}:{}),o!==void 0?{axis:o}:{})},je(c)?{[`${e}2`]:{field:`${c}_${n.field}`}}:{}),r),f)})}}function Uae(t,e,n,r){const{clip:i,color:s,opacity:o}=t,u=t.type;return t[e]||t[e]===void 0&&n[e]?[Object.assign(Object.assign({},r),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[e]),i?{clip:i}:{}),s?{color:s}:{}),o?{opacity:o}:{}),Ia(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),D2(t[e])?{}:t[e])})]:[]}function qae(t,e,n){const{encoding:r}=t,i=e==="vertical"?"y":"x",s=r[i],o=r[`${i}2`],u=r[`${i}Error`],a=r[`${i}Error2`];return{continuousAxisChannelDef:D6(s,n),continuousAxisChannelDef2:D6(o,n),continuousAxisChannelDefError:D6(u,n),continuousAxisChannelDefError2:D6(a,n),continuousAxis:i}}function D6(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=jae(t,["aggregate"]);return n!==e&&Re(Pwe(n,e)),r}else return t}function Hae(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(Ia(n)&&n.orient)return n.orient;if(ka(i)){if(ka(s)){const o=Ie(i)&&i.aggregate,u=Ie(s)&&s.aggregate;if(!o&&u===e)return"vertical";if(!u&&o===e)return"horizontal";if(o===e&&u===e)throw new Error("Both x and y cannot have aggregate");return M1(s)&&!M1(i)?"horizontal":"vertical"}return"horizontal"}else{if(ka(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var F6=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const w6="boxplot",Htt=["box","median","outliers","rule","ticks"],ztt=new O6(w6,Qae);function zae(t){return nn(t)?"tukey":t}function Qae(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:N6(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=F6(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(NK("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=It("size",l,e),x=zae(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:v,ticksOrient:S,boxOrient:C,customTooltipWithoutAggregatedField:_}=Qtt(t,c,e),{color:b,size:R}=v,O=F6(v,["color","size"]),L=J=>JB(l,y,g,J,e.boxplot),M=L(O),q=L(v),W=L(Object.assign(Object.assign({},O),R?{size:R}:{})),B=KB([{fieldPrefix:x==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:x==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,v),G={type:"tick",color:"black",opacity:1,orient:S,invalid:null,aria:!1},te=x==="min-max"?B:KB([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,v),X=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:te}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"lower_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"upper_whisker",extraEncoding:te})],de=[...x!=="tukey"?X:[],...q({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:C,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...W({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},He(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:S,aria:!1}),positionPrefix:"mid_box",extraEncoding:B})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:de});const be=`datum["lower_box_${g.field}"]`,ee=`datum["upper_box_${g.field}"]`,U=`(${ee} - ${be})`,T=`${be} - ${c} * ${U}`,w=`${ee} + ${c} * ${U}`,k=`datum["${g.field}"]`,z={joinaggregate:Gae(g.field),groupby:E},Y={transform:[{filter:`(${T} <= ${k}) && (${k} <= ${w})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${g.field}`},{op:"max",field:g.field,as:`upper_whisker_${g.field}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${g.field}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${g.field}`},...A],groupby:E}],layer:X},V=F6(O,["tooltip"]),{scale:D,axis:$}=g,j=XB(g),Q=ho($,["title"]),I=Uae(l,"outliers",e.boxplot,{transform:[{filter:`(${k} < ${T}) || (${k} > ${w})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},j!==void 0?{title:j}:{}),D!==void 0?{scale:D}:{}),Wt(Q)?{}:{axis:Q})},V),b?{color:b}:{}),_?{tooltip:_}:{})})[0];let H;const P=[...h,...p,z];return I?H={transform:P,layer:[I,Y]}:(H=Y,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:de}]})}function Gae(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function Qtt(t,e,n){const r=Hae(t,w6),{continuousAxisChannelDef:i,continuousAxis:s}=qae(t,r,w6),o=i.field,u=zae(e),a=[...Gae(o),{op:"median",field:o,as:`mid_box_${o}`},{op:"min",field:o,as:(u==="min-max"?"lower_whisker_":"min_")+o},{op:"max",field:o,as:(u==="min-max"?"upper_whisker_":"max_")+o}],l=u==="min-max"||u==="tukey"?[]:[{calculate:`datum["upper_box_${o}"] - datum["lower_box_${o}"]`,as:`iqr_${o}`},{calculate:`min(datum["upper_box_${o}"] + datum["iqr_${o}"] * ${e}, datum["max_${o}"])`,as:`upper_whisker_${o}`},{calculate:`max(datum["lower_box_${o}"] - datum["iqr_${o}"] * ${e}, datum["min_${o}"])`,as:`lower_whisker_${o}`}],c=t.encoding,f=s;c[f];const x=F6(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=qtt(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=Pae(p,n),v=r==="vertical"?"horizontal":"vertical",S=r,C=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:C,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:v,boxOrient:S,customTooltipWithoutAggregatedField:h}}var Wae=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ZB="errorbar",Gtt=["ticks","rule"],Wtt=new O6(ZB,Vae);function Vae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:N6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Yae(t,ZB,e);delete s.size;const c=JB(u,i,r,s,e.errorbar),f=u.thickness,x=u.size,h=Object.assign(Object.assign({type:"tick",orient:o,aria:!1},f!==void 0?{thickness:f}:{}),x!==void 0?{size:x}:{}),p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:Object.assign({type:"rule",ariaRoleDescription:"errorbar"},f!==void 0?{size:f}:{}),positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return Object.assign(Object.assign(Object.assign({},a),{transform:n}),p.length>1?{layer:p}:Object.assign({},p[0]))}function Vtt(t,e){const{encoding:n}=t;if(Ytt(n))return{orient:Hae(t,e),inputType:"raw"};const r=Ktt(n),i=Xtt(n),s=n.x,o=n.y;if(r){if(i)throw new Error(`${e} cannot be both type aggregated-upper-lower and aggregated-error`);const u=n.x2,a=n.y2;if(st(u)&&st(a))throw new Error(`${e} cannot have both x2 and y2`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(st(a)){if(ka(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${e}`)}throw new Error("No ranged axis")}else{const u=n.xError,a=n.xError2,l=n.yError,c=n.yError2;if(st(a)&&!st(u))throw new Error(`${e} cannot have xError2 without xError`);if(st(c)&&!st(l))throw new Error(`${e} cannot have yError2 without yError`);if(st(u)&&st(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(st(l)){if(ka(o))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function Ytt(t){return(st(t.x)||st(t.y))&&!st(t.x2)&&!st(t.y2)&&!st(t.xError)&&!st(t.xError2)&&!st(t.yError)&&!st(t.yError2)}function Ktt(t){return st(t.x2)||st(t.y2)}function Xtt(t){return st(t.xError)||st(t.xError2)||st(t.yError)||st(t.yError2)}function Yae(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=Wae(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(NK(e));const{orient:c,inputType:f}=Vtt(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=qae(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:v}=Jtt(l,x,h,p,m,f,e,n),S=s,C=g;S[C];const _=g==="x"?"x2":"y2";S[_];const b=g==="x"?"xError":"yError";S[b];const R=g==="x"?"xError2":"yError2";S[R];const O=Wae(S,[typeof C=="symbol"?C:C+"",typeof _=="symbol"?_:_+"",typeof b=="symbol"?b:b+"",typeof R=="symbol"?R:R+""]),{bins:L,timeUnits:M,aggregate:q,groupby:W,encoding:B}=Pae(O,n),G=[...q,...y],te=f!=="raw"?[]:W,X=KB(A,x,B,v);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...L,...M,...G.length===0?[]:[{aggregate:G,groupby:te}],...E],groupby:te,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:B,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:X}}function Jtt(t,e,n,r,i,s,o,u){let a=[],l=[];const c=e.field;let f,x=!1;if(s==="raw"){const h=t.center?t.center:t.extent?t.extent==="iqr"?"median":"mean":u.errorbar.center,p=t.extent?t.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&Re(kwe(h,p,o)),p==="stderr"||p==="stdev")a=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`datum["center_${c}"] + datum["extent_${c}"]`,as:`upper_${c}`},{calculate:`datum["center_${c}"] - datum["extent_${c}"]`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:W5(h)},{fieldPrefix:"upper_",titlePrefix:Kae(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:Kae(h,p,"-")}],x=!0;else{let m,g,y;p==="ci"?(m="mean",g="ci0",y="ci1"):(m="median",g="q1",y="q3"),a=[{op:g,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:m,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:k1({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:k1({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:k1({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Re(Bwe(t.center,t.extent)),s==="aggregated-upper-lower"?(f=[],l=[{calculate:`datum["${n.field}"]`,as:`upper_${c}`},{calculate:`datum["${c}"]`,as:`lower_${c}`}]):s==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`datum["${c}"] + datum["${r.field}"]`,as:`upper_${c}`}],i?l.push({calculate:`datum["${c}"] + datum["${i.field}"]`,as:`lower_${c}`}):l.push({calculate:`datum["${c}"] - datum["${r.field}"]`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:L2(L2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function Kae(t,e,n){return`${W5(t)} ${n} ${e}`}const ek="errorband",Ztt=["band","borders"],ent=new O6(ek,Xae);function Xae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:N6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Yae(t,ek,e),l=o,c=JB(l,i,r,s,e.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let x={type:f?"area":"rect"},h={type:f?"line":"rule"};const p=Object.assign(Object.assign({},l.interpolate?{interpolate:l.interpolate}:{}),l.tension&&l.interpolate?{tension:l.tension}:{});return f?(x=Object.assign(Object.assign(Object.assign({},x),p),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),p),{aria:!1})):l.interpolate?Re(PK("interpolate")):l.tension&&Re(PK("tension")),Object.assign(Object.assign({},u),{transform:n,layer:[...c({partName:"band",mark:x,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:a})]})}const Jae={};function tk(t,e,n){const r=new O6(t,e);Jae[t]={normalizer:r,parts:n}}function tnt(){return Te(Jae)}tk(w6,Qae,Htt),tk(ZB,Vae,Gtt),tk(ek,Xae,Ztt);const nnt=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Zae={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},ele={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},rnt=Te(Zae),int=Te(ele),tle=Te({header:1,headerRow:1,headerColumn:1,headerFacet:1}),nle=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],snt={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},ont={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},RE="_vgsid_",unt={point:{on:"click",fields:[RE],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function nk(t){return!!t&&(t==="legend"||!!t.legend)}function rk(t){return nk(t)&&He(t)}function ik(t){return!!t.select}var ant=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function rle(t){const e=[];for(const n of t||[]){if(ik(n))continue;const{expr:r,bind:i}=n,s=ant(n,["expr","bind"]);if(i&&r){const o=Object.assign(Object.assign({},s),{bind:i,init:r});e.push(o)}else{const o=Object.assign(Object.assign(Object.assign({},s),r?{update:r}:{}),i?{bind:i}:{});e.push(o)}}return e}function lnt(t){return L6(t)||ok(t)||sk(t)}function sk(t){return"concat"in t}function L6(t){return"vconcat"in t}function ok(t){return"hconcat"in t}function ile({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function Ma(t){return He(t)&&t.step!==void 0}function sle(t){return t.view||t.width||t.height}const ole=20,cnt=Te({align:1,bounds:1,center:1,columns:1,spacing:1});function fnt(t,e,n){var r,i;const s=n[e],o={},{spacing:u,columns:a}=s;u!==void 0&&(o.spacing=u),a!==void 0&&(A6(t)&&!_E(t.facet)||sk(t))&&(o.columns=a),L6(t)&&(o.columns=1);for(const l of cnt)if(t[l]!==void 0)if(l==="spacing"){const c=t[l];o[l]=nn(c)?c:{row:(r=c.row)!==null&&r!==void 0?r:u,column:(i=c.column)!==null&&i!==void 0?i:u}}else o[l]=t[l];return o}var xnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function uk(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function I6(t,e){const n=$6(t,e);return Ma(n)?n.step:ule}function $6(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return Zn(r,{step:t.step})}const ule=20,dnt={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:ule},mark:att,arc:{},area:{},bar:ctt,circle:{},geoshape:{},image:{},line:{},point:{},rect:ftt,rule:{color:"black"},square:{},text:{color:"black"},tick:xtt,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:Get,projection:{},legend:snt,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:unt,style:{},title:{},facet:{spacing:ole},concat:{spacing:ole}},o0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],ale={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},lle={blue:o0[0],orange:o0[1],red:o0[2],teal:o0[3],green:o0[4],yellow:o0[5],purple:o0[6],pink:o0[7],brown:o0[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function hnt(t={}){return{signals:[{name:"color",value:He(t)?Object.assign(Object.assign({},lle),t):lle}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}function pnt(t){return{signals:[{name:"fontSize",value:He(t)?Object.assign(Object.assign({},ale),t):ale}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}function gnt(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function cle(t){const e=Te(t||{}),n={};for(const r of e){const i=t[r];n[r]=TE(i)?gK(i):ks(i)}return n}function mnt(t){const e=Te(t),n={};for(const r of e)n[r]=cle(t[r]);return n}const ynt=[...lae,...Bae,...tle,"background","padding","legend","lineBreak","scale","style","title","view"];function fle(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=xnt(t,["color","font","fontSize","selection"]),o=HF({},ut(dnt),n?gnt(n):{},e?hnt(e):{},r?pnt(r):{},s||{});i&&k5(o,"selection",i,!0);const u=ho(o,ynt);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=ks(o[a]));for(const a of lae)o[a]&&(u[a]=cs(o[a]));for(const a of Bae)o[a]&&(u[a]=cle(o[a]));for(const a of tle)o[a]&&(u[a]=cs(o[a]));return o.legend&&(u.legend=cs(o.legend)),o.scale&&(u.scale=cs(o.scale)),o.style&&(u.style=mnt(o.style)),o.title&&(u.title=cs(o.title)),o.view&&(u.view=cs(o.view)),u}const Ent=new Set(["view",...rtt]),Ant=["color","fontSize","background","padding","facet","concat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],vnt=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},utt);function Snt(t){t=ut(t);for(const e of Ant)delete t[e];if(t.axis)for(const e in t.axis)TE(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of nnt)delete t.legend[e];if(t.mark){for(const e of aae)delete t.mark[e];t.mark.tooltip&&He(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(rle(t.params)),delete t.params);for(const e of Ent){for(const r of aae)delete t[e][r];const n=vnt[e];if(n)for(const r of n)delete t[e][r];Cnt(t,e)}for(const e of tnt())delete t[e];_nt(t);for(const e in t)He(t[e])&&Wt(t[e])&&delete t[e];return Wt(t)?void 0:t}function _nt(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=pK(t.title);Wt(e)||(t.style["group-title"]=Object.assign(Object.assign({},t.style["group-title"]),e)),Wt(n)||(t.style["group-subtitle"]=Object.assign(Object.assign({},t.style["group-subtitle"]),n)),Wt(r)?delete t.title:t.title=r}function Cnt(t,e,n,r){const i=r?t[e][r]:t[e];e==="view"&&(n="cell");const s=Object.assign(Object.assign({},i),t.style[n??e]);Wt(s)||(t.style[n??e]=s),r||delete t[e]}function B6(t){return"layer"in t}function bnt(t){return"repeat"in t}function Tnt(t){return!_e(t.repeat)&&t.repeat.layer}var Rnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class ak{map(e,n){return A6(e)?this.mapFacet(e,n):bnt(e)?this.mapRepeat(e,n):ok(e)?this.mapHConcat(e,n):L6(e)?this.mapVConcat(e,n):sk(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(B6(e))return this.mapLayer(e,n);if(s0(e))return this.mapUnit(e,n);throw new Error(a8(e))}mapLayer(e,n){return Object.assign(Object.assign({},e),{layer:e.layer.map(r=>this.mapLayerOrUnit(r,n))})}mapHConcat(e,n){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(r=>this.map(r,n))})}mapVConcat(e,n){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(r=>this.map(r,n))})}mapConcat(e,n){const{concat:r}=e,i=Rnt(e,["concat"]);return Object.assign(Object.assign({},i),{concat:r.map(s=>this.map(s,n))})}mapFacet(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}mapRepeat(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}}const Ont={zero:1,center:1,normalize:1};function Nnt(t){return t in Ont}const Dnt=new Set([iae,d6,x6,g6,p6,FB,wB,h6,sae,DB]),Fnt=new Set([d6,x6,iae]);function j1(t){return Ie(t)&&UB(t)==="quantitative"&&!t.bin}function xle(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Ie(s)&&Ie(o))if(j1(s)&&j1(o)){if(s.stack)return e;if(o.stack)return i;const u=Ie(s)&&!!s.aggregate,a=Ie(o)&&!!o.aggregate;if(u!==a)return u?e:i;{const l=(n=s.scale)===null||n===void 0?void 0:n.type,c=(r=o.scale)===null||r===void 0?void 0:r.type;if(l&&l!=="linear")return i;if(c&&c!=="linear")return e}}else{if(j1(s))return e;if(j1(o))return i}else{if(j1(s))return e;if(j1(o))return i}}function wnt(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function dle(t,e,n={}){var r,i;const s=Ia(t)?t.type:t;if(!Dnt.has(s))return null;const o=xle(e,"x")||xle(e,"theta");if(!o)return null;const u=e[o],a=Ie(u)?$e(u,{}):void 0,l=wnt(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Ie(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Ie(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=m8e.reduce((p,m)=>{if(m!=="tooltip"&&$d(e,m)){const g=e[m];for(const y of Pe(g)){const E=Pa(y);if(E.aggregate)continue;const A=$e(E,{});(!A||!f.has(A))&&p.push({channel:m,fieldDef:E})}}return p},[]);let h;if(u.stack!==void 0?D2(u.stack)?h=u.stack?"zero":null:h=u.stack:Fnt.has(s)&&(h="zero"),!h||!Nnt(h)||VB(e)&&x.length===0)return null;if(!((r=u==null?void 0:u.scale)===null||r===void 0)&&r.type&&((i=u==null?void 0:u.scale)===null||i===void 0?void 0:i.type)!==Es.LINEAR){if(n.disallowNonLinearStack)return null;Re(Lwe(u.scale.type))}return st(e[Dl(o)])?(u.stack!==void 0&&Re(wwe(o)),null):(Ie(u)&&u.aggregate&&!N8e.has(u.aggregate)&&Re(Iwe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:zc(s),stackBy:x,offset:h})}var hle=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Lnt(t){const e=hle(t,["point","line"]);return Te(e).length>1?e:e.type}function Int(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:ho(t[e],["point","line"])}));return t}function lk(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?He(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?He(e.point)?e.point:{}:void 0}function ple(t,e={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:e.line?e.line===!0?{}:e.line:void 0}class $nt{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(s0(e)){const{mark:r,encoding:i}=e,s=Ia(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!lk(s,n[s.type],i);case"area":return!!lk(s,n[s.type],i)||!!ple(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=hle(e,["params","projection","mark","encoding"]),c=N6(a,i),f=Ia(u)?u:{type:u},x=lk(f,i[f.type],c),h=f.type==="area"&&ple(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:Lnt(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:ho(c,["shape"])})],m=dle(f,c);let g=c;if(m){const{fieldChannel:y,offset:E}=m;g=Object.assign(Object.assign({},c),{[y]:Object.assign(Object.assign({},c[y]),E?{stack:E}:{})})}return h&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},E3(f,["clip","interpolate","tension","tooltip"])),h),encoding:g})),x&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},E3(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:Int(i)}))}}var Bnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function knt(t,e){return e?_E(t)?Ele(t,e):gle(t,e):t}function ck(t,e){return e?Ele(t,e):t}function fk(t,e,n){const r=e[t];if(Stt(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Re(V8e(r.repeat));return}return e}function gle(t,e){if(t=fk("field",t,e),t!==void 0){if(t===null)return null;if(jB(t)&&$a(t.sort)){const n=fk("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function mle(t,e){if(Ie(t))return gle(t,e);{const n=fk("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function yle(t,e){if(st(t)){const n=mle(t,e);if(n)return n;if(v6(t))return{condition:t.condition}}else{if(CE(t)){const n=mle(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):Bnt(t,["condition"])}return t}}function Ele(t,e){const n={};for(const r in t)if(Je(t,r)){const i=t[r];if(_e(i))n[r]=i.map(s=>yle(s,e)).filter(s=>s);else{const s=yle(i,e);s!==void 0&&(n[r]=s)}}return n}class Pnt{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(s0(e)){const{encoding:n,mark:r}=e;if(r==="line"||Ia(r)&&r.type==="line")for(const i of h8e){const s=kx(i),o=n[s];if(n[i]&&(Ie(o)&&!Ti(o.bin)||Ba(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Re(pwe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:He(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var Qc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Mnt extends ak{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[ztt,Wtt,ent,new $nt,new Pnt]}map(e,n){if(s0(e)){const r=$d(e.encoding,Cl),i=$d(e.encoding,bl),s=$d(e.encoding,Y5);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=ck(e.encoding,n.repeater),o=Object.assign(Object.assign({},e),s?{encoding:s}:{});if(r||i)return this.mapUnitWithParentEncodingOrProjection(o,n);const u=this.mapLayerOrUnit.bind(this);for(const a of this.nonFacetUnitNormalizers)if(a.hasMatchingType(o,n.config))return a.run(o,n,u);return o}mapRepeat(e,n){return Tnt(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=Qc(e,["repeat","spec"]),{row:o,column:u,layer:a}=r,{repeater:l={},repeaterPrefix:c=""}=n;return o||u?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),u?{column:u}:{}),spec:{repeat:{layer:a},spec:i}}),n):Object.assign(Object.assign({},s),{layer:a.map(f=>{const x=Object.assign(Object.assign({},l),{layer:f}),h=`${(i.name||"")+c}child__layer_${yn(f)}`,p=this.mapLayerOrUnit(i,Object.assign(Object.assign({},n),{repeater:x,repeaterPrefix:h}));return p.name=h,p})})}mapNonLayerRepeat(e,n){var r;const{repeat:i,spec:s,data:o}=e,u=Qc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=ho(e,["columns"]),Re(DK("repeat")));const a=[],{repeater:l={},repeaterPrefix:c=""}=n,f=!_e(i)&&i.row||[l?l.row:null],x=!_e(i)&&i.column||[l?l.column:null],h=_e(i)&&i||[l?l.repeat:null];for(const m of h)for(const g of f)for(const y of x){const E={repeat:m,row:g,column:y,layer:l.layer},A=(s.name||"")+c+"child__"+(_e(i)?`${yn(m)}`:(i.row?`row_${yn(g)}`:"")+(i.column?`column_${yn(y)}`:"")),v=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));v.name=A,a.push(ho(v,["data"]))}const p=_e(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:(r=s.data)!==null&&r!==void 0?r:o,align:"all"},u),{columns:p,concat:a})}mapFacet(e,n){const{facet:r}=e;return _E(r)&&e.columns&&(e=ho(e,["columns"]),Re(DK("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=vle({parentProjection:o,projection:i}),l=Ale({parentEncoding:s,encoding:ck(r,n.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),l?{encoding:l}:{}),{config:u})}mapFacetedUnit(e,n){const r=e.encoding,{row:i,column:s,facet:o}=r,u=Qc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=Qc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=ck(u,n.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},m),y),{facet:g,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l?{width:l}:{}),f?{height:f}:{}),x?{view:x}:{}),c?{projection:c}:{}),{mark:a,encoding:E}),h?{params:h}:{})}),n)}getFacetMappingAndLayout(e,n){var r;const{row:i,column:s,facet:o}=e;if(i||s){o&&Re(dwe([...i?[Cl]:[],...s?[bl]:[]]));const u={},a={};for(const l of[Cl,bl]){const c=e[l];if(c){const f=Qc(c,["align","center","spacing","columns"]);u[l]=f;for(const x of["align","center","spacing"])c[x]!==void 0&&((r=a[x])!==null&&r!==void 0||(a[x]={}),a[x][l]=c[x])}}return{facetMapping:u,layout:a}}else{const{align:u,center:a,spacing:l,columns:c}=o,f=Qc(o,["align","center","spacing","columns"]);return{facetMapping:knt(f,n.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},u?{align:u}:{}),a?{center:a}:{}),l?{spacing:l}:{}),c?{columns:c}:{})}}}mapLayer(e,n){var{parentEncoding:r,parentProjection:i}=n,s=Qc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=Qc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:Ale({parentEncoding:r,encoding:o,layer:!0}),parentProjection:vle({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function Ale({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...Te(t),...Te(e)]);for(const s of i){const o=e[s],u=t[s];if(st(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else CE(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||yu(u)||Ye(u)||st(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Wt(r)?void 0:r}function vle(t){const{parentProjection:e,projection:n}=t;return e&&n&&Re(ewe({parentProjection:e,projection:n})),n??e}function xk(t){return"filter"in t}function jnt(t){return(t==null?void 0:t.stop)!==void 0}function Sle(t){return"lookup"in t}function Unt(t){return"data"in t}function qnt(t){return"param"in t}function Hnt(t){return"pivot"in t}function znt(t){return"density"in t}function Qnt(t){return"quantile"in t}function Gnt(t){return"regression"in t}function Wnt(t){return"loess"in t}function Vnt(t){return"sample"in t}function Ynt(t){return"window"in t}function Knt(t){return"joinaggregate"in t}function Xnt(t){return"flatten"in t}function Jnt(t){return"calculate"in t}function _le(t){return"bin"in t}function Znt(t){return"impute"in t}function ert(t){return"timeUnit"in t}function trt(t){return"aggregate"in t}function nrt(t){return"stack"in t}function rrt(t){return"fold"in t}function irt(t){return t.map(e=>xk(e)?{filter:F2(e.filter,u9e)}:e)}var Gc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class srt extends ak{map(e,n){var r,i;return(r=n.emptySelections)!==null&&r!==void 0||(n.emptySelections={}),(i=n.selectionPredicates)!==null&&i!==void 0||(n.selectionPredicates={}),e=Cle(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=Cle(e,n),e.encoding){const r={};for(const[i,s]of Ix(e.encoding))r[i]=ble(s,n);e=Object.assign(Object.assign({},e),{encoding:r})}return super.mapLayerOrUnit(e,n)}mapUnit(e,n){const r=e,{selection:i}=r,s=Gc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:Ix(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Gc(l,["init","bind","empty"]);h.type==="single"?(h.type="point",h.toggle=!1):h.type==="multi"&&(h.type="point"),n.emptySelections[o]=x!=="none";for(const p of bi((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function Cle(t,e){const{transform:n}=t,r=Gc(t,["transform"]);if(n){const i=n.map(s=>{if(xk(s))return{filter:dk(s,e)};if(_le(s)&&Px(s.bin))return Object.assign(Object.assign({},s),{bin:Tle(s.bin)});if(Sle(s)){const o=s.from,{selection:u}=o,a=Gc(o,["selection"]);return u?Object.assign(Object.assign({},s),{from:Object.assign({param:u},a)}):s}return s});return Object.assign(Object.assign({},r),{transform:i})}return t}function ble(t,e){var n,r;const i=ut(t);if(Ie(i)&&Px(i.bin)&&(i.bin=Tle(i.bin)),Id(i)&&(!((r=(n=i.scale)===null||n===void 0?void 0:n.domain)===null||r===void 0)&&r.selection)){const s=i.scale.domain,{selection:o}=s,u=Gc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(v6(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Gc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:dk(s,e)})});else{const s=ble(i.condition,e),{selection:o,param:u,test:a}=s,l=Gc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:dk(i.condition,e)})}return i}function Tle(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Gc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function dk(t,e){const n=r=>F2(r,i=>{var s,o,u;const a=(s=e.emptySelections[i])!==null&&s!==void 0?s:!0,l={param:i,empty:a};return(o=(u=e.selectionPredicates)[i])!==null&&o!==void 0||(u[i]=[]),e.selectionPredicates[i].push(l),l});return t.selection?n(t.selection):F2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class hk extends ak{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!s0(e)){const s=[];for(const o of e.params)ik(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,Rle(e,n))}mapUnit(e,n){var r;const i=n.selections;if(!i||!i.length)return e;const s=((r=n.path)!==null&&r!==void 0?r:[]).concat(e.name),o=[];for(const u of i)if(!u.views||!u.views.length)o.push(u);else for(const a of u.views)(je(a)&&(a===e.name||s.indexOf(a)>=0)||_e(a)&&a.map(l=>s.indexOf(l)).every((l,c,f)=>l!==-1&&(c===0||l>f[c-1])))&&o.push(u);return o.length&&(e.params=o),e}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=hk.prototype[t];hk.prototype[t]=function(n,r){return e.call(this,n,Rle(n,r))}}function Rle(t,e){var n;return t.name?Object.assign(Object.assign({},e),{path:((n=e.path)!==null&&n!==void 0?n:[]).concat(t.name)}):e}function ort(t,e){e===void 0&&(e=fle(t.config));const n=crt(t,e),{width:r,height:i}=t,s=frt(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const urt=new Mnt,art=new srt,lrt=new hk;function crt(t,e={}){const n={config:e};return lrt.map(urt.map(art.map(t,n),n),n)}function Ole(t){return je(t)?{type:t}:t??{}}function frt(t,e,n){let{width:r,height:i}=e;const s=s0(t)||B6(t),o={};s?r=="container"&&i=="container"?(o.type="fit",o.contains="padding"):r=="container"?(o.type="fit-x",o.contains="padding"):i=="container"&&(o.type="fit-y",o.contains="padding"):(r=="container"&&(Re(bK("width")),r=void 0),i=="container"&&(Re(bK("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?Ole(n.autosize):{}),Ole(t.autosize));if(u.type==="fit"&&!s&&(Re(P8e),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Re(TK("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Re(TK("height")),!Sl(u,{type:"pad"}))return u}function xrt(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function drt(t){return t?`fit-${eC(t)}`:"fit"}const hrt=["background","padding"];function Nle(t,e){const n={};for(const r of hrt)t&&t[r]!==void 0&&(n[r]=ks(t[r]));return e&&(n.params=t.params),n}class u0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new u0(ut(this.explicit),ut(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return Zn(this.explicit[e],this.implicit[e])}getWithExplicit(e){return this.explicit[e]!==void 0?{explicit:!0,value:this.explicit[e]}:this.implicit[e]!==void 0?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:n,explicit:r}){n!==void 0&&this.set(e,n,r)}set(e,n,r){return delete this[r?"implicit":"explicit"][e],this[r?"explicit":"implicit"][e]=n,this}copyKeyFromSplit(e,{explicit:n,implicit:r}){n[e]!==void 0?this.set(e,n[e],!0):r[e]!==void 0&&this.set(e,r[e],!1)}copyKeyFromObject(e,n){n[e]!==void 0&&this.set(e,n[e],!0)}copyAll(e){for(const n of Te(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function ja(t){return{explicit:!0,value:t}}function Ws(t){return{explicit:!1,value:t}}function Dle(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:k6(e,n,r,i)}}function k6(t,e,n,r){return t.explicit&&e.explicit&&Re(bwe(n,r,t.value,e.value)),t}function Wc(t,e,n,r,i=k6){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Sl(t.value,e.value)?t:i(t,e,n,r)}class prt extends u0{constructor(e={},n={},r=!1){super(e,n),this.explicit=e,this.implicit=n,this.parseNothing=r}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function U1(t){return"url"in t}function OE(t){return"values"in t}function Fle(t){return"name"in t&&!U1(t)&&!OE(t)&&!Vc(t)}function Vc(t){return t&&(wle(t)||Lle(t)||pk(t))}function wle(t){return"sequence"in t}function Lle(t){return"sphere"in t}function pk(t){return"graticule"in t}var Jt;(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup"})(Jt||(Jt={}));var grt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function q1(t,e=!0,n=Si){if(_e(t)){const r=t.map(i=>q1(i,e,n));return e?`[${r.join(", ")}]`:r}else if(jx(t))return n(e?T3(t):Kwe(t));return e?n(rn(t)):t}function mrt(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${Xc}, ${r.resolve==="global"?"true":`{unit: ${Q1(t)}}`}`;for(const o of q6)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+Krt,on:[{events:{signal:r.name+Xc},update:`modify(${we(r.name+Bd)}, ${s})`}]})}return gk(e)}function yrt(t,e){if(t.component.selection&&Te(t.component.selection).length){const n=we(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:bd("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return gk(e)}function Ert(t,e){var n;let r=!1;for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=we(s+Bd);if(e.filter(a=>a.name===s).length===0){const a=i.resolve==="global"?"union":i.resolve,l=i.type==="point"?", true, true)":")";e.push({name:i.name,update:`${n0e}(${o}, ${we(a)}${l}`})}r=!0;for(const a of q6)a.defined(i)&&a.topLevelSignals&&(e=a.topLevelSignals(t,i,e))}return r&&e.filter(s=>s.name==="unit").length===0&&e.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),gk(e)}function Art(t,e){var n;const r=[...e];for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+Bd};if(i.init){const u=i.project.items.map(a=>grt(a,["signals"]));s.values=i.init.map(a=>({unit:Q1(t,{escape:!1}),fields:u,values:q1(a,!1)}))}r.filter(u=>u.name===i.name+Bd).length||r.push(s)}return r}function Ile(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of q6)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function vrt(t,e){for(const n of t.children)Qn(n)&&(e=Ile(n,e));return e}function Srt(t,e,n,r){const i=u0e(t,e.param,e);return{signal:Gs(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function gk(t){return t.map(e=>(e.on&&!e.on.length&&delete e.on,e))}class Ut{constructor(e,n){this.debugName=n,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,n){if(this._children.includes(e)){Re(X8e);return}n!==void 0?this._children.splice(n,0,e):this._children.push(e)}removeChild(e){const n=this._children.indexOf(e);return this._children.splice(n,1),n}remove(){let e=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,e++)}insertAsParentOf(e){const n=e.parent;n.removeChild(this),this.parent=n,e.parent=this}swapWithParent(){const e=this._parent,n=e.parent;for(const r of this._children)r.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=n,e.parent=this}}class zi extends Ut{constructor(e,n,r,i){super(e,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${r8e()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var $le=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Ua extends Ut{constructor(e,n){super(e),this.formula=n}clone(){return new Ua(null,ut(this.formula))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s)=>{const{field:o,timeUnit:u}=s;if(u){const a=$e(s,{forAs:!0});i[_t({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Wt(r)?null:new Ua(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=$le(r,["timeUnit"]),o=Ri(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new Ua(e,{[_t(u)]:u})}merge(e){this.formula=Object.assign({},this.formula);for(const n in e.formula)this.formula[n]||(this.formula[n]=e.formula[n]);for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}removeFormulas(e){const n={};for(const[r,i]of Ix(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set(bi(this.formula).map(e=>e.as))}dependentFields(){return new Set(bi(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${_t(this.formula)}`}assemble(){const e=[];for(const n of bi(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=Ri(s),{unit:u,utc:a}=o,l=$le(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:eu(r),type:"timeunit"},u?{units:p8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var _rt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const NE="_tuple_fields";class Crt{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const brt={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new Crt,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=yn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=yn(`${i}_${y}_${A}`);return a.add(E),{[g]:E}},c=e.type,f=t.config.selection[c],x=n.value!==void 0?Pe(n.value):null;let{fields:h,encodings:p}=He(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(He(m))for(const g of Te(m))d8e(g)?(p||(p=[])).push(g):c==="interval"?(Re(W8e),p=f.encodings):(h||(h=[])).push(g)}!h&&!p&&(p=f.encodings,"fields"in f&&(h=f.fields));for(const m of p??[]){const g=t.fieldDef(m);if(g){let y=g.field;if(g.aggregate){Re(M8e(m,g.aggregate));continue}else if(!y){Re(OK(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[_t(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const v=t.getScaleComponent(m).get("type");Gs(v)&&(E="R")}else g.bin&&(E="R-RE");const A={field:y,channel:m,type:E};A.signals=Object.assign(Object.assign({},l(A,"data")),l(A,"visual")),s.items.push(o[y]=A),s.hasField[y]=s.hasChannel[m]=o[y]}}else Re(OK(m))}for(const m of h??[]){if(s.hasField[m])continue;const g={type:"E",field:m};g.signals=Object.assign({},l(g,"data")),s.items.push(g),s.hasField[m]=g}x&&(e.init=x.map(m=>s.items.map(g=>He(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Wt(u)||(s.timeUnit=new Ua(null,u))},signals:(t,e,n)=>{const r=e.name+NE;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=_rt(s,["signals","hasLegend"]);return o.field=eu(o.field),o})})}},Yc={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,e)=>{const n=e.scales=[];for(const r of e.project.items){const i=r.channel;if(!fc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!Gs(o)){Re(q8e);continue}s.set("selectionExtent",{param:e.name,field:r.field},!0),n.push(r)}},topLevelSignals:(t,e,n)=>{const r=e.scales.filter(o=>n.filter(u=>u.name===o.signals.data).length===0);if(!t.parent||yk(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(n0e)>=0)i.update=`{${r.map(o=>`${we(eu(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${we(eu(o.field))}: ${o.signals.data}`;s.includes(u)||(s=`${s.substring(0,s.length-1)}, ${u}}`)}i.update=s}return n.concat(r.map(o=>({name:o.signals.data})))},signals:(t,e,n)=>{if(t.parent&&!yk(t))for(const r of e.scales){const i=n.filter(s=>s.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function mk(t,e){return`domain(${we(t.scaleName(e))})`}function yk(t){var e;return t.parent&&J1(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:yk(t.parent.parent))}var Trt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const H1="_brush",Ek="_scale_trigger",Rrt={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+NE,s=Yc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${we(r+H1)}`;Ble(e,(f,x)=>{var h,p;const m=Pe((h=(p=x.between[0]).filter)!==null&&h!==void 0?h:p.filter=[]);return m.includes(c)||m.push(c),f})}e.project.items.forEach((c,f)=>{const x=c.channel;if(x!==En&&x!==gr){Re("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=Ort(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=we(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=Gs(E)?"+":"";n.push(...p),u.push(m),a.push({scaleName:t.scaleName(x),expr:`(!isArray(${m}) || (${A}invert(${y}, ${g})[0] === ${A}${m}[0] && ${A}invert(${y}, ${g})[1] === ${A}${m}[1]))`})}),!s&&a.length&&n.push({name:r+Ek,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+Ek} : {}`}]});const l=`unit: ${Q1(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+Xc},o?{init:`{${l}: ${q1(o)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${l}: [${u}]} : null`}]}:{}))},marks:(t,e,n)=>{const r=e.name,{x:i,y:s}=e.project.hasChannel,o=i==null?void 0:i.signals.visual,u=s==null?void 0:s.signals.visual,a=`data(${we(e.name+Bd)})`;if(Yc.defined(e)||!i&&!s)return n;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:s!==void 0?{signal:`${u}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:s!==void 0?{signal:`${u}[1]`}:{field:{group:"height"}}};if(e.resolve==="global")for(const g of Te(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${Q1(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=Trt(c,["fill","fillOpacity","cursor"]),m=Te(p).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,s!==void 0&&`${u}[0] !== ${u}[1]`].filter(E=>E).join(" && "),value:p[y]},{value:null}],g),{});return[{name:`${r+H1}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+H1,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function Ort(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=Yc.defined(e),a=we(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===En?"width":"height").signal,h=`${i}(unit)`,p=Ble(e,(m,g)=>[...m,{events:g.between[0],update:`[${h}, ${h}]`},{events:g,update:`[${s}[0], clamp(${h}, 0, ${x})]`}]);return p.push({events:{signal:e.name+Ek},update:Gs(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:q1(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:q1(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function Ble(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Re(`${r} is not an ordered event stream for interval selections.`),n),[])}const Nrt={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+NE,o=e.project,u="(item().isVoronoi ? datum.datum : datum)",a=o.items.map(h=>{const p=t.fieldDef(h.channel);return p!=null&&p.bin?`[${u}[${we(t.vgField(h.channel,{}))}], ${u}[${we(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${we(h.field)}]`}).join(", "),l=`unit: ${Q1(t)}, fields: ${s}, values`,c=e.events,f=bi((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+H1):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+Xc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function z1(t,e,n,r){const i=v6(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(vtt(a)){const{param:c,empty:f}=a,x=o0e(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=H6(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function Ak(t,e="text"){const n=t.encoding[e];return z1(t,n,e,r=>P6(r,t.config))}function P6(t,e,n="datum"){if(t){if(yu(t))return sn(t.value);if(st(t)){const{format:r,formatType:i}=C6(t);return BB({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function kle(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Mle({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return z1(t,o,"tooltip",a=>{const l=P6(a,i,u);if(l)return l;if(a===null)return;let c=It("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(He(c))return Ye(c)?c:c.content==="encoding"?Mle(n,s,i,e):{signal:u}})}}function Ple(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=kx(c),x=No(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||QB(x,n),p=Pe(h).join(", ");let m;if(Ir(c)){const g=c==="x"?"x2":"y2",y=Pa(t[g]);if(Ti(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:v,formatType:S}=C6(x);m=y6(E,A,v,S,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=C6(x);m=BB({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=P6(x,n,s).signal),o.push({channel:c,key:p,value:m})}YB(t,(l,c)=>{Ie(l)?u(l,c):S6(l)&&u(l.condition,c)});const a={};for(const{channel:l,key:c,value:f}of o)!i[l]&&!a[c]&&(a[c]=f);return a}function Mle(t,e,n,{reactiveGeom:r}={}){const i=Ple(t,e,n,{reactiveGeom:r}),s=Ix(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function Drt(t){const{markDef:e,config:n}=t,r=It("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),Frt(t)),wrt(t))}function Frt(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=It("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in $8e?{}:{ariaRoleDescription:{value:e}}}function wrt(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return z1(t,s,"description",a=>P6(a,t.config));const o=It("description",n,r);if(o!=null)return{description:sn(o)};if(r.aria===!1)return{};const u=Ple(e,i,r);if(!Wt(u))return{description:{signal:Ix(u).map(([a,l],c)=>`"${c>0?"; ":""}${a}: " + (${l})`).join(" + ")}}}function br(t,e,n={}){const{markDef:r,encoding:i,config:s}=e,{vgChannel:o}=n;let{defaultRef:u,defaultValue:a}=n;u===void 0&&(a??(a=It(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=sn(a)));const l=i[t];return z1(e,l,o??t,c=>$B({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function jle(t,e={filled:void 0}){var n,r,i,s;const{markDef:o,encoding:u,config:a}=t,{type:l}=o,c=(n=e.filled)!==null&&n!==void 0?n:It("filled",o,a),f=Ct(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=It(c===!0?"color":void 0,o,a,{vgChannel:"fill"}))!==null&&r!==void 0?r:a.mark[c===!0&&"color"])!==null&&i!==void 0?i:f,h=(s=It(c===!1?"color":void 0,o,a,{vgChannel:"stroke"}))!==null&&s!==void 0?s:a.mark[c===!1&&"color"],p=c?"fill":"stroke",m=Object.assign(Object.assign({},x?{fill:sn(x)}:{}),h?{stroke:sn(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Re(IK("property",{fill:"fill"in o,stroke:"stroke"in o})),Object.assign(Object.assign(Object.assign(Object.assign({},m),br("color",t,{vgChannel:p,defaultValue:c?x:h})),br("fill",t,{defaultValue:u.fill?x:void 0})),br("stroke",t,{defaultValue:u.stroke?h:void 0}))}function Lrt(t){const{encoding:e,mark:n}=t,r=e.order;return!zc(n)&&yu(r)?z1(t,r,"zindex",i=>sn(i.value)):{}}function DE({channel:t,markDef:e,encoding:n={},model:r,bandPosition:i}){const s=`${t}Offset`,o=e[s],u=n[s];if((s==="xOffset"||s==="yOffset")&&u)return{offsetType:"encoding",offset:$B({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:sn(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ui(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[Dl(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=DE({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=vk({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&Ir(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:Irt({channel:t,channelDef:a,channel2Def:l,markDef:s,config:o,scaleName:c,scale:f,stack:u,offset:x,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function Irt(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(st(n)&&i&&e===i.fieldChannel){if(Ie(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return m6({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return wd(n,r,{suffix:"end"},{offset:s})}return LB(t)}function vk({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=kx(n),a=cc(n),l=It(n,s,o,{vgChannel:a});if(l!==void 0)return SE(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!Ct([Es.LOG,Es.TIME,Es.UTC],c)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(e==="zeroOrMin")return u==="y"?{field:{group:"height"}}:{value:0};switch(u){case"radius":return{signal:`min(${t.width.signal},${t.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const c=t[ls(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const $rt={left:"x",center:"xc",right:"x2"},Brt={top:"y",middle:"yc",bottom:"y2"};function Ule(t,e,n,r="middle"){if(t==="radius"||t==="theta")return cc(t);const i=t==="x"?"align":"baseline",s=It(i,e,n);let o;return Ye(s)?(Re(hwe(i)),o=void 0):o=s,t==="x"?$rt[o||(r==="top"?"left":"center")]:Brt[o||r]}function M6(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?qle(t,e,{defaultPos:n,defaultPos2:r}):ui(t,e,{defaultPos:n})}function qle(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=Dl(t),u=ls(t),a=krt(e,r,o),l=a[u]?Ule(t,i,s):cc(t);return Object.assign(Object.assign({},ui(t,e,{defaultPos:n,vgChannel:l})),a)}function krt(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=kx(n),l=ls(n),c=cc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?DE({channel:n,markDef:s,encoding:r,model:t}):DE({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=ls(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=Prt({channel:n,channelDef:f,channel2Def:r[n],markDef:s,config:u,scaleName:x,scale:h,stack:o,offset:p,defaultRef:void 0});return m!==void 0?{[c]:m}:j6(n,s)||j6(n,{[n]:rC(n,s,u.style),[l]:rC(l,s,u.style)})||j6(n,u[i])||j6(n,u.mark)||{[c]:vk({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function Prt({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return st(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?wd(e,s,{suffix:"start"},{offset:a}):LB({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function j6(t,e){const n=ls(t),r=cc(t);if(e[r]!==void 0)return{[r]:SE(t,e[r])};if(e[t]!==void 0)return{[r]:SE(t,e[t])};if(e[n]){const i=e[n];if(B1(i))Re(uwe(n));else return{[n]:SE(t,i)}}}function Kc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=Dl(e),l=ls(e),c=s[e],f=s[a],x=t.getScaleComponent(e),h=x?x.get("type"):void 0,p=o.orient,m=(r=(n=s[l])!==null&&n!==void 0?n:s.size)!==null&&r!==void 0?r:It("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Ie(c)&&(Kt(c.bin)||Ti(c.bin)||c.timeUnit&&!f)&&!(m&&!B1(m))&&!Cr(h)?Urt({fieldDef:c,fieldDef2:f,channel:e,model:t}):(st(c)&&Cr(h)||g)&&!f?jrt(c,e,t):qle(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function Mrt(t,e,n,r,i){if(B1(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Re(ywe(o)),i=void 0)}else return{mult:i.band,field:{group:t}};else{if(Ye(i))return i;if(i)return{value:i}}if(n){const o=n.get("range");if(hc(o)&&nn(o.step))return{value:o.step-2}}return{value:I6(r.view,t)-2}}function jrt(t,e,n){const{markDef:r,encoding:i,config:s,stack:o}=n,u=r.orient,a=n.scaleName(e),l=n.getScaleComponent(e),c=ls(e),f=Dl(e),x=p8e(e),h=n.scaleName(x),p=u==="horizontal"&&e==="y"||u==="vertical"&&e==="x";let m;(i.size||r.size)&&(p?m=br("size",n,{vgChannel:c,defaultRef:sn(r.size)}):Re(Swe(r.type)));const g=_ae({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:Mrt(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=Ule(e,r,s,y),A=E==="xc"||E==="yc",{offset:v,offsetType:S}=DE({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),C=LB({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:v,defaultRef:vk({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?S==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:B1(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:C},m);{const _=cc(f),b=m[c],R=v?Object.assign(Object.assign({},b),{offset:v}):b;return{[E]:C,[_]:_e(C)?[C[0],Object.assign(Object.assign({},C[1]),{offset:R})]:Object.assign(Object.assign({},C),{offset:R})}}}function FE(t,e,n,r,i){if(nK(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=Ll(n),u=Ll(i),a=Ll(r),l=a?`${a} + `:"",c=o?`(${o} ? -1 : 1) * `:"",f=u?`(${u} + ${s})`:s;return{signal:l+c+f}}else return i=i||0,r+(n?-i-s:+i+s)}function Urt({fieldDef:t,fieldDef2:e,channel:n,model:r}){var i,s,o;const{config:u,markDef:a,encoding:l}=r,c=r.getScaleComponent(n),f=r.scaleName(n),x=c?c.get("type"):void 0,h=c.get("reverse"),p=_ae({channel:n,fieldDef:t,markDef:a,config:u,scaleType:x}),m=(i=r.component.axes[n])===null||i===void 0?void 0:i[0],g=(s=m==null?void 0:m.get("translate"))!==null&&s!==void 0?s:.5,y=Ir(n)&&(o=It("binSpacing",a,u))!==null&&o!==void 0?o:0,E=Dl(n),A=cc(n),v=cc(E),{offset:S}=DE({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),C=Ye(p)?{signal:`(1-${p.signal})/2`}:B1(p)?(1-p.band)/2:.5;if(Kt(t.bin)||t.timeUnit)return{[v]:Hle({fieldDef:t,scaleName:f,bandPosition:C,offset:FE(E,y,h,g,S)}),[A]:Hle({fieldDef:t,scaleName:f,bandPosition:Ye(C)?{signal:`1-${C.signal}`}:1-C,offset:FE(n,y,h,g,S)})};if(Ti(t.bin)){const _=wd(t,f,{},{offset:FE(E,y,h,g,S)});if(Ie(e))return{[v]:_,[A]:wd(e,f,{},{offset:FE(n,y,h,g,S)})};if(Px(t.bin)&&t.bin.step)return{[v]:_,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:FE(n,y,h,g,S)}}}Re(MK(E))}function Hle({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return m6({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const qrt=new Set(["aria","width","height"]);function Do(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?jle(t):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Hrt(t.markDef,e)),zle(t,"fill",n)),zle(t,"stroke",r)),br("opacity",t)),br("fillOpacity",t)),br("strokeOpacity",t)),br("strokeWidth",t)),br("strokeDash",t)),Lrt(t)),kle(t)),Ak(t,"href")),Drt(t))}function zle(t,e,n){const{config:r,mark:i,markDef:s}=t;if(It("invalid",s,r)==="hide"&&n&&!zc(i)){const u=zrt(t,{invalid:!0,channels:tC});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function Hrt(t,e){return I8e.reduce((n,r)=>(!qrt.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=sn(t[r])),n),{})}function zrt(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&Gs(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function Sk(t){const{config:e,markDef:n}=t;if(It("invalid",n,e)){const i=Qrt(t,{channels:fa});if(i)return{defined:{signal:i}}}return{}}function Qrt(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&Gs(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function Qle(t,e){if(e!==void 0)return{[t]:sn(e)}}const _k="voronoi",Gle={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(_k)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(zc(s))return Re(j8e(s)),n;const o={name:t.getName(_k),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},kle(t,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let u=0,a=!1;return n.forEach((l,c)=>{var f;const x=(f=l.name)!==null&&f!==void 0?f:"";x===t.component.mark[0].name?u=c:x.indexOf(_k)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},Wle={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!nk(t.bind),parse:(t,e,n)=>r0e(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Gle.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=yn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:q1(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${we(a.field)}] : null`}]:[],bind:(f=(c=s[a.field])!==null&&c!==void 0?c:s[a.channel])!==null&&f!==void 0?f:s}))}),n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.filter(l=>l.name===r+Xc)[0],o=r+NE,u=i.items.map(l=>yn(`${r}_${l.field}`)),a=u.map(l=>`${l} !== null`).join(" && ");return u.length&&(s.update=`${a} ? {fields: ${o}, values: [${u.join(", ")}]} : null`),delete s.value,delete s.on,n}},U6="_toggle",Vle={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+U6,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+Xc,r=e.name+U6;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${Q1(t)}}, `)+`${r} ? ${n} : null`}},Grt={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?bd(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(Wle.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===yn(`${e.name}_${r.field}`));i!==-1&&n[i].on.push({events:e.clear,update:"null"})}return n},signals:(t,e,n)=>{function r(i,s){i!==-1&&n[i].on&&n[i].on.push({events:e.clear,update:s})}if(e.type==="interval")for(const i of e.project.items){const s=n.findIndex(o=>o.name===i.signals.visual);if(r(s,"[0, 0]"),s===-1){const o=n.findIndex(u=>u.name===i.signals.data);r(o,"null")}}else{let i=n.findIndex(s=>s.name===e.name+Xc);r(i,"null"),Vle.defined(e)&&(i=n.findIndex(s=>s.name===e.name+U6),r(i,"false"))}return n}},Yle={defined:t=>{const e=t.resolve==="global"&&t.bind&&nk(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==RE;return e&&!n&&Re(H8e),e&&n},parse:(t,e,n)=>{var r;const i=ut(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),r0e(e,i),He(n.select)&&(n.select.on||n.select.clear)){const u='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of e.events)a.filter=Pe((r=a.filter)!==null&&r!==void 0?r:[]),a.filter.includes(u)||a.filter.push(u)}const s=rk(e.bind)?e.bind.legend:"click",o=je(s)?bd(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=rk(e.bind)&&e.bind.legend,s=o=>u=>{const a=ut(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${yn(o.field)}_legend`,a=`${r}_${u}`;if(n.filter(c=>c.name===a).length===0){const c=i.merge.map(s(`${u}_symbols`)).concat(i.merge.map(s(`${u}_labels`))).concat(i.merge.map(s(`${u}_entries`)));n.unshift(Object.assign(Object.assign({name:a},e.init?{}:{value:null}),{on:[{events:c,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${a}`,force:!0}]}))}}return n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.find(x=>x.name===r+Xc),o=r+NE,u=i.items.filter(x=>x.hasLegend).map(x=>yn(`${r}_${yn(x.field)}_legend`)),l=`${u.map(x=>`${x} !== null`).join(" && ")} ? {fields: ${o}, values: [${u.join(", ")}]} : null`;e.events&&u.length>0?s.on.push({events:u.map(x=>({signal:x})),update:l}):u.length>0&&(s.update=l,delete s.value,delete s.on);const c=n.find(x=>x.name===r+U6),f=rk(e.bind)&&e.bind.legend;return c&&(e.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:f})):c.on[0].events=f),n}};function Wrt(t,e,n){var r,i,s,o;const u=(r=t.fieldDef(e))===null||r===void 0?void 0:r.field;for(const a of bi((i=t.component.selection)!==null&&i!==void 0?i:{})){const l=(s=a.project.hasField[u])!==null&&s!==void 0?s:a.project.hasChannel[e];if(l&&Yle.defined(a)){const c=(o=n.get("selections"))!==null&&o!==void 0?o:[];c.push(a.name),n.set("selections",c,!1),l.hasLegend=!0}}}const Kle="_translate_anchor",Xle="_translate_delta",Vrt={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=Yc.defined(e),s=r+Kle,{x:o,y:u}=e.project.hasChannel;let a=bd(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+H1,l))),n.push({name:s,value:{},on:[{events:a.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?mk(t,En):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?mk(t,gr):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Xle,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&Jle(t,e,o,"width",n),u!==void 0&&Jle(t,e,u,"height",n),n}};function Jle(t,e,n,r,i){var s,o;const u=e.name,a=u+Kle,l=u+Xle,c=n.channel,f=Yc.defined(e),x=i.filter(_=>_.name===n.signals[f?"data":"visual"])[0],h=t.getSizeSignalRef(r).signal,p=t.getScaleComponent(c),m=p.get("type"),g=p.get("reverse"),y=f?c===En?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,v=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",S=f?m==="pow"?`, ${(s=p.get("exponent"))!==null&&s!==void 0?s:1}`:m==="symlog"?`, ${(o=p.get("constant"))!==null&&o!==void 0?o:1}`:"":"",C=`${v}(${E}, ${A}${S})`;x.on.push({events:{signal:l},update:f?C:`clampRange(${C}, 0, ${h})`})}const Zle="_zoom_anchor",e0e="_zoom_delta",Yrt={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=Yc.defined(e),s=r+e0e,{x:o,y:u}=e.project.hasChannel,a=we(t.scaleName(En)),l=we(t.scaleName(gr));let c=bd(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+H1,f))),n.push({name:r+Zle,on:[{events:c,update:i?"{"+[a?`x: invert(${a}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>!!f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:s,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&t0e(t,e,o,"width",n),u!==void 0&&t0e(t,e,u,"height",n),n}};function t0e(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=Yc.defined(e),c=i.filter(v=>v.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?mk(t,a):c.name,m=u+e0e,g=`${u}${Zle}.${a}`,y=l?h==="log"?"zoomLog":h==="symlog"?"zoomSymlog":h==="pow"?"zoomPow":"zoomLinear":"zoomLinear",E=l?h==="pow"?`, ${(s=x.get("exponent"))!==null&&s!==void 0?s:1}`:h==="symlog"?`, ${(o=x.get("constant"))!==null&&o!==void 0?o:1}`:"":"",A=`${y}(${p}, ${g}, ${m}${E})`;c.on.push({events:{signal:m},update:l?A:`clampRange(${A}, 0, ${f})`})}const Bd="_store",Xc="_tuple",Krt="_modify",n0e="vlSelectionResolve",q6=[Nrt,Rrt,brt,Vle,Wle,Yc,Yle,Grt,Vrt,Yrt,Gle];function Xrt(t){let e=t.parent;for(;e&&!vu(e);)e=e.parent;return e}function Q1(t,{escape:e}={escape:!0}){let n=e?we(t.name):t.name;const r=Xrt(t);if(r){const{facet:i}=r;for(const s of go)i[s]&&(n+=` + '__facet_${s}_' + (facet[${we(r.vgField(s))}])`)}return n}function Ck(t){var e;return bi((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===RE),!1)}function r0e(t,e){(je(e.select)||!e.select.on)&&delete t.events,(je(e.select)||!e.select.clear)&&delete t.clear,(je(e.select)||!e.select.toggle)&&delete t.toggle}function bk(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...bk(t.object)),e.push(...bk(t.property))),e)}function i0e(t){return t.object.type==="MemberExpression"?i0e(t.object):t.object.name==="datum"}function s0e(t){const e=roe(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&i0e(r)&&n.add(bk(r).slice(1).join("."))}),n}class G1 extends Ut{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=H6(this.model,this.filter,this),this._dependentFields=s0e(this.expr)}clone(){return new G1(null,this.model,ut(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Jrt(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=yn(s.name),u=s.select,a=je(u)?u:u.type,l=He(u)?ut(u):{type:a},c=i[a];for(const x in c)x==="fields"||x==="encodings"||(x==="mark"&&(l[x]=Object.assign(Object.assign({},c[x]),l[x])),(l[x]===void 0||l[x]===!0)&&(l[x]=(n=c[x])!==null&&n!==void 0?n:l[x]));const f=r[o]=Object.assign(Object.assign({},l),{name:o,type:a,init:s.value,bind:s.bind,events:je(l.on)?bd(l.on,"scope"):Pe(ut(l.on))});for(const x of q6)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function o0e(t,e,n,r="datum"){const i=je(e)?e:e.param,s=yn(i),o=we(s+Bd);let u;try{u=t.getSelectionComponent(s,i)}catch{return`!!${s}`}if(u.project.timeUnit){const c=n??t.component.data.raw,f=u.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const a=`vlSelectionTest(${o}, ${r}${u.resolve==="global"?")":`, ${we(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function u0e(t,e,n){const r=yn(e),i=n.encoding;let s=n.field,o;try{o=t.getSelectionComponent(r,e)}catch{return r}if(!i&&!s)s=o.project.items[0].field,o.project.items.length>1&&Re(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${we(s)}.`);else if(i&&!s){const u=o.project.items.filter(a=>a.channel===i);!u.length||u.length>1?(s=o.project.items[0].field,Re((u.length?"Multiple ":"No ")+`matching ${we(i)} encoding found for selection ${we(n.param)}. Using "field": ${we(s)}.`)):s=u[0].field}return`${o.name}[${we(eu(s))}]`}function Zrt(t,e){var n;for(const[r,i]of Ix((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new zi(new G1(e,t,{param:r}),s,Jt.Lookup,t.component.data.outputNodeRefCounts)}}function H6(t,e,n){return G5(e,r=>je(r)?r:i9e(r)?o0e(t,r,n):WK(r))}var z6=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function eit(t,e){if(t)return _e(t)&&!dc(t)?t.map(n=>QB(n,e)).join(", "):t}function Tk(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function wE(t,e,n,r={header:!1}){var i,s;const o=t.combine(),{disable:u,orient:a,scale:l,labelExpr:c,title:f,zindex:x}=o,h=z6(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=$tt[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(TE(g)){const{condition:y}=g,E=z6(g,["condition"]),A=Pe(y),v=wae[p];if(v){const{vgProp:S,part:C}=v,_=[...A.map(b=>{const{test:R}=b,O=z6(b,["test"]);return Object.assign({test:H6(null,R)},O)}),E];Tk(h,C,S,_),delete h[p]}else if(v===null){const S={signal:A.map(C=>{const{test:_}=C,b=z6(C,["test"]);return`${H6(null,_)} ? ${yK(b)} : `}).join("")+yK(E)};h[p]=S}}else if(Ye(g)){const y=wae[p];if(y){const{vgProp:E,part:A}=y;Tk(h,A,E,g),delete h[p]}}Ct(["labelAlign","labelBaseline"],p)&&h[p]===null&&delete h[p]}if(e==="grid"){if(!h.grid)return;if(h.encode){const{grid:p}=h.encode;h.encode=Object.assign({},p?{grid:p}:{}),Wt(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:l,orient:a},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Zn(x,0)})}else{if(!r.header&&t.mainExtracted)return;if(c!==void 0){let m=c;!((s=(i=h.encode)===null||i===void 0?void 0:i.labels)===null||s===void 0)&&s.update&&Ye(h.encode.labels.update.text)&&(m=L2(c,"datum.label",h.encode.labels.update.text.signal)),Tk(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of Lae)t.hasAxisPart(m)||delete h.encode[m];Wt(h.encode)&&delete h.encode}const p=eit(f,n);return Object.assign(Object.assign(Object.assign(Object.assign({scale:l,orient:a,grid:!1},p?{title:p}:{}),h),n.aria===!1?{aria:!1}:{}),{zindex:Zn(x,0)})}}}function a0e(t){const{axes:e}=t.component,n=[];for(const r of fa)if(e[r]){for(const i of e[r])if(!i.get("disable")&&!i.get("gridScale")){const s=r==="x"?"height":"width",o=t.getSizeSignalRef(s).signal;s!==o&&n.push({name:s,update:o})}}return n}function tit(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>wE(i,"grid",e)),...r.map(i=>wE(i,"grid",e)),...n.map(i=>wE(i,"main",e)),...r.map(i=>wE(i,"main",e))].filter(i=>i)}function l0e(t,e,n,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const s=n==="x"?"bottom":"left",o=e[n==="x"?"axisBottom":"axisLeft"]||{},u=e[n==="x"?"axisTop":"axisRight"]||{},a=new Set([...Te(o),...Te(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${Ll(o[c])} : ${Ll(u[c])}`};return l}return e[i]})])}function nit(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:eae(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${W5(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:l0e(u,r,t,n),vgAxisConfig:l0e(a,r,t,n),axisConfigStyle:rit([...a,...u],r)}}function rit(t,e){var n;const r=[{}];for(const i of t){let s=(n=e[i])===null||n===void 0?void 0:n.style;if(s){s=Pe(s);for(const o of s)r.push(e.style[o])}}return Object.assign.apply(null,r)}function Rk(t,e,n,r={}){var i;const s=AK(t,n,e);if(s!==void 0)return{configFrom:"style",configValue:s};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((i=r[o])===null||i===void 0?void 0:i[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const c0e={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return dae(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return hae(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:iit(n,t)},gridScale:({model:t,channel:e})=>sit(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||x0e(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||f0e(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:uit(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:ait(e.type,n,Ie(e)&&!!e.timeUnit,Ie(e)?e.sort:void 0)},orient:({orient:t})=>t,tickCount:({channel:t,model:e,axis:n,fieldOrDatumDef:r,scaleType:i})=>{var s;const o=t==="x"?"width":t==="y"?"height":void 0,u=o?e.getSizeSignalRef(o):void 0;return(s=n.tickCount)!==null&&s!==void 0?s:cit({fieldOrDatumDef:r,scaleType:i,size:u,values:n.values})},title:({axis:t,model:e,channel:n})=>{if(t.title!==void 0)return t.title;const r=d0e(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return SK(i?[vae(i)]:[],Ie(o)?[vae(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>fit(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:xit(n,e)}};function iit(t,e){return!Cr(t)&&Ie(e)&&!Kt(e==null?void 0:e.bin)&&!Ti(e==null?void 0:e.bin)}function sit(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function oit(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:V5(s);{const{configValue:o}=Rk("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?V5(o):n===En&&Ct([RB,TB],t.type)&&!(Ie(t)&&t.timeUnit)?270:void 0}}function Ok(t){return`(((${t.signal} % 360) + 360) % 360)`}function f0e(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=Ok(t),s=Ye(e)?`(${e.signal} === "top")`:e==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${s} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(Ye(e)){const i=t<=45||315<=t?"===":"!==";return{signal:`${e.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(e==="top")?"bottom":"top"}else{if(Ye(t)){const i=Ok(t),s=Ye(e)?`(${e.signal} === "left")`:e==="left";return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${s} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(Ye(e)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${e.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(e==="left")?"top":"bottom"}}function x0e(t,e,n){if(t===void 0)return;const r=n==="x",i=r?0:90,s=r?"bottom":"left";if(Ye(t)){const o=Ok(t),u=Ye(e)?`(${e.signal} === "${s}")`:e===s;return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${u} ? "left" : "right"`}}if((t+i)%180===0)return r?null:"center";if(Ye(e)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${e.signal} ${o} "${s}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(e===s)?"left":"right"}function uit(t,e){if(e==="x"&&Ct(["quantitative","temporal"],t))return!0}function ait(t,e,n,r){if(n&&!He(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function lit(t){return t==="x"?"bottom":"left"}function cit({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Cr(e)&&e!=="log"){if(Ie(t)){if(Kt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&Ct(["month","hours","day","quarter"],(i=Ri(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function d0e(t,e){const n=e==="x"?"x2":"y2",r=t.fieldDef(e),i=t.fieldDef(n),s=r?r.title:void 0,o=i?i.title:void 0;if(s&&o)return _K(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function fit(t,e){const n=t.values;if(_e(n))return Fae(e,n);if(Ye(n))return n}function xit(t,e){return t==="rect"&&_6(e)?1:0}class W1 extends Ut{constructor(e,n){super(e),this.transform=n,this._dependentFields=s0e(this.transform.calculate)}clone(){return new W1(null,ut(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Id(r)&&Aae(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${WK({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new W1(e,{calculate:a,as:V1(r,i,{forAs:!0})})}}),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${_t(this.transform)}`}}function V1(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function Q6(t,e){return Ct(["top","bottom"],e)?"column":Ct(["left","right"],e)||t==="row"?"row":"column"}function Y1(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return Zn((e||{})[t],i[t],n.header[t])}function G6(t,e,n,r){const i={};for(const s of t){const o=Y1(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const Nk=["row","column"],Dk=["header","footer"];function dit(t,e){const n=t.component.layoutHeaders[e].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[e].facetFieldDef?t.component.layoutHeaders[e].facetFieldDef:void 0,{titleAnchor:s,titleAngle:o,titleOrient:u}=G6(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=Q6(e,u),l=V5(o);return{name:`${e}-title`,type:"group",role:`${a}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},e==="row"?{orient:"left"}:{}),{style:"guide-title"}),p0e(l,a)),h0e(a,l,s)),g0e(r,i,e,rnt,Zae))}}function h0e(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=x0e(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function p0e(t,e){const n=f0e(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function hit(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of Dk)if(n[i])for(const s of n[i]){const o=git(t,e,i,n,s);o!=null&&r.push(o)}return r}function pit(t,e){var n;const{sort:r}=t;return $a(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:V1(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function Fk(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=G6(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=BB({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=Q6(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?L2(L2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),p0e(s,c)),h0e(c,s,o)),g0e(n,t,e,int,ele))}function git(t,e,n,r,i){if(i){let s=null;const{facetFieldDef:o}=r,u=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=G6(["labelOrient"],o.header,u,e);(e==="row"&&!Ct(["top","bottom"],f)||e==="column"&&!Ct(["left","right"],f))&&(s=Fk(o,e,u))}const a=vu(t)&&!_E(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(s||c){const f=e==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName(`${e}_${n}`),type:"group",role:`${e}-${n}`},r.facetFieldDef?{from:{data:t.getName(`${e}_domain`)},sort:pit(o,e)}:{}),c&&a?{from:{data:t.getName(`facet_domain_${e}`)}}:{}),s?{title:s}:{}),i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{}),c?{axes:l}:{})}}return null}const mit={column:{start:0,end:1},row:{start:1,end:0}};function yit(t,e){return mit[e][t]}function Eit(t,e){const n={};for(const r of go){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=G6(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=Q6(r,o),a=yit(s,u);a!==void 0&&(n[u]=a)}}return Wt(n)?void 0:n}function g0e(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=Y1(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function wk(t){return[...W6(t,"width"),...W6(t,"height"),...W6(t,"childWidth"),...W6(t,"childHeight")]}function W6(t,e){const n=e==="width"?"x":"y",r=t.component.layoutSize.get(e);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(e).signal;if(r==="step"){const s=t.getScaleComponent(n);if(s){const o=s.get("type"),u=s.get("range");if(Cr(o)&&hc(u)){const a=t.scaleName(n);return vu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[m0e(a,u)]:[m0e(a,u),{name:i,update:y0e(a,s,`domain('${a}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const s=i.endsWith("width"),o=s?"containerSize()[0]":"containerSize()[1]",u=uk(t.config.view,s?"width":"height"),a=`isFinite(${o}) ? ${o} : ${u}`;return[{name:i,init:a,on:[{update:a,events:"window:resize"}]}]}else return[{name:i,value:r}]}function m0e(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function y0e(t,e,n){const r=e.get("type"),i=e.get("padding"),s=Zn(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${Ll(o)}, ${Ll(s)}) * ${t}_step`}function E0e(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function A0e(t,e){return Te(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),z1(e,i,r,s=>sn(s.value)))},{})}function v0e(t,e){if(vu(e))return t==="theta"?"independent":"shared";if(J1(e))return"shared";if(Vk(e))return Ir(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function Lk(t,e){const n=t.scale[e],r=Ir(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Re(Rwe(e)),"independent"):t[r][e]||"shared"}const Ait=Object.assign(Object.assign({},ont),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),S0e=Te(Ait);class vit extends u0{}const _0e={symbols:Sit,gradient:_it,labels:Cit,entries:bit};function Sit(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i,legendType:s}){var o,u,a,l,c,f,x,h;if(s!=="symbol")return;const{markDef:p,encoding:m,config:g,mark:y}=n,E=p.filled&&y!=="trail";let A=Object.assign(Object.assign({},k8e({},n,ott)),jle(n,{filled:E}));const v=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,S=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,C=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,_=v===void 0?(l=C0e(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===us)delete A.fill;else if(A.fill.field)S?delete A.fill:(A.fill=sn((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=sn(_??1));else if(_e(A.fill)){const b=(h=(x=Ik((f=m.fill)!==null&&f!==void 0?f:m.color))!==null&&x!==void 0?x:p.fill)!==null&&h!==void 0?h:E&&p.color;b&&(A.fill=sn(b))}}if(A.stroke){if(r==="stroke"||!E&&r===us)delete A.stroke;else if(A.stroke.field||C)delete A.stroke;else if(_e(A.stroke)){const b=Zn(Ik(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Nl){const b=Ie(e)&&T0e(n,i,e);b?A.opacity=[Object.assign({test:b},sn(_??1)),sn(g.legend.unselectedOpacity)]:_&&(A.opacity=sn(_))}return A=Object.assign(Object.assign({},A),t),Wt(A)?void 0:A}function _it(t,{model:e,legendType:n,legendCmpt:r}){var i;if(n!=="gradient")return;const{config:s,markDef:o,encoding:u}=e;let a={};const c=((i=r.get("gradientOpacity"))!==null&&i!==void 0?i:s.legend.gradientOpacity)===void 0?C0e(u.opacity)||o.opacity:void 0;return c&&(a.opacity=sn(c)),a=Object.assign(Object.assign({},a),t),Wt(a)?void 0:a}function Cit(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Ie(e)?T0e(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=Ld(c)?kB({fieldOrDatumDef:e,field:"datum.value",format:l,formatType:c,config:o}):void 0,x=Object.assign(Object.assign(Object.assign({},a?{opacity:a}:{}),f?{text:f}:{}),t);return Wt(x)?void 0:x}function bit(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function C0e(t){return b0e(t,(e,n)=>Math.max(e,n.value))}function Ik(t){return b0e(t,(e,n)=>Zn(e,n.value))}function b0e(t,e){if(_tt(t))return Pe(t.condition).reduce(e,t.value);if(yu(t))return t.value}function T0e(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=we(n.field);return r.map(s=>`(!length(data(${we(yn(s)+Bd)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const R0e={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return dae(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return hae(r,e,n)},gradientLength:t=>{var e,n;const{legend:r,legendConfig:i}=t;return(n=(e=r.gradientLength)!==null&&e!==void 0?e:i.gradientLength)!==null&&n!==void 0?n:wit(t)},labelOverlap:({legend:t,legendConfig:e,scaleType:n})=>{var r,i;return(i=(r=t.labelOverlap)!==null&&r!==void 0?r:e.labelOverlap)!==null&&i!==void 0?i:Lit(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:Rit(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>k1(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if($2(n)&&mu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>Tit(e,t)};function Tit(t,e){const n=t.values;if(_e(n))return Fae(e,n);if(Ye(n))return n}function Rit(t,e,n,r){var i;if(e!=="shape"){const s=(i=Ik(n))!==null&&i!==void 0?i:r;if(s)return s}switch(t){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}function Oit(t){const{legend:e}=t;return Zn(e.type,Nit(t))}function Nit({channel:t,timeUnit:e,scaleType:n}){if($2(t)){if(Ct(["quarter","month","day"],e))return"symbol";if(mu(n))return"gradient"}return"symbol"}function Dit({legendConfig:t,legendType:e,orient:n,legend:r}){var i,s;return(s=(i=r.direction)!==null&&i!==void 0?i:t[e?"gradientDirection":"symbolDirection"])!==null&&s!==void 0?s:Fit(n,e)}function Fit(t,e){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return e==="gradient"?"horizontal":void 0}}function wit({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(mu(i))return n==="horizontal"?r==="top"||r==="bottom"?O0e(e,"width",o,s):o:O0e(e,"height",a,u)}function O0e(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function Lit(t){if(Ct(["quantile","threshold","log","symlog"],t))return"greedy"}function N0e(t){const e=Qn(t)?Iit(t):Pit(t);return t.component.legends=e,e}function Iit(t){const{encoding:e}=t,n={};for(const r of[us,...nle]){const i=or(e[r]);!i||!t.getScaleComponent(r)||r===as&&Ie(i)&&i.type===I1||(n[r]=kit(t,r))}return n}function $it(t,e){const n=t.scaleName(e);if(t.mark==="trail"){if(e==="color")return{stroke:n};if(e==="size")return{strokeWidth:n}}return e==="color"?t.markDef.filled?{fill:n}:{stroke:n}:{[e]:n}}function Bit(t,e,n,r){switch(e){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(e==="title"&&t===(r==null?void 0:r.title))return!0}return t===(n||{})[e]}function kit(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new vit({},$it(t,e));Wrt(t,e,c);const f=s!==void 0?!s:l.disable;if(c.set("disable",f,s!==void 0),f)return c;s=s||{};const x=t.getScaleComponent(e).get("type"),h=or(u[e]),p=Ie(h)?(n=Ri(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=Oit({legend:s,channel:e,timeUnit:p,scaleType:x}),y=Dit({legend:s,legendType:g,orient:m,legendConfig:l}),E={legend:s,channel:e,model:t,markDef:o,encoding:u,fieldOrDatumDef:h,legendConfig:l,config:a,scaleType:x,orient:m,legendType:g,direction:y};for(const _ of S0e){if(g==="gradient"&&_.startsWith("symbol")||g==="symbol"&&_.startsWith("gradient"))continue;const b=_ in R0e?R0e[_](E):s[_];if(b!==void 0){const R=Bit(b,_,s,t.fieldDef(e));(R||a.legend[_]===void 0)&&c.set(_,b,R)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},v=c.get("selections"),S={},C={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const _ of["labels","legend","title","symbols","gradient","entries"]){const b=A0e((i=A[_])!==null&&i!==void 0?i:{},t),R=_ in _0e?_0e[_](b,C):b;R!==void 0&&!Wt(R)&&(S[_]=Object.assign(Object.assign(Object.assign({},v!=null&&v.length&&Ie(h)?{name:`${yn(h.field)}_legend_${_}`}:{}),v!=null&&v.length?{interactive:!!v}:{}),{update:R}))}return Wt(S)||c.set("encode",S,!!(s!=null&&s.encoding)),c}function Pit(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){N0e(r);for(const i of Te(r.component.legends))n.legend[i]=Lk(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=D0e(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of Te(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function D0e(t,e){var n,r,i,s;if(!t)return e.clone();const o=t.getWithExplicit("orient"),u=e.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;let a=!1;for(const l of S0e){const c=Wc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return Mit(f,x);case"title":return CK(f,x);case"type":return a=!0,Ws("symbol")}return k6(f,x,l,"legend")});t.setWithExplicit(l,c)}return a&&(!((r=(n=t.implicit)===null||n===void 0?void 0:n.encode)===null||r===void 0)&&r.gradient&&KF(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&KF(t.explicit,["encode","gradient"])),t}function Mit(t,e){return e.value==="circle"?e:t}var jit=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Uit(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function F0e(t){const e=t.component.legends,n={};for(const i of Te(e)){const s=t.getScaleComponent(i),o=rn(s.get("domains"));if(n[o])for(const u of n[o])D0e(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return bi(n).flat().map(i=>qit(i,t.config)).filter(i=>i!==void 0)}function qit(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=jit(s,["disable","labelExpr","selections"]);if(!o){if(e.aria===!1&&l.aria==null&&(l.aria=!1),!((n=l.encode)===null||n===void 0)&&n.symbols){const c=l.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!l.stroke&&(c.stroke={value:"transparent"});for(const f of nle)l[f]&&delete c[f]}if(l.title||delete l.title,u!==void 0){let c=u;!((i=(r=l.encode)===null||r===void 0?void 0:r.labels)===null||i===void 0)&&i.update&&Ye(l.encode.labels.update.text)&&(c=L2(u,"datum.label",l.encode.labels.update.text.signal)),Uit(l,"labels","text",{signal:c})}return l}}function Hit(t){return J1(t)||Vk(t)?zit(t):w0e(t)}function zit(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),w0e(t))}function w0e(t){const e=t.component.projection;if(!e||e.merged)return[];const n=e.combine(),{name:r}=n;if(e.data){const i={signal:`[${e.size.map(o=>o.signal).join(", ")}]`},s=e.data.reduce((o,u)=>{const a=Ye(u)?u.signal:`data('${t.lookupDataSource(u)}')`;return Ct(o,a)||o.push(a),o},[]);if(s.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:r,size:i,fit:{signal:s.length>1?`[${s.join(", ")}]`:s[0]}},n)]}else return[Object.assign(Object.assign({name:r},{translate:{signal:"[width / 2, height / 2]"}}),n)]}const Qit=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class L0e extends u0{constructor(e,n,r,i){super(Object.assign({},n),{name:e}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function I0e(t){t.component.projection=Qn(t)?Git(t):Yit(t)}function Git(t){var e;if(t.hasProjection){const n=cs(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?Wit(t):void 0,o=new L0e(t.projectionName(!0),Object.assign(Object.assign({},(e=cs(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function Wit(t){const e=[],{encoding:n}=t;for(const r of[[aa,ua],[po,ru]])(or(n[r[0]])||or(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(as)&&t.typedFieldDef(as).type===I1&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Jt.Main)),e}function Vit(t,e){const n=YY(Qit,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Sl(t.get(i),e.get(i))));if(Sl(t.size,e.size)){if(n)return t;if(Sl(t.explicit,{}))return e;if(Sl(e.explicit,{}))return t}return null}function Yit(t){if(t.children.length===0)return;let e;for(const r of t.children)I0e(r);const n=YY(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=Vit(e,i);return s&&(e=s),!!s}else return e=i,!0;else return!0});if(e&&n){const r=t.projectionName(!0),i=new L0e(r,e.specifiedProjection,e.size,ut(e.data));for(const s of t.children){const o=s.component.projection;o&&(o.isFit&&i.data.push(...s.component.projection.data),s.renameProjection(o.get("name"),r),o.merged=!0)}return i}}var Kit=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Xit(t,e,n,r){var i,s;if(bE(e,n)){const o=Qn(t)?(s=(i=t.axis(n))!==null&&i!==void 0?i:t.legend(n))!==null&&s!==void 0?s:{}:{},u=$e(e,{expr:"datum"}),a=$e(e,{expr:"datum",binSuffix:"end"});return{formulaAs:$e(e,{binSuffix:"range",forAs:!0}),formula:y6(u,a,o.format,o.formatType,r)}}return{}}function $0e(t,e){return`${dK(t)}_${e}`}function Jit(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function $k(t,e,n){var r;const i=(r=T6(n,void 0))!==null&&r!==void 0?r:{},s=$0e(i,e);return t.getName(`${s}_bins`)}function Zit(t){return"as"in t}function B0e(t,e,n){let r,i;Zit(t)?r=je(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:r=[$e(t,{forAs:!0}),$e(t,{binSuffix:"end",forAs:!0})];const s=Object.assign({},T6(e,void 0)),o=$0e(s,t.field),{signal:u,extentSignal:a}=Jit(n,o);if(nC(s.extent)){const c=s.extent;i=u0e(n,c.param,c),delete s.extent}const l=Object.assign(Object.assign(Object.assign({bin:s,field:t.field,as:[r]},u?{signal:u}:{}),a?{extentSignal:a}:{}),i?{span:i}:{});return{key:o,binComponent:l}}class qa extends Ut{constructor(e,n){super(e),this.bins=n}clone(){return new qa(null,ut(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(No(s)&&Kt(s.bin)){const{key:u,binComponent:a}=B0e(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),Xit(n,s,o,n.config))}return i},{});return Wt(r)?null:new qa(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=B0e(n,n.bin,r);return new qa(e,{[i]:s})}merge(e,n){for(const r of Te(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=_l([...this.bins[r].as,...e.bins[r].as],_t)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set(bi(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(bi(this.bins).map(e=>e.field))}hash(){return`Bin ${_t(this.bins)}`}assemble(){return bi(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=Kit(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:eu(e.field),as:r,signal:e.signal},nC(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:eu(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),n.push(a);for(const l of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:$e({field:r[c]},{expr:"datum"}),as:l[c]});return e.formula&&n.push({type:"formula",expr:e.formula,as:e.formulaAs}),n})}}function est(t,e,n,r){var i;const s=Qn(r)?r.encoding[Dl(e)]:void 0;if(No(n)&&Qn(r)&&Cae(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&bE(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(a8e(e)){const o=u8e(e);t.add(r.getName(o))}else t.add($e(n));return Id(n)&&Yet((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function tst(t,e){var n;for(const r of Te(e)){const i=e[r];for(const s of Te(i))r in t?t[r][s]=new Set([...(n=t[r][s])!==null&&n!==void 0?n:[],...i[s]]):t[r]={[s]:i[s]}}}class Eu extends Ut{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new Eu(null,new Set(this.dimensions),ut(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,n){let r=!1;n.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},s=new Set;return!r||(n.forEachFieldDef((o,u)=>{var a,l,c,f;const{aggregate:x,field:h}=o;if(x)if(x==="count")(a=i["*"])!==null&&a!==void 0||(i["*"]={}),i["*"].count=new Set([$e(o,{forAs:!0})]);else{if(Fl(x)||xc(x)){const p=Fl(x)?"argmin":"argmax",m=x[p];(l=i[m])!==null&&l!==void 0||(i[m]={}),i[m][p]=new Set([$e({op:p,field:m},{forAs:!0})])}else(c=i[h])!==null&&c!==void 0||(i[h]={}),i[h][x]=new Set([$e(o,{forAs:!0})]);fc(u)&&n.scaleDomain(u)==="unaggregated"&&((f=i[h])!==null&&f!==void 0||(i[h]={}),i[h].min=new Set([$e({field:h,aggregate:"min"},{forAs:!0})]),i[h].max=new Set([$e({field:h,aggregate:"max"},{forAs:!0})]))}else est(s,u,o,n)}),s.size+Te(i).length===0)?null:new Eu(e,s,i)}static makeFromTransform(e,n){var r,i,s;const o=new Set,u={};for(const a of n.aggregate){const{op:l,field:c,as:f}=a;l&&(l==="count"?((r=u["*"])!==null&&r!==void 0||(u["*"]={}),u["*"].count=new Set([f||$e(a,{forAs:!0})])):((i=u[c])!==null&&i!==void 0||(u[c]={}),u[c][l]=new Set([f||$e(a,{forAs:!0})])))}for(const a of(s=n.groupby)!==null&&s!==void 0?s:[])o.add(a);return o.size+Te(u).length===0?null:new Eu(e,o,u)}merge(e){return ZFe(this.dimensions,e.dimensions)?(tst(this.measures,e.measures),!0):(Hwe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Te(this.measures)])}producedFields(){const e=new Set;for(const n of Te(this.measures))for(const r of Te(this.measures[n])){const i=this.measures[n][r];i.size===0?e.add(`${r}_${n}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${_t({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of Te(this.measures))for(const o of Te(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:eu(s));return{type:"aggregate",groupby:[...this.dimensions].map(eu),ops:e,fields:n,as:r}}}class K1 extends Ut{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of go){const o=n.facet[s];if(o){const{bin:u,sort:a}=o;this[s]=Object.assign({name:n.getName(`${s}_domain`),fields:[$e(o),...Kt(u)?[$e(o,{binSuffix:"end"})]:[]]},$a(a)?{sortField:a}:_e(a)?{sortIndexField:V1(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of go)this[n]&&(e+=` ${n.charAt(0)}:${_t(this[n])}`);return e}get fields(){var e;const n=[];for(const r of go)!((e=this[r])===null||e===void 0)&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const e=new Set(this.fields);for(const n of go)this[n]&&(this[n].sortField&&e.add(this[n].sortField.field),this[n].sortIndexField&&e.add(this[n].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const n of fa){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Cr(i)&&hc(s)){const o=Y6(this.childModel,n),u=Qk(o);u?e[n]=u:Re(l8(n))}}}return e}assembleRowColumnHeaderData(e,n,r){const i={row:"y",column:"x",facet:void 0}[e],s=[],o=[],u=[];i&&r&&r[i]&&(n?(s.push(`distinct_${r[i]}`),o.push("max")):(s.push(r[i]),o.push("distinct")),u.push(`distinct_${r[i]}`));const{sortField:a,sortIndexField:l}=this[e];if(a){const{op:c=E6,field:f}=a;s.push(f),o.push(c),u.push($e(a,{forAs:!0}))}else l&&(s.push(l),o.push("max"),u.push(l));return{name:this[e].name,source:n??this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},s.length?{fields:s,ops:o,as:u}:{})]}}assembleFacetHeaderData(e){var n,r;const{columns:i}=this.model.layout,{layoutHeaders:s}=this.model.component,o=[],u={};for(const c of Nk){for(const f of Dk){const x=(n=s[c]&&s[c][f])!==null&&n!==void 0?n:[];for(const h of x)if(((r=h.axes)===null||r===void 0?void 0:r.length)>0){u[c]=!0;break}}if(u[c]){const f=`length(data("${this.facet.name}"))`,x=c==="row"?i?{signal:`ceil(${f} / ${i})`}:1:i?{signal:`min(${f}, ${i})`}:{signal:f};o.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:x}]})}}const{row:a,column:l}=u;return(a||l)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,n;const r=[];let i=null;const s=this.getChildIndependentFieldsWithStep(),{column:o,row:u,facet:a}=this;if(o&&u&&(s.x||s.y)){i=`cross_${this.column.name}_${this.row.name}`;const l=[].concat((e=s.x)!==null&&e!==void 0?e:[],(n=s.y)!==null&&n!==void 0?n:[]),c=l.map(()=>"distinct");r.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:l,ops:c}]})}for(const l of[bl,Cl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function k0e(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function nst(t,e){const n=ZY(t);if(e==="number")return`toNumber(${n})`;if(e==="boolean")return`toBoolean(${n})`;if(e==="string")return`toString(${n})`;if(e==="date")return`toDate(${n})`;if(e==="flatten")return n;if(e.startsWith("date:")){const r=k0e(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=k0e(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Re(K8e(e)),null}function rst(t){const e={};return z5(t.filter,n=>{var r;if(GK(n)){let i=null;g8(n)?i=ks(n.equal):y8(n)?i=ks(n.lte):m8(n)?i=ks(n.lt):E8(n)?i=ks(n.gt):A8(n)?i=ks(n.gte):v8(n)?i=n.range[0]:S8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(jx(i)?e[n.field]="date":nn(i)?e[n.field]="number":je(i)&&(e[n.field]="string")),n.timeUnit&&(e[n.field]="date")}}),e}function ist(t){const e={};function n(r){M1(r)?e[r.field]="date":r.type==="quantitative"&&O8e(r.aggregate)?e[r.field]="number":A3(r.field)>1?r.field in e||(e[r.field]="flatten"):Id(r)&&$a(r.sort)&&A3(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((Qn(t)||vu(t))&&t.forEachFieldDef((r,i)=>{if(No(r))n(r);else{const s=kx(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),Qn(t)){const{mark:r,markDef:i,encoding:s}=t;if(zc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Ie(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function sst(t){const e={};if(Qn(t)&&t.component.selection)for(const n of Te(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&A3(i.field)>1&&(e[i.field]="flatten")}return e}class ai extends Ut{constructor(e,n){super(e),this._parse=n}clone(){return new ai(null,ut(this._parse))}hash(){return`Parse ${_t(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Vc(o)&&(!((i=o==null?void 0:o.format)===null||i===void 0)&&i.parse)&&(s=o.format.parse),this.makeWithAncestors(e,s,{},r)}static makeWithAncestors(e,n,r,i){for(const u of Te(r)){const a=i.getWithExplicit(u);a.value!==void 0&&(a.explicit||a.value===r[u]||a.value==="derived"||r[u]==="flatten"?delete r[u]:Re(FK(u,r[u],a.value)))}for(const u of Te(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Re(FK(u,n[u],a)))}const s=new u0(n,r);i.copyAll(s);const o={};for(const u of Te(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return Te(o).length===0||i.parseNothing?null:new ai(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const n of Te(this._parse)){const r=this._parse[n];A3(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(Te(this._parse))}dependentFields(){return new Set(Te(this._parse))}assembleTransforms(e=!1){return Te(this._parse).filter(n=>e?A3(n)>1:!0).map(n=>{const r=nst(n,this._parse[n]);return r?{type:"formula",expr:r,as:eK(n)}:null}).filter(n=>n!==null)}}class Jc extends Ut{clone(){return new Jc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([RE])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:RE}}}class LE extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new LE(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${_t(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class IE extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new IE(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([(e=this.params.as)!==null&&e!==void 0?e:"data"])}hash(){return`Hash ${_t(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class kd extends Ut{constructor(e){super(null),e??(e={name:"source"});let n;if(Vc(e)||(n=e.format?Object.assign({},ho(e.format,["parse"])):{}),OE(e))this._data={values:e.values};else if(U1(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];Ct(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else Lle(e)?this._data={values:[{type:"Sphere"}]}:(Fle(e)||Vc(e))&&(this._data={});this._generator=Vc(e),e.name&&(this._name=e.name),n&&!Wt(n)&&(this._data.format=n)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var P0e=function(t,e,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,n):i?i.value=n:e.set(t,n),n},ost=function(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)},$E;function Bk(t){return t instanceof kd||t instanceof LE||t instanceof IE}class kk{constructor(){$E.set(this,void 0),P0e(this,$E,!1,"f")}setModified(){P0e(this,$E,!0,"f")}get modifiedFlag(){return ost(this,$E,"f")}}$E=new WeakMap;class Pd extends kk{getNodeDepths(e,n,r){r.set(e,n);for(const i of e.children)this.getNodeDepths(i,n+1,r);return r}optimize(e){const r=[...this.getNodeDepths(e,0,new Map).entries()].sort((i,s)=>s[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class Pk extends kk{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class ust extends Pk{mergeNodes(e,n){const r=n.shift();for(const i of n)e.removeChild(i),i.parent=r,i.remove()}run(e){const n=e.children.map(i=>i.hash()),r={};for(let i=0;i<n.length;i++)r[n[i]]===void 0?r[n[i]]=[e.children[i]]:r[n[i]].push(e.children[i]);for(const i of Te(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class ast extends Pk{constructor(e){super(),this.requiresSelectionId=e&&Ck(e)}run(e){e instanceof Jc&&(this.requiresSelectionId&&(Bk(e.parent)||e.parent instanceof Eu||e.parent instanceof ai)||(this.setModified(),e.remove()))}}class lst extends kk{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof Ua&&(r=e.producedFields(),KY(r,n)&&(this.setModified(),e.removeFormulas(n),e.producedFields.length===0&&e.remove()));for(const i of e.children)this.run(i,new Set([...n,...r]))}}class cst extends Pk{constructor(){super()}run(e){e instanceof zi&&!e.isRequired()&&(this.setModified(),e.remove())}}class fst extends Pd{run(e){if(!Bk(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof ai)if(e instanceof ai)this.setModified(),e.merge(n);else{if(JY(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class xst extends Pd{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof ai);if(e.numChildren()>1&&r.length>=1){const i={},s=new Set;for(const o of r){const u=o.parse;for(const a of Te(u))a in i?i[a]!==u[a]&&s.add(a):i[a]=u[a]}for(const o of s)delete i[o];if(!Wt(i)){this.setModified();const o=new ai(e,i);for(const u of n){if(u instanceof ai)for(const a of Te(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof ai&&Te(u.parse).length===0&&u.remove()}}}}}class dst extends Pd{run(e){e instanceof zi||e.numChildren()>0||e instanceof K1||e instanceof kd||(this.setModified(),e.remove())}}class hst extends Pd{run(e){const n=e.children.filter(i=>i instanceof Ua),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class pst extends Pd{run(e){const n=e.children.filter(i=>i instanceof Eu),r={};for(const i of n){const s=_t(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of Te(r)){const s=r[i];if(s.length>1){const o=s.pop();for(const u of s)o.merge(u)&&(e.removeChild(u),u.parent=o,u.remove(),this.setModified())}}}}class gst extends Pd{constructor(e){super(),this.model=e}run(e){const n=!(Bk(e)||e instanceof G1||e instanceof ai||e instanceof Jc),r=[],i=[];for(const s of e.children)s instanceof qa&&(n&&!JY(e.producedFields(),s.dependentFields())?r.push(s):i.push(s));if(r.length>0){const s=r.pop();for(const o of r)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof qa?e.merge(s,this.model.renameSignal.bind(this.model)):s.swapWithParent()}if(i.length>1){const s=i.pop();for(const o of i)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class mst extends Pd{run(e){const n=[...e.children];if(!w2(n,o=>o instanceof zi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof zi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof zi)u=a;else break}i.push(...u.children),s?(e.removeChild(o),o.parent=s.parent,s.parent.removeChild(s),s.parent=u,this.setModified()):s=u}else i.push(o);if(i.length){this.setModified();for(const o of i)o.parent.removeChild(o),o.parent=s}}}class Md extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Md(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(this.transform.groupby.concat(e),n=>n)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`JoinAggregateTransform ${_t(this.transform)}`}assemble(){const e=[],n=[],r=[];for(const s of this.transform.joinaggregate)n.push(s.op),r.push(this.getDefaultName(s)),e.push(s.field===void 0?null:s.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:r,ops:n,fields:e},i!==void 0?{groupby:i}:{})}}function yst(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function Est(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class a0 extends Ut{constructor(e,n){super(e),this._stack=n}clone(){return new a0(null,ut(this._stack))}static makeFromTransform(e,n){const{stack:r,groupby:i,as:s,offset:o="zero"}=n,u=[],a=[];if(n.sort!==void 0)for(const f of n.sort)u.push(f.field),a.push(Zn(f.order,"ascending"));const l={field:u,order:a};let c;return Est(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new a0(e,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(e,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:s,fieldChannel:o,offset:u,impute:a}=r,l=s.map(h=>{const p=i[h];return Pa(p)}).filter(h=>!!h),c=yst(n),f=n.encoding.order;let x;return _e(f)||Ie(f)?x=vK(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new a0(e,{dimensionFieldDefs:l,stackField:n.vgField(o),facetby:[],stackby:c,sort:x,offset:u,impute:a,as:[n.vgField(o,{suffix:"start",forAs:!0}),n.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${_t(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:n,groupby:r}=this._stack;return e.length>0?e.map(i=>i.bin?n?[$e(i,{binSuffix:"mid"})]:[$e(i,{}),$e(i,{binSuffix:"end"})]:[$e(i)]).flat():r??[]}assemble(){const e=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:s,sort:o,offset:u,impute:a,as:l}=this._stack;if(a)for(const c of r){const{bandPosition:f=.5,bin:x}=c;if(x){const h=$e(c,{expr:"datum"}),p=$e(c,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${f}*${h}+${1-f}*${p}`,as:$e(c,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...s,...n],key:$e(c,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:o,as:l,offset:u}),e}}class X1 extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new X1(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(this.transform.groupby.concat(e),n=>n)}dependentFields(){var e,n;const r=new Set;return((e=this.transform.groupby)!==null&&e!==void 0?e:[]).forEach(r.add,r),((n=this.transform.sort)!==null&&n!==void 0?n:[]).forEach(i=>r.add(i.field)),this.transform.window.map(i=>i.field).filter(i=>i!==void 0).forEach(r.add,r),r}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`WindowTransform ${_t(this.transform)}`}assemble(){var e;const n=[],r=[],i=[],s=[];for(const x of this.transform.window)r.push(x.op),i.push(this.getDefaultName(x)),s.push(x.param===void 0?null:x.param),n.push(x.field===void 0?null:x.field);const o=this.transform.frame,u=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&r.every(x=>s8(x)))return Object.assign({type:"joinaggregate",as:i,ops:r,fields:n},u!==void 0?{groupby:u}:{});const a=[],l=[];if(this.transform.sort!==void 0)for(const x of this.transform.sort)a.push(x.field),l.push((e=x.order)!==null&&e!==void 0?e:"ascending");const c={field:a,order:l},f=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:s,as:i,ops:r,fields:n,sort:c},f!==void 0?{ignorePeers:f}:{}),u!==void 0?{groupby:u}:{}),o!==void 0?{frame:o}:{})}}function Ast(t){function e(n){if(!(n instanceof K1)){const r=n.clone();if(r instanceof zi){const i=jk+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof Eu||r instanceof a0||r instanceof X1||r instanceof Md)&&r.addDimensions(t.fields);for(const i of n.children.flatMap(e))i.parent=r;return[r]}return n.children.flatMap(e)}return e}function Mk(t){if(t instanceof K1)if(t.numChildren()===1&&!(t.children[0]instanceof zi)){const e=t.children[0];(e instanceof Eu||e instanceof a0||e instanceof X1||e instanceof Md)&&e.addDimensions(t.fields),e.swapWithParent(),Mk(t)}else{const e=t.model.component.data.main;M0e(e);const n=Ast(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(Mk)}function M0e(t){if(t instanceof zi&&t.type===Jt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof K1||(e.swapWithParent(),M0e(t))}}const jk="scale_",V6=5;function Uk(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!Uk(e.children))return!1}return!0}function Au(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function j0e(t,e,n){let r=t.sources,i=!1;return i=Au(new cst,r)||i,i=Au(new ast(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=Au(new dst,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=Au(new fst,r)||i,i=Au(new gst(e),r)||i,i=Au(new lst,r)||i,i=Au(new xst,r)||i,i=Au(new pst,r)||i,i=Au(new hst,r)||i,i=Au(new ust,r)||i,i=Au(new mst,r)||i),t.sources=r,i}function vst(t,e){Uk(t.sources);let n=0,r=0;for(let i=0;i<V6&&j0e(t,e,!0);i++)n++;t.sources.map(Mk);for(let i=0;i<V6&&j0e(t,e,!1);i++)r++;Uk(t.sources),Math.max(n,r)===V6&&Re(`Maximum optimization runs(${V6}) reached.`)}class As{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new As(()=>e(n))}}var Sst=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function U0e(t){Qn(t)?_st(t):Cst(t)}function _st(t){const e=t.component.scales;for(const n of Te(e)){const r=Tst(t,n);if(e[n].setWithExplicit("domains",r),Ost(t,n),t.component.data.isFaceted){let s=t;for(;!vu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)wl(u)&&(u.data=jk+u.data.replace(jk,""))}}}function Cst(t){for(const n of t.children)U0e(n);const e=t.component.scales;for(const n of Te(e)){let r,i=null;for(const s of t.children){const o=s.component.scales[n];if(o){r===void 0?r=o.getWithExplicit("domains"):r=Wc(r,o.getWithExplicit("domains"),"domains","scale",zk);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Re(G8e),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function bst(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=q0e(e,n);if(!i){Re(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=q0e(e,n);if(i)return"unaggregated"}return t}function Tst(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=bst(t.scaleDomain(e),t.typedFieldDef(e),n,t.config.scale);return i!==t.scaleDomain(e)&&(t.specifiedScales[e]=Object.assign(Object.assign({},t.specifiedScales[e]),{domain:i})),e==="x"&&or(r.x2)?or(r.x)?Wc(Zc(n,i,t,"x"),Zc(n,i,t,"x2"),"domain","scale",zk):Zc(n,i,t,"x2"):e==="y"&&or(r.y2)?or(r.y)?Wc(Zc(n,i,t,"y"),Zc(n,i,t,"y2"),"domain","scale",zk):Zc(n,i,t,"y2"):Zc(n,i,t,e)}function Rst(t,e,n){return t.map(r=>({signal:`{data: ${R6(r,{timeUnit:n,type:e})}}`}))}function qk(t,e,n){var r;const i=(r=Ri(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?Rst(t,e,i):[t]}function Zc(t,e,n,r){const{encoding:i}=n,s=or(i[r]),{type:o}=s,u=s.timeUnit;if(Vet(e)){const f=Zc(t,void 0,n,r),x=qk(e.unionWith,o,u);return ja([...f.value,...x])}else{if(Ye(e))return ja([e]);if(e&&e!=="unaggregated"&&!nae(e))return ja(qk(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Ws([[0,1]]);const f=n.requestDataName(Jt.Main);return Ws([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=fc(r)&&Ie(s)?Nst(n,r,t):void 0;if(Ba(s)){const f=qk([s.datum],o,u);return Ws(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Jt.Main),{field:x}=s;return Ws([{data:f,field:$e({field:x,aggregate:"min"})},{data:f,field:$e({field:x,aggregate:"max"})}])}else if(Kt(c.bin)){if(Cr(t))return Ws(t==="bin-ordinal"?[]:[{data:Q5(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r,bE(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!He(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Kt(f)){const x=$k(n,c.field,f);return Ws([new As(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Ws([{data:n.requestDataName(Jt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&Ct(["time","utc"],t)&&Cae(c,Qn(n)?n.encoding[Dl(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Jt.Main);return Ws([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Ws(l?[{data:Q5(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r),sort:l}]:[{data:n.requestDataName(Jt.Main),field:n.vgField(r)}])}function Hk(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":E6)},r?{field:eu(r)}:{}),i?{order:i}:{})}function Ost(t,e){var n;const r=t.component.scales[e],i=t.specifiedScales[e].domain,s=(n=t.fieldDef(e))===null||n===void 0?void 0:n.bin,o=nae(i)&&i,u=Px(s)&&nC(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function Nst(t,e,n){if(!Cr(n))return;const r=t.fieldDef(e),i=r.sort;if(Aae(i))return{op:"min",field:V1(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if($a(i)){const u=s&&!o.has(i.field);return Hk(i,u)}else if(Eae(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(Fl(c)||xc(c))return Hk({field:$e(l),order:a},x);if(s8(c)||!c)return Hk({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(Ct(["ascending",void 0],i))return!0}}function q0e(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!D8e.has(n)?{valid:!1,reason:Awe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:vwe(t)}:{valid:!0}:{valid:!1,reason:Ewe(t)}}function zk(t,e,n,r){return t.explicit&&e.explicit&&Re(Twe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function Dst(t){const e=_l(t.map(o=>wl(o)?Sst(o,["sort"]):o),_t),n=_l(t.map(o=>{if(wl(o)){const u=o.sort;return u!==void 0&&!Q5(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),_t);if(e.length===0)return;if(e.length===1){const o=t[0];if(wl(o)&&n.length>0){let u=n[0];if(n.length>1)Re(kK),u=!0;else if(He(u)&&"field"in u){const a=u.field;o.field===a&&(u=u.order?{order:u.order}:!0)}return Object.assign(Object.assign({},o),{sort:u})}return o}const r=_l(n.map(o=>Q5(o)||!("op"in o)||je(o.op)&&o.op in T8e?o:(Re(Owe(o)),!0)),_t);let i;r.length===1?i=r[0]:r.length>1&&(Re(kK),i=!0);const s=_l(t.map(o=>wl(o)?o.data:null),o=>o);return s.length===1&&s[0]!==null?Object.assign({data:s[0],fields:e.map(u=>u.field)},i?{sort:i}:{}):Object.assign({fields:e},i?{sort:i}:{})}function Qk(t){if(wl(t)&&je(t.field))return t.field;if(w8e(t)){let e;for(const n of t.fields)if(wl(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Re(Nwe),e}return Re(Dwe),e}else if(L8e(t)){Re(Fwe);const e=t.fields[0];return je(e)?e:void 0}}function Y6(t,e){const r=t.component.scales[e].get("domains").map(i=>(wl(i)&&(i.data=t.lookupDataSource(i.data)),i));return Dst(r)}var Fst=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function H0e(t){return J1(t)||Vk(t)?t.children.reduce((e,n)=>e.concat(H0e(n)),z0e(t)):z0e(t)}function z0e(t){return Te(t.component.scales).reduce((e,n)=>{const r=t.component.scales[n];if(r.merged)return e;const i=r.combine(),{name:s,type:o,selectionExtent:u,domains:a,range:l,reverse:c}=i,f=Fst(i,["name","type","selectionExtent","domains","range","reverse"]),x=wst(i.range,s,n,t),h=Y6(t,n),p=u?Srt(t,u,r,h):null;return e.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:s,type:o},h?{domain:h}:{}),p?{domainRaw:p}:{}),{range:x}),c!==void 0?{reverse:c}:{}),f)),e},[])}function wst(t,e,n,r){if(Ir(n)){if(hc(t))return{step:{signal:`${e}_step`}}}else if(He(t)&&wl(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class Q0e extends u0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:w2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const Lst=["range","scheme"];function Ist(t){const e=t.component.scales;for(const n of tC){const r=e[n];if(!r)continue;const i=$st(n,t);r.setWithExplicit("range",i)}}function G0e(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=ls(e),o=t.getName(s);if(He(r)&&r.binned&&r.step!==void 0)return new As(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Kt(r)){const u=$k(t,i,r);return new As(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function $st(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of Lst)if(n[f]!==void 0){const x=NB(s,f),h=rae(t,f);if(!x)Re($K(s,f,t));else if(h)Re(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(Ir(t))return ja(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return As.fromName(y,g)}return m}))}else if(He(p))return ja({data:e.requestDataName(Jt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return ja(p)}case"scheme":return ja(Bst(n[f]))}}const o=t===En||t==="xOffset"?"width":"height",u=r[o];if(Ma(u)){if(Ir(t))if(Cr(s)){const f=W0e(u,e,t);if(f)return ja({step:f})}else Re(BK(o));else if(B2(t)){const f=t===sc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=V0e(u,s);if(p)return ja(p)}}}const{rangeMin:a,rangeMax:l}=n,c=kst(t,e);return(a!==void 0||l!==void 0)&&NB(s,"rangeMin")&&_e(c)&&c.length===2?ja([a??c[0],l??c[1]]):Ws(c)}function Bst(t){return Wet(t)?Object.assign({scheme:t.name},ho(t,["name"])):{scheme:t}}function kst(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=or(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case En:case gr:{if(Ct(["point","band"],l)){const p=Y0e(t,n,r.view);if(Ma(p))return{step:W0e(p,e,t)}}const x=ls(t),h=e.getName(x);return t===gr&&Gs(l)?[As.fromName(o,h),0]:[0,As.fromName(o,h)]}case sc:case I2:return Pst(t,e,l);case Ol:{const x=e.component.scales[t].get("zero"),h=K0e(i,x,r),p=Ust(i,n,e,r);return $1(l)?jst(h,p,Mst(l,r,c,t)):[h,p]}case nu:return[0,Math.PI*2];case $x:return[0,360];case oa:return[0,new As(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case ac:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case lc:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case as:return"symbol";case us:case la:case ca:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Nl:case oc:case uc:return[r.scale.minOpacity,r.scale.maxOpacity]}}function W0e(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=oK(n),f=a[c];if(ile({step:t,offsetIsDiscrete:st(f)&&Kue(f.type)})==="offset"&&kae(a,c)){const h=e.getScaleComponent(c);let m=`domain('${e.scaleName(c)}').length`;if(h.get("type")==="band"){const y=(i=(r=h.get("paddingInner"))!==null&&r!==void 0?r:h.get("padding"))!==null&&i!==void 0?i:0,E=(o=(s=h.get("paddingOuter"))!==null&&s!==void 0?s:h.get("padding"))!==null&&o!==void 0?o:0;m=`bandspace(${m}, ${y}, ${E})`}const g=(u=l.get("paddingInner"))!==null&&u!==void 0?u:l.get("padding");return{signal:`${t.step} * ${m} / (1-${B8e(g)})`}}else return t.step}function V0e(t,e){if(ile({step:t,offsetIsDiscrete:Cr(e)})==="offset")return{step:t.step}}function Pst(t,e,n){const r=t===sc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=Y0e(r,e.size,e.config.view);if(Ma(u)){const a=V0e(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return KFe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function Y0e(t,e,n){const r=t===En?"width":"height",i=e[r];return i||$6(n,r)}function Mst(t,e,n,r){switch(t){case"quantile":return e.scale.quantileCount;case"quantize":return e.scale.quantizeCount;case"threshold":return n!==void 0&&_e(n)?n.length+1:(Re(jwe(r)),3)}}function jst(t,e,n){const r=()=>{const i=Ll(e),s=Ll(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new As(r):{signal:r()}}function K0e(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${K0e(t,!1,n)}`}:0;switch(t){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(iC("size",t))}const X0e=.95;function Ust(t,e,n,r){const i={x:G0e(n,"x"),y:G0e(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=J0e(e,i,r.view);return nn(s)?s-1:new As(()=>`${s.signal} - 1`)}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const s=J0e(e,i,r.view);return nn(s)?Math.pow(X0e*s,2):new As(()=>`pow(${X0e} * ${s.signal}, 2)`)}}throw new Error(iC("size",t))}function J0e(t,e,n){const r=Ma(t.width)?t.width.step:I6(n,"width"),i=Ma(t.height)?t.height.step:I6(n,"height");return e.x||e.y?new As(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function Z0e(t,e){Qn(t)?qst(t,e):nce(t,e)}function qst(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of Te(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=or(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=NB(h,e),y=rae(u,e);if(x!==void 0&&(g?y&&Re(y):Re($K(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":jx(a[e])||A==="temporal"||E?l.set(e,{signal:R6(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in ece?ece[e]({model:t,channel:u,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:a.domain,domainMin:a.domainMin,domainMax:a.domainMax,markDef:s,config:r,hasNestedOffsetScale:WB(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const ece={bins:({model:t,fieldOrDatumDef:e})=>Ie(e)?Hst(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>zst(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Qst(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Gst(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Wst(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>Vst(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Ie(t)?t.sort:void 0;return Yst(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Kst(t,e,n,r,i)};function tce(t){Qn(t)?Ist(t):nce(t,"range")}function nce(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?tce(r):Z0e(r,e);for(const r of Te(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=Wc(i,u,e,"scale",Dle((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Hst(t,e){const n=e.bin;if(Kt(n)){const r=$k(t,e.field,n);return new As(()=>t.getSignalName(r))}else if(Ti(n)&&Px(n)&&n.step!==void 0)return{step:n.step}}function zst(t,e){if(Ct([us,la,ca],t)&&e!=="nominal")return"hcl"}function Qst(t,e,n,r,i,s){var o;if(!(!((o=Pa(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||Ct([Es.TIME,Es.UTC],t)))return Ir(e)?!0:void 0}function Gst(t,e,n,r,i,s){if(Ir(t)){if(mu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Ie(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===Es.POINT)return n.pointPadding}}function Wst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:Zn(o,n==="bar"?u:a)}else if(B2(e)&&r===Es.BAND)return i.offsetBandPaddingInner}}function Vst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===Es.BAND)return Zn(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(B2(e)){if(n===Es.POINT)return .5;if(n===Es.BAND)return i.offsetBandPaddingOuter}}}function Yst(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return Gs(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(Gs(t)&&e==="descending")return!0}function Kst(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&Gs(i)){if(_e(n)){const o=n[0],u=n[n.length-1];if(o<=0&&u>=0)return!0}return!1}if(t==="size"&&e.type==="quantitative"&&!$1(i))return!0;if(!(Ie(e)&&e.bin)&&Ct([...fa,...y8e],t)){const{orient:o,type:u}=r;return!(Ct(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function Xst(t,e,n,r,i=!1){const s=Jst(e,n,r,i),{type:o}=t;return fc(e)?o!==void 0?Zet(e,o)?Ie(n)&&!Jet(o,n.type)?(Re(Cwe(o,s)),s):o:(Re(_we(e,o,s)),s):s:null}function Jst(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if($2(t)||i8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Re(f8(t,"ordinal")),"ordinal";if(Ir(t)||B2(t)){if(Ct(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in r8)return"band";const s=n[ls(t)];return B1(s)||HB(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return $2(t)?"time":i8(t)==="discrete"?(Re(f8(t,"temporal")),"ordinal"):Ie(e)&&e.timeUnit&&Ri(e.timeUnit).utc?"utc":"time";case"quantitative":return $2(t)?Ie(e)&&Kt(e.bin)?"bin-ordinal":"linear":i8(t)==="discrete"?(Re(f8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(LK(e.type))}function Zst(t,{ignoreRange:e}={}){rce(t),U0e(t);for(const n of Xet)Z0e(t,n);e||tce(t)}function rce(t){Qn(t)?t.component.scales=eot(t):t.component.scales=not(t)}function eot(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of tC){const o=or(e[s]);if(o&&n===oae&&s===as&&o.type===I1)continue;let u=o&&o.scale;if(B2(s)){const a=uK(s);if(!WB(e,a)){u&&Re(lwe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=WB(e,s),l=Xst(u,s,o,r,a);i[s]=new Q0e(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const tot=Dle((t,e)=>Xue(t)-Xue(e));function not(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){rce(o);for(const u of Te(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=v0e(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?qet(a.value,l.value)?i[u]=Wc(a,l,"type","scale",tot):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of Te(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new Q0e(u,a);for(const l of t.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),u),c.merged=!0)}}return r}var Gk=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Wk{constructor(){this.nameMap={}}rename(e,n){this.nameMap[e]=n}has(e){return this.nameMap[e]!==void 0}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function Qn(t){return(t==null?void 0:t.type)==="unit"}function vu(t){return(t==null?void 0:t.type)==="facet"}function Vk(t){return(t==null?void 0:t.type)==="concat"}function J1(t){return(t==null?void 0:t.type)==="layer"}class Yk{constructor(e,n,r,i,s,o,u){var a,l;this.type=n,this.parent=r,this.config=s,this.correctDataNames=c=>{var f,x,h;return!((f=c.from)===null||f===void 0)&&f.data&&(c.from.data=this.lookupDataSource(c.from.data)),!((h=(x=c.from)===null||x===void 0?void 0:x.facet)===null||h===void 0)&&h.data&&(c.from.facet.data=this.lookupDataSource(c.from.facet.data)),c},this.parent=r,this.config=s,this.view=cs(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=dc(e.title)?{text:e.title}:e.title?cs(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Wk,this.projectionNameMap=r?r.projectionNameMap:new Wk,this.signalNameMap=r?r.signalNameMap:new Wk,this.data=e.data,this.description=e.description,this.transforms=irt((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:fnt(e,n,s),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:A6(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new u0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ut(o):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){Zst(this)}parseProjection(){I0e(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){N0e(this)}assembleEncodeFromView(e){const n=Gk(e,["style"]),r={};for(const i of Te(n)){const s=n[i];s!==void 0&&(r[i]=sn(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=sn(this.description)),this.type==="unit"||this.type==="layer")?Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},n??{}):Wt(n)?void 0:n}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:n}=e,r=Gk(e,["spacing"]),{component:i,config:s}=this,o=Eit(i.layoutHeaders,s);return Object.assign(Object.assign(Object.assign({padding:n},this.assembleDefaultLayout()),r),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let n=[];for(const r of go)e[r].title&&n.push(dit(this,r));for(const r of Nk)n=n.concat(hit(this,r));return n}assembleAxes(){return tit(this.component.axes,this.config)}assembleLegends(){return F0e(this)}assembleProjections(){return Hit(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=Gk(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},pK(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return Ct(["unit","layer"],this.type)?Ct(["middle",void 0],u.anchor)&&((n=u.frame)!==null&&n!==void 0||(u.frame="group")):(r=u.anchor)!==null&&r!==void 0||(u.anchor="start"),Wt(u)?void 0:u}assembleGroup(e=[]){const n={};e=e.concat(this.assembleSignals()),e.length>0&&(n.signals=e);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||vu(this.parent)?H0e(this):[];i.length>0&&(n.scales=i);const s=this.assembleAxes();s.length>0&&(n.axes=s);const o=this.assembleLegends();return o.length>0&&(n.legends=o),n}getName(e){return yn((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Jt[e].toLowerCase())}requestDataName(e){const n=this.getDataName(e),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(e){if(vu(this.parent)){const n=E0e(e),r=eC(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Cr(s)&&hc(o)){const u=i.get("name"),a=Y6(this,r),l=Qk(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:y0e(u,i,c)}}else return Re(l8(r)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const n=this.component.data.outputNodes[e];return n?n.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,n){this.signalNameMap.rename(e,n)}renameScale(e,n){this.scaleNameMap.rename(e,n)}renameProjection(e,n){this.projectionNameMap.rename(e,n)}scaleName(e,n){if(n)return this.getName(e);if(iK(e)&&fc(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e)))return this.scaleNameMap.get(this.getName(e))}projectionName(e){if(e)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[e];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,n){let r=this.component.selection[e];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(e,n)),!r)throw new Error(U8e(n));return r}hasAxisOrientSignalRef(){var e,n;return((e=this.component.axes.x)===null||e===void 0?void 0:e.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)===null||n===void 0?void 0:n.some(r=>r.hasOrientSignalRef()))}}class ice extends Yk{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return Utt(this.getMapping(),(r,i,s)=>{const o=Pa(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){YB(this.getMapping(),(r,i)=>{const s=Pa(r);s&&e(s,i)},n)}}var rot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class K6 extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"value",(s=o[1])!==null&&s!==void 0?s:"density"]}clone(){return new K6(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=rot(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class BE extends Ut{constructor(e,n){super(e),this.filter=n}clone(){return new BE(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if(It("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=fc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");Gs(x)&&l.aggregate!=="count"&&!zc(i)&&(a[l.field]=l)}return a},{});return Te(u).length?new BE(e,u):null}dependentFields(){return new Set(Te(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${_t(this.filter)}`}assemble(){const e=Te(this.filter).reduce((n,r)=>{const i=this.filter[r],s=$e(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${s}) || (isValid(${s}) && isFinite(+${s})))`):i.type==="quantitative"&&(n.push(`isValid(${s})`),n.push(`isFinite(+${s})`))),n},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class X6 extends Ut{constructor(e,n){super(e),this.transform=n,this.transform=ut(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((s,o)=>{var u;return(u=i[o])!==null&&u!==void 0?u:s})}clone(){return new X6(this.parent,ut(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${_t(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class J6 extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"key",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new J6(null,ut(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${_t(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class Z1 extends Ut{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new Z1(null,ut(this.fields),this.geojson,this.signal)}static parseAll(e,n){if(n.component.projection&&!n.component.projection.isFit)return e;let r=0;for(const i of[[aa,ua],[po,ru]]){const s=i.map(o=>{const u=or(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new Z1(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(as)){const i=n.typedFieldDef(as);i.type===I1&&(e=new Z1(e,null,i.field,n.getName(`geojson_${r++}`)))}return e}dependentFields(){var e;const n=((e=this.fields)!==null&&e!==void 0?e:[]).filter(je);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${_t(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class kE extends Ut{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new kE(null,this.projection,ut(this.fields),ut(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[aa,ua],[po,ru]]){const i=r.map(o=>{const u=or(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===po?"2":"";(i[0]||i[1])&&(e=new kE(e,n.projectionName(),i,[n.getName(`x${s}`),n.getName(`y${s}`)]))}return e}dependentFields(){return new Set(this.fields.filter(je))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${_t(this.fields)} ${_t(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class jd extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new jd(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:n=0,stop:r,step:i}=e;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,n){return new jd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Ie(i)&&Ie(s)){const o=i.impute?i:s.impute?s:void 0;if(o===void 0)return;const u=i.impute?s:s.impute?i:void 0,{method:a,value:l,frame:c,keyvals:f}=o.impute,x=Mae(n.mark,r);return new jd(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:u.field},a?{method:a}:{}),l!==void 0?{value:l}:{}),c?{frame:c}:{}),f!==void 0?{keyvals:f}:{}),x.length?{groupby:x}:{}))}return null}hash(){return`Impute ${_t(this.transform)}`}assemble(){const{impute:e,key:n,keyvals:r,method:i,groupby:s,value:o,frame:u=[null,null]}=this.transform,a=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:n},r?{keyvals:jnt(r)?this.processSequence(r):r}:{}),{method:"value"}),s?{groupby:s}:{}),{value:!i||i==="value"?o:null});if(i&&i!=="value"){const l=Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:u,ignorePeers:!1},s?{groupby:s}:{}),c={type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e};return[a,l,c]}else return[a]}}var iot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Z6 extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.loess]}clone(){return new Z6(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=iot(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class PE extends Ut{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new PE(null,ut(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(Unt(o)){let a=ace(o.data,s);a||(a=new kd(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new zi(a,l,Jt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(qnt(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(yn(a),a)}catch{throw new Error(z8e(a))}if(u=l.materialized,!u)throw new Error(Q8e(a))}return new PE(e,r,u.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Pe(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${_t({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:Pe(this.transform.as)}:{});else{let n=this.transform.as;je(n)||(Re(Z8e),n="_lookup"),e={as:[n]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}var sot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class eR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"prob",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new eR(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=sot(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var oot=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class tR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.regression]}clone(){return new tR(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${_t(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=oot(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class nR extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new nR(null,ut(this.transform))}addDimensions(e){var n;this.transform.groupby=_l(((n=this.transform.groupby)!==null&&n!==void 0?n:[]).concat(e),r=>r)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}hash(){return`PivotTransform ${_t(this.transform)}`}assemble(){const{pivot:e,value:n,groupby:r,limit:i,op:s}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:n},i!==void 0?{limit:i}:{}),s!==void 0?{op:s}:{}),r!==void 0?{groupby:r}:{})}}class rR extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new rR(null,ut(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${_t(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function sce(t){let e=0;function n(r,i){var s;if(r instanceof kd&&!r.isGenerator&&!U1(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof ai&&(r.parent instanceof kd&&!i.source?(i.format=Object.assign(Object.assign({},(s=i.format)!==null&&s!==void 0?s:{}),{parse:r.assembleFormatParse()}),i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof K1){i.name||(i.name=`data_${e++}`),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,t.push(...r.assemble());return}switch((r instanceof LE||r instanceof IE||r instanceof BE||r instanceof G1||r instanceof W1||r instanceof kE||r instanceof Eu||r instanceof PE||r instanceof X1||r instanceof Md||r instanceof J6||r instanceof X6||r instanceof K6||r instanceof Z6||r instanceof eR||r instanceof tR||r instanceof Jc||r instanceof rR||r instanceof nR)&&i.transform.push(r.assemble()),(r instanceof qa||r instanceof Ua||r instanceof jd||r instanceof a0||r instanceof Z1)&&i.transform.push(...r.assemble()),r instanceof zi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof zi?r.setSource(i.name):(i.name||(i.name=`data_${e++}`),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof zi&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${e++}`);let o=i.name;!i.source||i.transform.length>0?t.push(i):o=i.source;for(const u of r.children)n(u,{name:null,source:o,transform:[]});break}}}return n}function uot(t){const e=[],n=sce(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function aot(t,e){var n,r;const i=[],s=sce(i);let o=0;for(const a of t.sources){a.hasName()||(a.dataName=`source_${o++}`);const l=a.assemble();s(a,l)}for(const a of i)a.transform.length===0&&delete a.transform;let u=0;for(const[a,l]of i.entries())((n=l.transform)!==null&&n!==void 0?n:[]).length===0&&!l.source&&i.splice(u++,0,i.splice(a,1)[0]);for(const a of i)for(const l of(r=a.transform)!==null&&r!==void 0?r:[])l.type==="lookup"&&(l.from=t.outputNodes[l.from].getSource());for(const a of i)a.name in e&&(a.values=e[a.name]);return i}function lot(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function cot(t){for(const e of go)fot(t,e);uce(t,"x"),uce(t,"y")}function fot(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=Y1("title",null,i,e);let l=k1(u,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});s.component.layoutHeaders[e].title&&(l=_e(l)?l.join(", "):l,l+=` / ${s.component.layoutHeaders[e].title}`,s.component.layoutHeaders[e].title=null);const c=Y1("labelOrient",u.header,i,e),f=u.header!==null?Zn((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=Ct(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[oce(t,e,f)]}}}function oce(t,e,n){const r=e==="row"?"height":"width";return{labels:n,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function uce(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=Lk(s,e),s.axis[e]==="shared"){const o=e==="x"?"column":"row",u=i[o];for(const a of r.component.axes[e]){const l=lot(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[oce(t,o,!1)]);const c=wE(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function xot(t){Kk(t),iR(t,"width"),iR(t,"height")}function dot(t){Kk(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";iR(t,e),iR(t,n)}function Kk(t){for(const e of t.children)e.parseLayoutSize()}function iR(t,e){var n;const r=E0e(e),i=eC(r),s=t.component.resolve,o=t.component.layoutSize;let u;for(const a of t.children){const l=a.component.layoutSize.getWithExplicit(r),c=(n=s.scale[i])!==null&&n!==void 0?n:v0e(i,t);if(c==="independent"&&l.value==="step"){u=void 0;break}if(u){if(c==="independent"&&u.value!==l.value){u=void 0;break}u=Wc(u,l,r,"")}else u=l}if(u){for(const a of t.children)t.renameSignal(a.getName(r),t.getName(e)),a.component.layoutSize.set(r,"merged",!1);o.setWithExplicit(e,u)}else o.setWithExplicit(e,{explicit:!1,value:void 0})}function hot(t){const{size:e,component:n}=t;for(const r of fa){const i=ls(r);if(e[i]){const s=e[i];n.layoutSize.set(i,Ma(s)?"step":s,!0)}else{const s=pot(t,i);n.layoutSize.set(i,s,!1)}}}function pot(t,e){const n=e==="width"?"x":"y",r=t.config,i=t.getScaleComponent(n);if(i){const s=i.get("type"),o=i.get("range");if(Cr(s)){const u=$6(r.view,e);return hc(o)||Ma(u)?"step":u}else return uk(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return uk(r.view,e);{const s=$6(r.view,e);return Ma(s)?s.step:s}}}function Xk(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class ME extends ice{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=nP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!_E(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=Te(e),r={};for(const i of n){if(![Cl,bl].includes(i)){Re(iC(i,"facet"));break}const s=e[i];if(s.field===void 0){Re(c8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=GB(e,n);return r.header?r.header=cs(r.header):r.header===null&&(r.header=null),r}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=sR(this),this.child.parseData()}parseLayoutSize(){Kk(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),cot(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,n,r;const i={};for(const s of go)for(const o of Dk){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=Y1("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=Q6(s,c);(e=i.titleAnchor)!==null&&e!==void 0||(i.titleAnchor={}),i.titleAnchor[f]="end"}}if(a!=null&&a[0]){const c=s==="row"?"height":"width",f=o==="header"?"headerBand":"footerBand";s!=="facet"&&!this.child.component.layoutSize.get(c)&&((n=i[f])!==null&&n!==void 0||(i[f]={}),i[f][s]=.5),u.title&&((r=i.offset)!==null&&r!==void 0||(i.offset={}),i.offset[s==="row"?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:n}=this.facet,r=e?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!e&&this.component.resolve.scale.y==="independent")&&(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),r?{columns:r}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof ME))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof ME?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:$e(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],n=[],r=[];if(this.child instanceof ME){if(this.child.channelHasField("column")){const i=$e(this.child.facet.column);e.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of fa){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Cr(o)&&hc(u)){const a=Y6(this.child,i),l=Qk(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Re(l8(i))}}}return{fields:e,ops:n,as:r}}assembleFacet(){const{name:e,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:s,ops:o,as:u}=this.getCardinalityAggregateForChild(),a=[];for(const c of go){const f=this.facet[c];if(f){a.push($e(f));const{bin:x,sort:h}=f;if(Kt(x)&&a.push($e(f,{binSuffix:"end"})),$a(h)){const{field:p,op:m=E6}=h,g=Xk(f,h);r&&i?(s.push(g),o.push("max"),u.push(g)):(s.push(p),o.push(m),u.push(g))}else if(_e(h)){const p=V1(f,c);s.push(p),o.push("max"),u.push(p)}}}const l=!!r&&!!i;return Object.assign({name:e,data:n,groupby:a},l||s.length>0?{aggregate:Object.assign(Object.assign({},l?{cross:l}:{}),s.length?{fields:s,ops:o,as:u}:{})}:{})}facetSortFields(e){const{facet:n}=this,r=n[e];return r?$a(r.sort)?[Xk(r,r.sort,{expr:"datum"})]:_e(r.sort)?[V1(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[($a(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return Fk(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of Nk)if(n[s]){const o=Y1("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return Fk(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=uot(n),i=e.assembleGroupEncodeEntry(!1),s=this.assembleLabelTitle()||e.assembleTitle(),o=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},s?{title:s}:{}),o?{style:o}:{}),{from:{facet:this.assembleFacet()},sort:{field:go.map(a=>this.facetSortFields(a)).flat(),order:go.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(yrt(this,[])))]}getMapping(){return this.facet}}function got(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if($a(s.sort)){const{field:o,op:u=E6}=s.sort;t=i=new Md(t,{joinaggregate:[{op:u,field:o,as:Xk(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function ace(t,e){var n,r,i,s;for(const o of e){const u=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const a=(n=t.format)===null||n===void 0?void 0:n.mesh,l=(r=u.format)===null||r===void 0?void 0:r.feature;if(a&&l)continue;const c=(i=t.format)===null||i===void 0?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(s=u.format)===null||s===void 0?void 0:s.mesh;if(!((a||f)&&a!==f)){if(OE(t)&&OE(u)){if(Sl(t.values,u.values))return o}else if(U1(t)&&U1(u)){if(t.url===u.url)return o}else if(Fle(t)&&t.name===o.dataName)return o}}return null}function mot(t,e){if(t.data||!t.parent){if(t.data===null){const r=new kd({values:[]});return e.push(r),r}const n=ace(t.data,e);if(n)return Vc(t.data)||(n.data.format=XFe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new kd(t.data);return e.push(r),r}}else return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}function yot(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(Jnt(o))a=t=new W1(t,o),u="derived";else if(xk(o)){const l=rst(o);a=t=(r=ai.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new G1(t,e,o.filter)}else if(_le(o))a=t=qa.makeFromTransform(t,o,e),u="number";else if(ert(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new ai(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=Ua.makeFromTransform(t,o);else if(trt(o))a=t=Eu.makeFromTransform(t,o),u="number",Ck(e)&&(t=new Jc(t));else if(Sle(o))a=t=PE.make(t,e,o,s++),u="derived";else if(Ynt(o))a=t=new X1(t,o),u="number";else if(Knt(o))a=t=new Md(t,o),u="number";else if(nrt(o))a=t=a0.makeFromTransform(t,o),u="derived";else if(rrt(o))a=t=new J6(t,o),u="derived";else if(Xnt(o))a=t=new X6(t,o),u="derived";else if(Hnt(o))a=t=new nR(t,o),u="derived";else if(Vnt(o))t=new rR(t,o);else if(Znt(o))a=t=jd.makeFromTransform(t,o),u="derived";else if(znt(o))a=t=new K6(t,o),u="derived";else if(Qnt(o))a=t=new eR(t,o),u="derived";else if(Gnt(o))a=t=new tR(t,o),u="derived";else if(Wnt(o))a=t=new Z6(t,o),u="derived";else{Re(J8e(o));continue}if(a&&u!==void 0)for(const l of(i=a.producedFields())!==null&&i!==void 0?i:[])n.set(l,u,!1)}return t}function sR(t){var e,n,r,i,s,o,u,a,l,c;let f=mot(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Vc(p)||U1(p)||OE(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new prt;Vc(p)?(wle(p)?f=new IE(f,p.sequence):pk(p)&&(f=new LE(f,p.graticule)),g.parseNothing=!0):((e=p==null?void 0:p.format)===null||e===void 0?void 0:e.parse)===null&&(g.parseNothing=!0),f=(n=ai.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Jc(f);const y=t.parent&&J1(t.parent);(Qn(t)||vu(t))&&y&&(f=(r=qa.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=yot(f,t,g));const E=sst(t),A=ist(t);f=(i=ai.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,Qn(t)&&(f=Z1.parseAll(f,t),f=kE.parseAll(f,t)),(Qn(t)||vu(t))&&(y||(f=(s=qa.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=Ua.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=W1.parseAllForSortIndex(f,t));const v=t.getDataName(Jt.Raw),S=new zi(f,v,Jt.Raw,h);if(x[v]=S,f=S,Qn(t)){const R=Eu.makeFromEncoding(f,t);R&&(f=R,Ck(t)&&(f=new Jc(f))),f=(u=jd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=a0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}Qn(t)&&(f=(l=BE.make(f,t))!==null&&l!==void 0?l:f);const C=t.getDataName(Jt.Main),_=new zi(f,C,Jt.Main,h);x[C]=_,f=_,Qn(t)&&Zrt(t,_);let b=null;if(vu(t)){const R=t.getName("facet");f=(c=got(f,t.facet))!==null&&c!==void 0?c:f,b=new K1(f,t,R,_.getSource()),x[R]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:S,main:_,facetRoot:b,ancestorParse:g})}class Eot extends Yk{constructor(e,n,r,i){var s,o,u,a;super(e,"concat",n,r,i,e.resolve),(((o=(s=e.resolve)===null||s===void 0?void 0:s.axis)===null||o===void 0?void 0:o.x)==="shared"||((a=(u=e.resolve)===null||u===void 0?void 0:u.axis)===null||a===void 0?void 0:a.y)==="shared")&&Re(Y8e),this.children=this.getChildren(e).map((l,c)=>nP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=sR(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return L6(e)?e.vconcat:ok(e)?e.hconcat:e.concat}parseLayoutSize(){dot(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){const e=wk(this);for(const n of this.children)e.push(...n.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleMarks(){return this.children.map(e=>{const n=e.assembleTitle(),r=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},n?{title:n}:{}),r?{style:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},e!=null?{columns:e}:{}),{bounds:"full",align:"each"})}}function Aot(t){return t===!1||t===null}const vot=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Iae),{labelExpr:1,encode:1}),lce=Te(vot);class Jk extends u0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new Jk(ut(this.explicit),ut(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!Aot(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function Sot(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=or(i[e]))!==null&&r!==void 0?r:or(i[Dl(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return Ld(l)?Object.assign({text:kB({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function _ot(t){return fa.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[Dot(n,t)]),e),{})}const Cot={bottom:"top",top:"bottom",left:"right",right:"left"};function bot(t){var e;const{axes:n,resolve:r}=t.component,i={top:0,bottom:0,right:0,left:0};for(const s of t.children){s.parseAxesAndHeaders();for(const o of Te(s.component.axes))r.axis[o]=Lk(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=Tot(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of fa){for(const o of t.children)if(o.component.axes[s]){if(r.axis[s]==="independent"){n[s]=((e=n[s])!==null&&e!==void 0?e:[]).concat(o.component.axes[s]);for(const u of o.component.axes[s]){const{value:a,explicit:l}=u.getWithExplicit("orient");if(!Ye(a)){if(i[a]>0&&!l){const c=Cot[a];i[a]>i[c]&&u.set("orient",c,!1)}i[a]++}}}delete o.component.axes[s]}if(r.axis[s]==="independent"&&n[s]&&n[s].length>1)for(const o of n[s])o.get("grid")&&!o.explicit.grid&&(o.implicit.grid=!1)}}function Tot(t,e){if(t){if(t.length!==e.length)return;const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=e[r];if(!!i!=!!s)return;if(i&&s){const o=i.getWithExplicit("orient"),u=s.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;t[r]=Rot(i,s)}}}else return e.map(n=>n.clone());return t}function Rot(t,e){for(const n of lce){const r=Wc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return CK(i,s);case"gridScale":return{explicit:i.explicit,value:Zn(i.value,s.value)}}return k6(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function Oot(t,e,n,r,i){if(e==="disable")return n!==void 0;switch(n=n||{},e){case"titleAngle":case"labelAngle":return t===(Ye(n.labelAngle)?n.labelAngle:V5(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===d0e(r,i))return!0}return t===n[e]}const Not=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Dot(t,e){var n,r,i;let s=e.axis(t);const o=new Jk,u=or(e.encoding[t]),{mark:a,config:l}=e,c=(s==null?void 0:s.orient)||((n=l[t==="x"?"axisX":"axisY"])===null||n===void 0?void 0:n.orient)||((r=l.axis)===null||r===void 0?void 0:r.orient)||lit(t),f=e.getScaleComponent(t).get("type"),x=nit(t,f,c,e.config),h=s!==void 0?!s:Rk("disable",l.style,s==null?void 0:s.style,x).configValue;if(o.set("disable",h,s!==void 0),h)return o;s=s||{};const p=oit(u,s,t,l.style,x),m={fieldOrDatumDef:u,axis:s,channel:t,model:e,scaleType:f,orient:c,labelAngle:p,mark:a,config:l};for(const E of lce){const A=E in c0e?c0e[E](m):$ae(E)?s[E]:void 0,v=A!==void 0,S=Oot(A,E,s,e,t);if(v&&S)o.set(E,A,S);else{const{configValue:C=void 0,configFrom:_=void 0}=$ae(E)&&E!=="values"?Rk(E,l.style,s.style,x):{},b=C!==void 0;v&&!b?o.set(E,A,S):(_!=="vgAxisConfig"||Not.has(E)&&b||TE(C)||Ye(C))&&o.set(E,C,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=Lae.reduce((E,A)=>{var v;if(!o.hasAxisPart(A))return E;const S=A0e((v=g[A])!==null&&v!==void 0?v:{},e),C=A==="labels"?Sot(e,t,S):S;return C!==void 0&&!Wt(C)&&(E[A]={update:C}),E},{});return Wt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function Fot({encoding:t,size:e}){for(const n of fa){const r=ls(n);Ma(e[r])&&ka(t[n])&&(delete e[r],Re(BK(r)))}return e}function wot(t,e,n){const r=cs(t),i=It("orient",r,n);if(r.orient=Bot(r.type,e,i),i!==void 0&&i!==r.orient&&Re(gwe(r.orient,i)),r.type==="bar"&&r.orient){const u=It("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:ltt[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return It("opacity",r,n)===void 0&&(r.opacity=Iot(r.type,e)),It("cursor",r,n)===void 0&&(r.cursor=Lot(r,e,n)),r}function Lot(t,e,n){return e.href||t.href||It("href",t,n)?"pointer":t.cursor}function Iot(t,e){if(Ct([p6,DB,FB,wB],t)&&!VB(e))return .7}function $ot(t,e,{graticule:n}){if(n)return!1;const r=Mx("filled",t,e),i=t.type;return Zn(r,i!==p6&&i!==h6&&i!==g6)}function Bot(t,e,n){switch(t){case p6:case FB:case wB:case sae:case ttt:case ett:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case d6:if(Ie(r)&&(Ti(r.bin)||Ie(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Ie(i)&&(Ti(i.bin)||Ie(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Ie(r)&&r.type===Fd&&!Kt(r.bin)||qB(r)))return"horizontal";if(!o&&(Ie(i)&&i.type===Fd&&!Kt(i.bin)||qB(i)))return"vertical"}case g6:if(s&&!(Ie(r)&&Ti(r.bin))&&o&&!(Ie(i)&&Ti(i.bin)))return;case x6:if(o)return Ie(i)&&Ti(i.bin)?"horizontal":"vertical";if(s)return Ie(r)&&Ti(r.bin)?"vertical":"horizontal";if(t===g6){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case h6:case DB:{const u=ka(r),a=ka(i);if(n)return n;if(u&&!a)return t!=="tick"?"horizontal":"vertical";if(!u&&a)return t!=="tick"?"vertical":"horizontal";if(u&&a){const l=r,c=i,f=l.type===L1,x=c.type===L1;return f&&!x?t!=="tick"?"vertical":"horizontal":!f&&x?t!=="tick"?"horizontal":"vertical":!l.aggregate&&c.aggregate?t!=="tick"?"vertical":"horizontal":l.aggregate&&!c.aggregate&&t!=="tick"?"horizontal":"vertical"}else return}}return"vertical"}const kot={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Kc(t,"radius")),Kc(t,"theta"))},Pot={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),M6("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),M6("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),Sk(t))},Mot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Kc(t,"x")),Kc(t,"y"))},jot={vgMark:"shape",encodeEntry:t=>Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:t=>{const{encoding:e}=t,n=e.shape;return[Object.assign({type:"geoshape",projection:t.projectionName()},n&&Ie(n)&&n.type===I1?{field:$e(n,{expr:"datum"})}:{})]}},Uot={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Kc(t,"x")),Kc(t,"y")),Ak(t,"url"))},qot={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t,{vgChannel:"strokeWidth"})),Sk(t))},Hot={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),Sk(t))};function Zk(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),br("angle",t)),zot(t,n,e))}function zot(t,e,n){return n?{shape:{value:n}}:br("shape",t)}const Qot={vgMark:"symbol",encodeEntry:t=>Zk(t)},Got={vgMark:"symbol",encodeEntry:t=>Zk(t,"circle")},Wot={vgMark:"symbol",encodeEntry:t=>Zk(t,"square")},Vot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Kc(t,"x")),Kc(t,"y"))},Yot={vgMark:"rule",encodeEntry:t=>{const{markDef:e}=t,n=e.orient;return!t.encoding.x&&!t.encoding.y&&!t.encoding.latitude&&!t.encoding.longitude?{}:Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),M6("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),M6("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),br("size",t,{vgChannel:"strokeWidth"}))}},Kot={vgMark:"text",encodeEntry:t=>{const{config:e,encoding:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Ak(t)),br("size",t,{vgChannel:"fontSize"})),br("angle",t)),Qle("align",Xot(t.markDef,n,e))),Qle("baseline",Jot(t.markDef,n,e))),ui("radius",t,{defaultPos:null})),ui("theta",t,{defaultPos:null}))}};function Xot(t,e,n){if(It("align",t,n)===void 0)return"center"}function Jot(t,e,n){if(It("baseline",t,n)===void 0)return"middle"}const Zot={vgMark:"rect",encodeEntry:t=>{const{config:e,markDef:n}=t,r=n.orient,i=r==="horizontal"?"width":"height",s=r==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Do(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid",vgChannel:"xc"})),ui("y",t,{defaultPos:"mid",vgChannel:"yc"})),br("size",t,{defaultValue:eut(t),vgChannel:i})),{[s]:sn(It("thickness",n,e))})}};function eut(t){var e;const{config:n,markDef:r}=t,{orient:i}=r,s=i==="horizontal"?"width":"height",o=t.getScaleComponent(i==="horizontal"?"x":"y"),u=(e=It("size",r,n,{vgChannel:s}))!==null&&e!==void 0?e:n.tick.bandSize;if(u!==void 0)return u;{const a=o?o.get("range"):void 0;return a&&hc(a)&&nn(a.step)?a.step*3/4:I6(n.view,s)*3/4}}const oR={arc:kot,area:Pot,bar:Mot,circle:Got,geoshape:jot,image:Uot,line:qot,point:Qot,rect:Vot,rule:Yot,square:Wot,text:Kot,tick:Zot,trail:Hot};function tut(t){if(Ct([h6,x6,ntt],t.mark)){const e=Mae(t.mark,t.encoding);if(e.length>0)return nut(t,e)}else if(t.mark===d6){const e=o8.some(n=>It(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return rut(t)}return eP(t)}const cce="faceted_path_";function nut(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:cce+t.requestDataName(Jt.Main),data:t.requestDataName(Jt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:eP(t,{fromPrefix:cce})}]}const fce="stack_group_";function rut(t){var e;const[n]=eP(t,{fromPrefix:fce}),r=t.scaleName(t.stack.fieldChannel),i=(c={})=>t.vgField(t.stack.fieldChannel,c),s=(c,f)=>{const x=[i({prefix:"min",suffix:"start",expr:f}),i({prefix:"max",suffix:"start",expr:f}),i({prefix:"min",suffix:"end",expr:f}),i({prefix:"max",suffix:"end",expr:f})];return`${c}(${x.map(h=>`scale('${r}',${h})`).join(",")})`};let o,u;t.stack.fieldChannel==="x"?(o=Object.assign(Object.assign({},E3(n.encode.update,["y","yc","y2","height",...o8])),{x:{signal:s("min","datum")},x2:{signal:s("max","datum")},clip:{value:!0}}),u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update=Object.assign(Object.assign({},ho(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},E3(n.encode.update,["x","xc","x2","width"])),{y:{signal:s("min","datum")},y2:{signal:s("max","datum")},clip:{value:!0}}),u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update=Object.assign(Object.assign({},ho(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of o8){const f=Mx(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=sn(f)),f&&(n.encode.update[c]={value:0})}const a=[];if(((e=t.stack.groupbyChannels)===null||e===void 0?void 0:e.length)>0)for(const c of t.stack.groupbyChannels){const f=t.fieldDef(c),x=$e(f);x&&a.push(x),(f!=null&&f.bin||f!=null&&f.timeUnit)&&a.push($e(f,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((c,f)=>{if(n.encode.update[f])return Object.assign(Object.assign({},c),{[f]:n.encode.update[f]});{const x=Mx(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:sn(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Jt.Main),name:fce+t.requestDataName(Jt.Main),groupby:a,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:u},marks:[n]}]}]}function iut(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&yu(u)&&VY(u.value)||!u&&VY(It("order",s,o)))){if((_e(u)||Ie(u))&&!r)return vK(u,{expr:"datum"});if(zc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Ie(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if($a(c))return{field:$e({aggregate:VB(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(Eae(c)){const f=t.fieldDef(c.encoding);return{field:$e(f,{expr:"datum"}),order:c.order}}else return c===null?void 0:{field:$e(l,{binSuffix:!((e=t.stack)===null||e===void 0)&&e.impute?"mid":void 0,expr:"datum"})}}return}}}function eP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=Zn(r.clip,sut(t),out(t)),u=EK(r),a=i.key,l=iut(t),c=uut(t),f=It("aria",r,s),x=oR[n].postEncodingTransform?oR[n].postEncodingTransform(t):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName("marks"),type:oR[n].vgMark},o?{clip:!0}:{}),u?{style:u}:{}),a?{key:a.field}:{}),l?{sort:l}:{}),c||{}),f===!1?{aria:f}:{}),{from:{data:e.fromPrefix+t.requestDataName(Jt.Main)},encode:{update:oR[n].encodeEntry(t)}}),x?{transform:x}:{})]}function sut(t){const e=t.getScaleComponent("x"),n=t.getScaleComponent("y");return e!=null&&e.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function out(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function uut(t){if(!t.component.selection)return null;const e=Te(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=Te(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class xce extends ice{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,sle(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=Ia(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=$ot(u,s,{graticule:e.data&&pk(e.data)}));const l=this.encoding=Mtt(e.encoding||{},a,u.filled,s);this.markDef=wot(u,l,s),this.size=Fot({encoding:l,size:sle(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=dle(a,l),this.specifiedScales=this.initScales(a,l),this.specifiedAxes=this.initAxes(l),this.specifiedLegends=this.initLegends(l),this.specifiedProjection=e.projection,this.selection=((o=e.params)!==null&&o!==void 0?o:[]).filter(c=>ik(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===oae,r=e&&l8e.some(i=>st(e[i]));return n||r}scaleDomain(e){const n=this.specifiedScales[e];return n?n.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,n){return tC.reduce((r,i)=>{var s;const o=or(n[i]);return o&&(r[i]=this.initScale((s=o.scale)!==null&&s!==void 0?s:{})),r},{})}initScale(e){const{domain:n,range:r}=e,i=cs(e);return _e(n)&&(i.domain=n.map(ks)),_e(r)&&(i.range=r.map(ks)),i}initAxes(e){return fa.reduce((n,r)=>{const i=e[r];if(st(i)||r===En&&st(e.x2)||r===gr&&st(e.y2)){const s=st(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=Te(e),r={};for(const i of n){const s=e[i];r[i]=TE(s)?gK(s):ks(s)}return r}initLegends(e){return E8e.reduce((n,r)=>{const i=or(e[r]);if(i&&v8e(r)){const s=i.legend;n[r]=s&&cs(s)}return n},{})}parseData(){this.component.data=sR(this)}parseLayoutSize(){hot(this)}parseSelections(){this.component.selection=Jrt(this,this.selection)}parseMarkGroup(){this.component.mark=tut(this)}parseAxesAndHeaders(){this.component.axes=_ot(this)}assembleSelectionTopLevelSignals(e){return Ert(this,e)}assembleSignals(){return[...a0e(this),...mrt(this,[])]}assembleSelectionData(e){return Art(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return wk(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!J1(this.parent))&&(n=Ile(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};if(e!==void 0)return e;if(this.encoding.x||this.encoding.y)return"cell"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return $d(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Pa(n)}typedFieldDef(e){const n=this.fieldDef(e);return No(n)?n:null}}class tP extends Yk{constructor(e,n,r,i,s){super(e,"layer",n,r,s,e.resolve,e.view);const o=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((u,a)=>{if(B6(u))return new tP(u,this,this.getName(`layer_${a}`),o,s);if(s0(u))return new xce(u,this,this.getName(`layer_${a}`),o,s);throw new Error(a8(u))})}parseData(){this.component.data=sR(this);for(const e of this.children)e.parseData()}parseLayoutSize(){xot(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){bot(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),a0e(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),wk(this))}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleGroupStyle(){const e=new Set;for(const r of this.children)for(const i of Pe(r.assembleGroupStyle()))e.add(i);const n=Array.from(e);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const n of this.children)if(e=n.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return vrt(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),F0e(this))}}function nP(t,e,n,r,i){if(A6(t))return new ME(t,e,n,i);if(B6(t))return new tP(t,e,n,r,i);if(s0(t))return new xce(t,e,n,r,i);if(lnt(t))return new Eot(t,e,n,i);throw new Error(a8(t))}var aut=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function dce(t,e={}){e.logger&&Uwe(e.logger),e.fieldTitle&&Nae(e.fieldTitle);try{const n=fle(HF(e.config,t.config)),r=ort(t,n),i=nP(r,null,"",void 0,n);return i.parse(),vst(i.component.data,i),{spec:cut(i,lut(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&qwe(),e.fieldTitle&&Dtt()}}function lut(t,e,n,r){const i=r.component.layoutSize.get("width"),s=r.component.layoutSize.get("height");if(e===void 0?(e={type:"pad"},r.hasAxisOrientSignalRef()&&(e.resize=!0)):je(e)&&(e={type:e}),i&&s&&xrt(e.type)){if(i==="step"&&s==="step")Re(RK()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Re(RK(eC(o)));const u=o==="width"?"height":"width";e.type=drt(u)}}return Object.assign(Object.assign(Object.assign({},Te(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),Nle(n,!1)),Nle(t,!0))}function cut(t,e,n={},r){const i=t.config?Snt(t.config):void 0,s=[].concat(t.assembleSelectionData([]),aot(t.component.data,n)),o=t.assembleProjections(),u=t.assembleTitle(),a=t.assembleGroupStyle(),l=t.assembleGroupEncodeEntry(!0);let c=t.assembleLayoutSignals();c=c.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(e[h.name]=+h.value,!1):!0);const{params:f}=e,x=aut(e,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},t.description?{description:t.description}:{}),x),u?{title:u}:{}),a?{style:a}:{}),l?{encode:{update:l}}:{}),{data:s}),o.length>0?{projections:o}:{}),t.assembleGroup([...c,...t.assembleSelectionTopLevelSignals([]),...rle(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}class jE{constructor(e,n,r,i={},s){this.document=e,this.styleDefaults=n,this.options=r,this.timezone=s,this.size=i.size||this.styleDefaults.size||"medium"}mapData(e){const n=[];for(const r of e){const i={};for(const s of e.field.intrinsicFields){let o=this.getDataValue(r.cell(s));o instanceof Date&&(o=YDe(o,this.timezone)),i[s.name]=o}n.push(i)}return n}getSize(){return this.size==="large"?{height:350,width:500}:{height:175,width:250}}async render(e){if(!e.isArray())throw new Error("Invalid type for chart renderer");const n=this.getVegaLiteSpec(e),r=dce(n,{logger:{level(o){return o!==void 0?this:0},info(){return this},error(){return this},warn(){return this},debug(){return this}}}).spec,i=new Z$(Yue(r),{renderer:"none"});i.logger().level(-1);const s=this.document.createElement("div");return s.innerHTML=await i.toSVG(),s}}const fut={AL:"01",Alabama:"01",AK:"02",Alaska:"02",AZ:"04",Arizona:"04",AR:"05",Arkansas:"05",CA:"06",California:"06",CO:"08",Colorado:"08",CT:"09",Connecticut:"09",DE:"10",Delaware:"10",DC:"11","District of Columbia":"11",FL:"12",Florida:"12",GA:"13",Georgia:"13",HI:"15",Hawaii:"12",ID:"16",Idaho:"16",IL:"17",Illinois:"17",IN:"18",Indiana:"18",IA:"19",Iowa:"19",KS:"20",Kansas:"20",KY:"21",Kentucky:"21",LA:"22",Louisiana:"22",ME:"23",Maine:"23",MD:"24",Maryland:"24",MA:"25",Massachusetts:"25",MI:"26",Michigan:"26",MN:"27",Minnesota:"27",MS:"28",Mississippi:"28",MO:"29",Missouri:"29",MT:"30",Montana:"30",NE:"31",Nebraska:"31",NV:"32",Nevada:"32",NH:"33","New Hampshire":"33",NJ:"34","New Jersey":"34",NM:"35","New Mexico":"35",NY:"36","New York":"36",NC:"37","North Carolina":"37",ND:"38","North Dakota":"38",OH:"39",Ohio:"39",OK:"40",Oklahoma:"40",OR:"41",Oregon:"41",PA:"42",Pennsylvania:"42",RI:"44","Rhode Island":"44",SC:"45","South Carolina":"45",SD:"46","South Dakota":"46",TN:"47",Tennessee:"47",TX:"48",Texas:"48",UT:"49",Utah:"49",VT:"50",Vermont:"50",VA:"51",Virginia:"51",WA:"53",Washington:"53",WV:"54","West Virginia":"54",WI:"55",Wisconsin:"55",WY:"56",Wyoming:"56",PR:"72","Puerto Rico":"72",VI:"78",AS:"60",MP:"69",GU:"66"};class xut extends jE{getRegionField(e){return e.intrinsicFields[0]}getColorField(e){return e.intrinsicFields[1]}getDataValue(e){if(e.isNumber())return e.value;if(e.isString())if(e.field===this.getRegionField(e.field.parentExplore)){const n=fut[e.value];return n===void 0?void 0:n}else return e.value;else{if(e.isNull())return;throw new Error("Invalid field type for shape map.")}}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"nominal";if(e.isString())return e===this.getRegionField(e.parentExplore)?"quantitative":"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for shape map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");if(!e.isArray())throw new Error("Invalid data for shape map");const n=this.getRegionField(e.field),r=this.getColorField(e.field),i=r?this.getDataType(r):void 0,s=r!==void 0?{field:r.name,type:i,axis:{title:os(this.options,r,void 0,this.timezone)},scale:ss(i,!1)}:void 0,o=this.mapData(e).filter(u=>u[n.name]!==void 0);return{...this.getSize(),data:{values:o},projection:{type:"albersUsa"},layer:[{data:{values:$5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{transform:[{lookup:n.name,from:{data:{values:$5,format:{type:"topojson",feature:"states"}},key:"id"},as:"geo"}],mark:"geoshape",encoding:{shape:{field:"geo",type:"geojson"},color:s}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const RR=class RR extends fn{create(e,n,r,i,s,o){return new xut(e,n,r,s,o)}get rendererName(){return"shape_map"}};RR.instance=new RR;let rP=RR;class dut extends jE{getDataValue(e){if(e.isNumber()||e.isString())return e.value;if(e.isTimestamp()||e.isDate())return N5(e.value,e.field.timeframe||wt.TimestampTimeframe.Second,this.timezone);throw new Error("Invalid field type for point map chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for point map.")}isTimeFieldDef(e){return!!(e.isAtomicField()&&(e.isDate()||e.isTimestamp()))}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=s?this.getDataType(s):void 0,l=o?this.getDataType(o):void 0,c=u?this.getDataType(u):void 0,f=s!==void 0?{field:s.name,type:a,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(a,!1)}:void 0,x=o?{field:o.name,type:l,axis:{title:os(this.options,o,void 0,this.timezone)}}:{value:5},h=u?{field:u.name,type:c,axis:{title:os(this.options,u,void 0,this.timezone)}}:{value:"circle"};return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:$5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{mark:"point",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},size:x,color:f,shape:h}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-Roboto"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const OR=class OR extends fn{create(e,n,r,i,s,o){return new dut(e,n,r,s,o)}get rendererName(){return"point_map"}};OR.instance=new OR;let iP=OR;class hut{constructor(e){this.document=e}async render(e){if(!e.isString())return xo(this.document,"Invalid field for Image renderer");const{tag:n}=e.field.tagParse(),r=n.tag("image");if(!r)return xo(this.document,"Missing tag for Image renderer");const i=e.isNull()?x3(this.document):this.document.createElement("img"),s=r.text("width"),o=r.text("height");s&&(i.style.width=s),o&&(i.style.height=o);const u=i,a=r.tag("alt");if(a){const l=JDe({tag:a,data:e})??a.text();l&&(u.alt=l)}return e.isNull()||(u.src=e.value),i}}const NR=class NR extends fn{create(e,n,r,i,s){return new hut(e)}get rendererName(){return"image"}};NR.instance=new NR;let sP=NR;class put extends jE{getDataValue(e){if(e.isNull()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for segment map.")}getDataType(e){if(e.isAtomicField()){if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for segment map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=u?this.getDataType(u):void 0,l=u!==void 0?{field:u.name,type:a,axis:{title:os(this.options,u,void 0,this.timezone)},scale:ss(a,!1)}:void 0;return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:$5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"lightgray",stroke:"white"}},{mark:"line",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},latitude2:{field:s.name,type:"quantitative"},longitude2:{field:o.name,type:"quantitative"},color:l}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const DR=class DR extends fn{create(e,n,r,i,s,o){return new put(e,n,r,s,o)}get rendererName(){return"segment_map"}};DR.instance=new DR;let oP=DR;const ef={$schema:"https://vega.github.io/schema/vega-lite/v5.json",config:{params:[{name:"defaultFont",value:"var(--malloy-font-family, 'Roboto')"},{name:"titleColor",value:"var(--malloy-title-color, #505050)"},{name:"labelColor",value:"var(--malloy-label-color, #505050)"}],background:void 0,color:{expr:"titleColor"},header:{labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500},text:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},mark:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},title:{font:{expr:"defaultFont"},subtitleFont:{expr:"defaultFont"},fontWeight:500},axis:{labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12},legend:{titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12,labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"}}}},tf={config:ef.config,encoding:{y:{field:"#{1}",type:"nominal",axis:null,sort:null}},layer:[{mark:{type:"bar",color:"#aec7e8"},encoding:{x:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}},{mark:{type:"text",align:"left",x:5},encoding:{text:{field:"#{1}"}}}]},uR={...ef,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...uR,encoding:{...uR.encoding,color:ss("quantitative",!0,!0)}},{...uR,encoding:{...uR.encoding,color:ss("nominal",!0,!0)}}),{...tf,layer:({...tf.layer[0],encoding:{...tf.layer[0].encoding,color:ss("nominal",!0,!0)}},tf.layer[1])},{...tf,layer:({...tf.layer[0],encoding:{...tf.layer[0].encoding,color:ss("quantitative",!0,!0)}},tf.layer[1])};const aR={...ef,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...aR,encoding:{...aR.encoding,color:ss("nominal",!0)}},{...aR,encoding:{...aR.encoding,color:ss("quantitative",!0)}});function hce(t){return Array.isArray(t)||t!==null&&typeof t=="object"}class gut extends jE{constructor(e,n,r,i,s){super(e,n,r);const o=s.spec;if(o)this.spec=o;else if(s.spec_name){const u=r.dataStyles[s.spec_name];if(u!==void 0&&u.renderer==="vega")if(u.spec)this.spec=u.spec;else throw new Error(`No spec defined on ${s.spec_name}`);else throw new Error(`No Vega renderer named ${s.spec_name}`)}else throw new Error(`No top level vega spec defined for ${i.name}`)}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for vega chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for vega chart.")}translateField(e,n){const r=n.match(/#\{(\d+)\}/);return r&&r.groups?e.intrinsicFields[parseInt(r.groups[1])-1].name:n}translateFields(e,n){if(Array.isArray(e))for(const r of e)hce(r)&&this.translateFields(r,n);else if(e&&typeof e=="object")for(const[r,i]of Object.entries(e))if(r==="field"&&typeof i=="string")e[r]=this.translateField(n,i);else if(r==="repeat"&&Array.isArray(i))for(const s of i.keys()){const o=i[s];typeof o=="string"&&(i[s]=this.translateField(n,o))}else hce(i)&&this.translateFields(i,n)}getVegaLiteSpec(e){if(e.isNull()||!e.isArray())throw new Error("Expected struct value not to be null.");const n=structuredClone(this.spec);this.translateFields(n,e.field);const r={values:this.mapData(e)};return n.data=r,n}}const FR=class FR extends fn{create(e,n,r,i,s){return new gut(e,n,r,i,s)}get rendererName(){return"vega"}};FR.instance=new FR;let uP=FR;class aP extends jE{getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=this.getDataType(r),l=this.getDataType(i),c=s?this.getDataType(s):void 0,f=o?this.getDataType(o):void 0,x=u?this.getDataType(u):void 0,h=this.getMark(),p=s!==void 0?{field:s.name,type:c,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(c,h==="bar")}:{value:"#4285F4"},m=o?{field:o.name,type:f,axis:{title:os(this.options,o,void 0,this.timezone)}}:void 0,g=u?{field:u.name,type:x,axis:{title:os(this.options,u,void 0,this.timezone)}}:void 0,y=a==="nominal"?null:void 0,E=l==="nominal"?null:void 0,A={field:r.name,type:a,sort:y,axis:{title:os(this.options,r,void 0,this.timezone)},scale:{zero:!1}},v={field:i.name,type:l,sort:E,axis:{title:os(this.options,i,void 0,this.timezone)},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},mark:h,encoding:{x:A,y:v,size:m,color:p,shape:g},background:"transparent"}}}class pce extends aP{getMark(){return"line"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for line chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for line chart.")}}const wR=class wR extends fn{create(e,n,r,i,s,o){return new pce(e,n,r,s,o)}get rendererName(){return"line_chart"}};wR.instance=new wR;let lP=wR;class gce extends pce{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"line",tooltip:!0},encoding:{x,y:h,color:l},background:"transparent"}}}const LR=class LR extends fn{create(e,n,r,i,s,o){return new gce(e,n,r,s,o)}get rendererName(){return"sparkline"}};LR.instance=new LR;let cP=LR;class fP extends aP{getMark(){return"bar"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for bar chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate())return N5(e.value,e.field.timeframe,this.timezone);if(e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for bar chart.")}}const IR=class IR extends fn{create(e,n,r,i,s,o){return new fP(e,n,r,s,o)}get rendererName(){return"bar_chart"}};IR.instance=new IR;let xP=IR;class mut extends fP{getSize(){return this.size==="large"?{height:250,width:100}:{height:125,width:50}}getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{y:h,x:p,color:c},background:"transparent"}}}const $R=class $R extends fn{isValidMatch(e){return e.name.endsWith("_bar")}create(e,n,r,i,s,o){return new mut(e,n,r,s,o)}get rendererName(){return"sparkline"}};$R.instance=new $R;let dP=$R;class yut extends gce{getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"area",line:{color:"#4285F4"},point:!1},encoding:{x,y:h,color:l},background:"transparent"}}}const BR=class BR extends fn{isValidMatch(e){return e.name.endsWith("area")}create(e,n,r,i,s,o){return new yut(e,n,r,s,o)}get rendererName(){return"sparkline"}};BR.instance=new BR;let hP=BR;class Eut extends fP{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.intrinsicFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...ef,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{x:h,y:p,color:c},background:"transparent"}}}const kR=class kR extends fn{isValidMatch(e){return e.name.endsWith("_column")}create(e,n,r,i,s,o){return new Eut(e,n,r,s,o)}get rendererName(){return"sparkline"}};kR.instance=new kR;let pP=kR;class Aut extends aP{getMark(){return"point"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for scatter chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for scatter chart.")}}const PR=class PR extends fn{create(e,n,r,i,s,o){return new Aut(e,n,r,s,o)}get rendererName(){return"scatter_chart"}};PR.instance=new PR;let gP=PR;class vut{constructor(e,n){this.document=e,this.queryTimezone=n}async render(e){if(e.isNull())return x3(this.document);if(!e.isDate()&&!e.isTimestamp())return xo(this.document,"Invalid field for date renderer");const n=e.field.timeframe||(e.isTimestamp()?wt.TimestampTimeframe.Second:wt.DateTimeframe.Day),r=N5(e.value,n,this.queryTimezone),i=this.document.createElement("span");return i.appendChild(this.document.createTextNode(r)),i}}const MR=class MR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&(e.type===wt.AtomicFieldType.Date||e.type===wt.AtomicFieldType.Timestamp)}create(e,n,r,i,s,o){return new vut(e,o)}get rendererName(){return"time"}};MR.instance=new MR;let mP=MR;var l0=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(l0||{}),nf=(t=>(t.Bytes="bytes",t.Kilobytes="kb",t.Megabytes="mb",t.Gigabytes="gb",t.Terabytes="tb",t))(nf||{}),ur=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(ur||{});class Sut extends ic{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;let n="$";switch(this.options.currency){case l0.Euros:n="€";break;case l0.Pounds:n="£";break;case l0.Dollars:break}const r=e.number.value.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2});return`${n}${r}`}}const jR=class jR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.currency=(n==null?void 0:n.text())??l0.Dollars},this.rendererName)}create(e,n,r,i,s){return new Sut(e,s)}get rendererName(){return"currency"}};jR.instance=new jR;let yP=jR;class _ut extends I5{getText(e){if(e.isNull())return null;const n=e.number.value;return n===null?n:(n*100).toLocaleString("en",{maximumFractionDigits:2})+"%"}}const UR=class UR extends fn{create(e,n,r,i,s){return new _ut(e,s)}get rendererName(){return"percent"}};UR.instance=new UR;let EP=UR;class Cut extends ic{getText(e){return e.isNull()?null:e.bytes.value.toString("base64")}}const qR=class qR extends fn{create(e,n,r,i,s){return new Cut(e)}get rendererName(){return"bytes"}};qR.instance=new qR;let AP=qR;class but extends ic{getText(e){return e.isNull()?null:`${e.boolean.value}`}}const HR=class HR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.type===wt.AtomicFieldType.Boolean}create(e,n,r,i,s){return new but(e)}get rendererName(){return"boolean"}};HR.instance=new HR;let vP=HR;class Tut{constructor(e){this.document=e}async render(e){if(e.isNull())return x3(this.document);if(!e.isString())return xo(this.document,"Invalid type for link renderer.");const n=this.document.createElement("a");return n.href=e.value,n.target="_blank",n.appendChild(this.document.createTextNode(e.value.replace(/\//g,"/"))),n}}const zR=class zR extends fn{create(e,n,r,i,s){return new Tut(e)}get rendererName(){return"link"}};zR.instance=new zR;let SP=zR;class Rut{constructor(e){this.document=e}getText(e){const n=e.value;if(typeof n=="string")return n;if(n===null)return null;if(typeof e.value=="object"){const r=e.value;if("value"in r&&typeof r.value=="string")return r.value}return JSON.stringify(e.value)}async render(e){const n=this.getText(e);if(n===null)return x3(this.document);const r=this.document.createElement("span");return r.appendChild(this.document.createTextNode(n)),r}}const QR=class QR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.isUnsupported()}create(e,n,r,i,s){return new Rut(e)}get rendererName(){}};QR.instance=new QR;let _P=QR;const ci=class ci extends ic{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;if(!e.isNumber())throw new Error(`Cannot format field ${e.field.name} as data volume since its not a number`);let n=e.number.value,r="Bytes";switch(this.options.data_volume_unit){case nf.Bytes:break;case nf.Kilobytes:n=n/ci.kbMultiplier,r="KB";break;case nf.Megabytes:n=n/ci.mbMultiplier,r="MB";break;case nf.Gigabytes:n=n/ci.gbMultiplier,r="GB";break;case nf.Terabytes:n=n/ci.tbMultiplier,r="TB";break}return n===null?n:`${n.toLocaleString()} ${r}`}};ci.kbMultiplier=1024,ci.mbMultiplier=ci.kbMultiplier*ci.kbMultiplier,ci.gbMultiplier=ci.mbMultiplier*ci.kbMultiplier,ci.tbMultiplier=ci.gbMultiplier*ci.kbMultiplier;let CP=ci;const GR=class GR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.data_volume_unit=(n==null?void 0:n.text())??nf.Bytes},this.rendererName)}create(e,n,r,i,s){return new CP(e,s)}get rendererName(){return"data_volume"}};GR.instance=new GR;let bP=GR;const WR=class WR extends ic{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;if(!e.isNumber())throw new Error(`Cannot format field ${e.field.name} as a duration unit since its not a number`);const n=this.options.duration_unit??ur.Seconds;let r=e.number.value,i=0,s=[],o=!1;for(const[u,a]of WR.multiplierMap)if(u===n&&(o=!0),!!o&&(i=r%a,r=Math.floor(r/=a),i>0&&(s=[this.formatTimeUnit(i,u),...s]),r===0))break;return s.length>0?s.slice(0,2).join(" "):this.formatTimeUnit(0,n)}formatTimeUnit(e,n){let r=n.toString();return e===1&&(r=r.substring(0,r.length-1)),`${e} ${r}`}};WR.multiplierMap=new Map([[ur.Nanoseconds,1e3],[ur.Microseconds,1e3],[ur.Milliseconds,1e3],[ur.Seconds,60],[ur.Minutes,60],[ur.Hours,24],[ur.Days,Number.MAX_VALUE]]);let TP=WR;const VR=class VR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.duration_unit=(n==null?void 0:n.text())??ur.Seconds},this.rendererName)}create(e,n,r,i,s){return new TP(e,s)}get rendererName(){return"duration"}};VR.instance=new VR;let RP=VR;const YR=class YR{create(e,n,r,i,s,o,u){let a;for(const l of YR.renderFactories)if((this.matchesRenderDef(e,l)||this.matchesTag(n,l))&&l.isValidMatch(o)||l.activates(o)){a=l;break}return a==null?void 0:a.create(r,i,s,o,e||a.parseTagParameters(n)||{},u)}matchesRenderDef(e,n){return e&&n.rendererName&&e.renderer===n.rendererName}matchesTag(e,n){return n.rendererName&&e.has(n.rendererName)}};YR.renderFactories=[rP.instance,iP.instance,sP.instance,oP.instance,kF.instance,lP.instance,pP.instance,dP.instance,hP.instance,cP.instance,gP.instance,xP.instance,uP.instance,mP.instance,yP.instance,EP.instance,bP.instance,AP.instance,SP.instance,RP.instance,vP.instance,qF.instance,_P.instance,MF.instance];let OP=YR;function Out(t){return Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=Object.assign({},i),Ece(i.value)&&!Lut(i.value)&&!Array.isArray(i.value)&&(n[r].value=Object.assign({},i.value)),Array.isArray(i.value)&&(n[r].value=i.value.slice(0)),n},{})}function Nut(t){return t?Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=Ece(i)&&"value"in i?i:{value:i},n[r].attribute||(n[r].attribute=wut(r)),n[r].parse="parse"in n[r]?n[r].parse:typeof n[r].value!="string",n},{}):{}}function Dut(t){return Object.keys(t).reduce((n,r)=>(n[r]=t[r].value,n),{})}function Fut(t,e){const n=Out(e);return Object.keys(e).forEach(i=>{const s=n[i],o=t.getAttribute(s.attribute),u=t[i];o&&(s.value=s.parse?mce(o):o),u!=null&&(s.value=Array.isArray(u)?u.slice(0):u),s.reflect&&yce(t,s.attribute,s.value),Object.defineProperty(t,i,{get(){return s.value},set(a){const l=s.value;s.value=a,s.reflect&&yce(this,s.attribute,s.value);for(let c=0,f=this.__propertyChangedCallbacks.length;c<f;c++)this.__propertyChangedCallbacks[c](i,a,l)},enumerable:!0,configurable:!0})}),n}function mce(t){if(t)try{return JSON.parse(t)}catch{return t}}function yce(t,e,n){if(n==null||n===!1)return t.removeAttribute(e);let r=JSON.stringify(n);t.__updating[e]=!0,r==="true"&&(r=""),t.setAttribute(e,r),Promise.resolve().then(()=>delete t.__updating[e])}function wut(t){return t.replace(/\.?([A-Z]+)/g,(e,n)=>"-"+n.toLowerCase()).replace("_","-").replace(/^-/,"")}function Ece(t){return t!=null&&(typeof t=="object"||typeof t=="function")}function Lut(t){return Object.prototype.toString.call(t)==="[object Function]"}function Iut(t){return typeof t=="function"&&t.toString().indexOf("class")===0}let NP;function $ut(t,e){const n=Object.keys(e);return class extends t{static get observedAttributes(){return n.map(i=>e[i].attribute)}constructor(){super(),this.__initialized=!1,this.__released=!1,this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props={}}connectedCallback(){if(this.__initialized)return;this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props=Fut(this,e);const i=Dut(this.props),s=this.Component,o=NP;try{NP=this,this.__initialized=!0,Iut(s)?new s(i,{element:this}):s(i,{element:this})}finally{NP=o}}async disconnectedCallback(){if(await Promise.resolve(),this.isConnected)return;this.__propertyChangedCallbacks.length=0;let i=null;for(;i=this.__releaseCallbacks.pop();)i(this);delete this.__initialized,this.__released=!0}attributeChangedCallback(i,s,o){if(this.__initialized&&!this.__updating[i]&&(i=this.lookupProp(i),i in e)){if(o==null&&!this[i])return;this[i]=e[i].parse?mce(o):o}}lookupProp(i){if(e)return n.find(s=>i===s||i===e[s].attribute)}get renderRoot(){return this.shadowRoot||this.attachShadow({mode:"open"})}addReleaseCallback(i){this.__releaseCallbacks.push(i)}addPropertyChangedCallback(i){this.__propertyChangedCallbacks.push(i)}}}function But(...t){return t.length===0?e=>e:t.length===1?t[0]:t.reduce((e,n)=>(...r)=>e(n(...r)))}function kut(t,e={},n={}){const{BaseElement:r=HTMLElement,extension:i}=n;return s=>{if(!t)throw new Error("tag is required to register a Component");let o=customElements.get(t);return o?(o.prototype.Component=s,o):(o=$ut(r,Nut(e)),o.prototype.Component=s,o.prototype.registeredTag=t,customElements.define(t,o,i),o)}}const Put=(t,e)=>t===e,DP=Symbol("solid-proxy"),Mut=Symbol("solid-track"),lR={equals:Put};let Ace=Rce;const rf=1,cR=2,vce={owned:null,cleanups:null,context:null,owner:null};var un=null;let FP=null,jut=null,Gn=null,li=null,c0=null,fR=0;function xR(t,e){const n=Gn,r=un,i=t.length===0,s=e===void 0?r:e,o=i?vce:{owned:null,cleanups:null,context:s?s.context:null,owner:s},u=i?t:()=>t(()=>Su(()=>pR(o)));un=o,Gn=null;try{return qE(u,!0)}finally{Gn=n,un=r}}function wP(t,e){e=e?Object.assign({},lR,e):lR;const n={value:t,observers:null,observerSlots:null,comparator:e.equals||void 0},r=i=>(typeof i=="function"&&(i=i(n.value)),Tce(n,i));return[bce.bind(n),r]}function sf(t,e,n){const r=$P(t,e,!1,rf);UE(r)}function LP(t,e,n){Ace=zut;const r=$P(t,e,!1,rf),i=Cce&&IP(Cce);i&&(r.suspense=i),(!n||!n.render)&&(r.user=!0),c0?c0.push(r):UE(r)}function Fo(t,e,n){n=n?Object.assign({},lR,n):lR;const r=$P(t,e,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,UE(r),bce.bind(r)}function Su(t){if(Gn===null)return t();const e=Gn;Gn=null;try{return t()}finally{Gn=e}}function Uut(t){return un===null||(un.cleanups===null?un.cleanups=[t]:un.cleanups.push(t)),t}function Sce(t,e){const n=Symbol("context");return{id:n,Provider:Gut(n),defaultValue:t}}function IP(t){return un&&un.context&&un.context[t.id]!==void 0?un.context[t.id]:t.defaultValue}function _ce(t){const e=Fo(t),n=Fo(()=>BP(e()));return n.toArray=()=>{const r=n();return Array.isArray(r)?r:r!=null?[r]:[]},n}let Cce;function bce(){if(this.sources&&this.state)if(this.state===rf)UE(this);else{const t=li;li=null,qE(()=>hR(this),!1),li=t}if(Gn){const t=this.observers?this.observers.length:0;Gn.sources?(Gn.sources.push(this),Gn.sourceSlots.push(t)):(Gn.sources=[this],Gn.sourceSlots=[t]),this.observers?(this.observers.push(Gn),this.observerSlots.push(Gn.sources.length-1)):(this.observers=[Gn],this.observerSlots=[Gn.sources.length-1])}return this.value}function Tce(t,e,n){let r=t.value;return(!t.comparator||!t.comparator(r,e))&&(t.value=e,t.observers&&t.observers.length&&qE(()=>{for(let i=0;i<t.observers.length;i+=1){const s=t.observers[i],o=FP&&FP.running;o&&FP.disposed.has(s),(o?!s.tState:!s.state)&&(s.pure?li.push(s):c0.push(s),s.observers&&Oce(s)),o||(s.state=rf)}if(li.length>1e6)throw li=[],new Error},!1)),e}function UE(t){if(!t.fn)return;pR(t);const e=fR;qut(t,t.value,e)}function qut(t,e,n){let r;const i=un,s=Gn;Gn=un=t;try{r=t.fn(e)}catch(o){return t.pure&&(t.state=rf,t.owned&&t.owned.forEach(pR),t.owned=null),t.updatedAt=n+1,Nce(o)}finally{Gn=s,un=i}(!t.updatedAt||t.updatedAt<=n)&&(t.updatedAt!=null&&"observers"in t?Tce(t,r):t.value=r,t.updatedAt=n)}function $P(t,e,n,r=rf,i){const s={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:e,owner:un,context:un?un.context:null,pure:n};return un===null||un!==vce&&(un.owned?un.owned.push(s):un.owned=[s]),s}function dR(t){if(t.state===0)return;if(t.state===cR)return hR(t);if(t.suspense&&Su(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<fR);)t.state&&e.push(t);for(let n=e.length-1;n>=0;n--)if(t=e[n],t.state===rf)UE(t);else if(t.state===cR){const r=li;li=null,qE(()=>hR(t,e[0]),!1),li=r}}function qE(t,e){if(li)return t();let n=!1;e||(li=[]),c0?n=!0:c0=[],fR++;try{const r=t();return Hut(n),r}catch(r){n||(c0=null),li=null,Nce(r)}}function Hut(t){if(li&&(Rce(li),li=null),t)return;const e=c0;c0=null,e.length&&qE(()=>Ace(e),!1)}function Rce(t){for(let e=0;e<t.length;e++)dR(t[e])}function zut(t){let e,n=0;for(e=0;e<t.length;e++){const r=t[e];r.user?t[n++]=r:dR(r)}for(e=0;e<n;e++)dR(t[e])}function hR(t,e){t.state=0;for(let n=0;n<t.sources.length;n+=1){const r=t.sources[n];if(r.sources){const i=r.state;i===rf?r!==e&&(!r.updatedAt||r.updatedAt<fR)&&dR(r):i===cR&&hR(r,e)}}}function Oce(t){for(let e=0;e<t.observers.length;e+=1){const n=t.observers[e];n.state||(n.state=cR,n.pure?li.push(n):c0.push(n),n.observers&&Oce(n))}}function pR(t){let e;if(t.sources)for(;t.sources.length;){const n=t.sources.pop(),r=t.sourceSlots.pop(),i=n.observers;if(i&&i.length){const s=i.pop(),o=n.observerSlots.pop();r<i.length&&(s.sourceSlots[o]=r,i[r]=s,n.observerSlots[r]=o)}}if(t.owned){for(e=t.owned.length-1;e>=0;e--)pR(t.owned[e]);t.owned=null}if(t.cleanups){for(e=t.cleanups.length-1;e>=0;e--)t.cleanups[e]();t.cleanups=null}t.state=0}function Qut(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function Nce(t,e=un){throw Qut(t)}function BP(t){if(typeof t=="function"&&!t.length)return BP(t());if(Array.isArray(t)){const e=[];for(let n=0;n<t.length;n++){const r=BP(t[n]);Array.isArray(r)?e.push.apply(e,r):e.push(r)}return e}return t}function Gut(t,e){return function(r){let i;return sf(()=>i=Su(()=>(un.context={...un.context,[t]:r.value},_ce(()=>r.children))),void 0),i}}const Wut=Symbol("fallback");function Dce(t){for(let e=0;e<t.length;e++)t[e]()}function Vut(t,e,n={}){let r=[],i=[],s=[],o=0,u=e.length>1?[]:null;return Uut(()=>Dce(s)),()=>{let a=t()||[],l,c;return a[Mut],Su(()=>{let x=a.length,h,p,m,g,y,E,A,v,S;if(x===0)o!==0&&(Dce(s),s=[],r=[],i=[],o=0,u&&(u=[])),n.fallback&&(r=[Wut],i[0]=xR(C=>(s[0]=C,n.fallback())),o=1);else if(o===0){for(i=new Array(x),c=0;c<x;c++)r[c]=a[c],i[c]=xR(f);o=x}else{for(m=new Array(x),g=new Array(x),u&&(y=new Array(x)),E=0,A=Math.min(o,x);E<A&&r[E]===a[E];E++);for(A=o-1,v=x-1;A>=E&&v>=E&&r[A]===a[v];A--,v--)m[v]=i[A],g[v]=s[A],u&&(y[v]=u[A]);for(h=new Map,p=new Array(v+1),c=v;c>=E;c--)S=a[c],l=h.get(S),p[c]=l===void 0?-1:l,h.set(S,c);for(l=E;l<=A;l++)S=r[l],c=h.get(S),c!==void 0&&c!==-1?(m[c]=i[l],g[c]=s[l],u&&(y[c]=u[l]),c=p[c],h.set(S,c)):s[l]();for(c=E;c<x;c++)c in m?(i[c]=m[c],s[c]=g[c],u&&(u[c]=y[c],u[c](c))):i[c]=xR(f);i=i.slice(0,o=x),r=a.slice(0)}return i});function f(x){if(s[c]=x,u){const[h,p]=wP(c);return u[c]=p,e(a[c],h)}return e(a[c])}}}function Wn(t,e){return Su(()=>t(e||{}))}function gR(){return!0}const Yut={get(t,e,n){return e===DP?n:t.get(e)},has(t,e){return e===DP?!0:t.has(e)},set:gR,deleteProperty:gR,getOwnPropertyDescriptor(t,e){return{configurable:!0,enumerable:!0,get(){return t.get(e)},set:gR,deleteProperty:gR}},ownKeys(t){return t.keys()}};function kP(t){return(t=typeof t=="function"?t():t)?t:{}}function Kut(){for(let t=0,e=this.length;t<e;++t){const n=this[t]();if(n!==void 0)return n}}function Xut(...t){let e=!1;for(let o=0;o<t.length;o++){const u=t[o];e=e||!!u&&DP in u,t[o]=typeof u=="function"?(e=!0,Fo(u)):u}if(e)return new Proxy({get(o){for(let u=t.length-1;u>=0;u--){const a=kP(t[u])[o];if(a!==void 0)return a}},has(o){for(let u=t.length-1;u>=0;u--)if(o in kP(t[u]))return!0;return!1},keys(){const o=[];for(let u=0;u<t.length;u++)o.push(...Object.keys(kP(t[u])));return[...new Set(o)]}},Yut);const n={},r=Object.create(null);for(let o=t.length-1;o>=0;o--){const u=t[o];if(!u)continue;const a=Object.getOwnPropertyNames(u);for(let l=a.length-1;l>=0;l--){const c=a[l];if(c==="__proto__"||c==="constructor")continue;const f=Object.getOwnPropertyDescriptor(u,c);if(!r[c])r[c]=f.get?{enumerable:!0,configurable:!0,get:Kut.bind(n[c]=[f.get.bind(u)])}:f.value!==void 0?f:void 0;else{const x=n[c];x&&(f.get?x.push(f.get.bind(u)):f.value!==void 0&&x.push(()=>f.value))}}}const i={},s=Object.keys(r);for(let o=s.length-1;o>=0;o--){const u=s[o],a=r[u];a&&a.get?Object.defineProperty(i,u,a):i[u]=a?a.value:void 0}return i}const Fce=t=>`Stale read from <${t}>.`;function Jut(t){const e="fallback"in t&&{fallback:()=>t.fallback};return Fo(Vut(()=>t.each,t.children,e||void 0))}function Zut(t){const e=t.keyed,n=Fo(()=>t.when,void 0,{equals:(r,i)=>e?r===i:!r==!i});return Fo(()=>{const r=n();if(r){const i=t.children;return typeof i=="function"&&i.length>0?Su(()=>i(e?r:()=>{if(!Su(n))throw Fce("Show");return t.when})):i}return t.fallback},void 0,void 0)}function wce(t){let e=!1;const n=(s,o)=>(e?s[1]===o[1]:!s[1]==!o[1])&&s[2]===o[2],r=_ce(()=>t.children),i=Fo(()=>{let s=r();Array.isArray(s)||(s=[s]);for(let o=0;o<s.length;o++){const u=s[o].when;if(u)return e=!!s[o].keyed,[o,u,s[o]]}return[-1]},void 0,{equals:n});return Fo(()=>{const[s,o,u]=i();if(s<0)return t.fallback;const a=u.children;return typeof a=="function"&&a.length>0?Su(()=>a(e?o:()=>{if(Su(i)[0]!==s)throw Fce("Match");return u.when})):a},void 0,void 0)}function PP(t){return t}function eat(t,e,n){let r=n.length,i=e.length,s=r,o=0,u=0,a=e[i-1].nextSibling,l=null;for(;o<i||u<s;){if(e[o]===n[u]){o++,u++;continue}for(;e[i-1]===n[s-1];)i--,s--;if(i===o){const c=s<r?u?n[u-1].nextSibling:n[s-u]:a;for(;u<s;)t.insertBefore(n[u++],c)}else if(s===u)for(;o<i;)(!l||!l.has(e[o]))&&e[o].remove(),o++;else if(e[o]===n[s-1]&&n[u]===e[i-1]){const c=e[--i].nextSibling;t.insertBefore(n[u++],e[o++].nextSibling),t.insertBefore(n[--s],c),e[i]=n[s]}else{if(!l){l=new Map;let f=u;for(;f<s;)l.set(n[f],f++)}const c=l.get(e[o]);if(c!=null)if(u<c&&c<s){let f=o,x=1,h;for(;++f<i&&f<s&&!((h=l.get(e[f]))==null||h!==c+x);)x++;if(x>c-u){const p=e[o];for(;u<c;)t.insertBefore(n[u++],p)}else t.replaceChild(n[u++],e[o++])}else o++;else e[o++].remove()}}}function Ud(t,e,n){let r;const i=()=>{const o=document.createElement("template");return o.innerHTML=t,n?o.content.firstChild.firstChild:o.content.firstChild},s=e?()=>Su(()=>document.importNode(r||(r=i()),!0)):()=>(r||(r=i())).cloneNode(!0);return s.cloneNode=s,s}function tat(t,e,n){n==null?t.removeAttribute(e):t.setAttribute(e,n)}function nat(t,e,n){if(!e)return n?tat(t,"style"):e;const r=t.style;if(typeof e=="string")return r.cssText=e;typeof n=="string"&&(r.cssText=n=void 0),n||(n={}),e||(e={});let i,s;for(s in n)e[s]==null&&r.removeProperty(s),delete n[s];for(s in e)i=e[s],i!==n[s]&&(r.setProperty(s,i),n[s]=i);return n}function rat(t,e,n){return Su(()=>t(e,n))}function f0(t,e,n,r){if(n!==void 0&&!r&&(r=[]),typeof e!="function")return mR(t,e,r,n);sf(i=>mR(t,e(),i,n),r)}function mR(t,e,n,r,i){for(;typeof n=="function";)n=n();if(e===n)return n;const s=typeof e,o=r!==void 0;if(t=o&&n[0]&&n[0].parentNode||t,s==="string"||s==="number")if(s==="number"&&(e=e.toString()),o){let u=n[0];u&&u.nodeType===3?u.data!==e&&(u.data=e):u=document.createTextNode(e),n=ep(t,n,r,u)}else n!==""&&typeof n=="string"?n=t.firstChild.data=e:n=t.textContent=e;else if(e==null||s==="boolean")n=ep(t,n,r);else{if(s==="function")return sf(()=>{let u=e();for(;typeof u=="function";)u=u();n=mR(t,u,n,r)}),()=>n;if(Array.isArray(e)){const u=[],a=n&&Array.isArray(n);if(MP(u,e,n,i))return sf(()=>n=mR(t,u,n,r,!0)),()=>n;if(u.length===0){if(n=ep(t,n,r),o)return n}else a?n.length===0?Lce(t,u,r):eat(t,n,u):(n&&ep(t),Lce(t,u));n=u}else if(e.nodeType){if(Array.isArray(n)){if(o)return n=ep(t,n,r,e);ep(t,n,null,e)}else n==null||n===""||!t.firstChild?t.appendChild(e):t.replaceChild(e,t.firstChild);n=e}}return n}function MP(t,e,n,r){let i=!1;for(let s=0,o=e.length;s<o;s++){let u=e[s],a=n&&n[t.length],l;if(!(u==null||u===!0||u===!1))if((l=typeof u)=="object"&&u.nodeType)t.push(u);else if(Array.isArray(u))i=MP(t,u,a)||i;else if(l==="function")if(r){for(;typeof u=="function";)u=u();i=MP(t,Array.isArray(u)?u:[u],Array.isArray(a)?a:[a])||i}else t.push(u),i=!0;else{const c=String(u);a&&a.nodeType===3&&a.data===c?t.push(a):t.push(document.createTextNode(c))}}return i}function Lce(t,e,n=null){for(let r=0,i=e.length;r<i;r++)t.insertBefore(e[r],n)}function ep(t,e,n,r){if(n===void 0)return t.textContent="";const i=r||document.createTextNode("");if(e.length){let s=!1;for(let o=e.length-1;o>=0;o--){const u=e[o];if(i!==u){const a=u.parentNode===t;!s&&!o?a?t.replaceChild(i,u):t.insertBefore(i,n):a&&u.remove()}else s=!0}}else t.insertBefore(i,n);return[i]}function iat(t){const e=Object.keys(t),n={};for(let r=0;r<e.length;r++){const[i,s]=wP(t[e[r]]);Object.defineProperty(n,e[r],{get:i,set(o){s(()=>o)}})}return n}function sat(t){if(t.assignedSlot&&t.assignedSlot._$owner)return t.assignedSlot._$owner;let e=t.parentNode;for(;e&&!e._$owner&&!(e.assignedSlot&&e.assignedSlot._$owner);)e=e.parentNode;return e&&e.assignedSlot?e.assignedSlot._$owner:t._$owner}function oat(t){return(e,n)=>{const{element:r}=n;return xR(i=>{const s=iat(e);r.addPropertyChangedCallback((u,a)=>s[u]=a),r.addReleaseCallback(()=>{r.renderRoot.textContent="",i()});const o=t(s,n);return f0(r.renderRoot,o)},sat(r))}}function jP(t,...e){return e.some(n=>Array.isArray(n)?t.has(...n):t.has(n))}function Ice(t){const e=t.parentExplore;return(e==null?void 0:e.allFields.findIndex(n=>n.name===t.name))??-1}function UP(t){return t.parentExplore?Ice(t)===t.parentExplore.allFields.length-1:!0}function qP(t){return Ice(t)===0}function $ce(t,e){return t.isAtomicField()&&t.isNumber()&&e!==null}function Bce(t,e){return t.isAtomicField()&&t.isString()&&e!==null}function HE(t,e,n){const i=(n??document.createElement("canvas")).getContext("2d");return i.font=e,i.measureText(t).width}function uat(t,e,n){return Math.max(t,Math.min(e,n))}function kce(t,e){if(!t.isExplore()&&t.isAtomicField())return"cell";const n=e??t.tagParse().tag;return jP(n,"bar_chart")?"chart":"table"}function qd(t){return JSON.stringify(t.fieldPath)}function aat(){return{x:{fields:[],type:null},y:{fields:[],type:null},color:{fields:[],type:null},fx:{fields:[],type:null},fy:{fields:[],type:null},marks:[]}}function Pce(t,e){t.allFields.forEach(n=>{e(n),n.isExplore()&&Pce(n,e)})}function Mce(t){const e=t.isExplore()&&!t.isExploreField()?[]:[t.name];let n=t.parentExplore;for(;n!=null&&n.isExploreField();)e.unshift(n.name),n=n.parentExplore;return e}function yR(t,e){const n=Mce(t),r=Mce(e),i=n.length;let s=0;for(;n[s];){if(n[s]!==r[s])throw new Error("Tried to get path from parent field to child field, but parent field is not a parent of child field.");s++}return r.slice(i).join(".")}function lat(t,e){const n=e??t.tagParse().tag,r=n.tag("bar_chart")??n.tag("bar");if(!r)throw new Error("Tried to render a bar_chart, but no bar_chart tag was found");const i=aat();r.text("x")&&i.x.fields.push(r.text("x")),r.text("y")&&i.y.fields.push(r.text("y"));const s=[],o=[];if(Pce(t,a=>{const{tag:l}=a.tagParse();l.has("x")&&s.push(yR(t,a)),l.has("y")&&o.push(yR(t,a))}),s.forEach(a=>{i.x.fields.push(a)}),o.at(0)&&i.y.fields.push(o.at(0)),i.x.fields.length===0){const a=t.allFields.filter(l=>l.isAtomicField()&&l.isString());a.length>0&&i.x.fields.push(yR(t,a[0]))}if(i.y.fields.length===0){const a=t.allFields.find(l=>l.isAtomicField()&&l.isNumber());a&&i.y.fields.push(yR(t,a))}const u={id:"bar",type:"bar_y",x:null,y:null};return i.marks.push(u),i.x.type="nominal",i.y.type="quantitative",i}const cat={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},ER=28;function fat(t,e){const n=t.allFields.at(0),r=t.allFields.at(1),{tag:i}=t.tagParse();let s=0,o=0;const u=i.numeric("size","width"),a=i.numeric("size","height");let l=i.text("size");u&&a?(s=u,o=a):(l=l||"md",[s,o]=cat[l],o=o*ER);let c=0,f=0,x=-90,h="right",p="middle",m=0,g=0;const y=l!=="spark",E=l!=="spark",A=e.fields[qd(t)];let v=l!=="spark"?ER-1:0,S;const C=qd(r),_=e.fields[C].max,b=Ot("linear")().domain([0,_]).nice().range([o,0]),R=b.domain();if(E){const q=b.domain().at(1),B=rJ().format(",")(q);f=HE(B,"Inter, sans-serif 12px")+5+31;const X=Math.ceil(o/40),de=b.ticks(X);if(de.at(-1)<q){const be=(q-de.at(-1))/q,ee=o/(1-be);v=v-(ee-o),o=ee,S=X}}if(y){const q=qd(n),W=e.fields[q].maxString,B=HE(W,"Inter, sans-serif 12px"),G=.3;g=22+15,c=Math.min(B,G*o),m=c;const X=(s-f)/A.maxRecordCt;X>c&&(x=0,m=X,h=void 0,p="top")}const O=o+c+g,L=Math.ceil(O/ER)*ER;g+=L-O;const M=i.text("size")==="spark";return{plotWidth:s,plotHeight:o,xAxis:{labelAngle:x,labelAlign:h,labelBaseline:p,labelSize:m,height:c,titleSize:g,hidden:M},yAxis:{width:f,tickCount:S,hidden:M},yScale:{domain:R},padding:M?{top:0,left:0,bottom:0,right:0}:{top:v+1,left:f,bottom:c+g,right:0},xField:n,yField:r,get totalWidth(){return this.plotWidth+this.padding.left+this.padding.right},get totalHeight(){return this.plotHeight+this.padding.top+this.padding.bottom}}}const AR="#727883",vR="#E5E7EB";function xat(t,e){const n=fat(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:vR,tickColor:vR,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:AR,labelPadding:5,titleColor:AR,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:vR,tickColor:vR,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:AR,titleColor:AR,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10},view:{strokeWidth:0}},data:[{name:"table",values:[]}],marks:[],scales:[],legends:[],axes:[],autosize:{type:"none",resize:!0,contains:"content"},padding:n.padding},i={name:"xscale",type:t.x.type==="nominal"?"band":"linear",domain:{data:"table",field:t.x.fields.at(0)},range:"width"};i.type==="band"&&(i.paddingInner=.1,i.paddingOuter=.05,i.round=!0);const s={name:"yscale",type:t.y.type==="nominal"?"band":"linear",domain:n.yScale.domain??{data:"table",fields:t.y.fields},range:"height"};s.type==="linear"&&(s.nice=!0),r.scales.push(i),r.scales.push(s);for(const o of t.marks){const u={},a={name:o.id,source:"table",transform:[]};if(r.data.push(a),o.type==="bar_y"){u.type="rect",u.from={data:o.id};const l=o.x??t.x.fields.at(0),c=o.y??t.y.fields.at(0);u.encode={enter:{x:{scale:"xscale",field:l,band:.1},width:{scale:"xscale",band:.8},y:{scale:"yscale",field:c},y2:{scale:"yscale",value:0},fill:{value:"#53B2C8"}}},r.marks.push(u)}}return n.xAxis.hidden||r.axes.push({orient:"bottom",scale:"xscale",title:t.x.fields.join(", "),labelAngle:n.xAxis.labelAngle,labelLimit:n.xAxis.labelSize,labelAlign:n.xAxis.labelAlign,labelBaseline:n.xAxis.labelBaseline,maxExtent:n.xAxis.height}),n.yAxis.hidden||r.axes.push({orient:"left",scale:"yscale",grid:!0,maxExtent:n.yAxis.width,labelLimit:n.yAxis.width+10,tickCount:n.yAxis.tickCount??{signal:"ceil(height/40)"},title:[...new Set(s.domain.fields)].filter(o=>typeof o=="string").join(", ")}),{spec:r,plotWidth:n.plotWidth,plotHeight:n.plotHeight,totalWidth:n.totalWidth,totalHeight:n.totalHeight}}function dat(){const t=new WeakMap;return{get:e=>{if(!t.has(e)&&e.isArray()){const n=[];for(const r of e)n.push(r.toObject());t.set(e,n)}return t.get(e)}}}function hat(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=qd(u);return e.set(u,a),a},r=dat(),i={fields:{},fieldKeyMap:e,getFieldKey:n,field:u=>i.fields[n(u)],getData:r.get},s=t.data.field,o=i.getFieldKey(s);return i.fields[o]={field:s,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},jce(t.data.field,i),Uce(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?qce(a,a.tagParse().tag,i):a.isExplore()&&qce(a,t.tagParse().tag,i)}),i}function jce(t,e){for(const n of t.allFields){const r=e.getFieldKey(n);e.fields[r]={field:n,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},n.isExploreField()&&jce(n,e)}}const Uce=(t,e)=>{let n=0;for(const s of t){n++;for(const o of t.field.allFields){const u=o.isAtomicField()?s.cell(o).value:void 0,a=e.field(o);if($ce(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(Bce(o,u)){const l=u;a.values.add(l),(!a.minString||a.minString.length>l.length)&&(a.minString=l),(!a.maxString||a.maxString.length<l.length)&&(a.maxString=l)}else if(o.isExploreField()){const l=s.cell(o);Uce(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function qce(t,e,n){const r=n.field(t);if(jP(e,"bar","bar_chart")){const i=lat(t,e);r.vegaChartProps=xat(i,{field:t,metadata:n})}}const Hce=Sce(),zce=()=>{const t=IP(Hce);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};function mlt(t){return t}function ylt(t){return t}var pat=Ud("<div>");function gat(t){let e,n=null;return LP(()=>{n&&n.finalize();const r=t.type==="vega-lite"?dce(t.spec).spec:t.spec;n=new Z$(Yue(r)).initialize(e).renderer("svg").hover(),n.run()}),LP(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=pat(),i=e;return typeof i=="function"?rat(i,r):e=r,r})()}function Qce(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,Wn(gat,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}const mat=new Map([[ur.Nanoseconds,1e3],[ur.Microseconds,1e3],[ur.Milliseconds,1e3],[ur.Seconds,60],[ur.Minutes,60],[ur.Hours,24],[ur.Days,Number.MAX_VALUE]]);function Gce(t,e){let n=e.toString();return t===1&&(n=n.substring(0,n.length-1)),`${t} ${n}`}function Wce(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case l0.Euros:i="€";break;case l0.Pounds:i="£";break;case l0.Dollars:break}n=L5.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=L5.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??ur.Seconds;let o=e,u=0,a=[],l=!1;for(const[c,f]of mat)if(c===s&&(l=!0),!!l&&(u=o%f,o=Math.floor(o/=f),u>0&&(a=[Gce(u,c),...a]),o===0))break;a.length>0?n=a.slice(0,2).join(" "):n=Gce(0,s)}else r.has("number")?n=L5.format(r.text("number"),e):n=e.toLocaleString();return n}const yat=32,Eat=384,Vce=12,Aat=28;function vat(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:Sat(i,t),height:null},{tag:o}=i.tagParse();jP(o,"bar","bar_chart")&&i.isExploreField()?(s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight):!i.isExplore()&&i.isAtomicField()&&(s.height=Aat),e[n]=s}return e}function Sat(t,e){const n=qd(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=HE(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(HE(r.maxString,s),o)+Vce;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":Wce(t,r.max);i=Math.max(HE(u,s),o)+Vce}else i=130;i=uat(yat,Eat,i)}return i}const Yce=Sce(),zE=()=>IP(Yce);var _at=Ud("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),Cat=Ud("<th class=column-cell>"),bat=Ud("<td class=column-cell>"),Tat=Ud("<div class=sticky-header><div class=sticky-header-content>"),Rat=Ud("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),Oat=Ud("<tr>");const Kce=t=>{const e=()=>{const n=zE().layout,r=n[qd(t.field)].width,i=n[qd(t.field)].height;let s="";return t.isHeader||typeof r<"u"&&(s+=`width: ${r}px; min-width: ${r}px; max-width: ${r}px;`,typeof i=="number"&&(s+=`height: ${i}px;`)),s};return(()=>{var n=_at(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return f0(i,()=>t.value),sf(o=>{var u=!!t.hideStartGutter,a=!!t.isHeader,l=e(),c=!!t.hideEndGutter;return u!==o.e&&r.classList.toggle("hide-gutter-border",o.e=u),a!==o.t&&i.classList.toggle("header",o.t=a),o.a=nat(i,l,o.a),c!==o.o&&s.classList.toggle("hide-gutter-border",o.o=c),o},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},Nat=t=>{const e=qP(t.field),n=qP(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=UP(t.field),o=UP(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=Cat();return f0(a,Wn(Kce,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),sf(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},Dat=t=>{const e=zE(),n=kce(t.field);let r="";if(e.pinnedHeader)r="";else if(n==="cell"){const i=t.row.cell(t.field).value;$ce(t.field,i)?r=Wce(t.field,i):i===null?r="∅":Bce(t.field,i)&&(r=i)}else if(n==="chart"){const i=zce();r=Wn(Qce,{get field(){return t.field},get data(){return i.getData(t.row.cell(t.field))},metadata:i})}return(()=>{var i=bat();return f0(i,Wn(wce,{get children(){return[Wn(PP,{when:n==="table",get children(){return Wn(HP,{get data(){return t.row.cell(t.field)},get pinnedHeader(){return e.pinnedHeader},get rowLimit(){return e.pinnedHeader?1:1/0}})}}),Wn(PP,{when:!0,get children(){return Wn(Kce,{get field(){return t.field},value:r,get hideStartGutter(){return qP(t.field)},get hideEndGutter(){return UP(t.field)}})}})]}})),sf(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},Fat=t=>{const e=Xut({rowLimit:1/0,pinnedHeader:!1},t),n=zE(),[r,i]=wP(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=Fo(()=>{const u=[];let a=0;for(const l of e.data){if(a>=e.rowLimit)break;u.push(l),a++}return u});return(()=>{var u=Rat(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),f0(u,Wn(Zut,{get when(){return n.root},get children(){var x=Tat(),h=x.firstChild;return f0(h,Wn(HP,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),f0(c,()=>e.data.field.allFields.map(x=>Wn(Nat,{field:x}))),f0(f,Wn(Jut,{get each(){return o()},children:x=>(()=>{var h=Oat();return f0(h,()=>e.data.field.allFields.map(p=>Wn(Dat,{field:p,row:x}))),h})()})),sf(x=>{var h=!!n.root,p=!!n.pinnedHeader,m=!!r();return h!==x.e&&u.classList.toggle("root",x.e=h),p!==x.t&&u.classList.toggle("pinned-header",x.t=p),m!==x.a&&u.classList.toggle("scrolled",x.a=m),x},{e:void 0,t:void 0,a:void 0}),u})()},HP=t=>{const e=zce(),n=!!zE(),r=Fo(()=>{if(n){const i=zE();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:vat(e)}});return Wn(Yce.Provider,{get value(){return r()},get children(){return Wn(Fat,t)}})};function wat(t,{element:e}){const n=Fo(()=>{if(t.result)return t.result;if(t.queryResult&&t.modelDef)return new wt.Result(t.queryResult,t.modelDef);throw Error("MalloyRender: Must provide either a result or a queryResult and modelDef.")}),r=Fo(()=>hat(n())),i=()=>{const o=n().modelTag,u=n().tagParse().tag,a=o.tag("theme"),l=u.tag("theme");return{modelTag:o,resultTag:u,modelTheme:a,localTheme:l}};LP(()=>{if(e){const o=Lat(i().modelTheme,i().localTheme);for(const[u,a]of Object.entries(o))e.style.setProperty(u,a)}});const s=()=>{const o=i().resultTag,u=n().resultExplore;return kce(u,o)};return Wn(Hce.Provider,{get value(){return r()},get children(){return Wn(wce,{get fallback(){return Wn(HP,{get data(){return n().data}})},get children(){return Wn(PP,{get when(){return s()==="chart"},get children(){return Wn(Qce,{get field(){return n().resultExplore},get data(){return r().getData(n().data)},get metadata(){return r()}})}})}})}})}function wo(t,...e){let n;for(const r of e)if(n=r==null?void 0:r.text(t),typeof n<"u")break;return n??`var(--malloy-theme--${t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()})`}function Lat(t,e){const n={},r=wo("tableRowHeight",e,t),i=wo("tableBodyColor",e,t),s=wo("tableFontSize",e,t),o=wo("tableHeaderColor",e,t),u=wo("tableHeaderWeight",e,t),a=wo("tableBodyWeight",e,t),l=wo("tableBorder",e,t),c=wo("tableBackground",e,t),f=wo("tableGutterSize",e,t),x=wo("tablePinnedBackground",e,t),h=wo("tablePinnedBorder",e,t),p=wo("fontFamily",e,t);return n["--malloy-render--table-row-height"]=r,n["--malloy-render--table-body-color"]=i,n["--malloy-render--table-font-size"]=s,n["--malloy-render--font-family"]=p,n["--malloy-render--table-header-color"]=o,n["--malloy-render--table-header-weight"]=u,n["--malloy-render--table-body-weight"]=a,n["--malloy-render--table-border"]=l,n["--malloy-render--table-background"]=c,n["--malloy-render--table-gutter-size"]=f,n["--malloy-render--table-pinned-background"]=x,n["--malloy-render--table-pinned-border"]=h,n}const Iat=`:host {
|
|
1472
1472
|
--malloy-theme--table-row-height: 28px;
|
|
1473
1473
|
--malloy-theme--table-font-size: 12px;
|
|
1474
1474
|
--malloy-theme--table-header-color: #5d626b;
|