streamlit-nightly 1.46.2.dev20250707__py3-none-any.whl → 1.46.2.dev20250708__py3-none-any.whl

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.
Files changed (84) hide show
  1. streamlit/config.py +37 -0
  2. streamlit/proto/NewSession_pb2.py +16 -16
  3. streamlit/proto/NewSession_pb2.pyi +5 -1
  4. streamlit/runtime/app_session.py +34 -0
  5. streamlit/runtime/websocket_session_manager.py +8 -0
  6. streamlit/static/index.html +1 -1
  7. streamlit/static/manifest.json +218 -218
  8. streamlit/static/static/js/{ErrorOutline.esm.Cwi9617t.js → ErrorOutline.esm.CO5UETnI.js} +1 -1
  9. streamlit/static/static/js/{FileDownload.esm.51ynStRd.js → FileDownload.esm.BodlLZ2E.js} +1 -1
  10. streamlit/static/static/js/{FileHelper.D56tzO8c.js → FileHelper.BJWG5mWZ.js} +1 -1
  11. streamlit/static/static/js/{FormClearHelper.D3Hp66Ed.js → FormClearHelper.Bfl6Fb0k.js} +1 -1
  12. streamlit/static/static/js/{Hooks.BY6BNTRM.js → Hooks.BZNasbgB.js} +1 -1
  13. streamlit/static/static/js/{InputInstructions.BwiNLSMY.js → InputInstructions.D9_advjq.js} +1 -1
  14. streamlit/static/static/js/{ProgressBar.BEUzLotK.js → ProgressBar.BOxvIdHT.js} +2 -2
  15. streamlit/static/static/js/{RenderInPortalIfExists.DM17zpkP.js → RenderInPortalIfExists.B-maQ3lr.js} +1 -1
  16. streamlit/static/static/js/{Toolbar.CkeeikHg.js → Toolbar.BulWrSVh.js} +1 -1
  17. streamlit/static/static/js/{base-input.yvVgWMq1.js → base-input.oeeD4NYL.js} +4 -4
  18. streamlit/static/static/js/{checkbox.B0zzRnN3.js → checkbox.BqkhIzEX.js} +2 -2
  19. streamlit/static/static/js/{createSuper.DUNTCGyw.js → createSuper.bxk9uEsc.js} +1 -1
  20. streamlit/static/static/js/{data-grid-overlay-editor.CkmHJFS4.js → data-grid-overlay-editor.BFUaa7qj.js} +1 -1
  21. streamlit/static/static/js/{downloader.SYvlWNHe.js → downloader.CkJ9l-mW.js} +1 -1
  22. streamlit/static/static/js/{es6.Dn_Sg6yN.js → es6.CwBeRZxt.js} +2 -2
  23. streamlit/static/static/js/{iframeResizer.contentWindow.CfNH32kg.js → iframeResizer.contentWindow.B4xDykub.js} +1 -1
  24. streamlit/static/static/js/{index.BRiZ2gjM.js → index.B0vAXwMf.js} +1 -1
  25. streamlit/static/static/js/{index.D4Y-sPIG.js → index.B6ClyDWN.js} +1 -1
  26. streamlit/static/static/js/{index.kOzLZcEm.js → index.BAyahmk4.js} +1 -1
  27. streamlit/static/static/js/index.BGGyfLIH.js +1 -0
  28. streamlit/static/static/js/{index.D_4zzgnM.js → index.BHzjJ3JF.js} +5 -5
  29. streamlit/static/static/js/{index.CQiUN-qB.js → index.BNmqvLux.js} +2 -2
  30. streamlit/static/static/js/{index.D5BdLSQe.js → index.BP1DQKkm.js} +1 -1
  31. streamlit/static/static/js/{index.BruyfZhe.js → index.BPKHA8Id.js} +1 -1
  32. streamlit/static/static/js/{index.PovmrFJI.js → index.BTHnpf1I.js} +11 -11
  33. streamlit/static/static/js/{index.Jh8NGUS3.js → index.Ba65H8D9.js} +1 -1
  34. streamlit/static/static/js/{index.vgdzRlb1.js → index.BdnKKSPg.js} +1 -1
  35. streamlit/static/static/js/{index.BzFIXYgy.js → index.Bejef4Pk.js} +17 -17
  36. streamlit/static/static/js/{index.vvD6DJW9.js → index.BffMV8Pv.js} +2 -2
  37. streamlit/static/static/js/{index.DaG51Kxa.js → index.BxVKLNUY.js} +1 -1
  38. streamlit/static/static/js/index.BypmpIBL.js +1 -0
  39. streamlit/static/static/js/{index.BntKz97_.js → index.C795t44A.js} +1 -1
  40. streamlit/static/static/js/{index.D0OXHmxl.js → index.CFoM9W4u.js} +1 -1
  41. streamlit/static/static/js/{index.nghT_Lxa.js → index.CGqm8hCs.js} +1 -1
  42. streamlit/static/static/js/{index.HuK1SvDk.js → index.CIEFJvy6.js} +1 -1
  43. streamlit/static/static/js/{index.iaPLfTT0.js → index.CIeZ4fAx.js} +1 -1
  44. streamlit/static/static/js/{index.BWpac6Co.js → index.CL4vTLmN.js} +1 -1
  45. streamlit/static/static/js/{index.BxbiLBoz.js → index.CfqX1ZBe.js} +1 -1
  46. streamlit/static/static/js/{index.Ce22m0pL.js → index.D-8V3tc4.js} +1 -1
  47. streamlit/static/static/js/{index.B1hWgsYC.js → index.D-sXGL7m.js} +1 -1
  48. streamlit/static/static/js/{index.BUNdJdwv.js → index.D3TXItBH.js} +1 -1
  49. streamlit/static/static/js/index.D4WIU5V6.js +1 -0
  50. streamlit/static/static/js/{index.GGLK4gvh.js → index.DFRMOZ8C.js} +1 -1
  51. streamlit/static/static/js/{index.B8GCXUc4.js → index.DQXLgrs8.js} +1 -1
  52. streamlit/static/static/js/{index.Dw7bwHQ9.js → index.DgSLJq20.js} +1 -1
  53. streamlit/static/static/js/index.Dl-ChXDk.js +1 -0
  54. streamlit/static/static/js/{index.BcKUsmmW.js → index.FerMd1cU.js} +3 -3
  55. streamlit/static/static/js/{index.D6T2dYXA.js → index.JlbLrYBv.js} +60 -60
  56. streamlit/static/static/js/{index.BpDsy6P7.js → index.VY0EoknV.js} +2 -2
  57. streamlit/static/static/js/{index.FkXunjOd.js → index.aAeBp5Oj.js} +2 -2
  58. streamlit/static/static/js/{index.q3-Tm2pt.js → index.oJk4Ge1s.js} +1 -1
  59. streamlit/static/static/js/{index.BfBckj-h.js → index.um9CUbiU.js} +1 -1
  60. streamlit/static/static/js/{index.C1ab5uBd.js → index.zT8XLZtx.js} +1 -1
  61. streamlit/static/static/js/{input.BPpQxxzu.js → input.C3tznRn_.js} +2 -2
  62. streamlit/static/static/js/{memory.CR9Ajd2U.js → memory.OHbOX5Ru.js} +1 -1
  63. streamlit/static/static/js/{mergeWith.DjeH399x.js → mergeWith._KN0v5Xp.js} +1 -1
  64. streamlit/static/static/js/{number-overlay-editor.D8gzaWdQ.js → number-overlay-editor.BKok-OUE.js} +1 -1
  65. streamlit/static/static/js/{possibleConstructorReturn.ChodIDx3.js → possibleConstructorReturn.BfCdE8Gx.js} +1 -1
  66. streamlit/static/static/js/{sandbox.Deilbzun.js → sandbox.BeWP76j9.js} +1 -1
  67. streamlit/static/static/js/{timepicker.CQyXj151.js → timepicker.C8LfA2ZU.js} +1 -1
  68. streamlit/static/static/js/{toConsumableArray.Ddyzgz2E.js → toConsumableArray.BHlwNsw4.js} +1 -1
  69. streamlit/static/static/js/{uniqueId.Cr5-pyqr.js → uniqueId.Ds4mfmXu.js} +1 -1
  70. streamlit/static/static/js/{useBasicWidgetState.DX8Dvi5d.js → useBasicWidgetState.Ds5amAnj.js} +1 -1
  71. streamlit/static/static/js/useOnInputChange.CnPrmPV-.js +1 -0
  72. streamlit/static/static/js/{useTextInputAutoExpand.BPsrdzpb.js → useTextInputAutoExpand.DRi3Jfhk.js} +2 -2
  73. streamlit/static/static/js/{withFullScreenWrapper.DpxbNIyf.js → withFullScreenWrapper.DtwYvNjS.js} +1 -1
  74. {streamlit_nightly-1.46.2.dev20250707.dist-info → streamlit_nightly-1.46.2.dev20250708.dist-info}/METADATA +1 -1
  75. {streamlit_nightly-1.46.2.dev20250707.dist-info → streamlit_nightly-1.46.2.dev20250708.dist-info}/RECORD +79 -79
  76. streamlit/static/static/js/index.B6IBhXXL.js +0 -1
  77. streamlit/static/static/js/index.CJJTafCM.js +0 -1
  78. streamlit/static/static/js/index.CP_ebS8J.js +0 -1
  79. streamlit/static/static/js/index.i0djEkgf.js +0 -1
  80. streamlit/static/static/js/useOnInputChange.CGiEpYpi.js +0 -1
  81. {streamlit_nightly-1.46.2.dev20250707.data → streamlit_nightly-1.46.2.dev20250708.data}/scripts/streamlit.cmd +0 -0
  82. {streamlit_nightly-1.46.2.dev20250707.dist-info → streamlit_nightly-1.46.2.dev20250708.dist-info}/WHEEL +0 -0
  83. {streamlit_nightly-1.46.2.dev20250707.dist-info → streamlit_nightly-1.46.2.dev20250708.dist-info}/entry_points.txt +0 -0
  84. {streamlit_nightly-1.46.2.dev20250707.dist-info → streamlit_nightly-1.46.2.dev20250708.dist-info}/top_level.txt +0 -0
@@ -1,20 +1,20 @@
1
- import{J as g8,s as m8,H as at,aK as y8,aL as GA,aM as b8,aN as Va,aO as Sh,N as x8,z as v8,r as Rt,M as Cx,av as E8,ar as w8,an as HA,ao as VA,X as A8,aP as S8,O as YA,aE as XA,l as Tk,aH as C8,aQ as $8,C as _8,j as bm,aR as F8}from"./index.D6T2dYXA.js";import{S as KA,T as k8}from"./Toolbar.CkeeikHg.js";import{w as D8,E as T8}from"./withFullScreenWrapper.DpxbNIyf.js";import{m as M8}from"./mergeWith.DjeH399x.js";import{a as zc,n as O8,b as R8,c as eg,t as ra,p as N8,d as L8,e as P8,i as us,f as tg,g as JA,l as rl,h as $x,j as ng,k as QA,m as No,o as Cu,q as I8,r as ls,s as z8,u as B8,v as U8,w as j8}from"./threshold.DjX0wlsa.js";import{f as q8,a as hy,b as Mk,c as W8,R as ig,r as Ok,d as _x,e as Fx,C as kx,g as ZA,h as eS,i as rg,j as py,n as en,k as bf,l as G8,m as H8,o as V8,p as Y8,q as X8,s as K8,t as J8,u as Q8,v as Z8,w as e9,x as t9,y as Ch}from"./value.CgPGBV_l.js";import{P as n9,i as i9,a as r9,b as o9,p as Dx,T as s9,n as a9,t as u9,d as l9}from"./timer.CAwTRJ_g.js";import{u as c9}from"./FormClearHelper.D3Hp66Ed.js";const f9=e=>({"#vg-tooltip-element":{visibility:"hidden",position:"fixed",fontFamily:e.genericFonts.bodyFont,color:e.colors.bodyText,border:`${e.sizes.borderWidth} solid ${e.colors.borderColor}`,backgroundColor:g8(e.colors.bgColor,.05),fontSize:e.fontSizes.twoSm,boxShadow:"rgb(0 0 0 / 16%) 0px 1px 4px",maxWidth:e.sizes.maxChartTooltipWidth,padding:`${e.spacing.xs} ${e.spacing.md}`,borderRadius:e.radii.default,zIndex:e.zIndices.popup,"&.visible":{visibility:"visible"},h2:{marginTop:e.spacing.none,marginBottom:e.spacing.sm,fontSize:e.fontSizes.sm},td:{border:"none"},table:{borderSpacing:0,tr:{border:"none",td:{overflow:"hidden",textOverflow:"ellipsis",paddingTop:e.spacing.threeXS,paddingBottom:e.spacing.threeXS},"td.key":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.4)`,textAlign:"right",color:e.colors.fadedText60,whiteSpace:"nowrap",paddingRight:e.spacing.twoXS},"td.value":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.6)`,textAlign:"left",display:"-webkit-box",WebkitLineClamp:"5",WebkitBoxOrient:"vertical",lineClamp:"5",wordWrap:"break-word"}}}}}),d9=m8("div",{target:"e1d0pwhz0"})(({theme:e,useContainerWidth:t,isFullScreen:n})=>({width:t||n?"100%":"auto",height:n?"100%":"auto","&.vega-embed":{position:"relative",display:"inline-block",boxSizing:"border-box","details:not([open]) > :not(summary)":{display:"none !important"},"details[open] summary":{opacity:.7},"&:hover summary, .vega-embed:focus summary":{background:"transparent"},"&:hover summary, &:focus-within summary":{opacity:"1 !important",transition:"opacity 0.2s ease"},"&.has-actions":{paddingRight:0},".vega-actions":{position:"absolute",display:"flex",flexDirection:"column",paddingBottom:e.spacing.sm,paddingTop:e.spacing.sm,zIndex:e.zIndices.popup,top:`calc(${e.iconSizes.md} + 2 * ${e.spacing.xs} + ${e.spacing.xs})`,right:0,backgroundColor:e.colors.bgColor,boxShadow:"rgb(0 0 0 / 16%) 0px 4px 16px",border:`${e.sizes.borderWidth} solid ${e.colors.fadedText10}`,animationDuration:"0.15s",animationName:"scale-in",animationTimingFunction:"cubic-bezier(0.2, 0, 0.13, 1.5)",textAlign:"left",borderRadius:e.radii.default,a:{fontFamily:e.genericFonts.bodyFont,fontWeight:e.fontWeights.normal,fontSize:e.fontSizes.md,margin:0,padding:`${e.spacing.twoXS} ${e.spacing.twoXL}`,color:e.colors.bodyText,whiteSpace:"nowrap",textDecoration:"none"},"a:hover, a:focus":{backgroundColor:e.colors.darkenedBgMix15,color:e.colors.bodyText},":before":{content:"none"},":after":{content:"none"}},"@keyframes scale-in":{from:{opacity:0,transform:"scale(0.6)"},to:{opacity:1,transform:"scale(1)"}},".chart-wrapper":{"&.fit-x":{width:"100%"},"&.fit-y":{height:"100%"}},summary:{position:"absolute",top:0,right:0,opacity:0,listStyle:"none",cursor:"pointer",display:"list-item",padding:e.spacing.xs,height:"auto",zIndex:e.zIndices.menuButton,border:"none",boxShadow:"none",borderRadius:e.radii.default,color:e.colors.fadedText10,backgroundColor:"transparent",transition:"opacity 300ms 150ms,transform 300ms 150ms",lineHeight:0,"&::-webkit-details-marker":{display:"none"},"&:active, &:focus-visible, &:hover":{border:"none",boxShadow:"none",color:e.colors.bodyText,opacity:"1 !important",background:e.colors.darkenedBgMix15},svg:{width:e.iconSizes.md,height:e.iconSizes.md}}}}));function tS(e,t){const n={font:t.genericFonts.bodyFont,background:t.colors.bgColor,fieldTitle:"verbal",autosize:{type:"fit",contains:"padding"},title:{align:"left",anchor:"start",color:t.colors.headingColor,titleFontStyle:"normal",fontWeight:t.fontWeights.bold,fontSize:at(t.fontSizes.md),orient:"top",offset:26},header:{titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.md),titleColor:Va(t),titleFontStyle:"normal",labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal"},axis:{labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal",titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.sm),titleColor:Va(t),titleFontStyle:"normal",ticks:!1,gridColor:Sh(t),domain:!1,domainWidth:1,domainColor:Sh(t),labelFlush:!0,labelFlushOffset:1,labelBound:!1,labelLimit:100,titlePadding:at(t.spacing.lg),labelPadding:at(t.spacing.lg),labelSeparation:at(t.spacing.twoXS),labelOverlap:!0},legend:{labelFontSize:at(t.fontSizes.sm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),titleFontSize:at(t.fontSizes.sm),titleFontWeight:t.fontWeights.normal,titleFontStyle:"normal",titleColor:Va(t),titlePadding:5,labelPadding:at(t.spacing.lg),columnPadding:at(t.spacing.sm),rowPadding:at(t.spacing.twoXS),padding:7,symbolStrokeWidth:at(t.spacing.twoXS)},range:{category:t.colors.chartCategoricalColors,diverging:b8(t),ramp:GA(t),heatmap:GA(t)},view:{columns:1,strokeWidth:0,stroke:"transparent",continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},concat:{columns:1},facet:{columns:1},mark:{tooltip:{content:"encoding"},color:y8(t)},bar:{binSpacing:at(t.spacing.twoXS),discreteBandSize:{band:.85}},axisDiscrete:{grid:!1},axisXPoint:{grid:!1},axisTemporal:{grid:!1},axisXBand:{grid:!1}};return e?M8({},n,e,(i,r)=>Array.isArray(r)?r:void 0):n}function h9(e,t){const{colors:n,fontSizes:i,genericFonts:r}=t,o={labelFont:r.bodyFont,titleFont:r.bodyFont,labelFontSize:at(i.twoSm),titleFontSize:at(i.twoSm)},s={background:n.bgColor,axis:{labelColor:n.bodyText,titleColor:n.bodyText,gridColor:Sh(t),...o},legend:{labelColor:n.bodyText,titleColor:n.bodyText,...o},title:{color:n.bodyText,subtitleColor:n.bodyText,...o},header:{labelColor:n.bodyText,titleColor:n.bodyText,...o},view:{stroke:Sh(t),continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},mark:{tooltip:!0}};return e?x8({},s,e):s}const p9=20;function g9(e){"params"in e&&"encoding"in e&&e.params.forEach(t=>{"select"in t&&(["interval","point"].includes(t.select)&&(t.select={type:t.select}),"type"in t.select&&t.select.type==="point"&&!("encodings"in t.select)&&Cx(t.select.encodings)&&(t.select.encodings=Object.keys(e.encoding)))})}const m9=(e,t,n,i,r,o,s,a)=>{const u=JSON.parse(e);if(n==="streamlit"?u.config=tS(u.config,r):u.usermeta?.embedOptions?.theme==="streamlit"?(u.config=tS(u.config,r),u.usermeta.embedOptions.theme=void 0):u.config=h9(u.config,r),u.title&&(typeof u.title=="string"&&(u.title={text:u.title}),u.title.limit=u.title.limit??Math.max(s-40,0)),o?(u.width=s,u.height=a,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})):t&&(u.width=s,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})),u.padding||(u.padding={}),Cx(u.padding.bottom)&&(u.padding.bottom=p9),u.datasets)throw new Error("Datasets should not be passed as part of the spec");return i.length>0&&g9(u),u},y9=(e,t,n,i)=>{const r=v8(),{id:o,formId:s,spec:a,data:u,datasets:l,useContainerWidth:c,vegaLiteTheme:f,selectionMode:d}=e,h=Rt.useMemo(()=>d,[JSON.stringify(d)]),p=Rt.useMemo(()=>m9(a,c,f,h,r,t,n||0,i),[a,c,f,h,r,t,n,i]);return{id:o,formId:s,vegaLiteTheme:f,spec:p,selectionMode:h,data:u,datasets:l,useContainerWidth:c}};function yo(e,t,n){return e.fields=t||[],e.fname=n,e}function b9(e){return e==null?null:e.fname}function Rk(e){return e==null?null:e.fields}function Nk(e){return e.length===1?x9(e[0]):v9(e)}const x9=e=>function(t){return t[e]},v9=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function Jd(e){throw Error(e)}function Tx(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||Jd("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&Jd("Access path missing closing bracket: "+e),i&&Jd("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Mx(e,t,n){const i=Tx(e);return e=i.length===1?i[0]:e,yo((n&&n.get||Nk)(i),[e],t||e)}const E9=Mx("id"),Ox=yo(e=>e,[],"identity"),w9=yo(()=>0,[],"zero"),A9=yo(()=>1,[],"one"),Lk=yo(()=>!0,[],"true"),S9=yo(()=>!1,[],"false");function C9(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Pk=0,Ik=1,zk=2,Bk=3,Uk=4;function $9(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:C9,i=e||Pk;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Ik&&n(t||"error","ERROR",arguments),this},warn(){return i>=zk&&n(t||"warn","WARN",arguments),this},info(){return i>=Bk&&n(t||"log","INFO",arguments),this},debug(){return i>=Uk&&n(t||"log","DEBUG",arguments),this}}}var og=Array.isArray;function oa(e){return e===Object(e)}const nS=e=>e!=="__proto__";function Rx(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=_9(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;sg(i,o,r[o],s)}return i},{})}function sg(e,t,n,i){if(!nS(t))return;let r,o;if(oa(n)&&!og(n)){o=oa(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?sg(o,r,n[r]):nS(r)&&(o[r]=n[r])}else e[t]=n}function _9(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ol(e){return e[e.length-1]}function Nx(e){return e==null||e===""?null:+e}const jk=e=>t=>e*Math.exp(t),qk=e=>t=>Math.log(e*t),Wk=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),Gk=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,$h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function ag(e,t,n,i){const r=n(e[0]),o=n(ol(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function F9(e,t){return ag(e,t,Nx,Ox)}function k9(e,t){var n=Math.sign(e[0]);return ag(e,t,qk(n),jk(n))}function D9(e,t,n){return ag(e,t,$h(n),$h(1/n))}function T9(e,t,n){return ag(e,t,Wk(n),Gk(n))}function ug(e,t,n,i,r){const o=i(e[0]),s=i(ol(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function M9(e,t,n){return ug(e,t,n,Nx,Ox)}function O9(e,t,n){const i=Math.sign(e[0]);return ug(e,t,n,qk(i),jk(i))}function R9(e,t,n,i){return ug(e,t,n,$h(i),$h(1/i))}function N9(e,t,n,i){return ug(e,t,n,Wk(i),Gk(i))}function L9(e){return 1+~~(new Date(e).getMonth()/3)}function P9(e){return 1+~~(new Date(e).getUTCMonth()/3)}function Bc(e){return e!=null?og(e)?e:[e]:[]}function I9(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function lg(e){return typeof e=="function"}const z9="descending";function B9(e,t,n){n=n||{},t=Bc(t)||[];const i=[],r=[],o={},s=n.comparator||U9;return Bc(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===z9?-1:1),r.push(a=lg(a)?a:Mx(a,null,n)),(Rk(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:yo(s(r,i),Object.keys(o))}const Lx=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),U9=(e,t)=>e.length===1?j9(e[0],t[0]):q9(e,t,e.length),j9=(e,t)=>function(n,i){return Lx(e(n),e(i))*t},q9=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=Lx(o(i),o(r));return s*t[a]});function W9(e){return lg(e)?e:()=>e}function G9(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function Px(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function H9(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function V9(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}const Y9=Object.prototype.hasOwnProperty;function Hr(e,t){return Y9.call(e,t)}const hd={};function X9(e){let t={},n;function i(o){return Hr(t,o)&&t[o]!==hd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===hd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=hd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==hd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function K9(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=ol(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function J9(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),Px(i,n)}function Q9(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function Hk(e){return typeof e=="boolean"}function Vk(e){return Object.prototype.toString.call(e)==="[object Date]"}function Z9(e){return e&&lg(e[Symbol.iterator])}function Yk(e){return typeof e=="number"}function eP(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function to(e){return typeof e=="string"}function tP(e,t,n){e&&(e=t?Bc(e).map(a=>a.replace(/\\(.)/g,"$1")):Bc(e));const i=e&&e.length,r=n&&n.get||Nk,o=a=>r(t?[a]:Tx(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return yo(s,e,"key")}function nP(e,t){const n=e[0],i=ol(e),r=+t;return r?r===1?i:n+r*(i-n):n}const iP=1e4;function rP(e){e=+e||iP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>Hr(t,s)||Hr(n,s),get:s=>Hr(t,s)?t[s]:Hr(n,s)?o(s,n[s]):void 0,set:(s,a)=>Hr(t,s)?t[s]=a:o(s,a)}}function oP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function ec(e,t){let n="";for(;--t>=0;)n+=e;return n}function sP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?ec(r,s)+o:i==="center"?ec(r,~~(s/2))+o+ec(r,Math.ceil(s/2)):o+ec(r,s)}function aP(e){return e&&ol(e)-e[0]||0}function gu(e){return og(e)?"["+e.map(gu)+"]":oa(e)||to(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function uP(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const lP=e=>Yk(e)||Vk(e)?e:Date.parse(e);function cP(e,t){return t=t||lP,e==null||e===""?null:t(e)}function fP(e){return e==null||e===""?null:e+""}function dP(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function hP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function pP(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}function ri(e,t,n){return e.fields=t||[],e.fname=n,e}function lt(e){return e==null?null:e.fname}function xn(e){return e==null?null:e.fields}function Xk(e){return e.length===1?gP(e[0]):mP(e)}const gP=e=>function(t){return t[e]},mP=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function L(e){throw Error(e)}function Ix(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||L("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&L("Access path missing closing bracket: "+e),i&&L("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Li(e,t,n){const i=Ix(e);return e=i.length===1?i[0]:e,ri((n&&n.get||Xk)(i),[e],t||e)}const cg=Li("id"),Ln=ri(e=>e,[],"identity"),zs=ri(()=>0,[],"zero"),xf=ri(()=>1,[],"one"),Pi=ri(()=>!0,[],"true"),As=ri(()=>!1,[],"false");function yP(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const bP=0,Kk=1,xP=2,vP=3,EP=4;function wP(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:yP,i=e||bP;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Kk&&n("error","ERROR",arguments),this},warn(){return i>=xP&&n("warn","WARN",arguments),this},info(){return i>=vP&&n("log","INFO",arguments),this},debug(){return i>=EP&&n("log","DEBUG",arguments),this}}}var Z=Array.isArray;function me(e){return e===Object(e)}const iS=e=>e!=="__proto__";function AP(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=SP(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;Jk(i,o,r[o],s)}return i},{})}function Jk(e,t,n,i){if(!iS(t))return;let r,o;if(me(n)&&!Z(n)){o=me(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?Jk(o,r,n[r]):iS(r)&&(o[r]=n[r])}else e[t]=n}function SP(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function $e(e){return e[e.length-1]}function mn(e){return e==null||e===""?null:+e}const Qk=e=>t=>e*Math.exp(t),Zk=e=>t=>Math.log(e*t),eD=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),tD=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,_h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function fg(e,t,n,i){const r=n(e[0]),o=n($e(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function CP(e,t){return fg(e,t,mn,Ln)}function $P(e,t){var n=Math.sign(e[0]);return fg(e,t,Zk(n),Qk(n))}function _P(e,t,n){return fg(e,t,_h(n),_h(1/n))}function FP(e,t,n){return fg(e,t,eD(n),tD(n))}function dg(e,t,n,i,r){const o=i(e[0]),s=i($e(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function nD(e,t,n){return dg(e,t,n,mn,Ln)}function iD(e,t,n){const i=Math.sign(e[0]);return dg(e,t,n,Zk(i),Qk(i))}function gy(e,t,n,i){return dg(e,t,n,_h(i),_h(1/i))}function rD(e,t,n,i){return dg(e,t,n,eD(i),tD(i))}function kP(e){return 1+~~(new Date(e).getMonth()/3)}function DP(e){return 1+~~(new Date(e).getUTCMonth()/3)}function se(e){return e!=null?Z(e)?e:[e]:[]}function TP(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function be(e){return typeof e=="function"}const MP="descending";function oD(e,t,n){n=n||{},t=se(t)||[];const i=[],r=[],o={},s=n.comparator||OP;return se(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===MP?-1:1),r.push(a=be(a)?a:Li(a,null,n)),(xn(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:ri(s(r,i),Object.keys(o))}const hg=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),OP=(e,t)=>e.length===1?RP(e[0],t[0]):NP(e,t,e.length),RP=(e,t)=>function(n,i){return hg(e(n),e(i))*t},NP=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=hg(o(i),o(r));return s*t[a]});function wn(e){return be(e)?e:()=>e}function sD(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function ye(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function lo(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function LP(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}function le(e,t){return Object.hasOwn(e,t)}const pd={};function vf(e){let t={},n;function i(o){return le(t,o)&&t[o]!==pd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===pd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=pd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==pd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function PP(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=$e(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function G(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),ye(i,n)}function tc(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function IP(e){return typeof e=="boolean"}function Ys(e){return Object.prototype.toString.call(e)==="[object Date]"}function zP(e){return e&&be(e[Symbol.iterator])}function sa(e){return typeof e=="number"}function aD(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Ke(e){return typeof e=="string"}function uD(e,t,n){e&&(e=t?se(e).map(a=>a.replace(/\\(.)/g,"$1")):se(e));const i=e&&e.length,r=n&&n.get||Xk,o=a=>r(t?[a]:Ix(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return ri(s,e,"key")}function BP(e,t){const n=e[0],i=$e(e),r=+t;return r?r===1?i:n+r*(i-n):n}const UP=1e4;function jP(e){e=+e||UP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>le(t,s)||le(n,s),get:s=>le(t,s)?t[s]:le(n,s)?o(s,n[s]):void 0,set:(s,a)=>le(t,s)?t[s]=a:o(s,a)}}function qP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function gd(e,t){let n="";for(;--t>=0;)n+=e;return n}function WP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?gd(r,s)+o:i==="center"?gd(r,~~(s/2))+o+gd(r,Math.ceil(s/2)):o+gd(r,s)}function pg(e){return e&&$e(e)-e[0]||0}function re(e){return Z(e)?"["+e.map(re)+"]":me(e)||Ke(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function lD(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const GP=e=>sa(e)||Ys(e)?e:Date.parse(e);function cD(e,t){return t=t||GP,e==null||e===""?null:t(e)}function fD(e){return e==null||e===""?null:e+""}function yr(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function HP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function Ls(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}var rS={},xm={},vm=34,kl=10,Em=13;function dD(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function VP(e,t){var n=dD(e);return function(i,r){return t(n(i),r,e)}}function oS(e){var t=Object.create(null),n=[];return e.forEach(function(i){for(var r in i)r in t||n.push(t[r]=r)}),n}function Fn(e,t){var n=e+"",i=n.length;return i<t?new Array(t-i+1).join(0)+n:n}function YP(e){return e<0?"-"+Fn(-e,6):e>9999?"+"+Fn(e,6):Fn(e,4)}function XP(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),i=e.getUTCSeconds(),r=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":YP(e.getUTCFullYear())+"-"+Fn(e.getUTCMonth()+1,2)+"-"+Fn(e.getUTCDate(),2)+(r?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"."+Fn(r,3)+"Z":i?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"Z":n||t?"T"+Fn(t,2)+":"+Fn(n,2)+"Z":"")}function KP(e){var t=new RegExp('["'+e+`
2
- \r]`),n=e.charCodeAt(0);function i(f,d){var h,p,g=r(f,function(m,y){if(h)return h(m,y-1);p=m,h=d?VP(m,d):dD(m)});return g.columns=p||[],g}function r(f,d){var h=[],p=f.length,g=0,m=0,y,b=p<=0,x=!1;f.charCodeAt(p-1)===kl&&--p,f.charCodeAt(p-1)===Em&&--p;function v(){if(b)return xm;if(x)return x=!1,rS;var A,E=g,S;if(f.charCodeAt(E)===vm){for(;g++<p&&f.charCodeAt(g)!==vm||f.charCodeAt(++g)===vm;);return(A=g)>=p?b=!0:(S=f.charCodeAt(g++))===kl?x=!0:S===Em&&(x=!0,f.charCodeAt(g)===kl&&++g),f.slice(E+1,A-1).replace(/""/g,'"')}for(;g<p;){if((S=f.charCodeAt(A=g++))===kl)x=!0;else if(S===Em)x=!0,f.charCodeAt(g)===kl&&++g;else if(S!==n)continue;return f.slice(E,A)}return b=!0,f.slice(E,p)}for(;(y=v())!==xm;){for(var w=[];y!==rS&&y!==xm;)w.push(y),y=v();d&&(w=d(w,m++))==null||h.push(w)}return h}function o(f,d){return f.map(function(h){return d.map(function(p){return c(h[p])}).join(e)})}function s(f,d){return d==null&&(d=oS(f)),[d.map(c).join(e)].concat(o(f,d)).join(`
3
- `)}function a(f,d){return d==null&&(d=oS(f)),o(f,d).join(`
1
+ import{J as p8,s as g8,H as at,aK as m8,aL as y8,aM as Va,aN as Sh,N as b8,z as x8,r as Rt,M as Cx,av as v8,ar as E8,an as GA,ao as HA,X as w8,aO as A8,O as VA,aE as YA,l as Dk,aH as S8,aP as C8,C as $8,j as bm,aQ as _8}from"./index.JlbLrYBv.js";import{S as XA,T as F8}from"./Toolbar.BulWrSVh.js";import{w as k8,E as D8}from"./withFullScreenWrapper.DtwYvNjS.js";import{m as T8}from"./mergeWith._KN0v5Xp.js";import{a as zc,n as M8,b as O8,c as eg,t as ra,p as R8,d as N8,e as L8,i as us,f as tg,g as KA,l as rl,h as $x,j as ng,k as JA,m as No,o as Cu,q as P8,r as ls,s as I8,u as z8,v as B8,w as U8}from"./threshold.DjX0wlsa.js";import{f as j8,a as hy,b as Tk,c as q8,R as ig,r as Mk,d as _x,e as Fx,C as kx,g as QA,h as ZA,i as rg,j as py,n as en,k as bf,l as W8,m as G8,o as H8,p as V8,q as Y8,s as X8,t as K8,u as J8,v as Q8,w as Z8,x as e9,y as Ch}from"./value.CgPGBV_l.js";import{P as t9,i as n9,a as i9,b as r9,p as Dx,T as o9,n as s9,t as a9,d as u9}from"./timer.CAwTRJ_g.js";import{u as l9}from"./FormClearHelper.Bfl6Fb0k.js";const c9=e=>({"#vg-tooltip-element":{visibility:"hidden",position:"fixed",fontFamily:e.genericFonts.bodyFont,color:e.colors.bodyText,border:`${e.sizes.borderWidth} solid ${e.colors.borderColor}`,backgroundColor:p8(e.colors.bgColor,.05),fontSize:e.fontSizes.twoSm,boxShadow:"rgb(0 0 0 / 16%) 0px 1px 4px",maxWidth:e.sizes.maxChartTooltipWidth,padding:`${e.spacing.xs} ${e.spacing.md}`,borderRadius:e.radii.default,zIndex:e.zIndices.popup,"&.visible":{visibility:"visible"},h2:{marginTop:e.spacing.none,marginBottom:e.spacing.sm,fontSize:e.fontSizes.sm},td:{border:"none"},table:{borderSpacing:0,tr:{border:"none",td:{overflow:"hidden",textOverflow:"ellipsis",paddingTop:e.spacing.threeXS,paddingBottom:e.spacing.threeXS},"td.key":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.4)`,textAlign:"right",color:e.colors.fadedText60,whiteSpace:"nowrap",paddingRight:e.spacing.twoXS},"td.value":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.6)`,textAlign:"left",display:"-webkit-box",WebkitLineClamp:"5",WebkitBoxOrient:"vertical",lineClamp:"5",wordWrap:"break-word"}}}}}),f9=g8("div",{target:"e1d0pwhz0"})(({theme:e,useContainerWidth:t,isFullScreen:n})=>({width:t||n?"100%":"auto",height:n?"100%":"auto","&.vega-embed":{position:"relative",display:"inline-block",boxSizing:"border-box","details:not([open]) > :not(summary)":{display:"none !important"},"details[open] summary":{opacity:.7},"&:hover summary, .vega-embed:focus summary":{background:"transparent"},"&:hover summary, &:focus-within summary":{opacity:"1 !important",transition:"opacity 0.2s ease"},"&.has-actions":{paddingRight:0},".vega-actions":{position:"absolute",display:"flex",flexDirection:"column",paddingBottom:e.spacing.sm,paddingTop:e.spacing.sm,zIndex:e.zIndices.popup,top:`calc(${e.iconSizes.md} + 2 * ${e.spacing.xs} + ${e.spacing.xs})`,right:0,backgroundColor:e.colors.bgColor,boxShadow:"rgb(0 0 0 / 16%) 0px 4px 16px",border:`${e.sizes.borderWidth} solid ${e.colors.fadedText10}`,animationDuration:"0.15s",animationName:"scale-in",animationTimingFunction:"cubic-bezier(0.2, 0, 0.13, 1.5)",textAlign:"left",borderRadius:e.radii.default,a:{fontFamily:e.genericFonts.bodyFont,fontWeight:e.fontWeights.normal,fontSize:e.fontSizes.md,margin:0,padding:`${e.spacing.twoXS} ${e.spacing.twoXL}`,color:e.colors.bodyText,whiteSpace:"nowrap",textDecoration:"none"},"a:hover, a:focus":{backgroundColor:e.colors.darkenedBgMix15,color:e.colors.bodyText},":before":{content:"none"},":after":{content:"none"}},"@keyframes scale-in":{from:{opacity:0,transform:"scale(0.6)"},to:{opacity:1,transform:"scale(1)"}},".chart-wrapper":{"&.fit-x":{width:"100%"},"&.fit-y":{height:"100%"}},summary:{position:"absolute",top:0,right:0,opacity:0,listStyle:"none",cursor:"pointer",display:"list-item",padding:e.spacing.xs,height:"auto",zIndex:e.zIndices.menuButton,border:"none",boxShadow:"none",borderRadius:e.radii.default,color:e.colors.fadedText10,backgroundColor:"transparent",transition:"opacity 300ms 150ms,transform 300ms 150ms",lineHeight:0,"&::-webkit-details-marker":{display:"none"},"&:active, &:focus-visible, &:hover":{border:"none",boxShadow:"none",color:e.colors.bodyText,opacity:"1 !important",background:e.colors.darkenedBgMix15},svg:{width:e.iconSizes.md,height:e.iconSizes.md}}}}));function eS(e,t){const n={font:t.genericFonts.bodyFont,background:t.colors.bgColor,fieldTitle:"verbal",autosize:{type:"fit",contains:"padding"},title:{align:"left",anchor:"start",color:t.colors.headingColor,titleFontStyle:"normal",fontWeight:t.fontWeights.bold,fontSize:at(t.fontSizes.md),orient:"top",offset:26},header:{titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.md),titleColor:Va(t),titleFontStyle:"normal",labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal"},axis:{labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal",titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.sm),titleColor:Va(t),titleFontStyle:"normal",ticks:!1,gridColor:Sh(t),domain:!1,domainWidth:1,domainColor:Sh(t),labelFlush:!0,labelFlushOffset:1,labelBound:!1,labelLimit:100,titlePadding:at(t.spacing.lg),labelPadding:at(t.spacing.lg),labelSeparation:at(t.spacing.twoXS),labelOverlap:!0},legend:{labelFontSize:at(t.fontSizes.sm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),titleFontSize:at(t.fontSizes.sm),titleFontWeight:t.fontWeights.normal,titleFontStyle:"normal",titleColor:Va(t),titlePadding:5,labelPadding:at(t.spacing.lg),columnPadding:at(t.spacing.sm),rowPadding:at(t.spacing.twoXS),padding:7,symbolStrokeWidth:at(t.spacing.twoXS)},range:{category:t.colors.chartCategoricalColors,diverging:y8(t),ramp:t.colors.chartSequentialColors,heatmap:t.colors.chartSequentialColors},view:{columns:1,strokeWidth:0,stroke:"transparent",continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},concat:{columns:1},facet:{columns:1},mark:{tooltip:{content:"encoding"},color:m8(t)},bar:{binSpacing:at(t.spacing.twoXS),discreteBandSize:{band:.85}},axisDiscrete:{grid:!1},axisXPoint:{grid:!1},axisTemporal:{grid:!1},axisXBand:{grid:!1}};return e?T8({},n,e,(i,r)=>Array.isArray(r)?r:void 0):n}function d9(e,t){const{colors:n,fontSizes:i,genericFonts:r}=t,o={labelFont:r.bodyFont,titleFont:r.bodyFont,labelFontSize:at(i.twoSm),titleFontSize:at(i.twoSm)},s={background:n.bgColor,axis:{labelColor:n.bodyText,titleColor:n.bodyText,gridColor:Sh(t),...o},legend:{labelColor:n.bodyText,titleColor:n.bodyText,...o},title:{color:n.bodyText,subtitleColor:n.bodyText,...o},header:{labelColor:n.bodyText,titleColor:n.bodyText,...o},view:{stroke:Sh(t),continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},mark:{tooltip:!0}};return e?b8({},s,e):s}const h9=20;function p9(e){"params"in e&&"encoding"in e&&e.params.forEach(t=>{"select"in t&&(["interval","point"].includes(t.select)&&(t.select={type:t.select}),"type"in t.select&&t.select.type==="point"&&!("encodings"in t.select)&&Cx(t.select.encodings)&&(t.select.encodings=Object.keys(e.encoding)))})}const g9=(e,t,n,i,r,o,s,a)=>{const u=JSON.parse(e);if(n==="streamlit"?u.config=eS(u.config,r):u.usermeta?.embedOptions?.theme==="streamlit"?(u.config=eS(u.config,r),u.usermeta.embedOptions.theme=void 0):u.config=d9(u.config,r),u.title&&(typeof u.title=="string"&&(u.title={text:u.title}),u.title.limit=u.title.limit??Math.max(s-40,0)),o?(u.width=s,u.height=a,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})):t&&(u.width=s,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})),u.padding||(u.padding={}),Cx(u.padding.bottom)&&(u.padding.bottom=h9),u.datasets)throw new Error("Datasets should not be passed as part of the spec");return i.length>0&&p9(u),u},m9=(e,t,n,i)=>{const r=x8(),{id:o,formId:s,spec:a,data:u,datasets:l,useContainerWidth:c,vegaLiteTheme:f,selectionMode:d}=e,h=Rt.useMemo(()=>d,[JSON.stringify(d)]),p=Rt.useMemo(()=>g9(a,c,f,h,r,t,n||0,i),[a,c,f,h,r,t,n,i]);return{id:o,formId:s,vegaLiteTheme:f,spec:p,selectionMode:h,data:u,datasets:l,useContainerWidth:c}};function yo(e,t,n){return e.fields=t||[],e.fname=n,e}function y9(e){return e==null?null:e.fname}function Ok(e){return e==null?null:e.fields}function Rk(e){return e.length===1?b9(e[0]):x9(e)}const b9=e=>function(t){return t[e]},x9=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function Jd(e){throw Error(e)}function Tx(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||Jd("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&Jd("Access path missing closing bracket: "+e),i&&Jd("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Mx(e,t,n){const i=Tx(e);return e=i.length===1?i[0]:e,yo((n&&n.get||Rk)(i),[e],t||e)}const v9=Mx("id"),Ox=yo(e=>e,[],"identity"),E9=yo(()=>0,[],"zero"),w9=yo(()=>1,[],"one"),Nk=yo(()=>!0,[],"true"),A9=yo(()=>!1,[],"false");function S9(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Lk=0,Pk=1,Ik=2,zk=3,Bk=4;function C9(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:S9,i=e||Lk;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Pk&&n(t||"error","ERROR",arguments),this},warn(){return i>=Ik&&n(t||"warn","WARN",arguments),this},info(){return i>=zk&&n(t||"log","INFO",arguments),this},debug(){return i>=Bk&&n(t||"log","DEBUG",arguments),this}}}var og=Array.isArray;function oa(e){return e===Object(e)}const tS=e=>e!=="__proto__";function Rx(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=$9(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;sg(i,o,r[o],s)}return i},{})}function sg(e,t,n,i){if(!tS(t))return;let r,o;if(oa(n)&&!og(n)){o=oa(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?sg(o,r,n[r]):tS(r)&&(o[r]=n[r])}else e[t]=n}function $9(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ol(e){return e[e.length-1]}function Nx(e){return e==null||e===""?null:+e}const Uk=e=>t=>e*Math.exp(t),jk=e=>t=>Math.log(e*t),qk=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),Wk=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,$h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function ag(e,t,n,i){const r=n(e[0]),o=n(ol(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function _9(e,t){return ag(e,t,Nx,Ox)}function F9(e,t){var n=Math.sign(e[0]);return ag(e,t,jk(n),Uk(n))}function k9(e,t,n){return ag(e,t,$h(n),$h(1/n))}function D9(e,t,n){return ag(e,t,qk(n),Wk(n))}function ug(e,t,n,i,r){const o=i(e[0]),s=i(ol(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function T9(e,t,n){return ug(e,t,n,Nx,Ox)}function M9(e,t,n){const i=Math.sign(e[0]);return ug(e,t,n,jk(i),Uk(i))}function O9(e,t,n,i){return ug(e,t,n,$h(i),$h(1/i))}function R9(e,t,n,i){return ug(e,t,n,qk(i),Wk(i))}function N9(e){return 1+~~(new Date(e).getMonth()/3)}function L9(e){return 1+~~(new Date(e).getUTCMonth()/3)}function Bc(e){return e!=null?og(e)?e:[e]:[]}function P9(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function lg(e){return typeof e=="function"}const I9="descending";function z9(e,t,n){n=n||{},t=Bc(t)||[];const i=[],r=[],o={},s=n.comparator||B9;return Bc(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===I9?-1:1),r.push(a=lg(a)?a:Mx(a,null,n)),(Ok(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:yo(s(r,i),Object.keys(o))}const Lx=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),B9=(e,t)=>e.length===1?U9(e[0],t[0]):j9(e,t,e.length),U9=(e,t)=>function(n,i){return Lx(e(n),e(i))*t},j9=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=Lx(o(i),o(r));return s*t[a]});function q9(e){return lg(e)?e:()=>e}function W9(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function Px(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function G9(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function H9(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}const V9=Object.prototype.hasOwnProperty;function Hr(e,t){return V9.call(e,t)}const hd={};function Y9(e){let t={},n;function i(o){return Hr(t,o)&&t[o]!==hd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===hd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=hd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==hd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function X9(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=ol(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function K9(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),Px(i,n)}function J9(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function Gk(e){return typeof e=="boolean"}function Hk(e){return Object.prototype.toString.call(e)==="[object Date]"}function Q9(e){return e&&lg(e[Symbol.iterator])}function Vk(e){return typeof e=="number"}function Z9(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function to(e){return typeof e=="string"}function eP(e,t,n){e&&(e=t?Bc(e).map(a=>a.replace(/\\(.)/g,"$1")):Bc(e));const i=e&&e.length,r=n&&n.get||Rk,o=a=>r(t?[a]:Tx(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return yo(s,e,"key")}function tP(e,t){const n=e[0],i=ol(e),r=+t;return r?r===1?i:n+r*(i-n):n}const nP=1e4;function iP(e){e=+e||nP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>Hr(t,s)||Hr(n,s),get:s=>Hr(t,s)?t[s]:Hr(n,s)?o(s,n[s]):void 0,set:(s,a)=>Hr(t,s)?t[s]=a:o(s,a)}}function rP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function ec(e,t){let n="";for(;--t>=0;)n+=e;return n}function oP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?ec(r,s)+o:i==="center"?ec(r,~~(s/2))+o+ec(r,Math.ceil(s/2)):o+ec(r,s)}function sP(e){return e&&ol(e)-e[0]||0}function gu(e){return og(e)?"["+e.map(gu)+"]":oa(e)||to(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function aP(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const uP=e=>Vk(e)||Hk(e)?e:Date.parse(e);function lP(e,t){return t=t||uP,e==null||e===""?null:t(e)}function cP(e){return e==null||e===""?null:e+""}function fP(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function dP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function hP(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}function ri(e,t,n){return e.fields=t||[],e.fname=n,e}function lt(e){return e==null?null:e.fname}function xn(e){return e==null?null:e.fields}function Yk(e){return e.length===1?pP(e[0]):gP(e)}const pP=e=>function(t){return t[e]},gP=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function L(e){throw Error(e)}function Ix(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||L("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&L("Access path missing closing bracket: "+e),i&&L("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Li(e,t,n){const i=Ix(e);return e=i.length===1?i[0]:e,ri((n&&n.get||Yk)(i),[e],t||e)}const cg=Li("id"),Ln=ri(e=>e,[],"identity"),zs=ri(()=>0,[],"zero"),xf=ri(()=>1,[],"one"),Pi=ri(()=>!0,[],"true"),As=ri(()=>!1,[],"false");function mP(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const yP=0,Xk=1,bP=2,xP=3,vP=4;function EP(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:mP,i=e||yP;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Xk&&n("error","ERROR",arguments),this},warn(){return i>=bP&&n("warn","WARN",arguments),this},info(){return i>=xP&&n("log","INFO",arguments),this},debug(){return i>=vP&&n("log","DEBUG",arguments),this}}}var Z=Array.isArray;function me(e){return e===Object(e)}const nS=e=>e!=="__proto__";function wP(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=AP(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;Kk(i,o,r[o],s)}return i},{})}function Kk(e,t,n,i){if(!nS(t))return;let r,o;if(me(n)&&!Z(n)){o=me(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?Kk(o,r,n[r]):nS(r)&&(o[r]=n[r])}else e[t]=n}function AP(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function $e(e){return e[e.length-1]}function mn(e){return e==null||e===""?null:+e}const Jk=e=>t=>e*Math.exp(t),Qk=e=>t=>Math.log(e*t),Zk=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),eD=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,_h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function fg(e,t,n,i){const r=n(e[0]),o=n($e(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function SP(e,t){return fg(e,t,mn,Ln)}function CP(e,t){var n=Math.sign(e[0]);return fg(e,t,Qk(n),Jk(n))}function $P(e,t,n){return fg(e,t,_h(n),_h(1/n))}function _P(e,t,n){return fg(e,t,Zk(n),eD(n))}function dg(e,t,n,i,r){const o=i(e[0]),s=i($e(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function tD(e,t,n){return dg(e,t,n,mn,Ln)}function nD(e,t,n){const i=Math.sign(e[0]);return dg(e,t,n,Qk(i),Jk(i))}function gy(e,t,n,i){return dg(e,t,n,_h(i),_h(1/i))}function iD(e,t,n,i){return dg(e,t,n,Zk(i),eD(i))}function FP(e){return 1+~~(new Date(e).getMonth()/3)}function kP(e){return 1+~~(new Date(e).getUTCMonth()/3)}function se(e){return e!=null?Z(e)?e:[e]:[]}function DP(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function be(e){return typeof e=="function"}const TP="descending";function rD(e,t,n){n=n||{},t=se(t)||[];const i=[],r=[],o={},s=n.comparator||MP;return se(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===TP?-1:1),r.push(a=be(a)?a:Li(a,null,n)),(xn(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:ri(s(r,i),Object.keys(o))}const hg=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),MP=(e,t)=>e.length===1?OP(e[0],t[0]):RP(e,t,e.length),OP=(e,t)=>function(n,i){return hg(e(n),e(i))*t},RP=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=hg(o(i),o(r));return s*t[a]});function wn(e){return be(e)?e:()=>e}function oD(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function ye(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function lo(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function NP(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}function le(e,t){return Object.hasOwn(e,t)}const pd={};function vf(e){let t={},n;function i(o){return le(t,o)&&t[o]!==pd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===pd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=pd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==pd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function LP(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=$e(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function G(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),ye(i,n)}function tc(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function PP(e){return typeof e=="boolean"}function Ys(e){return Object.prototype.toString.call(e)==="[object Date]"}function IP(e){return e&&be(e[Symbol.iterator])}function sa(e){return typeof e=="number"}function sD(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Ke(e){return typeof e=="string"}function aD(e,t,n){e&&(e=t?se(e).map(a=>a.replace(/\\(.)/g,"$1")):se(e));const i=e&&e.length,r=n&&n.get||Yk,o=a=>r(t?[a]:Ix(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return ri(s,e,"key")}function zP(e,t){const n=e[0],i=$e(e),r=+t;return r?r===1?i:n+r*(i-n):n}const BP=1e4;function UP(e){e=+e||BP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>le(t,s)||le(n,s),get:s=>le(t,s)?t[s]:le(n,s)?o(s,n[s]):void 0,set:(s,a)=>le(t,s)?t[s]=a:o(s,a)}}function jP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function gd(e,t){let n="";for(;--t>=0;)n+=e;return n}function qP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?gd(r,s)+o:i==="center"?gd(r,~~(s/2))+o+gd(r,Math.ceil(s/2)):o+gd(r,s)}function pg(e){return e&&$e(e)-e[0]||0}function re(e){return Z(e)?"["+e.map(re)+"]":me(e)||Ke(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function uD(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const WP=e=>sa(e)||Ys(e)?e:Date.parse(e);function lD(e,t){return t=t||WP,e==null||e===""?null:t(e)}function cD(e){return e==null||e===""?null:e+""}function yr(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function GP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function Ls(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}var iS={},xm={},vm=34,kl=10,Em=13;function fD(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function HP(e,t){var n=fD(e);return function(i,r){return t(n(i),r,e)}}function rS(e){var t=Object.create(null),n=[];return e.forEach(function(i){for(var r in i)r in t||n.push(t[r]=r)}),n}function Fn(e,t){var n=e+"",i=n.length;return i<t?new Array(t-i+1).join(0)+n:n}function VP(e){return e<0?"-"+Fn(-e,6):e>9999?"+"+Fn(e,6):Fn(e,4)}function YP(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),i=e.getUTCSeconds(),r=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":VP(e.getUTCFullYear())+"-"+Fn(e.getUTCMonth()+1,2)+"-"+Fn(e.getUTCDate(),2)+(r?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"."+Fn(r,3)+"Z":i?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"Z":n||t?"T"+Fn(t,2)+":"+Fn(n,2)+"Z":"")}function XP(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function i(f,d){var h,p,g=r(f,function(m,y){if(h)return h(m,y-1);p=m,h=d?HP(m,d):fD(m)});return g.columns=p||[],g}function r(f,d){var h=[],p=f.length,g=0,m=0,y,b=p<=0,x=!1;f.charCodeAt(p-1)===kl&&--p,f.charCodeAt(p-1)===Em&&--p;function v(){if(b)return xm;if(x)return x=!1,iS;var A,E=g,S;if(f.charCodeAt(E)===vm){for(;g++<p&&f.charCodeAt(g)!==vm||f.charCodeAt(++g)===vm;);return(A=g)>=p?b=!0:(S=f.charCodeAt(g++))===kl?x=!0:S===Em&&(x=!0,f.charCodeAt(g)===kl&&++g),f.slice(E+1,A-1).replace(/""/g,'"')}for(;g<p;){if((S=f.charCodeAt(A=g++))===kl)x=!0;else if(S===Em)x=!0,f.charCodeAt(g)===kl&&++g;else if(S!==n)continue;return f.slice(E,A)}return b=!0,f.slice(E,p)}for(;(y=v())!==xm;){for(var w=[];y!==iS&&y!==xm;)w.push(y),y=v();d&&(w=d(w,m++))==null||h.push(w)}return h}function o(f,d){return f.map(function(h){return d.map(function(p){return c(h[p])}).join(e)})}function s(f,d){return d==null&&(d=rS(f)),[d.map(c).join(e)].concat(o(f,d)).join(`
3
+ `)}function a(f,d){return d==null&&(d=rS(f)),o(f,d).join(`
4
4
  `)}function u(f){return f.map(l).join(`
5
- `)}function l(f){return f.map(c).join(e)}function c(f){return f==null?"":f instanceof Date?XP(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:i,parseRows:r,format:s,formatBody:a,formatRows:u,formatRow:l,formatValue:c}}function JP(e){return e}function QP(e){if(e==null)return JP;var t,n,i=e.scale[0],r=e.scale[1],o=e.translate[0],s=e.translate[1];return function(a,u){u||(t=n=0);var l=2,c=a.length,f=new Array(c);for(f[0]=(t+=a[0])*i+o,f[1]=(n+=a[1])*r+s;l<c;)f[l]=a[l],++l;return f}}function ZP(e,t){for(var n,i=e.length,r=i-t;r<--i;)n=e[r],e[r++]=e[i],e[i]=n}function eI(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return sS(e,n)})}:sS(e,t)}function sS(e,t){var n=t.id,i=t.bbox,r=t.properties==null?{}:t.properties,o=hD(e,t);return n==null&&i==null?{type:"Feature",properties:r,geometry:o}:i==null?{type:"Feature",id:n,properties:r,geometry:o}:{type:"Feature",id:n,bbox:i,properties:r,geometry:o}}function hD(e,t){var n=QP(e.transform),i=e.arcs;function r(c,f){f.length&&f.pop();for(var d=i[c<0?~c:c],h=0,p=d.length;h<p;++h)f.push(n(d[h],h));c<0&&ZP(f,p)}function o(c){return n(c)}function s(c){for(var f=[],d=0,h=c.length;d<h;++d)r(c[d],f);return f.length<2&&f.push(f[0]),f}function a(c){for(var f=s(c);f.length<4;)f.push(f[0]);return f}function u(c){return c.map(a)}function l(c){var f=c.type,d;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":d=o(c.coordinates);break;case"MultiPoint":d=c.coordinates.map(o);break;case"LineString":d=s(c.arcs);break;case"MultiLineString":d=c.arcs.map(s);break;case"Polygon":d=u(c.arcs);break;case"MultiPolygon":d=c.arcs.map(u);break;default:return null}return{type:f,coordinates:d}}return l(t)}function tI(e,t){var n={},i={},r={},o=[],s=-1;t.forEach(function(l,c){var f=e.arcs[l<0?~l:l],d;f.length<3&&!f[1][0]&&!f[1][1]&&(d=t[++s],t[s]=l,t[c]=d)}),t.forEach(function(l){var c=a(l),f=c[0],d=c[1],h,p;if(h=r[f])if(delete r[h.end],h.push(l),h.end=d,p=i[d]){delete i[p.start];var g=p===h?h:h.concat(p);i[g.start=h.start]=r[g.end=p.end]=g}else i[h.start]=r[h.end]=h;else if(h=i[d])if(delete i[h.start],h.unshift(l),h.start=f,p=r[f]){delete r[p.end];var m=p===h?h:p.concat(h);i[m.start=p.start]=r[m.end=h.end]=m}else i[h.start]=r[h.end]=h;else h=[l],i[h.start=f]=r[h.end=d]=h});function a(l){var c=e.arcs[l<0?~l:l],f=c[0],d;return e.transform?(d=[0,0],c.forEach(function(h){d[0]+=h[0],d[1]+=h[1]})):d=c[c.length-1],l<0?[d,f]:[f,d]}function u(l,c){for(var f in l){var d=l[f];delete c[d.start],delete d.start,delete d.end,d.forEach(function(h){n[h<0?~h:h]=1}),o.push(d)}}return u(r,i),u(i,r),t.forEach(function(l){n[l<0?~l:l]||o.push([l])}),o}function nI(e){return hD(e,iI.apply(this,arguments))}function iI(e,t,n){var i,r,o;if(arguments.length>1)i=rI(e,t,n);else for(r=0,i=new Array(o=e.arcs.length);r<o;++r)i[r]=r;return{type:"MultiLineString",arcs:tI(e,i)}}function rI(e,t,n){var i=[],r=[],o;function s(f){var d=f<0?~f:f;(r[d]||(r[d]=[])).push({i:f,g:o})}function a(f){f.forEach(s)}function u(f){f.forEach(a)}function l(f){f.forEach(u)}function c(f){switch(o=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":a(f.arcs);break;case"MultiLineString":case"Polygon":u(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(t),r.forEach(n==null?function(f){i.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&i.push(f[0].i)}),i}function oI(e,t){let n=0,i,r=0,o=0;if(t===void 0)for(let s of e)s!=null&&(s=+s)>=s&&(i=s-r,r+=i/++n,o+=i*(s-r));else{let s=-1;for(let a of e)(a=t(a,++s,e))!=null&&(a=+a)>=a&&(i=a-r,r+=i/++n,o+=i*(a-r))}if(n>1)return o/(n-1)}function sI(e,t){const n=oI(e,t);return n&&Math.sqrt(n)}class vn{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let i=0;for(let r=0;r<this._n&&r<32;r++){const o=n[r],s=t+o,a=Math.abs(t)<Math.abs(o)?t-(s-o):o-(s-t);a&&(n[i++]=a),t=s}return n[i]=t,this._n=i+1,this}valueOf(){const t=this._partials;let n=this._n,i,r,o,s=0;if(n>0){for(s=t[--n];n>0&&(i=s,r=t[--n],s=i+r,o=r-(s-i),!o););n>0&&(o<0&&t[n-1]<0||o>0&&t[n-1]>0)&&(r=o*2,i=s+r,r==i-s&&(s=i))}return s}}class aS extends Map{constructor(t,n=mD){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[i,r]of t)this.set(i,r)}get(t){return super.get(my(this,t))}has(t){return super.has(my(this,t))}set(t,n){return super.set(pD(this,t),n)}delete(t){return super.delete(gD(this,t))}}class Fh extends Set{constructor(t,n=mD){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const i of t)this.add(i)}has(t){return super.has(my(this,t))}add(t){return super.add(pD(this,t))}delete(t){return super.delete(gD(this,t))}}function my({_intern:e,_key:t},n){const i=t(n);return e.has(i)?e.get(i):n}function pD({_intern:e,_key:t},n){const i=t(n);return e.has(i)?e.get(i):(e.set(i,n),n)}function gD({_intern:e,_key:t},n){const i=t(n);return e.has(i)&&(n=e.get(i),e.delete(i)),n}function mD(e){return e!==null&&typeof e=="object"?e.valueOf():e}function aI(e,t){return Array.from(t,n=>e[n])}function uI(e=zc){if(e===zc)return yD;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const i=e(t,n);return i||i===0?i:(e(n,n)===0)-(e(t,t)===0)}}function yD(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}function Xs(e,t){let n;if(t===void 0)for(const i of e)i!=null&&(n<i||n===void 0&&i>=i)&&(n=i);else{let i=-1;for(let r of e)(r=t(r,++i,e))!=null&&(n<r||n===void 0&&r>=r)&&(n=r)}return n}function yy(e,t){let n;if(t===void 0)for(const i of e)i!=null&&(n>i||n===void 0&&i>=i)&&(n=i);else{let i=-1;for(let r of e)(r=t(r,++i,e))!=null&&(n>r||n===void 0&&r>=r)&&(n=r)}return n}function bD(e,t,n=0,i=1/0,r){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),i=Math.floor(Math.min(e.length-1,i)),!(n<=t&&t<=i))return e;for(r=r===void 0?yD:uI(r);i>n;){if(i-n>600){const u=i-n+1,l=t-n+1,c=Math.log(u),f=.5*Math.exp(2*c/3),d=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1),h=Math.max(n,Math.floor(t-l*f/u+d)),p=Math.min(i,Math.floor(t+(u-l)*f/u+d));bD(e,t,h,p,r)}const o=e[t];let s=n,a=i;for(Dl(e,n,t),r(e[i],o)>0&&Dl(e,n,i);s<a;){for(Dl(e,s,a),++s,--a;r(e[s],o)<0;)++s;for(;r(e[a],o)>0;)--a}r(e[n],o)===0?Dl(e,n,a):(++a,Dl(e,a,i)),a<=t&&(n=a+1),t<=a&&(i=a-1)}return e}function Dl(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function by(e,t,n){if(e=Float64Array.from(O8(e,n)),!(!(i=e.length)||isNaN(t=+t))){if(t<=0||i<2)return yy(e);if(t>=1)return Xs(e);var i,r=(i-1)*t,o=Math.floor(r),s=Xs(bD(e,o).subarray(0,o+1)),a=yy(e.subarray(o+1));return s+(a-s)*(r-o)}}function xD(e,t,n=R8){if(!(!(i=e.length)||isNaN(t=+t))){if(t<=0||i<2)return+n(e[0],0,e);if(t>=1)return+n(e[i-1],i-1,e);var i,r=(i-1)*t,o=Math.floor(r),s=+n(e[o],o,e),a=+n(e[o+1],o+1,e);return s+(a-s)*(r-o)}}function lI(e,t){let n=0,i=0;if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&(++n,i+=r);else{let r=-1;for(let o of e)(o=t(o,++r,e))!=null&&(o=+o)>=o&&(++n,i+=o)}if(n)return i/n}function vD(e,t){return by(e,.5,t)}function*cI(e){for(const t of e)yield*t}function ED(e){return Array.from(cI(e))}function Yn(e,t,n){e=+e,t=+t,n=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+n;for(var i=-1,r=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(r);++i<r;)o[i]=e+i*n;return o}function wD(e,t){let n=0;for(let i of e)(i=+i)&&(n+=i);return n}function fI(e,...t){e=new Fh(e),t=t.map(dI);e:for(const n of e)for(const i of t)if(!i.has(n)){e.delete(n);continue e}return e}function dI(e){return e instanceof Fh?e:new Fh(e)}function hI(...e){const t=new Fh;for(const n of e)for(const i of n)t.add(i);return t}const wm=new Date,Am=new Date;function Et(e,t,n,i){function r(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return r.floor=o=>(e(o=new Date(+o)),o),r.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),r.round=o=>{const s=r(o),a=r.ceil(o);return o-s<a-o?s:a},r.offset=(o,s)=>(t(o=new Date(+o),s==null?1:Math.floor(s)),o),r.range=(o,s,a)=>{const u=[];if(o=r.ceil(o),a=a==null?1:Math.floor(a),!(o<s)||!(a>0))return u;let l;do u.push(l=new Date(+o)),t(o,a),e(o);while(l<o&&o<s);return u},r.filter=o=>Et(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,a)=>{if(s>=s)if(a<0)for(;++a<=0;)for(;t(s,-1),!o(s););else for(;--a>=0;)for(;t(s,1),!o(s););}),n&&(r.count=(o,s)=>(wm.setTime(+o),Am.setTime(+s),e(wm),e(Am),Math.floor(n(wm,Am))),r.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?r.filter(i?s=>i(s)%o===0:s=>r.count(0,s)%o===0):r)),r}const $u=Et(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);$u.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Et(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):$u);$u.range;const Xr=1e3,li=Xr*60,Kr=li*60,co=Kr*24,zx=co*7,uS=co*30,Sm=co*365,Jr=Et(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Xr)},(e,t)=>(t-e)/Xr,e=>e.getUTCSeconds());Jr.range;const gg=Et(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xr)},(e,t)=>{e.setTime(+e+t*li)},(e,t)=>(t-e)/li,e=>e.getMinutes());gg.range;const mg=Et(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*li)},(e,t)=>(t-e)/li,e=>e.getUTCMinutes());mg.range;const yg=Et(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xr-e.getMinutes()*li)},(e,t)=>{e.setTime(+e+t*Kr)},(e,t)=>(t-e)/Kr,e=>e.getHours());yg.range;const bg=Et(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Kr)},(e,t)=>(t-e)/Kr,e=>e.getUTCHours());bg.range;const no=Et(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*li)/co,e=>e.getDate()-1);no.range;const Go=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/co,e=>e.getUTCDate()-1);Go.range;const AD=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/co,e=>Math.floor(e/co));AD.range;function Fa(e){return Et(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*li)/zx)}const sl=Fa(0),kh=Fa(1),pI=Fa(2),gI=Fa(3),_u=Fa(4),mI=Fa(5),yI=Fa(6);sl.range;kh.range;pI.range;gI.range;_u.range;mI.range;yI.range;function ka(e){return Et(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/zx)}const al=ka(0),Dh=ka(1),bI=ka(2),xI=ka(3),Fu=ka(4),vI=ka(5),EI=ka(6);al.range;Dh.range;bI.range;xI.range;Fu.range;vI.range;EI.range;const Uc=Et(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Uc.range;const jc=Et(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());jc.range;const br=Et(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());br.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Et(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});br.range;const xr=Et(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());xr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Et(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});xr.range;function SD(e,t,n,i,r,o){const s=[[Jr,1,Xr],[Jr,5,5*Xr],[Jr,15,15*Xr],[Jr,30,30*Xr],[o,1,li],[o,5,5*li],[o,15,15*li],[o,30,30*li],[r,1,Kr],[r,3,3*Kr],[r,6,6*Kr],[r,12,12*Kr],[i,1,co],[i,2,2*co],[n,1,zx],[t,1,uS],[t,3,3*uS],[e,1,Sm]];function a(l,c,f){const d=c<l;d&&([l,c]=[c,l]);const h=f&&typeof f.range=="function"?f:u(l,c,f),p=h?h.range(l,+c+1):[];return d?p.reverse():p}function u(l,c,f){const d=Math.abs(c-l)/f,h=eg(([,,m])=>m).right(s,d);if(h===s.length)return e.every(ra(l/Sm,c/Sm,f));if(h===0)return $u.every(Math.max(ra(l,c,f),1));const[p,g]=s[d/s[h-1][2]<s[h][2]/d?h-1:h];return p.every(g)}return[a,u]}const[wI,AI]=SD(xr,jc,al,AD,bg,mg),[SI,CI]=SD(br,Uc,sl,no,yg,gg),jt="year",Pn="quarter",nn="month",bt="week",In="date",Zt="day",vr="dayofyear",ei="hours",ti="minutes",gi="seconds",Ii="milliseconds",Bx=[jt,Pn,nn,bt,In,Zt,vr,ei,ti,gi,Ii],Cm=Bx.reduce((e,t,n)=>(e[t]=1+n,e),{});function Ux(e){const t=se(e).slice(),n={};return t.length||L("Missing time unit."),t.forEach(r=>{le(Cm,r)?n[r]=1:L(`Invalid time unit: ${r}.`)}),(n[bt]||n[Zt]?1:0)+(n[Pn]||n[nn]||n[In]?1:0)+(n[vr]?1:0)>1&&L(`Incompatible time units: ${e}`),t.sort((r,o)=>Cm[r]-Cm[o]),t}const $I={[jt]:"%Y ",[Pn]:"Q%q ",[nn]:"%b ",[In]:"%d ",[bt]:"W%U ",[Zt]:"%a ",[vr]:"%j ",[ei]:"%H:00",[ti]:"00:%M",[gi]:":%S",[Ii]:".%L",[`${jt}-${nn}`]:"%Y-%m ",[`${jt}-${nn}-${In}`]:"%Y-%m-%d ",[`${ei}-${ti}`]:"%H:%M"};function CD(e,t){const n=ye({},$I,t),i=Ux(e),r=i.length;let o="",s=0,a,u;for(s=0;s<r;)for(a=i.length;a>s;--a)if(u=i.slice(s,a).join("-"),n[u]!=null){o+=n[u],s=a;break}return o.trim()}const Bs=new Date;function jx(e){return Bs.setFullYear(e),Bs.setMonth(0),Bs.setDate(1),Bs.setHours(0,0,0,0),Bs}function $D(e){return FD(new Date(e))}function _D(e){return xy(new Date(e))}function FD(e){return no.count(jx(e.getFullYear())-1,e)}function xy(e){return sl.count(jx(e.getFullYear())-1,e)}function vy(e){return jx(e).getDay()}function _I(e,t,n,i,r,o,s){if(0<=e&&e<100){const a=new Date(-1,t,n,i,r,o,s);return a.setFullYear(e),a}return new Date(e,t,n,i,r,o,s)}function kD(e){return TD(new Date(e))}function DD(e){return Ey(new Date(e))}function TD(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return Go.count(t-1,e)}function Ey(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return al.count(t-1,e)}function wy(e){return Bs.setTime(Date.UTC(e,0,1)),Bs.getUTCDay()}function FI(e,t,n,i,r,o,s){if(0<=e&&e<100){const a=new Date(Date.UTC(-1,t,n,i,r,o,s));return a.setUTCFullYear(n.y),a}return new Date(Date.UTC(e,t,n,i,r,o,s))}function MD(e,t,n,i,r){const o=t||1,s=$e(e),a=(y,b,x)=>(x=x||y,kI(n[x],i[x],y===s&&o,b)),u=new Date,l=yr(e),c=l[jt]?a(jt):wn(2012),f=l[nn]?a(nn):l[Pn]?a(Pn):zs,d=l[bt]&&l[Zt]?a(Zt,1,bt+Zt):l[bt]?a(bt,1):l[Zt]?a(Zt,1):l[In]?a(In,1):l[vr]?a(vr,1):xf,h=l[ei]?a(ei):zs,p=l[ti]?a(ti):zs,g=l[gi]?a(gi):zs,m=l[Ii]?a(Ii):zs;return function(y){u.setTime(+y);const b=c(u);return r(b,f(u),d(u,b),h(u),p(u),g(u),m(u))}}function kI(e,t,n,i){const r=n<=1?e:i?(o,s)=>i+n*Math.floor((e(o,s)-i)/n):(o,s)=>n*Math.floor(e(o,s)/n);return t?(o,s)=>t(r(o,s),s):r}function ku(e,t,n){return t+e*7-(n+6)%7}const DI={[jt]:e=>e.getFullYear(),[Pn]:e=>Math.floor(e.getMonth()/3),[nn]:e=>e.getMonth(),[In]:e=>e.getDate(),[ei]:e=>e.getHours(),[ti]:e=>e.getMinutes(),[gi]:e=>e.getSeconds(),[Ii]:e=>e.getMilliseconds(),[vr]:e=>FD(e),[bt]:e=>xy(e),[bt+Zt]:(e,t)=>ku(xy(e),e.getDay(),vy(t)),[Zt]:(e,t)=>ku(1,e.getDay(),vy(t))},TI={[Pn]:e=>3*e,[bt]:(e,t)=>ku(e,0,vy(t))};function OD(e,t){return MD(e,t||1,DI,TI,_I)}const MI={[jt]:e=>e.getUTCFullYear(),[Pn]:e=>Math.floor(e.getUTCMonth()/3),[nn]:e=>e.getUTCMonth(),[In]:e=>e.getUTCDate(),[ei]:e=>e.getUTCHours(),[ti]:e=>e.getUTCMinutes(),[gi]:e=>e.getUTCSeconds(),[Ii]:e=>e.getUTCMilliseconds(),[vr]:e=>TD(e),[bt]:e=>Ey(e),[Zt]:(e,t)=>ku(1,e.getUTCDay(),wy(t)),[bt+Zt]:(e,t)=>ku(Ey(e),e.getUTCDay(),wy(t))},OI={[Pn]:e=>3*e,[bt]:(e,t)=>ku(e,0,wy(t))};function RD(e,t){return MD(e,t||1,MI,OI,FI)}const RI={[jt]:br,[Pn]:Uc.every(3),[nn]:Uc,[bt]:sl,[In]:no,[Zt]:no,[vr]:no,[ei]:yg,[ti]:gg,[gi]:Jr,[Ii]:$u},NI={[jt]:xr,[Pn]:jc.every(3),[nn]:jc,[bt]:al,[In]:Go,[Zt]:Go,[vr]:Go,[ei]:bg,[ti]:mg,[gi]:Jr,[Ii]:$u};function ul(e){return RI[e]}function ll(e){return NI[e]}function ND(e,t,n){return e?e.offset(t,n):void 0}function LD(e,t,n){return ND(ul(e),t,n)}function PD(e,t,n){return ND(ll(e),t,n)}function ID(e,t,n,i){return e?e.range(t,n,i):void 0}function zD(e,t,n,i){return ID(ul(e),t,n,i)}function BD(e,t,n,i){return ID(ll(e),t,n,i)}const nc=1e3,ic=nc*60,rc=ic*60,xg=rc*24,LI=xg*7,lS=xg*30,Ay=xg*365,UD=[jt,nn,In,ei,ti,gi,Ii],oc=UD.slice(0,-1),sc=oc.slice(0,-1),ac=sc.slice(0,-1),PI=ac.slice(0,-1),II=[jt,bt],cS=[jt,nn],jD=[jt],Tl=[[oc,1,nc],[oc,5,5*nc],[oc,15,15*nc],[oc,30,30*nc],[sc,1,ic],[sc,5,5*ic],[sc,15,15*ic],[sc,30,30*ic],[ac,1,rc],[ac,3,3*rc],[ac,6,6*rc],[ac,12,12*rc],[PI,1,xg],[II,1,LI],[cS,1,lS],[cS,3,3*lS],[jD,1,Ay]];function qD(e){const t=e.extent,n=e.maxbins||40,i=Math.abs(pg(t))/n;let r=eg(a=>a[2]).right(Tl,i),o,s;return r===Tl.length?(o=jD,s=ra(t[0]/Ay,t[1]/Ay,n)):r?(r=Tl[i/Tl[r-1][2]<Tl[r][2]/i?r-1:r],o=r[0],s=r[1]):(o=UD,s=Math.max(ra(t[0],t[1],n),1)),{units:o,step:s}}function $m(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function _m(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Ml(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function WD(e){var t=e.dateTime,n=e.date,i=e.time,r=e.periods,o=e.days,s=e.shortDays,a=e.months,u=e.shortMonths,l=Ol(r),c=Rl(r),f=Ol(o),d=Rl(o),h=Ol(s),p=Rl(s),g=Ol(a),m=Rl(a),y=Ol(u),b=Rl(u),x={a:P,A:z,b:I,B:V,c:null,d:mS,e:mS,f:a7,g:y7,G:x7,H:r7,I:o7,j:s7,L:GD,m:u7,M:l7,p:ue,q:ie,Q:xS,s:vS,S:c7,u:f7,U:d7,V:h7,w:p7,W:g7,x:null,X:null,y:m7,Y:b7,Z:v7,"%":bS},v={a:he,A:We,b:pe,B:Ht,c:null,d:yS,e:yS,f:S7,g:R7,G:L7,H:E7,I:w7,j:A7,L:VD,m:C7,M:$7,p:ws,q:_o,Q:xS,s:vS,S:_7,u:F7,U:k7,V:D7,w:T7,W:M7,x:null,X:null,y:O7,Y:N7,Z:P7,"%":bS},w={a:_,A:k,b:N,B:T,c:F,d:pS,e:pS,f:e7,g:hS,G:dS,H:gS,I:gS,j:KI,L:ZI,m:XI,M:JI,p:C,q:YI,Q:n7,s:i7,S:QI,u:qI,U:WI,V:GI,w:jI,W:HI,x:$,X:D,y:hS,Y:dS,Z:VI,"%":t7};x.x=A(n,x),x.X=A(i,x),x.c=A(t,x),v.x=A(n,v),v.X=A(i,v),v.c=A(t,v);function A(Y,ge){return function(ve){var W=[],Ot=-1,Ne=0,Vt=Y.length,At,Zi,dd;for(ve instanceof Date||(ve=new Date(+ve));++Ot<Vt;)Y.charCodeAt(Ot)===37&&(W.push(Y.slice(Ne,Ot)),(Zi=fS[At=Y.charAt(++Ot)])!=null?At=Y.charAt(++Ot):Zi=At==="e"?" ":"0",(dd=ge[At])&&(At=dd(ve,Zi)),W.push(At),Ne=Ot+1);return W.push(Y.slice(Ne,Ot)),W.join("")}}function E(Y,ge){return function(ve){var W=Ml(1900,void 0,1),Ot=S(W,Y,ve+="",0),Ne,Vt;if(Ot!=ve.length)return null;if("Q"in W)return new Date(W.Q);if("s"in W)return new Date(W.s*1e3+("L"in W?W.L:0));if(ge&&!("Z"in W)&&(W.Z=0),"p"in W&&(W.H=W.H%12+W.p*12),W.m===void 0&&(W.m="q"in W?W.q:0),"V"in W){if(W.V<1||W.V>53)return null;"w"in W||(W.w=1),"Z"in W?(Ne=_m(Ml(W.y,0,1)),Vt=Ne.getUTCDay(),Ne=Vt>4||Vt===0?Dh.ceil(Ne):Dh(Ne),Ne=Go.offset(Ne,(W.V-1)*7),W.y=Ne.getUTCFullYear(),W.m=Ne.getUTCMonth(),W.d=Ne.getUTCDate()+(W.w+6)%7):(Ne=$m(Ml(W.y,0,1)),Vt=Ne.getDay(),Ne=Vt>4||Vt===0?kh.ceil(Ne):kh(Ne),Ne=no.offset(Ne,(W.V-1)*7),W.y=Ne.getFullYear(),W.m=Ne.getMonth(),W.d=Ne.getDate()+(W.w+6)%7)}else("W"in W||"U"in W)&&("w"in W||(W.w="u"in W?W.u%7:"W"in W?1:0),Vt="Z"in W?_m(Ml(W.y,0,1)).getUTCDay():$m(Ml(W.y,0,1)).getDay(),W.m=0,W.d="W"in W?(W.w+6)%7+W.W*7-(Vt+5)%7:W.w+W.U*7-(Vt+6)%7);return"Z"in W?(W.H+=W.Z/100|0,W.M+=W.Z%100,_m(W)):$m(W)}}function S(Y,ge,ve,W){for(var Ot=0,Ne=ge.length,Vt=ve.length,At,Zi;Ot<Ne;){if(W>=Vt)return-1;if(At=ge.charCodeAt(Ot++),At===37){if(At=ge.charAt(Ot++),Zi=w[At in fS?ge.charAt(Ot++):At],!Zi||(W=Zi(Y,ve,W))<0)return-1}else if(At!=ve.charCodeAt(W++))return-1}return W}function C(Y,ge,ve){var W=l.exec(ge.slice(ve));return W?(Y.p=c.get(W[0].toLowerCase()),ve+W[0].length):-1}function _(Y,ge,ve){var W=h.exec(ge.slice(ve));return W?(Y.w=p.get(W[0].toLowerCase()),ve+W[0].length):-1}function k(Y,ge,ve){var W=f.exec(ge.slice(ve));return W?(Y.w=d.get(W[0].toLowerCase()),ve+W[0].length):-1}function N(Y,ge,ve){var W=y.exec(ge.slice(ve));return W?(Y.m=b.get(W[0].toLowerCase()),ve+W[0].length):-1}function T(Y,ge,ve){var W=g.exec(ge.slice(ve));return W?(Y.m=m.get(W[0].toLowerCase()),ve+W[0].length):-1}function F(Y,ge,ve){return S(Y,t,ge,ve)}function $(Y,ge,ve){return S(Y,n,ge,ve)}function D(Y,ge,ve){return S(Y,i,ge,ve)}function P(Y){return s[Y.getDay()]}function z(Y){return o[Y.getDay()]}function I(Y){return u[Y.getMonth()]}function V(Y){return a[Y.getMonth()]}function ue(Y){return r[+(Y.getHours()>=12)]}function ie(Y){return 1+~~(Y.getMonth()/3)}function he(Y){return s[Y.getUTCDay()]}function We(Y){return o[Y.getUTCDay()]}function pe(Y){return u[Y.getUTCMonth()]}function Ht(Y){return a[Y.getUTCMonth()]}function ws(Y){return r[+(Y.getUTCHours()>=12)]}function _o(Y){return 1+~~(Y.getUTCMonth()/3)}return{format:function(Y){var ge=A(Y+="",x);return ge.toString=function(){return Y},ge},parse:function(Y){var ge=E(Y+="",!1);return ge.toString=function(){return Y},ge},utcFormat:function(Y){var ge=A(Y+="",v);return ge.toString=function(){return Y},ge},utcParse:function(Y){var ge=E(Y+="",!0);return ge.toString=function(){return Y},ge}}}var fS={"-":"",_:" ",0:"0"},Tt=/^\s*\d+/,zI=/^%/,BI=/[\\^$*+?|[\]().{}]/g;function Te(e,t,n){var i=e<0?"-":"",r=(i?-e:e)+"",o=r.length;return i+(o<n?new Array(n-o+1).join(t)+r:r)}function UI(e){return e.replace(BI,"\\$&")}function Ol(e){return new RegExp("^(?:"+e.map(UI).join("|")+")","i")}function Rl(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function jI(e,t,n){var i=Tt.exec(t.slice(n,n+1));return i?(e.w=+i[0],n+i[0].length):-1}function qI(e,t,n){var i=Tt.exec(t.slice(n,n+1));return i?(e.u=+i[0],n+i[0].length):-1}function WI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.U=+i[0],n+i[0].length):-1}function GI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.V=+i[0],n+i[0].length):-1}function HI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.W=+i[0],n+i[0].length):-1}function dS(e,t,n){var i=Tt.exec(t.slice(n,n+4));return i?(e.y=+i[0],n+i[0].length):-1}function hS(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function VI(e,t,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function YI(e,t,n){var i=Tt.exec(t.slice(n,n+1));return i?(e.q=i[0]*3-3,n+i[0].length):-1}function XI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.m=i[0]-1,n+i[0].length):-1}function pS(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.d=+i[0],n+i[0].length):-1}function KI(e,t,n){var i=Tt.exec(t.slice(n,n+3));return i?(e.m=0,e.d=+i[0],n+i[0].length):-1}function gS(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.H=+i[0],n+i[0].length):-1}function JI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.M=+i[0],n+i[0].length):-1}function QI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.S=+i[0],n+i[0].length):-1}function ZI(e,t,n){var i=Tt.exec(t.slice(n,n+3));return i?(e.L=+i[0],n+i[0].length):-1}function e7(e,t,n){var i=Tt.exec(t.slice(n,n+6));return i?(e.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function t7(e,t,n){var i=zI.exec(t.slice(n,n+1));return i?n+i[0].length:-1}function n7(e,t,n){var i=Tt.exec(t.slice(n));return i?(e.Q=+i[0],n+i[0].length):-1}function i7(e,t,n){var i=Tt.exec(t.slice(n));return i?(e.s=+i[0],n+i[0].length):-1}function mS(e,t){return Te(e.getDate(),t,2)}function r7(e,t){return Te(e.getHours(),t,2)}function o7(e,t){return Te(e.getHours()%12||12,t,2)}function s7(e,t){return Te(1+no.count(br(e),e),t,3)}function GD(e,t){return Te(e.getMilliseconds(),t,3)}function a7(e,t){return GD(e,t)+"000"}function u7(e,t){return Te(e.getMonth()+1,t,2)}function l7(e,t){return Te(e.getMinutes(),t,2)}function c7(e,t){return Te(e.getSeconds(),t,2)}function f7(e){var t=e.getDay();return t===0?7:t}function d7(e,t){return Te(sl.count(br(e)-1,e),t,2)}function HD(e){var t=e.getDay();return t>=4||t===0?_u(e):_u.ceil(e)}function h7(e,t){return e=HD(e),Te(_u.count(br(e),e)+(br(e).getDay()===4),t,2)}function p7(e){return e.getDay()}function g7(e,t){return Te(kh.count(br(e)-1,e),t,2)}function m7(e,t){return Te(e.getFullYear()%100,t,2)}function y7(e,t){return e=HD(e),Te(e.getFullYear()%100,t,2)}function b7(e,t){return Te(e.getFullYear()%1e4,t,4)}function x7(e,t){var n=e.getDay();return e=n>=4||n===0?_u(e):_u.ceil(e),Te(e.getFullYear()%1e4,t,4)}function v7(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Te(t/60|0,"0",2)+Te(t%60,"0",2)}function yS(e,t){return Te(e.getUTCDate(),t,2)}function E7(e,t){return Te(e.getUTCHours(),t,2)}function w7(e,t){return Te(e.getUTCHours()%12||12,t,2)}function A7(e,t){return Te(1+Go.count(xr(e),e),t,3)}function VD(e,t){return Te(e.getUTCMilliseconds(),t,3)}function S7(e,t){return VD(e,t)+"000"}function C7(e,t){return Te(e.getUTCMonth()+1,t,2)}function $7(e,t){return Te(e.getUTCMinutes(),t,2)}function _7(e,t){return Te(e.getUTCSeconds(),t,2)}function F7(e){var t=e.getUTCDay();return t===0?7:t}function k7(e,t){return Te(al.count(xr(e)-1,e),t,2)}function YD(e){var t=e.getUTCDay();return t>=4||t===0?Fu(e):Fu.ceil(e)}function D7(e,t){return e=YD(e),Te(Fu.count(xr(e),e)+(xr(e).getUTCDay()===4),t,2)}function T7(e){return e.getUTCDay()}function M7(e,t){return Te(Dh.count(xr(e)-1,e),t,2)}function O7(e,t){return Te(e.getUTCFullYear()%100,t,2)}function R7(e,t){return e=YD(e),Te(e.getUTCFullYear()%100,t,2)}function N7(e,t){return Te(e.getUTCFullYear()%1e4,t,4)}function L7(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Fu(e):Fu.ceil(e),Te(e.getUTCFullYear()%1e4,t,4)}function P7(){return"+0000"}function bS(){return"%"}function xS(e){return+e}function vS(e){return Math.floor(+e/1e3)}var Ya,qx,XD,Wx,KD;I7({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 I7(e){return Ya=WD(e),qx=Ya.format,XD=Ya.parse,Wx=Ya.utcFormat,KD=Ya.utcParse,Ya}function uc(e){const t={};return n=>t[n]||(t[n]=e(n))}function z7(e,t){return n=>{const i=e(n),r=i.indexOf(t);if(r<0)return i;let o=B7(i,r);const s=o<i.length?i.slice(o):"";for(;--o>r;)if(i[o]!=="0"){++o;break}return i.slice(0,o)+s}}function B7(e,t){let n=e.lastIndexOf("e"),i;if(n>0)return n;for(n=e.length;--n>t;)if(i=e.charCodeAt(n),i>=48&&i<=57)return n+1}function JD(e){const t=uc(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(i){const r=hy(i||",");if(r.precision==null){switch(r.precision=12,r.type){case"%":r.precision-=2;break;case"e":r.precision-=1;break}return z7(t(r),t(".1f")(1)[1])}else return t(r)},formatSpan(i,r,o,s){s=hy(s??",f");const a=ra(i,r,o),u=Math.max(Math.abs(i),Math.abs(r));let l;if(s.precision==null)switch(s.type){case"s":return isNaN(l=P8(a,u))||(s.precision=l),n(s,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=L8(a,u))||(s.precision=l-(s.type==="e"));break}case"f":case"%":{isNaN(l=N8(a))||(s.precision=l-(s.type==="%")*2);break}}return t(s)}}}let Sy;QD();function QD(){return Sy=JD({format:Mk,formatPrefix:W8})}function ZD(e){return JD(q8(e))}function Th(e){return arguments.length?Sy=ZD(e):Sy}function ES(e,t,n){n=n||{},me(n)||L(`Invalid time multi-format specifier: ${n}`);const i=t(gi),r=t(ti),o=t(ei),s=t(In),a=t(bt),u=t(nn),l=t(Pn),c=t(jt),f=e(n[Ii]||".%L"),d=e(n[gi]||":%S"),h=e(n[ti]||"%I:%M"),p=e(n[ei]||"%I %p"),g=e(n[In]||n[Zt]||"%a %d"),m=e(n[bt]||"%b %d"),y=e(n[nn]||"%B"),b=e(n[Pn]||"%B"),x=e(n[jt]||"%Y");return v=>(i(v)<v?f:r(v)<v?d:o(v)<v?h:s(v)<v?p:u(v)<v?a(v)<v?g:m:c(v)<v?l(v)<v?y:b:x)(v)}function e3(e){const t=uc(e.format),n=uc(e.utcFormat);return{timeFormat:i=>Ke(i)?t(i):ES(t,ul,i),utcFormat:i=>Ke(i)?n(i):ES(n,ll,i),timeParse:uc(e.parse),utcParse:uc(e.utcParse)}}let Cy;t3();function t3(){return Cy=e3({format:qx,parse:XD,utcFormat:Wx,utcParse:KD})}function n3(e){return e3(WD(e))}function qc(e){return arguments.length?Cy=n3(e):Cy}const $y=(e,t)=>ye({},e,t);function i3(e,t){const n=e?ZD(e):Th(),i=t?n3(t):qc();return $y(n,i)}function Gx(e,t){const n=arguments.length;return n&&n!==2&&L("defaultLocale expects either zero or two arguments."),n?$y(Th(e),qc(t)):$y(Th(),qc())}function U7(){return QD(),t3(),Gx()}const j7=/^(data:|([A-Za-z]+:)?\/\/)/,q7=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,W7=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,wS="file://";function G7(e,t){return n=>({options:n||{},sanitize:V7,load:H7,fileAccess:!1,file:Y7(t),http:K7(e)})}async function H7(e,t){const n=await this.sanitize(e,t),i=n.href;return n.localFile?this.file(i):this.http(i,t)}async function V7(e,t){t=ye({},this.options,t);const n=this.fileAccess,i={href:null};let r,o,s;const a=q7.test(e.replace(W7,""));(e==null||typeof e!="string"||!a)&&L("Sanitize failure, invalid URI: "+re(e));const u=j7.test(e);return(s=t.baseURL)&&!u&&(!e.startsWith("/")&&!s.endsWith("/")&&(e="/"+e),e=s+e),o=(r=e.startsWith(wS))||t.mode==="file"||t.mode!=="http"&&!u&&n,r?e=e.slice(wS.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),o=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(i,"localFile",{value:!!o}),i.href=e,t.target&&(i.target=t.target+""),t.rel&&(i.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(i.crossOrigin=t.crossOrigin+""),i}function Y7(e){return e?t=>new Promise((n,i)=>{e.readFile(t,(r,o)=>{r?i(r):n(o)})}):X7}async function X7(){L("No file system access.")}function K7(e){return e?async function(t,n){const i=ye({},this.options.http,n),r=n&&n.response,o=await e(t,i);return o.ok?be(o[r])?o[r]():o.text():L(o.status+""+o.statusText)}:J7}async function J7(){L("No HTTP fetch method available.")}const Q7=e=>e!=null&&e===e,Z7=e=>e==="true"||e==="false"||e===!0||e===!1,ez=e=>!Number.isNaN(Date.parse(e)),r3=e=>!Number.isNaN(+e)&&!(e instanceof Date),tz=e=>r3(e)&&Number.isInteger(+e),_y={boolean:lD,integer:mn,number:mn,date:cD,string:fD,unknown:Ln},md=[Z7,tz,r3,ez],nz=["boolean","integer","number","date"];function o3(e,t){if(!e||!e.length)return"unknown";const n=e.length,i=md.length,r=md.map((o,s)=>s+1);for(let o=0,s=0,a,u;o<n;++o)for(u=t?e[o][t]:e[o],a=0;a<i;++a)if(r[a]&&Q7(u)&&!md[a](u)&&(r[a]=0,++s,s===md.length))return"string";return nz[r.reduce((o,s)=>o===0?s:o,0)-1]}function s3(e,t){return t.reduce((n,i)=>(n[i]=o3(e,i),n),{})}function AS(e){const t=function(n,i){const r={delimiter:e};return Hx(n,i?ye(i,r):r)};return t.responseType="text",t}function Hx(e,t){return t.header&&(e=t.header.map(re).join(t.delimiter)+`
6
- `+e),KP(t.delimiter).parse(e+"")}Hx.responseType="text";function iz(e){return typeof Buffer=="function"&&be(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function Vx(e,t){const n=t&&t.property?Li(t.property):Ln;return me(e)&&!iz(e)?rz(n(e),t):n(JSON.parse(e))}Vx.responseType="json";function rz(e,t){return!Z(e)&&zP(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const oz={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function a3(e,t){let n,i,r,o;return e=Vx(e,t),t&&t.feature?(n=eI,r=t.feature):t&&t.mesh?(n=nI,r=t.mesh,o=oz[t.filter]):L("Missing TopoJSON feature or mesh parameter."),i=(i=e.objects[r])?n(e,i,o):L("Invalid TopoJSON object: "+r),i&&i.features||[i]}a3.responseType="json";const Qd={dsv:Hx,csv:AS(","),tsv:AS(" "),json:Vx,topojson:a3};function Yx(e,t){return arguments.length>1?(Qd[e]=t,this):le(Qd,e)?Qd[e]:null}function u3(e){const t=Yx(e);return t&&t.responseType||"text"}function l3(e,t,n,i){t=t||{};const r=Yx(t.type||"json");return r||L("Unknown data format type: "+t.type),e=r(e,t),t.parse&&sz(e,t.parse,n,i),le(e,"columns")&&delete e.columns,e}function sz(e,t,n,i){if(!e.length)return;const r=qc();n=n||r.timeParse,i=i||r.utcParse;let o=e.columns||Object.keys(e[0]),s,a,u,l,c,f;t==="auto"&&(t=s3(e,o)),o=Object.keys(t);const d=o.map(h=>{const p=t[h];let g,m;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return g=p.split(/:(.+)?/,2),m=g[1],(m[0]==="'"&&m[m.length-1]==="'"||m[0]==='"'&&m[m.length-1]==='"')&&(m=m.slice(1,-1)),(g[0]==="utc"?i:n)(m);if(!_y[p])throw Error("Illegal format pattern: "+h+":"+p);return _y[p]});for(u=0,c=e.length,f=o.length;u<c;++u)for(s=e[u],l=0;l<f;++l)a=o[l],s[a]=d[l](s[a])}const vg=G7(typeof fetch<"u"&&fetch,null);function Eg(e){const t=e||Ln,n=[],i={};return n.add=r=>{const o=t(r);return i[o]||(i[o]=1,n.push(r)),n},n.remove=r=>{const o=t(r);if(i[o]){i[o]=0;const s=n.indexOf(r);s>=0&&n.splice(s,1)}return n},n}async function Zd(e,t){try{await t(e)}catch(n){e.error(n)}}const c3=Symbol("vega_id");let az=1;function wg(e){return!!(e&&te(e))}function te(e){return e[c3]}function f3(e,t){return e[c3]=t,e}function Oe(e){const t=e===Object(e)?e:{data:e};return te(t)?t:f3(t,az++)}function Xx(e){return Ag(e,Oe({}))}function Ag(e,t){for(const n in e)t[n]=e[n];return t}function d3(e,t){return f3(t,te(e))}function Da(e,t){return e?t?(n,i)=>e(n,i)||te(t(n))-te(t(i)):(n,i)=>e(n,i)||te(n)-te(i):null}function h3(e){return e&&e.constructor===Ta}function Ta(){const e=[],t=[],n=[],i=[],r=[];let o=null,s=!1;return{constructor:Ta,insert(a){const u=se(a),l=u.length;for(let c=0;c<l;++c)e.push(u[c]);return this},remove(a){const u=be(a)?i:t,l=se(a),c=l.length;for(let f=0;f<c;++f)u.push(l[f]);return this},modify(a,u,l){const c={field:u,value:wn(l)};return be(a)?(c.filter=a,r.push(c)):(c.tuple=a,n.push(c)),this},encode(a,u){return be(a)?r.push({filter:a,field:u}):n.push({tuple:a,field:u}),this},clean(a){return o=a,this},reflow(){return s=!0,this},pulse(a,u){const l={},c={};let f,d,h,p,g,m;for(f=0,d=u.length;f<d;++f)l[te(u[f])]=1;for(f=0,d=t.length;f<d;++f)g=t[f],l[te(g)]=-1;for(f=0,d=i.length;f<d;++f)p=i[f],u.forEach(b=>{p(b)&&(l[te(b)]=-1)});for(f=0,d=e.length;f<d;++f)g=e[f],m=te(g),l[m]?l[m]=1:a.add.push(Oe(e[f]));for(f=0,d=u.length;f<d;++f)g=u[f],l[te(g)]<0&&a.rem.push(g);function y(b,x,v){v?b[x]=v(b):a.encode=x,s||(c[te(b)]=b)}for(f=0,d=n.length;f<d;++f)h=n[f],g=h.tuple,p=h.field,m=l[te(g)],m>0&&(y(g,p,h.value),a.modifies(p));for(f=0,d=r.length;f<d;++f)h=r[f],p=h.filter,u.forEach(b=>{p(b)&&l[te(b)]>0&&y(b,h.field,h.value)}),a.modifies(h.field);if(s)a.mod=t.length||i.length?u.filter(b=>l[te(b)]>0):u.slice();else for(m in c)a.mod.push(c[m]);return(o||o==null&&(t.length||i.length))&&a.clean(!0),a}}}const eh="_:mod:_";function Sg(){Object.defineProperty(this,eh,{writable:!0,value:{}})}Sg.prototype={set(e,t,n,i){const r=this,o=r[e],s=r[eh];return t!=null&&t>=0?(o[t]!==n||i)&&(o[t]=n,s[t+":"+e]=-1,s[e]=-1):(o!==n||i)&&(r[e]=n,s[e]=Z(n)?1+n.length:-1),r},modified(e,t){const n=this[eh];if(arguments.length){if(Z(e)){for(let i=0;i<e.length;++i)if(n[e[i]])return!0;return!1}}else{for(const i in n)if(n[i])return!0;return!1}return t!=null&&t>=0?t+1<n[e]||!!n[t+":"+e]:!!n[e]},clear(){return this[eh]={},this}};let uz=0;const lz="pulse",cz=new Sg,fz=1,dz=2;function Ge(e,t,n,i){this.id=++uz,this.value=e,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,t&&(this._update=t),n&&this.parameters(n,i)}function SS(e){return function(t){const n=this.flags;return arguments.length===0?!!(n&e):(this.flags=t?n|e:n&~e,this)}}Ge.prototype={targets(){return this._targets||(this._targets=Eg(cg))},set(e){return this.value!==e?(this.value=e,1):0},skip:SS(fz),modified:SS(dz),parameters(e,t,n){t=t!==!1;const i=this._argval=this._argval||new Sg,r=this._argops=this._argops||[],o=[];let s,a,u,l;const c=(f,d,h)=>{h instanceof Ge?(h!==this&&(t&&h.targets().add(this),o.push(h)),r.push({op:h,name:f,index:d})):i.set(f,d,h)};for(s in e)if(a=e[s],s===lz)se(a).forEach(f=>{f instanceof Ge?f!==this&&(f.targets().add(this),o.push(f)):L("Pulse parameters must be operator instances.")}),this.source=a;else if(Z(a))for(i.set(s,-1,Array(u=a.length)),l=0;l<u;++l)c(s,l,a[l]);else c(s,-1,a);return this.marshall().clear(),n&&(r.initonly=!0),o},marshall(e){const t=this._argval||cz,n=this._argops;let i,r,o,s;if(n){const a=n.length;for(r=0;r<a;++r)i=n[r],o=i.op,s=o.modified()&&o.stamp===e,t.set(i.name,i.index,o.value,s);if(n.initonly){for(r=0;r<a;++r)i=n[r],i.op.targets().remove(this);this._argops=null,this._update=null}}return t},detach(){const e=this._argops;let t,n,i,r;if(e)for(t=0,n=e.length;t<n;++t)i=e[t],r=i.op,r._targets&&r._targets.remove(this);this.pulse=null,this.source=null},evaluate(e){const t=this._update;if(t){const n=this.marshall(e.stamp),i=t.call(this,n,e);if(n.clear(),i!==this.value)this.value=i;else if(!this.modified())return e.StopPropagation}},run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?(this.skip(!1),t=0):t=this.evaluate(e),this.pulse=t||e}};function hz(e,t,n,i){let r=1,o;return e instanceof Ge?o=e:e&&e.prototype instanceof Ge?o=new e:be(e)?o=new Ge(null,e):(r=0,o=new Ge(e,t)),this.rank(o),r&&(i=n,n=t),n&&this.connect(o,o.parameters(n,i)),this.touch(o),o}function pz(e,t){const n=e.rank,i=t.length;for(let r=0;r<i;++r)if(n<t[r].rank){this.rerank(e);return}}let gz=0;function Cg(e,t,n){this.id=++gz,this.value=null,n&&(this.receive=n),e&&(this._filter=e),t&&(this._apply=t)}function ko(e,t,n){return new Cg(e,t,n)}Cg.prototype={_filter:Pi,_apply:Ln,targets(){return this._targets||(this._targets=Eg(cg))},consume(e){return arguments.length?(this._consume=!!e,this):!!this._consume},receive(e){if(this._filter(e)){const t=this.value=this._apply(e),n=this._targets,i=n?n.length:0;for(let r=0;r<i;++r)n[r].receive(t);this._consume&&(e.preventDefault(),e.stopPropagation())}},filter(e){const t=ko(e);return this.targets().add(t),t},apply(e){const t=ko(null,e);return this.targets().add(t),t},merge(){const e=ko();this.targets().add(e);for(let t=0,n=arguments.length;t<n;++t)arguments[t].targets().add(e);return e},throttle(e){let t=-1;return this.filter(()=>{const n=Date.now();return n-t>e?(t=n,1):0})},debounce(e){const t=ko();return this.targets().add(ko(null,null,sD(e,n=>{const i=n.dataflow;t.receive(n),i&&i.run&&i.run()}))),t},between(e,t){let n=!1;return e.targets().add(ko(null,null,()=>n=!0)),t.targets().add(ko(null,null,()=>n=!1)),this.filter(()=>n)},detach(){this._filter=Pi,this._targets=null}};function mz(e,t,n,i){const r=this,o=ko(n,i),s=function(l){l.dataflow=r;try{o.receive(l)}catch(c){r.error(c)}finally{r.run()}};let a;typeof e=="string"&&typeof document<"u"?a=document.querySelectorAll(e):a=se(e);const u=a.length;for(let l=0;l<u;++l)a[l].addEventListener(t,s);return o}function yz(e,t){const n=this.locale();return l3(e,t,n.timeParse,n.utcParse)}function bz(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))}async function xz(e,t){const n=this;let i=0,r;try{r=await n.loader().load(e,{context:"dataflow",response:u3(t&&t.type)});try{r=n.parse(r,t)}catch(o){i=-2,n.warn("Data ingestion failed",e,o)}}catch(o){i=-1,n.warn("Loading failed",e,o)}return{data:r,status:i}}async function vz(e,t,n){const i=this,r=i._pending||Ez(i);r.requests+=1;const o=await i.request(t,n);return i.pulse(e,i.changeset().remove(Pi).insert(o.data||[])),r.done(),o}function Ez(e){let t;const n=new Promise(i=>t=i);return n.requests=0,n.done=()=>{--n.requests===0&&(e._pending=null,t(e))},e._pending=n}const wz={skip:!0};function Az(e,t,n,i,r){return(e instanceof Ge?Cz:Sz)(this,e,t,n,i,r),this}function Sz(e,t,n,i,r,o){const s=ye({},o,wz);let a,u;be(n)||(n=wn(n)),i===void 0?a=l=>e.touch(n(l)):be(i)?(u=new Ge(null,i,r,!1),a=l=>{u.evaluate(l);const c=n(l),f=u.value;h3(f)?e.pulse(c,f,o):e.update(c,f,s)}):a=l=>e.update(n(l),i,s),t.apply(a)}function Cz(e,t,n,i,r,o){if(i===void 0)t.targets().add(n);else{const s=o||{},a=new Ge(null,$z(n,i),r,!1);a.modified(s.force),a.rank=t.rank,t.targets().add(a),n&&(a.skip(!0),a.value=n.value,a.targets().add(n),e.connect(n,[a]))}}function $z(e,t){return t=be(t)?t:wn(t),e?function(n,i){const r=t(n,i);return e.skip()||(e.skip(r!==this.value).value=r),r}:t}function _z(e){e.rank=++this._rank}function Fz(e){const t=[e];let n,i,r;for(;t.length;)if(this.rank(n=t.pop()),i=n._targets)for(r=i.length;--r>=0;)t.push(n=i[r]),n===e&&L("Cycle detected in dataflow graph.")}const Mh={},rr=1,To=2,jr=4,kz=rr|To,CS=rr|jr,Xa=rr|To|jr,$S=8,Nl=16,_S=32,FS=64;function Ho(e,t,n){this.dataflow=e,this.stamp=t??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function Fm(e,t){const n=[];return Ls(e,t,i=>n.push(i)),n}function kS(e,t){const n={};return e.visit(t,i=>{n[te(i)]=1}),i=>n[te(i)]?null:i}function yd(e,t){return e?(n,i)=>e(n,i)&&t(n,i):t}Ho.prototype={StopPropagation:Mh,ADD:rr,REM:To,MOD:jr,ADD_REM:kz,ADD_MOD:CS,ALL:Xa,REFLOW:$S,SOURCE:Nl,NO_SOURCE:_S,NO_FIELDS:FS,fork(e){return new Ho(this.dataflow).init(this,e)},clone(){const e=this.fork(Xa);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(Xa|Nl)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new Ho(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,e.fields&&!(t&FS)&&(n.fields=e.fields),t&rr?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),t&To?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),t&jr?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),t&_S?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||Xa;return t&rr&&this.add.length||t&To&&this.rem.length||t&jr&&this.mod.length},reflow(e){if(e)return this.fork(Xa).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(jr,kS(this,rr))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return Z(e)?e.forEach(n=>t[n]=!0):t[e]=!0,this},modified(e,t){const n=this.fields;return(t||this.mod.length)&&n?arguments.length?Z(e)?e.some(i=>n[i]):n[e]:!!n:!1},filter(e,t){const n=this;return e&rr&&(n.addF=yd(n.addF,t)),e&To&&(n.remF=yd(n.remF,t)),e&jr&&(n.modF=yd(n.modF,t)),e&Nl&&(n.srcF=yd(n.srcF,t)),n},materialize(e){e=e||Xa;const t=this;return e&rr&&t.addF&&(t.add=Fm(t.add,t.addF),t.addF=null),e&To&&t.remF&&(t.rem=Fm(t.rem,t.remF),t.remF=null),e&jr&&t.modF&&(t.mod=Fm(t.mod,t.modF),t.modF=null),e&Nl&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,i=t;if(e&Nl)return Ls(n.source,n.srcF,i),n;e&rr&&Ls(n.add,n.addF,i),e&To&&Ls(n.rem,n.remF,i),e&jr&&Ls(n.mod,n.modF,i);const r=n.source;if(e&$S&&r){const o=n.add.length+n.mod.length;o===r.length||(o?Ls(r,kS(n,CS),i):Ls(r,n.srcF,i))}return n}};function Kx(e,t,n,i){const r=this;let o=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=i||null,this.pulses=n;for(const s of n)if(s.stamp===t){if(s.fields){const a=r.fields||(r.fields={});for(const u in s.fields)a[u]=1}s.changed(r.ADD)&&(o|=r.ADD),s.changed(r.REM)&&(o|=r.REM),s.changed(r.MOD)&&(o|=r.MOD)}this.changes=o}G(Kx,Ho,{fork(e){const t=new Ho(this.dataflow).init(this,e&this.NO_FIELDS);return e!==void 0&&(e&t.ADD&&this.visit(t.ADD,n=>t.add.push(n)),e&t.REM&&this.visit(t.REM,n=>t.rem.push(n)),e&t.MOD&&this.visit(t.MOD,n=>t.mod.push(n))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?Z(e)?e.some(i=>n[i]):n[e]:0},filter(){L("MultiPulse does not support filtering.")},materialize(){L("MultiPulse does not support materialization.")},visit(e,t){const n=this,i=n.pulses,r=i.length;let o=0;if(e&n.SOURCE)for(;o<r;++o)i[o].visit(e,t);else for(;o<r;++o)i[o].stamp===n.stamp&&i[o].visit(e,t);return n}});async function Dz(e,t,n){const i=this,r=[];if(i._pulse)return p3(i);if(i._pending&&await i._pending,t&&await Zd(i,t),!i._touched.length)return i.debug("Dataflow invoked, but nothing to do."),i;const o=++i._clock;i._pulse=new Ho(i,o,e),i._touched.forEach(c=>i._enqueue(c,!0)),i._touched=Eg(cg);let s=0,a,u,l;try{for(;i._heap.size()>0;){if(a=i._heap.pop(),a.rank!==a.qrank){i._enqueue(a,!0);continue}u=a.run(i._getPulse(a,e)),u.then?u=await u:u.async&&(r.push(u.async),u=Mh),u!==Mh&&a._targets&&a._targets.forEach(c=>i._enqueue(c)),++s}}catch(c){i._heap.clear(),l=c}if(i._input={},i._pulse=null,i.debug(`Pulse ${o}: ${s} operators`),l&&(i._postrun=[],i.error(l)),i._postrun.length){const c=i._postrun.sort((f,d)=>d.priority-f.priority);i._postrun=[];for(let f=0;f<c.length;++f)await Zd(i,c[f].callback)}return n&&await Zd(i,n),r.length&&Promise.all(r).then(c=>i.runAsync(null,()=>{c.forEach(f=>{try{f(i)}catch(d){i.error(d)}})})),i}async function Tz(e,t,n){for(;this._running;)await this._running;const i=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(i,i),this._running}function Mz(e,t,n){return this._pulse?p3(this):(this.evaluate(e,t,n),this)}function Oz(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(i){this.error(i)}}function p3(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}function Rz(e,t){const n=e.stamp<this._clock;n&&(e.stamp=this._clock),(n||t)&&(e.qrank=e.rank,this._heap.push(e))}function Nz(e,t){const n=e.source,i=this._clock;return n&&Z(n)?new Kx(this,i,n.map(r=>r.pulse),t):this._input[e.id]||Lz(this._pulse,n&&n.pulse)}function Lz(e,t){return t&&t.stamp===e.stamp?t:(e=e.fork(),t&&t!==Mh&&(e.source=t.source),e)}const Jx={skip:!1,force:!1};function Pz(e,t){const n=t||Jx;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this}function Iz(e,t,n){const i=n||Jx;return(e.set(t)||i.force)&&this.touch(e,i),this}function zz(e,t,n){this.touch(e,n||Jx);const i=new Ho(this,this._clock+(this._pulse?0:1)),r=e.pulse&&e.pulse.source||[];return i.target=e,this._input[e.id]=t.pulse(i,r),this}function Bz(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),g3(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let i;return t.length?(i=t[0],t[0]=n,Uz(t,0,e)):i=n,i}}}function g3(e,t,n,i){let r,o;const s=e[n];for(;n>t;){if(o=n-1>>1,r=e[o],i(s,r)<0){e[n]=r,n=o;continue}break}return e[n]=s}function Uz(e,t,n){const i=t,r=e.length,o=e[t];let s=(t<<1)+1,a;for(;s<r;)a=s+1,a<r&&n(e[s],e[a])>=0&&(s=a),e[t]=e[s],t=s,s=(t<<1)+1;return e[t]=o,g3(e,i,t,n)}function mu(){this.logger(wP()),this.logLevel(Kk),this._clock=0,this._rank=0,this._locale=Gx();try{this._loader=vg()}catch{}this._touched=Eg(cg),this._input={},this._pulse=null,this._heap=Bz((e,t)=>e.qrank-t.qrank),this._postrun=[]}function Ll(e){return function(){return this._log[e].apply(this,arguments)}}mu.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:Ll("error"),warn:Ll("warn"),info:Ll("info"),debug:Ll("debug"),logLevel:Ll("level"),cleanThreshold:1e4,add:hz,connect:pz,rank:_z,rerank:Fz,pulse:zz,touch:Pz,update:Iz,changeset:Ta,ingest:bz,parse:yz,preload:vz,request:xz,events:mz,on:Az,evaluate:Dz,run:Mz,runAsync:Tz,runAfter:Oz,_enqueue:Rz,_getPulse:Nz};function M(e,t){Ge.call(this,e,null,t)}G(M,Ge,{run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?this.skip(!1):t=this.evaluate(e),t=t||e,t.then?t=t.then(n=>this.pulse=n):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const Du={};function m3(e){const t=y3(e);return t&&t.Definition||null}function y3(e){return e=e&&e.toLowerCase(),le(Du,e)?Du[e]:null}function*b3(e,t){if(t==null)for(let n of e)n!=null&&n!==""&&(n=+n)>=n&&(yield n);else{let n=-1;for(let i of e)i=t(i,++n,e),i!=null&&i!==""&&(i=+i)>=i&&(yield i)}}function Qx(e,t,n){const i=Float64Array.from(b3(e,n));return i.sort(zc),t.map(r=>xD(i,r))}function Zx(e,t){return Qx(e,[.25,.5,.75],t)}function ev(e,t){const n=e.length,i=sI(e,t),r=Zx(e,t),o=(r[2]-r[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(r[0])||1)*Math.pow(n,-.2)}function x3(e){const t=e.maxbins||20,n=e.base||10,i=Math.log(n),r=e.divide||[5,2];let o=e.extent[0],s=e.extent[1],a,u,l,c,f,d;const h=e.span||s-o||Math.abs(o)||1;if(e.step)a=e.step;else if(e.steps){for(c=h/t,f=0,d=e.steps.length;f<d&&e.steps[f]<c;++f);a=e.steps[Math.max(0,f-1)]}else{for(u=Math.ceil(Math.log(t)/i),l=e.minstep||0,a=Math.max(l,Math.pow(n,Math.round(Math.log(h)/i)-u));Math.ceil(h/a)>t;)a*=n;for(f=0,d=r.length;f<d;++f)c=a/r[f],c>=l&&h/c<=t&&(a=c)}c=Math.log(a);const p=c>=0?0:~~(-c/i)+1,g=Math.pow(n,-p-1);return(e.nice||e.nice===void 0)&&(c=Math.floor(o/a+g)*a,o=o<c?c-a:c,s=Math.ceil(s/a)*a),{start:o,stop:s===o?o+a:s,step:a}}var mi=Math.random;function jz(e){mi=e}function v3(e,t,n,i){if(!e.length)return[void 0,void 0];const r=Float64Array.from(b3(e,i)),o=r.length,s=t;let a,u,l,c;for(l=0,c=Array(s);l<s;++l){for(a=0,u=0;u<o;++u)a+=r[~~(mi()*o)];c[l]=a/o}return c.sort(zc),[by(c,n/2),by(c,1-n/2)]}function E3(e,t,n,i){i=i||(d=>d);const r=e.length,o=new Float64Array(r);let s=0,a=1,u=i(e[0]),l=u,c=u+t,f;for(;a<r;++a){if(f=i(e[a]),f>=c){for(l=(u+l)/2;s<a;++s)o[s]=l;c=f+t,u=f}l=f}for(l=(u+l)/2;s<a;++s)o[s]=l;return n?qz(o,t+t/4):o}function qz(e,t){const n=e.length;let i=0,r=1,o,s;for(;e[i]===e[r];)++r;for(;r<n;){for(o=r+1;e[r]===e[o];)++o;if(e[r]-e[r-1]<t){for(s=r+(i+o-r-r>>1);s<r;)e[s++]=e[r];for(;s>r;)e[s--]=e[i]}i=r,r=o}return e}function Wz(e){return function(){return e=(1103515245*e+12345)%2147483647,e/2147483647}}function Gz(e,t){t==null&&(t=e,e=0);let n,i,r;const o={min(s){return arguments.length?(n=s||0,r=i-n,o):n},max(s){return arguments.length?(i=s||0,r=i-n,o):i},sample(){return n+Math.floor(r*mi())},pdf(s){return s===Math.floor(s)&&s>=n&&s<i?1/r:0},cdf(s){const a=Math.floor(s);return a<n?0:a>=i?1:(a-n+1)/r},icdf(s){return s>=0&&s<=1?n-1+Math.floor(s*r):NaN}};return o.min(e).max(t)}const w3=Math.sqrt(2*Math.PI),Hz=Math.SQRT2;let Pl=NaN;function $g(e,t){e=e||0,t=t??1;let n=0,i=0,r,o;if(Pl===Pl)n=Pl,Pl=NaN;else{do n=mi()*2-1,i=mi()*2-1,r=n*n+i*i;while(r===0||r>1);o=Math.sqrt(-2*Math.log(r)/r),n*=o,Pl=i*o}return e+n*t}function tv(e,t,n){n=n??1;const i=(e-(t||0))/n;return Math.exp(-.5*i*i)/(n*w3)}function _g(e,t,n){t=t||0,n=n??1;const i=(e-t)/n,r=Math.abs(i);let o;if(r>37)o=0;else{const s=Math.exp(-r*r/2);let a;r<7.07106781186547?(a=.0352624965998911*r+.700383064443688,a=a*r+6.37396220353165,a=a*r+33.912866078383,a=a*r+112.079291497871,a=a*r+221.213596169931,a=a*r+220.206867912376,o=s*a,a=.0883883476483184*r+1.75566716318264,a=a*r+16.064177579207,a=a*r+86.7807322029461,a=a*r+296.564248779674,a=a*r+637.333633378831,a=a*r+793.826512519948,a=a*r+440.413735824752,o=o/a):(a=r+.65,a=r+4/a,a=r+3/a,a=r+2/a,a=r+1/a,o=s/a/2.506628274631)}return i>0?1-o:o}function Fg(e,t,n){return e<0||e>1?NaN:(t||0)+(n??1)*Hz*Vz(2*e-1)}function Vz(e){let t=-Math.log((1-e)*(1+e)),n;return t<6.25?(t-=3.125,n=-364441206401782e-35,n=-16850591381820166e-35+n*t,n=128584807152564e-32+n*t,n=11157877678025181e-33+n*t,n=-1333171662854621e-31+n*t,n=20972767875968562e-33+n*t,n=6637638134358324e-30+n*t,n=-4054566272975207e-29+n*t,n=-8151934197605472e-29+n*t,n=26335093153082323e-28+n*t,n=-12975133253453532e-27+n*t,n=-5415412054294628e-26+n*t,n=10512122733215323e-25+n*t,n=-4112633980346984e-24+n*t,n=-29070369957882005e-24+n*t,n=42347877827932404e-23+n*t,n=-13654692000834679e-22+n*t,n=-13882523362786469e-21+n*t,n=.00018673420803405714+n*t,n=-.000740702534166267+n*t,n=-.006033670871430149+n*t,n=.24015818242558962+n*t,n=1.6536545626831027+n*t):t<16?(t=Math.sqrt(t)-3.25,n=22137376921775787e-25,n=9075656193888539e-23+n*t,n=-27517406297064545e-23+n*t,n=18239629214389228e-24+n*t,n=15027403968909828e-22+n*t,n=-4013867526981546e-21+n*t,n=29234449089955446e-22+n*t,n=12475304481671779e-21+n*t,n=-47318229009055734e-21+n*t,n=6828485145957318e-20+n*t,n=24031110387097894e-21+n*t,n=-.0003550375203628475+n*t,n=.0009532893797373805+n*t,n=-.0016882755560235047+n*t,n=.002491442096107851+n*t,n=-.003751208507569241+n*t,n=.005370914553590064+n*t,n=1.0052589676941592+n*t,n=3.0838856104922208+n*t):Number.isFinite(t)?(t=Math.sqrt(t)-5,n=-27109920616438573e-27,n=-2555641816996525e-25+n*t,n=15076572693500548e-25+n*t,n=-3789465440126737e-24+n*t,n=761570120807834e-23+n*t,n=-1496002662714924e-23+n*t,n=2914795345090108e-23+n*t,n=-6771199775845234e-23+n*t,n=22900482228026655e-23+n*t,n=-99298272942317e-20+n*t,n=4526062597223154e-21+n*t,n=-1968177810553167e-20+n*t,n=7599527703001776e-20+n*t,n=-.00021503011930044477+n*t,n=-.00013871931833623122+n*t,n=1.0103004648645344+n*t,n=4.849906401408584+n*t):n=1/0,n*e}function nv(e,t){let n,i;const r={mean(o){return arguments.length?(n=o||0,r):n},stdev(o){return arguments.length?(i=o??1,r):i},sample:()=>$g(n,i),pdf:o=>tv(o,n,i),cdf:o=>_g(o,n,i),icdf:o=>Fg(o,n,i)};return r.mean(e).stdev(t)}function iv(e,t){const n=nv();let i=0;const r={data(o){return arguments.length?(e=o,i=o?o.length:0,r.bandwidth(t)):e},bandwidth(o){return arguments.length?(t=o,!t&&e&&(t=ev(e)),r):t},sample(){return e[~~(mi()*i)]+t*n.sample()},pdf(o){let s=0,a=0;for(;a<i;++a)s+=n.pdf((o-e[a])/t);return s/t/i},cdf(o){let s=0,a=0;for(;a<i;++a)s+=n.cdf((o-e[a])/t);return s/i},icdf(){throw Error("KDE icdf not supported.")}};return r.data(e)}function rv(e,t){return e=e||0,t=t??1,Math.exp(e+$g()*t)}function ov(e,t,n){if(e<=0)return 0;t=t||0,n=n??1;const i=(Math.log(e)-t)/n;return Math.exp(-.5*i*i)/(n*w3*e)}function sv(e,t,n){return _g(Math.log(e),t,n)}function av(e,t,n){return Math.exp(Fg(e,t,n))}function A3(e,t){let n,i;const r={mean(o){return arguments.length?(n=o||0,r):n},stdev(o){return arguments.length?(i=o??1,r):i},sample:()=>rv(n,i),pdf:o=>ov(o,n,i),cdf:o=>sv(o,n,i),icdf:o=>av(o,n,i)};return r.mean(e).stdev(t)}function S3(e,t){let n=0,i;function r(s){const a=[];let u=0,l;for(l=0;l<n;++l)u+=a[l]=s[l]==null?1:+s[l];for(l=0;l<n;++l)a[l]/=u;return a}const o={weights(s){return arguments.length?(i=r(t=s||[]),o):t},distributions(s){return arguments.length?(s?(n=s.length,e=s):(n=0,e=[]),o.weights(t)):e},sample(){const s=mi();let a=e[n-1],u=i[0],l=0;for(;l<n-1;u+=i[++l])if(s<u){a=e[l];break}return a.sample()},pdf(s){let a=0,u=0;for(;u<n;++u)a+=i[u]*e[u].pdf(s);return a},cdf(s){let a=0,u=0;for(;u<n;++u)a+=i[u]*e[u].cdf(s);return a},icdf(){throw Error("Mixture icdf not supported.")}};return o.distributions(e).weights(t)}function uv(e,t){return t==null&&(t=e??1,e=0),e+(t-e)*mi()}function lv(e,t,n){return n==null&&(n=t??1,t=0),e>=t&&e<=n?1/(n-t):0}function cv(e,t,n){return n==null&&(n=t??1,t=0),e<t?0:e>n?1:(e-t)/(n-t)}function fv(e,t,n){return n==null&&(n=t??1,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function C3(e,t){let n,i;const r={min(o){return arguments.length?(n=o||0,r):n},max(o){return arguments.length?(i=o??1,r):i},sample:()=>uv(n,i),pdf:o=>lv(o,n,i),cdf:o=>cv(o,n,i),icdf:o=>fv(o,n,i)};return t==null&&(t=e??1,e=0),r.min(e).max(t)}function dv(e,t,n){let i=0,r=0;for(const o of e){const s=n(o);t(o)==null||s==null||isNaN(s)||(i+=(s-i)/++r)}return{coef:[i],predict:()=>i,rSquared:0}}function Ef(e,t,n,i){const r=i-e*e,o=Math.abs(r)<1e-24?0:(n-e*t)/r;return[t-o*e,o]}function kg(e,t,n,i){e=e.filter(h=>{let p=t(h),g=n(h);return p!=null&&(p=+p)>=p&&g!=null&&(g=+g)>=g}),i&&e.sort((h,p)=>t(h)-t(p));const r=e.length,o=new Float64Array(r),s=new Float64Array(r);let a=0,u=0,l=0,c,f,d;for(d of e)o[a]=c=+t(d),s[a]=f=+n(d),++a,u+=(c-u)/a,l+=(f-l)/a;for(a=0;a<r;++a)o[a]-=u,s[a]-=l;return[o,s,u,l]}function wf(e,t,n,i){let r=-1,o,s;for(const a of e)o=t(a),s=n(a),o!=null&&(o=+o)>=o&&s!=null&&(s=+s)>=s&&i(o,s,++r)}function cl(e,t,n,i,r){let o=0,s=0;return wf(e,t,n,(a,u)=>{const l=u-r(a),c=u-i;o+=l*l,s+=c*c}),1-o/s}function hv(e,t,n){let i=0,r=0,o=0,s=0,a=0;wf(e,t,n,(c,f)=>{++a,i+=(c-i)/a,r+=(f-r)/a,o+=(c*f-o)/a,s+=(c*c-s)/a});const u=Ef(i,r,o,s),l=c=>u[0]+u[1]*c;return{coef:u,predict:l,rSquared:cl(e,t,n,r,l)}}function $3(e,t,n){let i=0,r=0,o=0,s=0,a=0;wf(e,t,n,(c,f)=>{++a,c=Math.log(c),i+=(c-i)/a,r+=(f-r)/a,o+=(c*f-o)/a,s+=(c*c-s)/a});const u=Ef(i,r,o,s),l=c=>u[0]+u[1]*Math.log(c);return{coef:u,predict:l,rSquared:cl(e,t,n,r,l)}}function _3(e,t,n){const[i,r,o,s]=kg(e,t,n);let a=0,u=0,l=0,c=0,f=0,d,h,p;wf(e,t,n,(b,x)=>{d=i[f++],h=Math.log(x),p=d*x,a+=(x*h-a)/f,u+=(p-u)/f,l+=(p*h-l)/f,c+=(d*p-c)/f});const[g,m]=Ef(u/s,a/s,l/s,c/s),y=b=>Math.exp(g+m*(b-o));return{coef:[Math.exp(g-m*o),m],predict:y,rSquared:cl(e,t,n,s,y)}}function F3(e,t,n){let i=0,r=0,o=0,s=0,a=0,u=0;wf(e,t,n,(f,d)=>{const h=Math.log(f),p=Math.log(d);++u,i+=(h-i)/u,r+=(p-r)/u,o+=(h*p-o)/u,s+=(h*h-s)/u,a+=(d-a)/u});const l=Ef(i,r,o,s),c=f=>l[0]*Math.pow(f,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:cl(e,t,n,a,c)}}function pv(e,t,n){const[i,r,o,s]=kg(e,t,n),a=i.length;let u=0,l=0,c=0,f=0,d=0,h,p,g,m;for(h=0;h<a;)p=i[h],g=r[h++],m=p*p,u+=(m-u)/h,l+=(m*p-l)/h,c+=(m*m-c)/h,f+=(p*g-f)/h,d+=(m*g-d)/h;const y=c-u*u,b=u*y-l*l,x=(d*u-f*l)/b,v=(f*y-d*l)/b,w=-x*u,A=E=>(E=E-o,x*E*E+v*E+w+s);return{coef:[w-v*o+x*o*o+s,v-2*x*o,x],predict:A,rSquared:cl(e,t,n,s,A)}}function k3(e,t,n,i){if(i===0)return dv(e,t,n);if(i===1)return hv(e,t,n);if(i===2)return pv(e,t,n);const[r,o,s,a]=kg(e,t,n),u=r.length,l=[],c=[],f=i+1;let d,h,p,g,m;for(d=0;d<f;++d){for(p=0,g=0;p<u;++p)g+=Math.pow(r[p],d)*o[p];for(l.push(g),m=new Float64Array(f),h=0;h<f;++h){for(p=0,g=0;p<u;++p)g+=Math.pow(r[p],d+h);m[h]=g}c.push(m)}c.push(l);const y=Xz(c),b=x=>{x-=s;let v=a+y[0]+y[1]*x+y[2]*x*x;for(d=3;d<f;++d)v+=y[d]*Math.pow(x,d);return v};return{coef:Yz(f,y,-s,a),predict:b,rSquared:cl(e,t,n,a,b)}}function Yz(e,t,n,i){const r=Array(e);let o,s,a,u;for(o=0;o<e;++o)r[o]=0;for(o=e-1;o>=0;--o)for(a=t[o],u=1,r[o]+=a,s=1;s<=o;++s)u*=(o+1-s)/s,r[o-s]+=a*Math.pow(n,s)*u;return r[0]+=i,r}function Xz(e){const t=e.length-1,n=[];let i,r,o,s,a;for(i=0;i<t;++i){for(s=i,r=i+1;r<t;++r)Math.abs(e[i][r])>Math.abs(e[i][s])&&(s=r);for(o=i;o<t+1;++o)a=e[o][i],e[o][i]=e[o][s],e[o][s]=a;for(r=i+1;r<t;++r)for(o=t;o>=i;o--)e[o][r]-=e[o][i]*e[i][r]/e[i][i]}for(r=t-1;r>=0;--r){for(a=0,o=r+1;o<t;++o)a+=e[o][r]*n[o];n[r]=(e[t][r]-a)/e[r][r]}return n}const DS=2,TS=1e-12;function D3(e,t,n,i){const[r,o,s,a]=kg(e,t,n,!0),u=r.length,l=Math.max(2,~~(i*u)),c=new Float64Array(u),f=new Float64Array(u),d=new Float64Array(u).fill(1);for(let h=-1;++h<=DS;){const p=[0,l-1];for(let m=0;m<u;++m){const y=r[m],b=p[0],x=p[1],v=y-r[b]>r[x]-y?b:x;let w=0,A=0,E=0,S=0,C=0;const _=1/Math.abs(r[v]-y||1);for(let T=b;T<=x;++T){const F=r[T],$=o[T],D=Kz(Math.abs(y-F)*_)*d[T],P=F*D;w+=D,A+=P,E+=$*D,S+=$*P,C+=F*P}const[k,N]=Ef(A/w,E/w,S/w,C/w);c[m]=k+N*y,f[m]=Math.abs(o[m]-c[m]),Jz(r,m+1,p)}if(h===DS)break;const g=vD(f);if(Math.abs(g)<TS)break;for(let m=0,y,b;m<u;++m)y=f[m]/(6*g),d[m]=y>=1?TS:(b=1-y*y)*b}return Qz(r,c,s,a)}function Kz(e){return(e=1-e*e*e)*e*e}function Jz(e,t,n){const i=e[t];let r=n[0],o=n[1]+1;if(!(o>=e.length))for(;t>r&&e[o]-i<=i-e[r];)n[0]=++r,n[1]=o,++o}function Qz(e,t,n,i){const r=e.length,o=[];let s=0,a=0,u=[],l;for(;s<r;++s)l=e[s]+n,u[0]===l?u[1]+=(t[s]-u[1])/++a:(a=0,u[1]+=i,u=[l,t[s]],o.push(u));return u[1]+=i,o}const Zz=.5*Math.PI/180;function Dg(e,t,n,i){n=n||25,i=Math.max(n,i||200);const r=g=>[g,e(g)],o=t[0],s=t[1],a=s-o,u=a/i,l=[r(o)],c=[];if(n===i){for(let g=1;g<i;++g)l.push(r(o+g/n*a));return l.push(r(s)),l}else{c.push(r(s));for(let g=n;--g>0;)c.push(r(o+g/n*a))}let f=l[0],d=c[c.length-1];const h=1/a,p=eB(f[1],c);for(;d;){const g=r((f[0]+d[0])/2);g[0]-f[0]>=u&&tB(f,g,d,h,p)>Zz?c.push(g):(f=d,l.push(d),c.pop()),d=c[c.length-1]}return l}function eB(e,t){let n=e,i=e;const r=t.length;for(let o=0;o<r;++o){const s=t[o][1];s<n&&(n=s),s>i&&(i=s)}return 1/(i-n)}function tB(e,t,n,i,r){const o=Math.atan2(r*(n[1]-e[1]),i*(n[0]-e[0])),s=Math.atan2(r*(t[1]-e[1]),i*(t[0]-e[0]));return Math.abs(o-s)}function nB(e){return t=>{const n=e.length;let i=1,r=String(e[0](t));for(;i<n;++i)r+="|"+e[i](t);return r}}function Fy(e){return!e||!e.length?function(){return""}:e.length===1?e[0]:nB(e)}function T3(e,t,n){return n||e+(t?"_"+t:"")}const km=()=>{},iB={init:km,add:km,rem:km,idx:0},Wc={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.valid?e.sum:void 0,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t<e.min||e.min===void 0)&&(e.min=t)},rem:(e,t)=>{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||e.max===void 0)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t<e.min&&(e.argmin=n)},rem:(e,t)=>{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(e,t)=>{e.exp=0,e.exp_r=t},value:e=>e.valid?e.exp*(1-e.exp_r)/(1-e.exp_r**e.valid):void 0,add:(e,t)=>e.exp=e.exp_r*e.exp+t,rem:(e,t)=>e.exp=(e.exp-t/e.exp_r**(e.valid-1))/e.exp_r},exponentialb:{value:e=>e.valid?e.exp*(1-e.exp_r):void 0,req:["exponential"],idx:1}},Af=Object.keys(Wc).filter(e=>e!=="__count__");function rB(e,t){return(n,i)=>ye({name:e,aggregate_param:i,out:n||e},iB,t)}[...Af,"__count__"].forEach(e=>{Wc[e]=rB(e,Wc[e])});function M3(e,t,n){return Wc[e](n,t)}function O3(e,t){return e.idx-t.idx}function oB(e){const t={};e.forEach(i=>t[i.name]=i);const n=i=>{i.req&&i.req.forEach(r=>{t[r]||n(t[r]=Wc[r]())})};return e.forEach(n),Object.values(t).sort(O3)}function sB(){this.valid=0,this.missing=0,this._ops.forEach(e=>e.aggregate_param==null?e.init(this):e.init(this,e.aggregate_param))}function aB(e,t){if(e==null||e===""){++this.missing;return}e===e&&(++this.valid,this._ops.forEach(n=>n.add(this,e,t)))}function uB(e,t){if(e==null||e===""){--this.missing;return}e===e&&(--this.valid,this._ops.forEach(n=>n.rem(this,e,t)))}function lB(e){return this._out.forEach(t=>e[t.out]=t.value(this)),e}function R3(e,t){const n=t||Ln,i=oB(e),r=e.slice().sort(O3);function o(s){this._ops=i,this._out=r,this.cell=s,this.init()}return o.prototype.init=sB,o.prototype.add=aB,o.prototype.rem=uB,o.prototype.set=lB,o.prototype.get=n,o.fields=e.map(s=>s.out),o}function gv(e){this._key=e?Li(e):te,this.reset()}const Gt=gv.prototype;Gt.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null};Gt.add=function(e){this._add.push(e)};Gt.rem=function(e){this._rem.push(e)};Gt.values=function(){if(this._get=null,this._rem.length===0)return this._add;const e=this._add,t=this._rem,n=this._key,i=e.length,r=t.length,o=Array(i-r),s={};let a,u,l;for(a=0;a<r;++a)s[n(t[a])]=1;for(a=0,u=0;a<i;++a)s[n(l=e[a])]?s[n(l)]=0:o[u++]=l;return this._rem=[],this._add=o};Gt.distinct=function(e){const t=this.values(),n={};let i=t.length,r=0,o;for(;--i>=0;)o=e(t[i])+"",le(n,o)||(n[o]=1,++r);return r};Gt.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=LP(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext};Gt.argmin=function(e){return this.extent(e)[0]||{}};Gt.argmax=function(e){return this.extent(e)[1]||{}};Gt.min=function(e){const t=this.extent(e)[0];return t!=null?e(t):void 0};Gt.max=function(e){const t=this.extent(e)[1];return t!=null?e(t):void 0};Gt.quartile=function(e){return(this._get!==e||!this._q)&&(this._q=Zx(this.values(),e),this._get=e),this._q};Gt.q1=function(e){return this.quartile(e)[0]};Gt.q2=function(e){return this.quartile(e)[1]};Gt.q3=function(e){return this.quartile(e)[2]};Gt.ci=function(e){return(this._get!==e||!this._ci)&&(this._ci=v3(this.values(),1e3,.05,e),this._get=e),this._ci};Gt.ci0=function(e){return this.ci(e)[0]};Gt.ci1=function(e){return this.ci(e)[1]};function Ko(e){M.call(this,null,e),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}Ko.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Af},{name:"aggregate_params",type:"number",null:!0,array:!0},{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"}]};G(Ko,M,{transform(e,t){const n=this,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.modified();return n.stamp=i.stamp,n.value&&(r||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=r?n.init(e):Object.create(null),t.visit(t.SOURCE,o=>n.add(o))):(n.value=n.value||n.init(e),t.visit(t.REM,o=>n.rem(o)),t.visit(t.ADD,o=>n.add(o))),i.modifies(n._outputs),n._drop=e.drop!==!1,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&i.clean(!0).runAfter(()=>this.clean()),n.changes(i)},cross(){const e=this,t=e.value,n=e._dnames,i=n.map(()=>({})),r=n.length;function o(a){let u,l,c,f;for(u in a)for(c=a[u].tuple,l=0;l<r;++l)i[l][f=c[n[l]]]=f}o(e._prev),o(t);function s(a,u,l){const c=n[l],f=i[l++];for(const d in f){const h=a?a+"|"+d:d;u[c]=f[d],l<r?s(h,u,l):t[h]||e.cell(h,u)}}s("",{},0)},init(e){const t=this._inputs=[],n=this._outputs=[],i={};function r(b){const x=se(xn(b)),v=x.length;let w=0,A;for(;w<v;++w)i[A=x[w]]||(i[A]=1,t.push(A))}this._dims=se(e.groupby),this._dnames=this._dims.map(b=>{const x=lt(b);return r(b),n.push(x),x}),this.cellkey=e.key?e.key:Fy(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const o=e.fields||[null],s=e.ops||["count"],a=e.aggregate_params||[null],u=e.as||[],l=o.length,c={};let f,d,h,p,g,m,y;for(l!==s.length&&L("Unmatched number of fields and aggregate ops."),y=0;y<l;++y){if(f=o[y],d=s[y],h=a[y]||null,f==null&&d!=="count"&&L("Null aggregate field specified."),g=lt(f),m=T3(d,g,u[y]),n.push(m),d==="count"){this._counts.push(m);continue}p=c[g],p||(r(f),p=c[g]=[],p.field=f,this._measures.push(p)),d!=="count"&&(this._countOnly=!1),p.push(M3(d,h,m))}return this._measures=this._measures.map(b=>R3(b,b.field)),Object.create(null)},cellkey:Fy(),cell(e,t){let n=this.value[e];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[e]=this.newcell(e,t),this._adds[this._alen++]=n),n},newcell(e,t){const n={key:e,num:0,agg:null,tuple:this.newtuple(t,this._prev&&this._prev[e]),stamp:this.stamp,store:!1};if(!this._countOnly){const i=this._measures,r=i.length;n.agg=Array(r);for(let o=0;o<r;++o)n.agg[o]=new i[o](n)}return n.store&&(n.data=new gv),n},newtuple(e,t){const n=this._dnames,i=this._dims,r=i.length,o={};for(let s=0;s<r;++s)o[n[s]]=i[s](e);return t?d3(t.tuple,o):Oe(o)},clean(){const e=this.value;for(const t in e)e[t].num===0&&delete e[t]},add(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].add(i[r].get(e),e)},rem(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].rem(i[r].get(e),e)},celltuple(e){const t=e.tuple,n=this._counts;e.store&&e.data.values();for(let i=0,r=n.length;i<r;++i)t[n[i]]=e.num;if(!this._countOnly){const i=e.agg;for(let r=0,o=i.length;r<o;++r)i[r].set(t)}return t},changes(e){const t=this._adds,n=this._mods,i=this._prev,r=this._drop,o=e.add,s=e.rem,a=e.mod;let u,l,c,f;if(i)for(l in i)u=i[l],(!r||u.num)&&s.push(u.tuple);for(c=0,f=this._alen;c<f;++c)o.push(this.celltuple(t[c])),t[c]=null;for(c=0,f=this._mlen;c<f;++c)u=n[c],(u.num===0&&r?s:a).push(this.celltuple(u)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,e}});const cB=1e-14;function mv(e){M.call(this,null,e)}mv.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"]}]};G(mv,M,{transform(e,t){const n=e.interval!==!1,i=this._bins(e),r=i.start,o=i.step,s=e.as||["bin0","bin1"],a=s[0],u=s[1];let l;return e.modified()?(t=t.reflow(!0),l=t.SOURCE):l=t.modified(xn(e.field))?t.ADD_MOD:t.ADD,t.visit(l,n?c=>{const f=i(c);c[a]=f,c[u]=f==null?null:r+o*(1+(f-r)/o)}:c=>c[a]=i(c)),t.modifies(n?s:a)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=x3(e),i=n.step;let r=n.start,o=r+Math.ceil((n.stop-r)/i)*i,s,a;(s=e.anchor)!=null&&(a=s-(r+i*Math.floor((s-r)/i)),r+=a,o+=a);const u=function(l){let c=mn(t(l));return c==null?null:c<r?-1/0:c>o?1/0:(c=Math.max(r,Math.min(c,o-i)),r+i*Math.floor(cB+(c-r)/i))};return u.start=r,u.stop=n.stop,u.step=i,this.value=ri(u,xn(t),e.name||"bin_"+lt(t))}});function N3(e,t,n){const i=e;let r=t||[],o=n||[],s={},a=0;return{add:u=>o.push(u),remove:u=>s[i(u)]=++a,size:()=>r.length,data:(u,l)=>(a&&(r=r.filter(c=>!s[i(c)]),s={},a=0),l&&u&&r.sort(u),o.length&&(r=u?qP(u,r,o.sort(u)):r.concat(o),o=[]),r)}}function yv(e){M.call(this,[],e)}yv.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]};G(yv,M,{transform(e,t){const n=t.fork(t.ALL),i=N3(te,this.value,n.materialize(n.ADD).add),r=e.sort,o=t.changed()||r&&(e.modified("sort")||t.modified(r.fields));return n.visit(n.REM,i.remove),this.modified(o),this.value=n.source=i.data(Da(r),o),t.source&&t.source.root&&(this.value.root=t.source.root),n}});function L3(e){Ge.call(this,null,fB,e)}G(L3,Ge);function fB(e){return this.value&&!e.modified()?this.value:oD(e.fields,e.orders)}function bv(e){M.call(this,null,e)}bv.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 dB(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase();break}return e.match(n)}G(bv,M,{transform(e,t){const n=f=>d=>{for(var h=dB(a(d),e.case,o)||[],p,g=0,m=h.length;g<m;++g)s.test(p=h[g])||f(p)},i=this._parameterCheck(e,t),r=this._counts,o=this._match,s=this._stop,a=e.field,u=e.as||["text","count"],l=n(f=>r[f]=1+(r[f]||0)),c=n(f=>r[f]-=1);return i?t.visit(t.SOURCE,l):(t.visit(t.ADD,l),t.visit(t.REM,c)),this._finish(t,u)},_parameterCheck(e,t){let n=!1;return(e.modified("stopwords")||!this._stop)&&(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),(e.modified("pattern")||!this._match)&&(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,i=this._tuples||(this._tuples={}),r=t[0],o=t[1],s=e.fork(e.NO_SOURCE|e.NO_FIELDS);let a,u,l;for(a in n)u=i[a],l=n[a]||0,!u&&l?(i[a]=u=Oe({}),u[r]=a,u[o]=l,s.add.push(u)):l===0?(u&&s.rem.push(u),n[a]=null,i[a]=null):u[o]!==l&&(u[o]=l,s.mod.push(u));return s.modifies(t)}});function xv(e){M.call(this,null,e)}xv.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]};G(xv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.as||["a","b"],r=i[0],o=i[1],s=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let a=this.value;return s?(a&&(n.rem=a),a=t.materialize(t.SOURCE).source,n.add=this.value=hB(a,r,o,e.filter||Pi)):n.mod=a,n.source=this.value,n.modifies(i)}});function hB(e,t,n,i){for(var r=[],o={},s=e.length,a=0,u,l;a<s;++a)for(o[t]=l=e[a],u=0;u<s;++u)o[n]=e[u],i(o)&&(r.push(Oe(o)),o={},o[t]=l);return r}const MS={kde:iv,mixture:S3,normal:nv,lognormal:A3,uniform:C3},pB="distributions",OS="function",gB="field";function P3(e,t){const n=e[OS];le(MS,n)||L("Unknown distribution function: "+n);const i=MS[n]();for(const r in e)r===gB?i.data((e.from||t()).map(e[r])):r===pB?i[r](e[r].map(o=>P3(o,t))):typeof i[r]===OS&&i[r](e[r]);return i}function vv(e){M.call(this,null,e)}const I3=[{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}]}],mB={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:I3},{name:"weights",type:"number",array:!0}]};vv.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:I3.concat(mB)},{name:"as",type:"string",array:!0,default:["value","density"]}]};G(vv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=P3(e.distribution,yB(t)),r=e.steps||e.minsteps||25,o=e.steps||e.maxsteps||200;let s=e.method||"pdf";s!=="pdf"&&s!=="cdf"&&L("Invalid density method: "+s),!e.extent&&!i.data&&L("Missing density extent parameter."),s=i[s];const a=e.as||["value","density"],u=e.extent||lo(i.data()),l=Dg(s,u,r,o).map(c=>{const f={};return f[a[0]]=c[0],f[a[1]]=c[1],Oe(f)});this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function yB(e){return()=>e.materialize(e.SOURCE).source}function z3(e,t){return e?e.map((n,i)=>t[i]||lt(n)):null}function Ev(e,t,n){const i=[],r=f=>f(u);let o,s,a,u,l,c;if(t==null)i.push(e.map(n));else for(o={},s=0,a=e.length;s<a;++s)u=e[s],l=t.map(r),c=o[l],c||(o[l]=c=[],c.dims=l,i.push(c)),c.push(n(u));return i}const B3="bin";function wv(e){M.call(this,null,e)}wv.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:B3}]};const bB=(e,t)=>pg(lo(e,t))/30;G(wv,M,{transform(e,t){if(this.value&&!(e.modified()||t.changed()))return t;const n=t.materialize(t.SOURCE).source,i=Ev(t.source,e.groupby,Ln),r=e.smooth||!1,o=e.field,s=e.step||bB(n,o),a=Da((p,g)=>o(p)-o(g)),u=e.as||B3,l=i.length;let c=1/0,f=-1/0,d=0,h;for(;d<l;++d){const p=i[d].sort(a);h=-1;for(const g of E3(p,s,r,o))g<c&&(c=g),g>f&&(f=g),p[++h][u]=g}return this.value={start:c,stop:f,step:s},t.reflow(!0).modifies(u)}});function U3(e){Ge.call(this,null,xB,e),this.modified(!0)}G(U3,Ge);function xB(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:ri(n=>t(n,e),xn(t),lt(t))}function Av(e){M.call(this,[void 0,void 0],e)}Av.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]};G(Av,M,{transform(e,t){const n=this.value,i=e.field,r=t.changed()||t.modified(i.fields)||e.modified("field");let o=n[0],s=n[1];if((r||o==null)&&(o=1/0,s=-1/0),t.visit(r?t.SOURCE:t.ADD,a=>{const u=mn(i(a));u!=null&&(u<o&&(o=u),u>s&&(s=u))}),!Number.isFinite(o)||!Number.isFinite(s)){let a=lt(i);a&&(a=` for field "${a}"`),t.dataflow.warn(`Infinite extent${a}: [${o}, ${s}]`),o=s=void 0}this.value=[o,s]}});function Sv(e,t){Ge.call(this,e),this.parent=t,this.count=0}G(Sv,Ge,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}});function Tg(e){M.call(this,{},e),this._keys=vf();const t=this._targets=[];t.active=0,t.forEach=n=>{for(let i=0,r=t.active;i<r;++i)n(t[i],i,t)}}G(Tg,M,{activate(e){this._targets[this._targets.active++]=e},subflow(e,t,n,i){const r=this.value;let o=le(r,e)&&r[e],s,a;return o?o.value.stamp<n.stamp&&(o.init(n),this.activate(o)):(a=i||(a=this._group[e])&&a.tuple,s=n.dataflow,o=new Sv(n.fork(n.NO_SOURCE),this),s.add(o).connect(t(s,e,a)),r[e]=o,this.activate(o)),o},clean(){const e=this.value;let t=0;for(const n in e)if(e[n].count===0){const i=e[n].detachSubflow;i&&i(),delete e[n],++t}if(t){const n=this._targets.filter(i=>i&&i.count>0);this.initTargets(n)}},initTargets(e){const t=this._targets,n=t.length,i=e?e.length:0;let r=0;for(;r<i;++r)t[r]=e[r];for(;r<n&&t[r]!=null;++r)t[r]=null;t.active=i},transform(e,t){const n=t.dataflow,i=e.key,r=e.subflow,o=this._keys,s=e.modified("key"),a=u=>this.subflow(u,r,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,u=>{const l=te(u),c=o.get(l);c!==void 0&&(o.delete(l),a(c).rem(u))}),t.visit(t.ADD,u=>{const l=i(u);o.set(te(u),l),a(l).add(u)}),s||t.modified(i.fields)?t.visit(t.MOD,u=>{const l=te(u),c=o.get(l),f=i(u);c===f?a(f).mod(u):(o.set(l,f),a(c).rem(u),a(f).add(u))}):t.changed(t.MOD)&&t.visit(t.MOD,u=>{a(o.get(te(u))).mod(u)}),s&&t.visit(t.REFLOW,u=>{const l=te(u),c=o.get(l),f=i(u);c!==f&&(o.set(l,f),a(c).rem(u),a(f).add(u))}),t.clean()?n.runAfter(()=>{this.clean(),o.clean()}):o.empty>n.cleanThreshold&&n.runAfter(o.clean),t}});function j3(e){Ge.call(this,null,vB,e)}G(j3,Ge);function vB(e){return this.value&&!e.modified()?this.value:Z(e.name)?se(e.name).map(t=>Li(t)):Li(e.name,e.as)}function Cv(e){M.call(this,vf(),e)}Cv.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]};G(Cv,M,{transform(e,t){const n=t.dataflow,i=this.value,r=t.fork(),o=r.add,s=r.rem,a=r.mod,u=e.expr;let l=!0;t.visit(t.REM,f=>{const d=te(f);i.has(d)?i.delete(d):s.push(f)}),t.visit(t.ADD,f=>{u(f,e)?o.push(f):i.set(te(f),1)});function c(f){const d=te(f),h=u(f,e),p=i.get(d);h&&p?(i.delete(d),o.push(f)):!h&&!p?(i.set(d,1),s.push(f)):l&&h&&!p&&a.push(f)}return t.visit(t.MOD,c),e.modified()&&(l=!1,t.visit(t.REFLOW,c)),i.empty>n.cleanThreshold&&n.runAfter(i.clean),r}});function $v(e){M.call(this,[],e)}$v.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}]};G($v,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=z3(i,e.as||[]),o=e.index||null,s=r.length;return n.rem=this.value,t.visit(t.SOURCE,a=>{const u=i.map(p=>p(a)),l=u.reduce((p,g)=>Math.max(p,g.length),0);let c=0,f,d,h;for(;c<l;++c){for(d=Xx(a),f=0;f<s;++f)d[r[f]]=(h=u[f][c])==null?null:h;o&&(d[o]=c),n.add.push(d)}}),this.value=n.source=n.add,o&&n.modifies(o),n.modifies(r)}});function _v(e){M.call(this,[],e)}_v.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"]}]};G(_v,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=i.map(lt),o=e.as||["key","value"],s=o[0],a=o[1],u=i.length;return n.rem=this.value,t.visit(t.SOURCE,l=>{for(let c=0,f;c<u;++c)f=Xx(l),f[s]=r[c],f[a]=i[c](l),n.add.push(f)}),this.value=n.source=n.add,n.modifies(o)}});function Fv(e){M.call(this,null,e)}Fv.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]};G(Fv,M,{transform(e,t){const n=e.expr,i=e.as,r=e.modified(),o=e.initonly?t.ADD:r?t.SOURCE:t.modified(n.fields)||t.modified(i)?t.ADD_MOD:t.ADD;return r&&(t=t.materialize().reflow(!0)),e.initonly||t.modifies(i),t.visit(o,s=>s[i]=n(s,e))}});function q3(e){M.call(this,[],e)}G(q3,M,{transform(e,t){const n=t.fork(t.ALL),i=e.generator;let r=this.value,o=e.size-r.length,s,a,u;if(o>0){for(s=[];--o>=0;)s.push(u=Oe(i(e))),r.push(u);n.add=n.add.length?n.materialize(n.ADD).add.concat(s):s}else a=r.slice(0,-o),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(a):a,r=r.slice(-o);return n.source=this.value=r,n}});const bd={value:"value",median:vD,mean:lI,min:yy,max:Xs},EB=[];function kv(e){M.call(this,[],e)}kv.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 wB(e){var t=e.method||bd.value,n;if(bd[t]==null)L("Unrecognized imputation method: "+t);else return t===bd.value?(n=e.value!==void 0?e.value:0,()=>n):bd[t]}function AB(e){const t=e.field;return n=>n?t(n):NaN}G(kv,M,{transform(e,t){var n=t.fork(t.ALL),i=wB(e),r=AB(e),o=lt(e.field),s=lt(e.key),a=(e.groupby||[]).map(lt),u=SB(t.source,e.groupby,e.key,e.keyvals),l=[],c=this.value,f=u.domain.length,d,h,p,g,m,y,b,x,v,w;for(m=0,x=u.length;m<x;++m)for(d=u[m],p=d.values,h=NaN,b=0;b<f;++b)if(d[b]==null){for(g=u.domain[b],w={_impute:!0},y=0,v=p.length;y<v;++y)w[a[y]]=p[y];w[s]=g,w[o]=Number.isNaN(h)?h=i(d,r):h,l.push(Oe(w))}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 SB(e,t,n,i){var r=y=>y(m),o=[],s=i?i.slice():[],a={},u={},l,c,f,d,h,p,g,m;for(s.forEach((y,b)=>a[y]=b+1),d=0,g=e.length;d<g;++d)m=e[d],p=n(m),h=a[p]||(a[p]=s.push(p)),c=(l=t?t.map(r):EB)+"",(f=u[c])||(f=u[c]=[],o.push(f),f.values=l),f[h-1]=m;return o.domain=s,o}function Dv(e){Ko.call(this,e)}Dv.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:Af},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]};G(Dv,Ko,{transform(e,t){const n=this,i=e.modified();let r;return n.value&&(i||t.modified(n._inputs,!0))?(r=n.value=i?n.init(e):{},t.visit(t.SOURCE,o=>n.add(o))):(r=n.value=n.value||this.init(e),t.visit(t.REM,o=>n.rem(o)),t.visit(t.ADD,o=>n.add(o))),n.changes(),t.visit(t.SOURCE,o=>{ye(o,r[n.cellkey(o)].tuple)}),t.reflow(i).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,i;for(n=0,i=this._alen;n<i;++n)this.celltuple(e[n]),e[n]=null;for(n=0,i=this._mlen;n<i;++n)this.celltuple(t[n]),t[n]=null;this._alen=this._mlen=0}});function Tv(e){M.call(this,null,e)}Tv.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"]}]};G(Tv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=Ev(i,e.groupby,e.field),o=(e.groupby||[]).map(lt),s=e.bandwidth,a=e.cumulative?"cdf":"pdf",u=e.as||["value","density"],l=[];let c=e.extent,f=e.steps||e.minsteps||25,d=e.steps||e.maxsteps||200;a!=="pdf"&&a!=="cdf"&&L("Invalid density method: "+a),e.resolve==="shared"&&(c||(c=lo(i,e.field)),f=d=e.steps||d),r.forEach(h=>{const p=iv(h,s)[a],g=e.counts?h.length:1,m=c||lo(h);Dg(p,m,f,d).forEach(y=>{const b={};for(let x=0;x<o.length;++x)b[o[x]]=h.dims[x];b[u[0]]=y[0],b[u[1]]=y[1]*g,l.push(Oe(b))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function W3(e){Ge.call(this,null,CB,e)}G(W3,Ge);function CB(e){return this.value&&!e.modified()?this.value:uD(e.fields,e.flat)}function G3(e){M.call(this,[],e),this._pending=null}G(G3,M,{transform(e,t){const n=t.dataflow;return this._pending?Dm(this,t,this._pending):$B(e)?t.StopPropagation:e.values?Dm(this,t,n.parse(e.values,e.format)):e.async?{async:n.request(e.url,e.format).then(r=>(this._pending=se(r.data),o=>o.touch(this)))}:n.request(e.url,e.format).then(i=>Dm(this,t,se(i.data)))}});function $B(e){return e.modified("async")&&!(e.modified("values")||e.modified("url")||e.modified("format"))}function Dm(e,t,n){n.forEach(Oe);const i=t.fork(t.NO_FIELDS&t.NO_SOURCE);return i.rem=e.value,e.value=i.source=i.add=n,e._pending=null,i.rem.length&&i.clean(!0),i}function Mv(e){M.call(this,{},e)}Mv.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}]};G(Mv,M,{transform(e,t){const n=e.fields,i=e.index,r=e.values,o=e.default==null?null:e.default,s=e.modified(),a=n.length;let u=s?t.SOURCE:t.ADD,l=t,c=e.as,f,d,h;return r?(d=r.length,a>1&&!c&&L('Multi-field lookup requires explicit "as" parameter.'),c&&c.length!==a*d&&L('The "as" parameter has too few output field names.'),c=c||r.map(lt),f=function(p){for(var g=0,m=0,y,b;g<a;++g)if(b=i.get(n[g](p)),b==null)for(y=0;y<d;++y,++m)p[c[m]]=o;else for(y=0;y<d;++y,++m)p[c[m]]=r[y](b)}):(c||L("Missing output field names."),f=function(p){for(var g=0,m;g<a;++g)m=i.get(n[g](p)),p[c[g]]=m??o}),s?l=t.reflow(!0):(h=n.some(p=>t.modified(p.fields)),u|=h?t.MOD:0),t.visit(u,f),l.modifies(c)}});function H3(e){Ge.call(this,null,_B,e)}G(H3,Ge);function _B(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let i=1/0,r=-1/0,o,s;for(o=0;o<n;++o)s=t[o],s[0]<i&&(i=s[0]),s[1]>r&&(r=s[1]);return[i,r]}function V3(e){Ge.call(this,null,FB,e)}G(V3,Ge);function FB(e){return this.value&&!e.modified()?this.value:e.values.reduce((t,n)=>t.concat(n),[])}function Y3(e){M.call(this,null,e)}G(Y3,M,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}});function Ov(e){Ko.call(this,e)}Ov.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:Af,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]};G(Ov,Ko,{_transform:Ko.prototype.transform,transform(e,t){return this._transform(kB(e,t),t)}});function kB(e,t){const n=e.field,i=e.value,r=(e.op==="count"?"__count__":e.op)||"sum",o=xn(n).concat(xn(i)),s=TB(n,e.limit||0,t);return t.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:s.map(()=>r),fields:s.map(a=>DB(a,n,i,o)),as:s.map(a=>a+""),modified:e.modified.bind(e)}}function DB(e,t,n,i){return ri(r=>t(r)===e?n(r):NaN,i,e+"")}function TB(e,t,n){const i={},r=[];return n.visit(n.SOURCE,o=>{const s=e(o);i[s]||(i[s]=1,r.push(s))}),r.sort(hg),t?r.slice(0,t):r}function X3(e){Tg.call(this,e)}G(X3,Tg,{transform(e,t){const n=e.subflow,i=e.field,r=o=>this.subflow(te(o),n,t,o);return(e.modified("field")||i&&t.modified(xn(i)))&&L("PreFacet does not support field modification."),this.initTargets(),i?(t.visit(t.MOD,o=>{const s=r(o);i(o).forEach(a=>s.mod(a))}),t.visit(t.ADD,o=>{const s=r(o);i(o).forEach(a=>s.add(Oe(a)))}),t.visit(t.REM,o=>{const s=r(o);i(o).forEach(a=>s.rem(a))})):(t.visit(t.MOD,o=>r(o).mod(o)),t.visit(t.ADD,o=>r(o).add(o)),t.visit(t.REM,o=>r(o).rem(o))),t.clean()&&t.runAfter(()=>this.clean()),t}});function Rv(e){M.call(this,null,e)}Rv.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]};G(Rv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=z3(e.fields,e.as||[]),o=i?(a,u)=>MB(a,u,i,r):Ag;let s;return this.value?s=this.value:(t=t.addAll(),s=this.value={}),t.visit(t.REM,a=>{const u=te(a);n.rem.push(s[u]),s[u]=null}),t.visit(t.ADD,a=>{const u=o(a,Oe({}));s[te(a)]=u,n.add.push(u)}),t.visit(t.MOD,a=>{n.mod.push(o(a,s[te(a)]))}),n}});function MB(e,t,n,i){for(let r=0,o=n.length;r<o;++r)t[i[r]]=n[r](e);return t}function K3(e){M.call(this,null,e)}G(K3,M,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});function Nv(e){M.call(this,null,e)}Nv.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 OB=1e-14;G(Nv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const r=t.materialize(t.SOURCE).source,o=Ev(r,e.groupby,e.field),s=(e.groupby||[]).map(lt),a=[],u=e.step||.01,l=e.probs||Yn(u/2,1-OB,u),c=l.length;return o.forEach(f=>{const d=Qx(f,l);for(let h=0;h<c;++h){const p={};for(let g=0;g<s.length;++g)p[s[g]]=f.dims[g];p[i[0]]=l[h],p[i[1]]=d[h],a.push(Oe(p))}}),this.value&&(n.rem=this.value),this.value=n.add=n.source=a,n}});function J3(e){M.call(this,null,e)}G(J3,M,{transform(e,t){let n,i;return this.value?i=this.value:(n=t=t.addAll(),i=this.value={}),e.derive&&(n=t.fork(t.NO_SOURCE),t.visit(t.REM,r=>{const o=te(r);n.rem.push(i[o]),i[o]=null}),t.visit(t.ADD,r=>{const o=Xx(r);i[te(r)]=o,n.add.push(o)}),t.visit(t.MOD,r=>{const o=i[te(r)];for(const s in r)o[s]=r[s],n.modifies(s);n.mod.push(o)})),n}});function Lv(e){M.call(this,[],e),this.count=0}Lv.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]};G(Lv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.modified("size"),r=e.size,o=this.value.reduce((c,f)=>(c[te(f)]=1,c),{});let s=this.value,a=this.count,u=0;function l(c){let f,d;s.length<r?s.push(c):(d=~~((a+1)*mi()),d<s.length&&d>=u&&(f=s[d],o[te(f)]&&n.rem.push(f),s[d]=c)),++a}if(t.rem.length&&(t.visit(t.REM,c=>{const f=te(c);o[f]&&(o[f]=-1,n.rem.push(c)),--a}),s=s.filter(c=>o[te(c)]!==-1)),(t.rem.length||i)&&s.length<r&&t.source&&(u=a=s.length,t.visit(t.SOURCE,c=>{o[te(c)]||l(c)}),u=-1),i&&s.length>r){const c=s.length-r;for(let f=0;f<c;++f)o[te(s[f])]=-1,n.rem.push(s[f]);s=s.slice(c)}return t.mod.length&&t.visit(t.MOD,c=>{o[te(c)]&&n.mod.push(c)}),t.add.length&&t.visit(t.ADD,l),(t.add.length||u<0)&&(n.add=s.filter(c=>!o[te(c)])),this.count=a,this.value=n.source=s,n}});function Pv(e){M.call(this,null,e)}Pv.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"}]};G(Pv,M,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),i=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Yn(e.start,e.stop,e.step||1).map(r=>{const o={};return o[i]=r,Oe(o)}),n.add=t.add.concat(this.value),n}});function Q3(e){M.call(this,null,e),this.modified(!0)}G(Q3,M,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});function Iv(e){M.call(this,null,e)}const Z3=["unit0","unit1"];Iv.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:Bx,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:Z3}]};G(Iv,M,{transform(e,t){const n=e.field,i=e.interval!==!1,r=e.timezone==="utc",o=this._floor(e,t),s=(r?ll:ul)(o.unit).offset,a=e.as||Z3,u=a[0],l=a[1],c=o.step;let f=o.start||1/0,d=o.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(xn(n)))&&(t=t.reflow(!0),h=t.SOURCE,f=1/0,d=-1/0),t.visit(h,p=>{const g=n(p);let m,y;g==null?(p[u]=null,i&&(p[l]=null)):(p[u]=m=y=o(g),i&&(p[l]=y=s(m,c)),m<f&&(f=m),y>d&&(d=y))}),o.start=f,o.stop=d,t.modifies(i?a:u)},_floor(e,t){const n=e.timezone==="utc",{units:i,step:r}=e.units?{units:e.units,step:e.step||1}:qD({extent:e.extent||lo(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),o=Ux(i),s=this.value||{},a=(n?RD:OD)(o,r);return a.unit=$e(o),a.units=o,a.step=r,a.start=s.start,a.stop=s.stop,this.value=a}});function eT(e){M.call(this,vf(),e)}G(eT,M,{transform(e,t){const n=t.dataflow,i=e.field,r=this.value,o=a=>r.set(i(a),a);let s=!0;return e.modified("field")||t.modified(i.fields)?(r.clear(),t.visit(t.SOURCE,o)):t.changed()?(t.visit(t.REM,a=>r.delete(i(a))),t.visit(t.ADD,o)):s=!1,this.modified(s),r.empty>n.cleanThreshold&&n.runAfter(r.clean),t.fork()}});function tT(e){M.call(this,null,e)}G(tT,M,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(Da(e.sort)):t.source).map(e.field))}});function RB(e,t,n,i){const r=Gc[e](t,n);return{init:r.init||zs,update:function(o,s){s[i]=r.next(o)}}}const Gc={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?++e:e}}},percent_rank:function(){const e=Gc.rank(),t=e.next;return{init:e.init,next:n=>(t(n)-1)/(n.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,i=t.compare;let r=t.index;if(e<r){for(;r+1<n.length&&!i(n[r],n[r+1]);)++r;e=r}return(1+e)/n.length}}},ntile:function(e,t){t=+t,t>0||L("ntile num must be greater than zero.");const n=Gc.cume_dist(),i=n.next;return{init:n.init,next:r=>Math.ceil(t*i(r))}},lag:function(e,t){return t=+t||1,{next:n=>{const i=n.index-t;return i>=0?e(n.data[i]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const i=n.index+t,r=n.data;return i<r.length?e(r[i]):null}}},first_value:function(e){return{next:t=>e(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return t=+t,t>0||L("nth_value nth must be greater than zero."),{next:n=>{const i=n.i0+(t-1);return i<n.i1?e(n.data[i]):null}}},prev_value:function(e){let t;return{init:()=>t=null,next:n=>{const i=e(n.data[n.index]);return i!=null?t=i:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:i=>{const r=i.data;return i.index<=n?t:(n=NB(e,r,i.index))<0?(n=r.length,t=null):t=e(r[n])}}}};function NB(e,t,n){for(let i=t.length;n<i;++n)if(e(t[n])!=null)return n;return-1}const LB=Object.keys(Gc);function nT(e){const t=se(e.ops),n=se(e.fields),i=se(e.params),r=se(e.aggregate_params),o=se(e.as),s=this.outputs=[],a=this.windows=[],u={},l={},c=[],f=[];let d=!0;function h(p){se(xn(p)).forEach(g=>u[g]=1)}h(e.sort),t.forEach((p,g)=>{const m=n[g],y=i[g],b=r[g]||null,x=lt(m),v=T3(p,x,o[g]);if(h(m),s.push(v),le(Gc,p))a.push(RB(p,m,y,v));else{if(m==null&&p!=="count"&&L("Null aggregate field specified."),p==="count"){c.push(v);return}d=!1;let w=l[x];w||(w=l[x]=[],w.field=m,f.push(w)),w.push(M3(p,b,v))}}),(c.length||f.length)&&(this.cell=PB(f,c,d)),this.inputs=Object.keys(u)}const iT=nT.prototype;iT.init=function(){this.windows.forEach(e=>e.init()),this.cell&&this.cell.init()};iT.update=function(e,t){const n=this.cell,i=this.windows,r=e.data,o=i&&i.length;let s;if(n){for(s=e.p0;s<e.i0;++s)n.rem(r[s]);for(s=e.p1;s<e.i1;++s)n.add(r[s]);n.set(t)}for(s=0;s<o;++s)i[s].update(e,t)};function PB(e,t,n){e=e.map(u=>R3(u,u.field));const i={num:0,agg:null,store:!1,count:t};if(!n)for(var r=e.length,o=i.agg=Array(r),s=0;s<r;++s)o[s]=new e[s](i);if(i.store)var a=i.data=new gv;return i.add=function(u){if(i.num+=1,!n){a&&a.add(u);for(let l=0;l<r;++l)o[l].add(o[l].get(u),u)}},i.rem=function(u){if(i.num-=1,!n){a&&a.rem(u);for(let l=0;l<r;++l)o[l].rem(o[l].get(u),u)}},i.set=function(u){let l,c;for(a&&a.values(),l=0,c=t.length;l<c;++l)u[t[l]]=i.num;if(!n)for(l=0,c=o.length;l<c;++l)o[l].set(u)},i.init=function(){i.num=0,a&&a.reset();for(let u=0;u<r;++u)o[u].init()},i}function zv(e){M.call(this,{},e),this._mlen=0,this._mods=[]}zv.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:LB.concat(Af)},{name:"params",type:"number",null:!0,array:!0},{name:"aggregate_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}]};G(zv,M,{transform(e,t){this.stamp=t.stamp;const n=e.modified(),i=Da(e.sort),r=Fy(e.groupby),o=a=>this.group(r(a));let s=this.state;(!s||n)&&(s=this.state=new nT(e)),n||t.modified(s.inputs)?(this.value={},t.visit(t.SOURCE,a=>o(a).add(a))):(t.visit(t.REM,a=>o(a).remove(a)),t.visit(t.ADD,a=>o(a).add(a)));for(let a=0,u=this._mlen;a<u;++a)IB(this._mods[a],s,i,e);return this._mlen=0,this._mods=[],t.reflow(n).modifies(s.outputs)},group(e){let t=this.value[e];return t||(t=this.value[e]=N3(te),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}});function IB(e,t,n,i){const r=i.sort,o=r&&!i.ignorePeers,s=i.frame||[null,0],a=e.data(n),u=a.length,l=o?eg(r):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:a,compare:r||wn(-1)};t.init();for(let f=0;f<u;++f)zB(c,s,f,u),o&&BB(c,l),t.update(c,a[f])}function zB(e,t,n,i){e.p0=e.i0,e.p1=e.i1,e.i0=t[0]==null?0:Math.max(0,n-Math.abs(t[0])),e.i1=t[1]==null?i:Math.min(i,n+Math.abs(t[1])+1),e.index=n}function BB(e,t){const n=e.i0,i=e.i1-1,r=e.compare,o=e.data,s=o.length-1;n>0&&!r(o[n],o[n-1])&&(e.i0=t.left(o,o[n])),i<s&&!r(o[i],o[i+1])&&(e.i1=t.right(o,o[i]))}const UB=Object.freeze(Object.defineProperty({__proto__:null,aggregate:Ko,bin:mv,collect:yv,compare:L3,countpattern:bv,cross:xv,density:vv,dotbin:wv,expression:U3,extent:Av,facet:Tg,field:j3,filter:Cv,flatten:$v,fold:_v,formula:Fv,generate:q3,impute:kv,joinaggregate:Dv,kde:Tv,key:W3,load:G3,lookup:Mv,multiextent:H3,multivalues:V3,params:Y3,pivot:Ov,prefacet:X3,project:Rv,proxy:K3,quantile:Nv,relay:J3,sample:Lv,sequence:Pv,sieve:Q3,subflow:Sv,timeunit:Iv,tupleindex:eT,values:tT,window:zv},Symbol.toStringTag,{value:"Module"}));function Re(e){return function(){return e}}const RS=Math.abs,Yt=Math.atan2,Ss=Math.cos,jB=Math.max,Tm=Math.min,er=Math.sin,Gs=Math.sqrt,Kt=1e-12,Tu=Math.PI,Oh=Tu/2,rT=2*Tu;function qB(e){return e>1?0:e<-1?Tu:Math.acos(e)}function NS(e){return e>=1?Oh:e<=-1?-Oh:Math.asin(e)}function Mg(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const i=Math.floor(n);if(!(i>=0))throw new RangeError(`invalid digits: ${n}`);t=i}return e},()=>new n9(t)}function WB(e){return e.innerRadius}function GB(e){return e.outerRadius}function HB(e){return e.startAngle}function VB(e){return e.endAngle}function YB(e){return e&&e.padAngle}function XB(e,t,n,i,r,o,s,a){var u=n-e,l=i-t,c=s-r,f=a-o,d=f*u-c*l;if(!(d*d<Kt))return d=(c*(t-o)-f*(e-r))/d,[e+d*u,t+d*l]}function xd(e,t,n,i,r,o,s){var a=e-n,u=t-i,l=(s?o:-o)/Gs(a*a+u*u),c=l*u,f=-l*a,d=e+c,h=t+f,p=n+c,g=i+f,m=(d+p)/2,y=(h+g)/2,b=p-d,x=g-h,v=b*b+x*x,w=r-o,A=d*g-p*h,E=(x<0?-1:1)*Gs(jB(0,w*w*v-A*A)),S=(A*x-b*E)/v,C=(-A*b-x*E)/v,_=(A*x+b*E)/v,k=(-A*b+x*E)/v,N=S-m,T=C-y,F=_-m,$=k-y;return N*N+T*T>F*F+$*$&&(S=_,C=k),{cx:S,cy:C,x01:-c,y01:-f,x11:S*(r/w-1),y11:C*(r/w-1)}}function KB(){var e=WB,t=GB,n=Re(0),i=null,r=HB,o=VB,s=YB,a=null,u=Mg(l);function l(){var c,f,d=+e.apply(this,arguments),h=+t.apply(this,arguments),p=r.apply(this,arguments)-Oh,g=o.apply(this,arguments)-Oh,m=RS(g-p),y=g>p;if(a||(a=c=u()),h<d&&(f=h,h=d,d=f),!(h>Kt))a.moveTo(0,0);else if(m>rT-Kt)a.moveTo(h*Ss(p),h*er(p)),a.arc(0,0,h,p,g,!y),d>Kt&&(a.moveTo(d*Ss(g),d*er(g)),a.arc(0,0,d,g,p,y));else{var b=p,x=g,v=p,w=g,A=m,E=m,S=s.apply(this,arguments)/2,C=S>Kt&&(i?+i.apply(this,arguments):Gs(d*d+h*h)),_=Tm(RS(h-d)/2,+n.apply(this,arguments)),k=_,N=_,T,F;if(C>Kt){var $=NS(C/d*er(S)),D=NS(C/h*er(S));(A-=$*2)>Kt?($*=y?1:-1,v+=$,w-=$):(A=0,v=w=(p+g)/2),(E-=D*2)>Kt?(D*=y?1:-1,b+=D,x-=D):(E=0,b=x=(p+g)/2)}var P=h*Ss(b),z=h*er(b),I=d*Ss(w),V=d*er(w);if(_>Kt){var ue=h*Ss(x),ie=h*er(x),he=d*Ss(v),We=d*er(v),pe;if(m<Tu)if(pe=XB(P,z,he,We,ue,ie,I,V)){var Ht=P-pe[0],ws=z-pe[1],_o=ue-pe[0],Y=ie-pe[1],ge=1/er(qB((Ht*_o+ws*Y)/(Gs(Ht*Ht+ws*ws)*Gs(_o*_o+Y*Y)))/2),ve=Gs(pe[0]*pe[0]+pe[1]*pe[1]);k=Tm(_,(d-ve)/(ge-1)),N=Tm(_,(h-ve)/(ge+1))}else k=N=0}E>Kt?N>Kt?(T=xd(he,We,P,z,h,N,y),F=xd(ue,ie,I,V,h,N,y),a.moveTo(T.cx+T.x01,T.cy+T.y01),N<_?a.arc(T.cx,T.cy,N,Yt(T.y01,T.x01),Yt(F.y01,F.x01),!y):(a.arc(T.cx,T.cy,N,Yt(T.y01,T.x01),Yt(T.y11,T.x11),!y),a.arc(0,0,h,Yt(T.cy+T.y11,T.cx+T.x11),Yt(F.cy+F.y11,F.cx+F.x11),!y),a.arc(F.cx,F.cy,N,Yt(F.y11,F.x11),Yt(F.y01,F.x01),!y))):(a.moveTo(P,z),a.arc(0,0,h,b,x,!y)):a.moveTo(P,z),!(d>Kt)||!(A>Kt)?a.lineTo(I,V):k>Kt?(T=xd(I,V,ue,ie,d,-k,y),F=xd(P,z,he,We,d,-k,y),a.lineTo(T.cx+T.x01,T.cy+T.y01),k<_?a.arc(T.cx,T.cy,k,Yt(T.y01,T.x01),Yt(F.y01,F.x01),!y):(a.arc(T.cx,T.cy,k,Yt(T.y01,T.x01),Yt(T.y11,T.x11),!y),a.arc(0,0,d,Yt(T.cy+T.y11,T.cx+T.x11),Yt(F.cy+F.y11,F.cx+F.x11),y),a.arc(F.cx,F.cy,k,Yt(F.y11,F.x11),Yt(F.y01,F.x01),!y))):a.arc(0,0,d,w,v,y)}if(a.closePath(),c)return a=null,c+""||null}return l.centroid=function(){var c=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,f=(+r.apply(this,arguments)+ +o.apply(this,arguments))/2-Tu/2;return[Ss(f)*c,er(f)*c]},l.innerRadius=function(c){return arguments.length?(e=typeof c=="function"?c:Re(+c),l):e},l.outerRadius=function(c){return arguments.length?(t=typeof c=="function"?c:Re(+c),l):t},l.cornerRadius=function(c){return arguments.length?(n=typeof c=="function"?c:Re(+c),l):n},l.padRadius=function(c){return arguments.length?(i=c==null?null:typeof c=="function"?c:Re(+c),l):i},l.startAngle=function(c){return arguments.length?(r=typeof c=="function"?c:Re(+c),l):r},l.endAngle=function(c){return arguments.length?(o=typeof c=="function"?c:Re(+c),l):o},l.padAngle=function(c){return arguments.length?(s=typeof c=="function"?c:Re(+c),l):s},l.context=function(c){return arguments.length?(a=c??null,l):a},l}function oT(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function sT(e){this._context=e}sT.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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Bv(e){return new sT(e)}function aT(e){return e[0]}function uT(e){return e[1]}function lT(e,t){var n=Re(!0),i=null,r=Bv,o=null,s=Mg(a);e=typeof e=="function"?e:e===void 0?aT:Re(e),t=typeof t=="function"?t:t===void 0?uT:Re(t);function a(u){var l,c=(u=oT(u)).length,f,d=!1,h;for(i==null&&(o=r(h=s())),l=0;l<=c;++l)!(l<c&&n(f=u[l],l,u))===d&&((d=!d)?o.lineStart():o.lineEnd()),d&&o.point(+e(f,l,u),+t(f,l,u));if(h)return o=null,h+""||null}return a.x=function(u){return arguments.length?(e=typeof u=="function"?u:Re(+u),a):e},a.y=function(u){return arguments.length?(t=typeof u=="function"?u:Re(+u),a):t},a.defined=function(u){return arguments.length?(n=typeof u=="function"?u:Re(!!u),a):n},a.curve=function(u){return arguments.length?(r=u,i!=null&&(o=r(i)),a):r},a.context=function(u){return arguments.length?(u==null?i=o=null:o=r(i=u),a):i},a}function cT(e,t,n){var i=null,r=Re(!0),o=null,s=Bv,a=null,u=Mg(l);e=typeof e=="function"?e:e===void 0?aT:Re(+e),t=typeof t=="function"?t:Re(t===void 0?0:+t),n=typeof n=="function"?n:n===void 0?uT:Re(+n);function l(f){var d,h,p,g=(f=oT(f)).length,m,y=!1,b,x=new Array(g),v=new Array(g);for(o==null&&(a=s(b=u())),d=0;d<=g;++d){if(!(d<g&&r(m=f[d],d,f))===y)if(y=!y)h=d,a.areaStart(),a.lineStart();else{for(a.lineEnd(),a.lineStart(),p=d-1;p>=h;--p)a.point(x[p],v[p]);a.lineEnd(),a.areaEnd()}y&&(x[d]=+e(m,d,f),v[d]=+t(m,d,f),a.point(i?+i(m,d,f):x[d],n?+n(m,d,f):v[d]))}if(b)return a=null,b+""||null}function c(){return lT().defined(r).curve(s).context(o)}return l.x=function(f){return arguments.length?(e=typeof f=="function"?f:Re(+f),i=null,l):e},l.x0=function(f){return arguments.length?(e=typeof f=="function"?f:Re(+f),l):e},l.x1=function(f){return arguments.length?(i=f==null?null:typeof f=="function"?f:Re(+f),l):i},l.y=function(f){return arguments.length?(t=typeof f=="function"?f:Re(+f),n=null,l):t},l.y0=function(f){return arguments.length?(t=typeof f=="function"?f:Re(+f),l):t},l.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Re(+f),l):n},l.lineX0=l.lineY0=function(){return c().x(e).y(t)},l.lineY1=function(){return c().x(e).y(n)},l.lineX1=function(){return c().x(i).y(t)},l.defined=function(f){return arguments.length?(r=typeof f=="function"?f:Re(!!f),l):r},l.curve=function(f){return arguments.length?(s=f,o!=null&&(a=s(o)),l):s},l.context=function(f){return arguments.length?(f==null?o=a=null:a=s(o=f),l):o},l}const JB={draw(e,t){const n=Gs(t/Tu);e.moveTo(n,0),e.arc(0,0,n,0,rT)}};function QB(e,t){let n=null,i=Mg(r);e=typeof e=="function"?e:Re(e||JB),t=typeof t=="function"?t:Re(t===void 0?64:+t);function r(){let o;if(n||(n=o=i()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return r.type=function(o){return arguments.length?(e=typeof o=="function"?o:Re(o),r):e},r.size=function(o){return arguments.length?(t=typeof o=="function"?o:Re(+o),r):t},r.context=function(o){return arguments.length?(n=o??null,r):n},r}function Jo(){}function Rh(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function Og(e){this._context=e}Og.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:Rh(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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);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:Rh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function ZB(e){return new Og(e)}function fT(e){this._context=e}fT.prototype={areaStart:Jo,areaEnd:Jo,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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Rh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function eU(e){return new fT(e)}function dT(e){this._context=e}dT.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(e,t){switch(e=+e,t=+t,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+e)/6,i=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:Rh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function tU(e){return new dT(e)}function hT(e,t){this._basis=new Og(e),this._beta=t}hT.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var i=e[0],r=t[0],o=e[n]-i,s=t[n]-r,a=-1,u;++a<=n;)u=a/n,this._basis.point(this._beta*e[a]+(1-this._beta)*(i+u*o),this._beta*t[a]+(1-this._beta)*(r+u*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const nU=function e(t){function n(i){return t===1?new Og(i):new hT(i,t)}return n.beta=function(i){return e(+i)},n}(.85);function Nh(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function Uv(e,t){this._context=e,this._k=(1-t)/6}Uv.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:Nh(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:Nh(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const iU=function e(t){function n(i){return new Uv(i,t)}return n.tension=function(i){return e(+i)},n}(0);function jv(e,t){this._context=e,this._k=(1-t)/6}jv.prototype={areaStart:Jo,areaEnd:Jo,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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Nh(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const rU=function e(t){function n(i){return new jv(i,t)}return n.tension=function(i){return e(+i)},n}(0);function qv(e,t){this._context=e,this._k=(1-t)/6}qv.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(e,t){switch(e=+e,t=+t,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:Nh(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const oU=function e(t){function n(i){return new qv(i,t)}return n.tension=function(i){return e(+i)},n}(0);function Wv(e,t,n){var i=e._x1,r=e._y1,o=e._x2,s=e._y2;if(e._l01_a>Kt){var a=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);i=(i*a-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,r=(r*a-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>Kt){var l=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*l+e._x1*e._l23_2a-t*e._l12_2a)/c,s=(s*l+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(i,r,o,s,e._x2,e._y2)}function pT(e,t){this._context=e,this._alpha=t}pT.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(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:Wv(this,e,t);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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const sU=function e(t){function n(i){return t?new pT(i,t):new Uv(i,0)}return n.alpha=function(i){return e(+i)},n}(.5);function gT(e,t){this._context=e,this._alpha=t}gT.prototype={areaStart:Jo,areaEnd:Jo,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(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Wv(this,e,t);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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const aU=function e(t){function n(i){return t?new gT(i,t):new jv(i,0)}return n.alpha=function(i){return e(+i)},n}(.5);function mT(e,t){this._context=e,this._alpha=t}mT.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(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:Wv(this,e,t);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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const uU=function e(t){function n(i){return t?new mT(i,t):new qv(i,0)}return n.alpha=function(i){return e(+i)},n}(.5);function yT(e){this._context=e}yT.prototype={areaStart:Jo,areaEnd:Jo,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function lU(e){return new yT(e)}function LS(e){return e<0?-1:1}function PS(e,t,n){var i=e._x1-e._x0,r=t-e._x1,o=(e._y1-e._y0)/(i||r<0&&-0),s=(n-e._y1)/(r||i<0&&-0),a=(o*r+s*i)/(i+r);return(LS(o)+LS(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(a))||0}function IS(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Mm(e,t,n){var i=e._x0,r=e._y0,o=e._x1,s=e._y1,a=(o-i)/3;e._context.bezierCurveTo(i+a,r+a*t,o-a,s-a*n,o,s)}function Lh(e){this._context=e}Lh.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:Mm(this,this._t0,IS(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Mm(this,IS(this,n=PS(this,e,t)),n);break;default:Mm(this,this._t0,n=PS(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function bT(e){this._context=new xT(e)}(bT.prototype=Object.create(Lh.prototype)).point=function(e,t){Lh.prototype.point.call(this,t,e)};function xT(e){this._context=e}xT.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,i,r,o){this._context.bezierCurveTo(t,e,i,n,o,r)}};function cU(e){return new Lh(e)}function fU(e){return new bT(e)}function vT(e){this._context=e}vT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var i=zS(e),r=zS(t),o=0,s=1;s<n;++o,++s)this._context.bezierCurveTo(i[0][o],r[0][o],i[1][o],r[1][o],e[s],t[s]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function zS(e){var t,n=e.length-1,i,r=new Array(n),o=new Array(n),s=new Array(n);for(r[0]=0,o[0]=2,s[0]=e[0]+2*e[1],t=1;t<n-1;++t)r[t]=1,o[t]=4,s[t]=4*e[t]+2*e[t+1];for(r[n-1]=2,o[n-1]=7,s[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)i=r[t]/o[t-1],o[t]-=i,s[t]-=i*s[t-1];for(r[n-1]=s[n-1]/o[n-1],t=n-2;t>=0;--t)r[t]=(s[t]-r[t+1])/o[t];for(o[n-1]=(e[n]+r[n-1])/2,t=0;t<n-1;++t)o[t]=2*e[t+1]-r[t+1];return[r,o]}function dU(e){return new vT(e)}function Rg(e,t){this._context=e,this._t=t}Rg.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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function hU(e){return new Rg(e,.5)}function pU(e){return new Rg(e,0)}function gU(e){return new Rg(e,1)}function Vo(e,t){if(typeof document<"u"&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}const mU=()=>typeof Image<"u"?Image:null,ky=Symbol("implicit");function Gv(){var e=new aS,t=[],n=[],i=ky;function r(o){let s=e.get(o);if(s===void 0){if(i!==ky)return i;e.set(o,s=t.push(o)-1)}return n[s%n.length]}return r.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new aS;for(const s of o)e.has(s)||e.set(s,t.push(s)-1);return r},r.range=function(o){return arguments.length?(n=Array.from(o),r):n.slice()},r.unknown=function(o){return arguments.length?(i=o,r):i},r.copy=function(){return Gv(t,n).unknown(i)},us.apply(r,arguments),r}const ET=Math.PI/180,wT=180/Math.PI,Ph=18,AT=.96422,ST=1,CT=.82521,$T=4/29,yu=6/29,_T=3*yu*yu,yU=yu*yu*yu;function FT(e){if(e instanceof dr)return new dr(e.l,e.a,e.b,e.opacity);if(e instanceof Qr)return kT(e);e instanceof ig||(e=Ok(e));var t=Lm(e.r),n=Lm(e.g),i=Lm(e.b),r=Om((.2225045*t+.7168786*n+.0606169*i)/ST),o,s;return t===n&&n===i?o=s=r:(o=Om((.4360747*t+.3850649*n+.1430804*i)/AT),s=Om((.0139322*t+.0971045*n+.7141733*i)/CT)),new dr(116*r-16,500*(o-r),200*(r-s),e.opacity)}function Ih(e,t,n,i){return arguments.length===1?FT(e):new dr(e,t,n,i??1)}function dr(e,t,n,i){this.l=+e,this.a=+t,this.b=+n,this.opacity=+i}_x(dr,Ih,Fx(kx,{brighter(e){return new dr(this.l+Ph*(e??1),this.a,this.b,this.opacity)},darker(e){return new dr(this.l-Ph*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=AT*Rm(t),e=ST*Rm(e),n=CT*Rm(n),new ig(Nm(3.1338561*t-1.6168667*e-.4906146*n),Nm(-.9787684*t+1.9161415*e+.033454*n),Nm(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Om(e){return e>yU?Math.pow(e,1/3):e/_T+$T}function Rm(e){return e>yu?e*e*e:_T*(e-$T)}function Nm(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Lm(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function bU(e){if(e instanceof Qr)return new Qr(e.h,e.c,e.l,e.opacity);if(e instanceof dr||(e=FT(e)),e.a===0&&e.b===0)return new Qr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*wT;return new Qr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function zh(e,t,n,i){return arguments.length===1?bU(e):new Qr(e,t,n,i??1)}function Qr(e,t,n,i){this.h=+e,this.c=+t,this.l=+n,this.opacity=+i}function kT(e){if(isNaN(e.h))return new dr(e.l,0,0,e.opacity);var t=e.h*ET;return new dr(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}_x(Qr,zh,Fx(kx,{brighter(e){return new Qr(this.h,this.c,this.l+Ph*(e??1),this.opacity)},darker(e){return new Qr(this.h,this.c,this.l-Ph*(e??1),this.opacity)},rgb(){return kT(this).rgb()}}));var DT=-.14861,Hv=1.78277,Vv=-.29227,Ng=-.90649,Hc=1.97294,BS=Hc*Ng,US=Hc*Hv,jS=Hv*Vv-Ng*DT;function xU(e){if(e instanceof Ks)return new Ks(e.h,e.s,e.l,e.opacity);e instanceof ig||(e=Ok(e));var t=e.r/255,n=e.g/255,i=e.b/255,r=(jS*i+BS*t-US*n)/(jS+BS-US),o=i-r,s=(Hc*(n-r)-Vv*o)/Ng,a=Math.sqrt(s*s+o*o)/(Hc*r*(1-r)),u=a?Math.atan2(s,o)*wT-120:NaN;return new Ks(u<0?u+360:u,a,r,e.opacity)}function Dy(e,t,n,i){return arguments.length===1?xU(e):new Ks(e,t,n,i??1)}function Ks(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}_x(Ks,Dy,Fx(kx,{brighter(e){return e=e==null?eS:Math.pow(eS,e),new Ks(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ZA:Math.pow(ZA,e),new Ks(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*ET,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(e),r=Math.sin(e);return new ig(255*(t+n*(DT*i+Hv*r)),255*(t+n*(Vv*i+Ng*r)),255*(t+n*(Hc*i)),this.opacity)}}));function vU(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function EU(e,t){var n=rg(+e,+t);return function(i){var r=n(i);return r-360*Math.floor(r/360)}}function TT(e){return function(t,n){var i=e((t=py(t)).h,(n=py(n)).h),r=en(t.s,n.s),o=en(t.l,n.l),s=en(t.opacity,n.opacity);return function(a){return t.h=i(a),t.s=r(a),t.l=o(a),t.opacity=s(a),t+""}}}const wU=TT(rg);var AU=TT(en);function SU(e,t){var n=en((e=Ih(e)).l,(t=Ih(t)).l),i=en(e.a,t.a),r=en(e.b,t.b),o=en(e.opacity,t.opacity);return function(s){return e.l=n(s),e.a=i(s),e.b=r(s),e.opacity=o(s),e+""}}function MT(e){return function(t,n){var i=e((t=zh(t)).h,(n=zh(n)).h),r=en(t.c,n.c),o=en(t.l,n.l),s=en(t.opacity,n.opacity);return function(a){return t.h=i(a),t.c=r(a),t.l=o(a),t.opacity=s(a),t+""}}}const CU=MT(rg);var $U=MT(en);function OT(e){return function t(n){n=+n;function i(r,o){var s=e((r=Dy(r)).h,(o=Dy(o)).h),a=en(r.s,o.s),u=en(r.l,o.l),l=en(r.opacity,o.opacity);return function(c){return r.h=s(c),r.s=a(c),r.l=u(Math.pow(c,n)),r.opacity=l(c),r+""}}return i.gamma=t,i}(1)}const _U=OT(rg);var FU=OT(en);function Yv(e,t){t===void 0&&(t=e,e=bf);for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);n<i;)o[n]=e(r,r=t[++n]);return function(s){var a=Math.max(0,Math.min(i-1,Math.floor(s*=i)));return o[a](s-a)}}function kU(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e(i/(t-1));return n}const DU=Object.freeze(Object.defineProperty({__proto__:null,interpolate:bf,interpolateArray:G8,interpolateBasis:H8,interpolateBasisClosed:V8,interpolateCubehelix:_U,interpolateCubehelixLong:FU,interpolateDate:Y8,interpolateDiscrete:vU,interpolateHcl:CU,interpolateHclLong:$U,interpolateHsl:wU,interpolateHslLong:AU,interpolateHue:EU,interpolateLab:SU,interpolateNumber:X8,interpolateNumberArray:K8,interpolateObject:J8,interpolateRgb:Q8,interpolateRgbBasis:Z8,interpolateRgbBasisClosed:e9,interpolateRound:tg,interpolateString:t9,interpolateTransformCss:i9,interpolateTransformSvg:r9,interpolateZoom:o9,piecewise:Yv,quantize:kU},Symbol.toStringTag,{value:"Module"}));function RT(e){var t;function n(i){return i==null||isNaN(i=+i)?t:i}return n.invert=n,n.domain=n.range=function(i){return arguments.length?(e=Array.from(i,JA),n):e.slice()},n.unknown=function(i){return arguments.length?(t=i,n):t},n.copy=function(){return RT(e).unknown(t)},e=arguments.length?Array.from(e,JA):[0,1],rl(n)}function NT(e,t){e=e.slice();var n=0,i=e.length-1,r=e[n],o=e[i],s;return o<r&&(s=n,n=i,i=s,s=r,r=o,o=s),e[n]=t.floor(r),e[i]=t.ceil(o),e}function qS(e){return Math.log(e)}function WS(e){return Math.exp(e)}function TU(e){return-Math.log(-e)}function MU(e){return-Math.exp(-e)}function OU(e){return isFinite(e)?+("1e"+e):e<0?0:e}function RU(e){return e===10?OU:e===Math.E?Math.exp:t=>Math.pow(e,t)}function NU(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function GS(e){return(t,n)=>-e(-t,n)}function Xv(e){const t=e(qS,WS),n=t.domain;let i=10,r,o;function s(){return r=NU(i),o=RU(i),n()[0]<0?(r=GS(r),o=GS(o),e(TU,MU)):e(qS,WS),t}return t.base=function(a){return arguments.length?(i=+a,s()):i},t.domain=function(a){return arguments.length?(n(a),s()):n()},t.ticks=a=>{const u=n();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let d=r(l),h=r(c),p,g;const m=a==null?10:+a;let y=[];if(!(i%1)&&h-d<m){if(d=Math.floor(d),h=Math.ceil(h),l>0){for(;d<=h;++d)for(p=1;p<i;++p)if(g=d<0?p/o(-d):p*o(d),!(g<l)){if(g>c)break;y.push(g)}}else for(;d<=h;++d)for(p=i-1;p>=1;--p)if(g=d>0?p/o(-d):p*o(d),!(g<l)){if(g>c)break;y.push(g)}y.length*2<m&&(y=QA(l,c,m))}else y=QA(d,h,Math.min(h-d,m)).map(o);return f?y.reverse():y},t.tickFormat=(a,u)=>{if(a==null&&(a=10),u==null&&(u=i===10?"s":","),typeof u!="function"&&(!(i%1)&&(u=hy(u)).precision==null&&(u.trim=!0),u=Mk(u)),a===1/0)return u;const l=Math.max(1,i*a/t.ticks().length);return c=>{let f=c/o(Math.round(r(c)));return f*i<i-.5&&(f*=i),f<=l?u(c):""}},t.nice=()=>n(NT(n(),{floor:a=>o(Math.floor(r(a))),ceil:a=>o(Math.ceil(r(a)))})),t}function LT(){const e=Xv($x()).domain([1,10]);return e.copy=()=>ng(e,LT()).base(e.base()),us.apply(e,arguments),e}function HS(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function VS(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Kv(e){var t=1,n=e(HS(t),VS(t));return n.constant=function(i){return arguments.length?e(HS(t=+i),VS(t)):t},rl(n)}function PT(){var e=Kv($x());return e.copy=function(){return ng(e,PT()).constant(e.constant())},us.apply(e,arguments)}function YS(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function LU(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function PU(e){return e<0?-e*e:e*e}function Jv(e){var t=e(No,No),n=1;function i(){return n===1?e(No,No):n===.5?e(LU,PU):e(YS(n),YS(1/n))}return t.exponent=function(r){return arguments.length?(n=+r,i()):n},rl(t)}function Qv(){var e=Jv($x());return e.copy=function(){return ng(e,Qv()).exponent(e.exponent())},us.apply(e,arguments),e}function IU(){return Qv.apply(null,arguments).exponent(.5)}function IT(){var e=[],t=[],n=[],i;function r(){var s=0,a=Math.max(1,t.length);for(n=new Array(a-1);++s<a;)n[s-1]=xD(e,s/a);return o}function o(s){return s==null||isNaN(s=+s)?i:t[Cu(n,s)]}return o.invertExtent=function(s){var a=t.indexOf(s);return a<0?[NaN,NaN]:[a>0?n[a-1]:e[0],a<n.length?n[a]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let a of s)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(zc),r()},o.range=function(s){return arguments.length?(t=Array.from(s),r()):t.slice()},o.unknown=function(s){return arguments.length?(i=s,o):i},o.quantiles=function(){return n.slice()},o.copy=function(){return IT().domain(e).range(t).unknown(i)},us.apply(o,arguments)}function zT(){var e=0,t=1,n=1,i=[.5],r=[0,1],o;function s(u){return u!=null&&u<=u?r[Cu(i,u,0,n)]:o}function a(){var u=-1;for(i=new Array(n);++u<n;)i[u]=((u+1)*t-(u-n)*e)/(n+1);return s}return s.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,a()):[e,t]},s.range=function(u){return arguments.length?(n=(r=Array.from(u)).length-1,a()):r.slice()},s.invertExtent=function(u){var l=r.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,i[0]]:l>=n?[i[n-1],t]:[i[l-1],i[l]]},s.unknown=function(u){return arguments.length&&(o=u),s},s.thresholds=function(){return i.slice()},s.copy=function(){return zT().domain([e,t]).range(r).unknown(o)},us.apply(rl(s),arguments)}function zU(e){return new Date(e)}function BU(e){return e instanceof Date?+e:+new Date(+e)}function Zv(e,t,n,i,r,o,s,a,u,l){var c=I8(),f=c.invert,d=c.domain,h=l(".%L"),p=l(":%S"),g=l("%I:%M"),m=l("%I %p"),y=l("%a %d"),b=l("%b %d"),x=l("%B"),v=l("%Y");function w(A){return(u(A)<A?h:a(A)<A?p:s(A)<A?g:o(A)<A?m:i(A)<A?r(A)<A?y:b:n(A)<A?x:v)(A)}return c.invert=function(A){return new Date(f(A))},c.domain=function(A){return arguments.length?d(Array.from(A,BU)):d().map(zU)},c.ticks=function(A){var E=d();return e(E[0],E[E.length-1],A??10)},c.tickFormat=function(A,E){return E==null?w:l(E)},c.nice=function(A){var E=d();return(!A||typeof A.range!="function")&&(A=t(E[0],E[E.length-1],A??10)),A?d(NT(E,A)):c},c.copy=function(){return ng(c,Zv(e,t,n,i,r,o,s,a,u,l))},c}function UU(){return us.apply(Zv(SI,CI,br,Uc,sl,no,yg,gg,Jr,qx).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function jU(){return us.apply(Zv(wI,AI,xr,jc,al,Go,bg,mg,Jr,Wx).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Lg(){var e=0,t=1,n,i,r,o,s=No,a=!1,u;function l(f){return f==null||isNaN(f=+f)?u:s(r===0?.5:(f=(o(f)-n)*r,a?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),i=o(t=+t),r=n===i?0:1/(i-n),l):[e,t]},l.clamp=function(f){return arguments.length?(a=!!f,l):a},l.interpolator=function(f){return arguments.length?(s=f,l):s};function c(f){return function(d){var h,p;return arguments.length?([h,p]=d,s=f(h,p),l):[s(0),s(1)]}}return l.range=c(bf),l.rangeRound=c(tg),l.unknown=function(f){return arguments.length?(u=f,l):u},function(f){return o=f,n=f(e),i=f(t),r=n===i?0:1/(i-n),l}}function cs(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function e2(){var e=rl(Lg()(No));return e.copy=function(){return cs(e,e2())},ls.apply(e,arguments)}function BT(){var e=Xv(Lg()).domain([1,10]);return e.copy=function(){return cs(e,BT()).base(e.base())},ls.apply(e,arguments)}function UT(){var e=Kv(Lg());return e.copy=function(){return cs(e,UT()).constant(e.constant())},ls.apply(e,arguments)}function t2(){var e=Jv(Lg());return e.copy=function(){return cs(e,t2()).exponent(e.exponent())},ls.apply(e,arguments)}function qU(){return t2.apply(null,arguments).exponent(.5)}function Pg(){var e=0,t=.5,n=1,i=1,r,o,s,a,u,l=No,c,f=!1,d;function h(g){return isNaN(g=+g)?d:(g=.5+((g=+c(g))-o)*(i*g<i*o?a:u),l(f?Math.max(0,Math.min(1,g)):g))}h.domain=function(g){return arguments.length?([e,t,n]=g,r=c(e=+e),o=c(t=+t),s=c(n=+n),a=r===o?0:.5/(o-r),u=o===s?0:.5/(s-o),i=o<r?-1:1,h):[e,t,n]},h.clamp=function(g){return arguments.length?(f=!!g,h):f},h.interpolator=function(g){return arguments.length?(l=g,h):l};function p(g){return function(m){var y,b,x;return arguments.length?([y,b,x]=m,l=Yv(g,[y,b,x]),h):[l(0),l(.5),l(1)]}}return h.range=p(bf),h.rangeRound=p(tg),h.unknown=function(g){return arguments.length?(d=g,h):d},function(g){return c=g,r=g(e),o=g(t),s=g(n),a=r===o?0:.5/(o-r),u=o===s?0:.5/(s-o),i=o<r?-1:1,h}}function jT(){var e=rl(Pg()(No));return e.copy=function(){return cs(e,jT())},ls.apply(e,arguments)}function qT(){var e=Xv(Pg()).domain([.1,1,10]);return e.copy=function(){return cs(e,qT()).base(e.base())},ls.apply(e,arguments)}function WT(){var e=Kv(Pg());return e.copy=function(){return cs(e,WT()).constant(e.constant())},ls.apply(e,arguments)}function n2(){var e=Jv(Pg());return e.copy=function(){return cs(e,n2()).exponent(e.exponent())},ls.apply(e,arguments)}function WU(){return n2.apply(null,arguments).exponent(.5)}function $r(e){for(var t=e.length/6|0,n=new Array(t),i=0;i<t;)n[i]="#"+e.slice(i*6,++i*6);return n}const GU=$r("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),HU=$r("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),VU=$r("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),YU=$r("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),XU=$r("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),KU=$r("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),JU=$r("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),QU=$r("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),ZU=$r("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),ej=$r("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function i2(e,t,n){const i=e-t+n*2;return e?i>0?i:1:0}const tj="identity",Mu="linear",fo="log",Sf="pow",Cf="sqrt",Ig="symlog",aa="time",ua="utc",hr="sequential",fl="diverging",Ou="quantile",zg="quantize",Bg="threshold",r2="ordinal",Ty="point",GT="band",o2="bin-ordinal",wt="continuous",$f="discrete",_f="discretizing",vi="interpolating",s2="temporal";function nj(e){return function(t){let n=t[0],i=t[1],r;return i<n&&(r=n,n=i,i=r),[e.invert(n),e.invert(i)]}}function ij(e){return function(t){const n=e.range();let i=t[0],r=t[1],o=-1,s,a,u,l;for(r<i&&(a=i,i=r,r=a),u=0,l=n.length;u<l;++u)n[u]>=i&&n[u]<=r&&(o<0&&(o=u),s=u);if(!(o<0))return i=e.invertExtent(n[o]),r=e.invertExtent(n[s]),[i[0]===void 0?i[1]:i[0],r[1]===void 0?r[0]:r[1]]}}function a2(){const e=Gv().unknown(void 0),t=e.domain,n=e.range;let i=[0,1],r,o,s=!1,a=0,u=0,l=.5;delete e.unknown;function c(){const f=t().length,d=i[1]<i[0],h=i[1-d],p=i2(f,a,u);let g=i[d-0];r=(h-g)/(p||1),s&&(r=Math.floor(r)),g+=(h-g-r*(f-a))*l,o=r*(1-a),s&&(g=Math.round(g),o=Math.round(o));const m=Yn(f).map(y=>g+r*y);return n(d?m.reverse():m)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?(i=[+f[0],+f[1]],c()):i.slice()},e.rangeRound=function(f){return i=[+f[0],+f[1]],s=!0,c()},e.bandwidth=function(){return o},e.step=function(){return r},e.round=function(f){return arguments.length?(s=!!f,c()):s},e.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),a=u,c()):a},e.paddingInner=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),c()):a},e.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},e.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const d=i[1]<i[0],h=d?n().reverse():n(),p=h.length-1;let g=+f[0],m=+f[1],y,b,x;if(!(g!==g||m!==m)&&(m<g&&(x=g,g=m,m=x),!(m<h[0]||g>i[1-d])))return y=Math.max(0,Cu(h,g)-1),b=g===m?y:Cu(h,m)-1,g-h[y]>o+1e-10&&++y,d&&(x=y,y=p-b,b=p-x),y>b?void 0:t().slice(y,b+1)},e.invert=function(f){const d=e.invertRange([f,f]);return d&&d[0]},e.copy=function(){return a2().domain(t()).range(i).round(s).paddingInner(a).paddingOuter(u).align(l)},c()}function HT(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return HT(t())},e}function rj(){return HT(a2().paddingInner(1))}var oj=Array.prototype.map;function sj(e){return oj.call(e,mn)}const aj=Array.prototype.slice;function VT(){let e=[],t=[];function n(i){return i==null||i!==i?void 0:t[(Cu(e,i)-1)%t.length]}return n.domain=function(i){return arguments.length?(e=sj(i),n):e.slice()},n.range=function(i){return arguments.length?(t=aj.call(i),n):t.slice()},n.tickFormat=function(i,r){return U8(e[0],$e(e),i??10,r)},n.copy=function(){return VT().domain(n.domain()).range(n.range())},n}const Bh=new Map,YT=Symbol("vega_scale");function XT(e){return e[YT]=!0,e}function XS(e){return e&&e[YT]===!0}function uj(e,t,n){const i=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?nj(o):o.invertExtent?ij(o):void 0),o.type=e,XT(o)};return i.metadata=yr(se(n)),i}function Me(e,t,n){return arguments.length>1?(Bh.set(e,uj(e,t,n)),this):KT(e)?Bh.get(e):void 0}Me(tj,RT);Me(Mu,z8,wt);Me(fo,LT,[wt,fo]);Me(Sf,Qv,wt);Me(Cf,IU,wt);Me(Ig,PT,wt);Me(aa,UU,[wt,s2]);Me(ua,jU,[wt,s2]);Me(hr,e2,[wt,vi]);Me(`${hr}-${Mu}`,e2,[wt,vi]);Me(`${hr}-${fo}`,BT,[wt,vi,fo]);Me(`${hr}-${Sf}`,t2,[wt,vi]);Me(`${hr}-${Cf}`,qU,[wt,vi]);Me(`${hr}-${Ig}`,UT,[wt,vi]);Me(`${fl}-${Mu}`,jT,[wt,vi]);Me(`${fl}-${fo}`,qT,[wt,vi,fo]);Me(`${fl}-${Sf}`,n2,[wt,vi]);Me(`${fl}-${Cf}`,WU,[wt,vi]);Me(`${fl}-${Ig}`,WT,[wt,vi]);Me(Ou,IT,[_f,Ou]);Me(zg,zT,_f);Me(Bg,B8,_f);Me(o2,VT,[$f,_f]);Me(r2,Gv,$f);Me(GT,a2,$f);Me(Ty,rj,$f);function KT(e){return Bh.has(e)}function Ma(e,t){const n=Bh.get(e);return n&&n.metadata[t]}function u2(e){return Ma(e,wt)}function Ru(e){return Ma(e,$f)}function My(e){return Ma(e,_f)}function JT(e){return Ma(e,fo)}function lj(e){return Ma(e,s2)}function QT(e){return Ma(e,vi)}function ZT(e){return Ma(e,Ou)}const cj=["clamp","base","constant","exponent"];function eM(e,t){const n=t[0],i=$e(t)-n;return function(r){return e(n+r*i)}}function Ug(e,t,n){return Yv(l2(t||"rgb",n),e)}function tM(e,t){const n=new Array(t),i=t+1;for(let r=0;r<t;)n[r]=e(++r/i);return n}function nM(e,t,n){const i=n-t;let r,o,s;return!i||!Number.isFinite(i)?wn(.5):(r=(o=e.type).indexOf("-"),o=r<0?o:o.slice(r+1),s=Me(o)().domain([t,n]).range([0,1]),cj.forEach(a=>e[a]?s[a](e[a]()):0),s)}function l2(e,t){const n=DU[fj(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function fj(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const dj={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"},hj={accent:HU,category10:GU,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:VU,observable10:YU,paired:XU,pastel1:KU,pastel2:JU,set1:QU,set2:ZU,set3:ej,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"};function iM(e){if(Z(e))return e;const t=e.length/6|0,n=new Array(t);for(let i=0;i<t;)n[i]="#"+e.slice(i*6,++i*6);return n}function rM(e,t){for(const n in e)c2(n,t(e[n]))}const KS={};rM(hj,iM);rM(dj,e=>Ug(iM(e)));function c2(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(KS[e]=t,this):KS[e]}const th="symbol",pj="discrete",gj="gradient",mj=e=>Z(e)?e.map(t=>String(t)):String(e),yj=(e,t)=>e[1]-t[1],bj=(e,t)=>t[1]-e[1];function f2(e,t,n){let i;return sa(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),n!=null&&(t=Math.min(t,Math.floor(pg(e.domain())/n||1)+1))),me(t)&&(i=t.step,t=t.interval),Ke(t)&&(t=e.type===aa?ul(t):e.type==ua?ll(t):L("Only time and utc scales accept interval strings."),i&&(t=t.every(i))),t}function oM(e,t,n){let i=e.range(),r=i[0],o=$e(i),s=yj;if(r>o&&(i=o,o=r,r=i,s=bj),r=Math.floor(r),o=Math.ceil(o),t=t.map(a=>[a,e(a)]).filter(a=>r<=a[1]&&a[1]<=o).sort(s).map(a=>a[0]),n>0&&t.length>1){const a=[t[0],$e(t)];for(;t.length>n&&t.length>=3;)t=t.filter((u,l)=>!(l%2));t.length<3&&(t=a)}return t}function d2(e,t){return e.bins?oM(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function sM(e,t,n,i,r,o){const s=t.type;let a=mj;if(s===aa||r===aa)a=e.timeFormat(i);else if(s===ua||r===ua)a=e.utcFormat(i);else if(JT(s)){const u=e.formatFloat(i);if(o||t.bins)a=u;else{const l=aM(t,n,!1);a=c=>l(c)?u(c):""}}else if(t.tickFormat){const u=t.domain();a=e.formatSpan(u[0],u[u.length-1],n,i)}else i&&(a=e.format(i));return a}function aM(e,t,n){const i=d2(e,t),r=e.base(),o=Math.log(r),s=Math.max(1,r*t/i.length),a=u=>{let l=u/Math.pow(r,Math.round(Math.log(u)/o));return l*r<r-.5&&(l*=r),l<=s};return n?i.filter(a):a}const Oy={[Ou]:"quantiles",[zg]:"thresholds",[Bg]:"domain"},uM={[Ou]:"quantiles",[zg]:"domain"};function lM(e,t){return e.bins?Ej(e.bins):e.type===fo?aM(e,t,!0):Oy[e.type]?vj(e[Oy[e.type]]()):d2(e,t)}function xj(e,t,n){const i=t[uM[t.type]](),r=i.length;let o=r>1?i[1]-i[0]:i[0],s;for(s=1;s<r;++s)o=Math.min(o,i[s]-i[s-1]);return e.formatSpan(0,o,3*10,n)}function vj(e){const t=[-1/0].concat(e);return t.max=1/0,t}function Ej(e){const t=e.slice(0,-1);return t.max=$e(e),t}const wj=e=>Oy[e.type]||e.bins;function cM(e,t,n,i,r,o,s){const a=uM[t.type]&&o!==aa&&o!==ua?xj(e,t,r):sM(e,t,n,r,o,s);return i===th&&wj(t)?Aj(a):i===pj?Sj(a):Cj(a)}const Aj=e=>(t,n,i)=>{const r=JS(i[n+1],JS(i.max,1/0)),o=QS(t,e),s=QS(r,e);return o&&s?o+" – "+s:s?"< "+s:"≥ "+o},JS=(e,t)=>e??t,Sj=e=>(t,n)=>n?e(t):null,Cj=e=>t=>e(t),QS=(e,t)=>Number.isFinite(e)?t(e):null;function $j(e){const t=e.domain(),n=t.length-1;let i=+t[0],r=+$e(t),o=r-i;if(e.type===Bg){const s=n?o/n:.1;i-=s,r+=s,o=r-i}return s=>(s-i)/o}function _j(e,t,n,i){const r=i||t.type;return Ke(n)&&lj(r)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),!n&&r===aa?e.timeFormat("%A, %d %B %Y, %X"):!n&&r===ua?e.utcFormat("%A, %d %B %Y, %X UTC"):cM(e,t,5,null,n,i,!0)}function fM(e,t,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=_j(e,t,n.format,n.formatType);if(My(t.type)){const o=lM(t).slice(1).map(r),s=o.length;return`${s} boundar${s===1?"y":"ies"}: ${o.join(", ")}`}else if(Ru(t.type)){const o=t.domain(),s=o.length,a=s>i?o.slice(0,i-2).map(r).join(", ")+", ending with "+o.slice(-1).map(r):o.map(r).join(", ");return`${s} value${s===1?"":"s"}: ${a}`}else{const o=t.domain();return`values from ${r(o[0])} to ${r($e(o))}`}}let dM=0;function Fj(){dM=0}const Uh="p_";function h2(e){return e&&e.gradient}function hM(e,t,n){const i=e.gradient;let r=e.id,o=i==="radial"?Uh:"";return r||(r=e.id="gradient_"+dM++,i==="radial"?(e.x1=tr(e.x1,.5),e.y1=tr(e.y1,.5),e.r1=tr(e.r1,0),e.x2=tr(e.x2,.5),e.y2=tr(e.y2,.5),e.r2=tr(e.r2,.5),o=Uh):(e.x1=tr(e.x1,0),e.y1=tr(e.y1,0),e.x2=tr(e.x2,1),e.y2=tr(e.y2,0))),t[r]=e,"url("+(n||"")+"#"+o+r+")"}function tr(e,t){return e??t}function pM(e,t){var n=[],i;return i={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:n,stop:function(r,o){return n.push({offset:r,color:o}),i}}}const ZS={basis:{curve:ZB},"basis-closed":{curve:eU},"basis-open":{curve:tU},bundle:{curve:nU,tension:"beta",value:.85},cardinal:{curve:iU,tension:"tension",value:0},"cardinal-open":{curve:oU,tension:"tension",value:0},"cardinal-closed":{curve:rU,tension:"tension",value:0},"catmull-rom":{curve:sU,tension:"alpha",value:.5},"catmull-rom-closed":{curve:aU,tension:"alpha",value:.5},"catmull-rom-open":{curve:uU,tension:"alpha",value:.5},linear:{curve:Bv},"linear-closed":{curve:lU},monotone:{horizontal:fU,vertical:cU},natural:{curve:dU},step:{curve:hU},"step-after":{curve:gU},"step-before":{curve:pU}};function p2(e,t,n){var i=le(ZS,e)&&ZS[e],r=null;return i&&(r=i.curve||i[t||"vertical"],i.tension&&n!=null&&(r=r[i.tension](n))),r}const kj={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},Dj=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Tj=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Mj=/^((\s+,?\s*)|(,\s*))/,Oj=/^[01]/;function Nu(e){const t=[];return(e.match(Dj)||[]).forEach(i=>{let r=i[0];const o=r.toLowerCase(),s=kj[o],a=Rj(o,s,i.slice(1).trim()),u=a.length;if(u<s||u&&u%s!==0)throw Error("Invalid SVG path, incorrect parameter count");if(t.push([r,...a.slice(0,s)]),u!==s){o==="m"&&(r=r==="M"?"L":"l");for(let l=s;l<u;l+=s)t.push([r,...a.slice(l,l+s)])}}),t}function Rj(e,t,n){const i=[];for(let r=0;t&&r<n.length;)for(let o=0;o<t;++o){const s=e==="a"&&(o===3||o===4)?Oj:Tj,a=n.slice(r).match(s);if(a===null)throw Error("Invalid SVG path, incorrect parameter type");r+=a[0].length,i.push(+a[0]);const u=n.slice(r).match(Mj);u!==null&&(r+=u[0].length)}return i}const Qo=Math.PI/180,Nj=1e-14,Us=Math.PI/2,ar=Math.PI*2,Ka=Math.sqrt(3)/2;var Pm={},Im={},gM=[].join;function Lj(e,t,n,i,r,o,s,a,u){const l=gM.call(arguments);if(Pm[l])return Pm[l];const c=s*Qo,f=Math.sin(c),d=Math.cos(c);n=Math.abs(n),i=Math.abs(i);const h=d*(a-e)*.5+f*(u-t)*.5,p=d*(u-t)*.5-f*(a-e)*.5;let g=h*h/(n*n)+p*p/(i*i);g>1&&(g=Math.sqrt(g),n*=g,i*=g);const m=d/n,y=f/n,b=-f/i,x=d/i,v=m*a+y*u,w=b*a+x*u,A=m*e+y*t,E=b*e+x*t;let C=1/((A-v)*(A-v)+(E-w)*(E-w))-.25;C<0&&(C=0);let _=Math.sqrt(C);o==r&&(_=-_);const k=.5*(v+A)-_*(E-w),N=.5*(w+E)+_*(A-v),T=Math.atan2(w-N,v-k);let $=Math.atan2(E-N,A-k)-T;$<0&&o===1?$+=ar:$>0&&o===0&&($-=ar);const D=Math.ceil(Math.abs($/(Us+.001))),P=[];for(let z=0;z<D;++z){const I=T+z*$/D,V=T+(z+1)*$/D;P[z]=[k,N,I,V,n,i,f,d]}return Pm[l]=P}function Pj(e){const t=gM.call(e);if(Im[t])return Im[t];var n=e[0],i=e[1],r=e[2],o=e[3],s=e[4],a=e[5],u=e[6],l=e[7];const c=l*s,f=-u*a,d=u*s,h=l*a,p=Math.cos(r),g=Math.sin(r),m=Math.cos(o),y=Math.sin(o),b=.5*(o-r),x=Math.sin(b*.5),v=8/3*x*x/Math.sin(b),w=n+p-v*g,A=i+g+v*p,E=n+m,S=i+y,C=E+v*y,_=S-v*m;return Im[t]=[c*w+f*A,d*w+h*A,c*C+f*_,d*C+h*_,c*E+f*S,d*E+h*S]}const oi=["l",0,0,0,0,0,0,0];function Ij(e,t,n){const i=oi[0]=e[0];if(i==="a"||i==="A")oi[1]=t*e[1],oi[2]=n*e[2],oi[3]=e[3],oi[4]=e[4],oi[5]=e[5],oi[6]=t*e[6],oi[7]=n*e[7];else if(i==="h"||i==="H")oi[1]=t*e[1];else if(i==="v"||i==="V")oi[1]=n*e[1];else for(var r=1,o=e.length;r<o;++r)oi[r]=(r%2==1?t:n)*e[r];return oi}function Vc(e,t,n,i,r,o){var s,a=null,u=0,l=0,c=0,f=0,d,h,p,g,m=0,y=0;n==null&&(n=0),i==null&&(i=0),r==null&&(r=1),o==null&&(o=r),e.beginPath&&e.beginPath();for(var b=0,x=t.length;b<x;++b){switch(s=t[b],(r!==1||o!==1)&&(s=Ij(s,r,o)),s[0]){case"l":u+=s[1],l+=s[2],e.lineTo(u+n,l+i);break;case"L":u=s[1],l=s[2],e.lineTo(u+n,l+i);break;case"h":u+=s[1],e.lineTo(u+n,l+i);break;case"H":u=s[1],e.lineTo(u+n,l+i);break;case"v":l+=s[1],e.lineTo(u+n,l+i);break;case"V":l=s[1],e.lineTo(u+n,l+i);break;case"m":u+=s[1],l+=s[2],m=u,y=l,e.moveTo(u+n,l+i);break;case"M":u=s[1],l=s[2],m=u,y=l,e.moveTo(u+n,l+i);break;case"c":d=u+s[5],h=l+s[6],c=u+s[3],f=l+s[4],e.bezierCurveTo(u+s[1]+n,l+s[2]+i,c+n,f+i,d+n,h+i),u=d,l=h;break;case"C":u=s[5],l=s[6],c=s[3],f=s[4],e.bezierCurveTo(s[1]+n,s[2]+i,c+n,f+i,u+n,l+i);break;case"s":d=u+s[3],h=l+s[4],c=2*u-c,f=2*l-f,e.bezierCurveTo(c+n,f+i,u+s[1]+n,l+s[2]+i,d+n,h+i),c=u+s[1],f=l+s[2],u=d,l=h;break;case"S":d=s[3],h=s[4],c=2*u-c,f=2*l-f,e.bezierCurveTo(c+n,f+i,s[1]+n,s[2]+i,d+n,h+i),u=d,l=h,c=s[1],f=s[2];break;case"q":d=u+s[3],h=l+s[4],c=u+s[1],f=l+s[2],e.quadraticCurveTo(c+n,f+i,d+n,h+i),u=d,l=h;break;case"Q":d=s[3],h=s[4],e.quadraticCurveTo(s[1]+n,s[2]+i,d+n,h+i),u=d,l=h,c=s[1],f=s[2];break;case"t":d=u+s[1],h=l+s[2],a[0].match(/[QqTt]/)===null?(c=u,f=l):a[0]==="t"?(c=2*u-p,f=2*l-g):a[0]==="q"&&(c=2*u-c,f=2*l-f),p=c,g=f,e.quadraticCurveTo(c+n,f+i,d+n,h+i),u=d,l=h,c=u+s[1],f=l+s[2];break;case"T":d=s[1],h=s[2],c=2*u-c,f=2*l-f,e.quadraticCurveTo(c+n,f+i,d+n,h+i),u=d,l=h;break;case"a":eC(e,u+n,l+i,[s[1],s[2],s[3],s[4],s[5],s[6]+u+n,s[7]+l+i]),u+=s[6],l+=s[7];break;case"A":eC(e,u+n,l+i,[s[1],s[2],s[3],s[4],s[5],s[6]+n,s[7]+i]),u=s[6],l=s[7];break;case"z":case"Z":u=m,l=y,e.closePath();break}a=s}}function eC(e,t,n,i){const r=Lj(i[5],i[6],i[0],i[1],i[3],i[4],i[2],t,n);for(let o=0;o<r.length;++o){const s=Pj(r[o]);e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5])}}const tC=.5773502691896257,nC={circle:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(n,0),e.arc(0,0,n,0,ar)}},cross:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/2.5;e.moveTo(-n,-i),e.lineTo(-n,i),e.lineTo(-i,i),e.lineTo(-i,n),e.lineTo(i,n),e.lineTo(i,i),e.lineTo(n,i),e.lineTo(n,-i),e.lineTo(i,-i),e.lineTo(i,-n),e.lineTo(-i,-n),e.lineTo(-i,-i),e.closePath()}},diamond:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.closePath()}},square:{draw:function(e,t){var n=Math.sqrt(t),i=-n/2;e.rect(i,i,n,n)}},arrow:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/7,r=n/2.5,o=n/8;e.moveTo(-i,n),e.lineTo(i,n),e.lineTo(i,-o),e.lineTo(r,-o),e.lineTo(0,-n),e.lineTo(-r,-o),e.lineTo(-i,-o),e.closePath()}},wedge:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n,r=i-n*tC,o=n/4;e.moveTo(0,-i-r),e.lineTo(-o,i-r),e.lineTo(o,i-r),e.closePath()}},triangle:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n,r=i-n*tC;e.moveTo(0,-i-r),e.lineTo(-n,i-r),e.lineTo(n,i-r),e.closePath()}},"triangle-up":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(0,-i),e.lineTo(-n,i),e.lineTo(n,i),e.closePath()}},"triangle-down":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(0,i),e.lineTo(-n,-i),e.lineTo(n,-i),e.closePath()}},"triangle-right":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(i,0),e.lineTo(-i,-n),e.lineTo(-i,n),e.closePath()}},"triangle-left":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(-i,0),e.lineTo(i,-n),e.lineTo(i,n),e.closePath()}},stroke:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(n,0)}}};function mM(e){return le(nC,e)?nC[e]:zj(e)}var zm={};function zj(e){if(!le(zm,e)){const t=Nu(e);zm[e]={draw:function(n,i){Vc(n,t,0,0,Math.sqrt(i)/2)}}}return zm[e]}const Fo=.448084975506;function Bj(e){return e.x}function Uj(e){return e.y}function jj(e){return e.width}function qj(e){return e.height}function Ir(e){return typeof e=="function"?e:()=>+e}function vd(e,t,n){return Math.max(t,Math.min(e,n))}function yM(){var e=Bj,t=Uj,n=jj,i=qj,r=Ir(0),o=r,s=r,a=r,u=null;function l(c,f,d){var h,p=f??+e.call(this,c),g=d??+t.call(this,c),m=+n.call(this,c),y=+i.call(this,c),b=Math.min(m,y)/2,x=vd(+r.call(this,c),0,b),v=vd(+o.call(this,c),0,b),w=vd(+s.call(this,c),0,b),A=vd(+a.call(this,c),0,b);if(u||(u=h=Dx()),x<=0&&v<=0&&w<=0&&A<=0)u.rect(p,g,m,y);else{var E=p+m,S=g+y;u.moveTo(p+x,g),u.lineTo(E-v,g),u.bezierCurveTo(E-Fo*v,g,E,g+Fo*v,E,g+v),u.lineTo(E,S-A),u.bezierCurveTo(E,S-Fo*A,E-Fo*A,S,E-A,S),u.lineTo(p+w,S),u.bezierCurveTo(p+Fo*w,S,p,S-Fo*w,p,S-w),u.lineTo(p,g+x),u.bezierCurveTo(p,g+Fo*x,p+Fo*x,g,p+x,g),u.closePath()}if(h)return u=null,h+""||null}return l.x=function(c){return arguments.length?(e=Ir(c),l):e},l.y=function(c){return arguments.length?(t=Ir(c),l):t},l.width=function(c){return arguments.length?(n=Ir(c),l):n},l.height=function(c){return arguments.length?(i=Ir(c),l):i},l.cornerRadius=function(c,f,d,h){return arguments.length?(r=Ir(c),o=f!=null?Ir(f):r,a=d!=null?Ir(d):r,s=h!=null?Ir(h):o,l):r},l.context=function(c){return arguments.length?(u=c??null,l):u},l}function bM(){var e,t,n,i,r=null,o,s,a,u;function l(f,d,h){const p=h/2;if(o){var g=a-d,m=f-s;if(g||m){var y=Math.hypot(g,m),b=(g/=y)*u,x=(m/=y)*u,v=Math.atan2(m,g);r.moveTo(s-b,a-x),r.lineTo(f-g*p,d-m*p),r.arc(f,d,p,v-Math.PI,v),r.lineTo(s+b,a+x),r.arc(s,a,u,v,v+Math.PI)}else r.arc(f,d,p,0,ar);r.closePath()}else o=1;s=f,a=d,u=p}function c(f){var d,h=f.length,p,g=!1,m;for(r==null&&(r=m=Dx()),d=0;d<=h;++d)!(d<h&&i(p=f[d],d,f))===g&&(g=!g)&&(o=0),g&&l(+e(p,d,f),+t(p,d,f),+n(p,d,f));if(m)return r=null,m+""||null}return c.x=function(f){return arguments.length?(e=f,c):e},c.y=function(f){return arguments.length?(t=f,c):t},c.size=function(f){return arguments.length?(n=f,c):n},c.defined=function(f){return arguments.length?(i=f,c):i},c.context=function(f){return arguments.length?(f==null?r=null:r=f,c):r},c}function Ff(e,t){return e??t}const kf=e=>e.x||0,Df=e=>e.y||0,Wj=e=>e.width||0,Gj=e=>e.height||0,Hj=e=>(e.x||0)+(e.width||0),Vj=e=>(e.y||0)+(e.height||0),Yj=e=>e.startAngle||0,Xj=e=>e.endAngle||0,Kj=e=>e.padAngle||0,Jj=e=>e.innerRadius||0,Qj=e=>e.outerRadius||0,Zj=e=>e.cornerRadius||0,eq=e=>Ff(e.cornerRadiusTopLeft,e.cornerRadius)||0,tq=e=>Ff(e.cornerRadiusTopRight,e.cornerRadius)||0,nq=e=>Ff(e.cornerRadiusBottomRight,e.cornerRadius)||0,iq=e=>Ff(e.cornerRadiusBottomLeft,e.cornerRadius)||0,rq=e=>Ff(e.size,64),oq=e=>e.size||1,jg=e=>e.defined!==!1,sq=e=>mM(e.shape||"circle"),aq=KB().startAngle(Yj).endAngle(Xj).padAngle(Kj).innerRadius(Jj).outerRadius(Qj).cornerRadius(Zj),uq=cT().x(kf).y1(Df).y0(Vj).defined(jg),lq=cT().y(Df).x1(kf).x0(Hj).defined(jg),cq=lT().x(kf).y(Df).defined(jg),fq=yM().x(kf).y(Df).width(Wj).height(Gj).cornerRadius(eq,tq,nq,iq),dq=QB().type(sq).size(rq),hq=bM().x(kf).y(Df).defined(jg).size(oq);function g2(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function pq(e,t){return aq.context(e)(t)}function gq(e,t){const n=t[0],i=n.interpolate||"linear";return(n.orient==="horizontal"?lq:uq).curve(p2(i,n.orient,n.tension)).context(e)(t)}function mq(e,t){const n=t[0],i=n.interpolate||"linear";return cq.curve(p2(i,n.orient,n.tension)).context(e)(t)}function dl(e,t,n,i){return fq.context(e)(t,n,i)}function yq(e,t){return(t.mark.shape||t.shape).context(e)(t)}function bq(e,t){return dq.context(e)(t)}function xq(e,t){return hq.context(e)(t)}var xM=1;function vM(){xM=1}function m2(e,t,n){var i=t.clip,r=e._defs,o=t.clip_id||(t.clip_id="clip"+xM++),s=r.clipping[o]||(r.clipping[o]={id:o});return be(i)?s.path=i(null):g2(n)?s.path=dl(null,n,0,0):(s.width=n.width||0,s.height=n.height||0),"url(#"+o+")"}function gt(e){this.clear(),e&&this.union(e)}gt.prototype={clone(){return new gt(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(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,i){return n<e?(this.x2=e,this.x1=n):(this.x1=e,this.x2=n),i<t?(this.y2=t,this.y1=i):(this.y1=t,this.y2=i),this},add(e,t){return e<this.x1&&(this.x1=e),t<this.y1&&(this.y1=t),e>this.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,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(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const i=this.rotatedPoints(e,t,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(e,t,n){var{x1:i,y1:r,x2:o,y2:s}=this,a=Math.cos(e),u=Math.sin(e),l=t-t*a+n*u,c=n-t*u-n*a;return[a*i-u*r+l,u*i+a*r+c,a*i-u*s+l,u*i+a*s+c,a*o-u*r+l,u*o+a*r+c,a*o-u*s+l,u*o+a*s+c]},union(e){return e.x1<this.x1&&(this.x1=e.x1),e.y1<this.y1&&(this.y1=e.y1),e.x2>this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2<this.x2&&(this.x2=e.x2),e.y2<this.y2&&(this.y2=e.y2),this},encloses(e){return e&&this.x1<=e.x1&&this.x2>=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2<e.x1||this.x1>e.x2||this.y2<e.y1||this.y1>e.y2)},contains(e,t){return!(e<this.x1||e>this.x2||t<this.y1||t>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}};function qg(e){this.mark=e,this.bounds=this.bounds||new gt}function Wg(e){qg.call(this,e),this.items=this.items||[]}G(Wg,qg);class EM{constructor(t){this._pending=0,this._loader=t||vg()}pending(){return this._pending}sanitizeURL(t){const n=this;return iC(n),n._loader.sanitize(t,{context:"href"}).then(i=>(Il(n),i)).catch(()=>(Il(n),null))}loadImage(t){const n=this,i=mU();return iC(n),n._loader.sanitize(t,{context:"image"}).then(r=>{const o=r.href;if(!o||!i)throw{url:o};const s=new i,a=le(r,"crossOrigin")?r.crossOrigin:"anonymous";return a!=null&&(s.crossOrigin=a),s.onload=()=>Il(n),s.onerror=()=>Il(n),s.src=o,s}).catch(r=>(Il(n),{complete:!1,width:0,height:0,src:r&&r.url||""}))}ready(){const t=this;return new Promise(n=>{function i(r){t.pending()?setTimeout(()=>{i(!0)},10):n(r)}i(!1)})}}function iC(e){e._pending+=1}function Il(e){e._pending-=1}function bo(e,t,n){if(t.stroke&&t.opacity!==0&&t.strokeOpacity!==0){const i=t.strokeWidth!=null?+t.strokeWidth:1;e.expand(i+(n?vq(t,i):0))}return e}function vq(e,t){return e.strokeJoin&&e.strokeJoin!=="miter"?0:t}const Eq=ar-1e-8;let Gg,nh,ih,Hs,Ry,rh,Ny,Ly;const Lo=(e,t)=>Gg.add(e,t),oh=(e,t)=>Lo(nh=e,ih=t),rC=e=>Lo(e,Gg.y1),oC=e=>Lo(Gg.x1,e),js=(e,t)=>Ry*e+Ny*t,qs=(e,t)=>rh*e+Ly*t,Bm=(e,t)=>Lo(js(e,t),qs(e,t)),Um=(e,t)=>oh(js(e,t),qs(e,t));function Tf(e,t){return Gg=e,t?(Hs=t*Qo,Ry=Ly=Math.cos(Hs),rh=Math.sin(Hs),Ny=-rh):(Ry=Ly=1,Hs=rh=Ny=0),wq}const wq={beginPath(){},closePath(){},moveTo:Um,lineTo:Um,rect(e,t,n,i){Hs?(Bm(e+n,t),Bm(e+n,t+i),Bm(e,t+i),Um(e,t)):(Lo(e+n,t+i),oh(e,t))},quadraticCurveTo(e,t,n,i){const r=js(e,t),o=qs(e,t),s=js(n,i),a=qs(n,i);sC(nh,r,s,rC),sC(ih,o,a,oC),oh(s,a)},bezierCurveTo(e,t,n,i,r,o){const s=js(e,t),a=qs(e,t),u=js(n,i),l=qs(n,i),c=js(r,o),f=qs(r,o);aC(nh,s,u,c,rC),aC(ih,a,l,f,oC),oh(c,f)},arc(e,t,n,i,r,o){if(i+=Hs,r+=Hs,nh=n*Math.cos(r)+e,ih=n*Math.sin(r)+t,Math.abs(r-i)>Eq)Lo(e-n,t-n),Lo(e+n,t+n);else{const s=l=>Lo(n*Math.cos(l)+e,n*Math.sin(l)+t);let a,u;if(s(i),s(r),r!==i)if(i=i%ar,i<0&&(i+=ar),r=r%ar,r<0&&(r+=ar),r<i&&(o=!o,a=i,i=r,r=a),o)for(r-=ar,a=i-i%Us,u=0;u<4&&a>r;++u,a-=Us)s(a);else for(a=i-i%Us+Us,u=0;u<4&&a<r;++u,a=a+Us)s(a)}}};function sC(e,t,n,i){const r=(e-t)/(e+n-2*t);0<r&&r<1&&i(e+(t-e)*r)}function aC(e,t,n,i,r){const o=i-e+3*t-3*n,s=e+n-2*t,a=e-t;let u=0,l=0,c;Math.abs(o)>Nj?(c=s*s+a*o,c>=0&&(c=Math.sqrt(c),u=(-s+c)/o,l=(-s-c)/o)):u=.5*a/s,0<u&&u<1&&r(uC(u,e,t,n,i)),0<l&&l<1&&r(uC(l,e,t,n,i))}function uC(e,t,n,i,r){const o=1-e,s=o*o,a=e*e;return s*o*t+3*s*e*n+3*o*a*i+a*e*r}var Yo=(Yo=Vo(1,1))?Yo.getContext("2d"):null;const Py=new gt;function y2(e){return function(t,n){if(!Yo)return!0;e(Yo,t),Py.clear().union(t.bounds).intersect(n).round();const{x1:i,y1:r,x2:o,y2:s}=Py;for(let a=r;a<=s;++a)for(let u=i;u<=o;++u)if(Yo.isPointInPath(u,a))return!0;return!1}}function b2(e,t){return t.contains(e.x||0,e.y||0)}function wM(e,t){const n=e.x||0,i=e.y||0,r=e.width||0,o=e.height||0;return t.intersects(Py.set(n,i,n+r,i+o))}function AM(e,t){const n=e.x||0,i=e.y||0,r=e.x2!=null?e.x2:n,o=e.y2!=null?e.y2:i;return lu(t,n,i,r,o)}function lu(e,t,n,i,r){const{x1:o,y1:s,x2:a,y2:u}=e,l=i-t,c=r-n;let f=0,d=1,h,p,g,m;for(m=0;m<4;++m){if(m===0&&(h=-l,p=-(o-t)),m===1&&(h=l,p=a-t),m===2&&(h=-c,p=-(s-n)),m===3&&(h=c,p=u-n),Math.abs(h)<1e-10&&p<0)return!1;if(g=p/h,h<0){if(g>d)return!1;g>f&&(f=g)}else if(h>0){if(g<f)return!1;g<d&&(d=g)}}return!0}function Lu(e,t){e.globalCompositeOperation=t.blend||"source-over"}function Si(e,t){return e??t}function lC(e,t){const n=t.length;for(let i=0;i<n;++i)e.addColorStop(t[i].offset,t[i].color);return e}function Aq(e,t,n){const i=n.width(),r=n.height();let o;if(t.gradient==="radial")o=e.createRadialGradient(n.x1+Si(t.x1,.5)*i,n.y1+Si(t.y1,.5)*r,Math.max(i,r)*Si(t.r1,0),n.x1+Si(t.x2,.5)*i,n.y1+Si(t.y2,.5)*r,Math.max(i,r)*Si(t.r2,.5));else{const s=Si(t.x1,0),a=Si(t.y1,0),u=Si(t.x2,1),l=Si(t.y2,0);if(s===u||a===l||i===r)o=e.createLinearGradient(n.x1+s*i,n.y1+a*r,n.x1+u*i,n.y1+l*r);else{const c=Vo(Math.ceil(i),Math.ceil(r)),f=c.getContext("2d");return f.scale(i,r),f.fillStyle=lC(f.createLinearGradient(s,a,u,l),t.stops),f.fillRect(0,0,i,r),e.createPattern(c,"no-repeat")}}return lC(o,t.stops)}function SM(e,t,n){return h2(n)?Aq(e,n,t.bounds):n}function jh(e,t,n){return n*=t.fillOpacity==null?1:t.fillOpacity,n>0?(e.globalAlpha=n,e.fillStyle=SM(e,t,t.fill),!0):!1}var Sq=[];function Pu(e,t,n){var i=(i=t.strokeWidth)!=null?i:1;return i<=0?!1:(n*=t.strokeOpacity==null?1:t.strokeOpacity,n>0?(e.globalAlpha=n,e.strokeStyle=SM(e,t,t.stroke),e.lineWidth=i,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||Sq),e.lineDashOffset=t.strokeDashOffset||0),!0):!1)}function Cq(e,t){return e.zindex-t.zindex||e.index-t.index}function x2(e){if(!e.zdirty)return e.zitems;var t=e.items,n=[],i,r,o;for(r=0,o=t.length;r<o;++r)i=t[r],i.index=r,i.zindex&&n.push(i);return e.zdirty=!1,e.zitems=n.sort(Cq)}function zi(e,t){var n=e.items,i,r;if(!n||!n.length)return;const o=x2(e);if(o&&o.length){for(i=0,r=n.length;i<r;++i)n[i].zindex||t(n[i]);n=o}for(i=0,r=n.length;i<r;++i)t(n[i])}function qh(e,t){var n=e.items,i,r;if(!n||!n.length)return null;const o=x2(e);for(o&&o.length&&(n=o),r=n.length;--r>=0;)if(i=t(n[r]))return i;if(n===o){for(n=e.items,r=n.length;--r>=0;)if(!n[r].zindex&&(i=t(n[r])))return i}return null}function v2(e){return function(t,n,i){zi(n,r=>{(!i||i.intersects(r.bounds))&&CM(e,t,r,r)})}}function $q(e){return function(t,n,i){n.items.length&&(!i||i.intersects(n.bounds))&&CM(e,t,n.items[0],n.items)}}function CM(e,t,n,i){var r=n.opacity==null?1:n.opacity;r!==0&&(e(t,i)||(Lu(t,n),n.fill&&jh(t,n,r)&&t.fill(),n.stroke&&Pu(t,n,r)&&t.stroke()))}function Hg(e){return e=e||Pi,function(t,n,i,r,o,s){return i*=t.pixelRatio,r*=t.pixelRatio,qh(n,a=>{const u=a.bounds;if(!(u&&!u.contains(o,s)||!u)&&e(t,a,i,r,o,s))return a})}}function Mf(e,t){return function(n,i,r,o){var s=Array.isArray(i)?i[0]:i,a=t??s.fill,u=s.stroke&&n.isPointInStroke,l,c;return u&&(l=s.strokeWidth,c=s.strokeCap,n.lineWidth=l??1,n.lineCap=c??"butt"),e(n,i)?!1:a&&n.isPointInPath(r,o)||u&&n.isPointInStroke(r,o)}}function E2(e){return Hg(Mf(e))}function Js(e,t){return"translate("+e+","+t+")"}function w2(e){return"rotate("+e+")"}function _q(e,t){return"scale("+e+","+t+")"}function $M(e){return Js(e.x||0,e.y||0)}function Fq(e){return Js(e.x||0,e.y||0)+(e.angle?" "+w2(e.angle):"")}function kq(e){return Js(e.x||0,e.y||0)+(e.angle?" "+w2(e.angle):"")+(e.scaleX||e.scaleY?" "+_q(e.scaleX||1,e.scaleY||1):"")}function A2(e,t,n){function i(s,a){s("transform",Fq(a)),s("d",t(null,a))}function r(s,a){return t(Tf(s,a.angle),a),bo(s,a).translate(a.x||0,a.y||0)}function o(s,a){var u=a.x||0,l=a.y||0,c=a.angle||0;s.translate(u,l),c&&s.rotate(c*=Qo),s.beginPath(),t(s,a),c&&s.rotate(-c),s.translate(-u,-l)}return{type:e,tag:"path",nested:!1,attr:i,bound:r,draw:v2(o),pick:E2(o),isect:n||y2(o)}}var Dq=A2("arc",pq);function Tq(e,t){for(var n=e[0].orient==="horizontal"?t[1]:t[0],i=e[0].orient==="horizontal"?"y":"x",r=e.length,o=1/0,s,a;--r>=0;)e[r].defined!==!1&&(a=Math.abs(e[r][i]-n),a<o&&(o=a,s=e[r]));return s}function Mq(e,t){for(var n=Math.pow(e[0].strokeWidth||1,2),i=e.length,r,o,s;--i>=0;)if(e[i].defined!==!1&&(r=e[i].x-t[0],o=e[i].y-t[1],s=r*r+o*o,s<n))return e[i];return null}function Oq(e,t){for(var n=e.length,i,r,o;--n>=0;)if(e[n].defined!==!1&&(i=e[n].x-t[0],r=e[n].y-t[1],o=i*i+r*r,i=e[n].size||1,o<i*i))return e[n];return null}function S2(e,t,n){function i(u,l){var c=l.mark.items;c.length&&u("d",t(null,c))}function r(u,l){var c=l.items;return c.length===0?u:(t(Tf(u),c),bo(u,c[0]))}function o(u,l){u.beginPath(),t(u,l)}const s=Mf(o);function a(u,l,c,f,d,h){var p=l.items,g=l.bounds;return!p||!p.length||g&&!g.contains(d,h)?null:(c*=u.pixelRatio,f*=u.pixelRatio,s(u,p,c,f)?p[0]:null)}return{type:e,tag:"path",nested:!0,attr:i,bound:r,draw:$q(o),pick:a,isect:b2,tip:n}}var Rq=S2("area",gq,Tq);function Nq(e,t){var n=t.clip;e.save(),be(n)?(e.beginPath(),n(e),e.clip()):_M(e,t.group)}function _M(e,t){e.beginPath(),g2(t)?dl(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function FM(e){const t=Si(e.strokeWidth,1);return e.strokeOffset!=null?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function Lq(e,t){e("transform",$M(t))}function kM(e,t){const n=FM(t);e("d",dl(null,t,n,n))}function Pq(e,t){e("class","background"),e("aria-hidden",!0),kM(e,t)}function Iq(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?kM(e,t):e("d","")}function zq(e,t,n){const i=t.clip?m2(n,t,t):null;e("clip-path",i)}function Bq(e,t){if(!t.clip&&t.items){const n=t.items,i=n.length;for(let r=0;r<i;++r)e.union(n[r].bounds)}return(t.clip||t.width||t.height)&&!t.noBound&&e.add(0,0).add(t.width||0,t.height||0),bo(e,t),e.translate(t.x||0,t.y||0)}function Yc(e,t,n,i){const r=FM(t);e.beginPath(),dl(e,t,(n||0)+r,(i||0)+r)}const Uq=Mf(Yc),jq=Mf(Yc,!1),qq=Mf(Yc,!0);function Wq(e,t,n,i){zi(t,r=>{const o=r.x||0,s=r.y||0,a=r.strokeForeground,u=r.opacity==null?1:r.opacity;(r.stroke||r.fill)&&u&&(Yc(e,r,o,s),Lu(e,r),r.fill&&jh(e,r,u)&&e.fill(),r.stroke&&!a&&Pu(e,r,u)&&e.stroke()),e.save(),e.translate(o,s),r.clip&&_M(e,r),n&&n.translate(-o,-s),zi(r,l=>{(l.marktype==="group"||i==null||i.includes(l.marktype))&&this.draw(e,l,n,i)}),n&&n.translate(o,s),e.restore(),a&&r.stroke&&u&&(Yc(e,r,o,s),Lu(e,r),Pu(e,r,u)&&e.stroke())})}function Gq(e,t,n,i,r,o){if(t.bounds&&!t.bounds.contains(r,o)||!t.items)return null;const s=n*e.pixelRatio,a=i*e.pixelRatio;return qh(t,u=>{let l,c,f;const d=u.bounds;if(d&&!d.contains(r,o))return;c=u.x||0,f=u.y||0;const h=c+(u.width||0),p=f+(u.height||0),g=u.clip;if(g&&(r<c||r>h||o<f||o>p))return;if(e.save(),e.translate(c,f),c=r-c,f=o-f,g&&g2(u)&&!qq(e,u,s,a))return e.restore(),null;const m=u.strokeForeground,y=t.interactive!==!1;return y&&m&&u.stroke&&jq(e,u,s,a)?(e.restore(),u):(l=qh(u,b=>Hq(b,c,f)?this.pick(b,n,i,c,f):null),!l&&y&&(u.fill||!m&&u.stroke)&&Uq(e,u,s,a)&&(l=u),e.restore(),l||null)})}function Hq(e,t,n){return(e.interactive!==!1||e.marktype==="group")&&e.bounds&&e.bounds.contains(t,n)}var Vq={type:"group",tag:"g",nested:!1,attr:Lq,bound:Bq,draw:Wq,pick:Gq,isect:wM,content:zq,background:Pq,foreground:Iq},Xc={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function C2(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then(i=>{e.image=i,e.image.url=e.url})),n}function $2(e,t){return e.width!=null?e.width:!t||!t.width?0:e.aspect!==!1&&e.height?e.height*t.width/t.height:t.width}function _2(e,t){return e.height!=null?e.height:!t||!t.height?0:e.aspect!==!1&&e.width?e.width*t.height/t.width:t.height}function Vg(e,t){return e==="center"?t/2:e==="right"?t:0}function Yg(e,t){return e==="middle"?t/2:e==="bottom"?t:0}function Yq(e,t,n){const i=C2(t,n),r=$2(t,i),o=_2(t,i),s=(t.x||0)-Vg(t.align,r),a=(t.y||0)-Yg(t.baseline,o),u=!i.src&&i.toDataURL?i.toDataURL():i.src||"";e("href",u,Xc["xmlns:xlink"],"xlink:href"),e("transform",Js(s,a)),e("width",r),e("height",o),e("preserveAspectRatio",t.aspect===!1?"none":"xMidYMid")}function Xq(e,t){const n=t.image,i=$2(t,n),r=_2(t,n),o=(t.x||0)-Vg(t.align,i),s=(t.y||0)-Yg(t.baseline,r);return e.set(o,s,o+i,s+r)}function Kq(e,t,n){zi(t,i=>{if(n&&!n.intersects(i.bounds))return;const r=C2(i,this);let o=$2(i,r),s=_2(i,r);if(o===0||s===0)return;let a=(i.x||0)-Vg(i.align,o),u=(i.y||0)-Yg(i.baseline,s),l,c,f,d;i.aspect!==!1&&(c=r.width/r.height,f=i.width/i.height,c===c&&f===f&&c!==f&&(f<c?(d=o/c,u+=(s-d)/2,s=d):(d=s*c,a+=(o-d)/2,o=d))),(r.complete||r.toDataURL)&&(Lu(e,i),e.globalAlpha=(l=i.opacity)!=null?l:1,e.imageSmoothingEnabled=i.smooth!==!1,e.drawImage(r,a,u,o,s))})}var Jq={type:"image",tag:"image",nested:!1,attr:Yq,bound:Xq,draw:Kq,pick:Hg(),isect:Pi,get:C2,xOffset:Vg,yOffset:Yg},Qq=S2("line",mq,Mq);function Zq(e,t){var n=t.scaleX||1,i=t.scaleY||1;(n!==1||i!==1)&&e("vector-effect","non-scaling-stroke"),e("transform",kq(t)),e("d",t.path)}function sh(e,t){var n=t.path;if(n==null)return!0;var i=t.x||0,r=t.y||0,o=t.scaleX||1,s=t.scaleY||1,a=(t.angle||0)*Qo,u=t.pathCache;(!u||u.path!==n)&&((t.pathCache=u=Nu(n)).path=n),a&&e.rotate&&e.translate?(e.translate(i,r),e.rotate(a),Vc(e,u,0,0,o,s),e.rotate(-a),e.translate(-i,-r)):Vc(e,u,i,r,o,s)}function eW(e,t){return sh(Tf(e,t.angle),t)?e.set(0,0,0,0):bo(e,t,!0)}var tW={type:"path",tag:"path",nested:!1,attr:Zq,bound:eW,draw:v2(sh),pick:E2(sh),isect:y2(sh)};function nW(e,t){e("d",dl(null,t))}function iW(e,t){var n,i;return bo(e.set(n=t.x||0,i=t.y||0,n+t.width||0,i+t.height||0),t)}function cC(e,t){e.beginPath(),dl(e,t)}var rW={type:"rect",tag:"path",nested:!1,attr:nW,bound:iW,draw:v2(cC),pick:E2(cC),isect:wM};function oW(e,t){e("transform",$M(t)),e("x2",t.x2!=null?t.x2-(t.x||0):0),e("y2",t.y2!=null?t.y2-(t.y||0):0)}function sW(e,t){var n,i;return bo(e.set(n=t.x||0,i=t.y||0,t.x2!=null?t.x2:n,t.y2!=null?t.y2:i),t)}function DM(e,t,n){var i,r,o,s;return t.stroke&&Pu(e,t,n)?(i=t.x||0,r=t.y||0,o=t.x2!=null?t.x2:i,s=t.y2!=null?t.y2:r,e.beginPath(),e.moveTo(i,r),e.lineTo(o,s),!0):!1}function aW(e,t,n){zi(t,i=>{if(!(n&&!n.intersects(i.bounds))){var r=i.opacity==null?1:i.opacity;r&&DM(e,i,r)&&(Lu(e,i),e.stroke())}})}function uW(e,t,n,i){return e.isPointInStroke?DM(e,t,1)&&e.isPointInStroke(n,i):!1}var lW={type:"rule",tag:"line",nested:!1,attr:oW,bound:sW,draw:aW,pick:Hg(uW),isect:AM},cW=A2("shape",yq),fW=A2("symbol",bq,b2);const fC=jP();var Jn={height:_r,measureWidth:F2,estimateWidth:Wh,width:Wh,canvas:TM};TM(!0);function TM(e){Jn.width=e&&Yo?F2:Wh}function Wh(e,t){return MM(es(e,t),_r(e))}function MM(e,t){return~~(.8*e.length*t)}function F2(e,t){return _r(e)<=0||!(t=es(e,t))?0:OM(t,Xg(e))}function OM(e,t){const n=`(${t}) ${e}`;let i=fC.get(n);return i===void 0&&(Yo.font=t,i=Yo.measureText(e).width,fC.set(n,i)),i}function _r(e){return e.fontSize!=null?+e.fontSize||0:11}function Zo(e){return e.lineHeight!=null?e.lineHeight:_r(e)+2}function dW(e){return Z(e)?e.length>1?e:e[0]:e}function Of(e){return dW(e.lineBreak&&e.text&&!Z(e.text)?e.text.split(e.lineBreak):e.text)}function k2(e){const t=Of(e);return(Z(t)?t.length-1:0)*Zo(e)}function es(e,t){const n=t==null?"":(t+"").trim();return e.limit>0&&n.length?pW(e,n):n}function hW(e){if(Jn.width===F2){const t=Xg(e);return n=>OM(n,t)}else if(Jn.width===Wh){const t=_r(e);return n=>MM(n,t)}else return t=>Jn.width(e,t)}function pW(e,t){var n=+e.limit,i=hW(e);if(i(t)<n)return t;var r=e.ellipsis||"…",o=e.dir==="rtl",s=0,a=t.length,u;if(n-=i(r),o){for(;s<a;)u=s+a>>>1,i(t.slice(u))>n?s=u+1:a=u;return r+t.slice(s)}else{for(;s<a;)u=1+(s+a>>>1),i(t.slice(0,u))<n?s=u:a=u-1;return t.slice(0,s)+r}}function Rf(e,t){var n=e.font;return(t&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function Xg(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+_r(e)+"px "+Rf(e,t)}function D2(e){var t=e.baseline,n=_r(e);return Math.round(t==="top"?.79*n:t==="middle"?.3*n:t==="bottom"?-.21*n:t==="line-top"?.29*n+.5*Zo(e):t==="line-bottom"?.29*n-.5*Zo(e):0)}const gW={left:"start",center:"middle",right:"end"},Sc=new gt;function Kg(e){var t=e.x||0,n=e.y||0,i=e.radius||0,r;return i&&(r=(e.theta||0)-Us,t+=i*Math.cos(r),n+=i*Math.sin(r)),Sc.x1=t,Sc.y1=n,Sc}function mW(e,t){var n=t.dx||0,i=(t.dy||0)+D2(t),r=Kg(t),o=r.x1,s=r.y1,a=t.angle||0,u;e("text-anchor",gW[t.align]||"start"),a?(u=Js(o,s)+" "+w2(a),(n||i)&&(u+=" "+Js(n,i))):u=Js(o+n,s+i),e("transform",u)}function T2(e,t,n){var i=Jn.height(t),r=t.align,o=Kg(t),s=o.x1,a=o.y1,u=t.dx||0,l=(t.dy||0)+D2(t)-Math.round(.8*i),c=Of(t),f;if(Z(c)?(i+=Zo(t)*(c.length-1),f=c.reduce((d,h)=>Math.max(d,Jn.width(t,h)),0)):f=Jn.width(t,c),r==="center"?u-=f/2:r==="right"&&(u-=f),e.set(u+=s,l+=a,u+f,l+i),t.angle&&!n)e.rotate(t.angle*Qo,s,a);else if(n===2)return e.rotatedPoints(t.angle*Qo,s,a);return e}function yW(e,t,n){zi(t,i=>{var r=i.opacity==null?1:i.opacity,o,s,a,u,l,c,f;if(!(n&&!n.intersects(i.bounds)||r===0||i.fontSize<=0||i.text==null||i.text.length===0)){if(e.font=Xg(i),e.textAlign=i.align||"left",o=Kg(i),s=o.x1,a=o.y1,i.angle&&(e.save(),e.translate(s,a),e.rotate(i.angle*Qo),s=a=0),s+=i.dx||0,a+=(i.dy||0)+D2(i),c=Of(i),Lu(e,i),Z(c))for(l=Zo(i),u=0;u<c.length;++u)f=es(i,c[u]),i.fill&&jh(e,i,r)&&e.fillText(f,s,a),i.stroke&&Pu(e,i,r)&&e.strokeText(f,s,a),a+=l;else f=es(i,c),i.fill&&jh(e,i,r)&&e.fillText(f,s,a),i.stroke&&Pu(e,i,r)&&e.strokeText(f,s,a);i.angle&&e.restore()}})}function bW(e,t,n,i,r,o){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var s=Kg(t),a=s.x1,u=s.y1,l=T2(Sc,t,1),c=-t.angle*Qo,f=Math.cos(c),d=Math.sin(c),h=f*r-d*o+(a-f*a+d*u),p=d*r+f*o+(u-d*a-f*u);return l.contains(h,p)}function xW(e,t){const n=T2(Sc,e,2);return lu(t,n[0],n[1],n[2],n[3])||lu(t,n[0],n[1],n[4],n[5])||lu(t,n[4],n[5],n[6],n[7])||lu(t,n[2],n[3],n[6],n[7])}var vW={type:"text",tag:"text",nested:!1,attr:mW,bound:T2,draw:yW,pick:Hg(bW),isect:xW},EW=S2("trail",xq,Oq),ni={arc:Dq,area:Rq,group:Vq,image:Jq,line:Qq,path:tW,rect:rW,rule:lW,shape:cW,symbol:fW,text:vW,trail:EW};function Iy(e,t,n){var i=ni[e.mark.marktype],r=t||i.bound;return i.nested&&(e=e.mark),r(e.bounds||(e.bounds=new gt),e,n)}var dC={mark:null};function RM(e,t,n){var i=ni[e.marktype],r=i.bound,o=e.items,s=o&&o.length,a,u,l,c;if(i.nested)return s?l=o[0]:(dC.mark=e,l=dC),c=Iy(l,r,n),t=t&&t.union(c)||c,t;if(t=t||e.bounds&&e.bounds.clear()||new gt,s)for(a=0,u=o.length;a<u;++a)t.union(Iy(o[a],r,n));return e.bounds=t}const wW=["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 NM(e,t){return JSON.stringify(e,wW,t)}function LM(e){const t=typeof e=="string"?JSON.parse(e):e;return PM(t)}function PM(e){var t=e.marktype,n=e.items,i,r,o;if(n)for(r=0,o=n.length;r<o;++r)i=t?"mark":"group",n[r][i]=e,n[r].zindex&&(n[r][i].zdirty=!0),(t||i)==="group"&&PM(n[r]);return t&&RM(e),e}class IM{constructor(t){arguments.length?this.root=LM(t):(this.root=hC({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Wg(this.root)])}toJSON(t){return NM(this.root,t||0)}mark(t,n,i){n=n||this.root.items[0];const r=hC(t,n);return n.items[i]=r,r.zindex&&(r.group.zdirty=!0),r}}function hC(e,t){const n={bounds:new gt,clip:!!e.clip,group:t,interactive:e.interactive!==!1,items:[],marktype:e.marktype,name:e.name||void 0,role:e.role||void 0,zindex:e.zindex||0};return e.aria!=null&&(n.aria=e.aria),e.description&&(n.description=e.description),n}function Po(e,t,n){return!e&&typeof document<"u"&&document.createElement&&(e=document),e?n?e.createElementNS(n,t):e.createElement(t):null}function M2(e,t){t=t.toLowerCase();for(var n=e.childNodes,i=0,r=n.length;i<r;++i)if(n[i].tagName.toLowerCase()===t)return n[i]}function yt(e,t,n,i){var r=e.childNodes[t],o;return(!r||r.tagName.toLowerCase()!==n.toLowerCase())&&(o=r||null,r=Po(e.ownerDocument,n,i),e.insertBefore(r,o)),r}function ai(e,t){for(var n=e.childNodes,i=n.length;i>t;)e.removeChild(n[--i]);return e}function zM(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function Jg(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}function AW(e,t,n,i){var r=e&&e.mark,o,s;if(r&&(o=ni[r.marktype]).tip){for(s=Jg(t,n),s[0]-=i[0],s[1]-=i[1];e=e.mark.group;)s[0]-=e.x||0,s[1]-=e.y||0;e=o.tip(r.items,s)}return e}let O2=class{constructor(t,n){this._active=null,this._handlers={},this._loader=t||vg(),this._tooltip=n||SW}initialize(t,n,i){return this._el=t,this._obj=i||null,this.origin(n)}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,n,i){for(let r=t?t.length:0;--r>=0;)if(t[r].type===n&&(!i||t[r].handler===i))return r;return-1}handlers(t){const n=this._handlers,i=[];if(t)i.push(...n[this.eventName(t)]);else for(const r in n)i.push(...n[r]);return i}eventName(t){const n=t.indexOf(".");return n<0?t:t.slice(0,n)}handleHref(t,n,i){this._loader.sanitize(i,{context:"href"}).then(r=>{const o=new MouseEvent(t.type,t),s=Po(null,"a");for(const a in r)s.setAttribute(a,r[a]);s.dispatchEvent(o)}).catch(()=>{})}handleTooltip(t,n,i){if(n&&n.tooltip!=null){n=AW(n,t,this.canvas(),this._origin);const r=i&&n&&n.tooltip||null;this._tooltip.call(this._obj,this,t,n,r)}}getItemBoundingClientRect(t){const n=this.canvas();if(!n)return;const i=n.getBoundingClientRect(),r=this._origin,o=t.bounds,s=o.width(),a=o.height();let u=o.x1+r[0]+i.left,l=o.y1+r[1]+i.top;for(;t.mark&&(t=t.mark.group);)u+=t.x||0,l+=t.y||0;return{x:u,y:l,width:s,height:a,left:u,top:l,right:u+s,bottom:l+a}}};function SW(e,t,n,i){e.element().setAttribute("title",i||"")}class Nf{constructor(t){this._el=null,this._bgcolor=null,this._loader=new EM(t)}initialize(t,n,i,r,o){return this._el=t,this.resize(n,i,r,o)}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,n,i,r){return this._width=t,this._height=n,this._origin=i||[0,0],this._scale=r||1,this}dirty(){}render(t,n){const i=this;return i._call=function(){i._render(t,n)},i._call(),i._call=null,i}_render(){}renderAsync(t,n){const i=this.render(t,n);return this._ready?this._ready.then(()=>i):Promise.resolve(i)}_load(t,n){var i=this,r=i._loader[t](n);if(!i._ready){const o=i._call;i._ready=i._loader.ready().then(s=>{s&&o(),i._ready=null})}return r}sanitizeURL(t){return this._load("sanitizeURL",t)}loadImage(t){return this._load("loadImage",t)}}const CW="keydown",$W="keypress",_W="keyup",BM="dragenter",ah="dragleave",UM="dragover",zy="pointerdown",FW="pointerup",Gh="pointermove",uh="pointerout",jM="pointerover",By="mousedown",kW="mouseup",qM="mousemove",Hh="mouseout",WM="mouseover",Vh="click",DW="dblclick",TW="wheel",GM="mousewheel",Yh="touchstart",Xh="touchmove",Kh="touchend",MW=[CW,$W,_W,BM,ah,UM,zy,FW,Gh,uh,jM,By,kW,qM,Hh,WM,Vh,DW,TW,GM,Yh,Xh,Kh],Uy=Gh,Cc=Hh,jy=Vh;class Lf extends O2{constructor(t,n){super(t,n),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=MW,this.pointermove=gC([Gh,qM],[jM,WM],[uh,Hh]),this.dragover=gC([UM],[BM],[ah]),this.pointerout=mC([uh,Hh]),this.dragleave=mC([ah])}initialize(t,n,i){return this._canvas=t&&M2(t,"canvas"),[Vh,By,zy,Gh,uh,ah].forEach(r=>pC(this,r)),super.initialize(t,n,i)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(t){this.fire(GM,t)}pointerdown(t){this._down=this._active,this.fire(zy,t)}mousedown(t){this._down=this._active,this.fire(By,t)}click(t){this._down===this._active&&(this.fire(Vh,t),this._down=null)}touchstart(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Yh,t,!0)}touchmove(t){this.fire(Xh,t,!0)}touchend(t){this.fire(Kh,t,!0),this._touch=null}fire(t,n,i){const r=i?this._touch:this._active,o=this._handlers[t];if(n.vegaType=t,t===jy&&r&&r.href?this.handleHref(n,r,r.href):(t===Uy||t===Cc)&&this.handleTooltip(n,r,t!==Cc),o)for(let s=0,a=o.length;s<a;++s)o[s].handler.call(this._obj,n,r)}on(t,n){const i=this.eventName(t),r=this._handlers;return this._handlerIndex(r[i],t,n)<0&&(pC(this,t),(r[i]||(r[i]=[])).push({type:t,handler:n})),this}off(t,n){const i=this.eventName(t),r=this._handlers[i],o=this._handlerIndex(r,t,n);return o>=0&&r.splice(o,1),this}pickEvent(t){const n=Jg(t,this._canvas),i=this._origin;return this.pick(this._scene,n[0],n[1],n[0]-i[0],n[1]-i[1])}pick(t,n,i,r,o){const s=this.context();return ni[t.marktype].pick.call(this,s,t,n,i,r,o)}}const OW=e=>e===Yh||e===Xh||e===Kh?[Yh,Xh,Kh]:[e];function pC(e,t){OW(t).forEach(n=>RW(e,n))}function RW(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?i=>e[t](i):i=>e.fire(t,i)))}function lc(e,t,n){t.forEach(i=>e.fire(i,n))}function gC(e,t,n){return function(i){const r=this._active,o=this.pickEvent(i);o===r?lc(this,e,i):((!r||!r.exit)&&lc(this,n,i),this._active=o,lc(this,t,i),lc(this,e,i))}}function mC(e){return function(t){lc(this,e,t),this._active=null}}function NW(){return typeof window<"u"&&window.devicePixelRatio||1}function LW(e,t,n,i,r,o){const s=typeof HTMLElement<"u"&&e instanceof HTMLElement&&e.parentNode!=null,a=e.getContext("2d"),u=s?NW():r;e.width=t*u,e.height=n*u;for(const l in o)a[l]=o[l];return s&&u!==1&&(e.style.width=t+"px",e.style.height=n+"px"),a.pixelRatio=u,a.setTransform(u,0,0,u,u*i[0],u*i[1]),e}class Jh extends Nf{constructor(t){super(t),this._options={},this._redraw=!1,this._dirty=new gt,this._tempb=new gt}initialize(t,n,i,r,o,s){return this._options=s||{},this._canvas=this._options.externalContext?null:Vo(1,1,this._options.type),t&&this._canvas&&(ai(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(t,n,i,r,o)}resize(t,n,i,r){if(super.resize(t,n,i,r),this._canvas)LW(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const o=this._options.externalContext;o||L("CanvasRenderer is missing a valid canvas or context"),o.scale(this._scale,this._scale),o.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 n=this._tempb.clear().union(t.bounds);let i=t.mark.group;for(;i;)n.translate(i.x||0,i.y||0),i=i.mark.group;this._dirty.union(n)}_render(t,n){const i=this.context(),r=this._origin,o=this._width,s=this._height,a=this._dirty,u=PW(r,o,s);i.save();const l=this._redraw||a.empty()?(this._redraw=!1,u.expand(1)):IW(i,u.intersect(a),r);return this.clear(-r[0],-r[1],o,s),this.draw(i,t,l,n),i.restore(),a.clear(),this}draw(t,n,i,r){if(n.marktype!=="group"&&r!=null&&!r.includes(n.marktype))return;const o=ni[n.marktype];n.clip&&Nq(t,n),o.draw.call(this,t,n,i,r),n.clip&&t.restore()}clear(t,n,i,r){const o=this._options,s=this.context();o.type!=="pdf"&&!o.externalContext&&s.clearRect(t,n,i,r),this._bgcolor!=null&&(s.fillStyle=this._bgcolor,s.fillRect(t,n,i,r))}}const PW=(e,t,n)=>new gt().set(0,0,t,n).translate(-e[0],-e[1]);function IW(e,t,n){return t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio),t.translate(-(n[0]%1),-(n[1]%1)),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}class HM extends O2{constructor(t,n){super(t,n);const i=this;i._hrefHandler=jm(i,(r,o)=>{o&&o.href&&i.handleHref(r,o,o.href)}),i._tooltipHandler=jm(i,(r,o)=>{i.handleTooltip(r,o,r.type!==Cc)})}initialize(t,n,i){let r=this._svg;return r&&(r.removeEventListener(jy,this._hrefHandler),r.removeEventListener(Uy,this._tooltipHandler),r.removeEventListener(Cc,this._tooltipHandler)),this._svg=r=t&&M2(t,"svg"),r&&(r.addEventListener(jy,this._hrefHandler),r.addEventListener(Uy,this._tooltipHandler),r.addEventListener(Cc,this._tooltipHandler)),super.initialize(t,n,i)}canvas(){return this._svg}on(t,n){const i=this.eventName(t),r=this._handlers;if(this._handlerIndex(r[i],t,n)<0){const s={type:t,handler:n,listener:jm(this,n)};(r[i]||(r[i]=[])).push(s),this._svg&&this._svg.addEventListener(i,s.listener)}return this}off(t,n){const i=this.eventName(t),r=this._handlers[i],o=this._handlerIndex(r,t,n);return o>=0&&(this._svg&&this._svg.removeEventListener(i,r[o].listener),r.splice(o,1)),this}}const jm=(e,t)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i,n.vegaType=n.type,t.call(e._obj,n,i)},VM="aria-hidden",R2="aria-label",N2="role",L2="aria-roledescription",YM="graphics-object",P2="graphics-symbol",XM=(e,t,n)=>({[N2]:e,[L2]:t,[R2]:n||void 0}),zW=yr(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),yC={axis:{desc:"axis",caption:jW},legend:{desc:"legend",caption:qW},"title-text":{desc:"title",caption:e=>`Title text '${xC(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${xC(e)}'`}},bC={ariaRole:N2,ariaRoleDescription:L2,description:R2};function KM(e,t){const n=t.aria===!1;if(e(VM,n||void 0),n||t.description==null)for(const i in bC)e(bC[i],void 0);else{const i=t.mark.marktype;e(R2,t.description),e(N2,t.ariaRole||(i==="group"?YM:P2)),e(L2,t.ariaRoleDescription||`${i} mark`)}}function JM(e){return e.aria===!1?{[VM]:!0}:zW[e.role]?null:yC[e.role]?UW(e,yC[e.role]):BW(e)}function BW(e){const t=e.marktype,n=t==="group"||t==="text"||e.items.some(i=>i.description!=null&&i.aria!==!1);return XM(n?YM:P2,`${t} mark container`,e.description)}function UW(e,t){try{const n=e.items[0],i=t.caption||(()=>"");return XM(t.role||P2,t.desc,n.description||i(n))}catch{return null}}function xC(e){return se(e.text).join(" ")}function jW(e){const t=e.datum,n=e.orient,i=t.title?QM(e):null,r=e.context,o=r.scales[t.scale].value,s=r.dataflow.locale(),a=o.type;return`${n==="left"||n==="right"?"Y":"X"}-axis`+(i?` titled '${i}'`:"")+` for a ${Ru(a)?"discrete":a} scale with ${fM(s,o,e)}`}function qW(e){const t=e.datum,n=t.title?QM(e):null,i=`${t.type||""} legend`.trim(),r=t.scales,o=Object.keys(r),s=e.context,a=s.scales[r[o[0]]].value,u=s.dataflow.locale();return GW(i)+(n?` titled '${n}'`:"")+` for ${WW(o)} with ${fM(u,a,e)}`}function QM(e){try{return se($e(e.items).items[0].text).join(" ")}catch{return null}}function WW(e){return e=e.map(t=>t+(t==="fill"||t==="stroke"?" color":"")),e.length<2?e[0]:e.slice(0,-1).join(", ")+" and "+$e(e)}function GW(e){return e.length?e[0].toUpperCase()+e.slice(1):e}const ZM=e=>(e+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),HW=e=>ZM(e).replace(/"/g,"&quot;").replace(/\t/g,"&#x9;").replace(/\n/g,"&#xA;").replace(/\r/g,"&#xD;");function I2(){let e="",t="",n="";const i=[],r=()=>t=n="",o=u=>{t&&(e+=`${t}>${n}`,r()),i.push(u)},s=(u,l)=>(l!=null&&(t+=` ${u}="${HW(l)}"`),a),a={open(u){o(u),t="<"+u;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 d of c)for(const h in d)s(h,d[h]);return a},close(){const u=i.pop();return t?e+=t+(n?`>${n}</${u}>`:"/>"):e+=`</${u}>`,r(),a},attr:s,text:u=>(n+=ZM(u),a),toString:()=>e};return a}const e5=e=>t5(I2(),e)+"";function t5(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,i=n.length;for(let r=0;r<i;++r)e.attr(n[r].name,n[r].value)}if(t.hasChildNodes()){const n=t.childNodes;for(const i of n)i.nodeType===3?e.text(i.nodeValue):t5(e,i)}return e.close()}const Qh={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"},Zh={blend:"mix-blend-mode"},n5={fill:"none","stroke-miterlimit":10},zl=0,vC="http://www.w3.org/2000/xmlns/",mt=Xc.xmlns;class z2 extends Nf{constructor(t){super(t),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(t,n,i,r,o){return this._defs={},this._clearDefs(),t&&(this._svg=yt(t,0,"svg",mt),this._svg.setAttributeNS(vC,"xmlns",mt),this._svg.setAttributeNS(vC,"xmlns:xlink",Xc["xmlns:xlink"]),this._svg.setAttribute("version",Xc.version),this._svg.setAttribute("class","marks"),ai(t,1),this._root=yt(this._svg,zl,"g",mt),Io(this._root,n5),ai(this._svg,zl+1)),this.background(this._bgcolor),super.initialize(t,n,i,r,o)}background(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),super.background(...arguments)}resize(t,n,i,r){return super.resize(t,n,i,r),this._svg&&(Io(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,n=this._bgcolor;if(!t)return null;let i;n&&(t.removeAttribute("style"),i=yt(t,zl,"rect",mt),Io(i,{width:this._width,height:this._height,fill:n}));const r=e5(t);return n&&(t.removeChild(i),this._svg.style.setProperty("background-color",n)),r}_render(t,n){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,t,void 0,n),ai(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 n=++this._dirtyID;let i,r,o,s,a,u,l;for(a=0,u=t.length;a<u;++a)if(i=t[a],r=i.mark,r.marktype!==o&&(o=r.marktype,s=ni[o]),r.zdirty&&r.dirty!==n&&(this._dirtyAll=!1,EC(i,n),r.items.forEach(c=>{c.dirty=n})),!r.zdirty){if(i.exit){s.nested&&r.items.length?(l=r.items[0],l._svg&&this._update(s,l._svg,l)):i._svg&&(l=i._svg.parentNode,l&&l.removeChild(i._svg)),i._svg=null;continue}i=s.nested?r.items[0]:i,i._update!==n&&(!i._svg||!i._svg.ownerSVGElement?(this._dirtyAll=!1,EC(i,n)):this._update(s,i._svg,i),i._update=n)}return!this._dirtyAll}mark(t,n,i,r){if(!this.isDirty(n))return n._svg;const o=this._svg,s=n.marktype,a=ni[s],u=n.interactive===!1?"none":null,l=a.tag==="g",c=wC(n,t,i,"g",o);if(s!=="group"&&r!=null&&!r.includes(s))return ai(c,0),n._svg;c.setAttribute("class",zM(n));const f=JM(n);for(const g in f)cn(c,g,f[g]);l||cn(c,"pointer-events",u),cn(c,"clip-path",n.clip?m2(this,n,n.group):null);let d=null,h=0;const p=g=>{const m=this.isDirty(g),y=wC(g,c,d,a.tag,o);m&&(this._update(a,y,g),l&&XW(this,y,g,r)),d=y,++h};return a.nested?n.items.length&&p(n.items[0]):zi(n,p),ai(c,h),c}_update(t,n,i){Zr=n,Qt=n.__values__,KM($c,i),t.attr($c,i,this);const r=JW[t.type];r&&r.call(this,t,n,i),Zr&&this.style(Zr,i)}style(t,n){if(n!=null){for(const i in Qh){let r=i==="font"?Rf(n):n[i];if(r===Qt[i])continue;const o=Qh[i];r==null?t.removeAttribute(o):(h2(r)&&(r=hM(r,this._defs.gradient,i5())),t.setAttribute(o,r+"")),Qt[i]=r}for(const i in Zh)lh(t,Zh[i],n[i])}}defs(){const t=this._svg,n=this._defs;let i=n.el,r=0;for(const o in n.gradient)i||(n.el=i=yt(t,zl+1,"defs",mt)),r=VW(i,n.gradient[o],r);for(const o in n.clipping)i||(n.el=i=yt(t,zl+1,"defs",mt)),r=YW(i,n.clipping[o],r);i&&(r===0?(t.removeChild(i),n.el=null):ai(i,r))}_clearDefs(){const t=this._defs;t.gradient={},t.clipping={}}}function EC(e,t){for(;e&&e.dirty!==t;e=e.mark.group)if(e.dirty=t,e.mark&&e.mark.dirty!==t)e.mark.dirty=t;else return}function VW(e,t,n){let i,r,o;if(t.gradient==="radial"){let s=yt(e,n++,"pattern",mt);Io(s,{id:Uh+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),s=yt(s,0,"rect",mt),Io(s,{width:1,height:1,fill:`url(${i5()}#${t.id})`}),e=yt(e,n++,"radialGradient",mt),Io(e,{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else e=yt(e,n++,"linearGradient",mt),Io(e,{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(i=0,r=t.stops.length;i<r;++i)o=yt(e,i,"stop",mt),o.setAttribute("offset",t.stops[i].offset),o.setAttribute("stop-color",t.stops[i].color);return ai(e,i),n}function YW(e,t,n){let i;return e=yt(e,n,"clipPath",mt),e.setAttribute("id",t.id),t.path?(i=yt(e,0,"path",mt),i.setAttribute("d",t.path)):(i=yt(e,0,"rect",mt),Io(i,{x:0,y:0,width:t.width,height:t.height})),ai(e,1),n+1}function XW(e,t,n,i){t=t.lastChild.previousSibling;let r,o=0;zi(n,s=>{r=e.mark(t,s,r,i),++o}),ai(t,1+o)}function wC(e,t,n,i,r){let o=e._svg,s;if(!o&&(s=t.ownerDocument,o=Po(s,i,mt),e._svg=o,e.mark&&(o.__data__=e,o.__values__={fill:"default"},i==="g"))){const a=Po(s,"path",mt);o.appendChild(a),a.__data__=e;const u=Po(s,"g",mt);o.appendChild(u),u.__data__=e;const l=Po(s,"path",mt);o.appendChild(l),l.__data__=e,l.__values__={fill:"default"}}return(o.ownerSVGElement!==r||KW(o,n))&&t.insertBefore(o,n?n.nextSibling:t.firstChild),o}function KW(e,t){return e.parentNode&&e.parentNode.childNodes.length>1&&e.previousSibling!=t}let Zr=null,Qt=null;const JW={group(e,t,n){const i=Zr=t.childNodes[2];Qt=i.__values__,e.foreground($c,n,this),Qt=t.__values__,Zr=t.childNodes[1],e.content($c,n,this);const r=Zr=t.childNodes[0];e.background($c,n,this);const o=n.mark.interactive===!1?"none":null;if(o!==Qt.events&&(cn(i,"pointer-events",o),cn(r,"pointer-events",o),Qt.events=o),n.strokeForeground&&n.stroke){const s=n.fill;cn(i,"display",null),this.style(r,n),cn(r,"stroke",null),s&&(n.fill=null),Qt=i.__values__,this.style(i,n),s&&(n.fill=s),Zr=null}else cn(i,"display","none")},image(e,t,n){n.smooth===!1?(lh(t,"image-rendering","optimizeSpeed"),lh(t,"image-rendering","pixelated")):lh(t,"image-rendering",null)},text(e,t,n){const i=Of(n);let r,o,s,a;Z(i)?(o=i.map(u=>es(n,u)),r=o.join(`
7
- `),r!==Qt.text&&(ai(t,0),s=t.ownerDocument,a=Zo(n),o.forEach((u,l)=>{const c=Po(s,"tspan",mt);c.__data__=n,c.textContent=u,l&&(c.setAttribute("x",0),c.setAttribute("dy",a)),t.appendChild(c)}),Qt.text=r)):(o=es(n,i),o!==Qt.text&&(t.textContent=o,Qt.text=o)),cn(t,"font-family",Rf(n)),cn(t,"font-size",_r(n)+"px"),cn(t,"font-style",n.fontStyle),cn(t,"font-variant",n.fontVariant),cn(t,"font-weight",n.fontWeight)}};function $c(e,t,n){t!==Qt[e]&&(n?QW(Zr,e,t,n):cn(Zr,e,t),Qt[e]=t)}function lh(e,t,n){n!==Qt[t]&&(n==null?e.style.removeProperty(t):e.style.setProperty(t,n+""),Qt[t]=n)}function Io(e,t){for(const n in t)cn(e,n,t[n])}function cn(e,t,n){n!=null?e.setAttribute(t,n):e.removeAttribute(t)}function QW(e,t,n,i){n!=null?e.setAttributeNS(i,t,n):e.removeAttributeNS(i,t)}function i5(){let e;return typeof window>"u"?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}class r5 extends Nf{constructor(t){super(t),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(t){const n=I2();n.open("svg",ye({},Xc,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const i=this._bgcolor;return i&&i!=="transparent"&&i!=="none"&&n.open("rect",{width:this._width,height:this._height,fill:i}).close(),n.open("g",n5,{transform:"translate("+this._origin+")"}),this.mark(n,t),n.close(),this.defs(n),this._text=n.close()+"",this}mark(t,n){const i=ni[n.marktype],r=i.tag,o=[KM,i.attr];t.open("g",{class:zM(n),"clip-path":n.clip?m2(this,n,n.group):null},JM(n),{"pointer-events":r!=="g"&&n.interactive===!1?"none":null});const s=a=>{const u=this.href(a);if(u&&t.open("a",u),t.open(r,this.attr(n,a,o,r!=="g"?r:null)),r==="text"){const l=Of(a);if(Z(l)){const c={x:0,dy:Zo(a)};for(let f=0;f<l.length;++f)t.open("tspan",f?c:null).text(es(a,l[f])).close()}else t.text(es(a,l))}else if(r==="g"){const l=a.strokeForeground,c=a.fill,f=a.stroke;l&&f&&(a.stroke=null),t.open("path",this.attr(n,a,i.background,"bgrect")).close(),t.open("g",this.attr(n,a,i.content)),zi(a,d=>this.mark(t,d)),t.close(),l&&f?(c&&(a.fill=null),a.stroke=f,t.open("path",this.attr(n,a,i.foreground,"bgrect")).close(),c&&(a.fill=c)):t.open("path",this.attr(n,a,i.foreground,"bgfore")).close()}t.close(),u&&t.close()};return i.nested?n.items&&n.items.length&&s(n.items[0]):zi(n,s),t.close()}href(t){const n=t.href;let i;if(n){if(i=this._hrefs&&this._hrefs[n])return i;this.sanitizeURL(n).then(r=>{r["xlink:href"]=r.href,r.href=null,(this._hrefs||(this._hrefs={}))[n]=r})}return null}attr(t,n,i,r){const o={},s=(a,u,l,c)=>{o[c||a]=u};return Array.isArray(i)?i.forEach(a=>a(s,n,this)):i(s,n,this),r&&ZW(o,n,t,r,this._defs),o}defs(t){const n=this._defs.gradient,i=this._defs.clipping;if(Object.keys(n).length+Object.keys(i).length!==0){t.open("defs");for(const o in n){const s=n[o],a=s.stops;s.gradient==="radial"?(t.open("pattern",{id:Uh+o,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+o+")"}).close(),t.close(),t.open("radialGradient",{id:o,fx:s.x1,fy:s.y1,fr:s.r1,cx:s.x2,cy:s.y2,r:s.r2})):t.open("linearGradient",{id:o,x1:s.x1,x2:s.x2,y1:s.y1,y2:s.y2});for(let u=0;u<a.length;++u)t.open("stop",{offset:a[u].offset,"stop-color":a[u].color}).close();t.close()}for(const o in i){const s=i[o];t.open("clipPath",{id:o}),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 ZW(e,t,n,i,r){let o;if(t==null||(i==="bgrect"&&n.interactive===!1&&(e["pointer-events"]="none"),i==="bgfore"&&(n.interactive===!1&&(e["pointer-events"]="none"),e.display="none",t.fill!==null)))return e;i==="image"&&t.smooth===!1&&(o=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),i==="text"&&(e["font-family"]=Rf(t),e["font-size"]=_r(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const s in Qh){let a=t[s];const u=Qh[s];a==="transparent"&&(u==="fill"||u==="stroke")||a!=null&&(h2(a)&&(a=hM(a,r.gradient,"")),e[u]=a)}for(const s in Zh){const a=t[s];a!=null&&(o=o||[],o.push(`${Zh[s]}: ${a};`))}return o&&(e.style=o.join(" ")),e}const $i={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};function eG(e){$i.svgMarkTypes=e.svgMarkTypes??["text"],$i.svgOnTop=e.svgOnTop??!0,$i.debug=e.debug??!1}class qy extends Nf{constructor(t){super(t),this._svgRenderer=new z2(t),this._canvasRenderer=new Jh(t)}initialize(t,n,i,r,o){this._root_el=yt(t,0,"div");const s=yt(this._root_el,0,"div"),a=yt(this._root_el,1,"div");return this._root_el.style.position="relative",$i.debug||(s.style.height="100%",a.style.position="absolute",a.style.top="0",a.style.left="0",a.style.height="100%",a.style.width="100%"),this._svgEl=$i.svgOnTop?a:s,this._canvasEl=$i.svgOnTop?s:a,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,n,i,r,o),this._svgRenderer.initialize(this._svgEl,n,i,r,o),super.initialize(t,n,i,r,o)}dirty(t){return $i.svgMarkTypes.includes(t.mark.marktype)?this._svgRenderer.dirty(t):this._canvasRenderer.dirty(t),this}_render(t,n){const r=(n??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter(o=>!$i.svgMarkTypes.includes(o));this._svgRenderer.render(t,$i.svgMarkTypes),this._canvasRenderer.render(t,r)}resize(t,n,i,r){return super.resize(t,n,i,r),this._svgRenderer.resize(t,n,i,r),this._canvasRenderer.resize(t,n,i,r),this}background(t){return $i.svgOnTop?this._canvasRenderer.background(t):this._svgRenderer.background(t),this}}class o5 extends Lf{constructor(t,n){super(t,n)}initialize(t,n,i){const r=yt(yt(t,0,"div"),$i.svgOnTop?0:1,"div");return super.initialize(r,n,i)}}const s5="canvas",a5="hybrid",u5="png",l5="svg",c5="none",zo={Canvas:s5,PNG:u5,SVG:l5,Hybrid:a5,None:c5},la={};la[s5]=la[u5]={renderer:Jh,headless:Jh,handler:Lf};la[l5]={renderer:z2,headless:r5,handler:HM};la[a5]={renderer:qy,headless:qy,handler:o5};la[c5]={};function Qg(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(la[e]=t,this):la[e]}function f5(e,t,n){const i=[],r=new gt().union(t),o=e.marktype;return o?d5(e,r,n,i):o==="group"?h5(e,r,n,i):L("Intersect scene must be mark node or group item.")}function d5(e,t,n,i){if(tG(e,t,n)){const r=e.items,o=e.marktype,s=r.length;let a=0;if(o==="group")for(;a<s;++a)h5(r[a],t,n,i);else for(const u=ni[o].isect;a<s;++a){const l=r[a];p5(l,t,u)&&i.push(l)}}return i}function tG(e,t,n){return e.bounds&&t.intersects(e.bounds)&&(e.marktype==="group"||e.interactive!==!1&&(!n||n(e)))}function h5(e,t,n,i){n&&n(e.mark)&&p5(e,t,ni.group.isect)&&i.push(e);const r=e.items,o=r&&r.length;if(o){const s=e.x||0,a=e.y||0;t.translate(-s,-a);for(let u=0;u<o;++u)d5(r[u],t,n,i);t.translate(s,a)}return i}function p5(e,t,n){const i=e.bounds;return t.encloses(i)||t.intersects(i)&&n(e,t)}const qm=new gt;function g5(e){const t=e.clip;if(be(t))t(Tf(qm.clear()));else if(t)qm.set(0,0,e.group.width,e.group.height);else return;e.bounds.intersect(qm)}const nG=1e-9;function B2(e,t,n){return e===t?!0:n==="path"?m5(e,t):e instanceof Date&&t instanceof Date?+e==+t:sa(e)&&sa(t)?Math.abs(e-t)<=nG:!e||!t||!me(e)&&!me(t)?e==t:iG(e,t)}function m5(e,t){return B2(Nu(e),Nu(t))}function iG(e,t){var n=Object.keys(e),i=Object.keys(t),r,o;if(n.length!==i.length)return!1;for(n.sort(),i.sort(),o=n.length-1;o>=0;o--)if(n[o]!=i[o])return!1;for(o=n.length-1;o>=0;o--)if(r=n[o],!B2(e[r],t[r],r))return!1;return typeof e==typeof t}function rG(){vM(),Fj()}const Iu="top",ki="left",Di="right",ts="bottom",oG="top-left",sG="top-right",aG="bottom-left",uG="bottom-right",U2="start",Wy="middle",fn="end",lG="x",cG="y",Zg="group",j2="axis",q2="title",fG="frame",dG="scope",W2="legend",y5="row-header",b5="row-footer",x5="row-title",v5="column-header",E5="column-footer",w5="column-title",hG="padding",pG="symbol",A5="fit",S5="fit-x",C5="fit-y",gG="pad",G2="none",Ed="all",Gy="each",H2="flush",Bo="column",Uo="row";function $5(e){M.call(this,null,e)}G($5,M,{transform(e,t){const n=t.dataflow,i=e.mark,r=i.marktype,o=ni[r],s=o.bound;let a=i.bounds,u;if(o.nested)i.items.length&&n.dirty(i.items[0]),a=wd(i,s),i.items.forEach(l=>{l.bounds.clear().union(a)});else if(r===Zg||e.modified())switch(t.visit(t.MOD,l=>n.dirty(l)),a.clear(),i.items.forEach(l=>a.union(wd(l,s))),i.role){case j2:case W2:case q2:t.reflow()}else u=t.changed(t.REM),t.visit(t.ADD,l=>{a.union(wd(l,s))}),t.visit(t.MOD,l=>{u=u||a.alignsWith(l.bounds),n.dirty(l),a.union(wd(l,s))}),u&&(a.clear(),i.items.forEach(l=>a.union(l.bounds)));return g5(i),t.modifies("bounds")}});function wd(e,t,n){return t(e.bounds.clear(),e,n)}const AC=":vega_identifier:";function V2(e){M.call(this,0,e)}V2.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]};G(V2,M,{transform(e,t){const n=mG(t.dataflow),i=e.as;let r=n.value;return t.visit(t.ADD,o=>o[i]=o[i]||++r),n.set(this.value=r),t}});function mG(e){return e._signals[AC]||(e._signals[AC]=e.add(0))}function _5(e){M.call(this,null,e)}G(_5,M,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,yG(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const i=n.marktype===Zg?Wg:qg;return t.visit(t.ADD,r=>i.call(r,n)),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});function yG(e){const t=e.groups,n=e.parent;return t&&t.size===1?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}function F5(e){M.call(this,null,e)}const SC={parity:e=>e.filter((t,n)=>n%2?t.opacity=0:1),greedy:(e,t)=>{let n;return e.filter((i,r)=>!r||!k5(n.bounds,i.bounds,t)?(n=i,1):i.opacity=0)}},k5=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),CC=(e,t)=>{for(var n=1,i=e.length,r=e[0].bounds,o;n<i;r=o,++n)if(k5(r,o=e[n].bounds,t))return!0},bG=e=>{const t=e.bounds;return t.width()>1&&t.height()>1},xG=(e,t,n)=>{var i=e.range(),r=new gt;return t===Iu||t===ts?r.set(i[0],-1/0,i[1],1/0):r.set(-1/0,i[0],1/0,i[1]),r.expand(n||1),o=>r.encloses(o.bounds)},$C=e=>(e.forEach(t=>t.opacity=1),e),_C=(e,t)=>e.reflow(t.modified()).modifies("opacity");G(F5,M,{transform(e,t){const n=SC[e.method]||SC.parity,i=e.separation||0;let r=t.materialize(t.SOURCE).source,o,s;if(!r||!r.length)return;if(!e.method)return e.modified("method")&&($C(r),t=_C(t,e)),t;if(r=r.filter(bG),!r.length)return;if(e.sort&&(r=r.slice().sort(e.sort)),o=$C(r),t=_C(t,e),o.length>=3&&CC(o,i)){do o=n(o,i);while(o.length>=3&&CC(o,i));o.length<3&&!$e(r).opacity&&(o.length>1&&($e(o).opacity=0),$e(r).opacity=1)}e.boundScale&&e.boundTolerance>=0&&(s=xG(e.boundScale,e.boundOrient,+e.boundTolerance),r.forEach(u=>{s(u)||(u.opacity=0)}));const a=o[0].mark.bounds.clear();return r.forEach(u=>{u.opacity&&a.union(u.bounds)}),t}});function D5(e){M.call(this,null,e)}G(D5,M,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,i=>n.dirty(i)),t.fields&&t.fields.zindex){const i=t.source&&t.source[0];i&&(i.mark.zdirty=!0)}}});const Jt=new gt;function cu(e,t,n){return e[t]===n?0:(e[t]=n,1)}function vG(e){var t=e.items[0].orient;return t===ki||t===Di}function EG(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}function wG(e,t,n,i){var r=t.items[0],o=r.datum,s=r.translate!=null?r.translate:.5,a=r.orient,u=EG(o),l=r.range,c=r.offset,f=r.position,d=r.minExtent,h=r.maxExtent,p=o.title&&r.items[u[2]].items[0],g=r.titlePadding,m=r.bounds,y=p&&k2(p),b=0,x=0,v,w;switch(Jt.clear().union(m),m.clear(),(v=u[0])>-1&&m.union(r.items[v].bounds),(v=u[1])>-1&&m.union(r.items[v].bounds),a){case Iu:b=f||0,x=-c,w=Math.max(d,Math.min(h,-m.y1)),m.add(0,-w).add(l,0),p&&Ad(e,p,w,g,y,0,-1,m);break;case ki:b=-c,x=f||0,w=Math.max(d,Math.min(h,-m.x1)),m.add(-w,0).add(0,l),p&&Ad(e,p,w,g,y,1,-1,m);break;case Di:b=n+c,x=f||0,w=Math.max(d,Math.min(h,m.x2)),m.add(0,0).add(w,l),p&&Ad(e,p,w,g,y,1,1,m);break;case ts:b=f||0,x=i+c,w=Math.max(d,Math.min(h,m.y2)),m.add(0,0).add(l,w),p&&Ad(e,p,w,g,0,0,1,m);break;default:b=r.x,x=r.y}return bo(m.translate(b,x),r),cu(r,"x",b+s)|cu(r,"y",x+s)&&(r.bounds=Jt,e.dirty(r),r.bounds=m,e.dirty(r)),r.mark.bounds.clear().union(m)}function Ad(e,t,n,i,r,o,s,a){const u=t.bounds;if(t.auto){const l=s*(n+r+i);let c=0,f=0;e.dirty(t),o?c=(t.x||0)-(t.x=l):f=(t.y||0)-(t.y=l),t.mark.bounds.clear().union(u.translate(-c,-f)),e.dirty(t)}a.union(u)}const FC=(e,t)=>Math.floor(Math.min(e,t)),kC=(e,t)=>Math.ceil(Math.max(e,t));function AG(e){var t=e.items,n=t.length,i=0,r,o;const s={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;i<n;++i)if(r=t[i],o=r.items,r.marktype===Zg)switch(r.role){case j2:case W2:case q2:break;case y5:s.rowheaders.push(...o);break;case b5:s.rowfooters.push(...o);break;case v5:s.colheaders.push(...o);break;case E5:s.colfooters.push(...o);break;case x5:s.rowtitle=o[0];break;case w5:s.coltitle=o[0];break;default:s.marks.push(...o)}return s}function SG(e){return new gt().set(0,0,e.width||0,e.height||0)}function CG(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function Je(e,t,n){const i=me(e)?e[t]:e;return i??(n!==void 0?n:0)}function DC(e){return e<0?Math.ceil(-e):0}function T5(e,t,n){var i=!n.nodirty,r=n.bounds===H2?SG:CG,o=Jt.set(0,0,0,0),s=Je(n.align,Bo),a=Je(n.align,Uo),u=Je(n.padding,Bo),l=Je(n.padding,Uo),c=n.columns||t.length,f=c<=0?1:Math.ceil(t.length/c),d=t.length,h=Array(d),p=Array(c),g=0,m=Array(d),y=Array(f),b=0,x=Array(d),v=Array(d),w=Array(d),A,E,S,C,_,k,N,T,F,$,D;for(E=0;E<c;++E)p[E]=0;for(E=0;E<f;++E)y[E]=0;for(E=0;E<d;++E)k=t[E],_=w[E]=r(k),k.x=k.x||0,x[E]=0,k.y=k.y||0,v[E]=0,S=E%c,C=~~(E/c),g=Math.max(g,N=Math.ceil(_.x2)),b=Math.max(b,T=Math.ceil(_.y2)),p[S]=Math.max(p[S],N),y[C]=Math.max(y[C],T),h[E]=u+DC(_.x1),m[E]=l+DC(_.y1),i&&e.dirty(t[E]);for(E=0;E<d;++E)E%c===0&&(h[E]=0),E<c&&(m[E]=0);if(s===Gy)for(S=1;S<c;++S){for(D=0,E=S;E<d;E+=c)D<h[E]&&(D=h[E]);for(E=S;E<d;E+=c)h[E]=D+p[S-1]}else if(s===Ed){for(D=0,E=0;E<d;++E)E%c&&D<h[E]&&(D=h[E]);for(E=0;E<d;++E)E%c&&(h[E]=D+g)}else for(s=!1,S=1;S<c;++S)for(E=S;E<d;E+=c)h[E]+=p[S-1];if(a===Gy)for(C=1;C<f;++C){for(D=0,E=C*c,A=E+c;E<A;++E)D<m[E]&&(D=m[E]);for(E=C*c;E<A;++E)m[E]=D+y[C-1]}else if(a===Ed){for(D=0,E=c;E<d;++E)D<m[E]&&(D=m[E]);for(E=c;E<d;++E)m[E]=D+b}else for(a=!1,C=1;C<f;++C)for(E=C*c,A=E+c;E<A;++E)m[E]+=y[C-1];for(F=0,E=0;E<d;++E)F=h[E]+(E%c?F:0),x[E]+=F-t[E].x;for(S=0;S<c;++S)for($=0,E=S;E<d;E+=c)$+=m[E],v[E]+=$-t[E].y;if(s&&Je(n.center,Bo)&&f>1)for(E=0;E<d;++E)_=s===Ed?g:p[E%c],F=_-w[E].x2-t[E].x-x[E],F>0&&(x[E]+=F/2);if(a&&Je(n.center,Uo)&&c!==1)for(E=0;E<d;++E)_=a===Ed?b:y[~~(E/c)],$=_-w[E].y2-t[E].y-v[E],$>0&&(v[E]+=$/2);for(E=0;E<d;++E)o.union(w[E].translate(x[E],v[E]));switch(F=Je(n.anchor,lG),$=Je(n.anchor,cG),Je(n.anchor,Bo)){case fn:F-=o.width();break;case Wy:F-=o.width()/2}switch(Je(n.anchor,Uo)){case fn:$-=o.height();break;case Wy:$-=o.height()/2}for(F=Math.round(F),$=Math.round($),o.clear(),E=0;E<d;++E)t[E].mark.bounds.clear();for(E=0;E<d;++E)k=t[E],k.x+=x[E]+=F,k.y+=v[E]+=$,o.union(k.mark.bounds.union(k.bounds.translate(x[E],v[E]))),i&&e.dirty(k);return o}function $G(e,t,n){var i=AG(t),r=i.marks,o=n.bounds===H2?_G:FG,s=n.offset,a=n.columns||r.length,u=a<=0?1:Math.ceil(r.length/a),l=u*a,c,f,d,h,p,g,m;const y=T5(e,r,n);y.empty()&&y.set(0,0,0,0),i.rowheaders&&(g=Je(n.headerBand,Uo,null),c=Sd(e,i.rowheaders,r,a,u,-Je(s,"rowHeader"),FC,0,o,"x1",0,a,1,g)),i.colheaders&&(g=Je(n.headerBand,Bo,null),f=Sd(e,i.colheaders,r,a,a,-Je(s,"columnHeader"),FC,1,o,"y1",0,1,a,g)),i.rowfooters&&(g=Je(n.footerBand,Uo,null),d=Sd(e,i.rowfooters,r,a,u,Je(s,"rowFooter"),kC,0,o,"x2",a-1,a,1,g)),i.colfooters&&(g=Je(n.footerBand,Bo,null),h=Sd(e,i.colfooters,r,a,a,Je(s,"columnFooter"),kC,1,o,"y2",l-a,1,a,g)),i.rowtitle&&(p=Je(n.titleAnchor,Uo),m=Je(s,"rowTitle"),m=p===fn?d+m:c-m,g=Je(n.titleBand,Uo,.5),TC(e,i.rowtitle,m,0,y,g)),i.coltitle&&(p=Je(n.titleAnchor,Bo),m=Je(s,"columnTitle"),m=p===fn?h+m:f-m,g=Je(n.titleBand,Bo,.5),TC(e,i.coltitle,m,1,y,g))}function _G(e,t){return t==="x1"?e.x||0:t==="y1"?e.y||0:t==="x2"?(e.x||0)+(e.width||0):t==="y2"?(e.y||0)+(e.height||0):void 0}function FG(e,t){return e.bounds[t]}function Sd(e,t,n,i,r,o,s,a,u,l,c,f,d,h){var p=n.length,g=0,m=0,y,b,x,v,w,A,E,S,C;if(!p)return g;for(y=c;y<p;y+=f)n[y]&&(g=s(g,u(n[y],l)));if(!t.length)return g;for(t.length>r&&(e.warn("Grid headers exceed limit: "+r),t=t.slice(0,r)),g+=o,b=0,v=t.length;b<v;++b)e.dirty(t[b]),t[b].mark.bounds.clear();for(y=c,b=0,v=t.length;b<v;++b,y+=f){for(A=t[b],w=A.mark.bounds,x=y;x>=0&&(E=n[x])==null;x-=d);a?(S=h==null?E.x:Math.round(E.bounds.x1+h*E.bounds.width()),C=g):(S=g,C=h==null?E.y:Math.round(E.bounds.y1+h*E.bounds.height())),w.union(A.bounds.translate(S-(A.x||0),C-(A.y||0))),A.x=S,A.y=C,e.dirty(A),m=s(m,w[l])}return m}function TC(e,t,n,i,r,o){if(t){e.dirty(t);var s=n,a=n;i?s=Math.round(r.x1+o*r.width()):a=Math.round(r.y1+o*r.height()),t.bounds.translate(s-(t.x||0),a-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=s,t.y=a,e.dirty(t)}}function kG(e,t){const n=e[t]||{};return(i,r)=>n[i]!=null?n[i]:e[i]!=null?e[i]:r}function DG(e,t){let n=-1/0;return e.forEach(i=>{i.offset!=null&&(n=Math.max(n,i.offset))}),n>-1/0?n:t}function TG(e,t,n,i,r,o,s){const a=kG(n,t),u=DG(e,a("offset",0)),l=a("anchor",U2),c=l===fn?1:l===Wy?.5:0,f={align:Gy,bounds:a("bounds",H2),columns:a("direction")==="vertical"?1:e.length,padding:a("margin",8),center:a("center"),nodirty:!0};switch(t){case ki:f.anchor={x:Math.floor(i.x1)-u,column:fn,y:c*(s||i.height()+2*i.y1),row:l};break;case Di:f.anchor={x:Math.ceil(i.x2)+u,y:c*(s||i.height()+2*i.y1),row:l};break;case Iu:f.anchor={y:Math.floor(r.y1)-u,row:fn,x:c*(o||r.width()+2*r.x1),column:l};break;case ts:f.anchor={y:Math.ceil(r.y2)+u,x:c*(o||r.width()+2*r.x1),column:l};break;case oG:f.anchor={x:u,y:u};break;case sG:f.anchor={x:o-u,y:u,column:fn};break;case aG:f.anchor={x:u,y:s-u,row:fn};break;case uG:f.anchor={x:o-u,y:s-u,column:fn,row:fn};break}return f}function MG(e,t){var n=t.items[0],i=n.datum,r=n.orient,o=n.bounds,s=n.x,a=n.y,u,l;return n._bounds?n._bounds.clear().union(o):n._bounds=o.clone(),o.clear(),RG(e,n,n.items[0].items[0]),o=OG(n,o),u=2*n.padding,l=2*n.padding,o.empty()||(u=Math.ceil(o.width()+u),l=Math.ceil(o.height()+l)),i.type===pG&&NG(n.items[0].items[0].items[0].items),r!==G2&&(n.x=s=0,n.y=a=0),n.width=u,n.height=l,bo(o.set(s,a,s+u,a+l),n),n.mark.bounds.clear().union(o),n}function OG(e,t){return e.items.forEach(n=>t.union(n.bounds)),t.x1=e.padding,t.y1=e.padding,t}function RG(e,t,n){var i=t.padding,r=i-n.x,o=i-n.y;if(!t.datum.title)(r||o)&&Bl(e,n,r,o);else{var s=t.items[1].items[0],a=s.anchor,u=t.titlePadding||0,l=i-s.x,c=i-s.y;switch(s.orient){case ki:r+=Math.ceil(s.bounds.width())+u;break;case Di:case ts:break;default:o+=s.bounds.height()+u}switch((r||o)&&Bl(e,n,r,o),s.orient){case ki:c+=Ja(t,n,s,a,1,1);break;case Di:l+=Ja(t,n,s,fn,0,0)+u,c+=Ja(t,n,s,a,1,1);break;case ts:l+=Ja(t,n,s,a,0,0),c+=Ja(t,n,s,fn,-1,0,1)+u;break;default:l+=Ja(t,n,s,a,0,0)}(l||c)&&Bl(e,s,l,c),(l=Math.round(s.bounds.x1-i))<0&&(Bl(e,n,-l,0),Bl(e,s,-l,0))}}function Ja(e,t,n,i,r,o,s){const a=e.datum.type!=="symbol",u=n.datum.vgrad,l=a&&(o||!u)&&!s?t.items[0]:t,c=l.bounds[r?"y2":"x2"]-e.padding,f=u&&o?c:0,d=u&&o?0:c,h=r<=0?0:k2(n);return Math.round(i===U2?f:i===fn?d-h:.5*(c-h))}function Bl(e,t,n,i){t.x+=n,t.y+=i,t.bounds.translate(n,i),t.mark.bounds.translate(n,i),e.dirty(t)}function NG(e){const t=e.reduce((n,i)=>(n[i.column]=Math.max(i.bounds.x2-i.x,n[i.column]||0),n),{});e.forEach(n=>{n.width=t[n.column],n.height=n.bounds.y2-n.y})}function LG(e,t,n,i,r){var o=t.items[0],s=o.frame,a=o.orient,u=o.anchor,l=o.offset,c=o.padding,f=o.items[0].items[0],d=o.items[1]&&o.items[1].items[0],h=a===ki||a===Di?i:n,p=0,g=0,m=0,y=0,b=0,x;if(s!==Zg?a===ki?(p=r.y2,h=r.y1):a===Di?(p=r.y1,h=r.y2):(p=r.x1,h=r.x2):a===ki&&(p=i,h=0),x=u===U2?p:u===fn?h:(p+h)/2,d&&d.text){switch(a){case Iu:case ts:b=f.bounds.height()+c;break;case ki:y=f.bounds.width()+c;break;case Di:y=-f.bounds.width()-c;break}Jt.clear().union(d.bounds),Jt.translate(y-(d.x||0),b-(d.y||0)),cu(d,"x",y)|cu(d,"y",b)&&(e.dirty(d),d.bounds.clear().union(Jt),d.mark.bounds.clear().union(Jt),e.dirty(d)),Jt.clear().union(d.bounds)}else Jt.clear();switch(Jt.union(f.bounds),a){case Iu:g=x,m=r.y1-Jt.height()-l;break;case ki:g=r.x1-Jt.width()-l,m=x;break;case Di:g=r.x2+Jt.width()+l,m=x;break;case ts:g=x,m=r.y2+l;break;default:g=o.x,m=o.y}return cu(o,"x",g)|cu(o,"y",m)&&(Jt.translate(g,m),e.dirty(o),o.bounds.clear().union(Jt),t.bounds.clear().union(Jt),e.dirty(o)),o.bounds}function M5(e){M.call(this,null,e)}G(M5,M,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach(i=>{e.layout&&$G(n,i,e.layout),IG(n,i,e)}),PG(e.mark.group)?t.reflow():t}});function PG(e){return e&&e.mark.role!=="legend-entry"}function IG(e,t,n){var i=t.items,r=Math.max(0,t.width||0),o=Math.max(0,t.height||0),s=new gt().set(0,0,r,o),a=s.clone(),u=s.clone(),l=[],c,f,d,h,p,g;for(p=0,g=i.length;p<g;++p)switch(f=i[p],f.role){case j2:h=vG(f)?a:u,h.union(wG(e,f,r,o));break;case q2:c=f;break;case W2:l.push(MG(e,f));break;case fG:case dG:case y5:case b5:case x5:case v5:case E5:case w5:a.union(f.bounds),u.union(f.bounds);break;default:s.union(f.bounds)}if(l.length){const m={};l.forEach(y=>{d=y.orient||Di,d!==G2&&(m[d]||(m[d]=[])).push(y)});for(const y in m){const b=m[y];T5(e,b,TG(b,y,n.legends,a,u,r,o))}l.forEach(y=>{const b=y.bounds;if(b.equals(y._bounds)||(y.bounds=y._bounds,e.dirty(y),y.bounds=b,e.dirty(y)),n.autosize&&(n.autosize.type===A5||n.autosize.type===S5||n.autosize.type===C5))switch(y.orient){case ki:case Di:s.add(b.x1,0).add(b.x2,0);break;case Iu:case ts:s.add(0,b.y1).add(0,b.y2)}else s.union(b)})}s.union(a).union(u),c&&s.union(LG(e,c,r,o,s)),t.clip&&s.set(0,0,t.width||0,t.height||0),zG(e,t,s,n)}function zG(e,t,n,i){const r=i.autosize||{},o=r.type;if(e._autosize<1||!o)return;let s=e._width,a=e._height,u=Math.max(0,t.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-u)),h=Math.max(0,Math.ceil(n.y2-c));if(r.contains===hG){const p=e.padding();s-=p.left+p.right,a-=p.top+p.bottom}o===G2?(l=0,f=0,u=s,c=a):o===A5?(u=Math.max(0,s-l-d),c=Math.max(0,a-f-h)):o===S5?(u=Math.max(0,s-l-d),a=c+f+h):o===C5?(s=u+l+d,c=Math.max(0,a-f-h)):o===gG&&(s=u+l+d,a=c+f+h),e._resizeView(s,a,u,c,[l,f],r.resize)}const BG=Object.freeze(Object.defineProperty({__proto__:null,bound:$5,identifier:V2,mark:_5,overlap:F5,render:D5,viewlayout:M5},Symbol.toStringTag,{value:"Module"}));function O5(e){M.call(this,null,e)}G(O5,M,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.scale,s=e.count==null?e.values?e.values.length:10:e.count,a=f2(o,s,e.minstep),u=e.format||sM(n,o,a,e.formatSpecifier,e.formatType,!!e.values),l=e.values?oM(o,e.values,a):d2(o,a);return r&&(i.rem=r),r=l.map((c,f)=>Oe({index:f/(l.length-1||1),value:c,label:u(c)})),e.extra&&r.length&&r.push(Oe({index:-1,extra:{value:r[0].value},label:""})),i.source=r,i.add=r,this.value=r,i}});function R5(e){M.call(this,null,e)}function UG(){return Oe({})}function jG(e){const t=vf().test(n=>n.exit);return t.lookup=n=>t.get(e(n)),t}G(R5,M,{transform(e,t){var n=t.dataflow,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.item||UG,o=e.key||te,s=this.value;return Z(i.encode)&&(i.encode=null),s&&(e.modified("key")||t.modified(o))&&L("DataJoin does not support modified key function or fields."),s||(t=t.addAll(),this.value=s=jG(o)),t.visit(t.ADD,a=>{const u=o(a);let l=s.get(u);l?l.exit?(s.empty--,i.add.push(l)):i.mod.push(l):(l=r(a),s.set(u,l),i.add.push(l)),l.datum=a,l.exit=!1}),t.visit(t.MOD,a=>{const u=o(a),l=s.get(u);l&&(l.datum=a,i.mod.push(l))}),t.visit(t.REM,a=>{const u=o(a),l=s.get(u);a===l.datum&&!l.exit&&(i.rem.push(l),l.exit=!0,++s.empty)}),t.changed(t.ADD_MOD)&&i.modifies("datum"),(t.clean()||e.clean&&s.empty>n.cleanThreshold)&&n.runAfter(s.clean),i}});function N5(e){M.call(this,null,e)}G(N5,M,{transform(e,t){var n=t.fork(t.ADD_REM),i=e.mod||!1,r=e.encoders,o=t.encode;if(Z(o))if(n.changed()||o.every(f=>r[f]))o=o[0],n.encode=null;else return t.StopPropagation;var s=o==="enter",a=r.update||As,u=r.enter||As,l=r.exit||As,c=(o&&!s?r[o]:a)||As;if(t.changed(t.ADD)&&(t.visit(t.ADD,f=>{u(f,e),a(f,e)}),n.modifies(u.output),n.modifies(a.output),c!==As&&c!==a&&(t.visit(t.ADD,f=>{c(f,e)}),n.modifies(c.output))),t.changed(t.REM)&&l!==As&&(t.visit(t.REM,f=>{l(f,e)}),n.modifies(l.output)),s||c!==As){const f=t.MOD|(e.modified()?t.REFLOW:0);s?(t.visit(f,d=>{const h=u(d,e)||i;(c(d,e)||h)&&n.mod.push(d)}),n.mod.length&&n.modifies(u.output)):t.visit(f,d=>{(c(d,e)||i)&&n.mod.push(d)}),n.mod.length&&n.modifies(c.output)}return n.changed()?n:t.StopPropagation}});function L5(e){M.call(this,[],e)}G(L5,M,{transform(e,t){if(this.value!=null&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.type||th,s=e.scale,a=+e.limit,u=f2(s,e.count==null?5:e.count,e.minstep),l=!!e.values||o===th,c=e.format||cM(n,s,u,o,e.formatSpecifier,e.formatType,l),f=e.values||lM(s,u),d,h,p,g,m;return r&&(i.rem=r),o===th?(a&&f.length>a?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),r=f.slice(0,a-1),m=!0):r=f,be(p=e.size)?(!e.values&&s(r[0])===0&&(r=r.slice(1)),g=r.reduce((y,b)=>Math.max(y,p(b,e)),0)):p=wn(g=p||8),r=r.map((y,b)=>Oe({index:b,label:c(y,b,r),value:y,offset:g,size:p(y,e)})),m&&(m=f[r.length],r.push(Oe({index:r.length,label:`…${f.length-r.length} entries`,value:m,offset:g,size:p(m,e)})))):o===gj?(d=s.domain(),h=nM(s,d[0],$e(d)),f.length<3&&!e.values&&d[0]!==$e(d)&&(f=[d[0],$e(d)]),r=f.map((y,b)=>Oe({index:b,label:c(y,b,f),value:y,perc:h(y)}))):(p=f.length-1,h=$j(s),r=f.map((y,b)=>Oe({index:b,label:c(y,b,f),value:y,perc:b?h(y):0,perc2:b===p?1:h(f[b+1])}))),i.source=r,i.add=r,this.value=r,i}});const qG=e=>e.source.x,WG=e=>e.source.y,GG=e=>e.target.x,HG=e=>e.target.y;function Y2(e){M.call(this,{},e)}Y2.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"}]};G(Y2,M,{transform(e,t){var n=e.sourceX||qG,i=e.sourceY||WG,r=e.targetX||GG,o=e.targetY||HG,s=e.as||"path",a=e.orient||"vertical",u=e.shape||"line",l=MC.get(u+"-"+a)||MC.get(u);return l||L("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,c=>{c[s]=l(n(c),i(c),r(c),o(c))}),t.reflow(e.modified()).modifies(s)}});const P5=(e,t,n,i)=>"M"+e+","+t+"L"+n+","+i,VG=(e,t,n,i)=>P5(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),I5=(e,t,n,i)=>{var r=n-e,o=i-t,s=Math.hypot(r,o)/2,a=180*Math.atan2(o,r)/Math.PI;return"M"+e+","+t+"A"+s+","+s+" "+a+" 0 1 "+n+","+i},YG=(e,t,n,i)=>I5(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),z5=(e,t,n,i)=>{const r=n-e,o=i-t,s=.2*(r+o),a=.2*(o-r);return"M"+e+","+t+"C"+(e+s)+","+(t+a)+" "+(n+a)+","+(i-s)+" "+n+","+i},XG=(e,t,n,i)=>z5(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),KG=(e,t,n,i)=>"M"+e+","+t+"V"+i+"H"+n,JG=(e,t,n,i)=>"M"+e+","+t+"H"+n+"V"+i,QG=(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),s=Math.cos(n),a=Math.sin(n),u=Math.abs(n-e)>Math.PI?n<=e:n>e;return"M"+t*r+","+t*o+"A"+t+","+t+" 0 0,"+(u?1:0)+" "+t*s+","+t*a+"L"+i*s+","+i*a},ZG=(e,t,n,i)=>{const r=(e+n)/2;return"M"+e+","+t+"C"+r+","+t+" "+r+","+i+" "+n+","+i},eH=(e,t,n,i)=>{const r=(t+i)/2;return"M"+e+","+t+"C"+e+","+r+" "+n+","+r+" "+n+","+i},tH=(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),s=Math.cos(n),a=Math.sin(n),u=(t+i)/2;return"M"+t*r+","+t*o+"C"+u*r+","+u*o+" "+u*s+","+u*a+" "+i*s+","+i*a},MC=vf({line:P5,"line-radial":VG,arc:I5,"arc-radial":YG,curve:z5,"curve-radial":XG,"orthogonal-horizontal":KG,"orthogonal-vertical":JG,"orthogonal-radial":QG,"diagonal-horizontal":ZG,"diagonal-vertical":eH,"diagonal-radial":tH});function X2(e){M.call(this,null,e)}X2.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"]}]};G(X2,M,{transform(e,t){var n=e.as||["startAngle","endAngle"],i=n[0],r=n[1],o=e.field||xf,s=e.startAngle||0,a=e.endAngle!=null?e.endAngle:2*Math.PI,u=t.source,l=u.map(o),c=l.length,f=s,d=(a-s)/wD(l),h=Yn(c),p,g,m;for(e.sort&&h.sort((y,b)=>l[y]-l[b]),p=0;p<c;++p)m=l[h[p]],g=u[h[p]],g[i]=f,g[r]=f+=m*d;return this.value=l,t.reflow(e.modified()).modifies(n)}});const nH=5;function iH(e){const t=e.type;return!e.bins&&(t===Mu||t===Sf||t===Cf)}function B5(e){return u2(e)&&e!==hr}const rH=yr(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function U5(e){M.call(this,null,e),this.modified(!0)}G(U5,M,{transform(e,t){var n=t.dataflow,i=this.value,r=oH(e);(!i||r!==i.type)&&(this.value=i=Me(r)());for(r in e)if(!rH[r]){if(r==="padding"&&B5(i.type))continue;be(i[r])?i[r](e[r]):n.warn("Unsupported scale property: "+r)}return fH(i,e,cH(i,e,aH(i,e,n))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});function oH(e){var t=e.type,n="",i;return t===hr?hr+"-"+Mu:(sH(e)&&(i=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=i===2?hr+"-":i===3?fl+"-":""),(n+t||Mu).toLowerCase())}function sH(e){const t=e.type;return u2(t)&&t!==aa&&t!==ua&&(e.scheme||e.range&&e.range.length&&e.range.every(Ke))}function aH(e,t,n){const i=uH(e,t.domainRaw,n);if(i>-1)return i;var r=t.domain,o=e.type,s=t.zero||t.zero===void 0&&iH(e),a,u;if(!r)return 0;if((s||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(a=(r=r.slice()).length-1||1,s&&(r[0]>0&&(r[0]=0),r[a]<0&&(r[a]=0)),t.domainMin!=null&&(r[0]=t.domainMin),t.domainMax!=null&&(r[a]=t.domainMax),t.domainMid!=null)){u=t.domainMid;const l=u>r[a]?a+1:u<r[0]?0:a;l!==a&&n.warn("Scale domainMid exceeds domain min or max.",u),r.splice(l,0,u)}return B5(o)&&t.padding&&r[0]!==$e(r)&&(r=lH(o,r,t.range,t.padding,t.exponent,t.constant)),e.domain(j5(o,r,n)),o===r2&&e.unknown(t.domainImplicit?ky:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&f2(e,t.nice)||null),r.length}function uH(e,t,n){return t?(e.domain(j5(e.type,t,n)),t.length):-1}function lH(e,t,n,i,r,o){var s=Math.abs($e(n)-n[0]),a=s/(s-2*i),u=e===fo?iD(t,null,a):e===Cf?gy(t,null,a,.5):e===Sf?gy(t,null,a,r||1):e===Ig?rD(t,null,a,o||1):nD(t,null,a);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function j5(e,t,n){if(JT(e)){var i=Math.abs(t.reduce((r,o)=>r+(o<0?-1:o>0?1:0),0));i!==t.length&&n.warn("Log scale domain includes zero: "+re(t))}return t}function cH(e,t,n){let i=t.bins;if(i&&!Z(i)){const r=e.domain(),o=r[0],s=$e(r),a=i.step;let u=i.start==null?o:i.start,l=i.stop==null?s:i.stop;a||L("Scale bins parameter missing step property."),u<o&&(u=a*Math.ceil(o/a)),l>s&&(l=a*Math.floor(s/a)),i=Yn(u,l+a/2,a)}return i?e.bins=i:e.bins&&delete e.bins,e.type===o2&&(i?!t.domain&&!t.domainRaw&&(e.domain(i),n=i.length):e.bins=e.domain()),n}function fH(e,t,n){var i=e.type,r=t.round||!1,o=t.range;if(t.rangeStep!=null)o=dH(i,t,n);else if(t.scheme&&(o=hH(i,t,n),be(o))){if(e.interpolator)return e.interpolator(o);L(`Scale type ${i} does not support interpolating color schemes.`)}if(o&&QT(i))return e.interpolator(Ug(Hy(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(l2(t.interpolate,t.interpolateGamma)):be(e.round)?e.round(r):be(e.rangeRound)&&e.interpolate(r?tg:bf),o&&e.range(Hy(o,t.reverse))}function dH(e,t,n){e!==GT&&e!==Ty&&L("Only band and point scales support rangeStep.");var i=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,r=e===Ty?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*i2(n,r,i)]}function hH(e,t,n){var i=t.schemeExtent,r,o;return Z(t.scheme)?o=Ug(t.scheme,t.interpolate,t.interpolateGamma):(r=t.scheme.toLowerCase(),o=c2(r),o||L(`Unrecognized scheme name: ${t.scheme}`)),n=e===Bg?n+1:e===o2?n-1:e===Ou||e===zg?+t.schemeCount||nH:n,QT(e)?OC(o,i,t.reverse):be(o)?tM(OC(o,i),n):e===r2?o:o.slice(0,n)}function OC(e,t,n){return be(e)&&(t||n)?eM(e,Hy(t||[0,1],n)):e}function Hy(e,t){return t?e.slice().reverse():e}function q5(e){M.call(this,null,e)}G(q5,M,{transform(e,t){const n=e.modified("sort")||t.changed(t.ADD)||t.modified(e.sort.fields)||t.modified("datum");return n&&t.source.sort(Da(e.sort)),this.modified(n),t}});const RC="zero",W5="center",G5="normalize",H5=["y0","y1"];function K2(e){M.call(this,null,e)}K2.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:RC,values:[RC,W5,G5]},{name:"as",type:"string",array:!0,length:2,default:H5}]};G(K2,M,{transform(e,t){var n=e.as||H5,i=n[0],r=n[1],o=Da(e.sort),s=e.field||xf,a=e.offset===W5?pH:e.offset===G5?gH:mH,u,l,c,f;for(u=yH(t.source,e.groupby,o,s),l=0,c=u.length,f=u.max;l<c;++l)a(u[l],f,s,i,r);return t.reflow(e.modified()).modifies(n)}});function pH(e,t,n,i,r){for(var o=(t-e.sum)/2,s=e.length,a=0,u;a<s;++a)u=e[a],u[i]=o,u[r]=o+=Math.abs(n(u))}function gH(e,t,n,i,r){for(var o=1/e.sum,s=0,a=e.length,u=0,l=0,c;u<a;++u)c=e[u],c[i]=s,c[r]=s=o*(l+=Math.abs(n(c)))}function mH(e,t,n,i,r){for(var o=0,s=0,a=e.length,u=0,l,c;u<a;++u)c=e[u],l=+n(c),l<0?(c[i]=s,c[r]=s+=l):(c[i]=o,c[r]=o+=l)}function yH(e,t,n,i){var r=[],o=g=>g(c),s,a,u,l,c,f,d,h,p;if(t==null)r.push(e.slice());else for(s={},a=0,u=e.length;a<u;++a)c=e[a],f=t.map(o),d=s[f],d||(s[f]=d=[],r.push(d)),d.push(c);for(f=0,p=0,l=r.length;f<l;++f){for(d=r[f],a=0,h=0,u=d.length;a<u;++a)h+=Math.abs(i(d[a]));d.sum=h,h>p&&(p=h),n&&d.sort(n)}return r.max=p,r}const bH=Object.freeze(Object.defineProperty({__proto__:null,axisticks:O5,datajoin:R5,encode:N5,legendentries:L5,linkpath:Y2,pie:X2,scale:U5,sortitems:q5,stack:K2},Symbol.toStringTag,{value:"Module"}));var oe=1e-6,ep=1e-12,Ee=Math.PI,st=Ee/2,tp=Ee/4,An=Ee*2,ut=180/Ee,xe=Ee/180,Se=Math.abs,hl=Math.atan,yi=Math.atan2,ae=Math.cos,Cd=Math.ceil,V5=Math.exp,Vy=Math.hypot,np=Math.log,Wm=Math.pow,ne=Math.sin,ci=Math.sign||function(e){return e>0?1:e<0?-1:0},Sn=Math.sqrt,J2=Math.tan;function Y5(e){return e>1?0:e<-1?Ee:Math.acos(e)}function zn(e){return e>1?st:e<-1?-st:Math.asin(e)}function zt(){}function ip(e,t){e&&LC.hasOwnProperty(e.type)&&LC[e.type](e,t)}var NC={Feature:function(e,t){ip(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++i<r;)ip(n[i].geometry,t)}},LC={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)e=n[i],t.point(e[0],e[1],e[2])},LineString:function(e,t){Yy(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)Yy(n[i],t,0)},Polygon:function(e,t){PC(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)PC(n[i],t)},GeometryCollection:function(e,t){for(var n=e.geometries,i=-1,r=n.length;++i<r;)ip(n[i],t)}};function Yy(e,t,n){var i=-1,r=e.length-n,o;for(t.lineStart();++i<r;)o=e[i],t.point(o[0],o[1],o[2]);t.lineEnd()}function PC(e,t){var n=-1,i=e.length;for(t.polygonStart();++n<i;)Yy(e[n],t,1);t.polygonEnd()}function Vr(e,t){e&&NC.hasOwnProperty(e.type)?NC[e.type](e,t):ip(e,t)}var rp=new vn,op=new vn,X5,K5,Xy,Ky,Jy,Er={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){rp=new vn,Er.lineStart=xH,Er.lineEnd=vH},polygonEnd:function(){var e=+rp;op.add(e<0?An+e:e),this.lineStart=this.lineEnd=this.point=zt},sphere:function(){op.add(An)}};function xH(){Er.point=EH}function vH(){J5(X5,K5)}function EH(e,t){Er.point=J5,X5=e,K5=t,e*=xe,t*=xe,Xy=e,Ky=ae(t=t/2+tp),Jy=ne(t)}function J5(e,t){e*=xe,t*=xe,t=t/2+tp;var n=e-Xy,i=n>=0?1:-1,r=i*n,o=ae(t),s=ne(t),a=Jy*s,u=Ky*o+a*ae(r),l=a*i*ne(r);rp.add(yi(l,u)),Xy=e,Ky=o,Jy=s}function wH(e){return op=new vn,Vr(e,Er),op*2}function sp(e){return[yi(e[1],e[0]),zn(e[2])]}function ca(e){var t=e[0],n=e[1],i=ae(n);return[i*ae(t),i*ne(t),ne(n)]}function $d(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function zu(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function Gm(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function _d(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function ap(e){var t=Sn(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var tt,Tn,rt,Hn,Ps,Q5,Z5,bu,_c,Mo,ho,qr={point:Qy,lineStart:IC,lineEnd:zC,polygonStart:function(){qr.point=tO,qr.lineStart=AH,qr.lineEnd=SH,_c=new vn,Er.polygonStart()},polygonEnd:function(){Er.polygonEnd(),qr.point=Qy,qr.lineStart=IC,qr.lineEnd=zC,rp<0?(tt=-(rt=180),Tn=-(Hn=90)):_c>oe?Hn=90:_c<-oe&&(Tn=-90),ho[0]=tt,ho[1]=rt},sphere:function(){tt=-(rt=180),Tn=-(Hn=90)}};function Qy(e,t){Mo.push(ho=[tt=e,rt=e]),t<Tn&&(Tn=t),t>Hn&&(Hn=t)}function eO(e,t){var n=ca([e*xe,t*xe]);if(bu){var i=zu(bu,n),r=[i[1],-i[0],0],o=zu(r,i);ap(o),o=sp(o);var s=e-Ps,a=s>0?1:-1,u=o[0]*ut*a,l,c=Se(s)>180;c^(a*Ps<u&&u<a*e)?(l=o[1]*ut,l>Hn&&(Hn=l)):(u=(u+360)%360-180,c^(a*Ps<u&&u<a*e)?(l=-o[1]*ut,l<Tn&&(Tn=l)):(t<Tn&&(Tn=t),t>Hn&&(Hn=t))),c?e<Ps?Gn(tt,e)>Gn(tt,rt)&&(rt=e):Gn(e,rt)>Gn(tt,rt)&&(tt=e):rt>=tt?(e<tt&&(tt=e),e>rt&&(rt=e)):e>Ps?Gn(tt,e)>Gn(tt,rt)&&(rt=e):Gn(e,rt)>Gn(tt,rt)&&(tt=e)}else Mo.push(ho=[tt=e,rt=e]);t<Tn&&(Tn=t),t>Hn&&(Hn=t),bu=n,Ps=e}function IC(){qr.point=eO}function zC(){ho[0]=tt,ho[1]=rt,qr.point=Qy,bu=null}function tO(e,t){if(bu){var n=e-Ps;_c.add(Se(n)>180?n+(n>0?360:-360):n)}else Q5=e,Z5=t;Er.point(e,t),eO(e,t)}function AH(){Er.lineStart()}function SH(){tO(Q5,Z5),Er.lineEnd(),Se(_c)>oe&&(tt=-(rt=180)),ho[0]=tt,ho[1]=rt,bu=null}function Gn(e,t){return(t-=e)<0?t+360:t}function CH(e,t){return e[0]-t[0]}function BC(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}function $H(e){var t,n,i,r,o,s,a;if(Hn=rt=-(tt=Tn=1/0),Mo=[],Vr(e,qr),n=Mo.length){for(Mo.sort(CH),t=1,i=Mo[0],o=[i];t<n;++t)r=Mo[t],BC(i,r[0])||BC(i,r[1])?(Gn(i[0],r[1])>Gn(i[0],i[1])&&(i[1]=r[1]),Gn(r[0],i[1])>Gn(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(s=-1/0,n=o.length-1,t=0,i=o[n];t<=n;i=r,++t)r=o[t],(a=Gn(i[1],r[0]))>s&&(s=a,tt=r[0],rt=i[1])}return Mo=ho=null,tt===1/0||Tn===1/0?[[NaN,NaN],[NaN,NaN]]:[[tt,Tn],[rt,Hn]]}var cc,up,lp,cp,fp,dp,hp,pp,Zy,eb,tb,nO,iO,dn,hn,pn,Ti={sphere:zt,point:Q2,lineStart:UC,lineEnd:jC,polygonStart:function(){Ti.lineStart=kH,Ti.lineEnd=DH},polygonEnd:function(){Ti.lineStart=UC,Ti.lineEnd=jC}};function Q2(e,t){e*=xe,t*=xe;var n=ae(t);Pf(n*ae(e),n*ne(e),ne(t))}function Pf(e,t,n){++cc,lp+=(e-lp)/cc,cp+=(t-cp)/cc,fp+=(n-fp)/cc}function UC(){Ti.point=_H}function _H(e,t){e*=xe,t*=xe;var n=ae(t);dn=n*ae(e),hn=n*ne(e),pn=ne(t),Ti.point=FH,Pf(dn,hn,pn)}function FH(e,t){e*=xe,t*=xe;var n=ae(t),i=n*ae(e),r=n*ne(e),o=ne(t),s=yi(Sn((s=hn*o-pn*r)*s+(s=pn*i-dn*o)*s+(s=dn*r-hn*i)*s),dn*i+hn*r+pn*o);up+=s,dp+=s*(dn+(dn=i)),hp+=s*(hn+(hn=r)),pp+=s*(pn+(pn=o)),Pf(dn,hn,pn)}function jC(){Ti.point=Q2}function kH(){Ti.point=TH}function DH(){rO(nO,iO),Ti.point=Q2}function TH(e,t){nO=e,iO=t,e*=xe,t*=xe,Ti.point=rO;var n=ae(t);dn=n*ae(e),hn=n*ne(e),pn=ne(t),Pf(dn,hn,pn)}function rO(e,t){e*=xe,t*=xe;var n=ae(t),i=n*ae(e),r=n*ne(e),o=ne(t),s=hn*o-pn*r,a=pn*i-dn*o,u=dn*r-hn*i,l=Vy(s,a,u),c=zn(l),f=l&&-c/l;Zy.add(f*s),eb.add(f*a),tb.add(f*u),up+=c,dp+=c*(dn+(dn=i)),hp+=c*(hn+(hn=r)),pp+=c*(pn+(pn=o)),Pf(dn,hn,pn)}function MH(e){cc=up=lp=cp=fp=dp=hp=pp=0,Zy=new vn,eb=new vn,tb=new vn,Vr(e,Ti);var t=+Zy,n=+eb,i=+tb,r=Vy(t,n,i);return r<ep&&(t=dp,n=hp,i=pp,up<oe&&(t=lp,n=cp,i=fp),r=Vy(t,n,i),r<ep)?[NaN,NaN]:[yi(n,t)*ut,zn(i/r)*ut]}function nb(e,t){function n(i,r){return i=e(i,r),t(i[0],i[1])}return e.invert&&t.invert&&(n.invert=function(i,r){return i=t.invert(i,r),i&&e.invert(i[0],i[1])}),n}function ib(e,t){return Se(e)>Ee&&(e-=Math.round(e/An)*An),[e,t]}ib.invert=ib;function oO(e,t,n){return(e%=An)?t||n?nb(WC(e),GC(t,n)):WC(e):t||n?GC(t,n):ib}function qC(e){return function(t,n){return t+=e,Se(t)>Ee&&(t-=Math.round(t/An)*An),[t,n]}}function WC(e){var t=qC(e);return t.invert=qC(-e),t}function GC(e,t){var n=ae(e),i=ne(e),r=ae(t),o=ne(t);function s(a,u){var l=ae(u),c=ae(a)*l,f=ne(a)*l,d=ne(u),h=d*n+c*i;return[yi(f*r-h*o,c*n-d*i),zn(h*r+f*o)]}return s.invert=function(a,u){var l=ae(u),c=ae(a)*l,f=ne(a)*l,d=ne(u),h=d*r-f*o;return[yi(f*r+d*o,c*n+h*i),zn(h*n-c*i)]},s}function OH(e){e=oO(e[0]*xe,e[1]*xe,e.length>2?e[2]*xe:0);function t(n){return n=e(n[0]*xe,n[1]*xe),n[0]*=ut,n[1]*=ut,n}return t.invert=function(n){return n=e.invert(n[0]*xe,n[1]*xe),n[0]*=ut,n[1]*=ut,n},t}function RH(e,t,n,i,r,o){if(n){var s=ae(t),a=ne(t),u=i*n;r==null?(r=t+i*An,o=t-u/2):(r=HC(s,r),o=HC(s,o),(i>0?r<o:r>o)&&(r+=i*An));for(var l,c=r;i>0?c>o:c<o;c-=u)l=sp([s,-a*ae(c),-a*ne(c)]),e.point(l[0],l[1])}}function HC(e,t){t=ca(t),t[0]-=e,ap(t);var n=Y5(-t[1]);return((-t[2]<0?-n:n)+An-oe)%An}function sO(){var e=[],t;return{point:function(n,i,r){t.push([n,i,r])},lineStart:function(){e.push(t=[])},lineEnd:zt,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}function ch(e,t){return Se(e[0]-t[0])<oe&&Se(e[1]-t[1])<oe}function Fd(e,t,n,i){this.x=e,this.z=t,this.o=n,this.e=i,this.v=!1,this.n=this.p=null}function aO(e,t,n,i,r){var o=[],s=[],a,u;if(e.forEach(function(p){if(!((g=p.length-1)<=0)){var g,m=p[0],y=p[g],b;if(ch(m,y)){if(!m[2]&&!y[2]){for(r.lineStart(),a=0;a<g;++a)r.point((m=p[a])[0],m[1]);r.lineEnd();return}y[0]+=2*oe}o.push(b=new Fd(m,p,null,!0)),s.push(b.o=new Fd(m,null,b,!1)),o.push(b=new Fd(y,p,null,!1)),s.push(b.o=new Fd(y,null,b,!0))}}),!!o.length){for(s.sort(t),VC(o),VC(s),a=0,u=s.length;a<u;++a)s[a].e=n=!n;for(var l=o[0],c,f;;){for(var d=l,h=!0;d.v;)if((d=d.n)===l)return;c=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(a=0,u=c.length;a<u;++a)r.point((f=c[a])[0],f[1]);else i(d.x,d.n.x,1,r);d=d.n}else{if(h)for(c=d.p.z,a=c.length-1;a>=0;--a)r.point((f=c[a])[0],f[1]);else i(d.x,d.p.x,-1,r);d=d.p}d=d.o,c=d.z,h=!h}while(!d.v);r.lineEnd()}}}function VC(e){if(t=e.length){for(var t,n=0,i=e[0],r;++n<t;)i.n=r=e[n],r.p=i,i=r;i.n=r=e[0],r.p=i}}function Hm(e){return Se(e[0])<=Ee?e[0]:ci(e[0])*((Se(e[0])+Ee)%An-Ee)}function NH(e,t){var n=Hm(t),i=t[1],r=ne(i),o=[ne(n),-ae(n),0],s=0,a=0,u=new vn;r===1?i=st+oe:r===-1&&(i=-st-oe);for(var l=0,c=e.length;l<c;++l)if(d=(f=e[l]).length)for(var f,d,h=f[d-1],p=Hm(h),g=h[1]/2+tp,m=ne(g),y=ae(g),b=0;b<d;++b,p=v,m=A,y=E,h=x){var x=f[b],v=Hm(x),w=x[1]/2+tp,A=ne(w),E=ae(w),S=v-p,C=S>=0?1:-1,_=C*S,k=_>Ee,N=m*A;if(u.add(yi(N*C*ne(_),y*E+N*ae(_))),s+=k?S+C*An:S,k^p>=n^v>=n){var T=zu(ca(h),ca(x));ap(T);var F=zu(o,T);ap(F);var $=(k^S>=0?-1:1)*zn(F[2]);(i>$||i===$&&(T[0]||T[1]))&&(a+=k^S>=0?1:-1)}}return(s<-oe||s<oe&&u<-ep)^a&1}function uO(e,t,n,i){return function(r){var o=t(r),s=sO(),a=t(s),u=!1,l,c,f,d={point:h,lineStart:g,lineEnd:m,polygonStart:function(){d.point=y,d.lineStart=b,d.lineEnd=x,c=[],l=[]},polygonEnd:function(){d.point=h,d.lineStart=g,d.lineEnd=m,c=ED(c);var v=NH(l,i);c.length?(u||(r.polygonStart(),u=!0),aO(c,PH,v,n,r)):v&&(u||(r.polygonStart(),u=!0),r.lineStart(),n(null,null,1,r),r.lineEnd()),u&&(r.polygonEnd(),u=!1),c=l=null},sphere:function(){r.polygonStart(),r.lineStart(),n(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(v,w){e(v,w)&&r.point(v,w)}function p(v,w){o.point(v,w)}function g(){d.point=p,o.lineStart()}function m(){d.point=h,o.lineEnd()}function y(v,w){f.push([v,w]),a.point(v,w)}function b(){a.lineStart(),f=[]}function x(){y(f[0][0],f[0][1]),a.lineEnd();var v=a.clean(),w=s.result(),A,E=w.length,S,C,_;if(f.pop(),l.push(f),f=null,!!E){if(v&1){if(C=w[0],(S=C.length-1)>0){for(u||(r.polygonStart(),u=!0),r.lineStart(),A=0;A<S;++A)r.point((_=C[A])[0],_[1]);r.lineEnd()}return}E>1&&v&2&&w.push(w.pop().concat(w.shift())),c.push(w.filter(LH))}}return d}}function LH(e){return e.length>1}function PH(e,t){return((e=e.x)[0]<0?e[1]-st-oe:st-e[1])-((t=t.x)[0]<0?t[1]-st-oe:st-t[1])}const YC=uO(function(){return!0},IH,BH,[-Ee,-st]);function IH(e){var t=NaN,n=NaN,i=NaN,r;return{lineStart:function(){e.lineStart(),r=1},point:function(o,s){var a=o>0?Ee:-Ee,u=Se(o-t);Se(u-Ee)<oe?(e.point(t,n=(n+s)/2>0?st:-st),e.point(i,n),e.lineEnd(),e.lineStart(),e.point(a,n),e.point(o,n),r=0):i!==a&&u>=Ee&&(Se(t-i)<oe&&(t-=i*oe),Se(o-a)<oe&&(o-=a*oe),n=zH(t,n,o,s),e.point(i,n),e.lineEnd(),e.lineStart(),e.point(a,n),r=0),e.point(t=o,n=s),i=a},lineEnd:function(){e.lineEnd(),t=n=NaN},clean:function(){return 2-r}}}function zH(e,t,n,i){var r,o,s=ne(e-n);return Se(s)>oe?hl((ne(t)*(o=ae(i))*ne(n)-ne(i)*(r=ae(t))*ne(e))/(r*o*s)):(t+i)/2}function BH(e,t,n,i){var r;if(e==null)r=n*st,i.point(-Ee,r),i.point(0,r),i.point(Ee,r),i.point(Ee,0),i.point(Ee,-r),i.point(0,-r),i.point(-Ee,-r),i.point(-Ee,0),i.point(-Ee,r);else if(Se(e[0]-t[0])>oe){var o=e[0]<t[0]?Ee:-Ee;r=n*o/2,i.point(-o,r),i.point(0,r),i.point(o,r)}else i.point(t[0],t[1])}function UH(e){var t=ae(e),n=2*xe,i=t>0,r=Se(t)>oe;function o(c,f,d,h){RH(h,e,n,d,c,f)}function s(c,f){return ae(c)*ae(f)>t}function a(c){var f,d,h,p,g;return{lineStart:function(){p=h=!1,g=1},point:function(m,y){var b=[m,y],x,v=s(m,y),w=i?v?0:l(m,y):v?l(m+(m<0?Ee:-Ee),y):0;if(!f&&(p=h=v)&&c.lineStart(),v!==h&&(x=u(f,b),(!x||ch(f,x)||ch(b,x))&&(b[2]=1)),v!==h)g=0,v?(c.lineStart(),x=u(b,f),c.point(x[0],x[1])):(x=u(f,b),c.point(x[0],x[1],2),c.lineEnd()),f=x;else if(r&&f&&i^v){var A;!(w&d)&&(A=u(b,f,!0))&&(g=0,i?(c.lineStart(),c.point(A[0][0],A[0][1]),c.point(A[1][0],A[1][1]),c.lineEnd()):(c.point(A[1][0],A[1][1]),c.lineEnd(),c.lineStart(),c.point(A[0][0],A[0][1],3)))}v&&(!f||!ch(f,b))&&c.point(b[0],b[1]),f=b,h=v,d=w},lineEnd:function(){h&&c.lineEnd(),f=null},clean:function(){return g|(p&&h)<<1}}}function u(c,f,d){var h=ca(c),p=ca(f),g=[1,0,0],m=zu(h,p),y=$d(m,m),b=m[0],x=y-b*b;if(!x)return!d&&c;var v=t*y/x,w=-t*b/x,A=zu(g,m),E=_d(g,v),S=_d(m,w);Gm(E,S);var C=A,_=$d(E,C),k=$d(C,C),N=_*_-k*($d(E,E)-1);if(!(N<0)){var T=Sn(N),F=_d(C,(-_-T)/k);if(Gm(F,E),F=sp(F),!d)return F;var $=c[0],D=f[0],P=c[1],z=f[1],I;D<$&&(I=$,$=D,D=I);var V=D-$,ue=Se(V-Ee)<oe,ie=ue||V<oe;if(!ue&&z<P&&(I=P,P=z,z=I),ie?ue?P+z>0^F[1]<(Se(F[0]-$)<oe?P:z):P<=F[1]&&F[1]<=z:V>Ee^($<=F[0]&&F[0]<=D)){var he=_d(C,(-_+T)/k);return Gm(he,E),[F,sp(he)]}}}function l(c,f){var d=i?e:Ee-e,h=0;return c<-d?h|=1:c>d&&(h|=2),f<-d?h|=4:f>d&&(h|=8),h}return uO(s,a,o,i?[0,-e]:[-Ee,e-Ee])}function jH(e,t,n,i,r,o){var s=e[0],a=e[1],u=t[0],l=t[1],c=0,f=1,d=u-s,h=l-a,p;if(p=n-s,!(!d&&p>0)){if(p/=d,d<0){if(p<c)return;p<f&&(f=p)}else if(d>0){if(p>f)return;p>c&&(c=p)}if(p=r-s,!(!d&&p<0)){if(p/=d,d<0){if(p>f)return;p>c&&(c=p)}else if(d>0){if(p<c)return;p<f&&(f=p)}if(p=i-a,!(!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=o-a,!(!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&&(e[0]=s+c*d,e[1]=a+c*h),f<1&&(t[0]=s+f*d,t[1]=a+f*h),!0}}}}}var fc=1e9,kd=-fc;function lO(e,t,n,i){function r(l,c){return e<=l&&l<=n&&t<=c&&c<=i}function o(l,c,f,d){var h=0,p=0;if(l==null||(h=s(l,f))!==(p=s(c,f))||u(l,c)<0^f>0)do d.point(h===0||h===3?e:n,h>1?i:t);while((h=(h+f+4)%4)!==p);else d.point(c[0],c[1])}function s(l,c){return Se(l[0]-e)<oe?c>0?0:3:Se(l[0]-n)<oe?c>0?2:1:Se(l[1]-t)<oe?c>0?1:0:c>0?3:2}function a(l,c){return u(l.x,c.x)}function u(l,c){var f=s(l,1),d=s(c,1);return f!==d?f-d: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=sO(),d,h,p,g,m,y,b,x,v,w,A,E={point:S,lineStart:N,lineEnd:T,polygonStart:_,polygonEnd:k};function S($,D){r($,D)&&c.point($,D)}function C(){for(var $=0,D=0,P=h.length;D<P;++D)for(var z=h[D],I=1,V=z.length,ue=z[0],ie,he,We=ue[0],pe=ue[1];I<V;++I)ie=We,he=pe,ue=z[I],We=ue[0],pe=ue[1],he<=i?pe>i&&(We-ie)*(i-he)>(pe-he)*(e-ie)&&++$:pe<=i&&(We-ie)*(i-he)<(pe-he)*(e-ie)&&--$;return $}function _(){c=f,d=[],h=[],A=!0}function k(){var $=C(),D=A&&$,P=(d=ED(d)).length;(D||P)&&(l.polygonStart(),D&&(l.lineStart(),o(null,null,1,l),l.lineEnd()),P&&aO(d,a,$,o,l),l.polygonEnd()),c=l,d=h=p=null}function N(){E.point=F,h&&h.push(p=[]),w=!0,v=!1,b=x=NaN}function T(){d&&(F(g,m),y&&v&&f.rejoin(),d.push(f.result())),E.point=S,v&&c.lineEnd()}function F($,D){var P=r($,D);if(h&&p.push([$,D]),w)g=$,m=D,y=P,w=!1,P&&(c.lineStart(),c.point($,D));else if(P&&v)c.point($,D);else{var z=[b=Math.max(kd,Math.min(fc,b)),x=Math.max(kd,Math.min(fc,x))],I=[$=Math.max(kd,Math.min(fc,$)),D=Math.max(kd,Math.min(fc,D))];jH(z,I,e,t,n,i)?(v||(c.lineStart(),c.point(z[0],z[1])),c.point(I[0],I[1]),P||c.lineEnd(),A=!1):P&&(c.lineStart(),c.point($,D),A=!1)}b=$,x=D,v=P}return E}}function XC(e,t,n){var i=Yn(e,t-oe,n).concat(t);return function(r){return i.map(function(o){return[r,o]})}}function KC(e,t,n){var i=Yn(e,t-oe,n).concat(t);return function(r){return i.map(function(o){return[o,r]})}}function qH(){var e,t,n,i,r,o,s,a,u=10,l=u,c=90,f=360,d,h,p,g,m=2.5;function y(){return{type:"MultiLineString",coordinates:b()}}function b(){return Yn(Cd(i/c)*c,n,c).map(p).concat(Yn(Cd(a/f)*f,s,f).map(g)).concat(Yn(Cd(t/u)*u,e,u).filter(function(x){return Se(x%c)>oe}).map(d)).concat(Yn(Cd(o/l)*l,r,l).filter(function(x){return Se(x%f)>oe}).map(h))}return y.lines=function(){return b().map(function(x){return{type:"LineString",coordinates:x}})},y.outline=function(){return{type:"Polygon",coordinates:[p(i).concat(g(s).slice(1),p(n).reverse().slice(1),g(a).reverse().slice(1))]}},y.extent=function(x){return arguments.length?y.extentMajor(x).extentMinor(x):y.extentMinor()},y.extentMajor=function(x){return arguments.length?(i=+x[0][0],n=+x[1][0],a=+x[0][1],s=+x[1][1],i>n&&(x=i,i=n,n=x),a>s&&(x=a,a=s,s=x),y.precision(m)):[[i,a],[n,s]]},y.extentMinor=function(x){return arguments.length?(t=+x[0][0],e=+x[1][0],o=+x[0][1],r=+x[1][1],t>e&&(x=t,t=e,e=x),o>r&&(x=o,o=r,r=x),y.precision(m)):[[t,o],[e,r]]},y.step=function(x){return arguments.length?y.stepMajor(x).stepMinor(x):y.stepMinor()},y.stepMajor=function(x){return arguments.length?(c=+x[0],f=+x[1],y):[c,f]},y.stepMinor=function(x){return arguments.length?(u=+x[0],l=+x[1],y):[u,l]},y.precision=function(x){return arguments.length?(m=+x,d=XC(o,r,90),h=KC(t,e,m),p=XC(a,s,90),g=KC(i,n,m),y):m},y.extentMajor([[-180,-90+oe],[180,90-oe]]).extentMinor([[-180,-80-oe],[180,80+oe]])}const Kc=e=>e;var Vm=new vn,rb=new vn,cO,fO,ob,sb,Yr={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){Yr.lineStart=WH,Yr.lineEnd=HH},polygonEnd:function(){Yr.lineStart=Yr.lineEnd=Yr.point=zt,Vm.add(Se(rb)),rb=new vn},result:function(){var e=Vm/2;return Vm=new vn,e}};function WH(){Yr.point=GH}function GH(e,t){Yr.point=dO,cO=ob=e,fO=sb=t}function dO(e,t){rb.add(sb*e-ob*t),ob=e,sb=t}function HH(){dO(cO,fO)}var Bu=1/0,gp=Bu,Jc=-Bu,mp=Jc,yp={point:VH,lineStart:zt,lineEnd:zt,polygonStart:zt,polygonEnd:zt,result:function(){var e=[[Bu,gp],[Jc,mp]];return Jc=mp=-(gp=Bu=1/0),e}};function VH(e,t){e<Bu&&(Bu=e),e>Jc&&(Jc=e),t<gp&&(gp=t),t>mp&&(mp=t)}var ab=0,ub=0,dc=0,bp=0,xp=0,fu=0,lb=0,cb=0,hc=0,hO,pO,ur,lr,ui={point:fa,lineStart:JC,lineEnd:QC,polygonStart:function(){ui.lineStart=KH,ui.lineEnd=JH},polygonEnd:function(){ui.point=fa,ui.lineStart=JC,ui.lineEnd=QC},result:function(){var e=hc?[lb/hc,cb/hc]:fu?[bp/fu,xp/fu]:dc?[ab/dc,ub/dc]:[NaN,NaN];return ab=ub=dc=bp=xp=fu=lb=cb=hc=0,e}};function fa(e,t){ab+=e,ub+=t,++dc}function JC(){ui.point=YH}function YH(e,t){ui.point=XH,fa(ur=e,lr=t)}function XH(e,t){var n=e-ur,i=t-lr,r=Sn(n*n+i*i);bp+=r*(ur+e)/2,xp+=r*(lr+t)/2,fu+=r,fa(ur=e,lr=t)}function QC(){ui.point=fa}function KH(){ui.point=QH}function JH(){gO(hO,pO)}function QH(e,t){ui.point=gO,fa(hO=ur=e,pO=lr=t)}function gO(e,t){var n=e-ur,i=t-lr,r=Sn(n*n+i*i);bp+=r*(ur+e)/2,xp+=r*(lr+t)/2,fu+=r,r=lr*e-ur*t,lb+=r*(ur+e),cb+=r*(lr+t),hc+=r*3,fa(ur=e,lr=t)}function mO(e){this._context=e}mO.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,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(e,t){switch(this._point){case 0:{this._context.moveTo(e,t),this._point=1;break}case 1:{this._context.lineTo(e,t);break}default:{this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,An);break}}},result:zt};var fb=new vn,Ym,yO,bO,pc,gc,Qc={point:zt,lineStart:function(){Qc.point=ZH},lineEnd:function(){Ym&&xO(yO,bO),Qc.point=zt},polygonStart:function(){Ym=!0},polygonEnd:function(){Ym=null},result:function(){var e=+fb;return fb=new vn,e}};function ZH(e,t){Qc.point=xO,yO=pc=e,bO=gc=t}function xO(e,t){pc-=e,gc-=t,fb.add(Sn(pc*pc+gc*gc)),pc=e,gc=t}let ZC,vp,e$,t$;class n${constructor(t){this._append=t==null?vO:eV(t),this._radius=4.5,this._=""}pointRadius(t){return this._radius=+t,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(t,n){switch(this._point){case 0:{this._append`M${t},${n}`,this._point=1;break}case 1:{this._append`L${t},${n}`;break}default:{if(this._append`M${t},${n}`,this._radius!==e$||this._append!==vp){const i=this._radius,r=this._;this._="",this._append`m0,${i}a${i},${i} 0 1,1 0,${-2*i}a${i},${i} 0 1,1 0,${2*i}z`,e$=i,vp=this._append,t$=this._,this._=r}this._+=t$;break}}}result(){const t=this._;return this._="",t.length?t:null}}function vO(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function eV(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return vO;if(t!==ZC){const n=10**t;ZC=t,vp=function(r){let o=1;this._+=r[0];for(const s=r.length;o<s;++o)this._+=Math.round(arguments[o]*n)/n+r[o]}}return vp}function EO(e,t){let n=3,i=4.5,r,o;function s(a){return a&&(typeof i=="function"&&o.pointRadius(+i.apply(this,arguments)),Vr(a,r(o))),o.result()}return s.area=function(a){return Vr(a,r(Yr)),Yr.result()},s.measure=function(a){return Vr(a,r(Qc)),Qc.result()},s.bounds=function(a){return Vr(a,r(yp)),yp.result()},s.centroid=function(a){return Vr(a,r(ui)),ui.result()},s.projection=function(a){return arguments.length?(r=a==null?(e=null,Kc):(e=a).stream,s):e},s.context=function(a){return arguments.length?(o=a==null?(t=null,new n$(n)):new mO(t=a),typeof i!="function"&&o.pointRadius(i),s):t},s.pointRadius=function(a){return arguments.length?(i=typeof a=="function"?a:(o.pointRadius(+a),+a),s):i},s.digits=function(a){if(!arguments.length)return n;if(a==null)n=null;else{const u=Math.floor(a);if(!(u>=0))throw new RangeError(`invalid digits: ${a}`);n=u}return t===null&&(o=new n$(n)),s},s.projection(e).digits(n).context(t)}function e0(e){return function(t){var n=new db;for(var i in e)n[i]=e[i];return n.stream=t,n}}function db(){}db.prototype={constructor:db,point:function(e,t){this.stream.point(e,t)},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 Z2(e,t,n){var i=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),i!=null&&e.clipExtent(null),Vr(n,e.stream(yp)),t(yp.result()),i!=null&&e.clipExtent(i),e}function t0(e,t,n){return Z2(e,function(i){var r=t[1][0]-t[0][0],o=t[1][1]-t[0][1],s=Math.min(r/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+t[0][0]+(r-s*(i[1][0]+i[0][0]))/2,u=+t[0][1]+(o-s*(i[1][1]+i[0][1]))/2;e.scale(150*s).translate([a,u])},n)}function eE(e,t,n){return t0(e,[[0,0],t],n)}function tE(e,t,n){return Z2(e,function(i){var r=+t,o=r/(i[1][0]-i[0][0]),s=(r-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];e.scale(150*o).translate([s,a])},n)}function nE(e,t,n){return Z2(e,function(i){var r=+t,o=r/(i[1][1]-i[0][1]),s=-o*i[0][0],a=(r-o*(i[1][1]+i[0][1]))/2;e.scale(150*o).translate([s,a])},n)}var i$=16,tV=ae(30*xe);function r$(e,t){return+t?iV(e,t):nV(e)}function nV(e){return e0({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}function iV(e,t){function n(i,r,o,s,a,u,l,c,f,d,h,p,g,m){var y=l-i,b=c-r,x=y*y+b*b;if(x>4*t&&g--){var v=s+d,w=a+h,A=u+p,E=Sn(v*v+w*w+A*A),S=zn(A/=E),C=Se(Se(A)-1)<oe||Se(o-f)<oe?(o+f)/2:yi(w,v),_=e(C,S),k=_[0],N=_[1],T=k-i,F=N-r,$=b*T-y*F;($*$/x>t||Se((y*T+b*F)/x-.5)>.3||s*d+a*h+u*p<tV)&&(n(i,r,o,s,a,u,k,N,C,v/=E,w/=E,A,g,m),m.point(k,N),n(k,N,C,v,w,A,l,c,f,d,h,p,g,m))}}return function(i){var r,o,s,a,u,l,c,f,d,h,p,g,m={point:y,lineStart:b,lineEnd:v,polygonStart:function(){i.polygonStart(),m.lineStart=w},polygonEnd:function(){i.polygonEnd(),m.lineStart=b}};function y(S,C){S=e(S,C),i.point(S[0],S[1])}function b(){f=NaN,m.point=x,i.lineStart()}function x(S,C){var _=ca([S,C]),k=e(S,C);n(f,d,c,h,p,g,f=k[0],d=k[1],c=S,h=_[0],p=_[1],g=_[2],i$,i),i.point(f,d)}function v(){m.point=y,i.lineEnd()}function w(){b(),m.point=A,m.lineEnd=E}function A(S,C){x(r=S,C),o=f,s=d,a=h,u=p,l=g,m.point=x}function E(){n(f,d,c,h,p,g,o,s,r,a,u,l,i$,i),m.lineEnd=v,v()}return m}}var rV=e0({point:function(e,t){this.stream.point(e*xe,t*xe)}});function oV(e){return e0({point:function(t,n){var i=e(t,n);return this.stream.point(i[0],i[1])}})}function sV(e,t,n,i,r){function o(s,a){return s*=i,a*=r,[t+e*s,n-e*a]}return o.invert=function(s,a){return[(s-t)/e*i,(n-a)/e*r]},o}function o$(e,t,n,i,r,o){if(!o)return sV(e,t,n,i,r);var s=ae(o),a=ne(o),u=s*e,l=a*e,c=s/e,f=a/e,d=(a*n-s*t)/e,h=(a*t+s*n)/e;function p(g,m){return g*=i,m*=r,[u*g-l*m+t,n-l*g-u*m]}return p.invert=function(g,m){return[i*(c*g-f*m+d),r*(h-f*g-c*m)]},p}function Fr(e){return wO(function(){return e})()}function wO(e){var t,n=150,i=480,r=250,o=0,s=0,a=0,u=0,l=0,c,f=0,d=1,h=1,p=null,g=YC,m=null,y,b,x,v=Kc,w=.5,A,E,S,C,_;function k($){return S($[0]*xe,$[1]*xe)}function N($){return $=S.invert($[0],$[1]),$&&[$[0]*ut,$[1]*ut]}k.stream=function($){return C&&_===$?C:C=rV(oV(c)(g(A(v(_=$)))))},k.preclip=function($){return arguments.length?(g=$,p=void 0,F()):g},k.postclip=function($){return arguments.length?(v=$,m=y=b=x=null,F()):v},k.clipAngle=function($){return arguments.length?(g=+$?UH(p=$*xe):(p=null,YC),F()):p*ut},k.clipExtent=function($){return arguments.length?(v=$==null?(m=y=b=x=null,Kc):lO(m=+$[0][0],y=+$[0][1],b=+$[1][0],x=+$[1][1]),F()):m==null?null:[[m,y],[b,x]]},k.scale=function($){return arguments.length?(n=+$,T()):n},k.translate=function($){return arguments.length?(i=+$[0],r=+$[1],T()):[i,r]},k.center=function($){return arguments.length?(o=$[0]%360*xe,s=$[1]%360*xe,T()):[o*ut,s*ut]},k.rotate=function($){return arguments.length?(a=$[0]%360*xe,u=$[1]%360*xe,l=$.length>2?$[2]%360*xe:0,T()):[a*ut,u*ut,l*ut]},k.angle=function($){return arguments.length?(f=$%360*xe,T()):f*ut},k.reflectX=function($){return arguments.length?(d=$?-1:1,T()):d<0},k.reflectY=function($){return arguments.length?(h=$?-1:1,T()):h<0},k.precision=function($){return arguments.length?(A=r$(E,w=$*$),F()):Sn(w)},k.fitExtent=function($,D){return t0(k,$,D)},k.fitSize=function($,D){return eE(k,$,D)},k.fitWidth=function($,D){return tE(k,$,D)},k.fitHeight=function($,D){return nE(k,$,D)};function T(){var $=o$(n,0,0,d,h,f).apply(null,t(o,s)),D=o$(n,i-$[0],r-$[1],d,h,f);return c=oO(a,u,l),E=nb(t,D),S=nb(c,E),A=r$(E,w),F()}function F(){return C=_=null,k}return function(){return t=e.apply(this,arguments),k.invert=t.invert&&N,T()}}function iE(e){var t=0,n=Ee/3,i=wO(e),r=i(t,n);return r.parallels=function(o){return arguments.length?i(t=o[0]*xe,n=o[1]*xe):[t*ut,n*ut]},r}function aV(e){var t=ae(e);function n(i,r){return[i*t,ne(r)/t]}return n.invert=function(i,r){return[i/t,zn(r*t)]},n}function uV(e,t){var n=ne(e),i=(n+ne(t))/2;if(Se(i)<oe)return aV(e);var r=1+n*(2*i-n),o=Sn(r)/i;function s(a,u){var l=Sn(r-2*i*ne(u))/i;return[l*ne(a*=i),o-l*ae(a)]}return s.invert=function(a,u){var l=o-u,c=yi(a,Se(l))*ci(l);return l*i<0&&(c-=Ee*ci(a)*ci(l)),[c/i,zn((r-(a*a+l*l)*i*i)/(2*i))]},s}function Ep(){return iE(uV).scale(155.424).center([0,33.6442])}function AO(){return Ep().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function lV(e){var t=e.length;return{point:function(n,i){for(var r=-1;++r<t;)e[r].point(n,i)},sphere:function(){for(var n=-1;++n<t;)e[n].sphere()},lineStart:function(){for(var n=-1;++n<t;)e[n].lineStart()},lineEnd:function(){for(var n=-1;++n<t;)e[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<t;)e[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<t;)e[n].polygonEnd()}}}function cV(){var e,t,n=AO(),i,r=Ep().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o,s=Ep().rotate([157,0]).center([-3,19.9]).parallels([8,18]),a,u,l={point:function(d,h){u=[d,h]}};function c(d){var h=d[0],p=d[1];return u=null,i.point(h,p),u||(o.point(h,p),u)||(a.point(h,p),u)}c.invert=function(d){var h=n.scale(),p=n.translate(),g=(d[0]-p[0])/h,m=(d[1]-p[1])/h;return(m>=.12&&m<.234&&g>=-.425&&g<-.214?r:m>=.166&&m<.234&&g>=-.214&&g<-.115?s:n).invert(d)},c.stream=function(d){return e&&t===d?e:e=lV([n.stream(t=d),r.stream(d),s.stream(d)])},c.precision=function(d){return arguments.length?(n.precision(d),r.precision(d),s.precision(d),f()):n.precision()},c.scale=function(d){return arguments.length?(n.scale(d),r.scale(d*.35),s.scale(d),c.translate(n.translate())):n.scale()},c.translate=function(d){if(!arguments.length)return n.translate();var h=n.scale(),p=+d[0],g=+d[1];return i=n.translate(d).clipExtent([[p-.455*h,g-.238*h],[p+.455*h,g+.238*h]]).stream(l),o=r.translate([p-.307*h,g+.201*h]).clipExtent([[p-.425*h+oe,g+.12*h+oe],[p-.214*h-oe,g+.234*h-oe]]).stream(l),a=s.translate([p-.205*h,g+.212*h]).clipExtent([[p-.214*h+oe,g+.166*h+oe],[p-.115*h-oe,g+.234*h-oe]]).stream(l),f()},c.fitExtent=function(d,h){return t0(c,d,h)},c.fitSize=function(d,h){return eE(c,d,h)},c.fitWidth=function(d,h){return tE(c,d,h)},c.fitHeight=function(d,h){return nE(c,d,h)};function f(){return e=t=null,c}return c.scale(1070)}function SO(e){return function(t,n){var i=ae(t),r=ae(n),o=e(i*r);return o===1/0?[2,0]:[o*r*ne(t),o*ne(n)]}}function If(e){return function(t,n){var i=Sn(t*t+n*n),r=e(i),o=ne(r),s=ae(r);return[yi(t*o,i*s),zn(i&&n*o/i)]}}var CO=SO(function(e){return Sn(2/(1+e))});CO.invert=If(function(e){return 2*zn(e/2)});function fV(){return Fr(CO).scale(124.75).clipAngle(180-.001)}var $O=SO(function(e){return(e=Y5(e))&&e/ne(e)});$O.invert=If(function(e){return e});function dV(){return Fr($O).scale(79.4188).clipAngle(180-.001)}function n0(e,t){return[e,np(J2((st+t)/2))]}n0.invert=function(e,t){return[e,2*hl(V5(t))-st]};function hV(){return _O(n0).scale(961/An)}function _O(e){var t=Fr(e),n=t.center,i=t.scale,r=t.translate,o=t.clipExtent,s=null,a,u,l;t.scale=function(f){return arguments.length?(i(f),c()):i()},t.translate=function(f){return arguments.length?(r(f),c()):r()},t.center=function(f){return arguments.length?(n(f),c()):n()},t.clipExtent=function(f){return arguments.length?(f==null?s=a=u=l=null:(s=+f[0][0],a=+f[0][1],u=+f[1][0],l=+f[1][1]),c()):s==null?null:[[s,a],[u,l]]};function c(){var f=Ee*i(),d=t(OH(t.rotate()).invert([0,0]));return o(s==null?[[d[0]-f,d[1]-f],[d[0]+f,d[1]+f]]:e===n0?[[Math.max(d[0]-f,s),a],[Math.min(d[0]+f,u),l]]:[[s,Math.max(d[1]-f,a)],[u,Math.min(d[1]+f,l)]])}return c()}function Dd(e){return J2((st+e)/2)}function pV(e,t){var n=ae(e),i=e===t?ne(e):np(n/ae(t))/np(Dd(t)/Dd(e)),r=n*Wm(Dd(e),i)/i;if(!i)return n0;function o(s,a){r>0?a<-st+oe&&(a=-st+oe):a>st-oe&&(a=st-oe);var u=r/Wm(Dd(a),i);return[u*ne(i*s),r-u*ae(i*s)]}return o.invert=function(s,a){var u=r-a,l=ci(i)*Sn(s*s+u*u),c=yi(s,Se(u))*ci(u);return u*i<0&&(c-=Ee*ci(s)*ci(u)),[c/i,2*hl(Wm(r/l,1/i))-st]},o}function gV(){return iE(pV).scale(109.5).parallels([30,30])}function wp(e,t){return[e,t]}wp.invert=wp;function mV(){return Fr(wp).scale(152.63)}function yV(e,t){var n=ae(e),i=e===t?ne(e):(n-ae(t))/(t-e),r=n/i+e;if(Se(i)<oe)return wp;function o(s,a){var u=r-a,l=i*s;return[u*ne(l),r-u*ae(l)]}return o.invert=function(s,a){var u=r-a,l=yi(s,Se(u))*ci(u);return u*i<0&&(l-=Ee*ci(s)*ci(u)),[l/i,r-ci(i)*Sn(s*s+u*u)]},o}function bV(){return iE(yV).scale(131.154).center([0,13.9389])}var Fc=1.340264,kc=-.081106,Dc=893e-6,Tc=.003796,Ap=Sn(3)/2,xV=12;function FO(e,t){var n=zn(Ap*ne(t)),i=n*n,r=i*i*i;return[e*ae(n)/(Ap*(Fc+3*kc*i+r*(7*Dc+9*Tc*i))),n*(Fc+kc*i+r*(Dc+Tc*i))]}FO.invert=function(e,t){for(var n=t,i=n*n,r=i*i*i,o=0,s,a,u;o<xV&&(a=n*(Fc+kc*i+r*(Dc+Tc*i))-t,u=Fc+3*kc*i+r*(7*Dc+9*Tc*i),n-=s=a/u,i=n*n,r=i*i*i,!(Se(s)<ep));++o);return[Ap*e*(Fc+3*kc*i+r*(7*Dc+9*Tc*i))/ae(n),zn(ne(n)/Ap)]};function vV(){return Fr(FO).scale(177.158)}function kO(e,t){var n=ae(t),i=ae(e)*n;return[n*ne(e)/i,ne(t)/i]}kO.invert=If(hl);function EV(){return Fr(kO).scale(144.049).clipAngle(60)}function wV(){var e=1,t=0,n=0,i=1,r=1,o=0,s,a,u=null,l,c,f,d=1,h=1,p=e0({point:function(v,w){var A=x([v,w]);this.stream.point(A[0],A[1])}}),g=Kc,m,y;function b(){return d=e*i,h=e*r,m=y=null,x}function x(v){var w=v[0]*d,A=v[1]*h;if(o){var E=A*s-w*a;w=w*s+A*a,A=E}return[w+t,A+n]}return x.invert=function(v){var w=v[0]-t,A=v[1]-n;if(o){var E=A*s+w*a;w=w*s-A*a,A=E}return[w/d,A/h]},x.stream=function(v){return m&&y===v?m:m=p(g(y=v))},x.postclip=function(v){return arguments.length?(g=v,u=l=c=f=null,b()):g},x.clipExtent=function(v){return arguments.length?(g=v==null?(u=l=c=f=null,Kc):lO(u=+v[0][0],l=+v[0][1],c=+v[1][0],f=+v[1][1]),b()):u==null?null:[[u,l],[c,f]]},x.scale=function(v){return arguments.length?(e=+v,b()):e},x.translate=function(v){return arguments.length?(t=+v[0],n=+v[1],b()):[t,n]},x.angle=function(v){return arguments.length?(o=v%360*xe,a=ne(o),s=ae(o),b()):o*ut},x.reflectX=function(v){return arguments.length?(i=v?-1:1,b()):i<0},x.reflectY=function(v){return arguments.length?(r=v?-1:1,b()):r<0},x.fitExtent=function(v,w){return t0(x,v,w)},x.fitSize=function(v,w){return eE(x,v,w)},x.fitWidth=function(v,w){return tE(x,v,w)},x.fitHeight=function(v,w){return nE(x,v,w)},x}function DO(e,t){var n=t*t,i=n*n;return[e*(.8707-.131979*n+i*(-.013791+i*(.003971*n-.001529*i))),t*(1.007226+n*(.015085+i*(-.044475+.028874*n-.005916*i)))]}DO.invert=function(e,t){var n=t,i=25,r;do{var o=n*n,s=o*o;n-=r=(n*(1.007226+o*(.015085+s*(-.044475+.028874*o-.005916*s)))-t)/(1.007226+o*(.015085*3+s*(-.044475*7+.028874*9*o-.005916*11*s)))}while(Se(r)>oe&&--i>0);return[e/(.8707+(o=n*n)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),n]};function AV(){return Fr(DO).scale(175.295)}function TO(e,t){return[ae(t)*ne(e),ne(t)]}TO.invert=If(zn);function SV(){return Fr(TO).scale(249.5).clipAngle(90+oe)}function MO(e,t){var n=ae(t),i=1+ae(e)*n;return[n*ne(e)/i,ne(t)/i]}MO.invert=If(function(e){return 2*hl(e)});function CV(){return Fr(MO).scale(250).clipAngle(142)}function OO(e,t){return[np(J2((st+t)/2)),-e]}OO.invert=function(e,t){return[-t,2*hl(V5(e))-st]};function $V(){var e=_O(OO),t=e.center,n=e.rotate;return e.center=function(i){return arguments.length?t([-i[1],i[0]]):(i=t(),[i[1],-i[0]])},e.rotate=function(i){return arguments.length?n([i[0],i[1],i.length>2?i[2]+90:90]):(i=n(),[i[0],i[1],i[2]-90])},n([0,0,90]).scale(159.155)}var _V=Math.abs,hb=Math.cos,Sp=Math.sin,FV=1e-6,RO=Math.PI,pb=RO/2,s$=kV(2);function a$(e){return e>1?pb:e<-1?-pb:Math.asin(e)}function kV(e){return e>0?Math.sqrt(e):0}function DV(e,t){var n=e*Sp(t),i=30,r;do t-=r=(t+Sp(t)-n)/(1+hb(t));while(_V(r)>FV&&--i>0);return t/2}function TV(e,t,n){function i(r,o){return[e*r*hb(o=DV(n,o)),t*Sp(o)]}return i.invert=function(r,o){return o=a$(o/t),[r/(e*hb(o)),a$((2*o+Sp(2*o))/n)]},i}var MV=TV(s$/pb,s$,RO);function OV(){return Fr(MV).scale(169.529)}const RV=EO(),gb=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function NV(e,t){return function n(){const i=t();return i.type=e,i.path=EO().projection(i),i.copy=i.copy||function(){const r=n();return gb.forEach(o=>{i[o]&&r[o](i[o]())}),r.path.pointRadius(i.path.pointRadius()),r},XT(i)}}function rE(e,t){if(!e||typeof e!="string")throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(Cp[e]=NV(e,t),this):Cp[e]||null}function NO(e){return e&&e.path||RV}const Cp={albers:AO,albersusa:cV,azimuthalequalarea:fV,azimuthalequidistant:dV,conicconformal:gV,conicequalarea:Ep,conicequidistant:bV,equalEarth:vV,equirectangular:mV,gnomonic:EV,identity:wV,mercator:hV,mollweide:OV,naturalEarth1:AV,orthographic:SV,stereographic:CV,transversemercator:$V};for(const e in Cp)rE(e,Cp[e]);function LV(){}const zr=[[],[[[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 LO(){var e=1,t=1,n=a;function i(u,l){return l.map(c=>r(u,c))}function r(u,l){var c=[],f=[];return o(u,l,d=>{n(d,u,l),PV(d)>0?c.push([d]):f.push(d)}),f.forEach(d=>{for(var h=0,p=c.length,g;h<p;++h)if(IV((g=c[h])[0],d)!==-1){g.push(d);return}}),{type:"MultiPolygon",value:l,coordinates:c}}function o(u,l,c){var f=[],d=[],h,p,g,m,y,b;for(h=p=-1,m=u[0]>=l,zr[m<<1].forEach(x);++h<e-1;)g=m,m=u[h+1]>=l,zr[g|m<<1].forEach(x);for(zr[m<<0].forEach(x);++p<t-1;){for(h=-1,m=u[p*e+e]>=l,y=u[p*e]>=l,zr[m<<1|y<<2].forEach(x);++h<e-1;)g=m,m=u[p*e+e+h+1]>=l,b=y,y=u[p*e+h+1]>=l,zr[g|m<<1|y<<2|b<<3].forEach(x);zr[m|y<<3].forEach(x)}for(h=-1,y=u[p*e]>=l,zr[y<<2].forEach(x);++h<e-1;)b=y,y=u[p*e+h+1]>=l,zr[y<<2|b<<3].forEach(x);zr[y<<3].forEach(x);function x(v){var w=[v[0][0]+h,v[0][1]+p],A=[v[1][0]+h,v[1][1]+p],E=s(w),S=s(A),C,_;(C=d[E])?(_=f[S])?(delete d[C.end],delete f[_.start],C===_?(C.ring.push(A),c(C.ring)):f[C.start]=d[_.end]={start:C.start,end:_.end,ring:C.ring.concat(_.ring)}):(delete d[C.end],C.ring.push(A),d[C.end=S]=C):(C=f[S])?(_=d[E])?(delete f[C.start],delete d[_.end],C===_?(C.ring.push(A),c(C.ring)):f[_.start]=d[C.end]={start:_.start,end:C.end,ring:_.ring.concat(C.ring)}):(delete f[C.start],C.ring.unshift(w),f[C.start=E]=C):f[E]=d[S]={start:E,end:S,ring:[w,A]}}}function s(u){return u[0]*2+u[1]*(e+1)*4}function a(u,l,c){u.forEach(f=>{var d=f[0],h=f[1],p=d|0,g=h|0,m,y=l[g*e+p];d>0&&d<e&&p===d&&(m=l[g*e+p-1],f[0]=d+(c-m)/(y-m)-.5),h>0&&h<t&&g===h&&(m=l[(g-1)*e+p],f[1]=h+(c-m)/(y-m)-.5)})}return i.contour=r,i.size=function(u){if(!arguments.length)return[e,t];var l=Math.floor(u[0]),c=Math.floor(u[1]);return l>=0&&c>=0||L("invalid size"),e=l,t=c,i},i.smooth=function(u){return arguments.length?(n=u?a:LV,i):n===a},i}function PV(e){for(var t=0,n=e.length,i=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)i+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return i}function IV(e,t){for(var n=-1,i=t.length,r;++n<i;)if(r=zV(e,t[n]))return r;return 0}function zV(e,t){for(var n=t[0],i=t[1],r=-1,o=0,s=e.length,a=s-1;o<s;a=o++){var u=e[o],l=u[0],c=u[1],f=e[a],d=f[0],h=f[1];if(BV(u,f,t))return 0;c>i!=h>i&&n<(d-l)*(i-c)/(h-c)+l&&(r=-r)}return r}function BV(e,t,n){var i;return UV(e,t,n)&&jV(e[i=+(e[0]===t[0])],n[i],t[i])}function UV(e,t,n){return(t[0]-e[0])*(n[1]-e[1])===(n[0]-e[0])*(t[1]-e[1])}function jV(e,t,n){return e<=t&&t<=n||n<=t&&t<=e}function PO(e,t,n){return function(i){var r=lo(i),o=n?Math.min(r[0],0):r[0],s=r[1],a=s-o,u=t?ra(o,s,e):a/(e+1);return Yn(o+u,s,u)}}function oE(e){M.call(this,null,e)}oE.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"}]};G(oE,M,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=t.materialize(t.SOURCE).source,r=e.field||Ln,o=LO().smooth(e.smooth!==!1),s=e.thresholds||qV(i,r,e),a=e.as===null?null:e.as||"contour",u=[];return i.forEach(l=>{const c=r(l),f=o.size([c.width,c.height])(c.values,Z(s)?s:s(c.values));WV(f,c,l,e),f.forEach(d=>{u.push(Ag(l,Oe(a!=null?{[a]:d}:d)))})}),this.value&&(n.rem=this.value),this.value=n.source=n.add=u,n}});function qV(e,t,n){const i=PO(n.levels||10,n.nice,n.zero!==!1);return n.resolve!=="shared"?i:i(e.map(r=>Xs(t(r).values)))}function WV(e,t,n,i){let r=i.scale||t.scale,o=i.translate||t.translate;if(be(r)&&(r=r(n,i)),be(o)&&(o=o(n,i)),(r===1||r==null)&&!o)return;const s=(sa(r)?r:r[0])||1,a=(sa(r)?r:r[1])||1,u=o&&o[0]||0,l=o&&o[1]||0;e.forEach(IO(t,s,a,u,l))}function IO(e,t,n,i,r){const o=e.x1||0,s=e.y1||0,a=t*n<0;function u(f){f.forEach(l)}function l(f){a&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-o)*t+i,f[1]=(f[1]-s)*n+r}return function(f){return f.coordinates.forEach(u),f}}function u$(e,t,n){const i=e>=0?e:ev(t,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function Xm(e){return be(e)?e:wn(+e)}function zO(){var e=u=>u[0],t=u=>u[1],n=xf,i=[-1,-1],r=960,o=500,s=2;function a(u,l){const c=u$(i[0],u,e)>>s,f=u$(i[1],u,t)>>s,d=c?c+2:0,h=f?f+2:0,p=2*d+(r>>s),g=2*h+(o>>s),m=new Float32Array(p*g),y=new Float32Array(p*g);let b=m;u.forEach(v=>{const w=d+(+e(v)>>s),A=h+(+t(v)>>s);w>=0&&w<p&&A>=0&&A<g&&(m[w+A*p]+=+n(v))}),c>0&&f>0?(Qa(p,g,m,y,c),Za(p,g,y,m,f),Qa(p,g,m,y,c),Za(p,g,y,m,f),Qa(p,g,m,y,c),Za(p,g,y,m,f)):c>0?(Qa(p,g,m,y,c),Qa(p,g,y,m,c),Qa(p,g,m,y,c),b=y):f>0&&(Za(p,g,m,y,f),Za(p,g,y,m,f),Za(p,g,m,y,f),b=y);const x=l?Math.pow(2,-2*s):1/wD(b);for(let v=0,w=p*g;v<w;++v)b[v]*=x;return{values:b,scale:1<<s,width:p,height:g,x1:d,y1:h,x2:d+(r>>s),y2:h+(o>>s)}}return a.x=function(u){return arguments.length?(e=Xm(u),a):e},a.y=function(u){return arguments.length?(t=Xm(u),a):t},a.weight=function(u){return arguments.length?(n=Xm(u),a):n},a.size=function(u){if(!arguments.length)return[r,o];var l=+u[0],c=+u[1];return l>=0&&c>=0||L("invalid size"),r=l,o=c,a},a.cellSize=function(u){return arguments.length?((u=+u)>=1||L("invalid cell size"),s=Math.floor(Math.log(u)/Math.LN2),a):1<<s},a.bandwidth=function(u){return arguments.length?(u=se(u),u.length===1&&(u=[+u[0],+u[0]]),u.length!==2&&L("invalid bandwidth"),i=u,a):i},a}function Qa(e,t,n,i,r){const o=(r<<1)+1;for(let s=0;s<t;++s)for(let a=0,u=0;a<e+r;++a)a<e&&(u+=n[a+s*e]),a>=r&&(a>=o&&(u-=n[a-o+s*e]),i[a-r+s*e]=u/Math.min(a+1,e-1+o-a,o))}function Za(e,t,n,i,r){const o=(r<<1)+1;for(let s=0;s<e;++s)for(let a=0,u=0;a<t+r;++a)a<t&&(u+=n[s+a*e]),a>=r&&(a>=o&&(u-=n[s+(a-o)*e]),i[s+(a-r)*e]=u/Math.min(a+1,t-1+o-a,o))}function sE(e){M.call(this,null,e)}sE.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 GV=["x","y","weight","size","cellSize","bandwidth"];function BO(e,t){return GV.forEach(n=>t[n]!=null?e[n](t[n]):0),e}G(sE,M,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=t.materialize(t.SOURCE).source,r=HV(i,e.groupby),o=(e.groupby||[]).map(lt),s=BO(zO(),e),a=e.as||"grid",u=[];function l(c,f){for(let d=0;d<o.length;++d)c[o[d]]=f[d];return c}return u=r.map(c=>Oe(l({[a]:s(c,e.counts)},c.dims))),this.value&&(n.rem=this.value),this.value=n.source=n.add=u,n}});function HV(e,t){var n=[],i=c=>c(a),r,o,s,a,u,l;if(t==null)n.push(e);else for(r={},o=0,s=e.length;o<s;++o)a=e[o],u=t.map(i),l=r[u],l||(r[u]=l=[],l.dims=u,n.push(l)),l.push(a);return n}function aE(e){M.call(this,null,e)}aE.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}]};G(aE,M,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=LO().smooth(e.smooth!==!1),r=e.values,o=e.thresholds||PO(e.count||10,e.nice,!!r),s=e.size,a,u;return r||(r=t.materialize(t.SOURCE).source,a=BO(zO(),e)(r,!0),u=IO(a,a.scale||1,a.scale||1,0,0),s=[a.width,a.height],r=a.values),o=Z(o)?o:o(r),r=i.size(s)(r,o),u&&r.forEach(u),this.value&&(n.rem=this.value),this.value=n.source=n.add=(r||[]).map(Oe),n}});const mb="Feature",uE="FeatureCollection",VV="MultiPoint";function lE(e){M.call(this,null,e)}lE.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]};G(lE,M,{transform(e,t){var n=this._features,i=this._points,r=e.fields,o=r&&r[0],s=r&&r[1],a=e.geojson||!r&&Ln,u=t.ADD,l;l=e.modified()||t.changed(t.REM)||t.modified(xn(a))||o&&t.modified(xn(o))||s&&t.modified(xn(s)),(!this.value||l)&&(u=t.SOURCE,this._features=n=[],this._points=i=[]),a&&t.visit(u,c=>n.push(a(c))),o&&s&&(t.visit(u,c=>{var f=o(c),d=s(c);f!=null&&d!=null&&(f=+f)===f&&(d=+d)===d&&i.push([f,d])}),n=n.concat({type:mb,geometry:{type:VV,coordinates:i}})),this.value={type:uE,features:n}}});function cE(e){M.call(this,null,e)}cE.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"}]};G(cE,M,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.field||Ln,o=e.as||"path",s=n.SOURCE;!i||e.modified()?(this.value=i=NO(e.projection),n.materialize().reflow()):s=r===Ln||t.modified(r.fields)?n.ADD_MOD:n.ADD;const a=YV(i,e.pointRadius);return n.visit(s,u=>u[o]=i(r(u))),i.pointRadius(a),n.modifies(o)}});function YV(e,t){const n=e.pointRadius();return e.context(null),t!=null&&e.pointRadius(t),n}function fE(e){M.call(this,null,e)}fE.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"]}]};G(fE,M,{transform(e,t){var n=e.projection,i=e.fields[0],r=e.fields[1],o=e.as||["x","y"],s=o[0],a=o[1],u;function l(c){const f=n([i(c),r(c)]);f?(c[s]=f[0],c[a]=f[1]):(c[s]=void 0,c[a]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,l):(u=t.modified(i.fields)||t.modified(r.fields),t.visit(u?t.ADD_MOD:t.ADD,l)),t.modifies(o)}});function dE(e){M.call(this,null,e)}dE.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"}]};G(dE,M,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.as||"shape",o=n.ADD;return(!i||e.modified())&&(this.value=i=XV(NO(e.projection),e.field||Li("datum"),e.pointRadius),n.materialize().reflow(),o=n.SOURCE),n.visit(o,s=>s[r]=i),n.modifies(r)}});function XV(e,t,n){const i=n==null?r=>e(t(r)):r=>{var o=e.pointRadius(),s=e.pointRadius(n)(t(r));return e.pointRadius(o),s};return i.context=r=>(e.context(r),i),i}function hE(e){M.call(this,[],e),this.generator=qH()}hE.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}]};G(hE,M,{transform(e,t){var n=this.value,i=this.generator,r;if(!n.length||e.modified())for(const o in e)be(i[o])&&i[o](e[o]);return r=i(),n.length?t.mod.push(d3(n[0],r)):t.add.push(Oe(r)),n[0]=r,t}});function pE(e){M.call(this,null,e)}pE.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"}]};G(pE,M,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,i=e.resolve==="shared",r=e.field||Ln,o=JV(e.opacity,e),s=KV(e.color,e),a=e.as||"image",u={$x:0,$y:0,$value:0,$max:i?Xs(n.map(l=>Xs(r(l).values))):0};return n.forEach(l=>{const c=r(l),f=ye({},l,u);i||(f.$max=Xs(c.values||[])),l[a]=QV(c,f,s.dep?s:wn(s(f)),o.dep?o:wn(o(f)))}),t.reflow(!0).modifies(a)}});function KV(e,t){let n;return be(e)?(n=i=>Ch(e(i,t)),n.dep=UO(e)):n=wn(Ch(e||"#888")),n}function JV(e,t){let n;return be(e)?(n=i=>e(i,t),n.dep=UO(e)):e?n=wn(e):(n=i=>i.$value/i.$max||0,n.dep=!0),n}function UO(e){if(!be(e))return!1;const t=yr(xn(e));return t.$x||t.$y||t.$value||t.$max}function QV(e,t,n,i){const r=e.width,o=e.height,s=e.x1||0,a=e.y1||0,u=e.x2||r,l=e.y2||o,c=e.values,f=c?m=>c[m]:zs,d=Vo(u-s,l-a),h=d.getContext("2d"),p=h.getImageData(0,0,u-s,l-a),g=p.data;for(let m=a,y=0;m<l;++m){t.$y=m-a;for(let b=s,x=m*r;b<u;++b,y+=4){t.$x=b-s,t.$value=f(b+x);const v=n(t);g[y+0]=v.r,g[y+1]=v.g,g[y+2]=v.b,g[y+3]=~~(255*i(t))}}return h.putImageData(p,0,0),d}function jO(e){M.call(this,null,e),this.modified(!0)}G(jO,M,{transform(e,t){let n=this.value;return!n||e.modified("type")?(this.value=n=eY(e.type),gb.forEach(i=>{e[i]!=null&&l$(n,i,e[i])})):gb.forEach(i=>{e.modified(i)&&l$(n,i,e[i])}),e.pointRadius!=null&&n.path.pointRadius(e.pointRadius),e.fit&&ZV(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});function ZV(e,t){const n=tY(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}function eY(e){const t=rE((e||"mercator").toLowerCase());return t||L("Unrecognized projection type: "+e),t()}function l$(e,t,n){be(e[t])&&e[t](n)}function tY(e){return e=se(e),e.length===1?e[0]:{type:uE,features:e.reduce((t,n)=>t.concat(nY(n)),[])}}function nY(e){return e.type===uE?e.features:se(e).filter(t=>t!=null).map(t=>t.type===mb?t:{type:mb,geometry:t})}const iY=Object.freeze(Object.defineProperty({__proto__:null,contour:aE,geojson:lE,geopath:cE,geopoint:fE,geoshape:dE,graticule:hE,heatmap:pE,isocontour:oE,kde2d:sE,projection:jO},Symbol.toStringTag,{value:"Module"}));function rY(e,t){var n,i=1;e==null&&(e=0),t==null&&(t=0);function r(){var o,s=n.length,a,u=0,l=0;for(o=0;o<s;++o)a=n[o],u+=a.x,l+=a.y;for(u=(u/s-e)*i,l=(l/s-t)*i,o=0;o<s;++o)a=n[o],a.x-=u,a.y-=l}return r.initialize=function(o){n=o},r.x=function(o){return arguments.length?(e=+o,r):e},r.y=function(o){return arguments.length?(t=+o,r):t},r.strength=function(o){return arguments.length?(i=+o,r):i},r}function oY(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return qO(this.cover(t,n),t,n,e)}function qO(e,t,n,i){if(isNaN(t)||isNaN(n))return e;var r,o=e._root,s={data:i},a=e._x0,u=e._y0,l=e._x1,c=e._y1,f,d,h,p,g,m,y,b;if(!o)return e._root=s,e;for(;o.length;)if((g=t>=(f=(a+l)/2))?a=f:l=f,(m=n>=(d=(u+c)/2))?u=d:c=d,r=o,!(o=o[y=m<<1|g]))return r[y]=s,e;if(h=+e._x.call(null,o.data),p=+e._y.call(null,o.data),t===h&&n===p)return s.next=o,r?r[y]=s:e._root=s,e;do r=r?r[y]=new Array(4):e._root=new Array(4),(g=t>=(f=(a+l)/2))?a=f:l=f,(m=n>=(d=(u+c)/2))?u=d:c=d;while((y=m<<1|g)===(b=(p>=d)<<1|h>=f));return r[b]=o,r[y]=s,e}function sY(e){var t,n,i=e.length,r,o,s=new Array(i),a=new Array(i),u=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<i;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(s[n]=r,a[n]=o,r<u&&(u=r),r>c&&(c=r),o<l&&(l=o),o>f&&(f=o));if(u>c||l>f)return this;for(this.cover(u,l).cover(c,f),n=0;n<i;++n)qO(this,s[n],a[n],e[n]);return this}function aY(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,i=this._y0,r=this._x1,o=this._y1;if(isNaN(n))r=(n=Math.floor(e))+1,o=(i=Math.floor(t))+1;else{for(var s=r-n||1,a=this._root,u,l;n>e||e>=r||i>t||t>=o;)switch(l=(t<i)<<1|e<n,u=new Array(4),u[l]=a,a=u,s*=2,l){case 0:r=n+s,o=i+s;break;case 1:n=r-s,o=i+s;break;case 2:r=n+s,i=o-s;break;case 3:n=r-s,i=o-s;break}this._root&&this._root.length&&(this._root=a)}return this._x0=n,this._y0=i,this._x1=r,this._y1=o,this}function uY(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e}function lY(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function gn(e,t,n,i,r){this.node=e,this.x0=t,this.y0=n,this.x1=i,this.y1=r}function cY(e,t,n){var i,r=this._x0,o=this._y0,s,a,u,l,c=this._x1,f=this._y1,d=[],h=this._root,p,g;for(h&&d.push(new gn(h,r,o,c,f)),n==null?n=1/0:(r=e-n,o=t-n,c=e+n,f=t+n,n*=n);p=d.pop();)if(!(!(h=p.node)||(s=p.x0)>c||(a=p.y0)>f||(u=p.x1)<r||(l=p.y1)<o))if(h.length){var m=(s+u)/2,y=(a+l)/2;d.push(new gn(h[3],m,y,u,l),new gn(h[2],s,y,m,l),new gn(h[1],m,a,u,y),new gn(h[0],s,a,m,y)),(g=(t>=y)<<1|e>=m)&&(p=d[d.length-1],d[d.length-1]=d[d.length-1-g],d[d.length-1-g]=p)}else{var b=e-+this._x.call(null,h.data),x=t-+this._y.call(null,h.data),v=b*b+x*x;if(v<n){var w=Math.sqrt(n=v);r=e-w,o=t-w,c=e+w,f=t+w,i=h.data}}return i}function fY(e){if(isNaN(c=+this._x.call(null,e))||isNaN(f=+this._y.call(null,e)))return this;var t,n=this._root,i,r,o,s=this._x0,a=this._y0,u=this._x1,l=this._y1,c,f,d,h,p,g,m,y;if(!n)return this;if(n.length)for(;;){if((p=c>=(d=(s+u)/2))?s=d:u=d,(g=f>=(h=(a+l)/2))?a=h:l=h,t=n,!(n=n[m=g<<1|p]))return this;if(!n.length)break;(t[m+1&3]||t[m+2&3]||t[m+3&3])&&(i=t,y=m)}for(;n.data!==e;)if(r=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,r?(o?r.next=o:delete r.next,this):t?(o?t[m]=o:delete t[m],(n=t[0]||t[1]||t[2]||t[3])&&n===(t[3]||t[2]||t[1]||t[0])&&!n.length&&(i?i[y]=n:this._root=n),this):(this._root=o,this)}function dY(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this}function hY(){return this._root}function pY(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e}function gY(e){var t=[],n,i=this._root,r,o,s,a,u;for(i&&t.push(new gn(i,this._x0,this._y0,this._x1,this._y1));n=t.pop();)if(!e(i=n.node,o=n.x0,s=n.y0,a=n.x1,u=n.y1)&&i.length){var l=(o+a)/2,c=(s+u)/2;(r=i[3])&&t.push(new gn(r,l,c,a,u)),(r=i[2])&&t.push(new gn(r,o,c,l,u)),(r=i[1])&&t.push(new gn(r,l,s,a,c)),(r=i[0])&&t.push(new gn(r,o,s,l,c))}return this}function mY(e){var t=[],n=[],i;for(this._root&&t.push(new gn(this._root,this._x0,this._y0,this._x1,this._y1));i=t.pop();){var r=i.node;if(r.length){var o,s=i.x0,a=i.y0,u=i.x1,l=i.y1,c=(s+u)/2,f=(a+l)/2;(o=r[0])&&t.push(new gn(o,s,a,c,f)),(o=r[1])&&t.push(new gn(o,c,a,u,f)),(o=r[2])&&t.push(new gn(o,s,f,c,l)),(o=r[3])&&t.push(new gn(o,c,f,u,l))}n.push(i)}for(;i=n.pop();)e(i.node,i.x0,i.y0,i.x1,i.y1);return this}function yY(e){return e[0]}function bY(e){return arguments.length?(this._x=e,this):this._x}function xY(e){return e[1]}function vY(e){return arguments.length?(this._y=e,this):this._y}function gE(e,t,n){var i=new mE(t??yY,n??xY,NaN,NaN,NaN,NaN);return e==null?i:i.addAll(e)}function mE(e,t,n,i,r,o){this._x=e,this._y=t,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function c$(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var $n=gE.prototype=mE.prototype;$n.copy=function(){var e=new mE(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,n,i;if(!t)return e;if(!t.length)return e._root=c$(t),e;for(n=[{source:t,target:e._root=new Array(4)}];t=n.pop();)for(var r=0;r<4;++r)(i=t.source[r])&&(i.length?n.push({source:i,target:t.target[r]=new Array(4)}):t.target[r]=c$(i));return e};$n.add=oY;$n.addAll=sY;$n.cover=aY;$n.data=uY;$n.extent=lY;$n.find=cY;$n.remove=fY;$n.removeAll=dY;$n.root=hY;$n.size=pY;$n.visit=gY;$n.visitAfter=mY;$n.x=bY;$n.y=vY;function yn(e){return function(){return e}}function jo(e){return(e()-.5)*1e-6}function EY(e){return e.x+e.vx}function wY(e){return e.y+e.vy}function AY(e){var t,n,i,r=1,o=1;typeof e!="function"&&(e=yn(e==null?1:+e));function s(){for(var l,c=t.length,f,d,h,p,g,m,y=0;y<o;++y)for(f=gE(t,EY,wY).visitAfter(a),l=0;l<c;++l)d=t[l],g=n[d.index],m=g*g,h=d.x+d.vx,p=d.y+d.vy,f.visit(b);function b(x,v,w,A,E){var S=x.data,C=x.r,_=g+C;if(S){if(S.index>d.index){var k=h-S.x-S.vx,N=p-S.y-S.vy,T=k*k+N*N;T<_*_&&(k===0&&(k=jo(i),T+=k*k),N===0&&(N=jo(i),T+=N*N),T=(_-(T=Math.sqrt(T)))/T*r,d.vx+=(k*=T)*(_=(C*=C)/(m+C)),d.vy+=(N*=T)*_,S.vx-=k*(_=1-_),S.vy-=N*_)}return}return v>h+_||A<h-_||w>p+_||E<p-_}}function a(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 u(){if(t){var l,c=t.length,f;for(n=new Array(c),l=0;l<c;++l)f=t[l],n[f.index]=+e(f,l,t)}}return s.initialize=function(l,c){t=l,i=c,u()},s.iterations=function(l){return arguments.length?(o=+l,s):o},s.strength=function(l){return arguments.length?(r=+l,s):r},s.radius=function(l){return arguments.length?(e=typeof l=="function"?l:yn(+l),u(),s):e},s}function SY(e){return e.index}function f$(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function CY(e){var t=SY,n=f,i,r=yn(30),o,s,a,u,l,c=1;e==null&&(e=[]);function f(m){return 1/Math.min(a[m.source.index],a[m.target.index])}function d(m){for(var y=0,b=e.length;y<c;++y)for(var x=0,v,w,A,E,S,C,_;x<b;++x)v=e[x],w=v.source,A=v.target,E=A.x+A.vx-w.x-w.vx||jo(l),S=A.y+A.vy-w.y-w.vy||jo(l),C=Math.sqrt(E*E+S*S),C=(C-o[x])/C*m*i[x],E*=C,S*=C,A.vx-=E*(_=u[x]),A.vy-=S*_,w.vx+=E*(_=1-_),w.vy+=S*_}function h(){if(s){var m,y=s.length,b=e.length,x=new Map(s.map((w,A)=>[t(w,A,s),w])),v;for(m=0,a=new Array(y);m<b;++m)v=e[m],v.index=m,typeof v.source!="object"&&(v.source=f$(x,v.source)),typeof v.target!="object"&&(v.target=f$(x,v.target)),a[v.source.index]=(a[v.source.index]||0)+1,a[v.target.index]=(a[v.target.index]||0)+1;for(m=0,u=new Array(b);m<b;++m)v=e[m],u[m]=a[v.source.index]/(a[v.source.index]+a[v.target.index]);i=new Array(b),p(),o=new Array(b),g()}}function p(){if(s)for(var m=0,y=e.length;m<y;++m)i[m]=+n(e[m],m,e)}function g(){if(s)for(var m=0,y=e.length;m<y;++m)o[m]=+r(e[m],m,e)}return d.initialize=function(m,y){s=m,l=y,h()},d.links=function(m){return arguments.length?(e=m,h(),d):e},d.id=function(m){return arguments.length?(t=m,d):t},d.iterations=function(m){return arguments.length?(c=+m,d):c},d.strength=function(m){return arguments.length?(n=typeof m=="function"?m:yn(+m),p(),d):n},d.distance=function(m){return arguments.length?(r=typeof m=="function"?m:yn(+m),g(),d):r},d}function $Y(e,t,n){var i=new s9,r=t;return t==null?(i.restart(e,t,n),i):(i._restart=i.restart,i.restart=function(o,s,a){s=+s,a=a==null?a9():+a,i._restart(function u(l){l+=r,i._restart(u,r+=s,a),o(l)},s,a)},i.restart(e,t,n),i)}const _Y=1664525,FY=1013904223,d$=4294967296;function kY(){let e=1;return()=>(e=(_Y*e+FY)%d$)/d$}function DY(e){return e.x}function TY(e){return e.y}var MY=10,OY=Math.PI*(3-Math.sqrt(5));function RY(e){var t,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,s=.6,a=new Map,u=u9(f),l=l9("tick","end"),c=kY();e==null&&(e=[]);function f(){d(),l.call("tick",t),n<i&&(u.stop(),l.call("end",t))}function d(g){var m,y=e.length,b;g===void 0&&(g=1);for(var x=0;x<g;++x)for(n+=(o-n)*r,a.forEach(function(v){v(n)}),m=0;m<y;++m)b=e[m],b.fx==null?b.x+=b.vx*=s:(b.x=b.fx,b.vx=0),b.fy==null?b.y+=b.vy*=s:(b.y=b.fy,b.vy=0);return t}function h(){for(var g=0,m=e.length,y;g<m;++g){if(y=e[g],y.index=g,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var b=MY*Math.sqrt(.5+g),x=g*OY;y.x=b*Math.cos(x),y.y=b*Math.sin(x)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function p(g){return g.initialize&&g.initialize(e,c),g}return h(),t={tick:d,restart:function(){return u.restart(f),t},stop:function(){return u.stop(),t},nodes:function(g){return arguments.length?(e=g,h(),a.forEach(p),t):e},alpha:function(g){return arguments.length?(n=+g,t):n},alphaMin:function(g){return arguments.length?(i=+g,t):i},alphaDecay:function(g){return arguments.length?(r=+g,t):+r},alphaTarget:function(g){return arguments.length?(o=+g,t):o},velocityDecay:function(g){return arguments.length?(s=1-g,t):1-s},randomSource:function(g){return arguments.length?(c=g,a.forEach(p),t):c},force:function(g,m){return arguments.length>1?(m==null?a.delete(g):a.set(g,p(m)),t):a.get(g)},find:function(g,m,y){var b=0,x=e.length,v,w,A,E,S;for(y==null?y=1/0:y*=y,b=0;b<x;++b)E=e[b],v=g-E.x,w=m-E.y,A=v*v+w*w,A<y&&(S=E,y=A);return S},on:function(g,m){return arguments.length>1?(l.on(g,m),t):l.on(g)}}}function NY(){var e,t,n,i,r=yn(-30),o,s=1,a=1/0,u=.81;function l(h){var p,g=e.length,m=gE(e,DY,TY).visitAfter(f);for(i=h,p=0;p<g;++p)t=e[p],m.visit(d)}function c(){if(e){var h,p=e.length,g;for(o=new Array(p),h=0;h<p;++h)g=e[h],o[g.index]=+r(g,h,e)}}function f(h){var p=0,g,m,y=0,b,x,v;if(h.length){for(b=x=v=0;v<4;++v)(g=h[v])&&(m=Math.abs(g.value))&&(p+=g.value,y+=m,b+=m*g.x,x+=m*g.y);h.x=b/y,h.y=x/y}else{g=h,g.x=g.data.x,g.y=g.data.y;do p+=o[g.data.index];while(g=g.next)}h.value=p}function d(h,p,g,m){if(!h.value)return!0;var y=h.x-t.x,b=h.y-t.y,x=m-p,v=y*y+b*b;if(x*x/u<v)return v<a&&(y===0&&(y=jo(n),v+=y*y),b===0&&(b=jo(n),v+=b*b),v<s&&(v=Math.sqrt(s*v)),t.vx+=y*h.value*i/v,t.vy+=b*h.value*i/v),!0;if(h.length||v>=a)return;(h.data!==t||h.next)&&(y===0&&(y=jo(n),v+=y*y),b===0&&(b=jo(n),v+=b*b),v<s&&(v=Math.sqrt(s*v)));do h.data!==t&&(x=o[h.data.index]*i/v,t.vx+=y*x,t.vy+=b*x);while(h=h.next)}return l.initialize=function(h,p){e=h,n=p,c()},l.strength=function(h){return arguments.length?(r=typeof h=="function"?h:yn(+h),c(),l):r},l.distanceMin=function(h){return arguments.length?(s=h*h,l):Math.sqrt(s)},l.distanceMax=function(h){return arguments.length?(a=h*h,l):Math.sqrt(a)},l.theta=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l}function LY(e){var t=yn(.1),n,i,r;typeof e!="function"&&(e=yn(e==null?0:+e));function o(a){for(var u=0,l=n.length,c;u<l;++u)c=n[u],c.vx+=(r[u]-c.x)*i[u]*a}function s(){if(n){var a,u=n.length;for(i=new Array(u),r=new Array(u),a=0;a<u;++a)i[a]=isNaN(r[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return o.initialize=function(a){n=a,s()},o.strength=function(a){return arguments.length?(t=typeof a=="function"?a:yn(+a),s(),o):t},o.x=function(a){return arguments.length?(e=typeof a=="function"?a:yn(+a),s(),o):e},o}function PY(e){var t=yn(.1),n,i,r;typeof e!="function"&&(e=yn(e==null?0:+e));function o(a){for(var u=0,l=n.length,c;u<l;++u)c=n[u],c.vy+=(r[u]-c.y)*i[u]*a}function s(){if(n){var a,u=n.length;for(i=new Array(u),r=new Array(u),a=0;a<u;++a)i[a]=isNaN(r[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return o.initialize=function(a){n=a,s()},o.strength=function(a){return arguments.length?(t=typeof a=="function"?a:yn(+a),s(),o):t},o.y=function(a){return arguments.length?(e=typeof a=="function"?a:yn(+a),s(),o):e},o}const h$={center:rY,collide:AY,nbody:NY,link:CY,x:LY,y:PY},mc="forces",yb=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],IY=["static","iterations"],WO=["x","y","vx","vy"];function yE(e){M.call(this,null,e)}yE.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,expr:!0},{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:WO}]};G(yE,M,{transform(e,t){var n=this.value,i=t.changed(t.ADD_REM),r=e.modified(yb),o=e.iterations||300;if(n?(i&&(t.modifies("index"),n.nodes(t.source)),(r||t.changed(t.MOD))&&GO(n,e,0,t)):(this.value=n=BY(t.source,e),n.on("tick",zY(t.dataflow,this)),e.static||(i=!0,n.tick()),t.modifies("index")),r||i||e.modified(IY)||t.changed()&&e.restart){if(n.alpha(Math.max(n.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(n.alphaMin(),1/o)),e.static)for(n.stop();--o>=0;)n.tick();else if(n.stopped()&&n.restart(),!i)return t.StopPropagation}return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let a=this._argops,u=0,l=a.length,c;u<l;++u)if(c=a[u],!(c.name!==mc||c.op._argval.force!=="link")){for(var i=c.op._argops,r=0,o=i.length,s;r<o;++r)if(i[r].name==="links"&&(s=i[r].op.source)){n.pulse(s,n.changeset().reflow());break}}return t.reflow(e.modified()).modifies(WO)}});function zY(e,t){return()=>e.touch(t).run()}function BY(e,t){const n=RY(e),i=n.stop,r=n.restart;let o=!1;return n.stopped=()=>o,n.restart=()=>(o=!1,r()),n.stop=()=>(o=!0,i()),GO(n,t,!0).on("end",()=>o=!0)}function GO(e,t,n,i){var r=se(t.forces),o,s,a,u;for(o=0,s=yb.length;o<s;++o)a=yb[o],a!==mc&&t.modified(a)&&e[a](t[a]);for(o=0,s=r.length;o<s;++o)u=mc+o,a=n||t.modified(mc,o)?jY(r[o]):i&&UY(r[o],i)?e.force(u):null,a&&e.force(u,a);for(s=e.numForces||0;o<s;++o)e.force(mc+o,null);return e.numForces=r.length,e}function UY(e,t){var n,i;for(n in e)if(be(i=e[n])&&t.modified(xn(i)))return 1;return 0}function jY(e){var t,n;le(h$,e.force)||L("Unrecognized force: "+e.force),t=h$[e.force]();for(n in e)be(t[n])&&qY(t[n],e[n],e);return t}function qY(e,t,n){e(be(t)?i=>t(i,n):t)}const WY=Object.freeze(Object.defineProperty({__proto__:null,force:yE},Symbol.toStringTag,{value:"Module"}));function GY(e,t){return e.parent===t.parent?1:2}function HY(e){return e.reduce(VY,0)/e.length}function VY(e,t){return e+t.x}function YY(e){return 1+e.reduce(XY,0)}function XY(e,t){return Math.max(e,t.y)}function KY(e){for(var t;t=e.children;)e=t[0];return e}function JY(e){for(var t;t=e.children;)e=t[t.length-1];return e}function QY(){var e=GY,t=1,n=1,i=!1;function r(o){var s,a=0;o.eachAfter(function(d){var h=d.children;h?(d.x=HY(h),d.y=YY(h)):(d.x=s?a+=e(d,s):0,d.y=0,s=d)});var u=KY(o),l=JY(o),c=u.x-e(u,l)/2,f=l.x+e(l,u)/2;return o.eachAfter(i?function(d){d.x=(d.x-o.x)*t,d.y=(o.y-d.y)*n}:function(d){d.x=(d.x-c)/(f-c)*t,d.y=(1-(o.y?d.y/o.y:1))*n})}return r.separation=function(o){return arguments.length?(e=o,r):e},r.size=function(o){return arguments.length?(i=!1,t=+o[0],n=+o[1],r):i?null:[t,n]},r.nodeSize=function(o){return arguments.length?(i=!0,t=+o[0],n=+o[1],r):i?[t,n]:null},r}function ZY(e){var t=0,n=e.children,i=n&&n.length;if(!i)t=1;else for(;--i>=0;)t+=n[i].value;e.value=t}function eX(){return this.eachAfter(ZY)}function tX(e,t){let n=-1;for(const i of this)e.call(t,i,++n,this);return this}function nX(e,t){for(var n=this,i=[n],r,o,s=-1;n=i.pop();)if(e.call(t,n,++s,this),r=n.children)for(o=r.length-1;o>=0;--o)i.push(r[o]);return this}function iX(e,t){for(var n=this,i=[n],r=[],o,s,a,u=-1;n=i.pop();)if(r.push(n),o=n.children)for(s=0,a=o.length;s<a;++s)i.push(o[s]);for(;n=r.pop();)e.call(t,n,++u,this);return this}function rX(e,t){let n=-1;for(const i of this)if(e.call(t,i,++n,this))return i}function oX(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)n+=i[r].value;t.value=n})}function sX(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function aX(e){for(var t=this,n=uX(t,e),i=[t];t!==n;)t=t.parent,i.push(t);for(var r=i.length;e!==n;)i.splice(r,0,e),e=e.parent;return i}function uX(e,t){if(e===t)return e;var n=e.ancestors(),i=t.ancestors(),r=null;for(e=n.pop(),t=i.pop();e===t;)r=e,e=n.pop(),t=i.pop();return r}function lX(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function cX(){return Array.from(this)}function fX(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function dX(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*hX(){var e=this,t,n=[e],i,r,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,i=e.children)for(r=0,o=i.length;r<o;++r)n.push(i[r]);while(n.length)}function bE(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=mX)):t===void 0&&(t=gX);for(var n=new Uu(e),i,r=[n],o,s,a,u;i=r.pop();)if((s=t(i.data))&&(u=(s=Array.from(s)).length))for(i.children=s,a=u-1;a>=0;--a)r.push(o=s[a]=new Uu(s[a])),o.parent=i,o.depth=i.depth+1;return n.eachBefore(HO)}function pX(){return bE(this).eachBefore(yX)}function gX(e){return e.children}function mX(e){return Array.isArray(e)?e[1]:null}function yX(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function HO(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function Uu(e){this.data=e,this.depth=this.height=0,this.parent=null}Uu.prototype=bE.prototype={constructor:Uu,count:eX,each:tX,eachAfter:iX,eachBefore:nX,find:rX,sum:oX,sort:sX,path:aX,ancestors:lX,descendants:cX,leaves:fX,links:dX,copy:pX,[Symbol.iterator]:hX};function fh(e){return e==null?null:VO(e)}function VO(e){if(typeof e!="function")throw new Error;return e}function Ws(){return 0}function su(e){return function(){return e}}const bX=1664525,xX=1013904223,p$=4294967296;function vX(){let e=1;return()=>(e=(bX*e+xX)%p$)/p$}function EX(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function wX(e,t){let n=e.length,i,r;for(;n;)r=t()*n--|0,i=e[n],e[n]=e[r],e[r]=i;return e}function AX(e,t){for(var n=0,i=(e=wX(Array.from(e),t)).length,r=[],o,s;n<i;)o=e[n],s&&YO(s,o)?++n:(s=CX(r=SX(r,o)),n=0);return s}function SX(e,t){var n,i;if(Km(t,e))return[t];for(n=0;n<e.length;++n)if(Td(t,e[n])&&Km(yc(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(i=n+1;i<e.length;++i)if(Td(yc(e[n],e[i]),t)&&Td(yc(e[n],t),e[i])&&Td(yc(e[i],t),e[n])&&Km(XO(e[n],e[i],t),e))return[e[n],e[i],t];throw new Error}function Td(e,t){var n=e.r-t.r,i=t.x-e.x,r=t.y-e.y;return n<0||n*n<i*i+r*r}function YO(e,t){var n=e.r-t.r+Math.max(e.r,t.r,1)*1e-9,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function Km(e,t){for(var n=0;n<t.length;++n)if(!YO(e,t[n]))return!1;return!0}function CX(e){switch(e.length){case 1:return $X(e[0]);case 2:return yc(e[0],e[1]);case 3:return XO(e[0],e[1],e[2])}}function $X(e){return{x:e.x,y:e.y,r:e.r}}function yc(e,t){var n=e.x,i=e.y,r=e.r,o=t.x,s=t.y,a=t.r,u=o-n,l=s-i,c=a-r,f=Math.sqrt(u*u+l*l);return{x:(n+o+u/f*c)/2,y:(i+s+l/f*c)/2,r:(f+r+a)/2}}function XO(e,t,n){var i=e.x,r=e.y,o=e.r,s=t.x,a=t.y,u=t.r,l=n.x,c=n.y,f=n.r,d=i-s,h=i-l,p=r-a,g=r-c,m=u-o,y=f-o,b=i*i+r*r-o*o,x=b-s*s-a*a+u*u,v=b-l*l-c*c+f*f,w=h*p-d*g,A=(p*v-g*x)/(w*2)-i,E=(g*m-p*y)/w,S=(h*x-d*v)/(w*2)-r,C=(d*y-h*m)/w,_=E*E+C*C-1,k=2*(o+A*E+S*C),N=A*A+S*S-o*o,T=-(Math.abs(_)>1e-6?(k+Math.sqrt(k*k-4*_*N))/(2*_):N/k);return{x:i+A+E*T,y:r+S+C*T,r:T}}function g$(e,t,n){var i=e.x-t.x,r,o,s=e.y-t.y,a,u,l=i*i+s*s;l?(o=t.r+n.r,o*=o,u=e.r+n.r,u*=u,o>u?(r=(l+u-o)/(2*l),a=Math.sqrt(Math.max(0,u/l-r*r)),n.x=e.x-r*i-a*s,n.y=e.y-r*s+a*i):(r=(l+o-u)/(2*l),a=Math.sqrt(Math.max(0,o/l-r*r)),n.x=t.x+r*i-a*s,n.y=t.y+r*s+a*i)):(n.x=t.x+n.r,n.y=t.y)}function m$(e,t){var n=e.r+t.r-1e-6,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function y$(e){var t=e._,n=e.next._,i=t.r+n.r,r=(t.x*n.r+n.x*t.r)/i,o=(t.y*n.r+n.y*t.r)/i;return r*r+o*o}function Md(e){this._=e,this.next=null,this.previous=null}function _X(e,t){if(!(o=(e=EX(e)).length))return 0;var n,i,r,o,s,a,u,l,c,f,d;if(n=e[0],n.x=0,n.y=0,!(o>1))return n.r;if(i=e[1],n.x=-i.r,i.x=n.r,i.y=0,!(o>2))return n.r+i.r;g$(i,n,r=e[2]),n=new Md(n),i=new Md(i),r=new Md(r),n.next=r.previous=i,i.next=n.previous=r,r.next=i.previous=n;e:for(u=3;u<o;++u){g$(n._,i._,r=e[u]),r=new Md(r),l=i.next,c=n.previous,f=i._.r,d=n._.r;do if(f<=d){if(m$(l._,r._)){i=l,n.next=i,i.previous=n,--u;continue e}f+=l._.r,l=l.next}else{if(m$(c._,r._)){n=c,n.next=i,i.previous=n,--u;continue e}d+=c._.r,c=c.previous}while(l!==c.next);for(r.previous=n,r.next=i,n.next=i.previous=i=r,s=y$(n);(r=r.next)!==i;)(a=y$(r))<s&&(n=r,s=a);i=n.next}for(n=[i._],r=i;(r=r.next)!==i;)n.push(r._);for(r=AX(n,t),u=0;u<o;++u)n=e[u],n.x-=r.x,n.y-=r.y;return r.r}function FX(e){return Math.sqrt(e.value)}function kX(){var e=null,t=1,n=1,i=Ws;function r(o){const s=vX();return o.x=t/2,o.y=n/2,e?o.eachBefore(b$(e)).eachAfter(Jm(i,.5,s)).eachBefore(x$(1)):o.eachBefore(b$(FX)).eachAfter(Jm(Ws,1,s)).eachAfter(Jm(i,o.r/Math.min(t,n),s)).eachBefore(x$(Math.min(t,n)/(2*o.r))),o}return r.radius=function(o){return arguments.length?(e=fh(o),r):e},r.size=function(o){return arguments.length?(t=+o[0],n=+o[1],r):[t,n]},r.padding=function(o){return arguments.length?(i=typeof o=="function"?o:su(+o),r):i},r}function b$(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function Jm(e,t,n){return function(i){if(r=i.children){var r,o,s=r.length,a=e(i)*t||0,u;if(a)for(o=0;o<s;++o)r[o].r+=a;if(u=_X(r,n),a)for(o=0;o<s;++o)r[o].r-=a;i.r=u+a}}}function x$(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function KO(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function zf(e,t,n,i,r){for(var o=e.children,s,a=-1,u=o.length,l=e.value&&(i-t)/e.value;++a<u;)s=o[a],s.y0=n,s.y1=r,s.x0=t,s.x1=t+=s.value*l}function DX(){var e=1,t=1,n=0,i=!1;function r(s){var a=s.height+1;return s.x0=s.y0=n,s.x1=e,s.y1=t/a,s.eachBefore(o(t,a)),i&&s.eachBefore(KO),s}function o(s,a){return function(u){u.children&&zf(u,u.x0,s*(u.depth+1)/a,u.x1,s*(u.depth+2)/a);var l=u.x0,c=u.y0,f=u.x1-n,d=u.y1-n;f<l&&(l=f=(l+f)/2),d<c&&(c=d=(c+d)/2),u.x0=l,u.y0=c,u.x1=f,u.y1=d}}return r.round=function(s){return arguments.length?(i=!!s,r):i},r.size=function(s){return arguments.length?(e=+s[0],t=+s[1],r):[e,t]},r.padding=function(s){return arguments.length?(n=+s,r):n},r}var TX={depth:-1},v$={},Qm={};function MX(e){return e.id}function OX(e){return e.parentId}function E$(){var e=MX,t=OX,n;function i(r){var o=Array.from(r),s=e,a=t,u,l,c,f,d,h,p,g,m=new Map;if(n!=null){const y=o.map((v,w)=>RX(n(v,w,r))),b=y.map(w$),x=new Set(y).add("");for(const v of b)x.has(v)||(x.add(v),y.push(v),b.push(w$(v)),o.push(Qm));s=(v,w)=>y[w],a=(v,w)=>b[w]}for(c=0,u=o.length;c<u;++c)l=o[c],h=o[c]=new Uu(l),(p=s(l,c,r))!=null&&(p+="")&&(g=h.id=p,m.set(g,m.has(g)?v$:h)),(p=a(l,c,r))!=null&&(p+="")&&(h.parent=p);for(c=0;c<u;++c)if(h=o[c],p=h.parent){if(d=m.get(p),!d)throw new Error("missing: "+p);if(d===v$)throw new Error("ambiguous: "+p);d.children?d.children.push(h):d.children=[h],h.parent=d}else{if(f)throw new Error("multiple roots");f=h}if(!f)throw new Error("no root");if(n!=null){for(;f.data===Qm&&f.children.length===1;)f=f.children[0],--u;for(let y=o.length-1;y>=0&&(h=o[y],h.data===Qm);--y)h.data=null}if(f.parent=TX,f.eachBefore(function(y){y.depth=y.parent.depth+1,--u}).eachBefore(HO),f.parent=null,u>0)throw new Error("cycle");return f}return i.id=function(r){return arguments.length?(e=fh(r),i):e},i.parentId=function(r){return arguments.length?(t=fh(r),i):t},i.path=function(r){return arguments.length?(n=fh(r),i):n},i}function RX(e){e=`${e}`;let t=e.length;return bb(e,t-1)&&!bb(e,t-2)&&(e=e.slice(0,-1)),e[0]==="/"?e:`/${e}`}function w$(e){let t=e.length;if(t<2)return"";for(;--t>1&&!bb(e,t););return e.slice(0,t)}function bb(e,t){if(e[t]==="/"){let n=0;for(;t>0&&e[--t]==="\\";)++n;if((n&1)===0)return!0}return!1}function NX(e,t){return e.parent===t.parent?1:2}function Zm(e){var t=e.children;return t?t[0]:e.t}function e1(e){var t=e.children;return t?t[t.length-1]:e.t}function LX(e,t,n){var i=n/(t.i-e.i);t.c-=i,t.s+=n,e.c+=i,t.z+=n,t.m+=n}function PX(e){for(var t=0,n=0,i=e.children,r=i.length,o;--r>=0;)o=i[r],o.z+=t,o.m+=t,t+=o.s+(n+=o.c)}function IX(e,t,n){return e.a.parent===t.parent?e.a:n}function dh(e,t){this._=e,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=t}dh.prototype=Object.create(Uu.prototype);function zX(e){for(var t=new dh(e,0),n,i=[t],r,o,s,a;n=i.pop();)if(o=n._.children)for(n.children=new Array(a=o.length),s=a-1;s>=0;--s)i.push(r=n.children[s]=new dh(o[s],s)),r.parent=n;return(t.parent=new dh(null,0)).children=[t],t}function BX(){var e=NX,t=1,n=1,i=null;function r(l){var c=zX(l);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(s),i)l.eachBefore(u);else{var f=l,d=l,h=l;l.eachBefore(function(b){b.x<f.x&&(f=b),b.x>d.x&&(d=b),b.depth>h.depth&&(h=b)});var p=f===d?1:e(f,d)/2,g=p-f.x,m=t/(d.x+p+g),y=n/(h.depth||1);l.eachBefore(function(b){b.x=(b.x+g)*m,b.y=b.depth*y})}return l}function o(l){var c=l.children,f=l.parent.children,d=l.i?f[l.i-1]:null;if(c){PX(l);var h=(c[0].z+c[c.length-1].z)/2;d?(l.z=d.z+e(l._,d._),l.m=l.z-h):l.z=h}else d&&(l.z=d.z+e(l._,d._));l.parent.A=a(l,d,l.parent.A||f[0])}function s(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function a(l,c,f){if(c){for(var d=l,h=l,p=c,g=d.parent.children[0],m=d.m,y=h.m,b=p.m,x=g.m,v;p=e1(p),d=Zm(d),p&&d;)g=Zm(g),h=e1(h),h.a=l,v=p.z+b-d.z-m+e(p._,d._),v>0&&(LX(IX(p,l,f),l,v),m+=v,y+=v),b+=p.m,m+=d.m,x+=g.m,y+=h.m;p&&!e1(h)&&(h.t=p,h.m+=b-y),d&&!Zm(g)&&(g.t=d,g.m+=m-x,f=l)}return f}function u(l){l.x*=t,l.y=l.depth*n}return r.separation=function(l){return arguments.length?(e=l,r):e},r.size=function(l){return arguments.length?(i=!1,t=+l[0],n=+l[1],r):i?null:[t,n]},r.nodeSize=function(l){return arguments.length?(i=!0,t=+l[0],n=+l[1],r):i?[t,n]:null},r}function i0(e,t,n,i,r){for(var o=e.children,s,a=-1,u=o.length,l=e.value&&(r-n)/e.value;++a<u;)s=o[a],s.x0=t,s.x1=i,s.y0=n,s.y1=n+=s.value*l}var JO=(1+Math.sqrt(5))/2;function QO(e,t,n,i,r,o){for(var s=[],a=t.children,u,l,c=0,f=0,d=a.length,h,p,g=t.value,m,y,b,x,v,w,A;c<d;){h=r-n,p=o-i;do m=a[f++].value;while(!m&&f<d);for(y=b=m,w=Math.max(p/h,h/p)/(g*e),A=m*m*w,v=Math.max(b/A,A/y);f<d;++f){if(m+=l=a[f].value,l<y&&(y=l),l>b&&(b=l),A=m*m*w,x=Math.max(b/A,A/y),x>v){m-=l;break}v=x}s.push(u={value:m,dice:h<p,children:a.slice(c,f)}),u.dice?zf(u,n,i,r,g?i+=p*m/g:o):i0(u,n,i,g?n+=h*m/g:r,o),g-=m,c=f}return s}const ZO=function e(t){function n(i,r,o,s,a){QO(t,i,r,o,s,a)}return n.ratio=function(i){return e((i=+i)>1?i:1)},n}(JO);function UX(){var e=ZO,t=!1,n=1,i=1,r=[0],o=Ws,s=Ws,a=Ws,u=Ws,l=Ws;function c(d){return d.x0=d.y0=0,d.x1=n,d.y1=i,d.eachBefore(f),r=[0],t&&d.eachBefore(KO),d}function f(d){var h=r[d.depth],p=d.x0+h,g=d.y0+h,m=d.x1-h,y=d.y1-h;m<p&&(p=m=(p+m)/2),y<g&&(g=y=(g+y)/2),d.x0=p,d.y0=g,d.x1=m,d.y1=y,d.children&&(h=r[d.depth+1]=o(d)/2,p+=l(d)-h,g+=s(d)-h,m-=a(d)-h,y-=u(d)-h,m<p&&(p=m=(p+m)/2),y<g&&(g=y=(g+y)/2),e(d,p,g,m,y))}return c.round=function(d){return arguments.length?(t=!!d,c):t},c.size=function(d){return arguments.length?(n=+d[0],i=+d[1],c):[n,i]},c.tile=function(d){return arguments.length?(e=VO(d),c):e},c.padding=function(d){return arguments.length?c.paddingInner(d).paddingOuter(d):c.paddingInner()},c.paddingInner=function(d){return arguments.length?(o=typeof d=="function"?d:su(+d),c):o},c.paddingOuter=function(d){return arguments.length?c.paddingTop(d).paddingRight(d).paddingBottom(d).paddingLeft(d):c.paddingTop()},c.paddingTop=function(d){return arguments.length?(s=typeof d=="function"?d:su(+d),c):s},c.paddingRight=function(d){return arguments.length?(a=typeof d=="function"?d:su(+d),c):a},c.paddingBottom=function(d){return arguments.length?(u=typeof d=="function"?d:su(+d),c):u},c.paddingLeft=function(d){return arguments.length?(l=typeof d=="function"?d:su(+d),c):l},c}function jX(e,t,n,i,r){var o=e.children,s,a=o.length,u,l=new Array(a+1);for(l[0]=u=s=0;s<a;++s)l[s+1]=u+=o[s].value;c(0,a,e.value,t,n,i,r);function c(f,d,h,p,g,m,y){if(f>=d-1){var b=o[f];b.x0=p,b.y0=g,b.x1=m,b.y1=y;return}for(var x=l[f],v=h/2+x,w=f+1,A=d-1;w<A;){var E=w+A>>>1;l[E]<v?w=E+1:A=E}v-l[w-1]<l[w]-v&&f+1<w&&--w;var S=l[w]-x,C=h-S;if(m-p>y-g){var _=h?(p*C+m*S)/h:m;c(f,w,S,p,g,_,y),c(w,d,C,_,g,m,y)}else{var k=h?(g*C+y*S)/h:y;c(f,w,S,p,g,m,k),c(w,d,C,p,k,m,y)}}}function qX(e,t,n,i,r){(e.depth&1?i0:zf)(e,t,n,i,r)}const WX=function e(t){function n(i,r,o,s,a){if((u=i._squarify)&&u.ratio===t)for(var u,l,c,f,d=-1,h,p=u.length,g=i.value;++d<p;){for(l=u[d],c=l.children,f=l.value=0,h=c.length;f<h;++f)l.value+=c[f].value;l.dice?zf(l,r,o,s,g?o+=(a-o)*l.value/g:a):i0(l,r,o,g?r+=(s-r)*l.value/g:s,a),g-=l.value}else i._squarify=u=QO(t,i,r,o,s,a),u.ratio=t}return n.ratio=function(i){return e((i=+i)>1?i:1)},n}(JO);function xb(e,t,n){const i={};return e.each(r=>{const o=r.data;n(o)&&(i[t(o)]=r)}),e.lookup=i,e}function xE(e){M.call(this,null,e)}xE.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const GX=e=>e.values;G(xE,M,{transform(e,t){t.source||L("Nest transform requires an upstream data source.");var n=e.generate,i=e.modified(),r=t.clone(),o=this.value;return(!o||i||t.changed())&&(o&&o.each(s=>{s.children&&wg(s.data)&&r.rem.push(s.data)}),this.value=o=bE({values:se(e.keys).reduce((s,a)=>(s.key(a),s),HX()).entries(r.source)},GX),n&&o.each(s=>{s.children&&(s=Oe(s.data),r.add.push(s),r.source.push(s))}),xb(o,te,te)),r.source.root=o,r}});function HX(){const e=[],t={entries:r=>i(n(r,0),0),key:r=>(e.push(r),t)};function n(r,o){if(o>=e.length)return r;const s=r.length,a=e[o++],u={},l={};let c=-1,f,d,h;for(;++c<s;)f=a(d=r[c])+"",(h=u[f])?h.push(d):u[f]=[d];for(f in u)l[f]=n(u[f],o);return l}function i(r,o){if(++o>e.length)return r;const s=[];for(const a in r)s.push({key:a,values:i(r[a],o)});return s}return t}function xo(e){M.call(this,null,e)}const VX=(e,t)=>e.parent===t.parent?1:2;G(xo,M,{transform(e,t){(!t.source||!t.source.root)&&L(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),i=this.fields,r=t.source.root,o=e.as||i;e.field?r.sum(e.field):r.count(),e.sort&&r.sort(Da(e.sort,s=>s.data)),YX(n,this.params,e),n.separation&&n.separation(e.separation!==!1?VX:xf);try{this.value=n(r)}catch(s){L(s)}return r.each(s=>XX(s,i,o)),t.reflow(e.modified()).modifies(o).modifies("leaf")}});function YX(e,t,n){for(let i,r=0,o=t.length;r<o;++r)i=t[r],i in n&&e[i](n[i])}function XX(e,t,n){const i=e.data,r=t.length-1;for(let o=0;o<r;++o)i[n[o]]=e[t[o]];i[n[r]]=e.children?e.children.length:0}const vb=["x","y","r","depth","children"];function vE(e){xo.call(this,e)}vE.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:vb.length,default:vb}]};G(vE,xo,{layout:kX,params:["radius","size","padding"],fields:vb});const Eb=["x0","y0","x1","y1","depth","children"];function EE(e){xo.call(this,e)}EE.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:Eb.length,default:Eb}]};G(EE,xo,{layout:DX,params:["size","round","padding"],fields:Eb});function wE(e){M.call(this,null,e)}wE.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]};G(wE,M,{transform(e,t){t.source||L("Stratify transform requires an upstream data source.");let n=this.value;const i=e.modified(),r=t.fork(t.ALL).materialize(t.SOURCE),o=!n||i||t.changed(t.ADD_REM)||t.modified(e.key.fields)||t.modified(e.parentKey.fields);return r.source=r.source.slice(),o&&(n=r.source.length?xb(E$().id(e.key).parentId(e.parentKey)(r.source),e.key,Pi):xb(E$()([{}]),e.key,e.key)),r.source.root=this.value=n,r}});const A$={tidy:BX,cluster:QY},wb=["x","y","depth","children"];function AE(e){xo.call(this,e)}AE.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:wb.length,default:wb}]};G(AE,xo,{layout(e){const t=e||"tidy";if(le(A$,t))return A$[t]();L("Unrecognized Tree layout method: "+t)},params:["size","nodeSize"],fields:wb});function SE(e){M.call(this,[],e)}SE.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]};G(SE,M,{transform(e,t){const n=this.value,i=t.source&&t.source.root,r=t.fork(t.NO_SOURCE),o={};return i||L("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(r.rem=n,t.visit(t.SOURCE,s=>o[te(s)]=1),i.each(s=>{const a=s.data,u=s.parent&&s.parent.data;u&&o[te(a)]&&o[te(u)]&&r.add.push(Oe({source:u,target:a}))}),this.value=r.add):t.changed(t.MOD)&&(t.visit(t.MOD,s=>o[te(s)]=1),n.forEach(s=>{(o[te(s.source)]||o[te(s.target)])&&r.mod.push(s)})),r}});const S$={binary:jX,dice:zf,slice:i0,slicedice:qX,squarify:ZO,resquarify:WX},Ab=["x0","y0","x1","y1","depth","children"];function CE(e){xo.call(this,e)}CE.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:Ab.length,default:Ab}]};G(CE,xo,{layout(){const e=UX();return e.ratio=t=>{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=t=>{le(S$,t)?e.tile(S$[t]):L("Unrecognized Treemap layout method: "+t)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:Ab});const KX=Object.freeze(Object.defineProperty({__proto__:null,nest:xE,pack:vE,partition:EE,stratify:wE,tree:AE,treelinks:SE,treemap:CE},Symbol.toStringTag,{value:"Module"})),t1=4278190080;function JX(e,t){const n=e.bitmap();return(t||[]).forEach(i=>n.set(e(i.boundary[0]),e(i.boundary[3]))),[n,void 0]}function QX(e,t,n,i,r){const o=e.width,s=e.height,a=i||r,u=Vo(o,s).getContext("2d"),l=Vo(o,s).getContext("2d"),c=a&&Vo(o,s).getContext("2d");n.forEach(S=>hh(u,S,!1)),hh(l,t,!1),a&&hh(c,t,!0);const f=n1(u,o,s),d=n1(l,o,s),h=a&&n1(c,o,s),p=e.bitmap(),g=a&&e.bitmap();let m,y,b,x,v,w,A,E;for(y=0;y<s;++y)for(m=0;m<o;++m)v=y*o+m,w=f[v]&t1,E=d[v]&t1,A=a&&h[v]&t1,(w||A||E)&&(b=e(m),x=e(y),!r&&(w||E)&&p.set(b,x),a&&(w||A)&&g.set(b,x));return[p,g]}function n1(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function hh(e,t,n){if(!t.length)return;const i=t[0].mark.marktype;i==="group"?t.forEach(r=>{r.items.forEach(o=>hh(e,o.items,n))}):ni[i].draw(e,{items:n?t.map(ZX):t})}function ZX(e){const t=Ag(e,{});return t.stroke&&t.strokeOpacity!==0||t.fill&&t.fillOpacity!==0?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const Br=5,un=31,Zc=32,Oo=new Uint32Array(Zc+1),Fi=new Uint32Array(Zc+1);Fi[0]=0;Oo[0]=~Fi[0];for(let e=1;e<=Zc;++e)Fi[e]=Fi[e-1]<<1|1,Oo[e]=~Fi[e];function eK(e,t){const n=new Uint32Array(~~((e*t+Zc)/Zc));function i(o,s){n[o]|=s}function r(o,s){n[o]&=s}return{array:n,get:(o,s)=>{const a=s*e+o;return n[a>>>Br]&1<<(a&un)},set:(o,s)=>{const a=s*e+o;i(a>>>Br,1<<(a&un))},clear:(o,s)=>{const a=s*e+o;r(a>>>Br,~(1<<(a&un)))},getRange:(o,s,a,u)=>{let l=u,c,f,d,h;for(;l>=s;--l)if(c=l*e+o,f=l*e+a,d=c>>>Br,h=f>>>Br,d===h){if(n[d]&Oo[c&un]&Fi[(f&un)+1])return!0}else{if(n[d]&Oo[c&un]||n[h]&Fi[(f&un)+1])return!0;for(let p=d+1;p<h;++p)if(n[p])return!0}return!1},setRange:(o,s,a,u)=>{let l,c,f,d,h;for(;s<=u;++s)if(l=s*e+o,c=s*e+a,f=l>>>Br,d=c>>>Br,f===d)i(f,Oo[l&un]&Fi[(c&un)+1]);else for(i(f,Oo[l&un]),i(d,Fi[(c&un)+1]),h=f+1;h<d;++h)i(h,4294967295)},clearRange:(o,s,a,u)=>{let l,c,f,d,h;for(;s<=u;++s)if(l=s*e+o,c=s*e+a,f=l>>>Br,d=c>>>Br,f===d)r(f,Fi[l&un]|Oo[(c&un)+1]);else for(r(f,Fi[l&un]),r(d,Oo[(c&un)+1]),h=f+1;h<d;++h)r(h,0)},outOfBounds:(o,s,a,u)=>o<0||s<0||u>=t||a>=e}}function tK(e,t,n){const i=Math.max(1,Math.sqrt(e*t/1e6)),r=~~((e+2*n+i)/i),o=~~((t+2*n+i)/i),s=a=>~~((a+n)/i);return s.invert=a=>a*i-n,s.bitmap=()=>eK(r,o),s.ratio=i,s.padding=n,s.width=e,s.height=t,s}function nK(e,t,n,i){const r=e.width,o=e.height;return function(s){const a=s.datum.datum.items[i].items,u=a.length,l=s.datum.fontSize,c=Jn.width(s.datum,s.datum.text);let f=0,d,h,p,g,m,y,b;for(let x=0;x<u;++x)d=a[x].x,p=a[x].y,h=a[x].x2===void 0?d:a[x].x2,g=a[x].y2===void 0?p:a[x].y2,m=(d+h)/2,y=(p+g)/2,b=Math.abs(h-d+g-p),b>=f&&(f=b,s.x=m,s.y=y);return m=c/2,y=l/2,d=s.x-m,h=s.x+m,p=s.y-y,g=s.y+y,s.align="center",d<0&&h<=r?s.align="left":0<=d&&r<h&&(s.align="right"),s.baseline="middle",p<0&&g<=o?s.baseline="top":0<=p&&o<g&&(s.baseline="bottom"),!0}}function $p(e,t,n,i,r,o){let s=n/2;return e-s<0||e+s>r||t-(s=i/2)<0||t+s>o}function qo(e,t,n,i,r,o,s,a){const u=r*o/(i*2),l=e(t-u),c=e(t+u),f=e(n-(o=o/2)),d=e(n+o);return s.outOfBounds(l,f,c,d)||s.getRange(l,f,c,d)||a&&a.getRange(l,f,c,d)}function iK(e,t,n,i){const r=e.width,o=e.height,s=t[0],a=t[1];function u(l,c,f,d,h){const p=e.invert(l),g=e.invert(c);let m=f,y=o,b;if(!$p(p,g,d,h,r,o)&&!qo(e,p,g,h,d,m,s,a)&&!qo(e,p,g,h,d,h,s,null)){for(;y-m>=1;)b=(m+y)/2,qo(e,p,g,h,d,b,s,a)?y=b:m=b;if(m>f)return[p,g,m,!0]}}return function(l){const c=l.datum.datum.items[i].items,f=c.length,d=l.datum.fontSize,h=Jn.width(l.datum,l.datum.text);let p=n?d:0,g=!1,m=!1,y=0,b,x,v,w,A,E,S,C,_,k,N,T,F,$,D,P,z;for(let I=0;I<f;++I){for(b=c[I].x,v=c[I].y,x=c[I].x2===void 0?b:c[I].x2,w=c[I].y2===void 0?v:c[I].y2,b>x&&(z=b,b=x,x=z),v>w&&(z=v,v=w,w=z),_=e(b),N=e(x),k=~~((_+N)/2),T=e(v),$=e(w),F=~~((T+$)/2),S=k;S>=_;--S)for(C=F;C>=T;--C)P=u(S,C,p,h,d),P&&([l.x,l.y,p,g]=P);for(S=k;S<=N;++S)for(C=F;C<=$;++C)P=u(S,C,p,h,d),P&&([l.x,l.y,p,g]=P);!g&&!n&&(D=Math.abs(x-b+w-v),A=(b+x)/2,E=(v+w)/2,D>=y&&!$p(A,E,h,d,r,o)&&!qo(e,A,E,d,h,d,s,null)&&(y=D,l.x=A,l.y=E,m=!0))}return g||m?(A=h/2,E=d/2,s.setRange(e(l.x-A),e(l.y-E),e(l.x+A),e(l.y+E)),l.align="center",l.baseline="middle",!0):!1}}const rK=[-1,-1,1,1],oK=[-1,1,-1,1];function sK(e,t,n,i){const r=e.width,o=e.height,s=t[0],a=t[1],u=e.bitmap();return function(l){const c=l.datum.datum.items[i].items,f=c.length,d=l.datum.fontSize,h=Jn.width(l.datum,l.datum.text),p=[];let g=n?d:0,m=!1,y=!1,b=0,x,v,w,A,E,S,C,_,k,N,T,F;for(let $=0;$<f;++$){for(x=c[$].x,w=c[$].y,v=c[$].x2===void 0?x:c[$].x2,A=c[$].y2===void 0?w:c[$].y2,p.push([e((x+v)/2),e((w+A)/2)]);p.length;)if([C,_]=p.pop(),!(s.get(C,_)||a.get(C,_)||u.get(C,_))){u.set(C,_);for(let D=0;D<4;++D)E=C+rK[D],S=_+oK[D],u.outOfBounds(E,S,E,S)||p.push([E,S]);if(E=e.invert(C),S=e.invert(_),k=g,N=o,!$p(E,S,h,d,r,o)&&!qo(e,E,S,d,h,k,s,a)&&!qo(e,E,S,d,h,d,s,null)){for(;N-k>=1;)T=(k+N)/2,qo(e,E,S,d,h,T,s,a)?N=T:k=T;k>g&&(l.x=E,l.y=S,g=k,m=!0)}}!m&&!n&&(F=Math.abs(v-x+A-w),E=(x+v)/2,S=(w+A)/2,F>=b&&!$p(E,S,h,d,r,o)&&!qo(e,E,S,d,h,d,s,null)&&(b=F,l.x=E,l.y=S,y=!0))}return m||y?(E=h/2,S=d/2,s.setRange(e(l.x-E),e(l.y-S),e(l.x+E),e(l.y+S)),l.align="center",l.baseline="middle",!0):!1}}const aK=["right","center","left"],uK=["bottom","middle","top"];function lK(e,t,n,i){const r=e.width,o=e.height,s=t[0],a=t[1],u=i.length;return function(l){const c=l.boundary,f=l.datum.fontSize;if(c[2]<0||c[5]<0||c[0]>r||c[3]>o)return!1;let d=l.textWidth??0,h,p,g,m,y,b,x,v,w,A,E,S,C,_,k;for(let N=0;N<u;++N){if(h=(n[N]&3)-1,p=(n[N]>>>2&3)-1,g=h===0&&p===0||i[N]<0,m=h&&p?Math.SQRT1_2:1,y=i[N]<0?-1:1,b=c[1+h]+i[N]*h*m,E=c[4+p]+y*f*p/2+i[N]*p*m,v=E-f/2,w=E+f/2,S=e(b),_=e(v),k=e(w),!d)if(C$(S,S,_,k,s,a,b,b,v,w,c,g))d=Jn.width(l.datum,l.datum.text);else continue;if(A=b+y*d*h/2,b=A-d/2,x=A+d/2,S=e(b),C=e(x),C$(S,C,_,k,s,a,b,x,v,w,c,g))return l.x=h?h*y<0?x:b:A,l.y=p?p*y<0?w:v:E,l.align=aK[h*y+1],l.baseline=uK[p*y+1],s.setRange(S,_,C,k),!0}return!1}}function C$(e,t,n,i,r,o,s,a,u,l,c,f){return!(r.outOfBounds(e,n,t,i)||(f&&o||r).getRange(e,n,t,i))}const i1=0,r1=4,o1=8,s1=0,a1=1,u1=2,cK={"top-left":i1+s1,top:i1+a1,"top-right":i1+u1,left:r1+s1,middle:r1+a1,right:r1+u1,"bottom-left":o1+s1,bottom:o1+a1,"bottom-right":o1+u1},fK={naive:nK,"reduced-search":iK,floodfill:sK};function dK(e,t,n,i,r,o,s,a,u,l,c){if(!e.length)return e;const f=Math.max(i.length,r.length),d=hK(i,f),h=pK(r,f),p=gK(e[0].datum),g=p==="group"&&e[0].datum.items[u].marktype,m=g==="area",y=mK(p,g,a,u),b=l===null||l===1/0,x=m&&c==="naive";let v=-1,w=-1;const A=e.map(_=>{const k=b?Jn.width(_,_.text):void 0;return v=Math.max(v,k),w=Math.max(w,_.fontSize),{datum:_,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(_),textWidth:k}});l=l===null||l===1/0?Math.max(v,w)+Math.max(...i):l;const E=tK(t[0],t[1],l);let S;if(!x){n&&A.sort((N,T)=>n(N.datum,T.datum));let _=!1;for(let N=0;N<h.length&&!_;++N)_=h[N]===5||d[N]<0;const k=(p&&s||m)&&e.map(N=>N.datum);S=o.length||k?QX(E,k||[],o,_,m):JX(E,s&&A)}const C=m?fK[c](E,S,s,u):lK(E,S,h,d);return A.forEach(_=>_.opacity=+C(_)),A}function hK(e,t){const n=new Float64Array(t),i=e.length;for(let r=0;r<i;++r)n[r]=e[r]||0;for(let r=i;r<t;++r)n[r]=n[i-1];return n}function pK(e,t){const n=new Int8Array(t),i=e.length;for(let r=0;r<i;++r)n[r]|=cK[e[r]];for(let r=i;r<t;++r)n[r]=n[i-1];return n}function gK(e){return e&&e.mark&&e.mark.marktype}function mK(e,t,n,i){const r=o=>[o.x,o.x,o.x,o.y,o.y,o.y];return e?e==="line"||e==="area"?o=>r(o.datum):t==="line"?o=>{const s=o.datum.items[i].items;return r(s.length?s[n==="start"?0:s.length-1]:{x:NaN,y:NaN})}:o=>{const s=o.datum.bounds;return[s.x1,(s.x1+s.x2)/2,s.x2,s.y1,(s.y1+s.y2)/2,s.y2]}:r}const Sb=["x","y","opacity","align","baseline"],eR=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function $E(e){M.call(this,null,e)}$E.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:eR},{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:Sb.length,default:Sb}]};G($E,M,{transform(e,t){function n(o){const s=e[o];return be(s)&&t.modified(s.fields)}const i=e.modified();if(!(i||t.changed(t.ADD_REM)||n("sort")))return;(!e.size||e.size.length!==2)&&L("Size parameter should be specified as a [width, height] array.");const r=e.as||Sb;return dK(t.materialize(t.SOURCE).source||[],e.size,e.sort,se(e.offset==null?1:e.offset),se(e.anchor||eR),e.avoidMarks||[],e.avoidBaseMark!==!1,e.lineAnchor||"end",e.markIndex||0,e.padding===void 0?0:e.padding,e.method||"naive").forEach(o=>{const s=o.datum;s[r[0]]=o.x,s[r[1]]=o.y,s[r[2]]=o.opacity,s[r[3]]=o.align,s[r[4]]=o.baseline}),t.reflow(i).modifies(r)}});const yK=Object.freeze(Object.defineProperty({__proto__:null,label:$E},Symbol.toStringTag,{value:"Module"}));function tR(e,t){var n=[],i=function(c){return c(a)},r,o,s,a,u,l;if(t==null)n.push(e);else for(r={},o=0,s=e.length;o<s;++o)a=e[o],u=t.map(i),l=r[u],l||(r[u]=l=[],l.dims=u,n.push(l)),l.push(a);return n}function _E(e){M.call(this,null,e)}_E.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}]};G(_E,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=tR(i,e.groupby),o=(e.groupby||[]).map(lt),s=o.length,a=e.as||[lt(e.x),lt(e.y)],u=[];r.forEach(l=>{D3(l,e.x,e.y,e.bandwidth||.3).forEach(c=>{const f={};for(let d=0;d<s;++d)f[o[d]]=l.dims[d];f[a[0]]=c[0],f[a[1]]=c[1],u.push(Oe(f))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}});const Cb={constant:dv,linear:hv,log:$3,exp:_3,pow:F3,quad:pv,poly:k3},bK=(e,t)=>e==="poly"?t:e==="quad"?2:1;function FE(e){M.call(this,null,e)}FE.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(Cb)},{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}]};G(FE,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=tR(i,e.groupby),o=(e.groupby||[]).map(lt),s=e.method||"linear",a=e.order==null?3:e.order,u=bK(s,a),l=e.as||[lt(e.x),lt(e.y)],c=Cb[s],f=[];let d=e.extent;le(Cb,s)||L("Invalid regression method: "+s),d!=null&&s==="log"&&d[0]<=0&&(t.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),r.forEach(h=>{if(h.length<=u){t.dataflow.warn("Skipping regression with more parameters than data points.");return}const g=c(h,e.x,e.y,a);if(e.params){f.push(Oe({keys:h.dims,coef:g.coef,rSquared:g.rSquared}));return}const m=d||lo(h,e.x),y=b=>{const x={};for(let v=0;v<o.length;++v)x[o[v]]=h.dims[v];x[l[0]]=b[0],x[l[1]]=b[1],f.push(Oe(x))};s==="linear"||s==="constant"?m.forEach(b=>y([b,g.predict(b)])):Dg(g.predict,m,25,200).forEach(y)}),this.value&&(n.rem=this.value),this.value=n.add=n.source=f}return n}});const xK=Object.freeze(Object.defineProperty({__proto__:null,loess:_E,regression:FE},Symbol.toStringTag,{value:"Module"})),io=11102230246251565e-32,Xt=134217729,vK=(3+8*io)*io;function l1(e,t,n,i,r){let o,s,a,u,l=t[0],c=i[0],f=0,d=0;c>l==c>-l?(o=l,l=t[++f]):(o=c,c=i[++d]);let h=0;if(f<e&&d<n)for(c>l==c>-l?(s=l+o,a=o-(s-l),l=t[++f]):(s=c+o,a=o-(s-c),c=i[++d]),o=s,a!==0&&(r[h++]=a);f<e&&d<n;)c>l==c>-l?(s=o+l,u=s-o,a=o-(s-u)+(l-u),l=t[++f]):(s=o+c,u=s-o,a=o-(s-u)+(c-u),c=i[++d]),o=s,a!==0&&(r[h++]=a);for(;f<e;)s=o+l,u=s-o,a=o-(s-u)+(l-u),l=t[++f],o=s,a!==0&&(r[h++]=a);for(;d<n;)s=o+c,u=s-o,a=o-(s-u)+(c-u),c=i[++d],o=s,a!==0&&(r[h++]=a);return(o!==0||h===0)&&(r[h++]=o),h}function EK(e,t){let n=t[0];for(let i=1;i<e;i++)n+=t[i];return n}function Bf(e){return new Float64Array(e)}const wK=(3+16*io)*io,AK=(2+12*io)*io,SK=(9+64*io)*io*io,eu=Bf(4),$$=Bf(8),_$=Bf(12),F$=Bf(16),ln=Bf(4);function CK(e,t,n,i,r,o,s){let a,u,l,c,f,d,h,p,g,m,y,b,x,v,w,A,E,S;const C=e-r,_=n-r,k=t-o,N=i-o;v=C*N,d=Xt*C,h=d-(d-C),p=C-h,d=Xt*N,g=d-(d-N),m=N-g,w=p*m-(v-h*g-p*g-h*m),A=k*_,d=Xt*k,h=d-(d-k),p=k-h,d=Xt*_,g=d-(d-_),m=_-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,eu[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,eu[1]=x-(y+f)+(f-A),S=b+y,f=S-b,eu[2]=b-(S-f)+(y-f),eu[3]=S;let T=EK(4,eu),F=AK*s;if(T>=F||-T>=F||(f=e-C,a=e-(C+f)+(f-r),f=n-_,l=n-(_+f)+(f-r),f=t-k,u=t-(k+f)+(f-o),f=i-N,c=i-(N+f)+(f-o),a===0&&u===0&&l===0&&c===0)||(F=SK*s+vK*Math.abs(T),T+=C*c+N*a-(k*l+_*u),T>=F||-T>=F))return T;v=a*N,d=Xt*a,h=d-(d-a),p=a-h,d=Xt*N,g=d-(d-N),m=N-g,w=p*m-(v-h*g-p*g-h*m),A=u*_,d=Xt*u,h=d-(d-u),p=u-h,d=Xt*_,g=d-(d-_),m=_-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,ln[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,ln[1]=x-(y+f)+(f-A),S=b+y,f=S-b,ln[2]=b-(S-f)+(y-f),ln[3]=S;const $=l1(4,eu,4,ln,$$);v=C*c,d=Xt*C,h=d-(d-C),p=C-h,d=Xt*c,g=d-(d-c),m=c-g,w=p*m-(v-h*g-p*g-h*m),A=k*l,d=Xt*k,h=d-(d-k),p=k-h,d=Xt*l,g=d-(d-l),m=l-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,ln[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,ln[1]=x-(y+f)+(f-A),S=b+y,f=S-b,ln[2]=b-(S-f)+(y-f),ln[3]=S;const D=l1($,$$,4,ln,_$);v=a*c,d=Xt*a,h=d-(d-a),p=a-h,d=Xt*c,g=d-(d-c),m=c-g,w=p*m-(v-h*g-p*g-h*m),A=u*l,d=Xt*u,h=d-(d-u),p=u-h,d=Xt*l,g=d-(d-l),m=l-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,ln[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,ln[1]=x-(y+f)+(f-A),S=b+y,f=S-b,ln[2]=b-(S-f)+(y-f),ln[3]=S;const P=l1(D,_$,4,ln,F$);return F$[P-1]}function Od(e,t,n,i,r,o){const s=(t-o)*(n-r),a=(e-r)*(i-o),u=s-a,l=Math.abs(s+a);return Math.abs(u)>=wK*l?u:-CK(e,t,n,i,r,o,l)}const k$=Math.pow(2,-52),Rd=new Uint32Array(512);class _p{static from(t,n=DK,i=TK){const r=t.length,o=new Float64Array(r*2);for(let s=0;s<r;s++){const a=t[s];o[2*s]=n(a),o[2*s+1]=i(a)}return new _p(o)}constructor(t){const n=t.length>>1;if(n>0&&typeof t[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=t;const i=Math.max(2*n-5,0);this._triangles=new Uint32Array(i*3),this._halfedges=new Int32Array(i*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),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:i,_hullTri:r,_hullHash:o}=this,s=t.length>>1;let a=1/0,u=1/0,l=-1/0,c=-1/0;for(let C=0;C<s;C++){const _=t[2*C],k=t[2*C+1];_<a&&(a=_),k<u&&(u=k),_>l&&(l=_),k>c&&(c=k),this._ids[C]=C}const f=(a+l)/2,d=(u+c)/2;let h,p,g;for(let C=0,_=1/0;C<s;C++){const k=c1(f,d,t[2*C],t[2*C+1]);k<_&&(h=C,_=k)}const m=t[2*h],y=t[2*h+1];for(let C=0,_=1/0;C<s;C++){if(C===h)continue;const k=c1(m,y,t[2*C],t[2*C+1]);k<_&&k>0&&(p=C,_=k)}let b=t[2*p],x=t[2*p+1],v=1/0;for(let C=0;C<s;C++){if(C===h||C===p)continue;const _=FK(m,y,b,x,t[2*C],t[2*C+1]);_<v&&(g=C,v=_)}let w=t[2*g],A=t[2*g+1];if(v===1/0){for(let k=0;k<s;k++)this._dists[k]=t[2*k]-t[0]||t[2*k+1]-t[1];du(this._ids,this._dists,0,s-1);const C=new Uint32Array(s);let _=0;for(let k=0,N=-1/0;k<s;k++){const T=this._ids[k],F=this._dists[T];F>N&&(C[_++]=T,N=F)}this.hull=C.subarray(0,_),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(Od(m,y,b,x,w,A)<0){const C=p,_=b,k=x;p=g,b=w,x=A,g=C,w=_,A=k}const E=kK(m,y,b,x,w,A);this._cx=E.x,this._cy=E.y;for(let C=0;C<s;C++)this._dists[C]=c1(t[2*C],t[2*C+1],E.x,E.y);du(this._ids,this._dists,0,s-1),this._hullStart=h;let S=3;i[h]=n[g]=p,i[p]=n[h]=g,i[g]=n[p]=h,r[h]=0,r[p]=1,r[g]=2,o.fill(-1),o[this._hashKey(m,y)]=h,o[this._hashKey(b,x)]=p,o[this._hashKey(w,A)]=g,this.trianglesLen=0,this._addTriangle(h,p,g,-1,-1,-1);for(let C=0,_,k;C<this._ids.length;C++){const N=this._ids[C],T=t[2*N],F=t[2*N+1];if(C>0&&Math.abs(T-_)<=k$&&Math.abs(F-k)<=k$||(_=T,k=F,N===h||N===p||N===g))continue;let $=0;for(let V=0,ue=this._hashKey(T,F);V<this._hashSize&&($=o[(ue+V)%this._hashSize],!($!==-1&&$!==i[$]));V++);$=n[$];let D=$,P;for(;P=i[D],Od(T,F,t[2*D],t[2*D+1],t[2*P],t[2*P+1])>=0;)if(D=P,D===$){D=-1;break}if(D===-1)continue;let z=this._addTriangle(D,N,i[D],-1,-1,r[D]);r[N]=this._legalize(z+2),r[D]=z,S++;let I=i[D];for(;P=i[I],Od(T,F,t[2*I],t[2*I+1],t[2*P],t[2*P+1])<0;)z=this._addTriangle(I,N,P,r[N],-1,r[I]),r[N]=this._legalize(z+2),i[I]=I,S--,I=P;if(D===$)for(;P=n[D],Od(T,F,t[2*P],t[2*P+1],t[2*D],t[2*D+1])<0;)z=this._addTriangle(P,N,D,-1,r[D],r[P]),this._legalize(z+2),r[P]=z,i[D]=D,S--,D=P;this._hullStart=n[N]=D,i[D]=n[I]=N,i[N]=I,o[this._hashKey(T,F)]=N,o[this._hashKey(t[2*D],t[2*D+1])]=D}this.hull=new Uint32Array(S);for(let C=0,_=this._hullStart;C<S;C++)this.hull[C]=_,_=i[_];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,n){return Math.floor($K(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:i,coords:r}=this;let o=0,s=0;for(;;){const a=i[t],u=t-t%3;if(s=u+(t+2)%3,a===-1){if(o===0)break;t=Rd[--o];continue}const l=a-a%3,c=u+(t+1)%3,f=l+(a+2)%3,d=n[s],h=n[t],p=n[c],g=n[f];if(_K(r[2*d],r[2*d+1],r[2*h],r[2*h+1],r[2*p],r[2*p+1],r[2*g],r[2*g+1])){n[t]=g,n[a]=d;const y=i[f];if(y===-1){let x=this._hullStart;do{if(this._hullTri[x]===f){this._hullTri[x]=t;break}x=this._hullPrev[x]}while(x!==this._hullStart)}this._link(t,y),this._link(a,i[s]),this._link(s,f);const b=l+(a+1)%3;o<Rd.length&&(Rd[o++]=b)}else{if(o===0)break;t=Rd[--o]}}return s}_link(t,n){this._halfedges[t]=n,n!==-1&&(this._halfedges[n]=t)}_addTriangle(t,n,i,r,o,s){const a=this.trianglesLen;return this._triangles[a]=t,this._triangles[a+1]=n,this._triangles[a+2]=i,this._link(a,r),this._link(a+1,o),this._link(a+2,s),this.trianglesLen+=3,a}}function $K(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}function c1(e,t,n,i){const r=e-n,o=t-i;return r*r+o*o}function _K(e,t,n,i,r,o,s,a){const u=e-s,l=t-a,c=n-s,f=i-a,d=r-s,h=o-a,p=u*u+l*l,g=c*c+f*f,m=d*d+h*h;return u*(f*m-g*h)-l*(c*m-g*d)+p*(c*h-f*d)<0}function FK(e,t,n,i,r,o){const s=n-e,a=i-t,u=r-e,l=o-t,c=s*s+a*a,f=u*u+l*l,d=.5/(s*l-a*u),h=(l*c-a*f)*d,p=(s*f-u*c)*d;return h*h+p*p}function kK(e,t,n,i,r,o){const s=n-e,a=i-t,u=r-e,l=o-t,c=s*s+a*a,f=u*u+l*l,d=.5/(s*l-a*u),h=e+(l*c-a*f)*d,p=t+(s*f-u*c)*d;return{x:h,y:p}}function du(e,t,n,i){if(i-n<=20)for(let r=n+1;r<=i;r++){const o=e[r],s=t[o];let a=r-1;for(;a>=n&&t[e[a]]>s;)e[a+1]=e[a--];e[a+1]=o}else{const r=n+i>>1;let o=n+1,s=i;Ul(e,r,o),t[e[n]]>t[e[i]]&&Ul(e,n,i),t[e[o]]>t[e[i]]&&Ul(e,o,i),t[e[n]]>t[e[o]]&&Ul(e,n,o);const a=e[o],u=t[a];for(;;){do o++;while(t[e[o]]<u);do s--;while(t[e[s]]>u);if(s<o)break;Ul(e,o,s)}e[n+1]=e[s],e[s]=a,i-o+1>=s-n?(du(e,t,o,i),du(e,t,n,s-1)):(du(e,t,n,s-1),du(e,t,o,i))}}function Ul(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function DK(e){return e[0]}function TK(e){return e[1]}const D$=1e-6;class Vs{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,i){t=+t,n=+n,i=+i;const r=t+i,o=n;if(i<0)throw new Error("negative radius");this._x1===null?this._+=`M${r},${o}`:(Math.abs(this._x1-r)>D$||Math.abs(this._y1-o)>D$)&&(this._+="L"+r+","+o),i&&(this._+=`A${i},${i},0,1,1,${t-i},${n}A${i},${i},0,1,1,${this._x1=r},${this._y1=o}`)}rect(t,n,i,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+i}v${+r}h${-i}Z`}value(){return this._||null}}class $b{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}let MK=class{constructor(t,[n,i,r,o]=[0,0,960,500]){if(!((r=+r)>=(n=+n))||!((o=+o)>=(i=+i)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(t.points.length*2),this.vectors=new Float64Array(t.points.length*2),this.xmax=r,this.xmin=n,this.ymax=o,this.ymin=i,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:i},vectors:r}=this;let o,s;const a=this.circumcenters=this._circumcenters.subarray(0,i.length/3*2);for(let g=0,m=0,y=i.length,b,x;g<y;g+=3,m+=2){const v=i[g]*2,w=i[g+1]*2,A=i[g+2]*2,E=t[v],S=t[v+1],C=t[w],_=t[w+1],k=t[A],N=t[A+1],T=C-E,F=_-S,$=k-E,D=N-S,P=(T*D-F*$)*2;if(Math.abs(P)<1e-9){if(o===void 0){o=s=0;for(const I of n)o+=t[I*2],s+=t[I*2+1];o/=n.length,s/=n.length}const z=1e9*Math.sign((o-E)*D-(s-S)*$);b=(E+k)/2-z*D,x=(S+N)/2+z*$}else{const z=1/P,I=T*T+F*F,V=$*$+D*D;b=E+(D*I-F*V)*z,x=S+(T*V-$*I)*z}a[m]=b,a[m+1]=x}let u=n[n.length-1],l,c=u*4,f,d=t[2*u],h,p=t[2*u+1];r.fill(0);for(let g=0;g<n.length;++g)u=n[g],l=c,f=d,h=p,c=u*4,d=t[2*u],p=t[2*u+1],r[l+2]=r[c]=h-p,r[l+3]=r[c+1]=d-f}render(t){const n=t==null?t=new Vs:void 0,{delaunay:{halfedges:i,inedges:r,hull:o},circumcenters:s,vectors:a}=this;if(o.length<=1)return null;for(let c=0,f=i.length;c<f;++c){const d=i[c];if(d<c)continue;const h=Math.floor(c/3)*2,p=Math.floor(d/3)*2,g=s[h],m=s[h+1],y=s[p],b=s[p+1];this._renderSegment(g,m,y,b,t)}let u,l=o[o.length-1];for(let c=0;c<o.length;++c){u=l,l=o[c];const f=Math.floor(r[l]/3)*2,d=s[f],h=s[f+1],p=u*4,g=this._project(d,h,a[p+2],a[p+3]);g&&this._renderSegment(d,h,g[0],g[1],t)}return n&&n.value()}renderBounds(t){const n=t==null?t=new Vs:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(t,n){const i=n==null?n=new Vs:void 0,r=this._clip(t);if(r===null||!r.length)return;n.moveTo(r[0],r[1]);let o=r.length;for(;r[0]===r[o-2]&&r[1]===r[o-1]&&o>1;)o-=2;for(let s=2;s<o;s+=2)(r[s]!==r[s-2]||r[s+1]!==r[s-1])&&n.lineTo(r[s],r[s+1]);return n.closePath(),i&&i.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,i=t.length/2;n<i;++n){const r=this.cellPolygon(n);r&&(r.index=n,yield r)}}cellPolygon(t){const n=new $b;return this.renderCell(t,n),n.value()}_renderSegment(t,n,i,r,o){let s;const a=this._regioncode(t,n),u=this._regioncode(i,r);a===0&&u===0?(o.moveTo(t,n),o.lineTo(i,r)):(s=this._clipSegment(t,n,i,r,a,u))&&(o.moveTo(s[0],s[1]),o.lineTo(s[2],s[3]))}contains(t,n,i){return n=+n,n!==n||(i=+i,i!==i)?!1:this.delaunay._step(t,n,i)===t}*neighbors(t){const n=this._clip(t);if(n)for(const i of this.delaunay.neighbors(t)){const r=this._clip(i);if(r){e:for(let o=0,s=n.length;o<s;o+=2)for(let a=0,u=r.length;a<u;a+=2)if(n[o]===r[a]&&n[o+1]===r[a+1]&&n[(o+2)%s]===r[(a+u-2)%u]&&n[(o+3)%s]===r[(a+u-1)%u]){yield i;break e}}}}_cell(t){const{circumcenters:n,delaunay:{inedges:i,halfedges:r,triangles:o}}=this,s=i[t];if(s===-1)return null;const a=[];let u=s;do{const l=Math.floor(u/3);if(a.push(n[l*2],n[l*2+1]),u=u%3===2?u-2:u+1,o[u]!==t)break;u=r[u]}while(u!==s&&u!==-1);return a}_clip(t){if(t===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(t);if(n===null)return null;const{vectors:i}=this,r=t*4;return this._simplify(i[r]||i[r+1]?this._clipInfinite(t,n,i[r],i[r+1],i[r+2],i[r+3]):this._clipFinite(t,n))}_clipFinite(t,n){const i=n.length;let r=null,o,s,a=n[i-2],u=n[i-1],l,c=this._regioncode(a,u),f,d=0;for(let h=0;h<i;h+=2)if(o=a,s=u,a=n[h],u=n[h+1],l=c,c=this._regioncode(a,u),l===0&&c===0)f=d,d=0,r?r.push(a,u):r=[a,u];else{let p,g,m,y,b;if(l===0){if((p=this._clipSegment(o,s,a,u,l,c))===null)continue;[g,m,y,b]=p}else{if((p=this._clipSegment(a,u,o,s,c,l))===null)continue;[y,b,g,m]=p,f=d,d=this._edgecode(g,m),f&&d&&this._edge(t,f,d,r,r.length),r?r.push(g,m):r=[g,m]}f=d,d=this._edgecode(y,b),f&&d&&this._edge(t,f,d,r,r.length),r?r.push(y,b):r=[y,b]}if(r)f=d,d=this._edgecode(r[0],r[1]),f&&d&&this._edge(t,f,d,r,r.length);else if(this.contains(t,(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 r}_clipSegment(t,n,i,r,o,s){const a=o<s;for(a&&([t,n,i,r,o,s]=[i,r,t,n,s,o]);;){if(o===0&&s===0)return a?[i,r,t,n]:[t,n,i,r];if(o&s)return null;let u,l,c=o||s;c&8?(u=t+(i-t)*(this.ymax-n)/(r-n),l=this.ymax):c&4?(u=t+(i-t)*(this.ymin-n)/(r-n),l=this.ymin):c&2?(l=n+(r-n)*(this.xmax-t)/(i-t),u=this.xmax):(l=n+(r-n)*(this.xmin-t)/(i-t),u=this.xmin),o?(t=u,n=l,o=this._regioncode(t,n)):(i=u,r=l,s=this._regioncode(i,r))}}_clipInfinite(t,n,i,r,o,s){let a=Array.from(n),u;if((u=this._project(a[0],a[1],i,r))&&a.unshift(u[0],u[1]),(u=this._project(a[a.length-2],a[a.length-1],o,s))&&a.push(u[0],u[1]),a=this._clipFinite(t,a))for(let l=0,c=a.length,f,d=this._edgecode(a[c-2],a[c-1]);l<c;l+=2)f=d,d=this._edgecode(a[l],a[l+1]),f&&d&&(l=this._edge(t,f,d,a,l),c=a.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(a=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return a}_edge(t,n,i,r,o){for(;n!==i;){let s,a;switch(n){case 5:n=4;continue;case 4:n=6,s=this.xmax,a=this.ymin;break;case 6:n=2;continue;case 2:n=10,s=this.xmax,a=this.ymax;break;case 10:n=8;continue;case 8:n=9,s=this.xmin,a=this.ymax;break;case 9:n=1;continue;case 1:n=5,s=this.xmin,a=this.ymin;break}(r[o]!==s||r[o+1]!==a)&&this.contains(t,s,a)&&(r.splice(o,0,s,a),o+=2)}return o}_project(t,n,i,r){let o=1/0,s,a,u;if(r<0){if(n<=this.ymin)return null;(s=(this.ymin-n)/r)<o&&(u=this.ymin,a=t+(o=s)*i)}else if(r>0){if(n>=this.ymax)return null;(s=(this.ymax-n)/r)<o&&(u=this.ymax,a=t+(o=s)*i)}if(i>0){if(t>=this.xmax)return null;(s=(this.xmax-t)/i)<o&&(a=this.xmax,u=n+(o=s)*r)}else if(i<0){if(t<=this.xmin)return null;(s=(this.xmin-t)/i)<o&&(a=this.xmin,u=n+(o=s)*r)}return[a,u]}_edgecode(t,n){return(t===this.xmin?1:t===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(t,n){return(t<this.xmin?1:t>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let n=0;n<t.length;n+=2){const i=(n+2)%t.length,r=(n+4)%t.length;(t[n]===t[i]&&t[i]===t[r]||t[n+1]===t[i+1]&&t[i+1]===t[r+1])&&(t.splice(i,2),n-=2)}t.length||(t=null)}return t}};const OK=2*Math.PI,tu=Math.pow;function RK(e){return e[0]}function NK(e){return e[1]}function LK(e){const{triangles:t,coords:n}=e;for(let i=0;i<t.length;i+=3){const r=2*t[i],o=2*t[i+1],s=2*t[i+2];if((n[s]-n[r])*(n[o+1]-n[r+1])-(n[o]-n[r])*(n[s+1]-n[r+1])>1e-10)return!1}return!0}function PK(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class kE{static from(t,n=RK,i=NK,r){return new kE("length"in t?IK(t,n,i,r):Float64Array.from(zK(t,n,i,r)))}constructor(t){this._delaunator=new _p(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const t=this._delaunator,n=this.points;if(t.hull&&t.hull.length>2&&LK(t)){this.collinear=Int32Array.from({length:n.length/2},(d,h)=>h).sort((d,h)=>n[2*d]-n[2*h]||n[2*d+1]-n[2*h+1]);const u=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[n[2*u],n[2*u+1],n[2*l],n[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let d=0,h=n.length/2;d<h;++d){const p=PK(n[2*d],n[2*d+1],f);n[2*d]=p[0],n[2*d+1]=p[1]}this._delaunator=new _p(n)}else delete this.collinear;const i=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,s=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let u=0,l=i.length;u<l;++u){const c=o[u%3===2?u-2:u+1];(i[u]===-1||s[c]===-1)&&(s[c]=u)}for(let u=0,l=r.length;u<l;++u)a[r[u]]=u;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],s[r[0]]=1,r.length===2&&(s[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(t){return new MK(this,t)}*neighbors(t){const{inedges:n,hull:i,_hullIndex:r,halfedges:o,triangles:s,collinear:a}=this;if(a){const f=a.indexOf(t);f>0&&(yield a[f-1]),f<a.length-1&&(yield a[f+1]);return}const u=n[t];if(u===-1)return;let l=u,c=-1;do{if(yield c=s[l],l=l%3===2?l-2:l+1,s[l]!==t)return;if(l=o[l],l===-1){const f=i[(r[t]+1)%i.length];f!==c&&(yield f);return}}while(l!==u)}find(t,n,i=0){if(t=+t,t!==t||(n=+n,n!==n))return-1;const r=i;let o;for(;(o=this._step(i,t,n))>=0&&o!==i&&o!==r;)i=o;return o}_step(t,n,i){const{inedges:r,hull:o,_hullIndex:s,halfedges:a,triangles:u,points:l}=this;if(r[t]===-1||!l.length)return(t+1)%(l.length>>1);let c=t,f=tu(n-l[t*2],2)+tu(i-l[t*2+1],2);const d=r[t];let h=d;do{let p=u[h];const g=tu(n-l[p*2],2)+tu(i-l[p*2+1],2);if(g<f&&(f=g,c=p),h=h%3===2?h-2:h+1,u[h]!==t)break;if(h=a[h],h===-1){if(h=o[(s[t]+1)%o.length],h!==p&&tu(n-l[h*2],2)+tu(i-l[h*2+1],2)<f)return h;break}}while(h!==d);return c}render(t){const n=t==null?t=new Vs:void 0,{points:i,halfedges:r,triangles:o}=this;for(let s=0,a=r.length;s<a;++s){const u=r[s];if(u<s)continue;const l=o[s]*2,c=o[u]*2;t.moveTo(i[l],i[l+1]),t.lineTo(i[c],i[c+1])}return this.renderHull(t),n&&n.value()}renderPoints(t,n){n===void 0&&(!t||typeof t.moveTo!="function")&&(n=t,t=null),n=n==null?2:+n;const i=t==null?t=new Vs:void 0,{points:r}=this;for(let o=0,s=r.length;o<s;o+=2){const a=r[o],u=r[o+1];t.moveTo(a+n,u),t.arc(a,u,n,0,OK)}return i&&i.value()}renderHull(t){const n=t==null?t=new Vs:void 0,{hull:i,points:r}=this,o=i[0]*2,s=i.length;t.moveTo(r[o],r[o+1]);for(let a=1;a<s;++a){const u=2*i[a];t.lineTo(r[u],r[u+1])}return t.closePath(),n&&n.value()}hullPolygon(){const t=new $b;return this.renderHull(t),t.value()}renderTriangle(t,n){const i=n==null?n=new Vs:void 0,{points:r,triangles:o}=this,s=o[t*=3]*2,a=o[t+1]*2,u=o[t+2]*2;return n.moveTo(r[s],r[s+1]),n.lineTo(r[a],r[a+1]),n.lineTo(r[u],r[u+1]),n.closePath(),i&&i.value()}*trianglePolygons(){const{triangles:t}=this;for(let n=0,i=t.length/3;n<i;++n)yield this.trianglePolygon(n)}trianglePolygon(t){const n=new $b;return this.renderTriangle(t,n),n.value()}}function IK(e,t,n,i){const r=e.length,o=new Float64Array(r*2);for(let s=0;s<r;++s){const a=e[s];o[s*2]=t.call(i,a,s,e),o[s*2+1]=n.call(i,a,s,e)}return o}function*zK(e,t,n,i){let r=0;for(const o of e)yield t.call(i,o,r,e),yield n.call(i,o,r,e),++r}function DE(e){M.call(this,null,e)}DE.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 BK=[-1e5,-1e5,1e5,1e5];G(DE,M,{transform(e,t){const n=e.as||"path",i=t.source;if(!i||!i.length)return t;let r=e.size;r=r?[0,0,r[0],r[1]]:(r=e.extent)?[r[0][0],r[0][1],r[1][0],r[1][1]]:BK;const o=this.value=kE.from(i,e.x,e.y).voronoi(r);for(let s=0,a=i.length;s<a;++s){const u=o.cellPolygon(s);i[s][n]=u&&!jK(u)?UK(u):null}return t.reflow(e.modified()).modifies(n)}});function UK(e){const t=e[0][0],n=e[0][1];let i=e.length-1;for(;e[i][0]===t&&e[i][1]===n;--i);return"M"+e.slice(0,i+1).join("L")+"Z"}function jK(e){return e.length===2&&e[0][0]===e[1][0]&&e[0][1]===e[1][1]}const qK=Object.freeze(Object.defineProperty({__proto__:null,voronoi:DE},Symbol.toStringTag,{value:"Module"}));var f1=Math.PI/180,bc=64,ph=2048;function WK(){var e=[256,256],t,n,i,r,o,s,a,u=nR,l=[],c=Math.random,f={};f.layout=function(){for(var p=d(Vo()),g=KK((e[0]>>5)*e[1]),m=null,y=l.length,b=-1,x=[],v=l.map(A=>({text:t(A),font:n(A),style:r(A),weight:o(A),rotate:s(A),size:~~(i(A)+1e-14),padding:a(A),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:A})).sort((A,E)=>E.size-A.size);++b<y;){var w=v[b];w.x=e[0]*(c()+.5)>>1,w.y=e[1]*(c()+.5)>>1,GK(p,w,v,b),w.hasText&&h(g,w,m)&&(x.push(w),m?VK(m,w):m=[{x:w.x+w.x0,y:w.y+w.y0},{x:w.x+w.x1,y:w.y+w.y1}],w.x-=e[0]>>1,w.y-=e[1]>>1)}return x};function d(p){p.width=p.height=1;var g=Math.sqrt(p.getContext("2d").getImageData(0,0,1,1).data.length>>2);p.width=(bc<<5)/g,p.height=ph/g;var m=p.getContext("2d");return m.fillStyle=m.strokeStyle="red",m.textAlign="center",{context:m,ratio:g}}function h(p,g,m){for(var y=g.x,b=g.y,x=Math.hypot(e[0],e[1]),v=u(e),w=c()<.5?1:-1,A=-w,E,S,C;(E=v(A+=w))&&(S=~~E[0],C=~~E[1],!(Math.min(Math.abs(S),Math.abs(C))>=x));)if(g.x=y+S,g.y=b+C,!(g.x+g.x0<0||g.y+g.y0<0||g.x+g.x1>e[0]||g.y+g.y1>e[1])&&(!m||!HK(g,p,e[0]))&&(!m||YK(g,m))){for(var _=g.sprite,k=g.width>>5,N=e[0]>>5,T=g.x-(k<<4),F=T&127,$=32-F,D=g.y1-g.y0,P=(g.y+g.y0)*N+(T>>5),z,I=0;I<D;I++){z=0;for(var V=0;V<=k;V++)p[P+V]|=z<<$|(V<k?(z=_[I*k+V])>>>F:0);P+=N}return g.sprite=null,!0}return!1}return f.words=function(p){return arguments.length?(l=p,f):l},f.size=function(p){return arguments.length?(e=[+p[0],+p[1]],f):e},f.font=function(p){return arguments.length?(n=Cs(p),f):n},f.fontStyle=function(p){return arguments.length?(r=Cs(p),f):r},f.fontWeight=function(p){return arguments.length?(o=Cs(p),f):o},f.rotate=function(p){return arguments.length?(s=Cs(p),f):s},f.text=function(p){return arguments.length?(t=Cs(p),f):t},f.spiral=function(p){return arguments.length?(u=JK[p]||p,f):u},f.fontSize=function(p){return arguments.length?(i=Cs(p),f):i},f.padding=function(p){return arguments.length?(a=Cs(p),f):a},f.random=function(p){return arguments.length?(c=p,f):c},f}function GK(e,t,n,i){if(!t.sprite){var r=e.context,o=e.ratio;r.clearRect(0,0,(bc<<5)/o,ph/o);var s=0,a=0,u=0,l=n.length,c,f,d,h,p;for(--i;++i<l;){if(t=n[i],r.save(),r.font=t.style+" "+t.weight+" "+~~((t.size+1)/o)+"px "+t.font,c=r.measureText(t.text+"m").width*o,d=t.size<<1,t.rotate){var g=Math.sin(t.rotate*f1),m=Math.cos(t.rotate*f1),y=c*m,b=c*g,x=d*m,v=d*g;c=Math.max(Math.abs(y+v),Math.abs(y-v))+31>>5<<5,d=~~Math.max(Math.abs(b+x),Math.abs(b-x))}else c=c+31>>5<<5;if(d>u&&(u=d),s+c>=bc<<5&&(s=0,a+=u,u=0),a+d>=ph)break;r.translate((s+(c>>1))/o,(a+(d>>1))/o),t.rotate&&r.rotate(t.rotate*f1),r.fillText(t.text,0,0),t.padding&&(r.lineWidth=2*t.padding,r.strokeText(t.text,0,0)),r.restore(),t.width=c,t.height=d,t.xoff=s,t.yoff=a,t.x1=c>>1,t.y1=d>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,s+=c}for(var w=r.getImageData(0,0,(bc<<5)/o,ph/o).data,A=[];--i>=0;)if(t=n[i],!!t.hasText){for(c=t.width,f=c>>5,d=t.y1-t.y0,h=0;h<d*f;h++)A[h]=0;if(s=t.xoff,s==null)return;a=t.yoff;var E=0,S=-1;for(p=0;p<d;p++){for(h=0;h<c;h++){var C=f*p+(h>>5),_=w[(a+p)*(bc<<5)+(s+h)<<2]?1<<31-h%32:0;A[C]|=_,E|=_}E?S=p:(t.y0++,d--,p--,a++)}t.y1=t.y0+S,t.sprite=A.slice(0,(t.y1-t.y0)*f)}}}function HK(e,t,n){n>>=5;for(var i=e.sprite,r=e.width>>5,o=e.x-(r<<4),s=o&127,a=32-s,u=e.y1-e.y0,l=(e.y+e.y0)*n+(o>>5),c,f=0;f<u;f++){c=0;for(var d=0;d<=r;d++)if((c<<a|(d<r?(c=i[f*r+d])>>>s:0))&t[l+d])return!0;l+=n}return!1}function VK(e,t){var n=e[0],i=e[1];t.x+t.x0<n.x&&(n.x=t.x+t.x0),t.y+t.y0<n.y&&(n.y=t.y+t.y0),t.x+t.x1>i.x&&(i.x=t.x+t.x1),t.y+t.y1>i.y&&(i.y=t.y+t.y1)}function YK(e,t){return e.x+e.x1>t[0].x&&e.x+e.x0<t[1].x&&e.y+e.y1>t[0].y&&e.y+e.y0<t[1].y}function nR(e){var t=e[0]/e[1];return function(n){return[t*(n*=.1)*Math.cos(n),n*Math.sin(n)]}}function XK(e){var t=4,n=t*e[0]/e[1],i=0,r=0;return function(o){var s=o<0?-1:1;switch(Math.sqrt(1+4*s*o)-s&3){case 0:i+=n;break;case 1:r+=t;break;case 2:i-=n;break;default:r-=t;break}return[i,r]}}function KK(e){for(var t=[],n=-1;++n<e;)t[n]=0;return t}function Cs(e){return typeof e=="function"?e:function(){return e}}var JK={archimedean:nR,rectangular:XK};const iR=["x","y","font","fontSize","fontStyle","fontWeight","angle"],QK=["text","font","rotate","fontSize","fontStyle","fontWeight"];function TE(e){M.call(this,WK(),e)}TE.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:iR}]};G(TE,M,{transform(e,t){e.size&&!(e.size[0]&&e.size[1])&&L("Wordcloud size dimensions must be non-zero.");function n(p){const g=e[p];return be(g)&&t.modified(g.fields)}const i=e.modified();if(!(i||t.changed(t.ADD_REM)||QK.some(n)))return;const r=t.materialize(t.SOURCE).source,o=this.value,s=e.as||iR;let a=e.fontSize||14,u;if(be(a)?u=e.fontSizeRange:a=wn(a),u){const p=a,g=Me("sqrt")().domain(lo(r,p)).range(u);a=m=>g(p(m))}r.forEach(p=>{p[s[0]]=NaN,p[s[1]]=NaN,p[s[3]]=0});const l=o.words(r).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(a).random(mi).layout(),c=o.size(),f=c[0]>>1,d=c[1]>>1,h=l.length;for(let p=0,g,m;p<h;++p)g=l[p],m=g.datum,m[s[0]]=g.x+f,m[s[1]]=g.y+d,m[s[2]]=g.font,m[s[3]]=g.size,m[s[4]]=g.style,m[s[5]]=g.weight,m[s[6]]=g.rotate;return t.reflow(i).modifies(s)}});const ZK=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:TE},Symbol.toStringTag,{value:"Module"})),eJ=e=>new Uint8Array(e),tJ=e=>new Uint16Array(e),Mc=e=>new Uint32Array(e);function nJ(){let e=8,t=[],n=Mc(0),i=Nd(0,e),r=Nd(0,e);return{data:()=>t,seen:()=>n=iJ(n,t.length),add(o){for(let s=0,a=t.length,u=o.length,l;s<u;++s)l=o[s],l._index=a++,t.push(l)},remove(o,s){const a=t.length,u=Array(a-o),l=t;let c,f,d;for(f=0;!s[f]&&f<a;++f)u[f]=t[f],l[f]=f;for(d=f;f<a;++f)c=t[f],s[f]?l[f]=-1:(l[f]=d,i[d]=i[f],r[d]=r[f],u[d]=c,c._index=d++),i[f]=0;return t=u,l},size:()=>t.length,curr:()=>i,prev:()=>r,reset:o=>r[o]=i[o],all:()=>e<257?255:e<65537?65535:4294967295,set(o,s){i[o]|=s},clear(o,s){i[o]&=~s},resize(o,s){const a=i.length;(o>a||s>e)&&(e=Math.max(s,e),i=Nd(o,e,i),r=Nd(o,e))}}}function iJ(e,t,n){return e.length>=t?e:(n=n||new e.constructor(t),n.set(e),n)}function Nd(e,t,n){const i=(t<257?eJ:t<65537?tJ:Mc)(e);return n&&i.set(n),i}function T$(e,t,n){const i=1<<t;return{one:i,zero:~i,range:n.slice(),bisect:e.bisect,index:e.index,size:e.size,onAdd(r,o){const s=this,a=s.bisect(s.range,r.value),u=r.index,l=a[0],c=a[1],f=u.length;let d;for(d=0;d<l;++d)o[u[d]]|=i;for(d=c;d<f;++d)o[u[d]]|=i;return s}}}function M$(){let e=Mc(0),t=[],n=0;function i(a,u,l){if(!u.length)return[];const c=n,f=u.length,d=Mc(f);let h=Array(f),p,g,m;for(m=0;m<f;++m)h[m]=a(u[m]),d[m]=m;if(h=rJ(h,d),c)p=t,g=e,t=Array(c+f),e=Mc(c+f),oJ(l,p,g,c,h,d,f,t,e);else{if(l>0)for(m=0;m<f;++m)d[m]+=l;t=h,e=d}return n=c+f,{index:d,value:h}}function r(a,u){const l=n;let c,f,d;for(f=0;!u[e[f]]&&f<l;++f);for(d=f;f<l;++f)u[c=e[f]]||(e[d]=c,t[d]=t[f],++d);n=l-a}function o(a){for(let u=0,l=n;u<l;++u)e[u]=a[e[u]]}function s(a,u){let l;return u?l=u.length:(u=t,l=n),[j8(u,a[0],0,l),Cu(u,a[1],0,l)]}return{insert:i,remove:r,bisect:s,reindex:o,index:()=>e,size:()=>n}}function rJ(e,t){return e.sort.call(t,(n,i)=>{const r=e[n],o=e[i];return r<o?-1:r>o?1:0}),aI(e,t)}function oJ(e,t,n,i,r,o,s,a,u){let l=0,c=0,f;for(f=0;l<i&&c<s;++f)t[l]<r[c]?(a[f]=t[l],u[f]=n[l++]):(a[f]=r[c],u[f]=o[c++]+e);for(;l<i;++l,++f)a[f]=t[l],u[f]=n[l];for(;c<s;++c,++f)a[f]=r[c],u[f]=o[c]+e}function ME(e){M.call(this,nJ(),e),this._indices=null,this._dims=null}ME.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}}]};G(ME,M,{transform(e,t){if(this._dims){var n=e.modified("fields")||e.fields.some(i=>t.modified(i.fields));return n?this.reinit(e,t):this.eval(e,t)}else return this.init(e,t)},init(e,t){const n=e.fields,i=e.query,r=this._indices={},o=this._dims=[],s=i.length;let a=0,u,l;for(;a<s;++a)u=n[a].fname,l=r[u]||(r[u]=M$()),o.push(T$(l,a,i[a]));return this.eval(e,t)},reinit(e,t){const n=t.materialize().fork(),i=e.fields,r=e.query,o=this._indices,s=this._dims,a=this.value,u=a.curr(),l=a.prev(),c=a.all(),f=n.rem=n.add,d=n.mod,h=r.length,p={};let g,m,y,b,x,v,w,A,E;if(l.set(u),t.rem.length&&(x=this.remove(e,t,n)),t.add.length&&a.add(t.add),t.mod.length)for(v={},b=t.mod,w=0,A=b.length;w<A;++w)v[b[w]._index]=1;for(w=0;w<h;++w)E=i[w],(!s[w]||e.modified("fields",w)||t.modified(E.fields))&&(y=E.fname,(g=p[y])||(o[y]=m=M$(),p[y]=g=m.insert(E,t.source,0)),s[w]=T$(m,w,r[w]).onAdd(g,u));for(w=0,A=a.data().length;w<A;++w)x[w]||(l[w]!==u[w]?f.push(w):v[w]&&u[w]!==c&&d.push(w));return a.mask=(1<<h)-1,n},eval(e,t){const n=t.materialize().fork(),i=this._dims.length;let r=0;return t.rem.length&&(this.remove(e,t,n),r|=(1<<i)-1),e.modified("query")&&!e.modified("fields")&&(r|=this.update(e,t,n)),t.add.length&&(this.insert(e,t,n),r|=(1<<i)-1),t.mod.length&&(this.modify(t,n),r|=(1<<i)-1),this.value.mask=r,n},insert(e,t,n){const i=t.add,r=this.value,o=this._dims,s=this._indices,a=e.fields,u={},l=n.add,c=r.size()+i.length,f=o.length;let d=r.size(),h,p,g;r.resize(c,f),r.add(i);const m=r.curr(),y=r.prev(),b=r.all();for(h=0;h<f;++h)p=a[h].fname,g=u[p]||(u[p]=s[p].insert(a[h],i,d)),o[h].onAdd(g,m);for(;d<c;++d)y[d]=b,m[d]!==b&&l.push(d)},modify(e,t){const n=t.mod,i=this.value,r=i.curr(),o=i.all(),s=e.mod;let a,u,l;for(a=0,u=s.length;a<u;++a)l=s[a]._index,r[l]!==o&&n.push(l)},remove(e,t,n){const i=this._indices,r=this.value,o=r.curr(),s=r.prev(),a=r.all(),u={},l=n.rem,c=t.rem;let f,d,h,p;for(f=0,d=c.length;f<d;++f)h=c[f]._index,u[h]=1,s[h]=p=o[h],o[h]=a,p!==a&&l.push(h);for(h in i)i[h].remove(d,u);return this.reindex(t,d,u),u},reindex(e,t,n){const i=this._indices,r=this.value;e.runAfter(()=>{const o=r.remove(t,n);for(const s in i)i[s].reindex(o)})},update(e,t,n){const i=this._dims,r=e.query,o=t.stamp,s=i.length;let a=0,u,l;for(n.filters=0,l=0;l<s;++l)e.modified("query",l)&&(u=l,++a);if(a===1)a=i[u].one,this.incrementOne(i[u],r[u],n.add,n.rem);else for(l=0,a=0;l<s;++l)e.modified("query",l)&&(a|=i[l].one,this.incrementAll(i[l],r[l],o,n.add),n.rem=n.add);return a},incrementAll(e,t,n,i){const r=this.value,o=r.seen(),s=r.curr(),a=r.prev(),u=e.index(),l=e.bisect(e.range),c=e.bisect(t),f=c[0],d=c[1],h=l[0],p=l[1],g=e.one;let m,y,b;if(f<h)for(m=f,y=Math.min(h,d);m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;else if(f>h)for(m=h,y=Math.min(f,p);m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;if(d>p)for(m=Math.max(f,p),y=d;m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;else if(d<p)for(m=Math.max(h,d),y=p;m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;e.range=t.slice()},incrementOne(e,t,n,i){const r=this.value,o=r.curr(),s=e.index(),a=e.bisect(e.range),u=e.bisect(t),l=u[0],c=u[1],f=a[0],d=a[1],h=e.one;let p,g,m;if(l<f)for(p=l,g=Math.min(f,c);p<g;++p)m=s[p],o[m]^=h,n.push(m);else if(l>f)for(p=f,g=Math.min(l,d);p<g;++p)m=s[p],o[m]^=h,i.push(m);if(c>d)for(p=Math.max(l,d),g=c;p<g;++p)m=s[p],o[m]^=h,n.push(m);else if(c<d)for(p=Math.max(f,c),g=d;p<g;++p)m=s[p],o[m]^=h,i.push(m);e.range=t.slice()}});function OE(e){M.call(this,null,e)}OE.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."}]};G(OE,M,{transform(e,t){const n=~(e.ignore||0),i=e.filter,r=i.mask;if((r&n)===0)return t.StopPropagation;const o=t.fork(t.ALL),s=i.data(),a=i.curr(),u=i.prev(),l=c=>a[c]&n?null:s[c];return o.filter(o.MOD,l),r&r-1?(o.filter(o.ADD,c=>{const f=a[c]&n;return!f&&f^u[c]&n?s[c]:null}),o.filter(o.REM,c=>{const f=a[c]&n;return f&&!(f^(f^u[c]&n))?s[c]:null})):(o.filter(o.ADD,l),o.filter(o.REM,c=>(a[c]&n)===r?s[c]:null)),o.filter(o.SOURCE,c=>l(c._index))}});const sJ=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:ME,resolvefilter:OE},Symbol.toStringTag,{value:"Module"})),aJ="RawCode",da="Literal",uJ="Property",lJ="Identifier",cJ="ArrayExpression",fJ="BinaryExpression",rR="CallExpression",dJ="ConditionalExpression",hJ="LogicalExpression",pJ="MemberExpression",gJ="ObjectExpression",mJ="UnaryExpression";function Wi(e){this.type=e}Wi.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=yJ(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};function yJ(e){switch(e.type){case cJ:return e.elements;case fJ:case hJ:return[e.left,e.right];case rR:return[e.callee].concat(e.arguments);case dJ:return[e.test,e.consequent,e.alternate];case pJ:return[e.object,e.property];case gJ:return e.properties;case uJ:return[e.key,e.value];case mJ:return[e.argument];case lJ:case da:case aJ:default:return[]}}var kr,K,O,rn,Pe,r0=1,Uf=2,ha=3,fs=4,o0=5,Oa=6,kn=7,jf=8,bJ=9;kr={};kr[r0]="Boolean";kr[Uf]="<end>";kr[ha]="Identifier";kr[fs]="Keyword";kr[o0]="Null";kr[Oa]="Numeric";kr[kn]="Punctuator";kr[jf]="String";kr[bJ]="RegularExpression";var xJ="ArrayExpression",vJ="BinaryExpression",EJ="CallExpression",wJ="ConditionalExpression",oR="Identifier",AJ="Literal",SJ="LogicalExpression",CJ="MemberExpression",$J="ObjectExpression",_J="Property",FJ="UnaryExpression",Ct="Unexpected token %0",kJ="Unexpected number",DJ="Unexpected string",TJ="Unexpected identifier",MJ="Unexpected reserved word",OJ="Unexpected end of input",_b="Invalid regular expression",d1="Invalid regular expression: missing /",sR="Octal literals are not allowed in strict mode.",RJ="Duplicate data property in object literal not allowed in strict mode",Bt="ILLEGAL",ef="Disabled.",NJ=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]"),LJ=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 s0(e,t){if(!e)throw new Error("ASSERT: "+t)}function Wr(e){return e>=48&&e<=57}function RE(e){return"0123456789abcdefABCDEF".includes(e)}function Oc(e){return"01234567".includes(e)}function PJ(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function tf(e){return e===10||e===13||e===8232||e===8233}function qf(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&NJ.test(String.fromCharCode(e))}function Fp(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&LJ.test(String.fromCharCode(e))}const IJ={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 aR(){for(;O<rn;){const e=K.charCodeAt(O);if(PJ(e)||tf(e))++O;else break}}function Fb(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)O<rn&&RE(K[O])?(i=K[O++],r=r*16+"0123456789abcdef".indexOf(i.toLowerCase())):ke({},Ct,Bt);return String.fromCharCode(r)}function zJ(){var e,t,n,i;for(e=K[O],t=0,e==="}"&&ke({},Ct,Bt);O<rn&&(e=K[O++],!!RE(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ke({},Ct,Bt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function uR(){var e,t;for(e=K.charCodeAt(O++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(O)!==117&&ke({},Ct,Bt),++O,e=Fb("u"),(!e||e==="\\"||!qf(e.charCodeAt(0)))&&ke({},Ct,Bt),t=e);O<rn&&(e=K.charCodeAt(O),!!Fp(e));)++O,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(O)!==117&&ke({},Ct,Bt),++O,e=Fb("u"),(!e||e==="\\"||!Fp(e.charCodeAt(0)))&&ke({},Ct,Bt),t+=e);return t}function BJ(){var e,t;for(e=O++;O<rn;){if(t=K.charCodeAt(O),t===92)return O=e,uR();if(Fp(t))++O;else break}return K.slice(e,O)}function UJ(){var e,t,n;return e=O,t=K.charCodeAt(O)===92?uR():BJ(),t.length===1?n=ha:IJ.hasOwnProperty(t)?n=fs:t==="null"?n=o0:t==="true"||t==="false"?n=r0:n=ha,{type:n,value:t,start:e,end:O}}function h1(){var e=O,t=K.charCodeAt(O),n,i=K[O],r,o,s;switch(t){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++O,{type:kn,value:String.fromCharCode(t),start:e,end:O};default:if(n=K.charCodeAt(O+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return O+=2,{type:kn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:O};case 33:case 61:return O+=2,K.charCodeAt(O)===61&&++O,{type:kn,value:K.slice(e,O),start:e,end:O}}}if(s=K.substr(O,4),s===">>>=")return O+=4,{type:kn,value:s,start:e,end:O};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return O+=3,{type:kn,value:o,start:e,end:O};if(r=o.substr(0,2),i===r[1]&&"+-<>&|".includes(i)||r==="=>")return O+=2,{type:kn,value:r,start:e,end:O};if(r==="//"&&ke({},Ct,Bt),"<>=!+-*%&|^/".includes(i))return++O,{type:kn,value:i,start:e,end:O};ke({},Ct,Bt)}function jJ(e){let t="";for(;O<rn&&RE(K[O]);)t+=K[O++];return t.length===0&&ke({},Ct,Bt),qf(K.charCodeAt(O))&&ke({},Ct,Bt),{type:Oa,value:parseInt("0x"+t,16),start:e,end:O}}function qJ(e){let t="0"+K[O++];for(;O<rn&&Oc(K[O]);)t+=K[O++];return(qf(K.charCodeAt(O))||Wr(K.charCodeAt(O)))&&ke({},Ct,Bt),{type:Oa,value:parseInt(t,8),octal:!0,start:e,end:O}}function O$(){var e,t,n;if(n=K[O],s0(Wr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=O,e="",n!=="."){if(e=K[O++],n=K[O],e==="0"){if(n==="x"||n==="X")return++O,jJ(t);if(Oc(n))return qJ(t);n&&Wr(n.charCodeAt(0))&&ke({},Ct,Bt)}for(;Wr(K.charCodeAt(O));)e+=K[O++];n=K[O]}if(n==="."){for(e+=K[O++];Wr(K.charCodeAt(O));)e+=K[O++];n=K[O]}if(n==="e"||n==="E")if(e+=K[O++],n=K[O],(n==="+"||n==="-")&&(e+=K[O++]),Wr(K.charCodeAt(O)))for(;Wr(K.charCodeAt(O));)e+=K[O++];else ke({},Ct,Bt);return qf(K.charCodeAt(O))&&ke({},Ct,Bt),{type:Oa,value:parseFloat(e),start:t,end:O}}function WJ(){var e="",t,n,i,r,o=!1;for(t=K[O],s0(t==="'"||t==='"',"String literal must starts with a quote"),n=O,++O;O<rn;)if(i=K[O++],i===t){t="";break}else if(i==="\\")if(i=K[O++],!i||!tf(i.charCodeAt(0)))switch(i){case"u":case"x":K[O]==="{"?(++O,e+=zJ()):e+=Fb(i);break;case"n":e+=`
5
+ `)}function l(f){return f.map(c).join(e)}function c(f){return f==null?"":f instanceof Date?YP(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:i,parseRows:r,format:s,formatBody:a,formatRows:u,formatRow:l,formatValue:c}}function KP(e){return e}function JP(e){if(e==null)return KP;var t,n,i=e.scale[0],r=e.scale[1],o=e.translate[0],s=e.translate[1];return function(a,u){u||(t=n=0);var l=2,c=a.length,f=new Array(c);for(f[0]=(t+=a[0])*i+o,f[1]=(n+=a[1])*r+s;l<c;)f[l]=a[l],++l;return f}}function QP(e,t){for(var n,i=e.length,r=i-t;r<--i;)n=e[r],e[r++]=e[i],e[i]=n}function ZP(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return oS(e,n)})}:oS(e,t)}function oS(e,t){var n=t.id,i=t.bbox,r=t.properties==null?{}:t.properties,o=dD(e,t);return n==null&&i==null?{type:"Feature",properties:r,geometry:o}:i==null?{type:"Feature",id:n,properties:r,geometry:o}:{type:"Feature",id:n,bbox:i,properties:r,geometry:o}}function dD(e,t){var n=JP(e.transform),i=e.arcs;function r(c,f){f.length&&f.pop();for(var d=i[c<0?~c:c],h=0,p=d.length;h<p;++h)f.push(n(d[h],h));c<0&&QP(f,p)}function o(c){return n(c)}function s(c){for(var f=[],d=0,h=c.length;d<h;++d)r(c[d],f);return f.length<2&&f.push(f[0]),f}function a(c){for(var f=s(c);f.length<4;)f.push(f[0]);return f}function u(c){return c.map(a)}function l(c){var f=c.type,d;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":d=o(c.coordinates);break;case"MultiPoint":d=c.coordinates.map(o);break;case"LineString":d=s(c.arcs);break;case"MultiLineString":d=c.arcs.map(s);break;case"Polygon":d=u(c.arcs);break;case"MultiPolygon":d=c.arcs.map(u);break;default:return null}return{type:f,coordinates:d}}return l(t)}function eI(e,t){var n={},i={},r={},o=[],s=-1;t.forEach(function(l,c){var f=e.arcs[l<0?~l:l],d;f.length<3&&!f[1][0]&&!f[1][1]&&(d=t[++s],t[s]=l,t[c]=d)}),t.forEach(function(l){var c=a(l),f=c[0],d=c[1],h,p;if(h=r[f])if(delete r[h.end],h.push(l),h.end=d,p=i[d]){delete i[p.start];var g=p===h?h:h.concat(p);i[g.start=h.start]=r[g.end=p.end]=g}else i[h.start]=r[h.end]=h;else if(h=i[d])if(delete i[h.start],h.unshift(l),h.start=f,p=r[f]){delete r[p.end];var m=p===h?h:p.concat(h);i[m.start=p.start]=r[m.end=h.end]=m}else i[h.start]=r[h.end]=h;else h=[l],i[h.start=f]=r[h.end=d]=h});function a(l){var c=e.arcs[l<0?~l:l],f=c[0],d;return e.transform?(d=[0,0],c.forEach(function(h){d[0]+=h[0],d[1]+=h[1]})):d=c[c.length-1],l<0?[d,f]:[f,d]}function u(l,c){for(var f in l){var d=l[f];delete c[d.start],delete d.start,delete d.end,d.forEach(function(h){n[h<0?~h:h]=1}),o.push(d)}}return u(r,i),u(i,r),t.forEach(function(l){n[l<0?~l:l]||o.push([l])}),o}function tI(e){return dD(e,nI.apply(this,arguments))}function nI(e,t,n){var i,r,o;if(arguments.length>1)i=iI(e,t,n);else for(r=0,i=new Array(o=e.arcs.length);r<o;++r)i[r]=r;return{type:"MultiLineString",arcs:eI(e,i)}}function iI(e,t,n){var i=[],r=[],o;function s(f){var d=f<0?~f:f;(r[d]||(r[d]=[])).push({i:f,g:o})}function a(f){f.forEach(s)}function u(f){f.forEach(a)}function l(f){f.forEach(u)}function c(f){switch(o=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":a(f.arcs);break;case"MultiLineString":case"Polygon":u(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(t),r.forEach(n==null?function(f){i.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&i.push(f[0].i)}),i}function rI(e,t){let n=0,i,r=0,o=0;if(t===void 0)for(let s of e)s!=null&&(s=+s)>=s&&(i=s-r,r+=i/++n,o+=i*(s-r));else{let s=-1;for(let a of e)(a=t(a,++s,e))!=null&&(a=+a)>=a&&(i=a-r,r+=i/++n,o+=i*(a-r))}if(n>1)return o/(n-1)}function oI(e,t){const n=rI(e,t);return n&&Math.sqrt(n)}class vn{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let i=0;for(let r=0;r<this._n&&r<32;r++){const o=n[r],s=t+o,a=Math.abs(t)<Math.abs(o)?t-(s-o):o-(s-t);a&&(n[i++]=a),t=s}return n[i]=t,this._n=i+1,this}valueOf(){const t=this._partials;let n=this._n,i,r,o,s=0;if(n>0){for(s=t[--n];n>0&&(i=s,r=t[--n],s=i+r,o=r-(s-i),!o););n>0&&(o<0&&t[n-1]<0||o>0&&t[n-1]>0)&&(r=o*2,i=s+r,r==i-s&&(s=i))}return s}}class sS extends Map{constructor(t,n=gD){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[i,r]of t)this.set(i,r)}get(t){return super.get(my(this,t))}has(t){return super.has(my(this,t))}set(t,n){return super.set(hD(this,t),n)}delete(t){return super.delete(pD(this,t))}}class Fh extends Set{constructor(t,n=gD){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const i of t)this.add(i)}has(t){return super.has(my(this,t))}add(t){return super.add(hD(this,t))}delete(t){return super.delete(pD(this,t))}}function my({_intern:e,_key:t},n){const i=t(n);return e.has(i)?e.get(i):n}function hD({_intern:e,_key:t},n){const i=t(n);return e.has(i)?e.get(i):(e.set(i,n),n)}function pD({_intern:e,_key:t},n){const i=t(n);return e.has(i)&&(n=e.get(i),e.delete(i)),n}function gD(e){return e!==null&&typeof e=="object"?e.valueOf():e}function sI(e,t){return Array.from(t,n=>e[n])}function aI(e=zc){if(e===zc)return mD;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const i=e(t,n);return i||i===0?i:(e(n,n)===0)-(e(t,t)===0)}}function mD(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}function Xs(e,t){let n;if(t===void 0)for(const i of e)i!=null&&(n<i||n===void 0&&i>=i)&&(n=i);else{let i=-1;for(let r of e)(r=t(r,++i,e))!=null&&(n<r||n===void 0&&r>=r)&&(n=r)}return n}function yy(e,t){let n;if(t===void 0)for(const i of e)i!=null&&(n>i||n===void 0&&i>=i)&&(n=i);else{let i=-1;for(let r of e)(r=t(r,++i,e))!=null&&(n>r||n===void 0&&r>=r)&&(n=r)}return n}function yD(e,t,n=0,i=1/0,r){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),i=Math.floor(Math.min(e.length-1,i)),!(n<=t&&t<=i))return e;for(r=r===void 0?mD:aI(r);i>n;){if(i-n>600){const u=i-n+1,l=t-n+1,c=Math.log(u),f=.5*Math.exp(2*c/3),d=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1),h=Math.max(n,Math.floor(t-l*f/u+d)),p=Math.min(i,Math.floor(t+(u-l)*f/u+d));yD(e,t,h,p,r)}const o=e[t];let s=n,a=i;for(Dl(e,n,t),r(e[i],o)>0&&Dl(e,n,i);s<a;){for(Dl(e,s,a),++s,--a;r(e[s],o)<0;)++s;for(;r(e[a],o)>0;)--a}r(e[n],o)===0?Dl(e,n,a):(++a,Dl(e,a,i)),a<=t&&(n=a+1),t<=a&&(i=a-1)}return e}function Dl(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function by(e,t,n){if(e=Float64Array.from(M8(e,n)),!(!(i=e.length)||isNaN(t=+t))){if(t<=0||i<2)return yy(e);if(t>=1)return Xs(e);var i,r=(i-1)*t,o=Math.floor(r),s=Xs(yD(e,o).subarray(0,o+1)),a=yy(e.subarray(o+1));return s+(a-s)*(r-o)}}function bD(e,t,n=O8){if(!(!(i=e.length)||isNaN(t=+t))){if(t<=0||i<2)return+n(e[0],0,e);if(t>=1)return+n(e[i-1],i-1,e);var i,r=(i-1)*t,o=Math.floor(r),s=+n(e[o],o,e),a=+n(e[o+1],o+1,e);return s+(a-s)*(r-o)}}function uI(e,t){let n=0,i=0;if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&(++n,i+=r);else{let r=-1;for(let o of e)(o=t(o,++r,e))!=null&&(o=+o)>=o&&(++n,i+=o)}if(n)return i/n}function xD(e,t){return by(e,.5,t)}function*lI(e){for(const t of e)yield*t}function vD(e){return Array.from(lI(e))}function Yn(e,t,n){e=+e,t=+t,n=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+n;for(var i=-1,r=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(r);++i<r;)o[i]=e+i*n;return o}function ED(e,t){let n=0;for(let i of e)(i=+i)&&(n+=i);return n}function cI(e,...t){e=new Fh(e),t=t.map(fI);e:for(const n of e)for(const i of t)if(!i.has(n)){e.delete(n);continue e}return e}function fI(e){return e instanceof Fh?e:new Fh(e)}function dI(...e){const t=new Fh;for(const n of e)for(const i of n)t.add(i);return t}const wm=new Date,Am=new Date;function Et(e,t,n,i){function r(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return r.floor=o=>(e(o=new Date(+o)),o),r.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),r.round=o=>{const s=r(o),a=r.ceil(o);return o-s<a-o?s:a},r.offset=(o,s)=>(t(o=new Date(+o),s==null?1:Math.floor(s)),o),r.range=(o,s,a)=>{const u=[];if(o=r.ceil(o),a=a==null?1:Math.floor(a),!(o<s)||!(a>0))return u;let l;do u.push(l=new Date(+o)),t(o,a),e(o);while(l<o&&o<s);return u},r.filter=o=>Et(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,a)=>{if(s>=s)if(a<0)for(;++a<=0;)for(;t(s,-1),!o(s););else for(;--a>=0;)for(;t(s,1),!o(s););}),n&&(r.count=(o,s)=>(wm.setTime(+o),Am.setTime(+s),e(wm),e(Am),Math.floor(n(wm,Am))),r.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?r.filter(i?s=>i(s)%o===0:s=>r.count(0,s)%o===0):r)),r}const $u=Et(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);$u.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Et(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):$u);$u.range;const Xr=1e3,li=Xr*60,Kr=li*60,co=Kr*24,zx=co*7,aS=co*30,Sm=co*365,Jr=Et(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Xr)},(e,t)=>(t-e)/Xr,e=>e.getUTCSeconds());Jr.range;const gg=Et(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xr)},(e,t)=>{e.setTime(+e+t*li)},(e,t)=>(t-e)/li,e=>e.getMinutes());gg.range;const mg=Et(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*li)},(e,t)=>(t-e)/li,e=>e.getUTCMinutes());mg.range;const yg=Et(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xr-e.getMinutes()*li)},(e,t)=>{e.setTime(+e+t*Kr)},(e,t)=>(t-e)/Kr,e=>e.getHours());yg.range;const bg=Et(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Kr)},(e,t)=>(t-e)/Kr,e=>e.getUTCHours());bg.range;const no=Et(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*li)/co,e=>e.getDate()-1);no.range;const Go=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/co,e=>e.getUTCDate()-1);Go.range;const wD=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/co,e=>Math.floor(e/co));wD.range;function Fa(e){return Et(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*li)/zx)}const sl=Fa(0),kh=Fa(1),hI=Fa(2),pI=Fa(3),_u=Fa(4),gI=Fa(5),mI=Fa(6);sl.range;kh.range;hI.range;pI.range;_u.range;gI.range;mI.range;function ka(e){return Et(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/zx)}const al=ka(0),Dh=ka(1),yI=ka(2),bI=ka(3),Fu=ka(4),xI=ka(5),vI=ka(6);al.range;Dh.range;yI.range;bI.range;Fu.range;xI.range;vI.range;const Uc=Et(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Uc.range;const jc=Et(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());jc.range;const br=Et(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());br.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Et(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});br.range;const xr=Et(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());xr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Et(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});xr.range;function AD(e,t,n,i,r,o){const s=[[Jr,1,Xr],[Jr,5,5*Xr],[Jr,15,15*Xr],[Jr,30,30*Xr],[o,1,li],[o,5,5*li],[o,15,15*li],[o,30,30*li],[r,1,Kr],[r,3,3*Kr],[r,6,6*Kr],[r,12,12*Kr],[i,1,co],[i,2,2*co],[n,1,zx],[t,1,aS],[t,3,3*aS],[e,1,Sm]];function a(l,c,f){const d=c<l;d&&([l,c]=[c,l]);const h=f&&typeof f.range=="function"?f:u(l,c,f),p=h?h.range(l,+c+1):[];return d?p.reverse():p}function u(l,c,f){const d=Math.abs(c-l)/f,h=eg(([,,m])=>m).right(s,d);if(h===s.length)return e.every(ra(l/Sm,c/Sm,f));if(h===0)return $u.every(Math.max(ra(l,c,f),1));const[p,g]=s[d/s[h-1][2]<s[h][2]/d?h-1:h];return p.every(g)}return[a,u]}const[EI,wI]=AD(xr,jc,al,wD,bg,mg),[AI,SI]=AD(br,Uc,sl,no,yg,gg),jt="year",Pn="quarter",nn="month",bt="week",In="date",Zt="day",vr="dayofyear",ei="hours",ti="minutes",gi="seconds",Ii="milliseconds",Bx=[jt,Pn,nn,bt,In,Zt,vr,ei,ti,gi,Ii],Cm=Bx.reduce((e,t,n)=>(e[t]=1+n,e),{});function Ux(e){const t=se(e).slice(),n={};return t.length||L("Missing time unit."),t.forEach(r=>{le(Cm,r)?n[r]=1:L(`Invalid time unit: ${r}.`)}),(n[bt]||n[Zt]?1:0)+(n[Pn]||n[nn]||n[In]?1:0)+(n[vr]?1:0)>1&&L(`Incompatible time units: ${e}`),t.sort((r,o)=>Cm[r]-Cm[o]),t}const CI={[jt]:"%Y ",[Pn]:"Q%q ",[nn]:"%b ",[In]:"%d ",[bt]:"W%U ",[Zt]:"%a ",[vr]:"%j ",[ei]:"%H:00",[ti]:"00:%M",[gi]:":%S",[Ii]:".%L",[`${jt}-${nn}`]:"%Y-%m ",[`${jt}-${nn}-${In}`]:"%Y-%m-%d ",[`${ei}-${ti}`]:"%H:%M"};function SD(e,t){const n=ye({},CI,t),i=Ux(e),r=i.length;let o="",s=0,a,u;for(s=0;s<r;)for(a=i.length;a>s;--a)if(u=i.slice(s,a).join("-"),n[u]!=null){o+=n[u],s=a;break}return o.trim()}const Bs=new Date;function jx(e){return Bs.setFullYear(e),Bs.setMonth(0),Bs.setDate(1),Bs.setHours(0,0,0,0),Bs}function CD(e){return _D(new Date(e))}function $D(e){return xy(new Date(e))}function _D(e){return no.count(jx(e.getFullYear())-1,e)}function xy(e){return sl.count(jx(e.getFullYear())-1,e)}function vy(e){return jx(e).getDay()}function $I(e,t,n,i,r,o,s){if(0<=e&&e<100){const a=new Date(-1,t,n,i,r,o,s);return a.setFullYear(e),a}return new Date(e,t,n,i,r,o,s)}function FD(e){return DD(new Date(e))}function kD(e){return Ey(new Date(e))}function DD(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return Go.count(t-1,e)}function Ey(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return al.count(t-1,e)}function wy(e){return Bs.setTime(Date.UTC(e,0,1)),Bs.getUTCDay()}function _I(e,t,n,i,r,o,s){if(0<=e&&e<100){const a=new Date(Date.UTC(-1,t,n,i,r,o,s));return a.setUTCFullYear(n.y),a}return new Date(Date.UTC(e,t,n,i,r,o,s))}function TD(e,t,n,i,r){const o=t||1,s=$e(e),a=(y,b,x)=>(x=x||y,FI(n[x],i[x],y===s&&o,b)),u=new Date,l=yr(e),c=l[jt]?a(jt):wn(2012),f=l[nn]?a(nn):l[Pn]?a(Pn):zs,d=l[bt]&&l[Zt]?a(Zt,1,bt+Zt):l[bt]?a(bt,1):l[Zt]?a(Zt,1):l[In]?a(In,1):l[vr]?a(vr,1):xf,h=l[ei]?a(ei):zs,p=l[ti]?a(ti):zs,g=l[gi]?a(gi):zs,m=l[Ii]?a(Ii):zs;return function(y){u.setTime(+y);const b=c(u);return r(b,f(u),d(u,b),h(u),p(u),g(u),m(u))}}function FI(e,t,n,i){const r=n<=1?e:i?(o,s)=>i+n*Math.floor((e(o,s)-i)/n):(o,s)=>n*Math.floor(e(o,s)/n);return t?(o,s)=>t(r(o,s),s):r}function ku(e,t,n){return t+e*7-(n+6)%7}const kI={[jt]:e=>e.getFullYear(),[Pn]:e=>Math.floor(e.getMonth()/3),[nn]:e=>e.getMonth(),[In]:e=>e.getDate(),[ei]:e=>e.getHours(),[ti]:e=>e.getMinutes(),[gi]:e=>e.getSeconds(),[Ii]:e=>e.getMilliseconds(),[vr]:e=>_D(e),[bt]:e=>xy(e),[bt+Zt]:(e,t)=>ku(xy(e),e.getDay(),vy(t)),[Zt]:(e,t)=>ku(1,e.getDay(),vy(t))},DI={[Pn]:e=>3*e,[bt]:(e,t)=>ku(e,0,vy(t))};function MD(e,t){return TD(e,t||1,kI,DI,$I)}const TI={[jt]:e=>e.getUTCFullYear(),[Pn]:e=>Math.floor(e.getUTCMonth()/3),[nn]:e=>e.getUTCMonth(),[In]:e=>e.getUTCDate(),[ei]:e=>e.getUTCHours(),[ti]:e=>e.getUTCMinutes(),[gi]:e=>e.getUTCSeconds(),[Ii]:e=>e.getUTCMilliseconds(),[vr]:e=>DD(e),[bt]:e=>Ey(e),[Zt]:(e,t)=>ku(1,e.getUTCDay(),wy(t)),[bt+Zt]:(e,t)=>ku(Ey(e),e.getUTCDay(),wy(t))},MI={[Pn]:e=>3*e,[bt]:(e,t)=>ku(e,0,wy(t))};function OD(e,t){return TD(e,t||1,TI,MI,_I)}const OI={[jt]:br,[Pn]:Uc.every(3),[nn]:Uc,[bt]:sl,[In]:no,[Zt]:no,[vr]:no,[ei]:yg,[ti]:gg,[gi]:Jr,[Ii]:$u},RI={[jt]:xr,[Pn]:jc.every(3),[nn]:jc,[bt]:al,[In]:Go,[Zt]:Go,[vr]:Go,[ei]:bg,[ti]:mg,[gi]:Jr,[Ii]:$u};function ul(e){return OI[e]}function ll(e){return RI[e]}function RD(e,t,n){return e?e.offset(t,n):void 0}function ND(e,t,n){return RD(ul(e),t,n)}function LD(e,t,n){return RD(ll(e),t,n)}function PD(e,t,n,i){return e?e.range(t,n,i):void 0}function ID(e,t,n,i){return PD(ul(e),t,n,i)}function zD(e,t,n,i){return PD(ll(e),t,n,i)}const nc=1e3,ic=nc*60,rc=ic*60,xg=rc*24,NI=xg*7,uS=xg*30,Ay=xg*365,BD=[jt,nn,In,ei,ti,gi,Ii],oc=BD.slice(0,-1),sc=oc.slice(0,-1),ac=sc.slice(0,-1),LI=ac.slice(0,-1),PI=[jt,bt],lS=[jt,nn],UD=[jt],Tl=[[oc,1,nc],[oc,5,5*nc],[oc,15,15*nc],[oc,30,30*nc],[sc,1,ic],[sc,5,5*ic],[sc,15,15*ic],[sc,30,30*ic],[ac,1,rc],[ac,3,3*rc],[ac,6,6*rc],[ac,12,12*rc],[LI,1,xg],[PI,1,NI],[lS,1,uS],[lS,3,3*uS],[UD,1,Ay]];function jD(e){const t=e.extent,n=e.maxbins||40,i=Math.abs(pg(t))/n;let r=eg(a=>a[2]).right(Tl,i),o,s;return r===Tl.length?(o=UD,s=ra(t[0]/Ay,t[1]/Ay,n)):r?(r=Tl[i/Tl[r-1][2]<Tl[r][2]/i?r-1:r],o=r[0],s=r[1]):(o=BD,s=Math.max(ra(t[0],t[1],n),1)),{units:o,step:s}}function $m(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function _m(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Ml(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function qD(e){var t=e.dateTime,n=e.date,i=e.time,r=e.periods,o=e.days,s=e.shortDays,a=e.months,u=e.shortMonths,l=Ol(r),c=Rl(r),f=Ol(o),d=Rl(o),h=Ol(s),p=Rl(s),g=Ol(a),m=Rl(a),y=Ol(u),b=Rl(u),x={a:P,A:z,b:I,B:V,c:null,d:gS,e:gS,f:s7,g:m7,G:b7,H:i7,I:r7,j:o7,L:WD,m:a7,M:u7,p:ue,q:ie,Q:bS,s:xS,S:l7,u:c7,U:f7,V:d7,w:h7,W:p7,x:null,X:null,y:g7,Y:y7,Z:x7,"%":yS},v={a:he,A:We,b:pe,B:Ht,c:null,d:mS,e:mS,f:A7,g:O7,G:N7,H:v7,I:E7,j:w7,L:HD,m:S7,M:C7,p:ws,q:_o,Q:bS,s:xS,S:$7,u:_7,U:F7,V:k7,w:D7,W:T7,x:null,X:null,y:M7,Y:R7,Z:L7,"%":yS},w={a:_,A:k,b:N,B:T,c:F,d:hS,e:hS,f:ZI,g:dS,G:fS,H:pS,I:pS,j:XI,L:QI,m:YI,M:KI,p:C,q:VI,Q:t7,s:n7,S:JI,u:jI,U:qI,V:WI,w:UI,W:GI,x:$,X:D,y:dS,Y:fS,Z:HI,"%":e7};x.x=A(n,x),x.X=A(i,x),x.c=A(t,x),v.x=A(n,v),v.X=A(i,v),v.c=A(t,v);function A(Y,ge){return function(ve){var W=[],Ot=-1,Ne=0,Vt=Y.length,At,Zi,dd;for(ve instanceof Date||(ve=new Date(+ve));++Ot<Vt;)Y.charCodeAt(Ot)===37&&(W.push(Y.slice(Ne,Ot)),(Zi=cS[At=Y.charAt(++Ot)])!=null?At=Y.charAt(++Ot):Zi=At==="e"?" ":"0",(dd=ge[At])&&(At=dd(ve,Zi)),W.push(At),Ne=Ot+1);return W.push(Y.slice(Ne,Ot)),W.join("")}}function E(Y,ge){return function(ve){var W=Ml(1900,void 0,1),Ot=S(W,Y,ve+="",0),Ne,Vt;if(Ot!=ve.length)return null;if("Q"in W)return new Date(W.Q);if("s"in W)return new Date(W.s*1e3+("L"in W?W.L:0));if(ge&&!("Z"in W)&&(W.Z=0),"p"in W&&(W.H=W.H%12+W.p*12),W.m===void 0&&(W.m="q"in W?W.q:0),"V"in W){if(W.V<1||W.V>53)return null;"w"in W||(W.w=1),"Z"in W?(Ne=_m(Ml(W.y,0,1)),Vt=Ne.getUTCDay(),Ne=Vt>4||Vt===0?Dh.ceil(Ne):Dh(Ne),Ne=Go.offset(Ne,(W.V-1)*7),W.y=Ne.getUTCFullYear(),W.m=Ne.getUTCMonth(),W.d=Ne.getUTCDate()+(W.w+6)%7):(Ne=$m(Ml(W.y,0,1)),Vt=Ne.getDay(),Ne=Vt>4||Vt===0?kh.ceil(Ne):kh(Ne),Ne=no.offset(Ne,(W.V-1)*7),W.y=Ne.getFullYear(),W.m=Ne.getMonth(),W.d=Ne.getDate()+(W.w+6)%7)}else("W"in W||"U"in W)&&("w"in W||(W.w="u"in W?W.u%7:"W"in W?1:0),Vt="Z"in W?_m(Ml(W.y,0,1)).getUTCDay():$m(Ml(W.y,0,1)).getDay(),W.m=0,W.d="W"in W?(W.w+6)%7+W.W*7-(Vt+5)%7:W.w+W.U*7-(Vt+6)%7);return"Z"in W?(W.H+=W.Z/100|0,W.M+=W.Z%100,_m(W)):$m(W)}}function S(Y,ge,ve,W){for(var Ot=0,Ne=ge.length,Vt=ve.length,At,Zi;Ot<Ne;){if(W>=Vt)return-1;if(At=ge.charCodeAt(Ot++),At===37){if(At=ge.charAt(Ot++),Zi=w[At in cS?ge.charAt(Ot++):At],!Zi||(W=Zi(Y,ve,W))<0)return-1}else if(At!=ve.charCodeAt(W++))return-1}return W}function C(Y,ge,ve){var W=l.exec(ge.slice(ve));return W?(Y.p=c.get(W[0].toLowerCase()),ve+W[0].length):-1}function _(Y,ge,ve){var W=h.exec(ge.slice(ve));return W?(Y.w=p.get(W[0].toLowerCase()),ve+W[0].length):-1}function k(Y,ge,ve){var W=f.exec(ge.slice(ve));return W?(Y.w=d.get(W[0].toLowerCase()),ve+W[0].length):-1}function N(Y,ge,ve){var W=y.exec(ge.slice(ve));return W?(Y.m=b.get(W[0].toLowerCase()),ve+W[0].length):-1}function T(Y,ge,ve){var W=g.exec(ge.slice(ve));return W?(Y.m=m.get(W[0].toLowerCase()),ve+W[0].length):-1}function F(Y,ge,ve){return S(Y,t,ge,ve)}function $(Y,ge,ve){return S(Y,n,ge,ve)}function D(Y,ge,ve){return S(Y,i,ge,ve)}function P(Y){return s[Y.getDay()]}function z(Y){return o[Y.getDay()]}function I(Y){return u[Y.getMonth()]}function V(Y){return a[Y.getMonth()]}function ue(Y){return r[+(Y.getHours()>=12)]}function ie(Y){return 1+~~(Y.getMonth()/3)}function he(Y){return s[Y.getUTCDay()]}function We(Y){return o[Y.getUTCDay()]}function pe(Y){return u[Y.getUTCMonth()]}function Ht(Y){return a[Y.getUTCMonth()]}function ws(Y){return r[+(Y.getUTCHours()>=12)]}function _o(Y){return 1+~~(Y.getUTCMonth()/3)}return{format:function(Y){var ge=A(Y+="",x);return ge.toString=function(){return Y},ge},parse:function(Y){var ge=E(Y+="",!1);return ge.toString=function(){return Y},ge},utcFormat:function(Y){var ge=A(Y+="",v);return ge.toString=function(){return Y},ge},utcParse:function(Y){var ge=E(Y+="",!0);return ge.toString=function(){return Y},ge}}}var cS={"-":"",_:" ",0:"0"},Tt=/^\s*\d+/,II=/^%/,zI=/[\\^$*+?|[\]().{}]/g;function Te(e,t,n){var i=e<0?"-":"",r=(i?-e:e)+"",o=r.length;return i+(o<n?new Array(n-o+1).join(t)+r:r)}function BI(e){return e.replace(zI,"\\$&")}function Ol(e){return new RegExp("^(?:"+e.map(BI).join("|")+")","i")}function Rl(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function UI(e,t,n){var i=Tt.exec(t.slice(n,n+1));return i?(e.w=+i[0],n+i[0].length):-1}function jI(e,t,n){var i=Tt.exec(t.slice(n,n+1));return i?(e.u=+i[0],n+i[0].length):-1}function qI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.U=+i[0],n+i[0].length):-1}function WI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.V=+i[0],n+i[0].length):-1}function GI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.W=+i[0],n+i[0].length):-1}function fS(e,t,n){var i=Tt.exec(t.slice(n,n+4));return i?(e.y=+i[0],n+i[0].length):-1}function dS(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function HI(e,t,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function VI(e,t,n){var i=Tt.exec(t.slice(n,n+1));return i?(e.q=i[0]*3-3,n+i[0].length):-1}function YI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.m=i[0]-1,n+i[0].length):-1}function hS(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.d=+i[0],n+i[0].length):-1}function XI(e,t,n){var i=Tt.exec(t.slice(n,n+3));return i?(e.m=0,e.d=+i[0],n+i[0].length):-1}function pS(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.H=+i[0],n+i[0].length):-1}function KI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.M=+i[0],n+i[0].length):-1}function JI(e,t,n){var i=Tt.exec(t.slice(n,n+2));return i?(e.S=+i[0],n+i[0].length):-1}function QI(e,t,n){var i=Tt.exec(t.slice(n,n+3));return i?(e.L=+i[0],n+i[0].length):-1}function ZI(e,t,n){var i=Tt.exec(t.slice(n,n+6));return i?(e.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function e7(e,t,n){var i=II.exec(t.slice(n,n+1));return i?n+i[0].length:-1}function t7(e,t,n){var i=Tt.exec(t.slice(n));return i?(e.Q=+i[0],n+i[0].length):-1}function n7(e,t,n){var i=Tt.exec(t.slice(n));return i?(e.s=+i[0],n+i[0].length):-1}function gS(e,t){return Te(e.getDate(),t,2)}function i7(e,t){return Te(e.getHours(),t,2)}function r7(e,t){return Te(e.getHours()%12||12,t,2)}function o7(e,t){return Te(1+no.count(br(e),e),t,3)}function WD(e,t){return Te(e.getMilliseconds(),t,3)}function s7(e,t){return WD(e,t)+"000"}function a7(e,t){return Te(e.getMonth()+1,t,2)}function u7(e,t){return Te(e.getMinutes(),t,2)}function l7(e,t){return Te(e.getSeconds(),t,2)}function c7(e){var t=e.getDay();return t===0?7:t}function f7(e,t){return Te(sl.count(br(e)-1,e),t,2)}function GD(e){var t=e.getDay();return t>=4||t===0?_u(e):_u.ceil(e)}function d7(e,t){return e=GD(e),Te(_u.count(br(e),e)+(br(e).getDay()===4),t,2)}function h7(e){return e.getDay()}function p7(e,t){return Te(kh.count(br(e)-1,e),t,2)}function g7(e,t){return Te(e.getFullYear()%100,t,2)}function m7(e,t){return e=GD(e),Te(e.getFullYear()%100,t,2)}function y7(e,t){return Te(e.getFullYear()%1e4,t,4)}function b7(e,t){var n=e.getDay();return e=n>=4||n===0?_u(e):_u.ceil(e),Te(e.getFullYear()%1e4,t,4)}function x7(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Te(t/60|0,"0",2)+Te(t%60,"0",2)}function mS(e,t){return Te(e.getUTCDate(),t,2)}function v7(e,t){return Te(e.getUTCHours(),t,2)}function E7(e,t){return Te(e.getUTCHours()%12||12,t,2)}function w7(e,t){return Te(1+Go.count(xr(e),e),t,3)}function HD(e,t){return Te(e.getUTCMilliseconds(),t,3)}function A7(e,t){return HD(e,t)+"000"}function S7(e,t){return Te(e.getUTCMonth()+1,t,2)}function C7(e,t){return Te(e.getUTCMinutes(),t,2)}function $7(e,t){return Te(e.getUTCSeconds(),t,2)}function _7(e){var t=e.getUTCDay();return t===0?7:t}function F7(e,t){return Te(al.count(xr(e)-1,e),t,2)}function VD(e){var t=e.getUTCDay();return t>=4||t===0?Fu(e):Fu.ceil(e)}function k7(e,t){return e=VD(e),Te(Fu.count(xr(e),e)+(xr(e).getUTCDay()===4),t,2)}function D7(e){return e.getUTCDay()}function T7(e,t){return Te(Dh.count(xr(e)-1,e),t,2)}function M7(e,t){return Te(e.getUTCFullYear()%100,t,2)}function O7(e,t){return e=VD(e),Te(e.getUTCFullYear()%100,t,2)}function R7(e,t){return Te(e.getUTCFullYear()%1e4,t,4)}function N7(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Fu(e):Fu.ceil(e),Te(e.getUTCFullYear()%1e4,t,4)}function L7(){return"+0000"}function yS(){return"%"}function bS(e){return+e}function xS(e){return Math.floor(+e/1e3)}var Ya,qx,YD,Wx,XD;P7({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 P7(e){return Ya=qD(e),qx=Ya.format,YD=Ya.parse,Wx=Ya.utcFormat,XD=Ya.utcParse,Ya}function uc(e){const t={};return n=>t[n]||(t[n]=e(n))}function I7(e,t){return n=>{const i=e(n),r=i.indexOf(t);if(r<0)return i;let o=z7(i,r);const s=o<i.length?i.slice(o):"";for(;--o>r;)if(i[o]!=="0"){++o;break}return i.slice(0,o)+s}}function z7(e,t){let n=e.lastIndexOf("e"),i;if(n>0)return n;for(n=e.length;--n>t;)if(i=e.charCodeAt(n),i>=48&&i<=57)return n+1}function KD(e){const t=uc(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(i){const r=hy(i||",");if(r.precision==null){switch(r.precision=12,r.type){case"%":r.precision-=2;break;case"e":r.precision-=1;break}return I7(t(r),t(".1f")(1)[1])}else return t(r)},formatSpan(i,r,o,s){s=hy(s??",f");const a=ra(i,r,o),u=Math.max(Math.abs(i),Math.abs(r));let l;if(s.precision==null)switch(s.type){case"s":return isNaN(l=L8(a,u))||(s.precision=l),n(s,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=N8(a,u))||(s.precision=l-(s.type==="e"));break}case"f":case"%":{isNaN(l=R8(a))||(s.precision=l-(s.type==="%")*2);break}}return t(s)}}}let Sy;JD();function JD(){return Sy=KD({format:Tk,formatPrefix:q8})}function QD(e){return KD(j8(e))}function Th(e){return arguments.length?Sy=QD(e):Sy}function vS(e,t,n){n=n||{},me(n)||L(`Invalid time multi-format specifier: ${n}`);const i=t(gi),r=t(ti),o=t(ei),s=t(In),a=t(bt),u=t(nn),l=t(Pn),c=t(jt),f=e(n[Ii]||".%L"),d=e(n[gi]||":%S"),h=e(n[ti]||"%I:%M"),p=e(n[ei]||"%I %p"),g=e(n[In]||n[Zt]||"%a %d"),m=e(n[bt]||"%b %d"),y=e(n[nn]||"%B"),b=e(n[Pn]||"%B"),x=e(n[jt]||"%Y");return v=>(i(v)<v?f:r(v)<v?d:o(v)<v?h:s(v)<v?p:u(v)<v?a(v)<v?g:m:c(v)<v?l(v)<v?y:b:x)(v)}function ZD(e){const t=uc(e.format),n=uc(e.utcFormat);return{timeFormat:i=>Ke(i)?t(i):vS(t,ul,i),utcFormat:i=>Ke(i)?n(i):vS(n,ll,i),timeParse:uc(e.parse),utcParse:uc(e.utcParse)}}let Cy;e3();function e3(){return Cy=ZD({format:qx,parse:YD,utcFormat:Wx,utcParse:XD})}function t3(e){return ZD(qD(e))}function qc(e){return arguments.length?Cy=t3(e):Cy}const $y=(e,t)=>ye({},e,t);function n3(e,t){const n=e?QD(e):Th(),i=t?t3(t):qc();return $y(n,i)}function Gx(e,t){const n=arguments.length;return n&&n!==2&&L("defaultLocale expects either zero or two arguments."),n?$y(Th(e),qc(t)):$y(Th(),qc())}function B7(){return JD(),e3(),Gx()}const U7=/^(data:|([A-Za-z]+:)?\/\/)/,j7=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,q7=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,ES="file://";function W7(e,t){return n=>({options:n||{},sanitize:H7,load:G7,fileAccess:!1,file:V7(t),http:X7(e)})}async function G7(e,t){const n=await this.sanitize(e,t),i=n.href;return n.localFile?this.file(i):this.http(i,t)}async function H7(e,t){t=ye({},this.options,t);const n=this.fileAccess,i={href:null};let r,o,s;const a=j7.test(e.replace(q7,""));(e==null||typeof e!="string"||!a)&&L("Sanitize failure, invalid URI: "+re(e));const u=U7.test(e);return(s=t.baseURL)&&!u&&(!e.startsWith("/")&&!s.endsWith("/")&&(e="/"+e),e=s+e),o=(r=e.startsWith(ES))||t.mode==="file"||t.mode!=="http"&&!u&&n,r?e=e.slice(ES.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),o=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(i,"localFile",{value:!!o}),i.href=e,t.target&&(i.target=t.target+""),t.rel&&(i.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(i.crossOrigin=t.crossOrigin+""),i}function V7(e){return e?t=>new Promise((n,i)=>{e.readFile(t,(r,o)=>{r?i(r):n(o)})}):Y7}async function Y7(){L("No file system access.")}function X7(e){return e?async function(t,n){const i=ye({},this.options.http,n),r=n&&n.response,o=await e(t,i);return o.ok?be(o[r])?o[r]():o.text():L(o.status+""+o.statusText)}:K7}async function K7(){L("No HTTP fetch method available.")}const J7=e=>e!=null&&e===e,Q7=e=>e==="true"||e==="false"||e===!0||e===!1,Z7=e=>!Number.isNaN(Date.parse(e)),i3=e=>!Number.isNaN(+e)&&!(e instanceof Date),ez=e=>i3(e)&&Number.isInteger(+e),_y={boolean:uD,integer:mn,number:mn,date:lD,string:cD,unknown:Ln},md=[Q7,ez,i3,Z7],tz=["boolean","integer","number","date"];function r3(e,t){if(!e||!e.length)return"unknown";const n=e.length,i=md.length,r=md.map((o,s)=>s+1);for(let o=0,s=0,a,u;o<n;++o)for(u=t?e[o][t]:e[o],a=0;a<i;++a)if(r[a]&&J7(u)&&!md[a](u)&&(r[a]=0,++s,s===md.length))return"string";return tz[r.reduce((o,s)=>o===0?s:o,0)-1]}function o3(e,t){return t.reduce((n,i)=>(n[i]=r3(e,i),n),{})}function wS(e){const t=function(n,i){const r={delimiter:e};return Hx(n,i?ye(i,r):r)};return t.responseType="text",t}function Hx(e,t){return t.header&&(e=t.header.map(re).join(t.delimiter)+`
6
+ `+e),XP(t.delimiter).parse(e+"")}Hx.responseType="text";function nz(e){return typeof Buffer=="function"&&be(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function Vx(e,t){const n=t&&t.property?Li(t.property):Ln;return me(e)&&!nz(e)?iz(n(e),t):n(JSON.parse(e))}Vx.responseType="json";function iz(e,t){return!Z(e)&&IP(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const rz={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function s3(e,t){let n,i,r,o;return e=Vx(e,t),t&&t.feature?(n=ZP,r=t.feature):t&&t.mesh?(n=tI,r=t.mesh,o=rz[t.filter]):L("Missing TopoJSON feature or mesh parameter."),i=(i=e.objects[r])?n(e,i,o):L("Invalid TopoJSON object: "+r),i&&i.features||[i]}s3.responseType="json";const Qd={dsv:Hx,csv:wS(","),tsv:wS(" "),json:Vx,topojson:s3};function Yx(e,t){return arguments.length>1?(Qd[e]=t,this):le(Qd,e)?Qd[e]:null}function a3(e){const t=Yx(e);return t&&t.responseType||"text"}function u3(e,t,n,i){t=t||{};const r=Yx(t.type||"json");return r||L("Unknown data format type: "+t.type),e=r(e,t),t.parse&&oz(e,t.parse,n,i),le(e,"columns")&&delete e.columns,e}function oz(e,t,n,i){if(!e.length)return;const r=qc();n=n||r.timeParse,i=i||r.utcParse;let o=e.columns||Object.keys(e[0]),s,a,u,l,c,f;t==="auto"&&(t=o3(e,o)),o=Object.keys(t);const d=o.map(h=>{const p=t[h];let g,m;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return g=p.split(/:(.+)?/,2),m=g[1],(m[0]==="'"&&m[m.length-1]==="'"||m[0]==='"'&&m[m.length-1]==='"')&&(m=m.slice(1,-1)),(g[0]==="utc"?i:n)(m);if(!_y[p])throw Error("Illegal format pattern: "+h+":"+p);return _y[p]});for(u=0,c=e.length,f=o.length;u<c;++u)for(s=e[u],l=0;l<f;++l)a=o[l],s[a]=d[l](s[a])}const vg=W7(typeof fetch<"u"&&fetch,null);function Eg(e){const t=e||Ln,n=[],i={};return n.add=r=>{const o=t(r);return i[o]||(i[o]=1,n.push(r)),n},n.remove=r=>{const o=t(r);if(i[o]){i[o]=0;const s=n.indexOf(r);s>=0&&n.splice(s,1)}return n},n}async function Zd(e,t){try{await t(e)}catch(n){e.error(n)}}const l3=Symbol("vega_id");let sz=1;function wg(e){return!!(e&&te(e))}function te(e){return e[l3]}function c3(e,t){return e[l3]=t,e}function Oe(e){const t=e===Object(e)?e:{data:e};return te(t)?t:c3(t,sz++)}function Xx(e){return Ag(e,Oe({}))}function Ag(e,t){for(const n in e)t[n]=e[n];return t}function f3(e,t){return c3(t,te(e))}function Da(e,t){return e?t?(n,i)=>e(n,i)||te(t(n))-te(t(i)):(n,i)=>e(n,i)||te(n)-te(i):null}function d3(e){return e&&e.constructor===Ta}function Ta(){const e=[],t=[],n=[],i=[],r=[];let o=null,s=!1;return{constructor:Ta,insert(a){const u=se(a),l=u.length;for(let c=0;c<l;++c)e.push(u[c]);return this},remove(a){const u=be(a)?i:t,l=se(a),c=l.length;for(let f=0;f<c;++f)u.push(l[f]);return this},modify(a,u,l){const c={field:u,value:wn(l)};return be(a)?(c.filter=a,r.push(c)):(c.tuple=a,n.push(c)),this},encode(a,u){return be(a)?r.push({filter:a,field:u}):n.push({tuple:a,field:u}),this},clean(a){return o=a,this},reflow(){return s=!0,this},pulse(a,u){const l={},c={};let f,d,h,p,g,m;for(f=0,d=u.length;f<d;++f)l[te(u[f])]=1;for(f=0,d=t.length;f<d;++f)g=t[f],l[te(g)]=-1;for(f=0,d=i.length;f<d;++f)p=i[f],u.forEach(b=>{p(b)&&(l[te(b)]=-1)});for(f=0,d=e.length;f<d;++f)g=e[f],m=te(g),l[m]?l[m]=1:a.add.push(Oe(e[f]));for(f=0,d=u.length;f<d;++f)g=u[f],l[te(g)]<0&&a.rem.push(g);function y(b,x,v){v?b[x]=v(b):a.encode=x,s||(c[te(b)]=b)}for(f=0,d=n.length;f<d;++f)h=n[f],g=h.tuple,p=h.field,m=l[te(g)],m>0&&(y(g,p,h.value),a.modifies(p));for(f=0,d=r.length;f<d;++f)h=r[f],p=h.filter,u.forEach(b=>{p(b)&&l[te(b)]>0&&y(b,h.field,h.value)}),a.modifies(h.field);if(s)a.mod=t.length||i.length?u.filter(b=>l[te(b)]>0):u.slice();else for(m in c)a.mod.push(c[m]);return(o||o==null&&(t.length||i.length))&&a.clean(!0),a}}}const eh="_:mod:_";function Sg(){Object.defineProperty(this,eh,{writable:!0,value:{}})}Sg.prototype={set(e,t,n,i){const r=this,o=r[e],s=r[eh];return t!=null&&t>=0?(o[t]!==n||i)&&(o[t]=n,s[t+":"+e]=-1,s[e]=-1):(o!==n||i)&&(r[e]=n,s[e]=Z(n)?1+n.length:-1),r},modified(e,t){const n=this[eh];if(arguments.length){if(Z(e)){for(let i=0;i<e.length;++i)if(n[e[i]])return!0;return!1}}else{for(const i in n)if(n[i])return!0;return!1}return t!=null&&t>=0?t+1<n[e]||!!n[t+":"+e]:!!n[e]},clear(){return this[eh]={},this}};let az=0;const uz="pulse",lz=new Sg,cz=1,fz=2;function Ge(e,t,n,i){this.id=++az,this.value=e,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,t&&(this._update=t),n&&this.parameters(n,i)}function AS(e){return function(t){const n=this.flags;return arguments.length===0?!!(n&e):(this.flags=t?n|e:n&~e,this)}}Ge.prototype={targets(){return this._targets||(this._targets=Eg(cg))},set(e){return this.value!==e?(this.value=e,1):0},skip:AS(cz),modified:AS(fz),parameters(e,t,n){t=t!==!1;const i=this._argval=this._argval||new Sg,r=this._argops=this._argops||[],o=[];let s,a,u,l;const c=(f,d,h)=>{h instanceof Ge?(h!==this&&(t&&h.targets().add(this),o.push(h)),r.push({op:h,name:f,index:d})):i.set(f,d,h)};for(s in e)if(a=e[s],s===uz)se(a).forEach(f=>{f instanceof Ge?f!==this&&(f.targets().add(this),o.push(f)):L("Pulse parameters must be operator instances.")}),this.source=a;else if(Z(a))for(i.set(s,-1,Array(u=a.length)),l=0;l<u;++l)c(s,l,a[l]);else c(s,-1,a);return this.marshall().clear(),n&&(r.initonly=!0),o},marshall(e){const t=this._argval||lz,n=this._argops;let i,r,o,s;if(n){const a=n.length;for(r=0;r<a;++r)i=n[r],o=i.op,s=o.modified()&&o.stamp===e,t.set(i.name,i.index,o.value,s);if(n.initonly){for(r=0;r<a;++r)i=n[r],i.op.targets().remove(this);this._argops=null,this._update=null}}return t},detach(){const e=this._argops;let t,n,i,r;if(e)for(t=0,n=e.length;t<n;++t)i=e[t],r=i.op,r._targets&&r._targets.remove(this);this.pulse=null,this.source=null},evaluate(e){const t=this._update;if(t){const n=this.marshall(e.stamp),i=t.call(this,n,e);if(n.clear(),i!==this.value)this.value=i;else if(!this.modified())return e.StopPropagation}},run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?(this.skip(!1),t=0):t=this.evaluate(e),this.pulse=t||e}};function dz(e,t,n,i){let r=1,o;return e instanceof Ge?o=e:e&&e.prototype instanceof Ge?o=new e:be(e)?o=new Ge(null,e):(r=0,o=new Ge(e,t)),this.rank(o),r&&(i=n,n=t),n&&this.connect(o,o.parameters(n,i)),this.touch(o),o}function hz(e,t){const n=e.rank,i=t.length;for(let r=0;r<i;++r)if(n<t[r].rank){this.rerank(e);return}}let pz=0;function Cg(e,t,n){this.id=++pz,this.value=null,n&&(this.receive=n),e&&(this._filter=e),t&&(this._apply=t)}function ko(e,t,n){return new Cg(e,t,n)}Cg.prototype={_filter:Pi,_apply:Ln,targets(){return this._targets||(this._targets=Eg(cg))},consume(e){return arguments.length?(this._consume=!!e,this):!!this._consume},receive(e){if(this._filter(e)){const t=this.value=this._apply(e),n=this._targets,i=n?n.length:0;for(let r=0;r<i;++r)n[r].receive(t);this._consume&&(e.preventDefault(),e.stopPropagation())}},filter(e){const t=ko(e);return this.targets().add(t),t},apply(e){const t=ko(null,e);return this.targets().add(t),t},merge(){const e=ko();this.targets().add(e);for(let t=0,n=arguments.length;t<n;++t)arguments[t].targets().add(e);return e},throttle(e){let t=-1;return this.filter(()=>{const n=Date.now();return n-t>e?(t=n,1):0})},debounce(e){const t=ko();return this.targets().add(ko(null,null,oD(e,n=>{const i=n.dataflow;t.receive(n),i&&i.run&&i.run()}))),t},between(e,t){let n=!1;return e.targets().add(ko(null,null,()=>n=!0)),t.targets().add(ko(null,null,()=>n=!1)),this.filter(()=>n)},detach(){this._filter=Pi,this._targets=null}};function gz(e,t,n,i){const r=this,o=ko(n,i),s=function(l){l.dataflow=r;try{o.receive(l)}catch(c){r.error(c)}finally{r.run()}};let a;typeof e=="string"&&typeof document<"u"?a=document.querySelectorAll(e):a=se(e);const u=a.length;for(let l=0;l<u;++l)a[l].addEventListener(t,s);return o}function mz(e,t){const n=this.locale();return u3(e,t,n.timeParse,n.utcParse)}function yz(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))}async function bz(e,t){const n=this;let i=0,r;try{r=await n.loader().load(e,{context:"dataflow",response:a3(t&&t.type)});try{r=n.parse(r,t)}catch(o){i=-2,n.warn("Data ingestion failed",e,o)}}catch(o){i=-1,n.warn("Loading failed",e,o)}return{data:r,status:i}}async function xz(e,t,n){const i=this,r=i._pending||vz(i);r.requests+=1;const o=await i.request(t,n);return i.pulse(e,i.changeset().remove(Pi).insert(o.data||[])),r.done(),o}function vz(e){let t;const n=new Promise(i=>t=i);return n.requests=0,n.done=()=>{--n.requests===0&&(e._pending=null,t(e))},e._pending=n}const Ez={skip:!0};function wz(e,t,n,i,r){return(e instanceof Ge?Sz:Az)(this,e,t,n,i,r),this}function Az(e,t,n,i,r,o){const s=ye({},o,Ez);let a,u;be(n)||(n=wn(n)),i===void 0?a=l=>e.touch(n(l)):be(i)?(u=new Ge(null,i,r,!1),a=l=>{u.evaluate(l);const c=n(l),f=u.value;d3(f)?e.pulse(c,f,o):e.update(c,f,s)}):a=l=>e.update(n(l),i,s),t.apply(a)}function Sz(e,t,n,i,r,o){if(i===void 0)t.targets().add(n);else{const s=o||{},a=new Ge(null,Cz(n,i),r,!1);a.modified(s.force),a.rank=t.rank,t.targets().add(a),n&&(a.skip(!0),a.value=n.value,a.targets().add(n),e.connect(n,[a]))}}function Cz(e,t){return t=be(t)?t:wn(t),e?function(n,i){const r=t(n,i);return e.skip()||(e.skip(r!==this.value).value=r),r}:t}function $z(e){e.rank=++this._rank}function _z(e){const t=[e];let n,i,r;for(;t.length;)if(this.rank(n=t.pop()),i=n._targets)for(r=i.length;--r>=0;)t.push(n=i[r]),n===e&&L("Cycle detected in dataflow graph.")}const Mh={},rr=1,To=2,jr=4,Fz=rr|To,SS=rr|jr,Xa=rr|To|jr,CS=8,Nl=16,$S=32,_S=64;function Ho(e,t,n){this.dataflow=e,this.stamp=t??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function Fm(e,t){const n=[];return Ls(e,t,i=>n.push(i)),n}function FS(e,t){const n={};return e.visit(t,i=>{n[te(i)]=1}),i=>n[te(i)]?null:i}function yd(e,t){return e?(n,i)=>e(n,i)&&t(n,i):t}Ho.prototype={StopPropagation:Mh,ADD:rr,REM:To,MOD:jr,ADD_REM:Fz,ADD_MOD:SS,ALL:Xa,REFLOW:CS,SOURCE:Nl,NO_SOURCE:$S,NO_FIELDS:_S,fork(e){return new Ho(this.dataflow).init(this,e)},clone(){const e=this.fork(Xa);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(Xa|Nl)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new Ho(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,e.fields&&!(t&_S)&&(n.fields=e.fields),t&rr?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),t&To?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),t&jr?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),t&$S?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||Xa;return t&rr&&this.add.length||t&To&&this.rem.length||t&jr&&this.mod.length},reflow(e){if(e)return this.fork(Xa).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(jr,FS(this,rr))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return Z(e)?e.forEach(n=>t[n]=!0):t[e]=!0,this},modified(e,t){const n=this.fields;return(t||this.mod.length)&&n?arguments.length?Z(e)?e.some(i=>n[i]):n[e]:!!n:!1},filter(e,t){const n=this;return e&rr&&(n.addF=yd(n.addF,t)),e&To&&(n.remF=yd(n.remF,t)),e&jr&&(n.modF=yd(n.modF,t)),e&Nl&&(n.srcF=yd(n.srcF,t)),n},materialize(e){e=e||Xa;const t=this;return e&rr&&t.addF&&(t.add=Fm(t.add,t.addF),t.addF=null),e&To&&t.remF&&(t.rem=Fm(t.rem,t.remF),t.remF=null),e&jr&&t.modF&&(t.mod=Fm(t.mod,t.modF),t.modF=null),e&Nl&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,i=t;if(e&Nl)return Ls(n.source,n.srcF,i),n;e&rr&&Ls(n.add,n.addF,i),e&To&&Ls(n.rem,n.remF,i),e&jr&&Ls(n.mod,n.modF,i);const r=n.source;if(e&CS&&r){const o=n.add.length+n.mod.length;o===r.length||(o?Ls(r,FS(n,SS),i):Ls(r,n.srcF,i))}return n}};function Kx(e,t,n,i){const r=this;let o=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=i||null,this.pulses=n;for(const s of n)if(s.stamp===t){if(s.fields){const a=r.fields||(r.fields={});for(const u in s.fields)a[u]=1}s.changed(r.ADD)&&(o|=r.ADD),s.changed(r.REM)&&(o|=r.REM),s.changed(r.MOD)&&(o|=r.MOD)}this.changes=o}G(Kx,Ho,{fork(e){const t=new Ho(this.dataflow).init(this,e&this.NO_FIELDS);return e!==void 0&&(e&t.ADD&&this.visit(t.ADD,n=>t.add.push(n)),e&t.REM&&this.visit(t.REM,n=>t.rem.push(n)),e&t.MOD&&this.visit(t.MOD,n=>t.mod.push(n))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?Z(e)?e.some(i=>n[i]):n[e]:0},filter(){L("MultiPulse does not support filtering.")},materialize(){L("MultiPulse does not support materialization.")},visit(e,t){const n=this,i=n.pulses,r=i.length;let o=0;if(e&n.SOURCE)for(;o<r;++o)i[o].visit(e,t);else for(;o<r;++o)i[o].stamp===n.stamp&&i[o].visit(e,t);return n}});async function kz(e,t,n){const i=this,r=[];if(i._pulse)return h3(i);if(i._pending&&await i._pending,t&&await Zd(i,t),!i._touched.length)return i.debug("Dataflow invoked, but nothing to do."),i;const o=++i._clock;i._pulse=new Ho(i,o,e),i._touched.forEach(c=>i._enqueue(c,!0)),i._touched=Eg(cg);let s=0,a,u,l;try{for(;i._heap.size()>0;){if(a=i._heap.pop(),a.rank!==a.qrank){i._enqueue(a,!0);continue}u=a.run(i._getPulse(a,e)),u.then?u=await u:u.async&&(r.push(u.async),u=Mh),u!==Mh&&a._targets&&a._targets.forEach(c=>i._enqueue(c)),++s}}catch(c){i._heap.clear(),l=c}if(i._input={},i._pulse=null,i.debug(`Pulse ${o}: ${s} operators`),l&&(i._postrun=[],i.error(l)),i._postrun.length){const c=i._postrun.sort((f,d)=>d.priority-f.priority);i._postrun=[];for(let f=0;f<c.length;++f)await Zd(i,c[f].callback)}return n&&await Zd(i,n),r.length&&Promise.all(r).then(c=>i.runAsync(null,()=>{c.forEach(f=>{try{f(i)}catch(d){i.error(d)}})})),i}async function Dz(e,t,n){for(;this._running;)await this._running;const i=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(i,i),this._running}function Tz(e,t,n){return this._pulse?h3(this):(this.evaluate(e,t,n),this)}function Mz(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(i){this.error(i)}}function h3(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}function Oz(e,t){const n=e.stamp<this._clock;n&&(e.stamp=this._clock),(n||t)&&(e.qrank=e.rank,this._heap.push(e))}function Rz(e,t){const n=e.source,i=this._clock;return n&&Z(n)?new Kx(this,i,n.map(r=>r.pulse),t):this._input[e.id]||Nz(this._pulse,n&&n.pulse)}function Nz(e,t){return t&&t.stamp===e.stamp?t:(e=e.fork(),t&&t!==Mh&&(e.source=t.source),e)}const Jx={skip:!1,force:!1};function Lz(e,t){const n=t||Jx;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this}function Pz(e,t,n){const i=n||Jx;return(e.set(t)||i.force)&&this.touch(e,i),this}function Iz(e,t,n){this.touch(e,n||Jx);const i=new Ho(this,this._clock+(this._pulse?0:1)),r=e.pulse&&e.pulse.source||[];return i.target=e,this._input[e.id]=t.pulse(i,r),this}function zz(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),p3(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let i;return t.length?(i=t[0],t[0]=n,Bz(t,0,e)):i=n,i}}}function p3(e,t,n,i){let r,o;const s=e[n];for(;n>t;){if(o=n-1>>1,r=e[o],i(s,r)<0){e[n]=r,n=o;continue}break}return e[n]=s}function Bz(e,t,n){const i=t,r=e.length,o=e[t];let s=(t<<1)+1,a;for(;s<r;)a=s+1,a<r&&n(e[s],e[a])>=0&&(s=a),e[t]=e[s],t=s,s=(t<<1)+1;return e[t]=o,p3(e,i,t,n)}function mu(){this.logger(EP()),this.logLevel(Xk),this._clock=0,this._rank=0,this._locale=Gx();try{this._loader=vg()}catch{}this._touched=Eg(cg),this._input={},this._pulse=null,this._heap=zz((e,t)=>e.qrank-t.qrank),this._postrun=[]}function Ll(e){return function(){return this._log[e].apply(this,arguments)}}mu.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:Ll("error"),warn:Ll("warn"),info:Ll("info"),debug:Ll("debug"),logLevel:Ll("level"),cleanThreshold:1e4,add:dz,connect:hz,rank:$z,rerank:_z,pulse:Iz,touch:Lz,update:Pz,changeset:Ta,ingest:yz,parse:mz,preload:xz,request:bz,events:gz,on:wz,evaluate:kz,run:Tz,runAsync:Dz,runAfter:Mz,_enqueue:Oz,_getPulse:Rz};function M(e,t){Ge.call(this,e,null,t)}G(M,Ge,{run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?this.skip(!1):t=this.evaluate(e),t=t||e,t.then?t=t.then(n=>this.pulse=n):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const Du={};function g3(e){const t=m3(e);return t&&t.Definition||null}function m3(e){return e=e&&e.toLowerCase(),le(Du,e)?Du[e]:null}function*y3(e,t){if(t==null)for(let n of e)n!=null&&n!==""&&(n=+n)>=n&&(yield n);else{let n=-1;for(let i of e)i=t(i,++n,e),i!=null&&i!==""&&(i=+i)>=i&&(yield i)}}function Qx(e,t,n){const i=Float64Array.from(y3(e,n));return i.sort(zc),t.map(r=>bD(i,r))}function Zx(e,t){return Qx(e,[.25,.5,.75],t)}function ev(e,t){const n=e.length,i=oI(e,t),r=Zx(e,t),o=(r[2]-r[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(r[0])||1)*Math.pow(n,-.2)}function b3(e){const t=e.maxbins||20,n=e.base||10,i=Math.log(n),r=e.divide||[5,2];let o=e.extent[0],s=e.extent[1],a,u,l,c,f,d;const h=e.span||s-o||Math.abs(o)||1;if(e.step)a=e.step;else if(e.steps){for(c=h/t,f=0,d=e.steps.length;f<d&&e.steps[f]<c;++f);a=e.steps[Math.max(0,f-1)]}else{for(u=Math.ceil(Math.log(t)/i),l=e.minstep||0,a=Math.max(l,Math.pow(n,Math.round(Math.log(h)/i)-u));Math.ceil(h/a)>t;)a*=n;for(f=0,d=r.length;f<d;++f)c=a/r[f],c>=l&&h/c<=t&&(a=c)}c=Math.log(a);const p=c>=0?0:~~(-c/i)+1,g=Math.pow(n,-p-1);return(e.nice||e.nice===void 0)&&(c=Math.floor(o/a+g)*a,o=o<c?c-a:c,s=Math.ceil(s/a)*a),{start:o,stop:s===o?o+a:s,step:a}}var mi=Math.random;function Uz(e){mi=e}function x3(e,t,n,i){if(!e.length)return[void 0,void 0];const r=Float64Array.from(y3(e,i)),o=r.length,s=t;let a,u,l,c;for(l=0,c=Array(s);l<s;++l){for(a=0,u=0;u<o;++u)a+=r[~~(mi()*o)];c[l]=a/o}return c.sort(zc),[by(c,n/2),by(c,1-n/2)]}function v3(e,t,n,i){i=i||(d=>d);const r=e.length,o=new Float64Array(r);let s=0,a=1,u=i(e[0]),l=u,c=u+t,f;for(;a<r;++a){if(f=i(e[a]),f>=c){for(l=(u+l)/2;s<a;++s)o[s]=l;c=f+t,u=f}l=f}for(l=(u+l)/2;s<a;++s)o[s]=l;return n?jz(o,t+t/4):o}function jz(e,t){const n=e.length;let i=0,r=1,o,s;for(;e[i]===e[r];)++r;for(;r<n;){for(o=r+1;e[r]===e[o];)++o;if(e[r]-e[r-1]<t){for(s=r+(i+o-r-r>>1);s<r;)e[s++]=e[r];for(;s>r;)e[s--]=e[i]}i=r,r=o}return e}function qz(e){return function(){return e=(1103515245*e+12345)%2147483647,e/2147483647}}function Wz(e,t){t==null&&(t=e,e=0);let n,i,r;const o={min(s){return arguments.length?(n=s||0,r=i-n,o):n},max(s){return arguments.length?(i=s||0,r=i-n,o):i},sample(){return n+Math.floor(r*mi())},pdf(s){return s===Math.floor(s)&&s>=n&&s<i?1/r:0},cdf(s){const a=Math.floor(s);return a<n?0:a>=i?1:(a-n+1)/r},icdf(s){return s>=0&&s<=1?n-1+Math.floor(s*r):NaN}};return o.min(e).max(t)}const E3=Math.sqrt(2*Math.PI),Gz=Math.SQRT2;let Pl=NaN;function $g(e,t){e=e||0,t=t??1;let n=0,i=0,r,o;if(Pl===Pl)n=Pl,Pl=NaN;else{do n=mi()*2-1,i=mi()*2-1,r=n*n+i*i;while(r===0||r>1);o=Math.sqrt(-2*Math.log(r)/r),n*=o,Pl=i*o}return e+n*t}function tv(e,t,n){n=n??1;const i=(e-(t||0))/n;return Math.exp(-.5*i*i)/(n*E3)}function _g(e,t,n){t=t||0,n=n??1;const i=(e-t)/n,r=Math.abs(i);let o;if(r>37)o=0;else{const s=Math.exp(-r*r/2);let a;r<7.07106781186547?(a=.0352624965998911*r+.700383064443688,a=a*r+6.37396220353165,a=a*r+33.912866078383,a=a*r+112.079291497871,a=a*r+221.213596169931,a=a*r+220.206867912376,o=s*a,a=.0883883476483184*r+1.75566716318264,a=a*r+16.064177579207,a=a*r+86.7807322029461,a=a*r+296.564248779674,a=a*r+637.333633378831,a=a*r+793.826512519948,a=a*r+440.413735824752,o=o/a):(a=r+.65,a=r+4/a,a=r+3/a,a=r+2/a,a=r+1/a,o=s/a/2.506628274631)}return i>0?1-o:o}function Fg(e,t,n){return e<0||e>1?NaN:(t||0)+(n??1)*Gz*Hz(2*e-1)}function Hz(e){let t=-Math.log((1-e)*(1+e)),n;return t<6.25?(t-=3.125,n=-364441206401782e-35,n=-16850591381820166e-35+n*t,n=128584807152564e-32+n*t,n=11157877678025181e-33+n*t,n=-1333171662854621e-31+n*t,n=20972767875968562e-33+n*t,n=6637638134358324e-30+n*t,n=-4054566272975207e-29+n*t,n=-8151934197605472e-29+n*t,n=26335093153082323e-28+n*t,n=-12975133253453532e-27+n*t,n=-5415412054294628e-26+n*t,n=10512122733215323e-25+n*t,n=-4112633980346984e-24+n*t,n=-29070369957882005e-24+n*t,n=42347877827932404e-23+n*t,n=-13654692000834679e-22+n*t,n=-13882523362786469e-21+n*t,n=.00018673420803405714+n*t,n=-.000740702534166267+n*t,n=-.006033670871430149+n*t,n=.24015818242558962+n*t,n=1.6536545626831027+n*t):t<16?(t=Math.sqrt(t)-3.25,n=22137376921775787e-25,n=9075656193888539e-23+n*t,n=-27517406297064545e-23+n*t,n=18239629214389228e-24+n*t,n=15027403968909828e-22+n*t,n=-4013867526981546e-21+n*t,n=29234449089955446e-22+n*t,n=12475304481671779e-21+n*t,n=-47318229009055734e-21+n*t,n=6828485145957318e-20+n*t,n=24031110387097894e-21+n*t,n=-.0003550375203628475+n*t,n=.0009532893797373805+n*t,n=-.0016882755560235047+n*t,n=.002491442096107851+n*t,n=-.003751208507569241+n*t,n=.005370914553590064+n*t,n=1.0052589676941592+n*t,n=3.0838856104922208+n*t):Number.isFinite(t)?(t=Math.sqrt(t)-5,n=-27109920616438573e-27,n=-2555641816996525e-25+n*t,n=15076572693500548e-25+n*t,n=-3789465440126737e-24+n*t,n=761570120807834e-23+n*t,n=-1496002662714924e-23+n*t,n=2914795345090108e-23+n*t,n=-6771199775845234e-23+n*t,n=22900482228026655e-23+n*t,n=-99298272942317e-20+n*t,n=4526062597223154e-21+n*t,n=-1968177810553167e-20+n*t,n=7599527703001776e-20+n*t,n=-.00021503011930044477+n*t,n=-.00013871931833623122+n*t,n=1.0103004648645344+n*t,n=4.849906401408584+n*t):n=1/0,n*e}function nv(e,t){let n,i;const r={mean(o){return arguments.length?(n=o||0,r):n},stdev(o){return arguments.length?(i=o??1,r):i},sample:()=>$g(n,i),pdf:o=>tv(o,n,i),cdf:o=>_g(o,n,i),icdf:o=>Fg(o,n,i)};return r.mean(e).stdev(t)}function iv(e,t){const n=nv();let i=0;const r={data(o){return arguments.length?(e=o,i=o?o.length:0,r.bandwidth(t)):e},bandwidth(o){return arguments.length?(t=o,!t&&e&&(t=ev(e)),r):t},sample(){return e[~~(mi()*i)]+t*n.sample()},pdf(o){let s=0,a=0;for(;a<i;++a)s+=n.pdf((o-e[a])/t);return s/t/i},cdf(o){let s=0,a=0;for(;a<i;++a)s+=n.cdf((o-e[a])/t);return s/i},icdf(){throw Error("KDE icdf not supported.")}};return r.data(e)}function rv(e,t){return e=e||0,t=t??1,Math.exp(e+$g()*t)}function ov(e,t,n){if(e<=0)return 0;t=t||0,n=n??1;const i=(Math.log(e)-t)/n;return Math.exp(-.5*i*i)/(n*E3*e)}function sv(e,t,n){return _g(Math.log(e),t,n)}function av(e,t,n){return Math.exp(Fg(e,t,n))}function w3(e,t){let n,i;const r={mean(o){return arguments.length?(n=o||0,r):n},stdev(o){return arguments.length?(i=o??1,r):i},sample:()=>rv(n,i),pdf:o=>ov(o,n,i),cdf:o=>sv(o,n,i),icdf:o=>av(o,n,i)};return r.mean(e).stdev(t)}function A3(e,t){let n=0,i;function r(s){const a=[];let u=0,l;for(l=0;l<n;++l)u+=a[l]=s[l]==null?1:+s[l];for(l=0;l<n;++l)a[l]/=u;return a}const o={weights(s){return arguments.length?(i=r(t=s||[]),o):t},distributions(s){return arguments.length?(s?(n=s.length,e=s):(n=0,e=[]),o.weights(t)):e},sample(){const s=mi();let a=e[n-1],u=i[0],l=0;for(;l<n-1;u+=i[++l])if(s<u){a=e[l];break}return a.sample()},pdf(s){let a=0,u=0;for(;u<n;++u)a+=i[u]*e[u].pdf(s);return a},cdf(s){let a=0,u=0;for(;u<n;++u)a+=i[u]*e[u].cdf(s);return a},icdf(){throw Error("Mixture icdf not supported.")}};return o.distributions(e).weights(t)}function uv(e,t){return t==null&&(t=e??1,e=0),e+(t-e)*mi()}function lv(e,t,n){return n==null&&(n=t??1,t=0),e>=t&&e<=n?1/(n-t):0}function cv(e,t,n){return n==null&&(n=t??1,t=0),e<t?0:e>n?1:(e-t)/(n-t)}function fv(e,t,n){return n==null&&(n=t??1,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function S3(e,t){let n,i;const r={min(o){return arguments.length?(n=o||0,r):n},max(o){return arguments.length?(i=o??1,r):i},sample:()=>uv(n,i),pdf:o=>lv(o,n,i),cdf:o=>cv(o,n,i),icdf:o=>fv(o,n,i)};return t==null&&(t=e??1,e=0),r.min(e).max(t)}function dv(e,t,n){let i=0,r=0;for(const o of e){const s=n(o);t(o)==null||s==null||isNaN(s)||(i+=(s-i)/++r)}return{coef:[i],predict:()=>i,rSquared:0}}function Ef(e,t,n,i){const r=i-e*e,o=Math.abs(r)<1e-24?0:(n-e*t)/r;return[t-o*e,o]}function kg(e,t,n,i){e=e.filter(h=>{let p=t(h),g=n(h);return p!=null&&(p=+p)>=p&&g!=null&&(g=+g)>=g}),i&&e.sort((h,p)=>t(h)-t(p));const r=e.length,o=new Float64Array(r),s=new Float64Array(r);let a=0,u=0,l=0,c,f,d;for(d of e)o[a]=c=+t(d),s[a]=f=+n(d),++a,u+=(c-u)/a,l+=(f-l)/a;for(a=0;a<r;++a)o[a]-=u,s[a]-=l;return[o,s,u,l]}function wf(e,t,n,i){let r=-1,o,s;for(const a of e)o=t(a),s=n(a),o!=null&&(o=+o)>=o&&s!=null&&(s=+s)>=s&&i(o,s,++r)}function cl(e,t,n,i,r){let o=0,s=0;return wf(e,t,n,(a,u)=>{const l=u-r(a),c=u-i;o+=l*l,s+=c*c}),1-o/s}function hv(e,t,n){let i=0,r=0,o=0,s=0,a=0;wf(e,t,n,(c,f)=>{++a,i+=(c-i)/a,r+=(f-r)/a,o+=(c*f-o)/a,s+=(c*c-s)/a});const u=Ef(i,r,o,s),l=c=>u[0]+u[1]*c;return{coef:u,predict:l,rSquared:cl(e,t,n,r,l)}}function C3(e,t,n){let i=0,r=0,o=0,s=0,a=0;wf(e,t,n,(c,f)=>{++a,c=Math.log(c),i+=(c-i)/a,r+=(f-r)/a,o+=(c*f-o)/a,s+=(c*c-s)/a});const u=Ef(i,r,o,s),l=c=>u[0]+u[1]*Math.log(c);return{coef:u,predict:l,rSquared:cl(e,t,n,r,l)}}function $3(e,t,n){const[i,r,o,s]=kg(e,t,n);let a=0,u=0,l=0,c=0,f=0,d,h,p;wf(e,t,n,(b,x)=>{d=i[f++],h=Math.log(x),p=d*x,a+=(x*h-a)/f,u+=(p-u)/f,l+=(p*h-l)/f,c+=(d*p-c)/f});const[g,m]=Ef(u/s,a/s,l/s,c/s),y=b=>Math.exp(g+m*(b-o));return{coef:[Math.exp(g-m*o),m],predict:y,rSquared:cl(e,t,n,s,y)}}function _3(e,t,n){let i=0,r=0,o=0,s=0,a=0,u=0;wf(e,t,n,(f,d)=>{const h=Math.log(f),p=Math.log(d);++u,i+=(h-i)/u,r+=(p-r)/u,o+=(h*p-o)/u,s+=(h*h-s)/u,a+=(d-a)/u});const l=Ef(i,r,o,s),c=f=>l[0]*Math.pow(f,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:cl(e,t,n,a,c)}}function pv(e,t,n){const[i,r,o,s]=kg(e,t,n),a=i.length;let u=0,l=0,c=0,f=0,d=0,h,p,g,m;for(h=0;h<a;)p=i[h],g=r[h++],m=p*p,u+=(m-u)/h,l+=(m*p-l)/h,c+=(m*m-c)/h,f+=(p*g-f)/h,d+=(m*g-d)/h;const y=c-u*u,b=u*y-l*l,x=(d*u-f*l)/b,v=(f*y-d*l)/b,w=-x*u,A=E=>(E=E-o,x*E*E+v*E+w+s);return{coef:[w-v*o+x*o*o+s,v-2*x*o,x],predict:A,rSquared:cl(e,t,n,s,A)}}function F3(e,t,n,i){if(i===0)return dv(e,t,n);if(i===1)return hv(e,t,n);if(i===2)return pv(e,t,n);const[r,o,s,a]=kg(e,t,n),u=r.length,l=[],c=[],f=i+1;let d,h,p,g,m;for(d=0;d<f;++d){for(p=0,g=0;p<u;++p)g+=Math.pow(r[p],d)*o[p];for(l.push(g),m=new Float64Array(f),h=0;h<f;++h){for(p=0,g=0;p<u;++p)g+=Math.pow(r[p],d+h);m[h]=g}c.push(m)}c.push(l);const y=Yz(c),b=x=>{x-=s;let v=a+y[0]+y[1]*x+y[2]*x*x;for(d=3;d<f;++d)v+=y[d]*Math.pow(x,d);return v};return{coef:Vz(f,y,-s,a),predict:b,rSquared:cl(e,t,n,a,b)}}function Vz(e,t,n,i){const r=Array(e);let o,s,a,u;for(o=0;o<e;++o)r[o]=0;for(o=e-1;o>=0;--o)for(a=t[o],u=1,r[o]+=a,s=1;s<=o;++s)u*=(o+1-s)/s,r[o-s]+=a*Math.pow(n,s)*u;return r[0]+=i,r}function Yz(e){const t=e.length-1,n=[];let i,r,o,s,a;for(i=0;i<t;++i){for(s=i,r=i+1;r<t;++r)Math.abs(e[i][r])>Math.abs(e[i][s])&&(s=r);for(o=i;o<t+1;++o)a=e[o][i],e[o][i]=e[o][s],e[o][s]=a;for(r=i+1;r<t;++r)for(o=t;o>=i;o--)e[o][r]-=e[o][i]*e[i][r]/e[i][i]}for(r=t-1;r>=0;--r){for(a=0,o=r+1;o<t;++o)a+=e[o][r]*n[o];n[r]=(e[t][r]-a)/e[r][r]}return n}const kS=2,DS=1e-12;function k3(e,t,n,i){const[r,o,s,a]=kg(e,t,n,!0),u=r.length,l=Math.max(2,~~(i*u)),c=new Float64Array(u),f=new Float64Array(u),d=new Float64Array(u).fill(1);for(let h=-1;++h<=kS;){const p=[0,l-1];for(let m=0;m<u;++m){const y=r[m],b=p[0],x=p[1],v=y-r[b]>r[x]-y?b:x;let w=0,A=0,E=0,S=0,C=0;const _=1/Math.abs(r[v]-y||1);for(let T=b;T<=x;++T){const F=r[T],$=o[T],D=Xz(Math.abs(y-F)*_)*d[T],P=F*D;w+=D,A+=P,E+=$*D,S+=$*P,C+=F*P}const[k,N]=Ef(A/w,E/w,S/w,C/w);c[m]=k+N*y,f[m]=Math.abs(o[m]-c[m]),Kz(r,m+1,p)}if(h===kS)break;const g=xD(f);if(Math.abs(g)<DS)break;for(let m=0,y,b;m<u;++m)y=f[m]/(6*g),d[m]=y>=1?DS:(b=1-y*y)*b}return Jz(r,c,s,a)}function Xz(e){return(e=1-e*e*e)*e*e}function Kz(e,t,n){const i=e[t];let r=n[0],o=n[1]+1;if(!(o>=e.length))for(;t>r&&e[o]-i<=i-e[r];)n[0]=++r,n[1]=o,++o}function Jz(e,t,n,i){const r=e.length,o=[];let s=0,a=0,u=[],l;for(;s<r;++s)l=e[s]+n,u[0]===l?u[1]+=(t[s]-u[1])/++a:(a=0,u[1]+=i,u=[l,t[s]],o.push(u));return u[1]+=i,o}const Qz=.5*Math.PI/180;function Dg(e,t,n,i){n=n||25,i=Math.max(n,i||200);const r=g=>[g,e(g)],o=t[0],s=t[1],a=s-o,u=a/i,l=[r(o)],c=[];if(n===i){for(let g=1;g<i;++g)l.push(r(o+g/n*a));return l.push(r(s)),l}else{c.push(r(s));for(let g=n;--g>0;)c.push(r(o+g/n*a))}let f=l[0],d=c[c.length-1];const h=1/a,p=Zz(f[1],c);for(;d;){const g=r((f[0]+d[0])/2);g[0]-f[0]>=u&&eB(f,g,d,h,p)>Qz?c.push(g):(f=d,l.push(d),c.pop()),d=c[c.length-1]}return l}function Zz(e,t){let n=e,i=e;const r=t.length;for(let o=0;o<r;++o){const s=t[o][1];s<n&&(n=s),s>i&&(i=s)}return 1/(i-n)}function eB(e,t,n,i,r){const o=Math.atan2(r*(n[1]-e[1]),i*(n[0]-e[0])),s=Math.atan2(r*(t[1]-e[1]),i*(t[0]-e[0]));return Math.abs(o-s)}function tB(e){return t=>{const n=e.length;let i=1,r=String(e[0](t));for(;i<n;++i)r+="|"+e[i](t);return r}}function Fy(e){return!e||!e.length?function(){return""}:e.length===1?e[0]:tB(e)}function D3(e,t,n){return n||e+(t?"_"+t:"")}const km=()=>{},nB={init:km,add:km,rem:km,idx:0},Wc={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.valid?e.sum:void 0,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t<e.min||e.min===void 0)&&(e.min=t)},rem:(e,t)=>{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||e.max===void 0)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t<e.min&&(e.argmin=n)},rem:(e,t)=>{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(e,t)=>{e.exp=0,e.exp_r=t},value:e=>e.valid?e.exp*(1-e.exp_r)/(1-e.exp_r**e.valid):void 0,add:(e,t)=>e.exp=e.exp_r*e.exp+t,rem:(e,t)=>e.exp=(e.exp-t/e.exp_r**(e.valid-1))/e.exp_r},exponentialb:{value:e=>e.valid?e.exp*(1-e.exp_r):void 0,req:["exponential"],idx:1}},Af=Object.keys(Wc).filter(e=>e!=="__count__");function iB(e,t){return(n,i)=>ye({name:e,aggregate_param:i,out:n||e},nB,t)}[...Af,"__count__"].forEach(e=>{Wc[e]=iB(e,Wc[e])});function T3(e,t,n){return Wc[e](n,t)}function M3(e,t){return e.idx-t.idx}function rB(e){const t={};e.forEach(i=>t[i.name]=i);const n=i=>{i.req&&i.req.forEach(r=>{t[r]||n(t[r]=Wc[r]())})};return e.forEach(n),Object.values(t).sort(M3)}function oB(){this.valid=0,this.missing=0,this._ops.forEach(e=>e.aggregate_param==null?e.init(this):e.init(this,e.aggregate_param))}function sB(e,t){if(e==null||e===""){++this.missing;return}e===e&&(++this.valid,this._ops.forEach(n=>n.add(this,e,t)))}function aB(e,t){if(e==null||e===""){--this.missing;return}e===e&&(--this.valid,this._ops.forEach(n=>n.rem(this,e,t)))}function uB(e){return this._out.forEach(t=>e[t.out]=t.value(this)),e}function O3(e,t){const n=t||Ln,i=rB(e),r=e.slice().sort(M3);function o(s){this._ops=i,this._out=r,this.cell=s,this.init()}return o.prototype.init=oB,o.prototype.add=sB,o.prototype.rem=aB,o.prototype.set=uB,o.prototype.get=n,o.fields=e.map(s=>s.out),o}function gv(e){this._key=e?Li(e):te,this.reset()}const Gt=gv.prototype;Gt.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null};Gt.add=function(e){this._add.push(e)};Gt.rem=function(e){this._rem.push(e)};Gt.values=function(){if(this._get=null,this._rem.length===0)return this._add;const e=this._add,t=this._rem,n=this._key,i=e.length,r=t.length,o=Array(i-r),s={};let a,u,l;for(a=0;a<r;++a)s[n(t[a])]=1;for(a=0,u=0;a<i;++a)s[n(l=e[a])]?s[n(l)]=0:o[u++]=l;return this._rem=[],this._add=o};Gt.distinct=function(e){const t=this.values(),n={};let i=t.length,r=0,o;for(;--i>=0;)o=e(t[i])+"",le(n,o)||(n[o]=1,++r);return r};Gt.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=NP(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext};Gt.argmin=function(e){return this.extent(e)[0]||{}};Gt.argmax=function(e){return this.extent(e)[1]||{}};Gt.min=function(e){const t=this.extent(e)[0];return t!=null?e(t):void 0};Gt.max=function(e){const t=this.extent(e)[1];return t!=null?e(t):void 0};Gt.quartile=function(e){return(this._get!==e||!this._q)&&(this._q=Zx(this.values(),e),this._get=e),this._q};Gt.q1=function(e){return this.quartile(e)[0]};Gt.q2=function(e){return this.quartile(e)[1]};Gt.q3=function(e){return this.quartile(e)[2]};Gt.ci=function(e){return(this._get!==e||!this._ci)&&(this._ci=x3(this.values(),1e3,.05,e),this._get=e),this._ci};Gt.ci0=function(e){return this.ci(e)[0]};Gt.ci1=function(e){return this.ci(e)[1]};function Ko(e){M.call(this,null,e),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}Ko.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Af},{name:"aggregate_params",type:"number",null:!0,array:!0},{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"}]};G(Ko,M,{transform(e,t){const n=this,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.modified();return n.stamp=i.stamp,n.value&&(r||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=r?n.init(e):Object.create(null),t.visit(t.SOURCE,o=>n.add(o))):(n.value=n.value||n.init(e),t.visit(t.REM,o=>n.rem(o)),t.visit(t.ADD,o=>n.add(o))),i.modifies(n._outputs),n._drop=e.drop!==!1,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&i.clean(!0).runAfter(()=>this.clean()),n.changes(i)},cross(){const e=this,t=e.value,n=e._dnames,i=n.map(()=>({})),r=n.length;function o(a){let u,l,c,f;for(u in a)for(c=a[u].tuple,l=0;l<r;++l)i[l][f=c[n[l]]]=f}o(e._prev),o(t);function s(a,u,l){const c=n[l],f=i[l++];for(const d in f){const h=a?a+"|"+d:d;u[c]=f[d],l<r?s(h,u,l):t[h]||e.cell(h,u)}}s("",{},0)},init(e){const t=this._inputs=[],n=this._outputs=[],i={};function r(b){const x=se(xn(b)),v=x.length;let w=0,A;for(;w<v;++w)i[A=x[w]]||(i[A]=1,t.push(A))}this._dims=se(e.groupby),this._dnames=this._dims.map(b=>{const x=lt(b);return r(b),n.push(x),x}),this.cellkey=e.key?e.key:Fy(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const o=e.fields||[null],s=e.ops||["count"],a=e.aggregate_params||[null],u=e.as||[],l=o.length,c={};let f,d,h,p,g,m,y;for(l!==s.length&&L("Unmatched number of fields and aggregate ops."),y=0;y<l;++y){if(f=o[y],d=s[y],h=a[y]||null,f==null&&d!=="count"&&L("Null aggregate field specified."),g=lt(f),m=D3(d,g,u[y]),n.push(m),d==="count"){this._counts.push(m);continue}p=c[g],p||(r(f),p=c[g]=[],p.field=f,this._measures.push(p)),d!=="count"&&(this._countOnly=!1),p.push(T3(d,h,m))}return this._measures=this._measures.map(b=>O3(b,b.field)),Object.create(null)},cellkey:Fy(),cell(e,t){let n=this.value[e];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[e]=this.newcell(e,t),this._adds[this._alen++]=n),n},newcell(e,t){const n={key:e,num:0,agg:null,tuple:this.newtuple(t,this._prev&&this._prev[e]),stamp:this.stamp,store:!1};if(!this._countOnly){const i=this._measures,r=i.length;n.agg=Array(r);for(let o=0;o<r;++o)n.agg[o]=new i[o](n)}return n.store&&(n.data=new gv),n},newtuple(e,t){const n=this._dnames,i=this._dims,r=i.length,o={};for(let s=0;s<r;++s)o[n[s]]=i[s](e);return t?f3(t.tuple,o):Oe(o)},clean(){const e=this.value;for(const t in e)e[t].num===0&&delete e[t]},add(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].add(i[r].get(e),e)},rem(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].rem(i[r].get(e),e)},celltuple(e){const t=e.tuple,n=this._counts;e.store&&e.data.values();for(let i=0,r=n.length;i<r;++i)t[n[i]]=e.num;if(!this._countOnly){const i=e.agg;for(let r=0,o=i.length;r<o;++r)i[r].set(t)}return t},changes(e){const t=this._adds,n=this._mods,i=this._prev,r=this._drop,o=e.add,s=e.rem,a=e.mod;let u,l,c,f;if(i)for(l in i)u=i[l],(!r||u.num)&&s.push(u.tuple);for(c=0,f=this._alen;c<f;++c)o.push(this.celltuple(t[c])),t[c]=null;for(c=0,f=this._mlen;c<f;++c)u=n[c],(u.num===0&&r?s:a).push(this.celltuple(u)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,e}});const lB=1e-14;function mv(e){M.call(this,null,e)}mv.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"]}]};G(mv,M,{transform(e,t){const n=e.interval!==!1,i=this._bins(e),r=i.start,o=i.step,s=e.as||["bin0","bin1"],a=s[0],u=s[1];let l;return e.modified()?(t=t.reflow(!0),l=t.SOURCE):l=t.modified(xn(e.field))?t.ADD_MOD:t.ADD,t.visit(l,n?c=>{const f=i(c);c[a]=f,c[u]=f==null?null:r+o*(1+(f-r)/o)}:c=>c[a]=i(c)),t.modifies(n?s:a)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=b3(e),i=n.step;let r=n.start,o=r+Math.ceil((n.stop-r)/i)*i,s,a;(s=e.anchor)!=null&&(a=s-(r+i*Math.floor((s-r)/i)),r+=a,o+=a);const u=function(l){let c=mn(t(l));return c==null?null:c<r?-1/0:c>o?1/0:(c=Math.max(r,Math.min(c,o-i)),r+i*Math.floor(lB+(c-r)/i))};return u.start=r,u.stop=n.stop,u.step=i,this.value=ri(u,xn(t),e.name||"bin_"+lt(t))}});function R3(e,t,n){const i=e;let r=t||[],o=n||[],s={},a=0;return{add:u=>o.push(u),remove:u=>s[i(u)]=++a,size:()=>r.length,data:(u,l)=>(a&&(r=r.filter(c=>!s[i(c)]),s={},a=0),l&&u&&r.sort(u),o.length&&(r=u?jP(u,r,o.sort(u)):r.concat(o),o=[]),r)}}function yv(e){M.call(this,[],e)}yv.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]};G(yv,M,{transform(e,t){const n=t.fork(t.ALL),i=R3(te,this.value,n.materialize(n.ADD).add),r=e.sort,o=t.changed()||r&&(e.modified("sort")||t.modified(r.fields));return n.visit(n.REM,i.remove),this.modified(o),this.value=n.source=i.data(Da(r),o),t.source&&t.source.root&&(this.value.root=t.source.root),n}});function N3(e){Ge.call(this,null,cB,e)}G(N3,Ge);function cB(e){return this.value&&!e.modified()?this.value:rD(e.fields,e.orders)}function bv(e){M.call(this,null,e)}bv.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 fB(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase();break}return e.match(n)}G(bv,M,{transform(e,t){const n=f=>d=>{for(var h=fB(a(d),e.case,o)||[],p,g=0,m=h.length;g<m;++g)s.test(p=h[g])||f(p)},i=this._parameterCheck(e,t),r=this._counts,o=this._match,s=this._stop,a=e.field,u=e.as||["text","count"],l=n(f=>r[f]=1+(r[f]||0)),c=n(f=>r[f]-=1);return i?t.visit(t.SOURCE,l):(t.visit(t.ADD,l),t.visit(t.REM,c)),this._finish(t,u)},_parameterCheck(e,t){let n=!1;return(e.modified("stopwords")||!this._stop)&&(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),(e.modified("pattern")||!this._match)&&(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,i=this._tuples||(this._tuples={}),r=t[0],o=t[1],s=e.fork(e.NO_SOURCE|e.NO_FIELDS);let a,u,l;for(a in n)u=i[a],l=n[a]||0,!u&&l?(i[a]=u=Oe({}),u[r]=a,u[o]=l,s.add.push(u)):l===0?(u&&s.rem.push(u),n[a]=null,i[a]=null):u[o]!==l&&(u[o]=l,s.mod.push(u));return s.modifies(t)}});function xv(e){M.call(this,null,e)}xv.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]};G(xv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.as||["a","b"],r=i[0],o=i[1],s=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let a=this.value;return s?(a&&(n.rem=a),a=t.materialize(t.SOURCE).source,n.add=this.value=dB(a,r,o,e.filter||Pi)):n.mod=a,n.source=this.value,n.modifies(i)}});function dB(e,t,n,i){for(var r=[],o={},s=e.length,a=0,u,l;a<s;++a)for(o[t]=l=e[a],u=0;u<s;++u)o[n]=e[u],i(o)&&(r.push(Oe(o)),o={},o[t]=l);return r}const TS={kde:iv,mixture:A3,normal:nv,lognormal:w3,uniform:S3},hB="distributions",MS="function",pB="field";function L3(e,t){const n=e[MS];le(TS,n)||L("Unknown distribution function: "+n);const i=TS[n]();for(const r in e)r===pB?i.data((e.from||t()).map(e[r])):r===hB?i[r](e[r].map(o=>L3(o,t))):typeof i[r]===MS&&i[r](e[r]);return i}function vv(e){M.call(this,null,e)}const P3=[{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}]}],gB={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:P3},{name:"weights",type:"number",array:!0}]};vv.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:P3.concat(gB)},{name:"as",type:"string",array:!0,default:["value","density"]}]};G(vv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=L3(e.distribution,mB(t)),r=e.steps||e.minsteps||25,o=e.steps||e.maxsteps||200;let s=e.method||"pdf";s!=="pdf"&&s!=="cdf"&&L("Invalid density method: "+s),!e.extent&&!i.data&&L("Missing density extent parameter."),s=i[s];const a=e.as||["value","density"],u=e.extent||lo(i.data()),l=Dg(s,u,r,o).map(c=>{const f={};return f[a[0]]=c[0],f[a[1]]=c[1],Oe(f)});this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function mB(e){return()=>e.materialize(e.SOURCE).source}function I3(e,t){return e?e.map((n,i)=>t[i]||lt(n)):null}function Ev(e,t,n){const i=[],r=f=>f(u);let o,s,a,u,l,c;if(t==null)i.push(e.map(n));else for(o={},s=0,a=e.length;s<a;++s)u=e[s],l=t.map(r),c=o[l],c||(o[l]=c=[],c.dims=l,i.push(c)),c.push(n(u));return i}const z3="bin";function wv(e){M.call(this,null,e)}wv.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:z3}]};const yB=(e,t)=>pg(lo(e,t))/30;G(wv,M,{transform(e,t){if(this.value&&!(e.modified()||t.changed()))return t;const n=t.materialize(t.SOURCE).source,i=Ev(t.source,e.groupby,Ln),r=e.smooth||!1,o=e.field,s=e.step||yB(n,o),a=Da((p,g)=>o(p)-o(g)),u=e.as||z3,l=i.length;let c=1/0,f=-1/0,d=0,h;for(;d<l;++d){const p=i[d].sort(a);h=-1;for(const g of v3(p,s,r,o))g<c&&(c=g),g>f&&(f=g),p[++h][u]=g}return this.value={start:c,stop:f,step:s},t.reflow(!0).modifies(u)}});function B3(e){Ge.call(this,null,bB,e),this.modified(!0)}G(B3,Ge);function bB(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:ri(n=>t(n,e),xn(t),lt(t))}function Av(e){M.call(this,[void 0,void 0],e)}Av.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]};G(Av,M,{transform(e,t){const n=this.value,i=e.field,r=t.changed()||t.modified(i.fields)||e.modified("field");let o=n[0],s=n[1];if((r||o==null)&&(o=1/0,s=-1/0),t.visit(r?t.SOURCE:t.ADD,a=>{const u=mn(i(a));u!=null&&(u<o&&(o=u),u>s&&(s=u))}),!Number.isFinite(o)||!Number.isFinite(s)){let a=lt(i);a&&(a=` for field "${a}"`),t.dataflow.warn(`Infinite extent${a}: [${o}, ${s}]`),o=s=void 0}this.value=[o,s]}});function Sv(e,t){Ge.call(this,e),this.parent=t,this.count=0}G(Sv,Ge,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}});function Tg(e){M.call(this,{},e),this._keys=vf();const t=this._targets=[];t.active=0,t.forEach=n=>{for(let i=0,r=t.active;i<r;++i)n(t[i],i,t)}}G(Tg,M,{activate(e){this._targets[this._targets.active++]=e},subflow(e,t,n,i){const r=this.value;let o=le(r,e)&&r[e],s,a;return o?o.value.stamp<n.stamp&&(o.init(n),this.activate(o)):(a=i||(a=this._group[e])&&a.tuple,s=n.dataflow,o=new Sv(n.fork(n.NO_SOURCE),this),s.add(o).connect(t(s,e,a)),r[e]=o,this.activate(o)),o},clean(){const e=this.value;let t=0;for(const n in e)if(e[n].count===0){const i=e[n].detachSubflow;i&&i(),delete e[n],++t}if(t){const n=this._targets.filter(i=>i&&i.count>0);this.initTargets(n)}},initTargets(e){const t=this._targets,n=t.length,i=e?e.length:0;let r=0;for(;r<i;++r)t[r]=e[r];for(;r<n&&t[r]!=null;++r)t[r]=null;t.active=i},transform(e,t){const n=t.dataflow,i=e.key,r=e.subflow,o=this._keys,s=e.modified("key"),a=u=>this.subflow(u,r,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,u=>{const l=te(u),c=o.get(l);c!==void 0&&(o.delete(l),a(c).rem(u))}),t.visit(t.ADD,u=>{const l=i(u);o.set(te(u),l),a(l).add(u)}),s||t.modified(i.fields)?t.visit(t.MOD,u=>{const l=te(u),c=o.get(l),f=i(u);c===f?a(f).mod(u):(o.set(l,f),a(c).rem(u),a(f).add(u))}):t.changed(t.MOD)&&t.visit(t.MOD,u=>{a(o.get(te(u))).mod(u)}),s&&t.visit(t.REFLOW,u=>{const l=te(u),c=o.get(l),f=i(u);c!==f&&(o.set(l,f),a(c).rem(u),a(f).add(u))}),t.clean()?n.runAfter(()=>{this.clean(),o.clean()}):o.empty>n.cleanThreshold&&n.runAfter(o.clean),t}});function U3(e){Ge.call(this,null,xB,e)}G(U3,Ge);function xB(e){return this.value&&!e.modified()?this.value:Z(e.name)?se(e.name).map(t=>Li(t)):Li(e.name,e.as)}function Cv(e){M.call(this,vf(),e)}Cv.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]};G(Cv,M,{transform(e,t){const n=t.dataflow,i=this.value,r=t.fork(),o=r.add,s=r.rem,a=r.mod,u=e.expr;let l=!0;t.visit(t.REM,f=>{const d=te(f);i.has(d)?i.delete(d):s.push(f)}),t.visit(t.ADD,f=>{u(f,e)?o.push(f):i.set(te(f),1)});function c(f){const d=te(f),h=u(f,e),p=i.get(d);h&&p?(i.delete(d),o.push(f)):!h&&!p?(i.set(d,1),s.push(f)):l&&h&&!p&&a.push(f)}return t.visit(t.MOD,c),e.modified()&&(l=!1,t.visit(t.REFLOW,c)),i.empty>n.cleanThreshold&&n.runAfter(i.clean),r}});function $v(e){M.call(this,[],e)}$v.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}]};G($v,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=I3(i,e.as||[]),o=e.index||null,s=r.length;return n.rem=this.value,t.visit(t.SOURCE,a=>{const u=i.map(p=>p(a)),l=u.reduce((p,g)=>Math.max(p,g.length),0);let c=0,f,d,h;for(;c<l;++c){for(d=Xx(a),f=0;f<s;++f)d[r[f]]=(h=u[f][c])==null?null:h;o&&(d[o]=c),n.add.push(d)}}),this.value=n.source=n.add,o&&n.modifies(o),n.modifies(r)}});function _v(e){M.call(this,[],e)}_v.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"]}]};G(_v,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=i.map(lt),o=e.as||["key","value"],s=o[0],a=o[1],u=i.length;return n.rem=this.value,t.visit(t.SOURCE,l=>{for(let c=0,f;c<u;++c)f=Xx(l),f[s]=r[c],f[a]=i[c](l),n.add.push(f)}),this.value=n.source=n.add,n.modifies(o)}});function Fv(e){M.call(this,null,e)}Fv.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]};G(Fv,M,{transform(e,t){const n=e.expr,i=e.as,r=e.modified(),o=e.initonly?t.ADD:r?t.SOURCE:t.modified(n.fields)||t.modified(i)?t.ADD_MOD:t.ADD;return r&&(t=t.materialize().reflow(!0)),e.initonly||t.modifies(i),t.visit(o,s=>s[i]=n(s,e))}});function j3(e){M.call(this,[],e)}G(j3,M,{transform(e,t){const n=t.fork(t.ALL),i=e.generator;let r=this.value,o=e.size-r.length,s,a,u;if(o>0){for(s=[];--o>=0;)s.push(u=Oe(i(e))),r.push(u);n.add=n.add.length?n.materialize(n.ADD).add.concat(s):s}else a=r.slice(0,-o),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(a):a,r=r.slice(-o);return n.source=this.value=r,n}});const bd={value:"value",median:xD,mean:uI,min:yy,max:Xs},vB=[];function kv(e){M.call(this,[],e)}kv.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 EB(e){var t=e.method||bd.value,n;if(bd[t]==null)L("Unrecognized imputation method: "+t);else return t===bd.value?(n=e.value!==void 0?e.value:0,()=>n):bd[t]}function wB(e){const t=e.field;return n=>n?t(n):NaN}G(kv,M,{transform(e,t){var n=t.fork(t.ALL),i=EB(e),r=wB(e),o=lt(e.field),s=lt(e.key),a=(e.groupby||[]).map(lt),u=AB(t.source,e.groupby,e.key,e.keyvals),l=[],c=this.value,f=u.domain.length,d,h,p,g,m,y,b,x,v,w;for(m=0,x=u.length;m<x;++m)for(d=u[m],p=d.values,h=NaN,b=0;b<f;++b)if(d[b]==null){for(g=u.domain[b],w={_impute:!0},y=0,v=p.length;y<v;++y)w[a[y]]=p[y];w[s]=g,w[o]=Number.isNaN(h)?h=i(d,r):h,l.push(Oe(w))}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 AB(e,t,n,i){var r=y=>y(m),o=[],s=i?i.slice():[],a={},u={},l,c,f,d,h,p,g,m;for(s.forEach((y,b)=>a[y]=b+1),d=0,g=e.length;d<g;++d)m=e[d],p=n(m),h=a[p]||(a[p]=s.push(p)),c=(l=t?t.map(r):vB)+"",(f=u[c])||(f=u[c]=[],o.push(f),f.values=l),f[h-1]=m;return o.domain=s,o}function Dv(e){Ko.call(this,e)}Dv.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:Af},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]};G(Dv,Ko,{transform(e,t){const n=this,i=e.modified();let r;return n.value&&(i||t.modified(n._inputs,!0))?(r=n.value=i?n.init(e):{},t.visit(t.SOURCE,o=>n.add(o))):(r=n.value=n.value||this.init(e),t.visit(t.REM,o=>n.rem(o)),t.visit(t.ADD,o=>n.add(o))),n.changes(),t.visit(t.SOURCE,o=>{ye(o,r[n.cellkey(o)].tuple)}),t.reflow(i).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,i;for(n=0,i=this._alen;n<i;++n)this.celltuple(e[n]),e[n]=null;for(n=0,i=this._mlen;n<i;++n)this.celltuple(t[n]),t[n]=null;this._alen=this._mlen=0}});function Tv(e){M.call(this,null,e)}Tv.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"]}]};G(Tv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=Ev(i,e.groupby,e.field),o=(e.groupby||[]).map(lt),s=e.bandwidth,a=e.cumulative?"cdf":"pdf",u=e.as||["value","density"],l=[];let c=e.extent,f=e.steps||e.minsteps||25,d=e.steps||e.maxsteps||200;a!=="pdf"&&a!=="cdf"&&L("Invalid density method: "+a),e.resolve==="shared"&&(c||(c=lo(i,e.field)),f=d=e.steps||d),r.forEach(h=>{const p=iv(h,s)[a],g=e.counts?h.length:1,m=c||lo(h);Dg(p,m,f,d).forEach(y=>{const b={};for(let x=0;x<o.length;++x)b[o[x]]=h.dims[x];b[u[0]]=y[0],b[u[1]]=y[1]*g,l.push(Oe(b))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function q3(e){Ge.call(this,null,SB,e)}G(q3,Ge);function SB(e){return this.value&&!e.modified()?this.value:aD(e.fields,e.flat)}function W3(e){M.call(this,[],e),this._pending=null}G(W3,M,{transform(e,t){const n=t.dataflow;return this._pending?Dm(this,t,this._pending):CB(e)?t.StopPropagation:e.values?Dm(this,t,n.parse(e.values,e.format)):e.async?{async:n.request(e.url,e.format).then(r=>(this._pending=se(r.data),o=>o.touch(this)))}:n.request(e.url,e.format).then(i=>Dm(this,t,se(i.data)))}});function CB(e){return e.modified("async")&&!(e.modified("values")||e.modified("url")||e.modified("format"))}function Dm(e,t,n){n.forEach(Oe);const i=t.fork(t.NO_FIELDS&t.NO_SOURCE);return i.rem=e.value,e.value=i.source=i.add=n,e._pending=null,i.rem.length&&i.clean(!0),i}function Mv(e){M.call(this,{},e)}Mv.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}]};G(Mv,M,{transform(e,t){const n=e.fields,i=e.index,r=e.values,o=e.default==null?null:e.default,s=e.modified(),a=n.length;let u=s?t.SOURCE:t.ADD,l=t,c=e.as,f,d,h;return r?(d=r.length,a>1&&!c&&L('Multi-field lookup requires explicit "as" parameter.'),c&&c.length!==a*d&&L('The "as" parameter has too few output field names.'),c=c||r.map(lt),f=function(p){for(var g=0,m=0,y,b;g<a;++g)if(b=i.get(n[g](p)),b==null)for(y=0;y<d;++y,++m)p[c[m]]=o;else for(y=0;y<d;++y,++m)p[c[m]]=r[y](b)}):(c||L("Missing output field names."),f=function(p){for(var g=0,m;g<a;++g)m=i.get(n[g](p)),p[c[g]]=m??o}),s?l=t.reflow(!0):(h=n.some(p=>t.modified(p.fields)),u|=h?t.MOD:0),t.visit(u,f),l.modifies(c)}});function G3(e){Ge.call(this,null,$B,e)}G(G3,Ge);function $B(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let i=1/0,r=-1/0,o,s;for(o=0;o<n;++o)s=t[o],s[0]<i&&(i=s[0]),s[1]>r&&(r=s[1]);return[i,r]}function H3(e){Ge.call(this,null,_B,e)}G(H3,Ge);function _B(e){return this.value&&!e.modified()?this.value:e.values.reduce((t,n)=>t.concat(n),[])}function V3(e){M.call(this,null,e)}G(V3,M,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}});function Ov(e){Ko.call(this,e)}Ov.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:Af,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]};G(Ov,Ko,{_transform:Ko.prototype.transform,transform(e,t){return this._transform(FB(e,t),t)}});function FB(e,t){const n=e.field,i=e.value,r=(e.op==="count"?"__count__":e.op)||"sum",o=xn(n).concat(xn(i)),s=DB(n,e.limit||0,t);return t.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:s.map(()=>r),fields:s.map(a=>kB(a,n,i,o)),as:s.map(a=>a+""),modified:e.modified.bind(e)}}function kB(e,t,n,i){return ri(r=>t(r)===e?n(r):NaN,i,e+"")}function DB(e,t,n){const i={},r=[];return n.visit(n.SOURCE,o=>{const s=e(o);i[s]||(i[s]=1,r.push(s))}),r.sort(hg),t?r.slice(0,t):r}function Y3(e){Tg.call(this,e)}G(Y3,Tg,{transform(e,t){const n=e.subflow,i=e.field,r=o=>this.subflow(te(o),n,t,o);return(e.modified("field")||i&&t.modified(xn(i)))&&L("PreFacet does not support field modification."),this.initTargets(),i?(t.visit(t.MOD,o=>{const s=r(o);i(o).forEach(a=>s.mod(a))}),t.visit(t.ADD,o=>{const s=r(o);i(o).forEach(a=>s.add(Oe(a)))}),t.visit(t.REM,o=>{const s=r(o);i(o).forEach(a=>s.rem(a))})):(t.visit(t.MOD,o=>r(o).mod(o)),t.visit(t.ADD,o=>r(o).add(o)),t.visit(t.REM,o=>r(o).rem(o))),t.clean()&&t.runAfter(()=>this.clean()),t}});function Rv(e){M.call(this,null,e)}Rv.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]};G(Rv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=I3(e.fields,e.as||[]),o=i?(a,u)=>TB(a,u,i,r):Ag;let s;return this.value?s=this.value:(t=t.addAll(),s=this.value={}),t.visit(t.REM,a=>{const u=te(a);n.rem.push(s[u]),s[u]=null}),t.visit(t.ADD,a=>{const u=o(a,Oe({}));s[te(a)]=u,n.add.push(u)}),t.visit(t.MOD,a=>{n.mod.push(o(a,s[te(a)]))}),n}});function TB(e,t,n,i){for(let r=0,o=n.length;r<o;++r)t[i[r]]=n[r](e);return t}function X3(e){M.call(this,null,e)}G(X3,M,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});function Nv(e){M.call(this,null,e)}Nv.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 MB=1e-14;G(Nv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const r=t.materialize(t.SOURCE).source,o=Ev(r,e.groupby,e.field),s=(e.groupby||[]).map(lt),a=[],u=e.step||.01,l=e.probs||Yn(u/2,1-MB,u),c=l.length;return o.forEach(f=>{const d=Qx(f,l);for(let h=0;h<c;++h){const p={};for(let g=0;g<s.length;++g)p[s[g]]=f.dims[g];p[i[0]]=l[h],p[i[1]]=d[h],a.push(Oe(p))}}),this.value&&(n.rem=this.value),this.value=n.add=n.source=a,n}});function K3(e){M.call(this,null,e)}G(K3,M,{transform(e,t){let n,i;return this.value?i=this.value:(n=t=t.addAll(),i=this.value={}),e.derive&&(n=t.fork(t.NO_SOURCE),t.visit(t.REM,r=>{const o=te(r);n.rem.push(i[o]),i[o]=null}),t.visit(t.ADD,r=>{const o=Xx(r);i[te(r)]=o,n.add.push(o)}),t.visit(t.MOD,r=>{const o=i[te(r)];for(const s in r)o[s]=r[s],n.modifies(s);n.mod.push(o)})),n}});function Lv(e){M.call(this,[],e),this.count=0}Lv.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]};G(Lv,M,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.modified("size"),r=e.size,o=this.value.reduce((c,f)=>(c[te(f)]=1,c),{});let s=this.value,a=this.count,u=0;function l(c){let f,d;s.length<r?s.push(c):(d=~~((a+1)*mi()),d<s.length&&d>=u&&(f=s[d],o[te(f)]&&n.rem.push(f),s[d]=c)),++a}if(t.rem.length&&(t.visit(t.REM,c=>{const f=te(c);o[f]&&(o[f]=-1,n.rem.push(c)),--a}),s=s.filter(c=>o[te(c)]!==-1)),(t.rem.length||i)&&s.length<r&&t.source&&(u=a=s.length,t.visit(t.SOURCE,c=>{o[te(c)]||l(c)}),u=-1),i&&s.length>r){const c=s.length-r;for(let f=0;f<c;++f)o[te(s[f])]=-1,n.rem.push(s[f]);s=s.slice(c)}return t.mod.length&&t.visit(t.MOD,c=>{o[te(c)]&&n.mod.push(c)}),t.add.length&&t.visit(t.ADD,l),(t.add.length||u<0)&&(n.add=s.filter(c=>!o[te(c)])),this.count=a,this.value=n.source=s,n}});function Pv(e){M.call(this,null,e)}Pv.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"}]};G(Pv,M,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),i=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Yn(e.start,e.stop,e.step||1).map(r=>{const o={};return o[i]=r,Oe(o)}),n.add=t.add.concat(this.value),n}});function J3(e){M.call(this,null,e),this.modified(!0)}G(J3,M,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});function Iv(e){M.call(this,null,e)}const Q3=["unit0","unit1"];Iv.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:Bx,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:Q3}]};G(Iv,M,{transform(e,t){const n=e.field,i=e.interval!==!1,r=e.timezone==="utc",o=this._floor(e,t),s=(r?ll:ul)(o.unit).offset,a=e.as||Q3,u=a[0],l=a[1],c=o.step;let f=o.start||1/0,d=o.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(xn(n)))&&(t=t.reflow(!0),h=t.SOURCE,f=1/0,d=-1/0),t.visit(h,p=>{const g=n(p);let m,y;g==null?(p[u]=null,i&&(p[l]=null)):(p[u]=m=y=o(g),i&&(p[l]=y=s(m,c)),m<f&&(f=m),y>d&&(d=y))}),o.start=f,o.stop=d,t.modifies(i?a:u)},_floor(e,t){const n=e.timezone==="utc",{units:i,step:r}=e.units?{units:e.units,step:e.step||1}:jD({extent:e.extent||lo(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),o=Ux(i),s=this.value||{},a=(n?OD:MD)(o,r);return a.unit=$e(o),a.units=o,a.step=r,a.start=s.start,a.stop=s.stop,this.value=a}});function Z3(e){M.call(this,vf(),e)}G(Z3,M,{transform(e,t){const n=t.dataflow,i=e.field,r=this.value,o=a=>r.set(i(a),a);let s=!0;return e.modified("field")||t.modified(i.fields)?(r.clear(),t.visit(t.SOURCE,o)):t.changed()?(t.visit(t.REM,a=>r.delete(i(a))),t.visit(t.ADD,o)):s=!1,this.modified(s),r.empty>n.cleanThreshold&&n.runAfter(r.clean),t.fork()}});function eT(e){M.call(this,null,e)}G(eT,M,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(Da(e.sort)):t.source).map(e.field))}});function OB(e,t,n,i){const r=Gc[e](t,n);return{init:r.init||zs,update:function(o,s){s[i]=r.next(o)}}}const Gc={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?++e:e}}},percent_rank:function(){const e=Gc.rank(),t=e.next;return{init:e.init,next:n=>(t(n)-1)/(n.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,i=t.compare;let r=t.index;if(e<r){for(;r+1<n.length&&!i(n[r],n[r+1]);)++r;e=r}return(1+e)/n.length}}},ntile:function(e,t){t=+t,t>0||L("ntile num must be greater than zero.");const n=Gc.cume_dist(),i=n.next;return{init:n.init,next:r=>Math.ceil(t*i(r))}},lag:function(e,t){return t=+t||1,{next:n=>{const i=n.index-t;return i>=0?e(n.data[i]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const i=n.index+t,r=n.data;return i<r.length?e(r[i]):null}}},first_value:function(e){return{next:t=>e(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return t=+t,t>0||L("nth_value nth must be greater than zero."),{next:n=>{const i=n.i0+(t-1);return i<n.i1?e(n.data[i]):null}}},prev_value:function(e){let t;return{init:()=>t=null,next:n=>{const i=e(n.data[n.index]);return i!=null?t=i:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:i=>{const r=i.data;return i.index<=n?t:(n=RB(e,r,i.index))<0?(n=r.length,t=null):t=e(r[n])}}}};function RB(e,t,n){for(let i=t.length;n<i;++n)if(e(t[n])!=null)return n;return-1}const NB=Object.keys(Gc);function tT(e){const t=se(e.ops),n=se(e.fields),i=se(e.params),r=se(e.aggregate_params),o=se(e.as),s=this.outputs=[],a=this.windows=[],u={},l={},c=[],f=[];let d=!0;function h(p){se(xn(p)).forEach(g=>u[g]=1)}h(e.sort),t.forEach((p,g)=>{const m=n[g],y=i[g],b=r[g]||null,x=lt(m),v=D3(p,x,o[g]);if(h(m),s.push(v),le(Gc,p))a.push(OB(p,m,y,v));else{if(m==null&&p!=="count"&&L("Null aggregate field specified."),p==="count"){c.push(v);return}d=!1;let w=l[x];w||(w=l[x]=[],w.field=m,f.push(w)),w.push(T3(p,b,v))}}),(c.length||f.length)&&(this.cell=LB(f,c,d)),this.inputs=Object.keys(u)}const nT=tT.prototype;nT.init=function(){this.windows.forEach(e=>e.init()),this.cell&&this.cell.init()};nT.update=function(e,t){const n=this.cell,i=this.windows,r=e.data,o=i&&i.length;let s;if(n){for(s=e.p0;s<e.i0;++s)n.rem(r[s]);for(s=e.p1;s<e.i1;++s)n.add(r[s]);n.set(t)}for(s=0;s<o;++s)i[s].update(e,t)};function LB(e,t,n){e=e.map(u=>O3(u,u.field));const i={num:0,agg:null,store:!1,count:t};if(!n)for(var r=e.length,o=i.agg=Array(r),s=0;s<r;++s)o[s]=new e[s](i);if(i.store)var a=i.data=new gv;return i.add=function(u){if(i.num+=1,!n){a&&a.add(u);for(let l=0;l<r;++l)o[l].add(o[l].get(u),u)}},i.rem=function(u){if(i.num-=1,!n){a&&a.rem(u);for(let l=0;l<r;++l)o[l].rem(o[l].get(u),u)}},i.set=function(u){let l,c;for(a&&a.values(),l=0,c=t.length;l<c;++l)u[t[l]]=i.num;if(!n)for(l=0,c=o.length;l<c;++l)o[l].set(u)},i.init=function(){i.num=0,a&&a.reset();for(let u=0;u<r;++u)o[u].init()},i}function zv(e){M.call(this,{},e),this._mlen=0,this._mods=[]}zv.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:NB.concat(Af)},{name:"params",type:"number",null:!0,array:!0},{name:"aggregate_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}]};G(zv,M,{transform(e,t){this.stamp=t.stamp;const n=e.modified(),i=Da(e.sort),r=Fy(e.groupby),o=a=>this.group(r(a));let s=this.state;(!s||n)&&(s=this.state=new tT(e)),n||t.modified(s.inputs)?(this.value={},t.visit(t.SOURCE,a=>o(a).add(a))):(t.visit(t.REM,a=>o(a).remove(a)),t.visit(t.ADD,a=>o(a).add(a)));for(let a=0,u=this._mlen;a<u;++a)PB(this._mods[a],s,i,e);return this._mlen=0,this._mods=[],t.reflow(n).modifies(s.outputs)},group(e){let t=this.value[e];return t||(t=this.value[e]=R3(te),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}});function PB(e,t,n,i){const r=i.sort,o=r&&!i.ignorePeers,s=i.frame||[null,0],a=e.data(n),u=a.length,l=o?eg(r):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:a,compare:r||wn(-1)};t.init();for(let f=0;f<u;++f)IB(c,s,f,u),o&&zB(c,l),t.update(c,a[f])}function IB(e,t,n,i){e.p0=e.i0,e.p1=e.i1,e.i0=t[0]==null?0:Math.max(0,n-Math.abs(t[0])),e.i1=t[1]==null?i:Math.min(i,n+Math.abs(t[1])+1),e.index=n}function zB(e,t){const n=e.i0,i=e.i1-1,r=e.compare,o=e.data,s=o.length-1;n>0&&!r(o[n],o[n-1])&&(e.i0=t.left(o,o[n])),i<s&&!r(o[i],o[i+1])&&(e.i1=t.right(o,o[i]))}const BB=Object.freeze(Object.defineProperty({__proto__:null,aggregate:Ko,bin:mv,collect:yv,compare:N3,countpattern:bv,cross:xv,density:vv,dotbin:wv,expression:B3,extent:Av,facet:Tg,field:U3,filter:Cv,flatten:$v,fold:_v,formula:Fv,generate:j3,impute:kv,joinaggregate:Dv,kde:Tv,key:q3,load:W3,lookup:Mv,multiextent:G3,multivalues:H3,params:V3,pivot:Ov,prefacet:Y3,project:Rv,proxy:X3,quantile:Nv,relay:K3,sample:Lv,sequence:Pv,sieve:J3,subflow:Sv,timeunit:Iv,tupleindex:Z3,values:eT,window:zv},Symbol.toStringTag,{value:"Module"}));function Re(e){return function(){return e}}const OS=Math.abs,Yt=Math.atan2,Ss=Math.cos,UB=Math.max,Tm=Math.min,er=Math.sin,Gs=Math.sqrt,Kt=1e-12,Tu=Math.PI,Oh=Tu/2,iT=2*Tu;function jB(e){return e>1?0:e<-1?Tu:Math.acos(e)}function RS(e){return e>=1?Oh:e<=-1?-Oh:Math.asin(e)}function Mg(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const i=Math.floor(n);if(!(i>=0))throw new RangeError(`invalid digits: ${n}`);t=i}return e},()=>new t9(t)}function qB(e){return e.innerRadius}function WB(e){return e.outerRadius}function GB(e){return e.startAngle}function HB(e){return e.endAngle}function VB(e){return e&&e.padAngle}function YB(e,t,n,i,r,o,s,a){var u=n-e,l=i-t,c=s-r,f=a-o,d=f*u-c*l;if(!(d*d<Kt))return d=(c*(t-o)-f*(e-r))/d,[e+d*u,t+d*l]}function xd(e,t,n,i,r,o,s){var a=e-n,u=t-i,l=(s?o:-o)/Gs(a*a+u*u),c=l*u,f=-l*a,d=e+c,h=t+f,p=n+c,g=i+f,m=(d+p)/2,y=(h+g)/2,b=p-d,x=g-h,v=b*b+x*x,w=r-o,A=d*g-p*h,E=(x<0?-1:1)*Gs(UB(0,w*w*v-A*A)),S=(A*x-b*E)/v,C=(-A*b-x*E)/v,_=(A*x+b*E)/v,k=(-A*b+x*E)/v,N=S-m,T=C-y,F=_-m,$=k-y;return N*N+T*T>F*F+$*$&&(S=_,C=k),{cx:S,cy:C,x01:-c,y01:-f,x11:S*(r/w-1),y11:C*(r/w-1)}}function XB(){var e=qB,t=WB,n=Re(0),i=null,r=GB,o=HB,s=VB,a=null,u=Mg(l);function l(){var c,f,d=+e.apply(this,arguments),h=+t.apply(this,arguments),p=r.apply(this,arguments)-Oh,g=o.apply(this,arguments)-Oh,m=OS(g-p),y=g>p;if(a||(a=c=u()),h<d&&(f=h,h=d,d=f),!(h>Kt))a.moveTo(0,0);else if(m>iT-Kt)a.moveTo(h*Ss(p),h*er(p)),a.arc(0,0,h,p,g,!y),d>Kt&&(a.moveTo(d*Ss(g),d*er(g)),a.arc(0,0,d,g,p,y));else{var b=p,x=g,v=p,w=g,A=m,E=m,S=s.apply(this,arguments)/2,C=S>Kt&&(i?+i.apply(this,arguments):Gs(d*d+h*h)),_=Tm(OS(h-d)/2,+n.apply(this,arguments)),k=_,N=_,T,F;if(C>Kt){var $=RS(C/d*er(S)),D=RS(C/h*er(S));(A-=$*2)>Kt?($*=y?1:-1,v+=$,w-=$):(A=0,v=w=(p+g)/2),(E-=D*2)>Kt?(D*=y?1:-1,b+=D,x-=D):(E=0,b=x=(p+g)/2)}var P=h*Ss(b),z=h*er(b),I=d*Ss(w),V=d*er(w);if(_>Kt){var ue=h*Ss(x),ie=h*er(x),he=d*Ss(v),We=d*er(v),pe;if(m<Tu)if(pe=YB(P,z,he,We,ue,ie,I,V)){var Ht=P-pe[0],ws=z-pe[1],_o=ue-pe[0],Y=ie-pe[1],ge=1/er(jB((Ht*_o+ws*Y)/(Gs(Ht*Ht+ws*ws)*Gs(_o*_o+Y*Y)))/2),ve=Gs(pe[0]*pe[0]+pe[1]*pe[1]);k=Tm(_,(d-ve)/(ge-1)),N=Tm(_,(h-ve)/(ge+1))}else k=N=0}E>Kt?N>Kt?(T=xd(he,We,P,z,h,N,y),F=xd(ue,ie,I,V,h,N,y),a.moveTo(T.cx+T.x01,T.cy+T.y01),N<_?a.arc(T.cx,T.cy,N,Yt(T.y01,T.x01),Yt(F.y01,F.x01),!y):(a.arc(T.cx,T.cy,N,Yt(T.y01,T.x01),Yt(T.y11,T.x11),!y),a.arc(0,0,h,Yt(T.cy+T.y11,T.cx+T.x11),Yt(F.cy+F.y11,F.cx+F.x11),!y),a.arc(F.cx,F.cy,N,Yt(F.y11,F.x11),Yt(F.y01,F.x01),!y))):(a.moveTo(P,z),a.arc(0,0,h,b,x,!y)):a.moveTo(P,z),!(d>Kt)||!(A>Kt)?a.lineTo(I,V):k>Kt?(T=xd(I,V,ue,ie,d,-k,y),F=xd(P,z,he,We,d,-k,y),a.lineTo(T.cx+T.x01,T.cy+T.y01),k<_?a.arc(T.cx,T.cy,k,Yt(T.y01,T.x01),Yt(F.y01,F.x01),!y):(a.arc(T.cx,T.cy,k,Yt(T.y01,T.x01),Yt(T.y11,T.x11),!y),a.arc(0,0,d,Yt(T.cy+T.y11,T.cx+T.x11),Yt(F.cy+F.y11,F.cx+F.x11),y),a.arc(F.cx,F.cy,k,Yt(F.y11,F.x11),Yt(F.y01,F.x01),!y))):a.arc(0,0,d,w,v,y)}if(a.closePath(),c)return a=null,c+""||null}return l.centroid=function(){var c=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,f=(+r.apply(this,arguments)+ +o.apply(this,arguments))/2-Tu/2;return[Ss(f)*c,er(f)*c]},l.innerRadius=function(c){return arguments.length?(e=typeof c=="function"?c:Re(+c),l):e},l.outerRadius=function(c){return arguments.length?(t=typeof c=="function"?c:Re(+c),l):t},l.cornerRadius=function(c){return arguments.length?(n=typeof c=="function"?c:Re(+c),l):n},l.padRadius=function(c){return arguments.length?(i=c==null?null:typeof c=="function"?c:Re(+c),l):i},l.startAngle=function(c){return arguments.length?(r=typeof c=="function"?c:Re(+c),l):r},l.endAngle=function(c){return arguments.length?(o=typeof c=="function"?c:Re(+c),l):o},l.padAngle=function(c){return arguments.length?(s=typeof c=="function"?c:Re(+c),l):s},l.context=function(c){return arguments.length?(a=c??null,l):a},l}function rT(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function oT(e){this._context=e}oT.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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Bv(e){return new oT(e)}function sT(e){return e[0]}function aT(e){return e[1]}function uT(e,t){var n=Re(!0),i=null,r=Bv,o=null,s=Mg(a);e=typeof e=="function"?e:e===void 0?sT:Re(e),t=typeof t=="function"?t:t===void 0?aT:Re(t);function a(u){var l,c=(u=rT(u)).length,f,d=!1,h;for(i==null&&(o=r(h=s())),l=0;l<=c;++l)!(l<c&&n(f=u[l],l,u))===d&&((d=!d)?o.lineStart():o.lineEnd()),d&&o.point(+e(f,l,u),+t(f,l,u));if(h)return o=null,h+""||null}return a.x=function(u){return arguments.length?(e=typeof u=="function"?u:Re(+u),a):e},a.y=function(u){return arguments.length?(t=typeof u=="function"?u:Re(+u),a):t},a.defined=function(u){return arguments.length?(n=typeof u=="function"?u:Re(!!u),a):n},a.curve=function(u){return arguments.length?(r=u,i!=null&&(o=r(i)),a):r},a.context=function(u){return arguments.length?(u==null?i=o=null:o=r(i=u),a):i},a}function lT(e,t,n){var i=null,r=Re(!0),o=null,s=Bv,a=null,u=Mg(l);e=typeof e=="function"?e:e===void 0?sT:Re(+e),t=typeof t=="function"?t:Re(t===void 0?0:+t),n=typeof n=="function"?n:n===void 0?aT:Re(+n);function l(f){var d,h,p,g=(f=rT(f)).length,m,y=!1,b,x=new Array(g),v=new Array(g);for(o==null&&(a=s(b=u())),d=0;d<=g;++d){if(!(d<g&&r(m=f[d],d,f))===y)if(y=!y)h=d,a.areaStart(),a.lineStart();else{for(a.lineEnd(),a.lineStart(),p=d-1;p>=h;--p)a.point(x[p],v[p]);a.lineEnd(),a.areaEnd()}y&&(x[d]=+e(m,d,f),v[d]=+t(m,d,f),a.point(i?+i(m,d,f):x[d],n?+n(m,d,f):v[d]))}if(b)return a=null,b+""||null}function c(){return uT().defined(r).curve(s).context(o)}return l.x=function(f){return arguments.length?(e=typeof f=="function"?f:Re(+f),i=null,l):e},l.x0=function(f){return arguments.length?(e=typeof f=="function"?f:Re(+f),l):e},l.x1=function(f){return arguments.length?(i=f==null?null:typeof f=="function"?f:Re(+f),l):i},l.y=function(f){return arguments.length?(t=typeof f=="function"?f:Re(+f),n=null,l):t},l.y0=function(f){return arguments.length?(t=typeof f=="function"?f:Re(+f),l):t},l.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Re(+f),l):n},l.lineX0=l.lineY0=function(){return c().x(e).y(t)},l.lineY1=function(){return c().x(e).y(n)},l.lineX1=function(){return c().x(i).y(t)},l.defined=function(f){return arguments.length?(r=typeof f=="function"?f:Re(!!f),l):r},l.curve=function(f){return arguments.length?(s=f,o!=null&&(a=s(o)),l):s},l.context=function(f){return arguments.length?(f==null?o=a=null:a=s(o=f),l):o},l}const KB={draw(e,t){const n=Gs(t/Tu);e.moveTo(n,0),e.arc(0,0,n,0,iT)}};function JB(e,t){let n=null,i=Mg(r);e=typeof e=="function"?e:Re(e||KB),t=typeof t=="function"?t:Re(t===void 0?64:+t);function r(){let o;if(n||(n=o=i()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return r.type=function(o){return arguments.length?(e=typeof o=="function"?o:Re(o),r):e},r.size=function(o){return arguments.length?(t=typeof o=="function"?o:Re(+o),r):t},r.context=function(o){return arguments.length?(n=o??null,r):n},r}function Jo(){}function Rh(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function Og(e){this._context=e}Og.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:Rh(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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);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:Rh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function QB(e){return new Og(e)}function cT(e){this._context=e}cT.prototype={areaStart:Jo,areaEnd:Jo,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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Rh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function ZB(e){return new cT(e)}function fT(e){this._context=e}fT.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(e,t){switch(e=+e,t=+t,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+e)/6,i=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:Rh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function eU(e){return new fT(e)}function dT(e,t){this._basis=new Og(e),this._beta=t}dT.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var i=e[0],r=t[0],o=e[n]-i,s=t[n]-r,a=-1,u;++a<=n;)u=a/n,this._basis.point(this._beta*e[a]+(1-this._beta)*(i+u*o),this._beta*t[a]+(1-this._beta)*(r+u*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const tU=function e(t){function n(i){return t===1?new Og(i):new dT(i,t)}return n.beta=function(i){return e(+i)},n}(.85);function Nh(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function Uv(e,t){this._context=e,this._k=(1-t)/6}Uv.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:Nh(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:Nh(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const nU=function e(t){function n(i){return new Uv(i,t)}return n.tension=function(i){return e(+i)},n}(0);function jv(e,t){this._context=e,this._k=(1-t)/6}jv.prototype={areaStart:Jo,areaEnd:Jo,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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Nh(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const iU=function e(t){function n(i){return new jv(i,t)}return n.tension=function(i){return e(+i)},n}(0);function qv(e,t){this._context=e,this._k=(1-t)/6}qv.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(e,t){switch(e=+e,t=+t,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:Nh(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const rU=function e(t){function n(i){return new qv(i,t)}return n.tension=function(i){return e(+i)},n}(0);function Wv(e,t,n){var i=e._x1,r=e._y1,o=e._x2,s=e._y2;if(e._l01_a>Kt){var a=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);i=(i*a-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,r=(r*a-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>Kt){var l=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*l+e._x1*e._l23_2a-t*e._l12_2a)/c,s=(s*l+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(i,r,o,s,e._x2,e._y2)}function hT(e,t){this._context=e,this._alpha=t}hT.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(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:Wv(this,e,t);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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const oU=function e(t){function n(i){return t?new hT(i,t):new Uv(i,0)}return n.alpha=function(i){return e(+i)},n}(.5);function pT(e,t){this._context=e,this._alpha=t}pT.prototype={areaStart:Jo,areaEnd:Jo,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(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Wv(this,e,t);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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const sU=function e(t){function n(i){return t?new pT(i,t):new jv(i,0)}return n.alpha=function(i){return e(+i)},n}(.5);function gT(e,t){this._context=e,this._alpha=t}gT.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(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:Wv(this,e,t);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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const aU=function e(t){function n(i){return t?new gT(i,t):new qv(i,0)}return n.alpha=function(i){return e(+i)},n}(.5);function mT(e){this._context=e}mT.prototype={areaStart:Jo,areaEnd:Jo,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function uU(e){return new mT(e)}function NS(e){return e<0?-1:1}function LS(e,t,n){var i=e._x1-e._x0,r=t-e._x1,o=(e._y1-e._y0)/(i||r<0&&-0),s=(n-e._y1)/(r||i<0&&-0),a=(o*r+s*i)/(i+r);return(NS(o)+NS(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(a))||0}function PS(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Mm(e,t,n){var i=e._x0,r=e._y0,o=e._x1,s=e._y1,a=(o-i)/3;e._context.bezierCurveTo(i+a,r+a*t,o-a,s-a*n,o,s)}function Lh(e){this._context=e}Lh.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:Mm(this,this._t0,PS(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Mm(this,PS(this,n=LS(this,e,t)),n);break;default:Mm(this,this._t0,n=LS(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function yT(e){this._context=new bT(e)}(yT.prototype=Object.create(Lh.prototype)).point=function(e,t){Lh.prototype.point.call(this,t,e)};function bT(e){this._context=e}bT.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,i,r,o){this._context.bezierCurveTo(t,e,i,n,o,r)}};function lU(e){return new Lh(e)}function cU(e){return new yT(e)}function xT(e){this._context=e}xT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var i=IS(e),r=IS(t),o=0,s=1;s<n;++o,++s)this._context.bezierCurveTo(i[0][o],r[0][o],i[1][o],r[1][o],e[s],t[s]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function IS(e){var t,n=e.length-1,i,r=new Array(n),o=new Array(n),s=new Array(n);for(r[0]=0,o[0]=2,s[0]=e[0]+2*e[1],t=1;t<n-1;++t)r[t]=1,o[t]=4,s[t]=4*e[t]+2*e[t+1];for(r[n-1]=2,o[n-1]=7,s[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)i=r[t]/o[t-1],o[t]-=i,s[t]-=i*s[t-1];for(r[n-1]=s[n-1]/o[n-1],t=n-2;t>=0;--t)r[t]=(s[t]-r[t+1])/o[t];for(o[n-1]=(e[n]+r[n-1])/2,t=0;t<n-1;++t)o[t]=2*e[t+1]-r[t+1];return[r,o]}function fU(e){return new xT(e)}function Rg(e,t){this._context=e,this._t=t}Rg.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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function dU(e){return new Rg(e,.5)}function hU(e){return new Rg(e,0)}function pU(e){return new Rg(e,1)}function Vo(e,t){if(typeof document<"u"&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}const gU=()=>typeof Image<"u"?Image:null,ky=Symbol("implicit");function Gv(){var e=new sS,t=[],n=[],i=ky;function r(o){let s=e.get(o);if(s===void 0){if(i!==ky)return i;e.set(o,s=t.push(o)-1)}return n[s%n.length]}return r.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new sS;for(const s of o)e.has(s)||e.set(s,t.push(s)-1);return r},r.range=function(o){return arguments.length?(n=Array.from(o),r):n.slice()},r.unknown=function(o){return arguments.length?(i=o,r):i},r.copy=function(){return Gv(t,n).unknown(i)},us.apply(r,arguments),r}const vT=Math.PI/180,ET=180/Math.PI,Ph=18,wT=.96422,AT=1,ST=.82521,CT=4/29,yu=6/29,$T=3*yu*yu,mU=yu*yu*yu;function _T(e){if(e instanceof dr)return new dr(e.l,e.a,e.b,e.opacity);if(e instanceof Qr)return FT(e);e instanceof ig||(e=Mk(e));var t=Lm(e.r),n=Lm(e.g),i=Lm(e.b),r=Om((.2225045*t+.7168786*n+.0606169*i)/AT),o,s;return t===n&&n===i?o=s=r:(o=Om((.4360747*t+.3850649*n+.1430804*i)/wT),s=Om((.0139322*t+.0971045*n+.7141733*i)/ST)),new dr(116*r-16,500*(o-r),200*(r-s),e.opacity)}function Ih(e,t,n,i){return arguments.length===1?_T(e):new dr(e,t,n,i??1)}function dr(e,t,n,i){this.l=+e,this.a=+t,this.b=+n,this.opacity=+i}_x(dr,Ih,Fx(kx,{brighter(e){return new dr(this.l+Ph*(e??1),this.a,this.b,this.opacity)},darker(e){return new dr(this.l-Ph*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=wT*Rm(t),e=AT*Rm(e),n=ST*Rm(n),new ig(Nm(3.1338561*t-1.6168667*e-.4906146*n),Nm(-.9787684*t+1.9161415*e+.033454*n),Nm(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Om(e){return e>mU?Math.pow(e,1/3):e/$T+CT}function Rm(e){return e>yu?e*e*e:$T*(e-CT)}function Nm(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Lm(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function yU(e){if(e instanceof Qr)return new Qr(e.h,e.c,e.l,e.opacity);if(e instanceof dr||(e=_T(e)),e.a===0&&e.b===0)return new Qr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ET;return new Qr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function zh(e,t,n,i){return arguments.length===1?yU(e):new Qr(e,t,n,i??1)}function Qr(e,t,n,i){this.h=+e,this.c=+t,this.l=+n,this.opacity=+i}function FT(e){if(isNaN(e.h))return new dr(e.l,0,0,e.opacity);var t=e.h*vT;return new dr(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}_x(Qr,zh,Fx(kx,{brighter(e){return new Qr(this.h,this.c,this.l+Ph*(e??1),this.opacity)},darker(e){return new Qr(this.h,this.c,this.l-Ph*(e??1),this.opacity)},rgb(){return FT(this).rgb()}}));var kT=-.14861,Hv=1.78277,Vv=-.29227,Ng=-.90649,Hc=1.97294,zS=Hc*Ng,BS=Hc*Hv,US=Hv*Vv-Ng*kT;function bU(e){if(e instanceof Ks)return new Ks(e.h,e.s,e.l,e.opacity);e instanceof ig||(e=Mk(e));var t=e.r/255,n=e.g/255,i=e.b/255,r=(US*i+zS*t-BS*n)/(US+zS-BS),o=i-r,s=(Hc*(n-r)-Vv*o)/Ng,a=Math.sqrt(s*s+o*o)/(Hc*r*(1-r)),u=a?Math.atan2(s,o)*ET-120:NaN;return new Ks(u<0?u+360:u,a,r,e.opacity)}function Dy(e,t,n,i){return arguments.length===1?bU(e):new Ks(e,t,n,i??1)}function Ks(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}_x(Ks,Dy,Fx(kx,{brighter(e){return e=e==null?ZA:Math.pow(ZA,e),new Ks(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?QA:Math.pow(QA,e),new Ks(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*vT,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(e),r=Math.sin(e);return new ig(255*(t+n*(kT*i+Hv*r)),255*(t+n*(Vv*i+Ng*r)),255*(t+n*(Hc*i)),this.opacity)}}));function xU(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function vU(e,t){var n=rg(+e,+t);return function(i){var r=n(i);return r-360*Math.floor(r/360)}}function DT(e){return function(t,n){var i=e((t=py(t)).h,(n=py(n)).h),r=en(t.s,n.s),o=en(t.l,n.l),s=en(t.opacity,n.opacity);return function(a){return t.h=i(a),t.s=r(a),t.l=o(a),t.opacity=s(a),t+""}}}const EU=DT(rg);var wU=DT(en);function AU(e,t){var n=en((e=Ih(e)).l,(t=Ih(t)).l),i=en(e.a,t.a),r=en(e.b,t.b),o=en(e.opacity,t.opacity);return function(s){return e.l=n(s),e.a=i(s),e.b=r(s),e.opacity=o(s),e+""}}function TT(e){return function(t,n){var i=e((t=zh(t)).h,(n=zh(n)).h),r=en(t.c,n.c),o=en(t.l,n.l),s=en(t.opacity,n.opacity);return function(a){return t.h=i(a),t.c=r(a),t.l=o(a),t.opacity=s(a),t+""}}}const SU=TT(rg);var CU=TT(en);function MT(e){return function t(n){n=+n;function i(r,o){var s=e((r=Dy(r)).h,(o=Dy(o)).h),a=en(r.s,o.s),u=en(r.l,o.l),l=en(r.opacity,o.opacity);return function(c){return r.h=s(c),r.s=a(c),r.l=u(Math.pow(c,n)),r.opacity=l(c),r+""}}return i.gamma=t,i}(1)}const $U=MT(rg);var _U=MT(en);function Yv(e,t){t===void 0&&(t=e,e=bf);for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);n<i;)o[n]=e(r,r=t[++n]);return function(s){var a=Math.max(0,Math.min(i-1,Math.floor(s*=i)));return o[a](s-a)}}function FU(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e(i/(t-1));return n}const kU=Object.freeze(Object.defineProperty({__proto__:null,interpolate:bf,interpolateArray:W8,interpolateBasis:G8,interpolateBasisClosed:H8,interpolateCubehelix:$U,interpolateCubehelixLong:_U,interpolateDate:V8,interpolateDiscrete:xU,interpolateHcl:SU,interpolateHclLong:CU,interpolateHsl:EU,interpolateHslLong:wU,interpolateHue:vU,interpolateLab:AU,interpolateNumber:Y8,interpolateNumberArray:X8,interpolateObject:K8,interpolateRgb:J8,interpolateRgbBasis:Q8,interpolateRgbBasisClosed:Z8,interpolateRound:tg,interpolateString:e9,interpolateTransformCss:n9,interpolateTransformSvg:i9,interpolateZoom:r9,piecewise:Yv,quantize:FU},Symbol.toStringTag,{value:"Module"}));function OT(e){var t;function n(i){return i==null||isNaN(i=+i)?t:i}return n.invert=n,n.domain=n.range=function(i){return arguments.length?(e=Array.from(i,KA),n):e.slice()},n.unknown=function(i){return arguments.length?(t=i,n):t},n.copy=function(){return OT(e).unknown(t)},e=arguments.length?Array.from(e,KA):[0,1],rl(n)}function RT(e,t){e=e.slice();var n=0,i=e.length-1,r=e[n],o=e[i],s;return o<r&&(s=n,n=i,i=s,s=r,r=o,o=s),e[n]=t.floor(r),e[i]=t.ceil(o),e}function jS(e){return Math.log(e)}function qS(e){return Math.exp(e)}function DU(e){return-Math.log(-e)}function TU(e){return-Math.exp(-e)}function MU(e){return isFinite(e)?+("1e"+e):e<0?0:e}function OU(e){return e===10?MU:e===Math.E?Math.exp:t=>Math.pow(e,t)}function RU(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function WS(e){return(t,n)=>-e(-t,n)}function Xv(e){const t=e(jS,qS),n=t.domain;let i=10,r,o;function s(){return r=RU(i),o=OU(i),n()[0]<0?(r=WS(r),o=WS(o),e(DU,TU)):e(jS,qS),t}return t.base=function(a){return arguments.length?(i=+a,s()):i},t.domain=function(a){return arguments.length?(n(a),s()):n()},t.ticks=a=>{const u=n();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let d=r(l),h=r(c),p,g;const m=a==null?10:+a;let y=[];if(!(i%1)&&h-d<m){if(d=Math.floor(d),h=Math.ceil(h),l>0){for(;d<=h;++d)for(p=1;p<i;++p)if(g=d<0?p/o(-d):p*o(d),!(g<l)){if(g>c)break;y.push(g)}}else for(;d<=h;++d)for(p=i-1;p>=1;--p)if(g=d>0?p/o(-d):p*o(d),!(g<l)){if(g>c)break;y.push(g)}y.length*2<m&&(y=JA(l,c,m))}else y=JA(d,h,Math.min(h-d,m)).map(o);return f?y.reverse():y},t.tickFormat=(a,u)=>{if(a==null&&(a=10),u==null&&(u=i===10?"s":","),typeof u!="function"&&(!(i%1)&&(u=hy(u)).precision==null&&(u.trim=!0),u=Tk(u)),a===1/0)return u;const l=Math.max(1,i*a/t.ticks().length);return c=>{let f=c/o(Math.round(r(c)));return f*i<i-.5&&(f*=i),f<=l?u(c):""}},t.nice=()=>n(RT(n(),{floor:a=>o(Math.floor(r(a))),ceil:a=>o(Math.ceil(r(a)))})),t}function NT(){const e=Xv($x()).domain([1,10]);return e.copy=()=>ng(e,NT()).base(e.base()),us.apply(e,arguments),e}function GS(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function HS(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Kv(e){var t=1,n=e(GS(t),HS(t));return n.constant=function(i){return arguments.length?e(GS(t=+i),HS(t)):t},rl(n)}function LT(){var e=Kv($x());return e.copy=function(){return ng(e,LT()).constant(e.constant())},us.apply(e,arguments)}function VS(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function NU(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function LU(e){return e<0?-e*e:e*e}function Jv(e){var t=e(No,No),n=1;function i(){return n===1?e(No,No):n===.5?e(NU,LU):e(VS(n),VS(1/n))}return t.exponent=function(r){return arguments.length?(n=+r,i()):n},rl(t)}function Qv(){var e=Jv($x());return e.copy=function(){return ng(e,Qv()).exponent(e.exponent())},us.apply(e,arguments),e}function PU(){return Qv.apply(null,arguments).exponent(.5)}function PT(){var e=[],t=[],n=[],i;function r(){var s=0,a=Math.max(1,t.length);for(n=new Array(a-1);++s<a;)n[s-1]=bD(e,s/a);return o}function o(s){return s==null||isNaN(s=+s)?i:t[Cu(n,s)]}return o.invertExtent=function(s){var a=t.indexOf(s);return a<0?[NaN,NaN]:[a>0?n[a-1]:e[0],a<n.length?n[a]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let a of s)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(zc),r()},o.range=function(s){return arguments.length?(t=Array.from(s),r()):t.slice()},o.unknown=function(s){return arguments.length?(i=s,o):i},o.quantiles=function(){return n.slice()},o.copy=function(){return PT().domain(e).range(t).unknown(i)},us.apply(o,arguments)}function IT(){var e=0,t=1,n=1,i=[.5],r=[0,1],o;function s(u){return u!=null&&u<=u?r[Cu(i,u,0,n)]:o}function a(){var u=-1;for(i=new Array(n);++u<n;)i[u]=((u+1)*t-(u-n)*e)/(n+1);return s}return s.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,a()):[e,t]},s.range=function(u){return arguments.length?(n=(r=Array.from(u)).length-1,a()):r.slice()},s.invertExtent=function(u){var l=r.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,i[0]]:l>=n?[i[n-1],t]:[i[l-1],i[l]]},s.unknown=function(u){return arguments.length&&(o=u),s},s.thresholds=function(){return i.slice()},s.copy=function(){return IT().domain([e,t]).range(r).unknown(o)},us.apply(rl(s),arguments)}function IU(e){return new Date(e)}function zU(e){return e instanceof Date?+e:+new Date(+e)}function Zv(e,t,n,i,r,o,s,a,u,l){var c=P8(),f=c.invert,d=c.domain,h=l(".%L"),p=l(":%S"),g=l("%I:%M"),m=l("%I %p"),y=l("%a %d"),b=l("%b %d"),x=l("%B"),v=l("%Y");function w(A){return(u(A)<A?h:a(A)<A?p:s(A)<A?g:o(A)<A?m:i(A)<A?r(A)<A?y:b:n(A)<A?x:v)(A)}return c.invert=function(A){return new Date(f(A))},c.domain=function(A){return arguments.length?d(Array.from(A,zU)):d().map(IU)},c.ticks=function(A){var E=d();return e(E[0],E[E.length-1],A??10)},c.tickFormat=function(A,E){return E==null?w:l(E)},c.nice=function(A){var E=d();return(!A||typeof A.range!="function")&&(A=t(E[0],E[E.length-1],A??10)),A?d(RT(E,A)):c},c.copy=function(){return ng(c,Zv(e,t,n,i,r,o,s,a,u,l))},c}function BU(){return us.apply(Zv(AI,SI,br,Uc,sl,no,yg,gg,Jr,qx).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function UU(){return us.apply(Zv(EI,wI,xr,jc,al,Go,bg,mg,Jr,Wx).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Lg(){var e=0,t=1,n,i,r,o,s=No,a=!1,u;function l(f){return f==null||isNaN(f=+f)?u:s(r===0?.5:(f=(o(f)-n)*r,a?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),i=o(t=+t),r=n===i?0:1/(i-n),l):[e,t]},l.clamp=function(f){return arguments.length?(a=!!f,l):a},l.interpolator=function(f){return arguments.length?(s=f,l):s};function c(f){return function(d){var h,p;return arguments.length?([h,p]=d,s=f(h,p),l):[s(0),s(1)]}}return l.range=c(bf),l.rangeRound=c(tg),l.unknown=function(f){return arguments.length?(u=f,l):u},function(f){return o=f,n=f(e),i=f(t),r=n===i?0:1/(i-n),l}}function cs(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function e2(){var e=rl(Lg()(No));return e.copy=function(){return cs(e,e2())},ls.apply(e,arguments)}function zT(){var e=Xv(Lg()).domain([1,10]);return e.copy=function(){return cs(e,zT()).base(e.base())},ls.apply(e,arguments)}function BT(){var e=Kv(Lg());return e.copy=function(){return cs(e,BT()).constant(e.constant())},ls.apply(e,arguments)}function t2(){var e=Jv(Lg());return e.copy=function(){return cs(e,t2()).exponent(e.exponent())},ls.apply(e,arguments)}function jU(){return t2.apply(null,arguments).exponent(.5)}function Pg(){var e=0,t=.5,n=1,i=1,r,o,s,a,u,l=No,c,f=!1,d;function h(g){return isNaN(g=+g)?d:(g=.5+((g=+c(g))-o)*(i*g<i*o?a:u),l(f?Math.max(0,Math.min(1,g)):g))}h.domain=function(g){return arguments.length?([e,t,n]=g,r=c(e=+e),o=c(t=+t),s=c(n=+n),a=r===o?0:.5/(o-r),u=o===s?0:.5/(s-o),i=o<r?-1:1,h):[e,t,n]},h.clamp=function(g){return arguments.length?(f=!!g,h):f},h.interpolator=function(g){return arguments.length?(l=g,h):l};function p(g){return function(m){var y,b,x;return arguments.length?([y,b,x]=m,l=Yv(g,[y,b,x]),h):[l(0),l(.5),l(1)]}}return h.range=p(bf),h.rangeRound=p(tg),h.unknown=function(g){return arguments.length?(d=g,h):d},function(g){return c=g,r=g(e),o=g(t),s=g(n),a=r===o?0:.5/(o-r),u=o===s?0:.5/(s-o),i=o<r?-1:1,h}}function UT(){var e=rl(Pg()(No));return e.copy=function(){return cs(e,UT())},ls.apply(e,arguments)}function jT(){var e=Xv(Pg()).domain([.1,1,10]);return e.copy=function(){return cs(e,jT()).base(e.base())},ls.apply(e,arguments)}function qT(){var e=Kv(Pg());return e.copy=function(){return cs(e,qT()).constant(e.constant())},ls.apply(e,arguments)}function n2(){var e=Jv(Pg());return e.copy=function(){return cs(e,n2()).exponent(e.exponent())},ls.apply(e,arguments)}function qU(){return n2.apply(null,arguments).exponent(.5)}function $r(e){for(var t=e.length/6|0,n=new Array(t),i=0;i<t;)n[i]="#"+e.slice(i*6,++i*6);return n}const WU=$r("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),GU=$r("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),HU=$r("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),VU=$r("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),YU=$r("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),XU=$r("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),KU=$r("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),JU=$r("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),QU=$r("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),ZU=$r("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function i2(e,t,n){const i=e-t+n*2;return e?i>0?i:1:0}const ej="identity",Mu="linear",fo="log",Sf="pow",Cf="sqrt",Ig="symlog",aa="time",ua="utc",hr="sequential",fl="diverging",Ou="quantile",zg="quantize",Bg="threshold",r2="ordinal",Ty="point",WT="band",o2="bin-ordinal",wt="continuous",$f="discrete",_f="discretizing",vi="interpolating",s2="temporal";function tj(e){return function(t){let n=t[0],i=t[1],r;return i<n&&(r=n,n=i,i=r),[e.invert(n),e.invert(i)]}}function nj(e){return function(t){const n=e.range();let i=t[0],r=t[1],o=-1,s,a,u,l;for(r<i&&(a=i,i=r,r=a),u=0,l=n.length;u<l;++u)n[u]>=i&&n[u]<=r&&(o<0&&(o=u),s=u);if(!(o<0))return i=e.invertExtent(n[o]),r=e.invertExtent(n[s]),[i[0]===void 0?i[1]:i[0],r[1]===void 0?r[0]:r[1]]}}function a2(){const e=Gv().unknown(void 0),t=e.domain,n=e.range;let i=[0,1],r,o,s=!1,a=0,u=0,l=.5;delete e.unknown;function c(){const f=t().length,d=i[1]<i[0],h=i[1-d],p=i2(f,a,u);let g=i[d-0];r=(h-g)/(p||1),s&&(r=Math.floor(r)),g+=(h-g-r*(f-a))*l,o=r*(1-a),s&&(g=Math.round(g),o=Math.round(o));const m=Yn(f).map(y=>g+r*y);return n(d?m.reverse():m)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?(i=[+f[0],+f[1]],c()):i.slice()},e.rangeRound=function(f){return i=[+f[0],+f[1]],s=!0,c()},e.bandwidth=function(){return o},e.step=function(){return r},e.round=function(f){return arguments.length?(s=!!f,c()):s},e.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),a=u,c()):a},e.paddingInner=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),c()):a},e.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},e.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const d=i[1]<i[0],h=d?n().reverse():n(),p=h.length-1;let g=+f[0],m=+f[1],y,b,x;if(!(g!==g||m!==m)&&(m<g&&(x=g,g=m,m=x),!(m<h[0]||g>i[1-d])))return y=Math.max(0,Cu(h,g)-1),b=g===m?y:Cu(h,m)-1,g-h[y]>o+1e-10&&++y,d&&(x=y,y=p-b,b=p-x),y>b?void 0:t().slice(y,b+1)},e.invert=function(f){const d=e.invertRange([f,f]);return d&&d[0]},e.copy=function(){return a2().domain(t()).range(i).round(s).paddingInner(a).paddingOuter(u).align(l)},c()}function GT(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return GT(t())},e}function ij(){return GT(a2().paddingInner(1))}var rj=Array.prototype.map;function oj(e){return rj.call(e,mn)}const sj=Array.prototype.slice;function HT(){let e=[],t=[];function n(i){return i==null||i!==i?void 0:t[(Cu(e,i)-1)%t.length]}return n.domain=function(i){return arguments.length?(e=oj(i),n):e.slice()},n.range=function(i){return arguments.length?(t=sj.call(i),n):t.slice()},n.tickFormat=function(i,r){return B8(e[0],$e(e),i??10,r)},n.copy=function(){return HT().domain(n.domain()).range(n.range())},n}const Bh=new Map,VT=Symbol("vega_scale");function YT(e){return e[VT]=!0,e}function YS(e){return e&&e[VT]===!0}function aj(e,t,n){const i=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?tj(o):o.invertExtent?nj(o):void 0),o.type=e,YT(o)};return i.metadata=yr(se(n)),i}function Me(e,t,n){return arguments.length>1?(Bh.set(e,aj(e,t,n)),this):XT(e)?Bh.get(e):void 0}Me(ej,OT);Me(Mu,I8,wt);Me(fo,NT,[wt,fo]);Me(Sf,Qv,wt);Me(Cf,PU,wt);Me(Ig,LT,wt);Me(aa,BU,[wt,s2]);Me(ua,UU,[wt,s2]);Me(hr,e2,[wt,vi]);Me(`${hr}-${Mu}`,e2,[wt,vi]);Me(`${hr}-${fo}`,zT,[wt,vi,fo]);Me(`${hr}-${Sf}`,t2,[wt,vi]);Me(`${hr}-${Cf}`,jU,[wt,vi]);Me(`${hr}-${Ig}`,BT,[wt,vi]);Me(`${fl}-${Mu}`,UT,[wt,vi]);Me(`${fl}-${fo}`,jT,[wt,vi,fo]);Me(`${fl}-${Sf}`,n2,[wt,vi]);Me(`${fl}-${Cf}`,qU,[wt,vi]);Me(`${fl}-${Ig}`,qT,[wt,vi]);Me(Ou,PT,[_f,Ou]);Me(zg,IT,_f);Me(Bg,z8,_f);Me(o2,HT,[$f,_f]);Me(r2,Gv,$f);Me(WT,a2,$f);Me(Ty,ij,$f);function XT(e){return Bh.has(e)}function Ma(e,t){const n=Bh.get(e);return n&&n.metadata[t]}function u2(e){return Ma(e,wt)}function Ru(e){return Ma(e,$f)}function My(e){return Ma(e,_f)}function KT(e){return Ma(e,fo)}function uj(e){return Ma(e,s2)}function JT(e){return Ma(e,vi)}function QT(e){return Ma(e,Ou)}const lj=["clamp","base","constant","exponent"];function ZT(e,t){const n=t[0],i=$e(t)-n;return function(r){return e(n+r*i)}}function Ug(e,t,n){return Yv(l2(t||"rgb",n),e)}function eM(e,t){const n=new Array(t),i=t+1;for(let r=0;r<t;)n[r]=e(++r/i);return n}function tM(e,t,n){const i=n-t;let r,o,s;return!i||!Number.isFinite(i)?wn(.5):(r=(o=e.type).indexOf("-"),o=r<0?o:o.slice(r+1),s=Me(o)().domain([t,n]).range([0,1]),lj.forEach(a=>e[a]?s[a](e[a]()):0),s)}function l2(e,t){const n=kU[cj(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function cj(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const fj={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"},dj={accent:GU,category10:WU,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:HU,observable10:VU,paired:YU,pastel1:XU,pastel2:KU,set1:JU,set2:QU,set3:ZU,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"};function nM(e){if(Z(e))return e;const t=e.length/6|0,n=new Array(t);for(let i=0;i<t;)n[i]="#"+e.slice(i*6,++i*6);return n}function iM(e,t){for(const n in e)c2(n,t(e[n]))}const XS={};iM(dj,nM);iM(fj,e=>Ug(nM(e)));function c2(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(XS[e]=t,this):XS[e]}const th="symbol",hj="discrete",pj="gradient",gj=e=>Z(e)?e.map(t=>String(t)):String(e),mj=(e,t)=>e[1]-t[1],yj=(e,t)=>t[1]-e[1];function f2(e,t,n){let i;return sa(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),n!=null&&(t=Math.min(t,Math.floor(pg(e.domain())/n||1)+1))),me(t)&&(i=t.step,t=t.interval),Ke(t)&&(t=e.type===aa?ul(t):e.type==ua?ll(t):L("Only time and utc scales accept interval strings."),i&&(t=t.every(i))),t}function rM(e,t,n){let i=e.range(),r=i[0],o=$e(i),s=mj;if(r>o&&(i=o,o=r,r=i,s=yj),r=Math.floor(r),o=Math.ceil(o),t=t.map(a=>[a,e(a)]).filter(a=>r<=a[1]&&a[1]<=o).sort(s).map(a=>a[0]),n>0&&t.length>1){const a=[t[0],$e(t)];for(;t.length>n&&t.length>=3;)t=t.filter((u,l)=>!(l%2));t.length<3&&(t=a)}return t}function d2(e,t){return e.bins?rM(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function oM(e,t,n,i,r,o){const s=t.type;let a=gj;if(s===aa||r===aa)a=e.timeFormat(i);else if(s===ua||r===ua)a=e.utcFormat(i);else if(KT(s)){const u=e.formatFloat(i);if(o||t.bins)a=u;else{const l=sM(t,n,!1);a=c=>l(c)?u(c):""}}else if(t.tickFormat){const u=t.domain();a=e.formatSpan(u[0],u[u.length-1],n,i)}else i&&(a=e.format(i));return a}function sM(e,t,n){const i=d2(e,t),r=e.base(),o=Math.log(r),s=Math.max(1,r*t/i.length),a=u=>{let l=u/Math.pow(r,Math.round(Math.log(u)/o));return l*r<r-.5&&(l*=r),l<=s};return n?i.filter(a):a}const Oy={[Ou]:"quantiles",[zg]:"thresholds",[Bg]:"domain"},aM={[Ou]:"quantiles",[zg]:"domain"};function uM(e,t){return e.bins?vj(e.bins):e.type===fo?sM(e,t,!0):Oy[e.type]?xj(e[Oy[e.type]]()):d2(e,t)}function bj(e,t,n){const i=t[aM[t.type]](),r=i.length;let o=r>1?i[1]-i[0]:i[0],s;for(s=1;s<r;++s)o=Math.min(o,i[s]-i[s-1]);return e.formatSpan(0,o,3*10,n)}function xj(e){const t=[-1/0].concat(e);return t.max=1/0,t}function vj(e){const t=e.slice(0,-1);return t.max=$e(e),t}const Ej=e=>Oy[e.type]||e.bins;function lM(e,t,n,i,r,o,s){const a=aM[t.type]&&o!==aa&&o!==ua?bj(e,t,r):oM(e,t,n,r,o,s);return i===th&&Ej(t)?wj(a):i===hj?Aj(a):Sj(a)}const wj=e=>(t,n,i)=>{const r=KS(i[n+1],KS(i.max,1/0)),o=JS(t,e),s=JS(r,e);return o&&s?o+" – "+s:s?"< "+s:"≥ "+o},KS=(e,t)=>e??t,Aj=e=>(t,n)=>n?e(t):null,Sj=e=>t=>e(t),JS=(e,t)=>Number.isFinite(e)?t(e):null;function Cj(e){const t=e.domain(),n=t.length-1;let i=+t[0],r=+$e(t),o=r-i;if(e.type===Bg){const s=n?o/n:.1;i-=s,r+=s,o=r-i}return s=>(s-i)/o}function $j(e,t,n,i){const r=i||t.type;return Ke(n)&&uj(r)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),!n&&r===aa?e.timeFormat("%A, %d %B %Y, %X"):!n&&r===ua?e.utcFormat("%A, %d %B %Y, %X UTC"):lM(e,t,5,null,n,i,!0)}function cM(e,t,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=$j(e,t,n.format,n.formatType);if(My(t.type)){const o=uM(t).slice(1).map(r),s=o.length;return`${s} boundar${s===1?"y":"ies"}: ${o.join(", ")}`}else if(Ru(t.type)){const o=t.domain(),s=o.length,a=s>i?o.slice(0,i-2).map(r).join(", ")+", ending with "+o.slice(-1).map(r):o.map(r).join(", ");return`${s} value${s===1?"":"s"}: ${a}`}else{const o=t.domain();return`values from ${r(o[0])} to ${r($e(o))}`}}let fM=0;function _j(){fM=0}const Uh="p_";function h2(e){return e&&e.gradient}function dM(e,t,n){const i=e.gradient;let r=e.id,o=i==="radial"?Uh:"";return r||(r=e.id="gradient_"+fM++,i==="radial"?(e.x1=tr(e.x1,.5),e.y1=tr(e.y1,.5),e.r1=tr(e.r1,0),e.x2=tr(e.x2,.5),e.y2=tr(e.y2,.5),e.r2=tr(e.r2,.5),o=Uh):(e.x1=tr(e.x1,0),e.y1=tr(e.y1,0),e.x2=tr(e.x2,1),e.y2=tr(e.y2,0))),t[r]=e,"url("+(n||"")+"#"+o+r+")"}function tr(e,t){return e??t}function hM(e,t){var n=[],i;return i={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:n,stop:function(r,o){return n.push({offset:r,color:o}),i}}}const QS={basis:{curve:QB},"basis-closed":{curve:ZB},"basis-open":{curve:eU},bundle:{curve:tU,tension:"beta",value:.85},cardinal:{curve:nU,tension:"tension",value:0},"cardinal-open":{curve:rU,tension:"tension",value:0},"cardinal-closed":{curve:iU,tension:"tension",value:0},"catmull-rom":{curve:oU,tension:"alpha",value:.5},"catmull-rom-closed":{curve:sU,tension:"alpha",value:.5},"catmull-rom-open":{curve:aU,tension:"alpha",value:.5},linear:{curve:Bv},"linear-closed":{curve:uU},monotone:{horizontal:cU,vertical:lU},natural:{curve:fU},step:{curve:dU},"step-after":{curve:pU},"step-before":{curve:hU}};function p2(e,t,n){var i=le(QS,e)&&QS[e],r=null;return i&&(r=i.curve||i[t||"vertical"],i.tension&&n!=null&&(r=r[i.tension](n))),r}const Fj={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},kj=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Dj=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Tj=/^((\s+,?\s*)|(,\s*))/,Mj=/^[01]/;function Nu(e){const t=[];return(e.match(kj)||[]).forEach(i=>{let r=i[0];const o=r.toLowerCase(),s=Fj[o],a=Oj(o,s,i.slice(1).trim()),u=a.length;if(u<s||u&&u%s!==0)throw Error("Invalid SVG path, incorrect parameter count");if(t.push([r,...a.slice(0,s)]),u!==s){o==="m"&&(r=r==="M"?"L":"l");for(let l=s;l<u;l+=s)t.push([r,...a.slice(l,l+s)])}}),t}function Oj(e,t,n){const i=[];for(let r=0;t&&r<n.length;)for(let o=0;o<t;++o){const s=e==="a"&&(o===3||o===4)?Mj:Dj,a=n.slice(r).match(s);if(a===null)throw Error("Invalid SVG path, incorrect parameter type");r+=a[0].length,i.push(+a[0]);const u=n.slice(r).match(Tj);u!==null&&(r+=u[0].length)}return i}const Qo=Math.PI/180,Rj=1e-14,Us=Math.PI/2,ar=Math.PI*2,Ka=Math.sqrt(3)/2;var Pm={},Im={},pM=[].join;function Nj(e,t,n,i,r,o,s,a,u){const l=pM.call(arguments);if(Pm[l])return Pm[l];const c=s*Qo,f=Math.sin(c),d=Math.cos(c);n=Math.abs(n),i=Math.abs(i);const h=d*(a-e)*.5+f*(u-t)*.5,p=d*(u-t)*.5-f*(a-e)*.5;let g=h*h/(n*n)+p*p/(i*i);g>1&&(g=Math.sqrt(g),n*=g,i*=g);const m=d/n,y=f/n,b=-f/i,x=d/i,v=m*a+y*u,w=b*a+x*u,A=m*e+y*t,E=b*e+x*t;let C=1/((A-v)*(A-v)+(E-w)*(E-w))-.25;C<0&&(C=0);let _=Math.sqrt(C);o==r&&(_=-_);const k=.5*(v+A)-_*(E-w),N=.5*(w+E)+_*(A-v),T=Math.atan2(w-N,v-k);let $=Math.atan2(E-N,A-k)-T;$<0&&o===1?$+=ar:$>0&&o===0&&($-=ar);const D=Math.ceil(Math.abs($/(Us+.001))),P=[];for(let z=0;z<D;++z){const I=T+z*$/D,V=T+(z+1)*$/D;P[z]=[k,N,I,V,n,i,f,d]}return Pm[l]=P}function Lj(e){const t=pM.call(e);if(Im[t])return Im[t];var n=e[0],i=e[1],r=e[2],o=e[3],s=e[4],a=e[5],u=e[6],l=e[7];const c=l*s,f=-u*a,d=u*s,h=l*a,p=Math.cos(r),g=Math.sin(r),m=Math.cos(o),y=Math.sin(o),b=.5*(o-r),x=Math.sin(b*.5),v=8/3*x*x/Math.sin(b),w=n+p-v*g,A=i+g+v*p,E=n+m,S=i+y,C=E+v*y,_=S-v*m;return Im[t]=[c*w+f*A,d*w+h*A,c*C+f*_,d*C+h*_,c*E+f*S,d*E+h*S]}const oi=["l",0,0,0,0,0,0,0];function Pj(e,t,n){const i=oi[0]=e[0];if(i==="a"||i==="A")oi[1]=t*e[1],oi[2]=n*e[2],oi[3]=e[3],oi[4]=e[4],oi[5]=e[5],oi[6]=t*e[6],oi[7]=n*e[7];else if(i==="h"||i==="H")oi[1]=t*e[1];else if(i==="v"||i==="V")oi[1]=n*e[1];else for(var r=1,o=e.length;r<o;++r)oi[r]=(r%2==1?t:n)*e[r];return oi}function Vc(e,t,n,i,r,o){var s,a=null,u=0,l=0,c=0,f=0,d,h,p,g,m=0,y=0;n==null&&(n=0),i==null&&(i=0),r==null&&(r=1),o==null&&(o=r),e.beginPath&&e.beginPath();for(var b=0,x=t.length;b<x;++b){switch(s=t[b],(r!==1||o!==1)&&(s=Pj(s,r,o)),s[0]){case"l":u+=s[1],l+=s[2],e.lineTo(u+n,l+i);break;case"L":u=s[1],l=s[2],e.lineTo(u+n,l+i);break;case"h":u+=s[1],e.lineTo(u+n,l+i);break;case"H":u=s[1],e.lineTo(u+n,l+i);break;case"v":l+=s[1],e.lineTo(u+n,l+i);break;case"V":l=s[1],e.lineTo(u+n,l+i);break;case"m":u+=s[1],l+=s[2],m=u,y=l,e.moveTo(u+n,l+i);break;case"M":u=s[1],l=s[2],m=u,y=l,e.moveTo(u+n,l+i);break;case"c":d=u+s[5],h=l+s[6],c=u+s[3],f=l+s[4],e.bezierCurveTo(u+s[1]+n,l+s[2]+i,c+n,f+i,d+n,h+i),u=d,l=h;break;case"C":u=s[5],l=s[6],c=s[3],f=s[4],e.bezierCurveTo(s[1]+n,s[2]+i,c+n,f+i,u+n,l+i);break;case"s":d=u+s[3],h=l+s[4],c=2*u-c,f=2*l-f,e.bezierCurveTo(c+n,f+i,u+s[1]+n,l+s[2]+i,d+n,h+i),c=u+s[1],f=l+s[2],u=d,l=h;break;case"S":d=s[3],h=s[4],c=2*u-c,f=2*l-f,e.bezierCurveTo(c+n,f+i,s[1]+n,s[2]+i,d+n,h+i),u=d,l=h,c=s[1],f=s[2];break;case"q":d=u+s[3],h=l+s[4],c=u+s[1],f=l+s[2],e.quadraticCurveTo(c+n,f+i,d+n,h+i),u=d,l=h;break;case"Q":d=s[3],h=s[4],e.quadraticCurveTo(s[1]+n,s[2]+i,d+n,h+i),u=d,l=h,c=s[1],f=s[2];break;case"t":d=u+s[1],h=l+s[2],a[0].match(/[QqTt]/)===null?(c=u,f=l):a[0]==="t"?(c=2*u-p,f=2*l-g):a[0]==="q"&&(c=2*u-c,f=2*l-f),p=c,g=f,e.quadraticCurveTo(c+n,f+i,d+n,h+i),u=d,l=h,c=u+s[1],f=l+s[2];break;case"T":d=s[1],h=s[2],c=2*u-c,f=2*l-f,e.quadraticCurveTo(c+n,f+i,d+n,h+i),u=d,l=h;break;case"a":ZS(e,u+n,l+i,[s[1],s[2],s[3],s[4],s[5],s[6]+u+n,s[7]+l+i]),u+=s[6],l+=s[7];break;case"A":ZS(e,u+n,l+i,[s[1],s[2],s[3],s[4],s[5],s[6]+n,s[7]+i]),u=s[6],l=s[7];break;case"z":case"Z":u=m,l=y,e.closePath();break}a=s}}function ZS(e,t,n,i){const r=Nj(i[5],i[6],i[0],i[1],i[3],i[4],i[2],t,n);for(let o=0;o<r.length;++o){const s=Lj(r[o]);e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5])}}const eC=.5773502691896257,tC={circle:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(n,0),e.arc(0,0,n,0,ar)}},cross:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/2.5;e.moveTo(-n,-i),e.lineTo(-n,i),e.lineTo(-i,i),e.lineTo(-i,n),e.lineTo(i,n),e.lineTo(i,i),e.lineTo(n,i),e.lineTo(n,-i),e.lineTo(i,-i),e.lineTo(i,-n),e.lineTo(-i,-n),e.lineTo(-i,-i),e.closePath()}},diamond:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.closePath()}},square:{draw:function(e,t){var n=Math.sqrt(t),i=-n/2;e.rect(i,i,n,n)}},arrow:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/7,r=n/2.5,o=n/8;e.moveTo(-i,n),e.lineTo(i,n),e.lineTo(i,-o),e.lineTo(r,-o),e.lineTo(0,-n),e.lineTo(-r,-o),e.lineTo(-i,-o),e.closePath()}},wedge:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n,r=i-n*eC,o=n/4;e.moveTo(0,-i-r),e.lineTo(-o,i-r),e.lineTo(o,i-r),e.closePath()}},triangle:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n,r=i-n*eC;e.moveTo(0,-i-r),e.lineTo(-n,i-r),e.lineTo(n,i-r),e.closePath()}},"triangle-up":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(0,-i),e.lineTo(-n,i),e.lineTo(n,i),e.closePath()}},"triangle-down":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(0,i),e.lineTo(-n,-i),e.lineTo(n,-i),e.closePath()}},"triangle-right":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(i,0),e.lineTo(-i,-n),e.lineTo(-i,n),e.closePath()}},"triangle-left":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Ka*n;e.moveTo(-i,0),e.lineTo(i,-n),e.lineTo(i,n),e.closePath()}},stroke:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(n,0)}}};function gM(e){return le(tC,e)?tC[e]:Ij(e)}var zm={};function Ij(e){if(!le(zm,e)){const t=Nu(e);zm[e]={draw:function(n,i){Vc(n,t,0,0,Math.sqrt(i)/2)}}}return zm[e]}const Fo=.448084975506;function zj(e){return e.x}function Bj(e){return e.y}function Uj(e){return e.width}function jj(e){return e.height}function Ir(e){return typeof e=="function"?e:()=>+e}function vd(e,t,n){return Math.max(t,Math.min(e,n))}function mM(){var e=zj,t=Bj,n=Uj,i=jj,r=Ir(0),o=r,s=r,a=r,u=null;function l(c,f,d){var h,p=f??+e.call(this,c),g=d??+t.call(this,c),m=+n.call(this,c),y=+i.call(this,c),b=Math.min(m,y)/2,x=vd(+r.call(this,c),0,b),v=vd(+o.call(this,c),0,b),w=vd(+s.call(this,c),0,b),A=vd(+a.call(this,c),0,b);if(u||(u=h=Dx()),x<=0&&v<=0&&w<=0&&A<=0)u.rect(p,g,m,y);else{var E=p+m,S=g+y;u.moveTo(p+x,g),u.lineTo(E-v,g),u.bezierCurveTo(E-Fo*v,g,E,g+Fo*v,E,g+v),u.lineTo(E,S-A),u.bezierCurveTo(E,S-Fo*A,E-Fo*A,S,E-A,S),u.lineTo(p+w,S),u.bezierCurveTo(p+Fo*w,S,p,S-Fo*w,p,S-w),u.lineTo(p,g+x),u.bezierCurveTo(p,g+Fo*x,p+Fo*x,g,p+x,g),u.closePath()}if(h)return u=null,h+""||null}return l.x=function(c){return arguments.length?(e=Ir(c),l):e},l.y=function(c){return arguments.length?(t=Ir(c),l):t},l.width=function(c){return arguments.length?(n=Ir(c),l):n},l.height=function(c){return arguments.length?(i=Ir(c),l):i},l.cornerRadius=function(c,f,d,h){return arguments.length?(r=Ir(c),o=f!=null?Ir(f):r,a=d!=null?Ir(d):r,s=h!=null?Ir(h):o,l):r},l.context=function(c){return arguments.length?(u=c??null,l):u},l}function yM(){var e,t,n,i,r=null,o,s,a,u;function l(f,d,h){const p=h/2;if(o){var g=a-d,m=f-s;if(g||m){var y=Math.hypot(g,m),b=(g/=y)*u,x=(m/=y)*u,v=Math.atan2(m,g);r.moveTo(s-b,a-x),r.lineTo(f-g*p,d-m*p),r.arc(f,d,p,v-Math.PI,v),r.lineTo(s+b,a+x),r.arc(s,a,u,v,v+Math.PI)}else r.arc(f,d,p,0,ar);r.closePath()}else o=1;s=f,a=d,u=p}function c(f){var d,h=f.length,p,g=!1,m;for(r==null&&(r=m=Dx()),d=0;d<=h;++d)!(d<h&&i(p=f[d],d,f))===g&&(g=!g)&&(o=0),g&&l(+e(p,d,f),+t(p,d,f),+n(p,d,f));if(m)return r=null,m+""||null}return c.x=function(f){return arguments.length?(e=f,c):e},c.y=function(f){return arguments.length?(t=f,c):t},c.size=function(f){return arguments.length?(n=f,c):n},c.defined=function(f){return arguments.length?(i=f,c):i},c.context=function(f){return arguments.length?(f==null?r=null:r=f,c):r},c}function Ff(e,t){return e??t}const kf=e=>e.x||0,Df=e=>e.y||0,qj=e=>e.width||0,Wj=e=>e.height||0,Gj=e=>(e.x||0)+(e.width||0),Hj=e=>(e.y||0)+(e.height||0),Vj=e=>e.startAngle||0,Yj=e=>e.endAngle||0,Xj=e=>e.padAngle||0,Kj=e=>e.innerRadius||0,Jj=e=>e.outerRadius||0,Qj=e=>e.cornerRadius||0,Zj=e=>Ff(e.cornerRadiusTopLeft,e.cornerRadius)||0,eq=e=>Ff(e.cornerRadiusTopRight,e.cornerRadius)||0,tq=e=>Ff(e.cornerRadiusBottomRight,e.cornerRadius)||0,nq=e=>Ff(e.cornerRadiusBottomLeft,e.cornerRadius)||0,iq=e=>Ff(e.size,64),rq=e=>e.size||1,jg=e=>e.defined!==!1,oq=e=>gM(e.shape||"circle"),sq=XB().startAngle(Vj).endAngle(Yj).padAngle(Xj).innerRadius(Kj).outerRadius(Jj).cornerRadius(Qj),aq=lT().x(kf).y1(Df).y0(Hj).defined(jg),uq=lT().y(Df).x1(kf).x0(Gj).defined(jg),lq=uT().x(kf).y(Df).defined(jg),cq=mM().x(kf).y(Df).width(qj).height(Wj).cornerRadius(Zj,eq,tq,nq),fq=JB().type(oq).size(iq),dq=yM().x(kf).y(Df).defined(jg).size(rq);function g2(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function hq(e,t){return sq.context(e)(t)}function pq(e,t){const n=t[0],i=n.interpolate||"linear";return(n.orient==="horizontal"?uq:aq).curve(p2(i,n.orient,n.tension)).context(e)(t)}function gq(e,t){const n=t[0],i=n.interpolate||"linear";return lq.curve(p2(i,n.orient,n.tension)).context(e)(t)}function dl(e,t,n,i){return cq.context(e)(t,n,i)}function mq(e,t){return(t.mark.shape||t.shape).context(e)(t)}function yq(e,t){return fq.context(e)(t)}function bq(e,t){return dq.context(e)(t)}var bM=1;function xM(){bM=1}function m2(e,t,n){var i=t.clip,r=e._defs,o=t.clip_id||(t.clip_id="clip"+bM++),s=r.clipping[o]||(r.clipping[o]={id:o});return be(i)?s.path=i(null):g2(n)?s.path=dl(null,n,0,0):(s.width=n.width||0,s.height=n.height||0),"url(#"+o+")"}function gt(e){this.clear(),e&&this.union(e)}gt.prototype={clone(){return new gt(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(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,i){return n<e?(this.x2=e,this.x1=n):(this.x1=e,this.x2=n),i<t?(this.y2=t,this.y1=i):(this.y1=t,this.y2=i),this},add(e,t){return e<this.x1&&(this.x1=e),t<this.y1&&(this.y1=t),e>this.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,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(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const i=this.rotatedPoints(e,t,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(e,t,n){var{x1:i,y1:r,x2:o,y2:s}=this,a=Math.cos(e),u=Math.sin(e),l=t-t*a+n*u,c=n-t*u-n*a;return[a*i-u*r+l,u*i+a*r+c,a*i-u*s+l,u*i+a*s+c,a*o-u*r+l,u*o+a*r+c,a*o-u*s+l,u*o+a*s+c]},union(e){return e.x1<this.x1&&(this.x1=e.x1),e.y1<this.y1&&(this.y1=e.y1),e.x2>this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2<this.x2&&(this.x2=e.x2),e.y2<this.y2&&(this.y2=e.y2),this},encloses(e){return e&&this.x1<=e.x1&&this.x2>=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2<e.x1||this.x1>e.x2||this.y2<e.y1||this.y1>e.y2)},contains(e,t){return!(e<this.x1||e>this.x2||t<this.y1||t>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}};function qg(e){this.mark=e,this.bounds=this.bounds||new gt}function Wg(e){qg.call(this,e),this.items=this.items||[]}G(Wg,qg);class vM{constructor(t){this._pending=0,this._loader=t||vg()}pending(){return this._pending}sanitizeURL(t){const n=this;return nC(n),n._loader.sanitize(t,{context:"href"}).then(i=>(Il(n),i)).catch(()=>(Il(n),null))}loadImage(t){const n=this,i=gU();return nC(n),n._loader.sanitize(t,{context:"image"}).then(r=>{const o=r.href;if(!o||!i)throw{url:o};const s=new i,a=le(r,"crossOrigin")?r.crossOrigin:"anonymous";return a!=null&&(s.crossOrigin=a),s.onload=()=>Il(n),s.onerror=()=>Il(n),s.src=o,s}).catch(r=>(Il(n),{complete:!1,width:0,height:0,src:r&&r.url||""}))}ready(){const t=this;return new Promise(n=>{function i(r){t.pending()?setTimeout(()=>{i(!0)},10):n(r)}i(!1)})}}function nC(e){e._pending+=1}function Il(e){e._pending-=1}function bo(e,t,n){if(t.stroke&&t.opacity!==0&&t.strokeOpacity!==0){const i=t.strokeWidth!=null?+t.strokeWidth:1;e.expand(i+(n?xq(t,i):0))}return e}function xq(e,t){return e.strokeJoin&&e.strokeJoin!=="miter"?0:t}const vq=ar-1e-8;let Gg,nh,ih,Hs,Ry,rh,Ny,Ly;const Lo=(e,t)=>Gg.add(e,t),oh=(e,t)=>Lo(nh=e,ih=t),iC=e=>Lo(e,Gg.y1),rC=e=>Lo(Gg.x1,e),js=(e,t)=>Ry*e+Ny*t,qs=(e,t)=>rh*e+Ly*t,Bm=(e,t)=>Lo(js(e,t),qs(e,t)),Um=(e,t)=>oh(js(e,t),qs(e,t));function Tf(e,t){return Gg=e,t?(Hs=t*Qo,Ry=Ly=Math.cos(Hs),rh=Math.sin(Hs),Ny=-rh):(Ry=Ly=1,Hs=rh=Ny=0),Eq}const Eq={beginPath(){},closePath(){},moveTo:Um,lineTo:Um,rect(e,t,n,i){Hs?(Bm(e+n,t),Bm(e+n,t+i),Bm(e,t+i),Um(e,t)):(Lo(e+n,t+i),oh(e,t))},quadraticCurveTo(e,t,n,i){const r=js(e,t),o=qs(e,t),s=js(n,i),a=qs(n,i);oC(nh,r,s,iC),oC(ih,o,a,rC),oh(s,a)},bezierCurveTo(e,t,n,i,r,o){const s=js(e,t),a=qs(e,t),u=js(n,i),l=qs(n,i),c=js(r,o),f=qs(r,o);sC(nh,s,u,c,iC),sC(ih,a,l,f,rC),oh(c,f)},arc(e,t,n,i,r,o){if(i+=Hs,r+=Hs,nh=n*Math.cos(r)+e,ih=n*Math.sin(r)+t,Math.abs(r-i)>vq)Lo(e-n,t-n),Lo(e+n,t+n);else{const s=l=>Lo(n*Math.cos(l)+e,n*Math.sin(l)+t);let a,u;if(s(i),s(r),r!==i)if(i=i%ar,i<0&&(i+=ar),r=r%ar,r<0&&(r+=ar),r<i&&(o=!o,a=i,i=r,r=a),o)for(r-=ar,a=i-i%Us,u=0;u<4&&a>r;++u,a-=Us)s(a);else for(a=i-i%Us+Us,u=0;u<4&&a<r;++u,a=a+Us)s(a)}}};function oC(e,t,n,i){const r=(e-t)/(e+n-2*t);0<r&&r<1&&i(e+(t-e)*r)}function sC(e,t,n,i,r){const o=i-e+3*t-3*n,s=e+n-2*t,a=e-t;let u=0,l=0,c;Math.abs(o)>Rj?(c=s*s+a*o,c>=0&&(c=Math.sqrt(c),u=(-s+c)/o,l=(-s-c)/o)):u=.5*a/s,0<u&&u<1&&r(aC(u,e,t,n,i)),0<l&&l<1&&r(aC(l,e,t,n,i))}function aC(e,t,n,i,r){const o=1-e,s=o*o,a=e*e;return s*o*t+3*s*e*n+3*o*a*i+a*e*r}var Yo=(Yo=Vo(1,1))?Yo.getContext("2d"):null;const Py=new gt;function y2(e){return function(t,n){if(!Yo)return!0;e(Yo,t),Py.clear().union(t.bounds).intersect(n).round();const{x1:i,y1:r,x2:o,y2:s}=Py;for(let a=r;a<=s;++a)for(let u=i;u<=o;++u)if(Yo.isPointInPath(u,a))return!0;return!1}}function b2(e,t){return t.contains(e.x||0,e.y||0)}function EM(e,t){const n=e.x||0,i=e.y||0,r=e.width||0,o=e.height||0;return t.intersects(Py.set(n,i,n+r,i+o))}function wM(e,t){const n=e.x||0,i=e.y||0,r=e.x2!=null?e.x2:n,o=e.y2!=null?e.y2:i;return lu(t,n,i,r,o)}function lu(e,t,n,i,r){const{x1:o,y1:s,x2:a,y2:u}=e,l=i-t,c=r-n;let f=0,d=1,h,p,g,m;for(m=0;m<4;++m){if(m===0&&(h=-l,p=-(o-t)),m===1&&(h=l,p=a-t),m===2&&(h=-c,p=-(s-n)),m===3&&(h=c,p=u-n),Math.abs(h)<1e-10&&p<0)return!1;if(g=p/h,h<0){if(g>d)return!1;g>f&&(f=g)}else if(h>0){if(g<f)return!1;g<d&&(d=g)}}return!0}function Lu(e,t){e.globalCompositeOperation=t.blend||"source-over"}function Si(e,t){return e??t}function uC(e,t){const n=t.length;for(let i=0;i<n;++i)e.addColorStop(t[i].offset,t[i].color);return e}function wq(e,t,n){const i=n.width(),r=n.height();let o;if(t.gradient==="radial")o=e.createRadialGradient(n.x1+Si(t.x1,.5)*i,n.y1+Si(t.y1,.5)*r,Math.max(i,r)*Si(t.r1,0),n.x1+Si(t.x2,.5)*i,n.y1+Si(t.y2,.5)*r,Math.max(i,r)*Si(t.r2,.5));else{const s=Si(t.x1,0),a=Si(t.y1,0),u=Si(t.x2,1),l=Si(t.y2,0);if(s===u||a===l||i===r)o=e.createLinearGradient(n.x1+s*i,n.y1+a*r,n.x1+u*i,n.y1+l*r);else{const c=Vo(Math.ceil(i),Math.ceil(r)),f=c.getContext("2d");return f.scale(i,r),f.fillStyle=uC(f.createLinearGradient(s,a,u,l),t.stops),f.fillRect(0,0,i,r),e.createPattern(c,"no-repeat")}}return uC(o,t.stops)}function AM(e,t,n){return h2(n)?wq(e,n,t.bounds):n}function jh(e,t,n){return n*=t.fillOpacity==null?1:t.fillOpacity,n>0?(e.globalAlpha=n,e.fillStyle=AM(e,t,t.fill),!0):!1}var Aq=[];function Pu(e,t,n){var i=(i=t.strokeWidth)!=null?i:1;return i<=0?!1:(n*=t.strokeOpacity==null?1:t.strokeOpacity,n>0?(e.globalAlpha=n,e.strokeStyle=AM(e,t,t.stroke),e.lineWidth=i,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||Aq),e.lineDashOffset=t.strokeDashOffset||0),!0):!1)}function Sq(e,t){return e.zindex-t.zindex||e.index-t.index}function x2(e){if(!e.zdirty)return e.zitems;var t=e.items,n=[],i,r,o;for(r=0,o=t.length;r<o;++r)i=t[r],i.index=r,i.zindex&&n.push(i);return e.zdirty=!1,e.zitems=n.sort(Sq)}function zi(e,t){var n=e.items,i,r;if(!n||!n.length)return;const o=x2(e);if(o&&o.length){for(i=0,r=n.length;i<r;++i)n[i].zindex||t(n[i]);n=o}for(i=0,r=n.length;i<r;++i)t(n[i])}function qh(e,t){var n=e.items,i,r;if(!n||!n.length)return null;const o=x2(e);for(o&&o.length&&(n=o),r=n.length;--r>=0;)if(i=t(n[r]))return i;if(n===o){for(n=e.items,r=n.length;--r>=0;)if(!n[r].zindex&&(i=t(n[r])))return i}return null}function v2(e){return function(t,n,i){zi(n,r=>{(!i||i.intersects(r.bounds))&&SM(e,t,r,r)})}}function Cq(e){return function(t,n,i){n.items.length&&(!i||i.intersects(n.bounds))&&SM(e,t,n.items[0],n.items)}}function SM(e,t,n,i){var r=n.opacity==null?1:n.opacity;r!==0&&(e(t,i)||(Lu(t,n),n.fill&&jh(t,n,r)&&t.fill(),n.stroke&&Pu(t,n,r)&&t.stroke()))}function Hg(e){return e=e||Pi,function(t,n,i,r,o,s){return i*=t.pixelRatio,r*=t.pixelRatio,qh(n,a=>{const u=a.bounds;if(!(u&&!u.contains(o,s)||!u)&&e(t,a,i,r,o,s))return a})}}function Mf(e,t){return function(n,i,r,o){var s=Array.isArray(i)?i[0]:i,a=t??s.fill,u=s.stroke&&n.isPointInStroke,l,c;return u&&(l=s.strokeWidth,c=s.strokeCap,n.lineWidth=l??1,n.lineCap=c??"butt"),e(n,i)?!1:a&&n.isPointInPath(r,o)||u&&n.isPointInStroke(r,o)}}function E2(e){return Hg(Mf(e))}function Js(e,t){return"translate("+e+","+t+")"}function w2(e){return"rotate("+e+")"}function $q(e,t){return"scale("+e+","+t+")"}function CM(e){return Js(e.x||0,e.y||0)}function _q(e){return Js(e.x||0,e.y||0)+(e.angle?" "+w2(e.angle):"")}function Fq(e){return Js(e.x||0,e.y||0)+(e.angle?" "+w2(e.angle):"")+(e.scaleX||e.scaleY?" "+$q(e.scaleX||1,e.scaleY||1):"")}function A2(e,t,n){function i(s,a){s("transform",_q(a)),s("d",t(null,a))}function r(s,a){return t(Tf(s,a.angle),a),bo(s,a).translate(a.x||0,a.y||0)}function o(s,a){var u=a.x||0,l=a.y||0,c=a.angle||0;s.translate(u,l),c&&s.rotate(c*=Qo),s.beginPath(),t(s,a),c&&s.rotate(-c),s.translate(-u,-l)}return{type:e,tag:"path",nested:!1,attr:i,bound:r,draw:v2(o),pick:E2(o),isect:n||y2(o)}}var kq=A2("arc",hq);function Dq(e,t){for(var n=e[0].orient==="horizontal"?t[1]:t[0],i=e[0].orient==="horizontal"?"y":"x",r=e.length,o=1/0,s,a;--r>=0;)e[r].defined!==!1&&(a=Math.abs(e[r][i]-n),a<o&&(o=a,s=e[r]));return s}function Tq(e,t){for(var n=Math.pow(e[0].strokeWidth||1,2),i=e.length,r,o,s;--i>=0;)if(e[i].defined!==!1&&(r=e[i].x-t[0],o=e[i].y-t[1],s=r*r+o*o,s<n))return e[i];return null}function Mq(e,t){for(var n=e.length,i,r,o;--n>=0;)if(e[n].defined!==!1&&(i=e[n].x-t[0],r=e[n].y-t[1],o=i*i+r*r,i=e[n].size||1,o<i*i))return e[n];return null}function S2(e,t,n){function i(u,l){var c=l.mark.items;c.length&&u("d",t(null,c))}function r(u,l){var c=l.items;return c.length===0?u:(t(Tf(u),c),bo(u,c[0]))}function o(u,l){u.beginPath(),t(u,l)}const s=Mf(o);function a(u,l,c,f,d,h){var p=l.items,g=l.bounds;return!p||!p.length||g&&!g.contains(d,h)?null:(c*=u.pixelRatio,f*=u.pixelRatio,s(u,p,c,f)?p[0]:null)}return{type:e,tag:"path",nested:!0,attr:i,bound:r,draw:Cq(o),pick:a,isect:b2,tip:n}}var Oq=S2("area",pq,Dq);function Rq(e,t){var n=t.clip;e.save(),be(n)?(e.beginPath(),n(e),e.clip()):$M(e,t.group)}function $M(e,t){e.beginPath(),g2(t)?dl(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function _M(e){const t=Si(e.strokeWidth,1);return e.strokeOffset!=null?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function Nq(e,t){e("transform",CM(t))}function FM(e,t){const n=_M(t);e("d",dl(null,t,n,n))}function Lq(e,t){e("class","background"),e("aria-hidden",!0),FM(e,t)}function Pq(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?FM(e,t):e("d","")}function Iq(e,t,n){const i=t.clip?m2(n,t,t):null;e("clip-path",i)}function zq(e,t){if(!t.clip&&t.items){const n=t.items,i=n.length;for(let r=0;r<i;++r)e.union(n[r].bounds)}return(t.clip||t.width||t.height)&&!t.noBound&&e.add(0,0).add(t.width||0,t.height||0),bo(e,t),e.translate(t.x||0,t.y||0)}function Yc(e,t,n,i){const r=_M(t);e.beginPath(),dl(e,t,(n||0)+r,(i||0)+r)}const Bq=Mf(Yc),Uq=Mf(Yc,!1),jq=Mf(Yc,!0);function qq(e,t,n,i){zi(t,r=>{const o=r.x||0,s=r.y||0,a=r.strokeForeground,u=r.opacity==null?1:r.opacity;(r.stroke||r.fill)&&u&&(Yc(e,r,o,s),Lu(e,r),r.fill&&jh(e,r,u)&&e.fill(),r.stroke&&!a&&Pu(e,r,u)&&e.stroke()),e.save(),e.translate(o,s),r.clip&&$M(e,r),n&&n.translate(-o,-s),zi(r,l=>{(l.marktype==="group"||i==null||i.includes(l.marktype))&&this.draw(e,l,n,i)}),n&&n.translate(o,s),e.restore(),a&&r.stroke&&u&&(Yc(e,r,o,s),Lu(e,r),Pu(e,r,u)&&e.stroke())})}function Wq(e,t,n,i,r,o){if(t.bounds&&!t.bounds.contains(r,o)||!t.items)return null;const s=n*e.pixelRatio,a=i*e.pixelRatio;return qh(t,u=>{let l,c,f;const d=u.bounds;if(d&&!d.contains(r,o))return;c=u.x||0,f=u.y||0;const h=c+(u.width||0),p=f+(u.height||0),g=u.clip;if(g&&(r<c||r>h||o<f||o>p))return;if(e.save(),e.translate(c,f),c=r-c,f=o-f,g&&g2(u)&&!jq(e,u,s,a))return e.restore(),null;const m=u.strokeForeground,y=t.interactive!==!1;return y&&m&&u.stroke&&Uq(e,u,s,a)?(e.restore(),u):(l=qh(u,b=>Gq(b,c,f)?this.pick(b,n,i,c,f):null),!l&&y&&(u.fill||!m&&u.stroke)&&Bq(e,u,s,a)&&(l=u),e.restore(),l||null)})}function Gq(e,t,n){return(e.interactive!==!1||e.marktype==="group")&&e.bounds&&e.bounds.contains(t,n)}var Hq={type:"group",tag:"g",nested:!1,attr:Nq,bound:zq,draw:qq,pick:Wq,isect:EM,content:Iq,background:Lq,foreground:Pq},Xc={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function C2(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then(i=>{e.image=i,e.image.url=e.url})),n}function $2(e,t){return e.width!=null?e.width:!t||!t.width?0:e.aspect!==!1&&e.height?e.height*t.width/t.height:t.width}function _2(e,t){return e.height!=null?e.height:!t||!t.height?0:e.aspect!==!1&&e.width?e.width*t.height/t.width:t.height}function Vg(e,t){return e==="center"?t/2:e==="right"?t:0}function Yg(e,t){return e==="middle"?t/2:e==="bottom"?t:0}function Vq(e,t,n){const i=C2(t,n),r=$2(t,i),o=_2(t,i),s=(t.x||0)-Vg(t.align,r),a=(t.y||0)-Yg(t.baseline,o),u=!i.src&&i.toDataURL?i.toDataURL():i.src||"";e("href",u,Xc["xmlns:xlink"],"xlink:href"),e("transform",Js(s,a)),e("width",r),e("height",o),e("preserveAspectRatio",t.aspect===!1?"none":"xMidYMid")}function Yq(e,t){const n=t.image,i=$2(t,n),r=_2(t,n),o=(t.x||0)-Vg(t.align,i),s=(t.y||0)-Yg(t.baseline,r);return e.set(o,s,o+i,s+r)}function Xq(e,t,n){zi(t,i=>{if(n&&!n.intersects(i.bounds))return;const r=C2(i,this);let o=$2(i,r),s=_2(i,r);if(o===0||s===0)return;let a=(i.x||0)-Vg(i.align,o),u=(i.y||0)-Yg(i.baseline,s),l,c,f,d;i.aspect!==!1&&(c=r.width/r.height,f=i.width/i.height,c===c&&f===f&&c!==f&&(f<c?(d=o/c,u+=(s-d)/2,s=d):(d=s*c,a+=(o-d)/2,o=d))),(r.complete||r.toDataURL)&&(Lu(e,i),e.globalAlpha=(l=i.opacity)!=null?l:1,e.imageSmoothingEnabled=i.smooth!==!1,e.drawImage(r,a,u,o,s))})}var Kq={type:"image",tag:"image",nested:!1,attr:Vq,bound:Yq,draw:Xq,pick:Hg(),isect:Pi,get:C2,xOffset:Vg,yOffset:Yg},Jq=S2("line",gq,Tq);function Qq(e,t){var n=t.scaleX||1,i=t.scaleY||1;(n!==1||i!==1)&&e("vector-effect","non-scaling-stroke"),e("transform",Fq(t)),e("d",t.path)}function sh(e,t){var n=t.path;if(n==null)return!0;var i=t.x||0,r=t.y||0,o=t.scaleX||1,s=t.scaleY||1,a=(t.angle||0)*Qo,u=t.pathCache;(!u||u.path!==n)&&((t.pathCache=u=Nu(n)).path=n),a&&e.rotate&&e.translate?(e.translate(i,r),e.rotate(a),Vc(e,u,0,0,o,s),e.rotate(-a),e.translate(-i,-r)):Vc(e,u,i,r,o,s)}function Zq(e,t){return sh(Tf(e,t.angle),t)?e.set(0,0,0,0):bo(e,t,!0)}var eW={type:"path",tag:"path",nested:!1,attr:Qq,bound:Zq,draw:v2(sh),pick:E2(sh),isect:y2(sh)};function tW(e,t){e("d",dl(null,t))}function nW(e,t){var n,i;return bo(e.set(n=t.x||0,i=t.y||0,n+t.width||0,i+t.height||0),t)}function lC(e,t){e.beginPath(),dl(e,t)}var iW={type:"rect",tag:"path",nested:!1,attr:tW,bound:nW,draw:v2(lC),pick:E2(lC),isect:EM};function rW(e,t){e("transform",CM(t)),e("x2",t.x2!=null?t.x2-(t.x||0):0),e("y2",t.y2!=null?t.y2-(t.y||0):0)}function oW(e,t){var n,i;return bo(e.set(n=t.x||0,i=t.y||0,t.x2!=null?t.x2:n,t.y2!=null?t.y2:i),t)}function kM(e,t,n){var i,r,o,s;return t.stroke&&Pu(e,t,n)?(i=t.x||0,r=t.y||0,o=t.x2!=null?t.x2:i,s=t.y2!=null?t.y2:r,e.beginPath(),e.moveTo(i,r),e.lineTo(o,s),!0):!1}function sW(e,t,n){zi(t,i=>{if(!(n&&!n.intersects(i.bounds))){var r=i.opacity==null?1:i.opacity;r&&kM(e,i,r)&&(Lu(e,i),e.stroke())}})}function aW(e,t,n,i){return e.isPointInStroke?kM(e,t,1)&&e.isPointInStroke(n,i):!1}var uW={type:"rule",tag:"line",nested:!1,attr:rW,bound:oW,draw:sW,pick:Hg(aW),isect:wM},lW=A2("shape",mq),cW=A2("symbol",yq,b2);const cC=UP();var Jn={height:_r,measureWidth:F2,estimateWidth:Wh,width:Wh,canvas:DM};DM(!0);function DM(e){Jn.width=e&&Yo?F2:Wh}function Wh(e,t){return TM(es(e,t),_r(e))}function TM(e,t){return~~(.8*e.length*t)}function F2(e,t){return _r(e)<=0||!(t=es(e,t))?0:MM(t,Xg(e))}function MM(e,t){const n=`(${t}) ${e}`;let i=cC.get(n);return i===void 0&&(Yo.font=t,i=Yo.measureText(e).width,cC.set(n,i)),i}function _r(e){return e.fontSize!=null?+e.fontSize||0:11}function Zo(e){return e.lineHeight!=null?e.lineHeight:_r(e)+2}function fW(e){return Z(e)?e.length>1?e:e[0]:e}function Of(e){return fW(e.lineBreak&&e.text&&!Z(e.text)?e.text.split(e.lineBreak):e.text)}function k2(e){const t=Of(e);return(Z(t)?t.length-1:0)*Zo(e)}function es(e,t){const n=t==null?"":(t+"").trim();return e.limit>0&&n.length?hW(e,n):n}function dW(e){if(Jn.width===F2){const t=Xg(e);return n=>MM(n,t)}else if(Jn.width===Wh){const t=_r(e);return n=>TM(n,t)}else return t=>Jn.width(e,t)}function hW(e,t){var n=+e.limit,i=dW(e);if(i(t)<n)return t;var r=e.ellipsis||"…",o=e.dir==="rtl",s=0,a=t.length,u;if(n-=i(r),o){for(;s<a;)u=s+a>>>1,i(t.slice(u))>n?s=u+1:a=u;return r+t.slice(s)}else{for(;s<a;)u=1+(s+a>>>1),i(t.slice(0,u))<n?s=u:a=u-1;return t.slice(0,s)+r}}function Rf(e,t){var n=e.font;return(t&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function Xg(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+_r(e)+"px "+Rf(e,t)}function D2(e){var t=e.baseline,n=_r(e);return Math.round(t==="top"?.79*n:t==="middle"?.3*n:t==="bottom"?-.21*n:t==="line-top"?.29*n+.5*Zo(e):t==="line-bottom"?.29*n-.5*Zo(e):0)}const pW={left:"start",center:"middle",right:"end"},Sc=new gt;function Kg(e){var t=e.x||0,n=e.y||0,i=e.radius||0,r;return i&&(r=(e.theta||0)-Us,t+=i*Math.cos(r),n+=i*Math.sin(r)),Sc.x1=t,Sc.y1=n,Sc}function gW(e,t){var n=t.dx||0,i=(t.dy||0)+D2(t),r=Kg(t),o=r.x1,s=r.y1,a=t.angle||0,u;e("text-anchor",pW[t.align]||"start"),a?(u=Js(o,s)+" "+w2(a),(n||i)&&(u+=" "+Js(n,i))):u=Js(o+n,s+i),e("transform",u)}function T2(e,t,n){var i=Jn.height(t),r=t.align,o=Kg(t),s=o.x1,a=o.y1,u=t.dx||0,l=(t.dy||0)+D2(t)-Math.round(.8*i),c=Of(t),f;if(Z(c)?(i+=Zo(t)*(c.length-1),f=c.reduce((d,h)=>Math.max(d,Jn.width(t,h)),0)):f=Jn.width(t,c),r==="center"?u-=f/2:r==="right"&&(u-=f),e.set(u+=s,l+=a,u+f,l+i),t.angle&&!n)e.rotate(t.angle*Qo,s,a);else if(n===2)return e.rotatedPoints(t.angle*Qo,s,a);return e}function mW(e,t,n){zi(t,i=>{var r=i.opacity==null?1:i.opacity,o,s,a,u,l,c,f;if(!(n&&!n.intersects(i.bounds)||r===0||i.fontSize<=0||i.text==null||i.text.length===0)){if(e.font=Xg(i),e.textAlign=i.align||"left",o=Kg(i),s=o.x1,a=o.y1,i.angle&&(e.save(),e.translate(s,a),e.rotate(i.angle*Qo),s=a=0),s+=i.dx||0,a+=(i.dy||0)+D2(i),c=Of(i),Lu(e,i),Z(c))for(l=Zo(i),u=0;u<c.length;++u)f=es(i,c[u]),i.fill&&jh(e,i,r)&&e.fillText(f,s,a),i.stroke&&Pu(e,i,r)&&e.strokeText(f,s,a),a+=l;else f=es(i,c),i.fill&&jh(e,i,r)&&e.fillText(f,s,a),i.stroke&&Pu(e,i,r)&&e.strokeText(f,s,a);i.angle&&e.restore()}})}function yW(e,t,n,i,r,o){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var s=Kg(t),a=s.x1,u=s.y1,l=T2(Sc,t,1),c=-t.angle*Qo,f=Math.cos(c),d=Math.sin(c),h=f*r-d*o+(a-f*a+d*u),p=d*r+f*o+(u-d*a-f*u);return l.contains(h,p)}function bW(e,t){const n=T2(Sc,e,2);return lu(t,n[0],n[1],n[2],n[3])||lu(t,n[0],n[1],n[4],n[5])||lu(t,n[4],n[5],n[6],n[7])||lu(t,n[2],n[3],n[6],n[7])}var xW={type:"text",tag:"text",nested:!1,attr:gW,bound:T2,draw:mW,pick:Hg(yW),isect:bW},vW=S2("trail",bq,Mq),ni={arc:kq,area:Oq,group:Hq,image:Kq,line:Jq,path:eW,rect:iW,rule:uW,shape:lW,symbol:cW,text:xW,trail:vW};function Iy(e,t,n){var i=ni[e.mark.marktype],r=t||i.bound;return i.nested&&(e=e.mark),r(e.bounds||(e.bounds=new gt),e,n)}var fC={mark:null};function OM(e,t,n){var i=ni[e.marktype],r=i.bound,o=e.items,s=o&&o.length,a,u,l,c;if(i.nested)return s?l=o[0]:(fC.mark=e,l=fC),c=Iy(l,r,n),t=t&&t.union(c)||c,t;if(t=t||e.bounds&&e.bounds.clear()||new gt,s)for(a=0,u=o.length;a<u;++a)t.union(Iy(o[a],r,n));return e.bounds=t}const EW=["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 RM(e,t){return JSON.stringify(e,EW,t)}function NM(e){const t=typeof e=="string"?JSON.parse(e):e;return LM(t)}function LM(e){var t=e.marktype,n=e.items,i,r,o;if(n)for(r=0,o=n.length;r<o;++r)i=t?"mark":"group",n[r][i]=e,n[r].zindex&&(n[r][i].zdirty=!0),(t||i)==="group"&&LM(n[r]);return t&&OM(e),e}class PM{constructor(t){arguments.length?this.root=NM(t):(this.root=dC({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Wg(this.root)])}toJSON(t){return RM(this.root,t||0)}mark(t,n,i){n=n||this.root.items[0];const r=dC(t,n);return n.items[i]=r,r.zindex&&(r.group.zdirty=!0),r}}function dC(e,t){const n={bounds:new gt,clip:!!e.clip,group:t,interactive:e.interactive!==!1,items:[],marktype:e.marktype,name:e.name||void 0,role:e.role||void 0,zindex:e.zindex||0};return e.aria!=null&&(n.aria=e.aria),e.description&&(n.description=e.description),n}function Po(e,t,n){return!e&&typeof document<"u"&&document.createElement&&(e=document),e?n?e.createElementNS(n,t):e.createElement(t):null}function M2(e,t){t=t.toLowerCase();for(var n=e.childNodes,i=0,r=n.length;i<r;++i)if(n[i].tagName.toLowerCase()===t)return n[i]}function yt(e,t,n,i){var r=e.childNodes[t],o;return(!r||r.tagName.toLowerCase()!==n.toLowerCase())&&(o=r||null,r=Po(e.ownerDocument,n,i),e.insertBefore(r,o)),r}function ai(e,t){for(var n=e.childNodes,i=n.length;i>t;)e.removeChild(n[--i]);return e}function IM(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function Jg(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}function wW(e,t,n,i){var r=e&&e.mark,o,s;if(r&&(o=ni[r.marktype]).tip){for(s=Jg(t,n),s[0]-=i[0],s[1]-=i[1];e=e.mark.group;)s[0]-=e.x||0,s[1]-=e.y||0;e=o.tip(r.items,s)}return e}let O2=class{constructor(t,n){this._active=null,this._handlers={},this._loader=t||vg(),this._tooltip=n||AW}initialize(t,n,i){return this._el=t,this._obj=i||null,this.origin(n)}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,n,i){for(let r=t?t.length:0;--r>=0;)if(t[r].type===n&&(!i||t[r].handler===i))return r;return-1}handlers(t){const n=this._handlers,i=[];if(t)i.push(...n[this.eventName(t)]);else for(const r in n)i.push(...n[r]);return i}eventName(t){const n=t.indexOf(".");return n<0?t:t.slice(0,n)}handleHref(t,n,i){this._loader.sanitize(i,{context:"href"}).then(r=>{const o=new MouseEvent(t.type,t),s=Po(null,"a");for(const a in r)s.setAttribute(a,r[a]);s.dispatchEvent(o)}).catch(()=>{})}handleTooltip(t,n,i){if(n&&n.tooltip!=null){n=wW(n,t,this.canvas(),this._origin);const r=i&&n&&n.tooltip||null;this._tooltip.call(this._obj,this,t,n,r)}}getItemBoundingClientRect(t){const n=this.canvas();if(!n)return;const i=n.getBoundingClientRect(),r=this._origin,o=t.bounds,s=o.width(),a=o.height();let u=o.x1+r[0]+i.left,l=o.y1+r[1]+i.top;for(;t.mark&&(t=t.mark.group);)u+=t.x||0,l+=t.y||0;return{x:u,y:l,width:s,height:a,left:u,top:l,right:u+s,bottom:l+a}}};function AW(e,t,n,i){e.element().setAttribute("title",i||"")}class Nf{constructor(t){this._el=null,this._bgcolor=null,this._loader=new vM(t)}initialize(t,n,i,r,o){return this._el=t,this.resize(n,i,r,o)}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,n,i,r){return this._width=t,this._height=n,this._origin=i||[0,0],this._scale=r||1,this}dirty(){}render(t,n){const i=this;return i._call=function(){i._render(t,n)},i._call(),i._call=null,i}_render(){}renderAsync(t,n){const i=this.render(t,n);return this._ready?this._ready.then(()=>i):Promise.resolve(i)}_load(t,n){var i=this,r=i._loader[t](n);if(!i._ready){const o=i._call;i._ready=i._loader.ready().then(s=>{s&&o(),i._ready=null})}return r}sanitizeURL(t){return this._load("sanitizeURL",t)}loadImage(t){return this._load("loadImage",t)}}const SW="keydown",CW="keypress",$W="keyup",zM="dragenter",ah="dragleave",BM="dragover",zy="pointerdown",_W="pointerup",Gh="pointermove",uh="pointerout",UM="pointerover",By="mousedown",FW="mouseup",jM="mousemove",Hh="mouseout",qM="mouseover",Vh="click",kW="dblclick",DW="wheel",WM="mousewheel",Yh="touchstart",Xh="touchmove",Kh="touchend",TW=[SW,CW,$W,zM,ah,BM,zy,_W,Gh,uh,UM,By,FW,jM,Hh,qM,Vh,kW,DW,WM,Yh,Xh,Kh],Uy=Gh,Cc=Hh,jy=Vh;class Lf extends O2{constructor(t,n){super(t,n),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=TW,this.pointermove=pC([Gh,jM],[UM,qM],[uh,Hh]),this.dragover=pC([BM],[zM],[ah]),this.pointerout=gC([uh,Hh]),this.dragleave=gC([ah])}initialize(t,n,i){return this._canvas=t&&M2(t,"canvas"),[Vh,By,zy,Gh,uh,ah].forEach(r=>hC(this,r)),super.initialize(t,n,i)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(t){this.fire(WM,t)}pointerdown(t){this._down=this._active,this.fire(zy,t)}mousedown(t){this._down=this._active,this.fire(By,t)}click(t){this._down===this._active&&(this.fire(Vh,t),this._down=null)}touchstart(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Yh,t,!0)}touchmove(t){this.fire(Xh,t,!0)}touchend(t){this.fire(Kh,t,!0),this._touch=null}fire(t,n,i){const r=i?this._touch:this._active,o=this._handlers[t];if(n.vegaType=t,t===jy&&r&&r.href?this.handleHref(n,r,r.href):(t===Uy||t===Cc)&&this.handleTooltip(n,r,t!==Cc),o)for(let s=0,a=o.length;s<a;++s)o[s].handler.call(this._obj,n,r)}on(t,n){const i=this.eventName(t),r=this._handlers;return this._handlerIndex(r[i],t,n)<0&&(hC(this,t),(r[i]||(r[i]=[])).push({type:t,handler:n})),this}off(t,n){const i=this.eventName(t),r=this._handlers[i],o=this._handlerIndex(r,t,n);return o>=0&&r.splice(o,1),this}pickEvent(t){const n=Jg(t,this._canvas),i=this._origin;return this.pick(this._scene,n[0],n[1],n[0]-i[0],n[1]-i[1])}pick(t,n,i,r,o){const s=this.context();return ni[t.marktype].pick.call(this,s,t,n,i,r,o)}}const MW=e=>e===Yh||e===Xh||e===Kh?[Yh,Xh,Kh]:[e];function hC(e,t){MW(t).forEach(n=>OW(e,n))}function OW(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?i=>e[t](i):i=>e.fire(t,i)))}function lc(e,t,n){t.forEach(i=>e.fire(i,n))}function pC(e,t,n){return function(i){const r=this._active,o=this.pickEvent(i);o===r?lc(this,e,i):((!r||!r.exit)&&lc(this,n,i),this._active=o,lc(this,t,i),lc(this,e,i))}}function gC(e){return function(t){lc(this,e,t),this._active=null}}function RW(){return typeof window<"u"&&window.devicePixelRatio||1}function NW(e,t,n,i,r,o){const s=typeof HTMLElement<"u"&&e instanceof HTMLElement&&e.parentNode!=null,a=e.getContext("2d"),u=s?RW():r;e.width=t*u,e.height=n*u;for(const l in o)a[l]=o[l];return s&&u!==1&&(e.style.width=t+"px",e.style.height=n+"px"),a.pixelRatio=u,a.setTransform(u,0,0,u,u*i[0],u*i[1]),e}class Jh extends Nf{constructor(t){super(t),this._options={},this._redraw=!1,this._dirty=new gt,this._tempb=new gt}initialize(t,n,i,r,o,s){return this._options=s||{},this._canvas=this._options.externalContext?null:Vo(1,1,this._options.type),t&&this._canvas&&(ai(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(t,n,i,r,o)}resize(t,n,i,r){if(super.resize(t,n,i,r),this._canvas)NW(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const o=this._options.externalContext;o||L("CanvasRenderer is missing a valid canvas or context"),o.scale(this._scale,this._scale),o.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 n=this._tempb.clear().union(t.bounds);let i=t.mark.group;for(;i;)n.translate(i.x||0,i.y||0),i=i.mark.group;this._dirty.union(n)}_render(t,n){const i=this.context(),r=this._origin,o=this._width,s=this._height,a=this._dirty,u=LW(r,o,s);i.save();const l=this._redraw||a.empty()?(this._redraw=!1,u.expand(1)):PW(i,u.intersect(a),r);return this.clear(-r[0],-r[1],o,s),this.draw(i,t,l,n),i.restore(),a.clear(),this}draw(t,n,i,r){if(n.marktype!=="group"&&r!=null&&!r.includes(n.marktype))return;const o=ni[n.marktype];n.clip&&Rq(t,n),o.draw.call(this,t,n,i,r),n.clip&&t.restore()}clear(t,n,i,r){const o=this._options,s=this.context();o.type!=="pdf"&&!o.externalContext&&s.clearRect(t,n,i,r),this._bgcolor!=null&&(s.fillStyle=this._bgcolor,s.fillRect(t,n,i,r))}}const LW=(e,t,n)=>new gt().set(0,0,t,n).translate(-e[0],-e[1]);function PW(e,t,n){return t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio),t.translate(-(n[0]%1),-(n[1]%1)),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}class GM extends O2{constructor(t,n){super(t,n);const i=this;i._hrefHandler=jm(i,(r,o)=>{o&&o.href&&i.handleHref(r,o,o.href)}),i._tooltipHandler=jm(i,(r,o)=>{i.handleTooltip(r,o,r.type!==Cc)})}initialize(t,n,i){let r=this._svg;return r&&(r.removeEventListener(jy,this._hrefHandler),r.removeEventListener(Uy,this._tooltipHandler),r.removeEventListener(Cc,this._tooltipHandler)),this._svg=r=t&&M2(t,"svg"),r&&(r.addEventListener(jy,this._hrefHandler),r.addEventListener(Uy,this._tooltipHandler),r.addEventListener(Cc,this._tooltipHandler)),super.initialize(t,n,i)}canvas(){return this._svg}on(t,n){const i=this.eventName(t),r=this._handlers;if(this._handlerIndex(r[i],t,n)<0){const s={type:t,handler:n,listener:jm(this,n)};(r[i]||(r[i]=[])).push(s),this._svg&&this._svg.addEventListener(i,s.listener)}return this}off(t,n){const i=this.eventName(t),r=this._handlers[i],o=this._handlerIndex(r,t,n);return o>=0&&(this._svg&&this._svg.removeEventListener(i,r[o].listener),r.splice(o,1)),this}}const jm=(e,t)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i,n.vegaType=n.type,t.call(e._obj,n,i)},HM="aria-hidden",R2="aria-label",N2="role",L2="aria-roledescription",VM="graphics-object",P2="graphics-symbol",YM=(e,t,n)=>({[N2]:e,[L2]:t,[R2]:n||void 0}),IW=yr(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),mC={axis:{desc:"axis",caption:UW},legend:{desc:"legend",caption:jW},"title-text":{desc:"title",caption:e=>`Title text '${bC(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${bC(e)}'`}},yC={ariaRole:N2,ariaRoleDescription:L2,description:R2};function XM(e,t){const n=t.aria===!1;if(e(HM,n||void 0),n||t.description==null)for(const i in yC)e(yC[i],void 0);else{const i=t.mark.marktype;e(R2,t.description),e(N2,t.ariaRole||(i==="group"?VM:P2)),e(L2,t.ariaRoleDescription||`${i} mark`)}}function KM(e){return e.aria===!1?{[HM]:!0}:IW[e.role]?null:mC[e.role]?BW(e,mC[e.role]):zW(e)}function zW(e){const t=e.marktype,n=t==="group"||t==="text"||e.items.some(i=>i.description!=null&&i.aria!==!1);return YM(n?VM:P2,`${t} mark container`,e.description)}function BW(e,t){try{const n=e.items[0],i=t.caption||(()=>"");return YM(t.role||P2,t.desc,n.description||i(n))}catch{return null}}function bC(e){return se(e.text).join(" ")}function UW(e){const t=e.datum,n=e.orient,i=t.title?JM(e):null,r=e.context,o=r.scales[t.scale].value,s=r.dataflow.locale(),a=o.type;return`${n==="left"||n==="right"?"Y":"X"}-axis`+(i?` titled '${i}'`:"")+` for a ${Ru(a)?"discrete":a} scale with ${cM(s,o,e)}`}function jW(e){const t=e.datum,n=t.title?JM(e):null,i=`${t.type||""} legend`.trim(),r=t.scales,o=Object.keys(r),s=e.context,a=s.scales[r[o[0]]].value,u=s.dataflow.locale();return WW(i)+(n?` titled '${n}'`:"")+` for ${qW(o)} with ${cM(u,a,e)}`}function JM(e){try{return se($e(e.items).items[0].text).join(" ")}catch{return null}}function qW(e){return e=e.map(t=>t+(t==="fill"||t==="stroke"?" color":"")),e.length<2?e[0]:e.slice(0,-1).join(", ")+" and "+$e(e)}function WW(e){return e.length?e[0].toUpperCase()+e.slice(1):e}const QM=e=>(e+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),GW=e=>QM(e).replace(/"/g,"&quot;").replace(/\t/g,"&#x9;").replace(/\n/g,"&#xA;").replace(/\r/g,"&#xD;");function I2(){let e="",t="",n="";const i=[],r=()=>t=n="",o=u=>{t&&(e+=`${t}>${n}`,r()),i.push(u)},s=(u,l)=>(l!=null&&(t+=` ${u}="${GW(l)}"`),a),a={open(u){o(u),t="<"+u;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 d of c)for(const h in d)s(h,d[h]);return a},close(){const u=i.pop();return t?e+=t+(n?`>${n}</${u}>`:"/>"):e+=`</${u}>`,r(),a},attr:s,text:u=>(n+=QM(u),a),toString:()=>e};return a}const ZM=e=>e5(I2(),e)+"";function e5(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,i=n.length;for(let r=0;r<i;++r)e.attr(n[r].name,n[r].value)}if(t.hasChildNodes()){const n=t.childNodes;for(const i of n)i.nodeType===3?e.text(i.nodeValue):e5(e,i)}return e.close()}const Qh={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"},Zh={blend:"mix-blend-mode"},t5={fill:"none","stroke-miterlimit":10},zl=0,xC="http://www.w3.org/2000/xmlns/",mt=Xc.xmlns;class z2 extends Nf{constructor(t){super(t),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(t,n,i,r,o){return this._defs={},this._clearDefs(),t&&(this._svg=yt(t,0,"svg",mt),this._svg.setAttributeNS(xC,"xmlns",mt),this._svg.setAttributeNS(xC,"xmlns:xlink",Xc["xmlns:xlink"]),this._svg.setAttribute("version",Xc.version),this._svg.setAttribute("class","marks"),ai(t,1),this._root=yt(this._svg,zl,"g",mt),Io(this._root,t5),ai(this._svg,zl+1)),this.background(this._bgcolor),super.initialize(t,n,i,r,o)}background(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),super.background(...arguments)}resize(t,n,i,r){return super.resize(t,n,i,r),this._svg&&(Io(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,n=this._bgcolor;if(!t)return null;let i;n&&(t.removeAttribute("style"),i=yt(t,zl,"rect",mt),Io(i,{width:this._width,height:this._height,fill:n}));const r=ZM(t);return n&&(t.removeChild(i),this._svg.style.setProperty("background-color",n)),r}_render(t,n){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,t,void 0,n),ai(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 n=++this._dirtyID;let i,r,o,s,a,u,l;for(a=0,u=t.length;a<u;++a)if(i=t[a],r=i.mark,r.marktype!==o&&(o=r.marktype,s=ni[o]),r.zdirty&&r.dirty!==n&&(this._dirtyAll=!1,vC(i,n),r.items.forEach(c=>{c.dirty=n})),!r.zdirty){if(i.exit){s.nested&&r.items.length?(l=r.items[0],l._svg&&this._update(s,l._svg,l)):i._svg&&(l=i._svg.parentNode,l&&l.removeChild(i._svg)),i._svg=null;continue}i=s.nested?r.items[0]:i,i._update!==n&&(!i._svg||!i._svg.ownerSVGElement?(this._dirtyAll=!1,vC(i,n)):this._update(s,i._svg,i),i._update=n)}return!this._dirtyAll}mark(t,n,i,r){if(!this.isDirty(n))return n._svg;const o=this._svg,s=n.marktype,a=ni[s],u=n.interactive===!1?"none":null,l=a.tag==="g",c=EC(n,t,i,"g",o);if(s!=="group"&&r!=null&&!r.includes(s))return ai(c,0),n._svg;c.setAttribute("class",IM(n));const f=KM(n);for(const g in f)cn(c,g,f[g]);l||cn(c,"pointer-events",u),cn(c,"clip-path",n.clip?m2(this,n,n.group):null);let d=null,h=0;const p=g=>{const m=this.isDirty(g),y=EC(g,c,d,a.tag,o);m&&(this._update(a,y,g),l&&YW(this,y,g,r)),d=y,++h};return a.nested?n.items.length&&p(n.items[0]):zi(n,p),ai(c,h),c}_update(t,n,i){Zr=n,Qt=n.__values__,XM($c,i),t.attr($c,i,this);const r=KW[t.type];r&&r.call(this,t,n,i),Zr&&this.style(Zr,i)}style(t,n){if(n!=null){for(const i in Qh){let r=i==="font"?Rf(n):n[i];if(r===Qt[i])continue;const o=Qh[i];r==null?t.removeAttribute(o):(h2(r)&&(r=dM(r,this._defs.gradient,n5())),t.setAttribute(o,r+"")),Qt[i]=r}for(const i in Zh)lh(t,Zh[i],n[i])}}defs(){const t=this._svg,n=this._defs;let i=n.el,r=0;for(const o in n.gradient)i||(n.el=i=yt(t,zl+1,"defs",mt)),r=HW(i,n.gradient[o],r);for(const o in n.clipping)i||(n.el=i=yt(t,zl+1,"defs",mt)),r=VW(i,n.clipping[o],r);i&&(r===0?(t.removeChild(i),n.el=null):ai(i,r))}_clearDefs(){const t=this._defs;t.gradient={},t.clipping={}}}function vC(e,t){for(;e&&e.dirty!==t;e=e.mark.group)if(e.dirty=t,e.mark&&e.mark.dirty!==t)e.mark.dirty=t;else return}function HW(e,t,n){let i,r,o;if(t.gradient==="radial"){let s=yt(e,n++,"pattern",mt);Io(s,{id:Uh+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),s=yt(s,0,"rect",mt),Io(s,{width:1,height:1,fill:`url(${n5()}#${t.id})`}),e=yt(e,n++,"radialGradient",mt),Io(e,{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else e=yt(e,n++,"linearGradient",mt),Io(e,{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(i=0,r=t.stops.length;i<r;++i)o=yt(e,i,"stop",mt),o.setAttribute("offset",t.stops[i].offset),o.setAttribute("stop-color",t.stops[i].color);return ai(e,i),n}function VW(e,t,n){let i;return e=yt(e,n,"clipPath",mt),e.setAttribute("id",t.id),t.path?(i=yt(e,0,"path",mt),i.setAttribute("d",t.path)):(i=yt(e,0,"rect",mt),Io(i,{x:0,y:0,width:t.width,height:t.height})),ai(e,1),n+1}function YW(e,t,n,i){t=t.lastChild.previousSibling;let r,o=0;zi(n,s=>{r=e.mark(t,s,r,i),++o}),ai(t,1+o)}function EC(e,t,n,i,r){let o=e._svg,s;if(!o&&(s=t.ownerDocument,o=Po(s,i,mt),e._svg=o,e.mark&&(o.__data__=e,o.__values__={fill:"default"},i==="g"))){const a=Po(s,"path",mt);o.appendChild(a),a.__data__=e;const u=Po(s,"g",mt);o.appendChild(u),u.__data__=e;const l=Po(s,"path",mt);o.appendChild(l),l.__data__=e,l.__values__={fill:"default"}}return(o.ownerSVGElement!==r||XW(o,n))&&t.insertBefore(o,n?n.nextSibling:t.firstChild),o}function XW(e,t){return e.parentNode&&e.parentNode.childNodes.length>1&&e.previousSibling!=t}let Zr=null,Qt=null;const KW={group(e,t,n){const i=Zr=t.childNodes[2];Qt=i.__values__,e.foreground($c,n,this),Qt=t.__values__,Zr=t.childNodes[1],e.content($c,n,this);const r=Zr=t.childNodes[0];e.background($c,n,this);const o=n.mark.interactive===!1?"none":null;if(o!==Qt.events&&(cn(i,"pointer-events",o),cn(r,"pointer-events",o),Qt.events=o),n.strokeForeground&&n.stroke){const s=n.fill;cn(i,"display",null),this.style(r,n),cn(r,"stroke",null),s&&(n.fill=null),Qt=i.__values__,this.style(i,n),s&&(n.fill=s),Zr=null}else cn(i,"display","none")},image(e,t,n){n.smooth===!1?(lh(t,"image-rendering","optimizeSpeed"),lh(t,"image-rendering","pixelated")):lh(t,"image-rendering",null)},text(e,t,n){const i=Of(n);let r,o,s,a;Z(i)?(o=i.map(u=>es(n,u)),r=o.join(`
7
+ `),r!==Qt.text&&(ai(t,0),s=t.ownerDocument,a=Zo(n),o.forEach((u,l)=>{const c=Po(s,"tspan",mt);c.__data__=n,c.textContent=u,l&&(c.setAttribute("x",0),c.setAttribute("dy",a)),t.appendChild(c)}),Qt.text=r)):(o=es(n,i),o!==Qt.text&&(t.textContent=o,Qt.text=o)),cn(t,"font-family",Rf(n)),cn(t,"font-size",_r(n)+"px"),cn(t,"font-style",n.fontStyle),cn(t,"font-variant",n.fontVariant),cn(t,"font-weight",n.fontWeight)}};function $c(e,t,n){t!==Qt[e]&&(n?JW(Zr,e,t,n):cn(Zr,e,t),Qt[e]=t)}function lh(e,t,n){n!==Qt[t]&&(n==null?e.style.removeProperty(t):e.style.setProperty(t,n+""),Qt[t]=n)}function Io(e,t){for(const n in t)cn(e,n,t[n])}function cn(e,t,n){n!=null?e.setAttribute(t,n):e.removeAttribute(t)}function JW(e,t,n,i){n!=null?e.setAttributeNS(i,t,n):e.removeAttributeNS(i,t)}function n5(){let e;return typeof window>"u"?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}class i5 extends Nf{constructor(t){super(t),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(t){const n=I2();n.open("svg",ye({},Xc,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const i=this._bgcolor;return i&&i!=="transparent"&&i!=="none"&&n.open("rect",{width:this._width,height:this._height,fill:i}).close(),n.open("g",t5,{transform:"translate("+this._origin+")"}),this.mark(n,t),n.close(),this.defs(n),this._text=n.close()+"",this}mark(t,n){const i=ni[n.marktype],r=i.tag,o=[XM,i.attr];t.open("g",{class:IM(n),"clip-path":n.clip?m2(this,n,n.group):null},KM(n),{"pointer-events":r!=="g"&&n.interactive===!1?"none":null});const s=a=>{const u=this.href(a);if(u&&t.open("a",u),t.open(r,this.attr(n,a,o,r!=="g"?r:null)),r==="text"){const l=Of(a);if(Z(l)){const c={x:0,dy:Zo(a)};for(let f=0;f<l.length;++f)t.open("tspan",f?c:null).text(es(a,l[f])).close()}else t.text(es(a,l))}else if(r==="g"){const l=a.strokeForeground,c=a.fill,f=a.stroke;l&&f&&(a.stroke=null),t.open("path",this.attr(n,a,i.background,"bgrect")).close(),t.open("g",this.attr(n,a,i.content)),zi(a,d=>this.mark(t,d)),t.close(),l&&f?(c&&(a.fill=null),a.stroke=f,t.open("path",this.attr(n,a,i.foreground,"bgrect")).close(),c&&(a.fill=c)):t.open("path",this.attr(n,a,i.foreground,"bgfore")).close()}t.close(),u&&t.close()};return i.nested?n.items&&n.items.length&&s(n.items[0]):zi(n,s),t.close()}href(t){const n=t.href;let i;if(n){if(i=this._hrefs&&this._hrefs[n])return i;this.sanitizeURL(n).then(r=>{r["xlink:href"]=r.href,r.href=null,(this._hrefs||(this._hrefs={}))[n]=r})}return null}attr(t,n,i,r){const o={},s=(a,u,l,c)=>{o[c||a]=u};return Array.isArray(i)?i.forEach(a=>a(s,n,this)):i(s,n,this),r&&QW(o,n,t,r,this._defs),o}defs(t){const n=this._defs.gradient,i=this._defs.clipping;if(Object.keys(n).length+Object.keys(i).length!==0){t.open("defs");for(const o in n){const s=n[o],a=s.stops;s.gradient==="radial"?(t.open("pattern",{id:Uh+o,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+o+")"}).close(),t.close(),t.open("radialGradient",{id:o,fx:s.x1,fy:s.y1,fr:s.r1,cx:s.x2,cy:s.y2,r:s.r2})):t.open("linearGradient",{id:o,x1:s.x1,x2:s.x2,y1:s.y1,y2:s.y2});for(let u=0;u<a.length;++u)t.open("stop",{offset:a[u].offset,"stop-color":a[u].color}).close();t.close()}for(const o in i){const s=i[o];t.open("clipPath",{id:o}),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 QW(e,t,n,i,r){let o;if(t==null||(i==="bgrect"&&n.interactive===!1&&(e["pointer-events"]="none"),i==="bgfore"&&(n.interactive===!1&&(e["pointer-events"]="none"),e.display="none",t.fill!==null)))return e;i==="image"&&t.smooth===!1&&(o=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),i==="text"&&(e["font-family"]=Rf(t),e["font-size"]=_r(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const s in Qh){let a=t[s];const u=Qh[s];a==="transparent"&&(u==="fill"||u==="stroke")||a!=null&&(h2(a)&&(a=dM(a,r.gradient,"")),e[u]=a)}for(const s in Zh){const a=t[s];a!=null&&(o=o||[],o.push(`${Zh[s]}: ${a};`))}return o&&(e.style=o.join(" ")),e}const $i={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};function ZW(e){$i.svgMarkTypes=e.svgMarkTypes??["text"],$i.svgOnTop=e.svgOnTop??!0,$i.debug=e.debug??!1}class qy extends Nf{constructor(t){super(t),this._svgRenderer=new z2(t),this._canvasRenderer=new Jh(t)}initialize(t,n,i,r,o){this._root_el=yt(t,0,"div");const s=yt(this._root_el,0,"div"),a=yt(this._root_el,1,"div");return this._root_el.style.position="relative",$i.debug||(s.style.height="100%",a.style.position="absolute",a.style.top="0",a.style.left="0",a.style.height="100%",a.style.width="100%"),this._svgEl=$i.svgOnTop?a:s,this._canvasEl=$i.svgOnTop?s:a,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,n,i,r,o),this._svgRenderer.initialize(this._svgEl,n,i,r,o),super.initialize(t,n,i,r,o)}dirty(t){return $i.svgMarkTypes.includes(t.mark.marktype)?this._svgRenderer.dirty(t):this._canvasRenderer.dirty(t),this}_render(t,n){const r=(n??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter(o=>!$i.svgMarkTypes.includes(o));this._svgRenderer.render(t,$i.svgMarkTypes),this._canvasRenderer.render(t,r)}resize(t,n,i,r){return super.resize(t,n,i,r),this._svgRenderer.resize(t,n,i,r),this._canvasRenderer.resize(t,n,i,r),this}background(t){return $i.svgOnTop?this._canvasRenderer.background(t):this._svgRenderer.background(t),this}}class r5 extends Lf{constructor(t,n){super(t,n)}initialize(t,n,i){const r=yt(yt(t,0,"div"),$i.svgOnTop?0:1,"div");return super.initialize(r,n,i)}}const o5="canvas",s5="hybrid",a5="png",u5="svg",l5="none",zo={Canvas:o5,PNG:a5,SVG:u5,Hybrid:s5,None:l5},la={};la[o5]=la[a5]={renderer:Jh,headless:Jh,handler:Lf};la[u5]={renderer:z2,headless:i5,handler:GM};la[s5]={renderer:qy,headless:qy,handler:r5};la[l5]={};function Qg(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(la[e]=t,this):la[e]}function c5(e,t,n){const i=[],r=new gt().union(t),o=e.marktype;return o?f5(e,r,n,i):o==="group"?d5(e,r,n,i):L("Intersect scene must be mark node or group item.")}function f5(e,t,n,i){if(eG(e,t,n)){const r=e.items,o=e.marktype,s=r.length;let a=0;if(o==="group")for(;a<s;++a)d5(r[a],t,n,i);else for(const u=ni[o].isect;a<s;++a){const l=r[a];h5(l,t,u)&&i.push(l)}}return i}function eG(e,t,n){return e.bounds&&t.intersects(e.bounds)&&(e.marktype==="group"||e.interactive!==!1&&(!n||n(e)))}function d5(e,t,n,i){n&&n(e.mark)&&h5(e,t,ni.group.isect)&&i.push(e);const r=e.items,o=r&&r.length;if(o){const s=e.x||0,a=e.y||0;t.translate(-s,-a);for(let u=0;u<o;++u)f5(r[u],t,n,i);t.translate(s,a)}return i}function h5(e,t,n){const i=e.bounds;return t.encloses(i)||t.intersects(i)&&n(e,t)}const qm=new gt;function p5(e){const t=e.clip;if(be(t))t(Tf(qm.clear()));else if(t)qm.set(0,0,e.group.width,e.group.height);else return;e.bounds.intersect(qm)}const tG=1e-9;function B2(e,t,n){return e===t?!0:n==="path"?g5(e,t):e instanceof Date&&t instanceof Date?+e==+t:sa(e)&&sa(t)?Math.abs(e-t)<=tG:!e||!t||!me(e)&&!me(t)?e==t:nG(e,t)}function g5(e,t){return B2(Nu(e),Nu(t))}function nG(e,t){var n=Object.keys(e),i=Object.keys(t),r,o;if(n.length!==i.length)return!1;for(n.sort(),i.sort(),o=n.length-1;o>=0;o--)if(n[o]!=i[o])return!1;for(o=n.length-1;o>=0;o--)if(r=n[o],!B2(e[r],t[r],r))return!1;return typeof e==typeof t}function iG(){xM(),_j()}const Iu="top",ki="left",Di="right",ts="bottom",rG="top-left",oG="top-right",sG="bottom-left",aG="bottom-right",U2="start",Wy="middle",fn="end",uG="x",lG="y",Zg="group",j2="axis",q2="title",cG="frame",fG="scope",W2="legend",m5="row-header",y5="row-footer",b5="row-title",x5="column-header",v5="column-footer",E5="column-title",dG="padding",hG="symbol",w5="fit",A5="fit-x",S5="fit-y",pG="pad",G2="none",Ed="all",Gy="each",H2="flush",Bo="column",Uo="row";function C5(e){M.call(this,null,e)}G(C5,M,{transform(e,t){const n=t.dataflow,i=e.mark,r=i.marktype,o=ni[r],s=o.bound;let a=i.bounds,u;if(o.nested)i.items.length&&n.dirty(i.items[0]),a=wd(i,s),i.items.forEach(l=>{l.bounds.clear().union(a)});else if(r===Zg||e.modified())switch(t.visit(t.MOD,l=>n.dirty(l)),a.clear(),i.items.forEach(l=>a.union(wd(l,s))),i.role){case j2:case W2:case q2:t.reflow()}else u=t.changed(t.REM),t.visit(t.ADD,l=>{a.union(wd(l,s))}),t.visit(t.MOD,l=>{u=u||a.alignsWith(l.bounds),n.dirty(l),a.union(wd(l,s))}),u&&(a.clear(),i.items.forEach(l=>a.union(l.bounds)));return p5(i),t.modifies("bounds")}});function wd(e,t,n){return t(e.bounds.clear(),e,n)}const wC=":vega_identifier:";function V2(e){M.call(this,0,e)}V2.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]};G(V2,M,{transform(e,t){const n=gG(t.dataflow),i=e.as;let r=n.value;return t.visit(t.ADD,o=>o[i]=o[i]||++r),n.set(this.value=r),t}});function gG(e){return e._signals[wC]||(e._signals[wC]=e.add(0))}function $5(e){M.call(this,null,e)}G($5,M,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,mG(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const i=n.marktype===Zg?Wg:qg;return t.visit(t.ADD,r=>i.call(r,n)),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});function mG(e){const t=e.groups,n=e.parent;return t&&t.size===1?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}function _5(e){M.call(this,null,e)}const AC={parity:e=>e.filter((t,n)=>n%2?t.opacity=0:1),greedy:(e,t)=>{let n;return e.filter((i,r)=>!r||!F5(n.bounds,i.bounds,t)?(n=i,1):i.opacity=0)}},F5=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),SC=(e,t)=>{for(var n=1,i=e.length,r=e[0].bounds,o;n<i;r=o,++n)if(F5(r,o=e[n].bounds,t))return!0},yG=e=>{const t=e.bounds;return t.width()>1&&t.height()>1},bG=(e,t,n)=>{var i=e.range(),r=new gt;return t===Iu||t===ts?r.set(i[0],-1/0,i[1],1/0):r.set(-1/0,i[0],1/0,i[1]),r.expand(n||1),o=>r.encloses(o.bounds)},CC=e=>(e.forEach(t=>t.opacity=1),e),$C=(e,t)=>e.reflow(t.modified()).modifies("opacity");G(_5,M,{transform(e,t){const n=AC[e.method]||AC.parity,i=e.separation||0;let r=t.materialize(t.SOURCE).source,o,s;if(!r||!r.length)return;if(!e.method)return e.modified("method")&&(CC(r),t=$C(t,e)),t;if(r=r.filter(yG),!r.length)return;if(e.sort&&(r=r.slice().sort(e.sort)),o=CC(r),t=$C(t,e),o.length>=3&&SC(o,i)){do o=n(o,i);while(o.length>=3&&SC(o,i));o.length<3&&!$e(r).opacity&&(o.length>1&&($e(o).opacity=0),$e(r).opacity=1)}e.boundScale&&e.boundTolerance>=0&&(s=bG(e.boundScale,e.boundOrient,+e.boundTolerance),r.forEach(u=>{s(u)||(u.opacity=0)}));const a=o[0].mark.bounds.clear();return r.forEach(u=>{u.opacity&&a.union(u.bounds)}),t}});function k5(e){M.call(this,null,e)}G(k5,M,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,i=>n.dirty(i)),t.fields&&t.fields.zindex){const i=t.source&&t.source[0];i&&(i.mark.zdirty=!0)}}});const Jt=new gt;function cu(e,t,n){return e[t]===n?0:(e[t]=n,1)}function xG(e){var t=e.items[0].orient;return t===ki||t===Di}function vG(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}function EG(e,t,n,i){var r=t.items[0],o=r.datum,s=r.translate!=null?r.translate:.5,a=r.orient,u=vG(o),l=r.range,c=r.offset,f=r.position,d=r.minExtent,h=r.maxExtent,p=o.title&&r.items[u[2]].items[0],g=r.titlePadding,m=r.bounds,y=p&&k2(p),b=0,x=0,v,w;switch(Jt.clear().union(m),m.clear(),(v=u[0])>-1&&m.union(r.items[v].bounds),(v=u[1])>-1&&m.union(r.items[v].bounds),a){case Iu:b=f||0,x=-c,w=Math.max(d,Math.min(h,-m.y1)),m.add(0,-w).add(l,0),p&&Ad(e,p,w,g,y,0,-1,m);break;case ki:b=-c,x=f||0,w=Math.max(d,Math.min(h,-m.x1)),m.add(-w,0).add(0,l),p&&Ad(e,p,w,g,y,1,-1,m);break;case Di:b=n+c,x=f||0,w=Math.max(d,Math.min(h,m.x2)),m.add(0,0).add(w,l),p&&Ad(e,p,w,g,y,1,1,m);break;case ts:b=f||0,x=i+c,w=Math.max(d,Math.min(h,m.y2)),m.add(0,0).add(l,w),p&&Ad(e,p,w,g,0,0,1,m);break;default:b=r.x,x=r.y}return bo(m.translate(b,x),r),cu(r,"x",b+s)|cu(r,"y",x+s)&&(r.bounds=Jt,e.dirty(r),r.bounds=m,e.dirty(r)),r.mark.bounds.clear().union(m)}function Ad(e,t,n,i,r,o,s,a){const u=t.bounds;if(t.auto){const l=s*(n+r+i);let c=0,f=0;e.dirty(t),o?c=(t.x||0)-(t.x=l):f=(t.y||0)-(t.y=l),t.mark.bounds.clear().union(u.translate(-c,-f)),e.dirty(t)}a.union(u)}const _C=(e,t)=>Math.floor(Math.min(e,t)),FC=(e,t)=>Math.ceil(Math.max(e,t));function wG(e){var t=e.items,n=t.length,i=0,r,o;const s={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;i<n;++i)if(r=t[i],o=r.items,r.marktype===Zg)switch(r.role){case j2:case W2:case q2:break;case m5:s.rowheaders.push(...o);break;case y5:s.rowfooters.push(...o);break;case x5:s.colheaders.push(...o);break;case v5:s.colfooters.push(...o);break;case b5:s.rowtitle=o[0];break;case E5:s.coltitle=o[0];break;default:s.marks.push(...o)}return s}function AG(e){return new gt().set(0,0,e.width||0,e.height||0)}function SG(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function Je(e,t,n){const i=me(e)?e[t]:e;return i??(n!==void 0?n:0)}function kC(e){return e<0?Math.ceil(-e):0}function D5(e,t,n){var i=!n.nodirty,r=n.bounds===H2?AG:SG,o=Jt.set(0,0,0,0),s=Je(n.align,Bo),a=Je(n.align,Uo),u=Je(n.padding,Bo),l=Je(n.padding,Uo),c=n.columns||t.length,f=c<=0?1:Math.ceil(t.length/c),d=t.length,h=Array(d),p=Array(c),g=0,m=Array(d),y=Array(f),b=0,x=Array(d),v=Array(d),w=Array(d),A,E,S,C,_,k,N,T,F,$,D;for(E=0;E<c;++E)p[E]=0;for(E=0;E<f;++E)y[E]=0;for(E=0;E<d;++E)k=t[E],_=w[E]=r(k),k.x=k.x||0,x[E]=0,k.y=k.y||0,v[E]=0,S=E%c,C=~~(E/c),g=Math.max(g,N=Math.ceil(_.x2)),b=Math.max(b,T=Math.ceil(_.y2)),p[S]=Math.max(p[S],N),y[C]=Math.max(y[C],T),h[E]=u+kC(_.x1),m[E]=l+kC(_.y1),i&&e.dirty(t[E]);for(E=0;E<d;++E)E%c===0&&(h[E]=0),E<c&&(m[E]=0);if(s===Gy)for(S=1;S<c;++S){for(D=0,E=S;E<d;E+=c)D<h[E]&&(D=h[E]);for(E=S;E<d;E+=c)h[E]=D+p[S-1]}else if(s===Ed){for(D=0,E=0;E<d;++E)E%c&&D<h[E]&&(D=h[E]);for(E=0;E<d;++E)E%c&&(h[E]=D+g)}else for(s=!1,S=1;S<c;++S)for(E=S;E<d;E+=c)h[E]+=p[S-1];if(a===Gy)for(C=1;C<f;++C){for(D=0,E=C*c,A=E+c;E<A;++E)D<m[E]&&(D=m[E]);for(E=C*c;E<A;++E)m[E]=D+y[C-1]}else if(a===Ed){for(D=0,E=c;E<d;++E)D<m[E]&&(D=m[E]);for(E=c;E<d;++E)m[E]=D+b}else for(a=!1,C=1;C<f;++C)for(E=C*c,A=E+c;E<A;++E)m[E]+=y[C-1];for(F=0,E=0;E<d;++E)F=h[E]+(E%c?F:0),x[E]+=F-t[E].x;for(S=0;S<c;++S)for($=0,E=S;E<d;E+=c)$+=m[E],v[E]+=$-t[E].y;if(s&&Je(n.center,Bo)&&f>1)for(E=0;E<d;++E)_=s===Ed?g:p[E%c],F=_-w[E].x2-t[E].x-x[E],F>0&&(x[E]+=F/2);if(a&&Je(n.center,Uo)&&c!==1)for(E=0;E<d;++E)_=a===Ed?b:y[~~(E/c)],$=_-w[E].y2-t[E].y-v[E],$>0&&(v[E]+=$/2);for(E=0;E<d;++E)o.union(w[E].translate(x[E],v[E]));switch(F=Je(n.anchor,uG),$=Je(n.anchor,lG),Je(n.anchor,Bo)){case fn:F-=o.width();break;case Wy:F-=o.width()/2}switch(Je(n.anchor,Uo)){case fn:$-=o.height();break;case Wy:$-=o.height()/2}for(F=Math.round(F),$=Math.round($),o.clear(),E=0;E<d;++E)t[E].mark.bounds.clear();for(E=0;E<d;++E)k=t[E],k.x+=x[E]+=F,k.y+=v[E]+=$,o.union(k.mark.bounds.union(k.bounds.translate(x[E],v[E]))),i&&e.dirty(k);return o}function CG(e,t,n){var i=wG(t),r=i.marks,o=n.bounds===H2?$G:_G,s=n.offset,a=n.columns||r.length,u=a<=0?1:Math.ceil(r.length/a),l=u*a,c,f,d,h,p,g,m;const y=D5(e,r,n);y.empty()&&y.set(0,0,0,0),i.rowheaders&&(g=Je(n.headerBand,Uo,null),c=Sd(e,i.rowheaders,r,a,u,-Je(s,"rowHeader"),_C,0,o,"x1",0,a,1,g)),i.colheaders&&(g=Je(n.headerBand,Bo,null),f=Sd(e,i.colheaders,r,a,a,-Je(s,"columnHeader"),_C,1,o,"y1",0,1,a,g)),i.rowfooters&&(g=Je(n.footerBand,Uo,null),d=Sd(e,i.rowfooters,r,a,u,Je(s,"rowFooter"),FC,0,o,"x2",a-1,a,1,g)),i.colfooters&&(g=Je(n.footerBand,Bo,null),h=Sd(e,i.colfooters,r,a,a,Je(s,"columnFooter"),FC,1,o,"y2",l-a,1,a,g)),i.rowtitle&&(p=Je(n.titleAnchor,Uo),m=Je(s,"rowTitle"),m=p===fn?d+m:c-m,g=Je(n.titleBand,Uo,.5),DC(e,i.rowtitle,m,0,y,g)),i.coltitle&&(p=Je(n.titleAnchor,Bo),m=Je(s,"columnTitle"),m=p===fn?h+m:f-m,g=Je(n.titleBand,Bo,.5),DC(e,i.coltitle,m,1,y,g))}function $G(e,t){return t==="x1"?e.x||0:t==="y1"?e.y||0:t==="x2"?(e.x||0)+(e.width||0):t==="y2"?(e.y||0)+(e.height||0):void 0}function _G(e,t){return e.bounds[t]}function Sd(e,t,n,i,r,o,s,a,u,l,c,f,d,h){var p=n.length,g=0,m=0,y,b,x,v,w,A,E,S,C;if(!p)return g;for(y=c;y<p;y+=f)n[y]&&(g=s(g,u(n[y],l)));if(!t.length)return g;for(t.length>r&&(e.warn("Grid headers exceed limit: "+r),t=t.slice(0,r)),g+=o,b=0,v=t.length;b<v;++b)e.dirty(t[b]),t[b].mark.bounds.clear();for(y=c,b=0,v=t.length;b<v;++b,y+=f){for(A=t[b],w=A.mark.bounds,x=y;x>=0&&(E=n[x])==null;x-=d);a?(S=h==null?E.x:Math.round(E.bounds.x1+h*E.bounds.width()),C=g):(S=g,C=h==null?E.y:Math.round(E.bounds.y1+h*E.bounds.height())),w.union(A.bounds.translate(S-(A.x||0),C-(A.y||0))),A.x=S,A.y=C,e.dirty(A),m=s(m,w[l])}return m}function DC(e,t,n,i,r,o){if(t){e.dirty(t);var s=n,a=n;i?s=Math.round(r.x1+o*r.width()):a=Math.round(r.y1+o*r.height()),t.bounds.translate(s-(t.x||0),a-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=s,t.y=a,e.dirty(t)}}function FG(e,t){const n=e[t]||{};return(i,r)=>n[i]!=null?n[i]:e[i]!=null?e[i]:r}function kG(e,t){let n=-1/0;return e.forEach(i=>{i.offset!=null&&(n=Math.max(n,i.offset))}),n>-1/0?n:t}function DG(e,t,n,i,r,o,s){const a=FG(n,t),u=kG(e,a("offset",0)),l=a("anchor",U2),c=l===fn?1:l===Wy?.5:0,f={align:Gy,bounds:a("bounds",H2),columns:a("direction")==="vertical"?1:e.length,padding:a("margin",8),center:a("center"),nodirty:!0};switch(t){case ki:f.anchor={x:Math.floor(i.x1)-u,column:fn,y:c*(s||i.height()+2*i.y1),row:l};break;case Di:f.anchor={x:Math.ceil(i.x2)+u,y:c*(s||i.height()+2*i.y1),row:l};break;case Iu:f.anchor={y:Math.floor(r.y1)-u,row:fn,x:c*(o||r.width()+2*r.x1),column:l};break;case ts:f.anchor={y:Math.ceil(r.y2)+u,x:c*(o||r.width()+2*r.x1),column:l};break;case rG:f.anchor={x:u,y:u};break;case oG:f.anchor={x:o-u,y:u,column:fn};break;case sG:f.anchor={x:u,y:s-u,row:fn};break;case aG:f.anchor={x:o-u,y:s-u,column:fn,row:fn};break}return f}function TG(e,t){var n=t.items[0],i=n.datum,r=n.orient,o=n.bounds,s=n.x,a=n.y,u,l;return n._bounds?n._bounds.clear().union(o):n._bounds=o.clone(),o.clear(),OG(e,n,n.items[0].items[0]),o=MG(n,o),u=2*n.padding,l=2*n.padding,o.empty()||(u=Math.ceil(o.width()+u),l=Math.ceil(o.height()+l)),i.type===hG&&RG(n.items[0].items[0].items[0].items),r!==G2&&(n.x=s=0,n.y=a=0),n.width=u,n.height=l,bo(o.set(s,a,s+u,a+l),n),n.mark.bounds.clear().union(o),n}function MG(e,t){return e.items.forEach(n=>t.union(n.bounds)),t.x1=e.padding,t.y1=e.padding,t}function OG(e,t,n){var i=t.padding,r=i-n.x,o=i-n.y;if(!t.datum.title)(r||o)&&Bl(e,n,r,o);else{var s=t.items[1].items[0],a=s.anchor,u=t.titlePadding||0,l=i-s.x,c=i-s.y;switch(s.orient){case ki:r+=Math.ceil(s.bounds.width())+u;break;case Di:case ts:break;default:o+=s.bounds.height()+u}switch((r||o)&&Bl(e,n,r,o),s.orient){case ki:c+=Ja(t,n,s,a,1,1);break;case Di:l+=Ja(t,n,s,fn,0,0)+u,c+=Ja(t,n,s,a,1,1);break;case ts:l+=Ja(t,n,s,a,0,0),c+=Ja(t,n,s,fn,-1,0,1)+u;break;default:l+=Ja(t,n,s,a,0,0)}(l||c)&&Bl(e,s,l,c),(l=Math.round(s.bounds.x1-i))<0&&(Bl(e,n,-l,0),Bl(e,s,-l,0))}}function Ja(e,t,n,i,r,o,s){const a=e.datum.type!=="symbol",u=n.datum.vgrad,l=a&&(o||!u)&&!s?t.items[0]:t,c=l.bounds[r?"y2":"x2"]-e.padding,f=u&&o?c:0,d=u&&o?0:c,h=r<=0?0:k2(n);return Math.round(i===U2?f:i===fn?d-h:.5*(c-h))}function Bl(e,t,n,i){t.x+=n,t.y+=i,t.bounds.translate(n,i),t.mark.bounds.translate(n,i),e.dirty(t)}function RG(e){const t=e.reduce((n,i)=>(n[i.column]=Math.max(i.bounds.x2-i.x,n[i.column]||0),n),{});e.forEach(n=>{n.width=t[n.column],n.height=n.bounds.y2-n.y})}function NG(e,t,n,i,r){var o=t.items[0],s=o.frame,a=o.orient,u=o.anchor,l=o.offset,c=o.padding,f=o.items[0].items[0],d=o.items[1]&&o.items[1].items[0],h=a===ki||a===Di?i:n,p=0,g=0,m=0,y=0,b=0,x;if(s!==Zg?a===ki?(p=r.y2,h=r.y1):a===Di?(p=r.y1,h=r.y2):(p=r.x1,h=r.x2):a===ki&&(p=i,h=0),x=u===U2?p:u===fn?h:(p+h)/2,d&&d.text){switch(a){case Iu:case ts:b=f.bounds.height()+c;break;case ki:y=f.bounds.width()+c;break;case Di:y=-f.bounds.width()-c;break}Jt.clear().union(d.bounds),Jt.translate(y-(d.x||0),b-(d.y||0)),cu(d,"x",y)|cu(d,"y",b)&&(e.dirty(d),d.bounds.clear().union(Jt),d.mark.bounds.clear().union(Jt),e.dirty(d)),Jt.clear().union(d.bounds)}else Jt.clear();switch(Jt.union(f.bounds),a){case Iu:g=x,m=r.y1-Jt.height()-l;break;case ki:g=r.x1-Jt.width()-l,m=x;break;case Di:g=r.x2+Jt.width()+l,m=x;break;case ts:g=x,m=r.y2+l;break;default:g=o.x,m=o.y}return cu(o,"x",g)|cu(o,"y",m)&&(Jt.translate(g,m),e.dirty(o),o.bounds.clear().union(Jt),t.bounds.clear().union(Jt),e.dirty(o)),o.bounds}function T5(e){M.call(this,null,e)}G(T5,M,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach(i=>{e.layout&&CG(n,i,e.layout),PG(n,i,e)}),LG(e.mark.group)?t.reflow():t}});function LG(e){return e&&e.mark.role!=="legend-entry"}function PG(e,t,n){var i=t.items,r=Math.max(0,t.width||0),o=Math.max(0,t.height||0),s=new gt().set(0,0,r,o),a=s.clone(),u=s.clone(),l=[],c,f,d,h,p,g;for(p=0,g=i.length;p<g;++p)switch(f=i[p],f.role){case j2:h=xG(f)?a:u,h.union(EG(e,f,r,o));break;case q2:c=f;break;case W2:l.push(TG(e,f));break;case cG:case fG:case m5:case y5:case b5:case x5:case v5:case E5:a.union(f.bounds),u.union(f.bounds);break;default:s.union(f.bounds)}if(l.length){const m={};l.forEach(y=>{d=y.orient||Di,d!==G2&&(m[d]||(m[d]=[])).push(y)});for(const y in m){const b=m[y];D5(e,b,DG(b,y,n.legends,a,u,r,o))}l.forEach(y=>{const b=y.bounds;if(b.equals(y._bounds)||(y.bounds=y._bounds,e.dirty(y),y.bounds=b,e.dirty(y)),n.autosize&&(n.autosize.type===w5||n.autosize.type===A5||n.autosize.type===S5))switch(y.orient){case ki:case Di:s.add(b.x1,0).add(b.x2,0);break;case Iu:case ts:s.add(0,b.y1).add(0,b.y2)}else s.union(b)})}s.union(a).union(u),c&&s.union(NG(e,c,r,o,s)),t.clip&&s.set(0,0,t.width||0,t.height||0),IG(e,t,s,n)}function IG(e,t,n,i){const r=i.autosize||{},o=r.type;if(e._autosize<1||!o)return;let s=e._width,a=e._height,u=Math.max(0,t.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-u)),h=Math.max(0,Math.ceil(n.y2-c));if(r.contains===dG){const p=e.padding();s-=p.left+p.right,a-=p.top+p.bottom}o===G2?(l=0,f=0,u=s,c=a):o===w5?(u=Math.max(0,s-l-d),c=Math.max(0,a-f-h)):o===A5?(u=Math.max(0,s-l-d),a=c+f+h):o===S5?(s=u+l+d,c=Math.max(0,a-f-h)):o===pG&&(s=u+l+d,a=c+f+h),e._resizeView(s,a,u,c,[l,f],r.resize)}const zG=Object.freeze(Object.defineProperty({__proto__:null,bound:C5,identifier:V2,mark:$5,overlap:_5,render:k5,viewlayout:T5},Symbol.toStringTag,{value:"Module"}));function M5(e){M.call(this,null,e)}G(M5,M,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.scale,s=e.count==null?e.values?e.values.length:10:e.count,a=f2(o,s,e.minstep),u=e.format||oM(n,o,a,e.formatSpecifier,e.formatType,!!e.values),l=e.values?rM(o,e.values,a):d2(o,a);return r&&(i.rem=r),r=l.map((c,f)=>Oe({index:f/(l.length-1||1),value:c,label:u(c)})),e.extra&&r.length&&r.push(Oe({index:-1,extra:{value:r[0].value},label:""})),i.source=r,i.add=r,this.value=r,i}});function O5(e){M.call(this,null,e)}function BG(){return Oe({})}function UG(e){const t=vf().test(n=>n.exit);return t.lookup=n=>t.get(e(n)),t}G(O5,M,{transform(e,t){var n=t.dataflow,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.item||BG,o=e.key||te,s=this.value;return Z(i.encode)&&(i.encode=null),s&&(e.modified("key")||t.modified(o))&&L("DataJoin does not support modified key function or fields."),s||(t=t.addAll(),this.value=s=UG(o)),t.visit(t.ADD,a=>{const u=o(a);let l=s.get(u);l?l.exit?(s.empty--,i.add.push(l)):i.mod.push(l):(l=r(a),s.set(u,l),i.add.push(l)),l.datum=a,l.exit=!1}),t.visit(t.MOD,a=>{const u=o(a),l=s.get(u);l&&(l.datum=a,i.mod.push(l))}),t.visit(t.REM,a=>{const u=o(a),l=s.get(u);a===l.datum&&!l.exit&&(i.rem.push(l),l.exit=!0,++s.empty)}),t.changed(t.ADD_MOD)&&i.modifies("datum"),(t.clean()||e.clean&&s.empty>n.cleanThreshold)&&n.runAfter(s.clean),i}});function R5(e){M.call(this,null,e)}G(R5,M,{transform(e,t){var n=t.fork(t.ADD_REM),i=e.mod||!1,r=e.encoders,o=t.encode;if(Z(o))if(n.changed()||o.every(f=>r[f]))o=o[0],n.encode=null;else return t.StopPropagation;var s=o==="enter",a=r.update||As,u=r.enter||As,l=r.exit||As,c=(o&&!s?r[o]:a)||As;if(t.changed(t.ADD)&&(t.visit(t.ADD,f=>{u(f,e),a(f,e)}),n.modifies(u.output),n.modifies(a.output),c!==As&&c!==a&&(t.visit(t.ADD,f=>{c(f,e)}),n.modifies(c.output))),t.changed(t.REM)&&l!==As&&(t.visit(t.REM,f=>{l(f,e)}),n.modifies(l.output)),s||c!==As){const f=t.MOD|(e.modified()?t.REFLOW:0);s?(t.visit(f,d=>{const h=u(d,e)||i;(c(d,e)||h)&&n.mod.push(d)}),n.mod.length&&n.modifies(u.output)):t.visit(f,d=>{(c(d,e)||i)&&n.mod.push(d)}),n.mod.length&&n.modifies(c.output)}return n.changed()?n:t.StopPropagation}});function N5(e){M.call(this,[],e)}G(N5,M,{transform(e,t){if(this.value!=null&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.type||th,s=e.scale,a=+e.limit,u=f2(s,e.count==null?5:e.count,e.minstep),l=!!e.values||o===th,c=e.format||lM(n,s,u,o,e.formatSpecifier,e.formatType,l),f=e.values||uM(s,u),d,h,p,g,m;return r&&(i.rem=r),o===th?(a&&f.length>a?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),r=f.slice(0,a-1),m=!0):r=f,be(p=e.size)?(!e.values&&s(r[0])===0&&(r=r.slice(1)),g=r.reduce((y,b)=>Math.max(y,p(b,e)),0)):p=wn(g=p||8),r=r.map((y,b)=>Oe({index:b,label:c(y,b,r),value:y,offset:g,size:p(y,e)})),m&&(m=f[r.length],r.push(Oe({index:r.length,label:`…${f.length-r.length} entries`,value:m,offset:g,size:p(m,e)})))):o===pj?(d=s.domain(),h=tM(s,d[0],$e(d)),f.length<3&&!e.values&&d[0]!==$e(d)&&(f=[d[0],$e(d)]),r=f.map((y,b)=>Oe({index:b,label:c(y,b,f),value:y,perc:h(y)}))):(p=f.length-1,h=Cj(s),r=f.map((y,b)=>Oe({index:b,label:c(y,b,f),value:y,perc:b?h(y):0,perc2:b===p?1:h(f[b+1])}))),i.source=r,i.add=r,this.value=r,i}});const jG=e=>e.source.x,qG=e=>e.source.y,WG=e=>e.target.x,GG=e=>e.target.y;function Y2(e){M.call(this,{},e)}Y2.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"}]};G(Y2,M,{transform(e,t){var n=e.sourceX||jG,i=e.sourceY||qG,r=e.targetX||WG,o=e.targetY||GG,s=e.as||"path",a=e.orient||"vertical",u=e.shape||"line",l=TC.get(u+"-"+a)||TC.get(u);return l||L("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,c=>{c[s]=l(n(c),i(c),r(c),o(c))}),t.reflow(e.modified()).modifies(s)}});const L5=(e,t,n,i)=>"M"+e+","+t+"L"+n+","+i,HG=(e,t,n,i)=>L5(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),P5=(e,t,n,i)=>{var r=n-e,o=i-t,s=Math.hypot(r,o)/2,a=180*Math.atan2(o,r)/Math.PI;return"M"+e+","+t+"A"+s+","+s+" "+a+" 0 1 "+n+","+i},VG=(e,t,n,i)=>P5(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),I5=(e,t,n,i)=>{const r=n-e,o=i-t,s=.2*(r+o),a=.2*(o-r);return"M"+e+","+t+"C"+(e+s)+","+(t+a)+" "+(n+a)+","+(i-s)+" "+n+","+i},YG=(e,t,n,i)=>I5(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),XG=(e,t,n,i)=>"M"+e+","+t+"V"+i+"H"+n,KG=(e,t,n,i)=>"M"+e+","+t+"H"+n+"V"+i,JG=(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),s=Math.cos(n),a=Math.sin(n),u=Math.abs(n-e)>Math.PI?n<=e:n>e;return"M"+t*r+","+t*o+"A"+t+","+t+" 0 0,"+(u?1:0)+" "+t*s+","+t*a+"L"+i*s+","+i*a},QG=(e,t,n,i)=>{const r=(e+n)/2;return"M"+e+","+t+"C"+r+","+t+" "+r+","+i+" "+n+","+i},ZG=(e,t,n,i)=>{const r=(t+i)/2;return"M"+e+","+t+"C"+e+","+r+" "+n+","+r+" "+n+","+i},eH=(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),s=Math.cos(n),a=Math.sin(n),u=(t+i)/2;return"M"+t*r+","+t*o+"C"+u*r+","+u*o+" "+u*s+","+u*a+" "+i*s+","+i*a},TC=vf({line:L5,"line-radial":HG,arc:P5,"arc-radial":VG,curve:I5,"curve-radial":YG,"orthogonal-horizontal":XG,"orthogonal-vertical":KG,"orthogonal-radial":JG,"diagonal-horizontal":QG,"diagonal-vertical":ZG,"diagonal-radial":eH});function X2(e){M.call(this,null,e)}X2.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"]}]};G(X2,M,{transform(e,t){var n=e.as||["startAngle","endAngle"],i=n[0],r=n[1],o=e.field||xf,s=e.startAngle||0,a=e.endAngle!=null?e.endAngle:2*Math.PI,u=t.source,l=u.map(o),c=l.length,f=s,d=(a-s)/ED(l),h=Yn(c),p,g,m;for(e.sort&&h.sort((y,b)=>l[y]-l[b]),p=0;p<c;++p)m=l[h[p]],g=u[h[p]],g[i]=f,g[r]=f+=m*d;return this.value=l,t.reflow(e.modified()).modifies(n)}});const tH=5;function nH(e){const t=e.type;return!e.bins&&(t===Mu||t===Sf||t===Cf)}function z5(e){return u2(e)&&e!==hr}const iH=yr(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function B5(e){M.call(this,null,e),this.modified(!0)}G(B5,M,{transform(e,t){var n=t.dataflow,i=this.value,r=rH(e);(!i||r!==i.type)&&(this.value=i=Me(r)());for(r in e)if(!iH[r]){if(r==="padding"&&z5(i.type))continue;be(i[r])?i[r](e[r]):n.warn("Unsupported scale property: "+r)}return cH(i,e,lH(i,e,sH(i,e,n))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});function rH(e){var t=e.type,n="",i;return t===hr?hr+"-"+Mu:(oH(e)&&(i=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=i===2?hr+"-":i===3?fl+"-":""),(n+t||Mu).toLowerCase())}function oH(e){const t=e.type;return u2(t)&&t!==aa&&t!==ua&&(e.scheme||e.range&&e.range.length&&e.range.every(Ke))}function sH(e,t,n){const i=aH(e,t.domainRaw,n);if(i>-1)return i;var r=t.domain,o=e.type,s=t.zero||t.zero===void 0&&nH(e),a,u;if(!r)return 0;if((s||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(a=(r=r.slice()).length-1||1,s&&(r[0]>0&&(r[0]=0),r[a]<0&&(r[a]=0)),t.domainMin!=null&&(r[0]=t.domainMin),t.domainMax!=null&&(r[a]=t.domainMax),t.domainMid!=null)){u=t.domainMid;const l=u>r[a]?a+1:u<r[0]?0:a;l!==a&&n.warn("Scale domainMid exceeds domain min or max.",u),r.splice(l,0,u)}return z5(o)&&t.padding&&r[0]!==$e(r)&&(r=uH(o,r,t.range,t.padding,t.exponent,t.constant)),e.domain(U5(o,r,n)),o===r2&&e.unknown(t.domainImplicit?ky:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&f2(e,t.nice)||null),r.length}function aH(e,t,n){return t?(e.domain(U5(e.type,t,n)),t.length):-1}function uH(e,t,n,i,r,o){var s=Math.abs($e(n)-n[0]),a=s/(s-2*i),u=e===fo?nD(t,null,a):e===Cf?gy(t,null,a,.5):e===Sf?gy(t,null,a,r||1):e===Ig?iD(t,null,a,o||1):tD(t,null,a);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function U5(e,t,n){if(KT(e)){var i=Math.abs(t.reduce((r,o)=>r+(o<0?-1:o>0?1:0),0));i!==t.length&&n.warn("Log scale domain includes zero: "+re(t))}return t}function lH(e,t,n){let i=t.bins;if(i&&!Z(i)){const r=e.domain(),o=r[0],s=$e(r),a=i.step;let u=i.start==null?o:i.start,l=i.stop==null?s:i.stop;a||L("Scale bins parameter missing step property."),u<o&&(u=a*Math.ceil(o/a)),l>s&&(l=a*Math.floor(s/a)),i=Yn(u,l+a/2,a)}return i?e.bins=i:e.bins&&delete e.bins,e.type===o2&&(i?!t.domain&&!t.domainRaw&&(e.domain(i),n=i.length):e.bins=e.domain()),n}function cH(e,t,n){var i=e.type,r=t.round||!1,o=t.range;if(t.rangeStep!=null)o=fH(i,t,n);else if(t.scheme&&(o=dH(i,t,n),be(o))){if(e.interpolator)return e.interpolator(o);L(`Scale type ${i} does not support interpolating color schemes.`)}if(o&&JT(i))return e.interpolator(Ug(Hy(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(l2(t.interpolate,t.interpolateGamma)):be(e.round)?e.round(r):be(e.rangeRound)&&e.interpolate(r?tg:bf),o&&e.range(Hy(o,t.reverse))}function fH(e,t,n){e!==WT&&e!==Ty&&L("Only band and point scales support rangeStep.");var i=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,r=e===Ty?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*i2(n,r,i)]}function dH(e,t,n){var i=t.schemeExtent,r,o;return Z(t.scheme)?o=Ug(t.scheme,t.interpolate,t.interpolateGamma):(r=t.scheme.toLowerCase(),o=c2(r),o||L(`Unrecognized scheme name: ${t.scheme}`)),n=e===Bg?n+1:e===o2?n-1:e===Ou||e===zg?+t.schemeCount||tH:n,JT(e)?MC(o,i,t.reverse):be(o)?eM(MC(o,i),n):e===r2?o:o.slice(0,n)}function MC(e,t,n){return be(e)&&(t||n)?ZT(e,Hy(t||[0,1],n)):e}function Hy(e,t){return t?e.slice().reverse():e}function j5(e){M.call(this,null,e)}G(j5,M,{transform(e,t){const n=e.modified("sort")||t.changed(t.ADD)||t.modified(e.sort.fields)||t.modified("datum");return n&&t.source.sort(Da(e.sort)),this.modified(n),t}});const OC="zero",q5="center",W5="normalize",G5=["y0","y1"];function K2(e){M.call(this,null,e)}K2.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:OC,values:[OC,q5,W5]},{name:"as",type:"string",array:!0,length:2,default:G5}]};G(K2,M,{transform(e,t){var n=e.as||G5,i=n[0],r=n[1],o=Da(e.sort),s=e.field||xf,a=e.offset===q5?hH:e.offset===W5?pH:gH,u,l,c,f;for(u=mH(t.source,e.groupby,o,s),l=0,c=u.length,f=u.max;l<c;++l)a(u[l],f,s,i,r);return t.reflow(e.modified()).modifies(n)}});function hH(e,t,n,i,r){for(var o=(t-e.sum)/2,s=e.length,a=0,u;a<s;++a)u=e[a],u[i]=o,u[r]=o+=Math.abs(n(u))}function pH(e,t,n,i,r){for(var o=1/e.sum,s=0,a=e.length,u=0,l=0,c;u<a;++u)c=e[u],c[i]=s,c[r]=s=o*(l+=Math.abs(n(c)))}function gH(e,t,n,i,r){for(var o=0,s=0,a=e.length,u=0,l,c;u<a;++u)c=e[u],l=+n(c),l<0?(c[i]=s,c[r]=s+=l):(c[i]=o,c[r]=o+=l)}function mH(e,t,n,i){var r=[],o=g=>g(c),s,a,u,l,c,f,d,h,p;if(t==null)r.push(e.slice());else for(s={},a=0,u=e.length;a<u;++a)c=e[a],f=t.map(o),d=s[f],d||(s[f]=d=[],r.push(d)),d.push(c);for(f=0,p=0,l=r.length;f<l;++f){for(d=r[f],a=0,h=0,u=d.length;a<u;++a)h+=Math.abs(i(d[a]));d.sum=h,h>p&&(p=h),n&&d.sort(n)}return r.max=p,r}const yH=Object.freeze(Object.defineProperty({__proto__:null,axisticks:M5,datajoin:O5,encode:R5,legendentries:N5,linkpath:Y2,pie:X2,scale:B5,sortitems:j5,stack:K2},Symbol.toStringTag,{value:"Module"}));var oe=1e-6,ep=1e-12,Ee=Math.PI,st=Ee/2,tp=Ee/4,An=Ee*2,ut=180/Ee,xe=Ee/180,Se=Math.abs,hl=Math.atan,yi=Math.atan2,ae=Math.cos,Cd=Math.ceil,H5=Math.exp,Vy=Math.hypot,np=Math.log,Wm=Math.pow,ne=Math.sin,ci=Math.sign||function(e){return e>0?1:e<0?-1:0},Sn=Math.sqrt,J2=Math.tan;function V5(e){return e>1?0:e<-1?Ee:Math.acos(e)}function zn(e){return e>1?st:e<-1?-st:Math.asin(e)}function zt(){}function ip(e,t){e&&NC.hasOwnProperty(e.type)&&NC[e.type](e,t)}var RC={Feature:function(e,t){ip(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++i<r;)ip(n[i].geometry,t)}},NC={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)e=n[i],t.point(e[0],e[1],e[2])},LineString:function(e,t){Yy(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)Yy(n[i],t,0)},Polygon:function(e,t){LC(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)LC(n[i],t)},GeometryCollection:function(e,t){for(var n=e.geometries,i=-1,r=n.length;++i<r;)ip(n[i],t)}};function Yy(e,t,n){var i=-1,r=e.length-n,o;for(t.lineStart();++i<r;)o=e[i],t.point(o[0],o[1],o[2]);t.lineEnd()}function LC(e,t){var n=-1,i=e.length;for(t.polygonStart();++n<i;)Yy(e[n],t,1);t.polygonEnd()}function Vr(e,t){e&&RC.hasOwnProperty(e.type)?RC[e.type](e,t):ip(e,t)}var rp=new vn,op=new vn,Y5,X5,Xy,Ky,Jy,Er={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){rp=new vn,Er.lineStart=bH,Er.lineEnd=xH},polygonEnd:function(){var e=+rp;op.add(e<0?An+e:e),this.lineStart=this.lineEnd=this.point=zt},sphere:function(){op.add(An)}};function bH(){Er.point=vH}function xH(){K5(Y5,X5)}function vH(e,t){Er.point=K5,Y5=e,X5=t,e*=xe,t*=xe,Xy=e,Ky=ae(t=t/2+tp),Jy=ne(t)}function K5(e,t){e*=xe,t*=xe,t=t/2+tp;var n=e-Xy,i=n>=0?1:-1,r=i*n,o=ae(t),s=ne(t),a=Jy*s,u=Ky*o+a*ae(r),l=a*i*ne(r);rp.add(yi(l,u)),Xy=e,Ky=o,Jy=s}function EH(e){return op=new vn,Vr(e,Er),op*2}function sp(e){return[yi(e[1],e[0]),zn(e[2])]}function ca(e){var t=e[0],n=e[1],i=ae(n);return[i*ae(t),i*ne(t),ne(n)]}function $d(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function zu(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function Gm(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function _d(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function ap(e){var t=Sn(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var tt,Tn,rt,Hn,Ps,J5,Q5,bu,_c,Mo,ho,qr={point:Qy,lineStart:PC,lineEnd:IC,polygonStart:function(){qr.point=eO,qr.lineStart=wH,qr.lineEnd=AH,_c=new vn,Er.polygonStart()},polygonEnd:function(){Er.polygonEnd(),qr.point=Qy,qr.lineStart=PC,qr.lineEnd=IC,rp<0?(tt=-(rt=180),Tn=-(Hn=90)):_c>oe?Hn=90:_c<-oe&&(Tn=-90),ho[0]=tt,ho[1]=rt},sphere:function(){tt=-(rt=180),Tn=-(Hn=90)}};function Qy(e,t){Mo.push(ho=[tt=e,rt=e]),t<Tn&&(Tn=t),t>Hn&&(Hn=t)}function Z5(e,t){var n=ca([e*xe,t*xe]);if(bu){var i=zu(bu,n),r=[i[1],-i[0],0],o=zu(r,i);ap(o),o=sp(o);var s=e-Ps,a=s>0?1:-1,u=o[0]*ut*a,l,c=Se(s)>180;c^(a*Ps<u&&u<a*e)?(l=o[1]*ut,l>Hn&&(Hn=l)):(u=(u+360)%360-180,c^(a*Ps<u&&u<a*e)?(l=-o[1]*ut,l<Tn&&(Tn=l)):(t<Tn&&(Tn=t),t>Hn&&(Hn=t))),c?e<Ps?Gn(tt,e)>Gn(tt,rt)&&(rt=e):Gn(e,rt)>Gn(tt,rt)&&(tt=e):rt>=tt?(e<tt&&(tt=e),e>rt&&(rt=e)):e>Ps?Gn(tt,e)>Gn(tt,rt)&&(rt=e):Gn(e,rt)>Gn(tt,rt)&&(tt=e)}else Mo.push(ho=[tt=e,rt=e]);t<Tn&&(Tn=t),t>Hn&&(Hn=t),bu=n,Ps=e}function PC(){qr.point=Z5}function IC(){ho[0]=tt,ho[1]=rt,qr.point=Qy,bu=null}function eO(e,t){if(bu){var n=e-Ps;_c.add(Se(n)>180?n+(n>0?360:-360):n)}else J5=e,Q5=t;Er.point(e,t),Z5(e,t)}function wH(){Er.lineStart()}function AH(){eO(J5,Q5),Er.lineEnd(),Se(_c)>oe&&(tt=-(rt=180)),ho[0]=tt,ho[1]=rt,bu=null}function Gn(e,t){return(t-=e)<0?t+360:t}function SH(e,t){return e[0]-t[0]}function zC(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}function CH(e){var t,n,i,r,o,s,a;if(Hn=rt=-(tt=Tn=1/0),Mo=[],Vr(e,qr),n=Mo.length){for(Mo.sort(SH),t=1,i=Mo[0],o=[i];t<n;++t)r=Mo[t],zC(i,r[0])||zC(i,r[1])?(Gn(i[0],r[1])>Gn(i[0],i[1])&&(i[1]=r[1]),Gn(r[0],i[1])>Gn(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(s=-1/0,n=o.length-1,t=0,i=o[n];t<=n;i=r,++t)r=o[t],(a=Gn(i[1],r[0]))>s&&(s=a,tt=r[0],rt=i[1])}return Mo=ho=null,tt===1/0||Tn===1/0?[[NaN,NaN],[NaN,NaN]]:[[tt,Tn],[rt,Hn]]}var cc,up,lp,cp,fp,dp,hp,pp,Zy,eb,tb,tO,nO,dn,hn,pn,Ti={sphere:zt,point:Q2,lineStart:BC,lineEnd:UC,polygonStart:function(){Ti.lineStart=FH,Ti.lineEnd=kH},polygonEnd:function(){Ti.lineStart=BC,Ti.lineEnd=UC}};function Q2(e,t){e*=xe,t*=xe;var n=ae(t);Pf(n*ae(e),n*ne(e),ne(t))}function Pf(e,t,n){++cc,lp+=(e-lp)/cc,cp+=(t-cp)/cc,fp+=(n-fp)/cc}function BC(){Ti.point=$H}function $H(e,t){e*=xe,t*=xe;var n=ae(t);dn=n*ae(e),hn=n*ne(e),pn=ne(t),Ti.point=_H,Pf(dn,hn,pn)}function _H(e,t){e*=xe,t*=xe;var n=ae(t),i=n*ae(e),r=n*ne(e),o=ne(t),s=yi(Sn((s=hn*o-pn*r)*s+(s=pn*i-dn*o)*s+(s=dn*r-hn*i)*s),dn*i+hn*r+pn*o);up+=s,dp+=s*(dn+(dn=i)),hp+=s*(hn+(hn=r)),pp+=s*(pn+(pn=o)),Pf(dn,hn,pn)}function UC(){Ti.point=Q2}function FH(){Ti.point=DH}function kH(){iO(tO,nO),Ti.point=Q2}function DH(e,t){tO=e,nO=t,e*=xe,t*=xe,Ti.point=iO;var n=ae(t);dn=n*ae(e),hn=n*ne(e),pn=ne(t),Pf(dn,hn,pn)}function iO(e,t){e*=xe,t*=xe;var n=ae(t),i=n*ae(e),r=n*ne(e),o=ne(t),s=hn*o-pn*r,a=pn*i-dn*o,u=dn*r-hn*i,l=Vy(s,a,u),c=zn(l),f=l&&-c/l;Zy.add(f*s),eb.add(f*a),tb.add(f*u),up+=c,dp+=c*(dn+(dn=i)),hp+=c*(hn+(hn=r)),pp+=c*(pn+(pn=o)),Pf(dn,hn,pn)}function TH(e){cc=up=lp=cp=fp=dp=hp=pp=0,Zy=new vn,eb=new vn,tb=new vn,Vr(e,Ti);var t=+Zy,n=+eb,i=+tb,r=Vy(t,n,i);return r<ep&&(t=dp,n=hp,i=pp,up<oe&&(t=lp,n=cp,i=fp),r=Vy(t,n,i),r<ep)?[NaN,NaN]:[yi(n,t)*ut,zn(i/r)*ut]}function nb(e,t){function n(i,r){return i=e(i,r),t(i[0],i[1])}return e.invert&&t.invert&&(n.invert=function(i,r){return i=t.invert(i,r),i&&e.invert(i[0],i[1])}),n}function ib(e,t){return Se(e)>Ee&&(e-=Math.round(e/An)*An),[e,t]}ib.invert=ib;function rO(e,t,n){return(e%=An)?t||n?nb(qC(e),WC(t,n)):qC(e):t||n?WC(t,n):ib}function jC(e){return function(t,n){return t+=e,Se(t)>Ee&&(t-=Math.round(t/An)*An),[t,n]}}function qC(e){var t=jC(e);return t.invert=jC(-e),t}function WC(e,t){var n=ae(e),i=ne(e),r=ae(t),o=ne(t);function s(a,u){var l=ae(u),c=ae(a)*l,f=ne(a)*l,d=ne(u),h=d*n+c*i;return[yi(f*r-h*o,c*n-d*i),zn(h*r+f*o)]}return s.invert=function(a,u){var l=ae(u),c=ae(a)*l,f=ne(a)*l,d=ne(u),h=d*r-f*o;return[yi(f*r+d*o,c*n+h*i),zn(h*n-c*i)]},s}function MH(e){e=rO(e[0]*xe,e[1]*xe,e.length>2?e[2]*xe:0);function t(n){return n=e(n[0]*xe,n[1]*xe),n[0]*=ut,n[1]*=ut,n}return t.invert=function(n){return n=e.invert(n[0]*xe,n[1]*xe),n[0]*=ut,n[1]*=ut,n},t}function OH(e,t,n,i,r,o){if(n){var s=ae(t),a=ne(t),u=i*n;r==null?(r=t+i*An,o=t-u/2):(r=GC(s,r),o=GC(s,o),(i>0?r<o:r>o)&&(r+=i*An));for(var l,c=r;i>0?c>o:c<o;c-=u)l=sp([s,-a*ae(c),-a*ne(c)]),e.point(l[0],l[1])}}function GC(e,t){t=ca(t),t[0]-=e,ap(t);var n=V5(-t[1]);return((-t[2]<0?-n:n)+An-oe)%An}function oO(){var e=[],t;return{point:function(n,i,r){t.push([n,i,r])},lineStart:function(){e.push(t=[])},lineEnd:zt,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}function ch(e,t){return Se(e[0]-t[0])<oe&&Se(e[1]-t[1])<oe}function Fd(e,t,n,i){this.x=e,this.z=t,this.o=n,this.e=i,this.v=!1,this.n=this.p=null}function sO(e,t,n,i,r){var o=[],s=[],a,u;if(e.forEach(function(p){if(!((g=p.length-1)<=0)){var g,m=p[0],y=p[g],b;if(ch(m,y)){if(!m[2]&&!y[2]){for(r.lineStart(),a=0;a<g;++a)r.point((m=p[a])[0],m[1]);r.lineEnd();return}y[0]+=2*oe}o.push(b=new Fd(m,p,null,!0)),s.push(b.o=new Fd(m,null,b,!1)),o.push(b=new Fd(y,p,null,!1)),s.push(b.o=new Fd(y,null,b,!0))}}),!!o.length){for(s.sort(t),HC(o),HC(s),a=0,u=s.length;a<u;++a)s[a].e=n=!n;for(var l=o[0],c,f;;){for(var d=l,h=!0;d.v;)if((d=d.n)===l)return;c=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(a=0,u=c.length;a<u;++a)r.point((f=c[a])[0],f[1]);else i(d.x,d.n.x,1,r);d=d.n}else{if(h)for(c=d.p.z,a=c.length-1;a>=0;--a)r.point((f=c[a])[0],f[1]);else i(d.x,d.p.x,-1,r);d=d.p}d=d.o,c=d.z,h=!h}while(!d.v);r.lineEnd()}}}function HC(e){if(t=e.length){for(var t,n=0,i=e[0],r;++n<t;)i.n=r=e[n],r.p=i,i=r;i.n=r=e[0],r.p=i}}function Hm(e){return Se(e[0])<=Ee?e[0]:ci(e[0])*((Se(e[0])+Ee)%An-Ee)}function RH(e,t){var n=Hm(t),i=t[1],r=ne(i),o=[ne(n),-ae(n),0],s=0,a=0,u=new vn;r===1?i=st+oe:r===-1&&(i=-st-oe);for(var l=0,c=e.length;l<c;++l)if(d=(f=e[l]).length)for(var f,d,h=f[d-1],p=Hm(h),g=h[1]/2+tp,m=ne(g),y=ae(g),b=0;b<d;++b,p=v,m=A,y=E,h=x){var x=f[b],v=Hm(x),w=x[1]/2+tp,A=ne(w),E=ae(w),S=v-p,C=S>=0?1:-1,_=C*S,k=_>Ee,N=m*A;if(u.add(yi(N*C*ne(_),y*E+N*ae(_))),s+=k?S+C*An:S,k^p>=n^v>=n){var T=zu(ca(h),ca(x));ap(T);var F=zu(o,T);ap(F);var $=(k^S>=0?-1:1)*zn(F[2]);(i>$||i===$&&(T[0]||T[1]))&&(a+=k^S>=0?1:-1)}}return(s<-oe||s<oe&&u<-ep)^a&1}function aO(e,t,n,i){return function(r){var o=t(r),s=oO(),a=t(s),u=!1,l,c,f,d={point:h,lineStart:g,lineEnd:m,polygonStart:function(){d.point=y,d.lineStart=b,d.lineEnd=x,c=[],l=[]},polygonEnd:function(){d.point=h,d.lineStart=g,d.lineEnd=m,c=vD(c);var v=RH(l,i);c.length?(u||(r.polygonStart(),u=!0),sO(c,LH,v,n,r)):v&&(u||(r.polygonStart(),u=!0),r.lineStart(),n(null,null,1,r),r.lineEnd()),u&&(r.polygonEnd(),u=!1),c=l=null},sphere:function(){r.polygonStart(),r.lineStart(),n(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(v,w){e(v,w)&&r.point(v,w)}function p(v,w){o.point(v,w)}function g(){d.point=p,o.lineStart()}function m(){d.point=h,o.lineEnd()}function y(v,w){f.push([v,w]),a.point(v,w)}function b(){a.lineStart(),f=[]}function x(){y(f[0][0],f[0][1]),a.lineEnd();var v=a.clean(),w=s.result(),A,E=w.length,S,C,_;if(f.pop(),l.push(f),f=null,!!E){if(v&1){if(C=w[0],(S=C.length-1)>0){for(u||(r.polygonStart(),u=!0),r.lineStart(),A=0;A<S;++A)r.point((_=C[A])[0],_[1]);r.lineEnd()}return}E>1&&v&2&&w.push(w.pop().concat(w.shift())),c.push(w.filter(NH))}}return d}}function NH(e){return e.length>1}function LH(e,t){return((e=e.x)[0]<0?e[1]-st-oe:st-e[1])-((t=t.x)[0]<0?t[1]-st-oe:st-t[1])}const VC=aO(function(){return!0},PH,zH,[-Ee,-st]);function PH(e){var t=NaN,n=NaN,i=NaN,r;return{lineStart:function(){e.lineStart(),r=1},point:function(o,s){var a=o>0?Ee:-Ee,u=Se(o-t);Se(u-Ee)<oe?(e.point(t,n=(n+s)/2>0?st:-st),e.point(i,n),e.lineEnd(),e.lineStart(),e.point(a,n),e.point(o,n),r=0):i!==a&&u>=Ee&&(Se(t-i)<oe&&(t-=i*oe),Se(o-a)<oe&&(o-=a*oe),n=IH(t,n,o,s),e.point(i,n),e.lineEnd(),e.lineStart(),e.point(a,n),r=0),e.point(t=o,n=s),i=a},lineEnd:function(){e.lineEnd(),t=n=NaN},clean:function(){return 2-r}}}function IH(e,t,n,i){var r,o,s=ne(e-n);return Se(s)>oe?hl((ne(t)*(o=ae(i))*ne(n)-ne(i)*(r=ae(t))*ne(e))/(r*o*s)):(t+i)/2}function zH(e,t,n,i){var r;if(e==null)r=n*st,i.point(-Ee,r),i.point(0,r),i.point(Ee,r),i.point(Ee,0),i.point(Ee,-r),i.point(0,-r),i.point(-Ee,-r),i.point(-Ee,0),i.point(-Ee,r);else if(Se(e[0]-t[0])>oe){var o=e[0]<t[0]?Ee:-Ee;r=n*o/2,i.point(-o,r),i.point(0,r),i.point(o,r)}else i.point(t[0],t[1])}function BH(e){var t=ae(e),n=2*xe,i=t>0,r=Se(t)>oe;function o(c,f,d,h){OH(h,e,n,d,c,f)}function s(c,f){return ae(c)*ae(f)>t}function a(c){var f,d,h,p,g;return{lineStart:function(){p=h=!1,g=1},point:function(m,y){var b=[m,y],x,v=s(m,y),w=i?v?0:l(m,y):v?l(m+(m<0?Ee:-Ee),y):0;if(!f&&(p=h=v)&&c.lineStart(),v!==h&&(x=u(f,b),(!x||ch(f,x)||ch(b,x))&&(b[2]=1)),v!==h)g=0,v?(c.lineStart(),x=u(b,f),c.point(x[0],x[1])):(x=u(f,b),c.point(x[0],x[1],2),c.lineEnd()),f=x;else if(r&&f&&i^v){var A;!(w&d)&&(A=u(b,f,!0))&&(g=0,i?(c.lineStart(),c.point(A[0][0],A[0][1]),c.point(A[1][0],A[1][1]),c.lineEnd()):(c.point(A[1][0],A[1][1]),c.lineEnd(),c.lineStart(),c.point(A[0][0],A[0][1],3)))}v&&(!f||!ch(f,b))&&c.point(b[0],b[1]),f=b,h=v,d=w},lineEnd:function(){h&&c.lineEnd(),f=null},clean:function(){return g|(p&&h)<<1}}}function u(c,f,d){var h=ca(c),p=ca(f),g=[1,0,0],m=zu(h,p),y=$d(m,m),b=m[0],x=y-b*b;if(!x)return!d&&c;var v=t*y/x,w=-t*b/x,A=zu(g,m),E=_d(g,v),S=_d(m,w);Gm(E,S);var C=A,_=$d(E,C),k=$d(C,C),N=_*_-k*($d(E,E)-1);if(!(N<0)){var T=Sn(N),F=_d(C,(-_-T)/k);if(Gm(F,E),F=sp(F),!d)return F;var $=c[0],D=f[0],P=c[1],z=f[1],I;D<$&&(I=$,$=D,D=I);var V=D-$,ue=Se(V-Ee)<oe,ie=ue||V<oe;if(!ue&&z<P&&(I=P,P=z,z=I),ie?ue?P+z>0^F[1]<(Se(F[0]-$)<oe?P:z):P<=F[1]&&F[1]<=z:V>Ee^($<=F[0]&&F[0]<=D)){var he=_d(C,(-_+T)/k);return Gm(he,E),[F,sp(he)]}}}function l(c,f){var d=i?e:Ee-e,h=0;return c<-d?h|=1:c>d&&(h|=2),f<-d?h|=4:f>d&&(h|=8),h}return aO(s,a,o,i?[0,-e]:[-Ee,e-Ee])}function UH(e,t,n,i,r,o){var s=e[0],a=e[1],u=t[0],l=t[1],c=0,f=1,d=u-s,h=l-a,p;if(p=n-s,!(!d&&p>0)){if(p/=d,d<0){if(p<c)return;p<f&&(f=p)}else if(d>0){if(p>f)return;p>c&&(c=p)}if(p=r-s,!(!d&&p<0)){if(p/=d,d<0){if(p>f)return;p>c&&(c=p)}else if(d>0){if(p<c)return;p<f&&(f=p)}if(p=i-a,!(!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=o-a,!(!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&&(e[0]=s+c*d,e[1]=a+c*h),f<1&&(t[0]=s+f*d,t[1]=a+f*h),!0}}}}}var fc=1e9,kd=-fc;function uO(e,t,n,i){function r(l,c){return e<=l&&l<=n&&t<=c&&c<=i}function o(l,c,f,d){var h=0,p=0;if(l==null||(h=s(l,f))!==(p=s(c,f))||u(l,c)<0^f>0)do d.point(h===0||h===3?e:n,h>1?i:t);while((h=(h+f+4)%4)!==p);else d.point(c[0],c[1])}function s(l,c){return Se(l[0]-e)<oe?c>0?0:3:Se(l[0]-n)<oe?c>0?2:1:Se(l[1]-t)<oe?c>0?1:0:c>0?3:2}function a(l,c){return u(l.x,c.x)}function u(l,c){var f=s(l,1),d=s(c,1);return f!==d?f-d: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=oO(),d,h,p,g,m,y,b,x,v,w,A,E={point:S,lineStart:N,lineEnd:T,polygonStart:_,polygonEnd:k};function S($,D){r($,D)&&c.point($,D)}function C(){for(var $=0,D=0,P=h.length;D<P;++D)for(var z=h[D],I=1,V=z.length,ue=z[0],ie,he,We=ue[0],pe=ue[1];I<V;++I)ie=We,he=pe,ue=z[I],We=ue[0],pe=ue[1],he<=i?pe>i&&(We-ie)*(i-he)>(pe-he)*(e-ie)&&++$:pe<=i&&(We-ie)*(i-he)<(pe-he)*(e-ie)&&--$;return $}function _(){c=f,d=[],h=[],A=!0}function k(){var $=C(),D=A&&$,P=(d=vD(d)).length;(D||P)&&(l.polygonStart(),D&&(l.lineStart(),o(null,null,1,l),l.lineEnd()),P&&sO(d,a,$,o,l),l.polygonEnd()),c=l,d=h=p=null}function N(){E.point=F,h&&h.push(p=[]),w=!0,v=!1,b=x=NaN}function T(){d&&(F(g,m),y&&v&&f.rejoin(),d.push(f.result())),E.point=S,v&&c.lineEnd()}function F($,D){var P=r($,D);if(h&&p.push([$,D]),w)g=$,m=D,y=P,w=!1,P&&(c.lineStart(),c.point($,D));else if(P&&v)c.point($,D);else{var z=[b=Math.max(kd,Math.min(fc,b)),x=Math.max(kd,Math.min(fc,x))],I=[$=Math.max(kd,Math.min(fc,$)),D=Math.max(kd,Math.min(fc,D))];UH(z,I,e,t,n,i)?(v||(c.lineStart(),c.point(z[0],z[1])),c.point(I[0],I[1]),P||c.lineEnd(),A=!1):P&&(c.lineStart(),c.point($,D),A=!1)}b=$,x=D,v=P}return E}}function YC(e,t,n){var i=Yn(e,t-oe,n).concat(t);return function(r){return i.map(function(o){return[r,o]})}}function XC(e,t,n){var i=Yn(e,t-oe,n).concat(t);return function(r){return i.map(function(o){return[o,r]})}}function jH(){var e,t,n,i,r,o,s,a,u=10,l=u,c=90,f=360,d,h,p,g,m=2.5;function y(){return{type:"MultiLineString",coordinates:b()}}function b(){return Yn(Cd(i/c)*c,n,c).map(p).concat(Yn(Cd(a/f)*f,s,f).map(g)).concat(Yn(Cd(t/u)*u,e,u).filter(function(x){return Se(x%c)>oe}).map(d)).concat(Yn(Cd(o/l)*l,r,l).filter(function(x){return Se(x%f)>oe}).map(h))}return y.lines=function(){return b().map(function(x){return{type:"LineString",coordinates:x}})},y.outline=function(){return{type:"Polygon",coordinates:[p(i).concat(g(s).slice(1),p(n).reverse().slice(1),g(a).reverse().slice(1))]}},y.extent=function(x){return arguments.length?y.extentMajor(x).extentMinor(x):y.extentMinor()},y.extentMajor=function(x){return arguments.length?(i=+x[0][0],n=+x[1][0],a=+x[0][1],s=+x[1][1],i>n&&(x=i,i=n,n=x),a>s&&(x=a,a=s,s=x),y.precision(m)):[[i,a],[n,s]]},y.extentMinor=function(x){return arguments.length?(t=+x[0][0],e=+x[1][0],o=+x[0][1],r=+x[1][1],t>e&&(x=t,t=e,e=x),o>r&&(x=o,o=r,r=x),y.precision(m)):[[t,o],[e,r]]},y.step=function(x){return arguments.length?y.stepMajor(x).stepMinor(x):y.stepMinor()},y.stepMajor=function(x){return arguments.length?(c=+x[0],f=+x[1],y):[c,f]},y.stepMinor=function(x){return arguments.length?(u=+x[0],l=+x[1],y):[u,l]},y.precision=function(x){return arguments.length?(m=+x,d=YC(o,r,90),h=XC(t,e,m),p=YC(a,s,90),g=XC(i,n,m),y):m},y.extentMajor([[-180,-90+oe],[180,90-oe]]).extentMinor([[-180,-80-oe],[180,80+oe]])}const Kc=e=>e;var Vm=new vn,rb=new vn,lO,cO,ob,sb,Yr={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){Yr.lineStart=qH,Yr.lineEnd=GH},polygonEnd:function(){Yr.lineStart=Yr.lineEnd=Yr.point=zt,Vm.add(Se(rb)),rb=new vn},result:function(){var e=Vm/2;return Vm=new vn,e}};function qH(){Yr.point=WH}function WH(e,t){Yr.point=fO,lO=ob=e,cO=sb=t}function fO(e,t){rb.add(sb*e-ob*t),ob=e,sb=t}function GH(){fO(lO,cO)}var Bu=1/0,gp=Bu,Jc=-Bu,mp=Jc,yp={point:HH,lineStart:zt,lineEnd:zt,polygonStart:zt,polygonEnd:zt,result:function(){var e=[[Bu,gp],[Jc,mp]];return Jc=mp=-(gp=Bu=1/0),e}};function HH(e,t){e<Bu&&(Bu=e),e>Jc&&(Jc=e),t<gp&&(gp=t),t>mp&&(mp=t)}var ab=0,ub=0,dc=0,bp=0,xp=0,fu=0,lb=0,cb=0,hc=0,dO,hO,ur,lr,ui={point:fa,lineStart:KC,lineEnd:JC,polygonStart:function(){ui.lineStart=XH,ui.lineEnd=KH},polygonEnd:function(){ui.point=fa,ui.lineStart=KC,ui.lineEnd=JC},result:function(){var e=hc?[lb/hc,cb/hc]:fu?[bp/fu,xp/fu]:dc?[ab/dc,ub/dc]:[NaN,NaN];return ab=ub=dc=bp=xp=fu=lb=cb=hc=0,e}};function fa(e,t){ab+=e,ub+=t,++dc}function KC(){ui.point=VH}function VH(e,t){ui.point=YH,fa(ur=e,lr=t)}function YH(e,t){var n=e-ur,i=t-lr,r=Sn(n*n+i*i);bp+=r*(ur+e)/2,xp+=r*(lr+t)/2,fu+=r,fa(ur=e,lr=t)}function JC(){ui.point=fa}function XH(){ui.point=JH}function KH(){pO(dO,hO)}function JH(e,t){ui.point=pO,fa(dO=ur=e,hO=lr=t)}function pO(e,t){var n=e-ur,i=t-lr,r=Sn(n*n+i*i);bp+=r*(ur+e)/2,xp+=r*(lr+t)/2,fu+=r,r=lr*e-ur*t,lb+=r*(ur+e),cb+=r*(lr+t),hc+=r*3,fa(ur=e,lr=t)}function gO(e){this._context=e}gO.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,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(e,t){switch(this._point){case 0:{this._context.moveTo(e,t),this._point=1;break}case 1:{this._context.lineTo(e,t);break}default:{this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,An);break}}},result:zt};var fb=new vn,Ym,mO,yO,pc,gc,Qc={point:zt,lineStart:function(){Qc.point=QH},lineEnd:function(){Ym&&bO(mO,yO),Qc.point=zt},polygonStart:function(){Ym=!0},polygonEnd:function(){Ym=null},result:function(){var e=+fb;return fb=new vn,e}};function QH(e,t){Qc.point=bO,mO=pc=e,yO=gc=t}function bO(e,t){pc-=e,gc-=t,fb.add(Sn(pc*pc+gc*gc)),pc=e,gc=t}let QC,vp,ZC,e$;class t${constructor(t){this._append=t==null?xO:ZH(t),this._radius=4.5,this._=""}pointRadius(t){return this._radius=+t,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(t,n){switch(this._point){case 0:{this._append`M${t},${n}`,this._point=1;break}case 1:{this._append`L${t},${n}`;break}default:{if(this._append`M${t},${n}`,this._radius!==ZC||this._append!==vp){const i=this._radius,r=this._;this._="",this._append`m0,${i}a${i},${i} 0 1,1 0,${-2*i}a${i},${i} 0 1,1 0,${2*i}z`,ZC=i,vp=this._append,e$=this._,this._=r}this._+=e$;break}}}result(){const t=this._;return this._="",t.length?t:null}}function xO(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function ZH(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return xO;if(t!==QC){const n=10**t;QC=t,vp=function(r){let o=1;this._+=r[0];for(const s=r.length;o<s;++o)this._+=Math.round(arguments[o]*n)/n+r[o]}}return vp}function vO(e,t){let n=3,i=4.5,r,o;function s(a){return a&&(typeof i=="function"&&o.pointRadius(+i.apply(this,arguments)),Vr(a,r(o))),o.result()}return s.area=function(a){return Vr(a,r(Yr)),Yr.result()},s.measure=function(a){return Vr(a,r(Qc)),Qc.result()},s.bounds=function(a){return Vr(a,r(yp)),yp.result()},s.centroid=function(a){return Vr(a,r(ui)),ui.result()},s.projection=function(a){return arguments.length?(r=a==null?(e=null,Kc):(e=a).stream,s):e},s.context=function(a){return arguments.length?(o=a==null?(t=null,new t$(n)):new gO(t=a),typeof i!="function"&&o.pointRadius(i),s):t},s.pointRadius=function(a){return arguments.length?(i=typeof a=="function"?a:(o.pointRadius(+a),+a),s):i},s.digits=function(a){if(!arguments.length)return n;if(a==null)n=null;else{const u=Math.floor(a);if(!(u>=0))throw new RangeError(`invalid digits: ${a}`);n=u}return t===null&&(o=new t$(n)),s},s.projection(e).digits(n).context(t)}function e0(e){return function(t){var n=new db;for(var i in e)n[i]=e[i];return n.stream=t,n}}function db(){}db.prototype={constructor:db,point:function(e,t){this.stream.point(e,t)},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 Z2(e,t,n){var i=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),i!=null&&e.clipExtent(null),Vr(n,e.stream(yp)),t(yp.result()),i!=null&&e.clipExtent(i),e}function t0(e,t,n){return Z2(e,function(i){var r=t[1][0]-t[0][0],o=t[1][1]-t[0][1],s=Math.min(r/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+t[0][0]+(r-s*(i[1][0]+i[0][0]))/2,u=+t[0][1]+(o-s*(i[1][1]+i[0][1]))/2;e.scale(150*s).translate([a,u])},n)}function eE(e,t,n){return t0(e,[[0,0],t],n)}function tE(e,t,n){return Z2(e,function(i){var r=+t,o=r/(i[1][0]-i[0][0]),s=(r-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];e.scale(150*o).translate([s,a])},n)}function nE(e,t,n){return Z2(e,function(i){var r=+t,o=r/(i[1][1]-i[0][1]),s=-o*i[0][0],a=(r-o*(i[1][1]+i[0][1]))/2;e.scale(150*o).translate([s,a])},n)}var n$=16,eV=ae(30*xe);function i$(e,t){return+t?nV(e,t):tV(e)}function tV(e){return e0({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}function nV(e,t){function n(i,r,o,s,a,u,l,c,f,d,h,p,g,m){var y=l-i,b=c-r,x=y*y+b*b;if(x>4*t&&g--){var v=s+d,w=a+h,A=u+p,E=Sn(v*v+w*w+A*A),S=zn(A/=E),C=Se(Se(A)-1)<oe||Se(o-f)<oe?(o+f)/2:yi(w,v),_=e(C,S),k=_[0],N=_[1],T=k-i,F=N-r,$=b*T-y*F;($*$/x>t||Se((y*T+b*F)/x-.5)>.3||s*d+a*h+u*p<eV)&&(n(i,r,o,s,a,u,k,N,C,v/=E,w/=E,A,g,m),m.point(k,N),n(k,N,C,v,w,A,l,c,f,d,h,p,g,m))}}return function(i){var r,o,s,a,u,l,c,f,d,h,p,g,m={point:y,lineStart:b,lineEnd:v,polygonStart:function(){i.polygonStart(),m.lineStart=w},polygonEnd:function(){i.polygonEnd(),m.lineStart=b}};function y(S,C){S=e(S,C),i.point(S[0],S[1])}function b(){f=NaN,m.point=x,i.lineStart()}function x(S,C){var _=ca([S,C]),k=e(S,C);n(f,d,c,h,p,g,f=k[0],d=k[1],c=S,h=_[0],p=_[1],g=_[2],n$,i),i.point(f,d)}function v(){m.point=y,i.lineEnd()}function w(){b(),m.point=A,m.lineEnd=E}function A(S,C){x(r=S,C),o=f,s=d,a=h,u=p,l=g,m.point=x}function E(){n(f,d,c,h,p,g,o,s,r,a,u,l,n$,i),m.lineEnd=v,v()}return m}}var iV=e0({point:function(e,t){this.stream.point(e*xe,t*xe)}});function rV(e){return e0({point:function(t,n){var i=e(t,n);return this.stream.point(i[0],i[1])}})}function oV(e,t,n,i,r){function o(s,a){return s*=i,a*=r,[t+e*s,n-e*a]}return o.invert=function(s,a){return[(s-t)/e*i,(n-a)/e*r]},o}function r$(e,t,n,i,r,o){if(!o)return oV(e,t,n,i,r);var s=ae(o),a=ne(o),u=s*e,l=a*e,c=s/e,f=a/e,d=(a*n-s*t)/e,h=(a*t+s*n)/e;function p(g,m){return g*=i,m*=r,[u*g-l*m+t,n-l*g-u*m]}return p.invert=function(g,m){return[i*(c*g-f*m+d),r*(h-f*g-c*m)]},p}function Fr(e){return EO(function(){return e})()}function EO(e){var t,n=150,i=480,r=250,o=0,s=0,a=0,u=0,l=0,c,f=0,d=1,h=1,p=null,g=VC,m=null,y,b,x,v=Kc,w=.5,A,E,S,C,_;function k($){return S($[0]*xe,$[1]*xe)}function N($){return $=S.invert($[0],$[1]),$&&[$[0]*ut,$[1]*ut]}k.stream=function($){return C&&_===$?C:C=iV(rV(c)(g(A(v(_=$)))))},k.preclip=function($){return arguments.length?(g=$,p=void 0,F()):g},k.postclip=function($){return arguments.length?(v=$,m=y=b=x=null,F()):v},k.clipAngle=function($){return arguments.length?(g=+$?BH(p=$*xe):(p=null,VC),F()):p*ut},k.clipExtent=function($){return arguments.length?(v=$==null?(m=y=b=x=null,Kc):uO(m=+$[0][0],y=+$[0][1],b=+$[1][0],x=+$[1][1]),F()):m==null?null:[[m,y],[b,x]]},k.scale=function($){return arguments.length?(n=+$,T()):n},k.translate=function($){return arguments.length?(i=+$[0],r=+$[1],T()):[i,r]},k.center=function($){return arguments.length?(o=$[0]%360*xe,s=$[1]%360*xe,T()):[o*ut,s*ut]},k.rotate=function($){return arguments.length?(a=$[0]%360*xe,u=$[1]%360*xe,l=$.length>2?$[2]%360*xe:0,T()):[a*ut,u*ut,l*ut]},k.angle=function($){return arguments.length?(f=$%360*xe,T()):f*ut},k.reflectX=function($){return arguments.length?(d=$?-1:1,T()):d<0},k.reflectY=function($){return arguments.length?(h=$?-1:1,T()):h<0},k.precision=function($){return arguments.length?(A=i$(E,w=$*$),F()):Sn(w)},k.fitExtent=function($,D){return t0(k,$,D)},k.fitSize=function($,D){return eE(k,$,D)},k.fitWidth=function($,D){return tE(k,$,D)},k.fitHeight=function($,D){return nE(k,$,D)};function T(){var $=r$(n,0,0,d,h,f).apply(null,t(o,s)),D=r$(n,i-$[0],r-$[1],d,h,f);return c=rO(a,u,l),E=nb(t,D),S=nb(c,E),A=i$(E,w),F()}function F(){return C=_=null,k}return function(){return t=e.apply(this,arguments),k.invert=t.invert&&N,T()}}function iE(e){var t=0,n=Ee/3,i=EO(e),r=i(t,n);return r.parallels=function(o){return arguments.length?i(t=o[0]*xe,n=o[1]*xe):[t*ut,n*ut]},r}function sV(e){var t=ae(e);function n(i,r){return[i*t,ne(r)/t]}return n.invert=function(i,r){return[i/t,zn(r*t)]},n}function aV(e,t){var n=ne(e),i=(n+ne(t))/2;if(Se(i)<oe)return sV(e);var r=1+n*(2*i-n),o=Sn(r)/i;function s(a,u){var l=Sn(r-2*i*ne(u))/i;return[l*ne(a*=i),o-l*ae(a)]}return s.invert=function(a,u){var l=o-u,c=yi(a,Se(l))*ci(l);return l*i<0&&(c-=Ee*ci(a)*ci(l)),[c/i,zn((r-(a*a+l*l)*i*i)/(2*i))]},s}function Ep(){return iE(aV).scale(155.424).center([0,33.6442])}function wO(){return Ep().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function uV(e){var t=e.length;return{point:function(n,i){for(var r=-1;++r<t;)e[r].point(n,i)},sphere:function(){for(var n=-1;++n<t;)e[n].sphere()},lineStart:function(){for(var n=-1;++n<t;)e[n].lineStart()},lineEnd:function(){for(var n=-1;++n<t;)e[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<t;)e[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<t;)e[n].polygonEnd()}}}function lV(){var e,t,n=wO(),i,r=Ep().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o,s=Ep().rotate([157,0]).center([-3,19.9]).parallels([8,18]),a,u,l={point:function(d,h){u=[d,h]}};function c(d){var h=d[0],p=d[1];return u=null,i.point(h,p),u||(o.point(h,p),u)||(a.point(h,p),u)}c.invert=function(d){var h=n.scale(),p=n.translate(),g=(d[0]-p[0])/h,m=(d[1]-p[1])/h;return(m>=.12&&m<.234&&g>=-.425&&g<-.214?r:m>=.166&&m<.234&&g>=-.214&&g<-.115?s:n).invert(d)},c.stream=function(d){return e&&t===d?e:e=uV([n.stream(t=d),r.stream(d),s.stream(d)])},c.precision=function(d){return arguments.length?(n.precision(d),r.precision(d),s.precision(d),f()):n.precision()},c.scale=function(d){return arguments.length?(n.scale(d),r.scale(d*.35),s.scale(d),c.translate(n.translate())):n.scale()},c.translate=function(d){if(!arguments.length)return n.translate();var h=n.scale(),p=+d[0],g=+d[1];return i=n.translate(d).clipExtent([[p-.455*h,g-.238*h],[p+.455*h,g+.238*h]]).stream(l),o=r.translate([p-.307*h,g+.201*h]).clipExtent([[p-.425*h+oe,g+.12*h+oe],[p-.214*h-oe,g+.234*h-oe]]).stream(l),a=s.translate([p-.205*h,g+.212*h]).clipExtent([[p-.214*h+oe,g+.166*h+oe],[p-.115*h-oe,g+.234*h-oe]]).stream(l),f()},c.fitExtent=function(d,h){return t0(c,d,h)},c.fitSize=function(d,h){return eE(c,d,h)},c.fitWidth=function(d,h){return tE(c,d,h)},c.fitHeight=function(d,h){return nE(c,d,h)};function f(){return e=t=null,c}return c.scale(1070)}function AO(e){return function(t,n){var i=ae(t),r=ae(n),o=e(i*r);return o===1/0?[2,0]:[o*r*ne(t),o*ne(n)]}}function If(e){return function(t,n){var i=Sn(t*t+n*n),r=e(i),o=ne(r),s=ae(r);return[yi(t*o,i*s),zn(i&&n*o/i)]}}var SO=AO(function(e){return Sn(2/(1+e))});SO.invert=If(function(e){return 2*zn(e/2)});function cV(){return Fr(SO).scale(124.75).clipAngle(180-.001)}var CO=AO(function(e){return(e=V5(e))&&e/ne(e)});CO.invert=If(function(e){return e});function fV(){return Fr(CO).scale(79.4188).clipAngle(180-.001)}function n0(e,t){return[e,np(J2((st+t)/2))]}n0.invert=function(e,t){return[e,2*hl(H5(t))-st]};function dV(){return $O(n0).scale(961/An)}function $O(e){var t=Fr(e),n=t.center,i=t.scale,r=t.translate,o=t.clipExtent,s=null,a,u,l;t.scale=function(f){return arguments.length?(i(f),c()):i()},t.translate=function(f){return arguments.length?(r(f),c()):r()},t.center=function(f){return arguments.length?(n(f),c()):n()},t.clipExtent=function(f){return arguments.length?(f==null?s=a=u=l=null:(s=+f[0][0],a=+f[0][1],u=+f[1][0],l=+f[1][1]),c()):s==null?null:[[s,a],[u,l]]};function c(){var f=Ee*i(),d=t(MH(t.rotate()).invert([0,0]));return o(s==null?[[d[0]-f,d[1]-f],[d[0]+f,d[1]+f]]:e===n0?[[Math.max(d[0]-f,s),a],[Math.min(d[0]+f,u),l]]:[[s,Math.max(d[1]-f,a)],[u,Math.min(d[1]+f,l)]])}return c()}function Dd(e){return J2((st+e)/2)}function hV(e,t){var n=ae(e),i=e===t?ne(e):np(n/ae(t))/np(Dd(t)/Dd(e)),r=n*Wm(Dd(e),i)/i;if(!i)return n0;function o(s,a){r>0?a<-st+oe&&(a=-st+oe):a>st-oe&&(a=st-oe);var u=r/Wm(Dd(a),i);return[u*ne(i*s),r-u*ae(i*s)]}return o.invert=function(s,a){var u=r-a,l=ci(i)*Sn(s*s+u*u),c=yi(s,Se(u))*ci(u);return u*i<0&&(c-=Ee*ci(s)*ci(u)),[c/i,2*hl(Wm(r/l,1/i))-st]},o}function pV(){return iE(hV).scale(109.5).parallels([30,30])}function wp(e,t){return[e,t]}wp.invert=wp;function gV(){return Fr(wp).scale(152.63)}function mV(e,t){var n=ae(e),i=e===t?ne(e):(n-ae(t))/(t-e),r=n/i+e;if(Se(i)<oe)return wp;function o(s,a){var u=r-a,l=i*s;return[u*ne(l),r-u*ae(l)]}return o.invert=function(s,a){var u=r-a,l=yi(s,Se(u))*ci(u);return u*i<0&&(l-=Ee*ci(s)*ci(u)),[l/i,r-ci(i)*Sn(s*s+u*u)]},o}function yV(){return iE(mV).scale(131.154).center([0,13.9389])}var Fc=1.340264,kc=-.081106,Dc=893e-6,Tc=.003796,Ap=Sn(3)/2,bV=12;function _O(e,t){var n=zn(Ap*ne(t)),i=n*n,r=i*i*i;return[e*ae(n)/(Ap*(Fc+3*kc*i+r*(7*Dc+9*Tc*i))),n*(Fc+kc*i+r*(Dc+Tc*i))]}_O.invert=function(e,t){for(var n=t,i=n*n,r=i*i*i,o=0,s,a,u;o<bV&&(a=n*(Fc+kc*i+r*(Dc+Tc*i))-t,u=Fc+3*kc*i+r*(7*Dc+9*Tc*i),n-=s=a/u,i=n*n,r=i*i*i,!(Se(s)<ep));++o);return[Ap*e*(Fc+3*kc*i+r*(7*Dc+9*Tc*i))/ae(n),zn(ne(n)/Ap)]};function xV(){return Fr(_O).scale(177.158)}function FO(e,t){var n=ae(t),i=ae(e)*n;return[n*ne(e)/i,ne(t)/i]}FO.invert=If(hl);function vV(){return Fr(FO).scale(144.049).clipAngle(60)}function EV(){var e=1,t=0,n=0,i=1,r=1,o=0,s,a,u=null,l,c,f,d=1,h=1,p=e0({point:function(v,w){var A=x([v,w]);this.stream.point(A[0],A[1])}}),g=Kc,m,y;function b(){return d=e*i,h=e*r,m=y=null,x}function x(v){var w=v[0]*d,A=v[1]*h;if(o){var E=A*s-w*a;w=w*s+A*a,A=E}return[w+t,A+n]}return x.invert=function(v){var w=v[0]-t,A=v[1]-n;if(o){var E=A*s+w*a;w=w*s-A*a,A=E}return[w/d,A/h]},x.stream=function(v){return m&&y===v?m:m=p(g(y=v))},x.postclip=function(v){return arguments.length?(g=v,u=l=c=f=null,b()):g},x.clipExtent=function(v){return arguments.length?(g=v==null?(u=l=c=f=null,Kc):uO(u=+v[0][0],l=+v[0][1],c=+v[1][0],f=+v[1][1]),b()):u==null?null:[[u,l],[c,f]]},x.scale=function(v){return arguments.length?(e=+v,b()):e},x.translate=function(v){return arguments.length?(t=+v[0],n=+v[1],b()):[t,n]},x.angle=function(v){return arguments.length?(o=v%360*xe,a=ne(o),s=ae(o),b()):o*ut},x.reflectX=function(v){return arguments.length?(i=v?-1:1,b()):i<0},x.reflectY=function(v){return arguments.length?(r=v?-1:1,b()):r<0},x.fitExtent=function(v,w){return t0(x,v,w)},x.fitSize=function(v,w){return eE(x,v,w)},x.fitWidth=function(v,w){return tE(x,v,w)},x.fitHeight=function(v,w){return nE(x,v,w)},x}function kO(e,t){var n=t*t,i=n*n;return[e*(.8707-.131979*n+i*(-.013791+i*(.003971*n-.001529*i))),t*(1.007226+n*(.015085+i*(-.044475+.028874*n-.005916*i)))]}kO.invert=function(e,t){var n=t,i=25,r;do{var o=n*n,s=o*o;n-=r=(n*(1.007226+o*(.015085+s*(-.044475+.028874*o-.005916*s)))-t)/(1.007226+o*(.015085*3+s*(-.044475*7+.028874*9*o-.005916*11*s)))}while(Se(r)>oe&&--i>0);return[e/(.8707+(o=n*n)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),n]};function wV(){return Fr(kO).scale(175.295)}function DO(e,t){return[ae(t)*ne(e),ne(t)]}DO.invert=If(zn);function AV(){return Fr(DO).scale(249.5).clipAngle(90+oe)}function TO(e,t){var n=ae(t),i=1+ae(e)*n;return[n*ne(e)/i,ne(t)/i]}TO.invert=If(function(e){return 2*hl(e)});function SV(){return Fr(TO).scale(250).clipAngle(142)}function MO(e,t){return[np(J2((st+t)/2)),-e]}MO.invert=function(e,t){return[-t,2*hl(H5(e))-st]};function CV(){var e=$O(MO),t=e.center,n=e.rotate;return e.center=function(i){return arguments.length?t([-i[1],i[0]]):(i=t(),[i[1],-i[0]])},e.rotate=function(i){return arguments.length?n([i[0],i[1],i.length>2?i[2]+90:90]):(i=n(),[i[0],i[1],i[2]-90])},n([0,0,90]).scale(159.155)}var $V=Math.abs,hb=Math.cos,Sp=Math.sin,_V=1e-6,OO=Math.PI,pb=OO/2,o$=FV(2);function s$(e){return e>1?pb:e<-1?-pb:Math.asin(e)}function FV(e){return e>0?Math.sqrt(e):0}function kV(e,t){var n=e*Sp(t),i=30,r;do t-=r=(t+Sp(t)-n)/(1+hb(t));while($V(r)>_V&&--i>0);return t/2}function DV(e,t,n){function i(r,o){return[e*r*hb(o=kV(n,o)),t*Sp(o)]}return i.invert=function(r,o){return o=s$(o/t),[r/(e*hb(o)),s$((2*o+Sp(2*o))/n)]},i}var TV=DV(o$/pb,o$,OO);function MV(){return Fr(TV).scale(169.529)}const OV=vO(),gb=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function RV(e,t){return function n(){const i=t();return i.type=e,i.path=vO().projection(i),i.copy=i.copy||function(){const r=n();return gb.forEach(o=>{i[o]&&r[o](i[o]())}),r.path.pointRadius(i.path.pointRadius()),r},YT(i)}}function rE(e,t){if(!e||typeof e!="string")throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(Cp[e]=RV(e,t),this):Cp[e]||null}function RO(e){return e&&e.path||OV}const Cp={albers:wO,albersusa:lV,azimuthalequalarea:cV,azimuthalequidistant:fV,conicconformal:pV,conicequalarea:Ep,conicequidistant:yV,equalEarth:xV,equirectangular:gV,gnomonic:vV,identity:EV,mercator:dV,mollweide:MV,naturalEarth1:wV,orthographic:AV,stereographic:SV,transversemercator:CV};for(const e in Cp)rE(e,Cp[e]);function NV(){}const zr=[[],[[[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 NO(){var e=1,t=1,n=a;function i(u,l){return l.map(c=>r(u,c))}function r(u,l){var c=[],f=[];return o(u,l,d=>{n(d,u,l),LV(d)>0?c.push([d]):f.push(d)}),f.forEach(d=>{for(var h=0,p=c.length,g;h<p;++h)if(PV((g=c[h])[0],d)!==-1){g.push(d);return}}),{type:"MultiPolygon",value:l,coordinates:c}}function o(u,l,c){var f=[],d=[],h,p,g,m,y,b;for(h=p=-1,m=u[0]>=l,zr[m<<1].forEach(x);++h<e-1;)g=m,m=u[h+1]>=l,zr[g|m<<1].forEach(x);for(zr[m<<0].forEach(x);++p<t-1;){for(h=-1,m=u[p*e+e]>=l,y=u[p*e]>=l,zr[m<<1|y<<2].forEach(x);++h<e-1;)g=m,m=u[p*e+e+h+1]>=l,b=y,y=u[p*e+h+1]>=l,zr[g|m<<1|y<<2|b<<3].forEach(x);zr[m|y<<3].forEach(x)}for(h=-1,y=u[p*e]>=l,zr[y<<2].forEach(x);++h<e-1;)b=y,y=u[p*e+h+1]>=l,zr[y<<2|b<<3].forEach(x);zr[y<<3].forEach(x);function x(v){var w=[v[0][0]+h,v[0][1]+p],A=[v[1][0]+h,v[1][1]+p],E=s(w),S=s(A),C,_;(C=d[E])?(_=f[S])?(delete d[C.end],delete f[_.start],C===_?(C.ring.push(A),c(C.ring)):f[C.start]=d[_.end]={start:C.start,end:_.end,ring:C.ring.concat(_.ring)}):(delete d[C.end],C.ring.push(A),d[C.end=S]=C):(C=f[S])?(_=d[E])?(delete f[C.start],delete d[_.end],C===_?(C.ring.push(A),c(C.ring)):f[_.start]=d[C.end]={start:_.start,end:C.end,ring:_.ring.concat(C.ring)}):(delete f[C.start],C.ring.unshift(w),f[C.start=E]=C):f[E]=d[S]={start:E,end:S,ring:[w,A]}}}function s(u){return u[0]*2+u[1]*(e+1)*4}function a(u,l,c){u.forEach(f=>{var d=f[0],h=f[1],p=d|0,g=h|0,m,y=l[g*e+p];d>0&&d<e&&p===d&&(m=l[g*e+p-1],f[0]=d+(c-m)/(y-m)-.5),h>0&&h<t&&g===h&&(m=l[(g-1)*e+p],f[1]=h+(c-m)/(y-m)-.5)})}return i.contour=r,i.size=function(u){if(!arguments.length)return[e,t];var l=Math.floor(u[0]),c=Math.floor(u[1]);return l>=0&&c>=0||L("invalid size"),e=l,t=c,i},i.smooth=function(u){return arguments.length?(n=u?a:NV,i):n===a},i}function LV(e){for(var t=0,n=e.length,i=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)i+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return i}function PV(e,t){for(var n=-1,i=t.length,r;++n<i;)if(r=IV(e,t[n]))return r;return 0}function IV(e,t){for(var n=t[0],i=t[1],r=-1,o=0,s=e.length,a=s-1;o<s;a=o++){var u=e[o],l=u[0],c=u[1],f=e[a],d=f[0],h=f[1];if(zV(u,f,t))return 0;c>i!=h>i&&n<(d-l)*(i-c)/(h-c)+l&&(r=-r)}return r}function zV(e,t,n){var i;return BV(e,t,n)&&UV(e[i=+(e[0]===t[0])],n[i],t[i])}function BV(e,t,n){return(t[0]-e[0])*(n[1]-e[1])===(n[0]-e[0])*(t[1]-e[1])}function UV(e,t,n){return e<=t&&t<=n||n<=t&&t<=e}function LO(e,t,n){return function(i){var r=lo(i),o=n?Math.min(r[0],0):r[0],s=r[1],a=s-o,u=t?ra(o,s,e):a/(e+1);return Yn(o+u,s,u)}}function oE(e){M.call(this,null,e)}oE.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"}]};G(oE,M,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=t.materialize(t.SOURCE).source,r=e.field||Ln,o=NO().smooth(e.smooth!==!1),s=e.thresholds||jV(i,r,e),a=e.as===null?null:e.as||"contour",u=[];return i.forEach(l=>{const c=r(l),f=o.size([c.width,c.height])(c.values,Z(s)?s:s(c.values));qV(f,c,l,e),f.forEach(d=>{u.push(Ag(l,Oe(a!=null?{[a]:d}:d)))})}),this.value&&(n.rem=this.value),this.value=n.source=n.add=u,n}});function jV(e,t,n){const i=LO(n.levels||10,n.nice,n.zero!==!1);return n.resolve!=="shared"?i:i(e.map(r=>Xs(t(r).values)))}function qV(e,t,n,i){let r=i.scale||t.scale,o=i.translate||t.translate;if(be(r)&&(r=r(n,i)),be(o)&&(o=o(n,i)),(r===1||r==null)&&!o)return;const s=(sa(r)?r:r[0])||1,a=(sa(r)?r:r[1])||1,u=o&&o[0]||0,l=o&&o[1]||0;e.forEach(PO(t,s,a,u,l))}function PO(e,t,n,i,r){const o=e.x1||0,s=e.y1||0,a=t*n<0;function u(f){f.forEach(l)}function l(f){a&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-o)*t+i,f[1]=(f[1]-s)*n+r}return function(f){return f.coordinates.forEach(u),f}}function a$(e,t,n){const i=e>=0?e:ev(t,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function Xm(e){return be(e)?e:wn(+e)}function IO(){var e=u=>u[0],t=u=>u[1],n=xf,i=[-1,-1],r=960,o=500,s=2;function a(u,l){const c=a$(i[0],u,e)>>s,f=a$(i[1],u,t)>>s,d=c?c+2:0,h=f?f+2:0,p=2*d+(r>>s),g=2*h+(o>>s),m=new Float32Array(p*g),y=new Float32Array(p*g);let b=m;u.forEach(v=>{const w=d+(+e(v)>>s),A=h+(+t(v)>>s);w>=0&&w<p&&A>=0&&A<g&&(m[w+A*p]+=+n(v))}),c>0&&f>0?(Qa(p,g,m,y,c),Za(p,g,y,m,f),Qa(p,g,m,y,c),Za(p,g,y,m,f),Qa(p,g,m,y,c),Za(p,g,y,m,f)):c>0?(Qa(p,g,m,y,c),Qa(p,g,y,m,c),Qa(p,g,m,y,c),b=y):f>0&&(Za(p,g,m,y,f),Za(p,g,y,m,f),Za(p,g,m,y,f),b=y);const x=l?Math.pow(2,-2*s):1/ED(b);for(let v=0,w=p*g;v<w;++v)b[v]*=x;return{values:b,scale:1<<s,width:p,height:g,x1:d,y1:h,x2:d+(r>>s),y2:h+(o>>s)}}return a.x=function(u){return arguments.length?(e=Xm(u),a):e},a.y=function(u){return arguments.length?(t=Xm(u),a):t},a.weight=function(u){return arguments.length?(n=Xm(u),a):n},a.size=function(u){if(!arguments.length)return[r,o];var l=+u[0],c=+u[1];return l>=0&&c>=0||L("invalid size"),r=l,o=c,a},a.cellSize=function(u){return arguments.length?((u=+u)>=1||L("invalid cell size"),s=Math.floor(Math.log(u)/Math.LN2),a):1<<s},a.bandwidth=function(u){return arguments.length?(u=se(u),u.length===1&&(u=[+u[0],+u[0]]),u.length!==2&&L("invalid bandwidth"),i=u,a):i},a}function Qa(e,t,n,i,r){const o=(r<<1)+1;for(let s=0;s<t;++s)for(let a=0,u=0;a<e+r;++a)a<e&&(u+=n[a+s*e]),a>=r&&(a>=o&&(u-=n[a-o+s*e]),i[a-r+s*e]=u/Math.min(a+1,e-1+o-a,o))}function Za(e,t,n,i,r){const o=(r<<1)+1;for(let s=0;s<e;++s)for(let a=0,u=0;a<t+r;++a)a<t&&(u+=n[s+a*e]),a>=r&&(a>=o&&(u-=n[s+(a-o)*e]),i[s+(a-r)*e]=u/Math.min(a+1,t-1+o-a,o))}function sE(e){M.call(this,null,e)}sE.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 WV=["x","y","weight","size","cellSize","bandwidth"];function zO(e,t){return WV.forEach(n=>t[n]!=null?e[n](t[n]):0),e}G(sE,M,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=t.materialize(t.SOURCE).source,r=GV(i,e.groupby),o=(e.groupby||[]).map(lt),s=zO(IO(),e),a=e.as||"grid",u=[];function l(c,f){for(let d=0;d<o.length;++d)c[o[d]]=f[d];return c}return u=r.map(c=>Oe(l({[a]:s(c,e.counts)},c.dims))),this.value&&(n.rem=this.value),this.value=n.source=n.add=u,n}});function GV(e,t){var n=[],i=c=>c(a),r,o,s,a,u,l;if(t==null)n.push(e);else for(r={},o=0,s=e.length;o<s;++o)a=e[o],u=t.map(i),l=r[u],l||(r[u]=l=[],l.dims=u,n.push(l)),l.push(a);return n}function aE(e){M.call(this,null,e)}aE.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}]};G(aE,M,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=NO().smooth(e.smooth!==!1),r=e.values,o=e.thresholds||LO(e.count||10,e.nice,!!r),s=e.size,a,u;return r||(r=t.materialize(t.SOURCE).source,a=zO(IO(),e)(r,!0),u=PO(a,a.scale||1,a.scale||1,0,0),s=[a.width,a.height],r=a.values),o=Z(o)?o:o(r),r=i.size(s)(r,o),u&&r.forEach(u),this.value&&(n.rem=this.value),this.value=n.source=n.add=(r||[]).map(Oe),n}});const mb="Feature",uE="FeatureCollection",HV="MultiPoint";function lE(e){M.call(this,null,e)}lE.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]};G(lE,M,{transform(e,t){var n=this._features,i=this._points,r=e.fields,o=r&&r[0],s=r&&r[1],a=e.geojson||!r&&Ln,u=t.ADD,l;l=e.modified()||t.changed(t.REM)||t.modified(xn(a))||o&&t.modified(xn(o))||s&&t.modified(xn(s)),(!this.value||l)&&(u=t.SOURCE,this._features=n=[],this._points=i=[]),a&&t.visit(u,c=>n.push(a(c))),o&&s&&(t.visit(u,c=>{var f=o(c),d=s(c);f!=null&&d!=null&&(f=+f)===f&&(d=+d)===d&&i.push([f,d])}),n=n.concat({type:mb,geometry:{type:HV,coordinates:i}})),this.value={type:uE,features:n}}});function cE(e){M.call(this,null,e)}cE.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"}]};G(cE,M,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.field||Ln,o=e.as||"path",s=n.SOURCE;!i||e.modified()?(this.value=i=RO(e.projection),n.materialize().reflow()):s=r===Ln||t.modified(r.fields)?n.ADD_MOD:n.ADD;const a=VV(i,e.pointRadius);return n.visit(s,u=>u[o]=i(r(u))),i.pointRadius(a),n.modifies(o)}});function VV(e,t){const n=e.pointRadius();return e.context(null),t!=null&&e.pointRadius(t),n}function fE(e){M.call(this,null,e)}fE.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"]}]};G(fE,M,{transform(e,t){var n=e.projection,i=e.fields[0],r=e.fields[1],o=e.as||["x","y"],s=o[0],a=o[1],u;function l(c){const f=n([i(c),r(c)]);f?(c[s]=f[0],c[a]=f[1]):(c[s]=void 0,c[a]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,l):(u=t.modified(i.fields)||t.modified(r.fields),t.visit(u?t.ADD_MOD:t.ADD,l)),t.modifies(o)}});function dE(e){M.call(this,null,e)}dE.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"}]};G(dE,M,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.as||"shape",o=n.ADD;return(!i||e.modified())&&(this.value=i=YV(RO(e.projection),e.field||Li("datum"),e.pointRadius),n.materialize().reflow(),o=n.SOURCE),n.visit(o,s=>s[r]=i),n.modifies(r)}});function YV(e,t,n){const i=n==null?r=>e(t(r)):r=>{var o=e.pointRadius(),s=e.pointRadius(n)(t(r));return e.pointRadius(o),s};return i.context=r=>(e.context(r),i),i}function hE(e){M.call(this,[],e),this.generator=jH()}hE.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}]};G(hE,M,{transform(e,t){var n=this.value,i=this.generator,r;if(!n.length||e.modified())for(const o in e)be(i[o])&&i[o](e[o]);return r=i(),n.length?t.mod.push(f3(n[0],r)):t.add.push(Oe(r)),n[0]=r,t}});function pE(e){M.call(this,null,e)}pE.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"}]};G(pE,M,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,i=e.resolve==="shared",r=e.field||Ln,o=KV(e.opacity,e),s=XV(e.color,e),a=e.as||"image",u={$x:0,$y:0,$value:0,$max:i?Xs(n.map(l=>Xs(r(l).values))):0};return n.forEach(l=>{const c=r(l),f=ye({},l,u);i||(f.$max=Xs(c.values||[])),l[a]=JV(c,f,s.dep?s:wn(s(f)),o.dep?o:wn(o(f)))}),t.reflow(!0).modifies(a)}});function XV(e,t){let n;return be(e)?(n=i=>Ch(e(i,t)),n.dep=BO(e)):n=wn(Ch(e||"#888")),n}function KV(e,t){let n;return be(e)?(n=i=>e(i,t),n.dep=BO(e)):e?n=wn(e):(n=i=>i.$value/i.$max||0,n.dep=!0),n}function BO(e){if(!be(e))return!1;const t=yr(xn(e));return t.$x||t.$y||t.$value||t.$max}function JV(e,t,n,i){const r=e.width,o=e.height,s=e.x1||0,a=e.y1||0,u=e.x2||r,l=e.y2||o,c=e.values,f=c?m=>c[m]:zs,d=Vo(u-s,l-a),h=d.getContext("2d"),p=h.getImageData(0,0,u-s,l-a),g=p.data;for(let m=a,y=0;m<l;++m){t.$y=m-a;for(let b=s,x=m*r;b<u;++b,y+=4){t.$x=b-s,t.$value=f(b+x);const v=n(t);g[y+0]=v.r,g[y+1]=v.g,g[y+2]=v.b,g[y+3]=~~(255*i(t))}}return h.putImageData(p,0,0),d}function UO(e){M.call(this,null,e),this.modified(!0)}G(UO,M,{transform(e,t){let n=this.value;return!n||e.modified("type")?(this.value=n=ZV(e.type),gb.forEach(i=>{e[i]!=null&&u$(n,i,e[i])})):gb.forEach(i=>{e.modified(i)&&u$(n,i,e[i])}),e.pointRadius!=null&&n.path.pointRadius(e.pointRadius),e.fit&&QV(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});function QV(e,t){const n=eY(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}function ZV(e){const t=rE((e||"mercator").toLowerCase());return t||L("Unrecognized projection type: "+e),t()}function u$(e,t,n){be(e[t])&&e[t](n)}function eY(e){return e=se(e),e.length===1?e[0]:{type:uE,features:e.reduce((t,n)=>t.concat(tY(n)),[])}}function tY(e){return e.type===uE?e.features:se(e).filter(t=>t!=null).map(t=>t.type===mb?t:{type:mb,geometry:t})}const nY=Object.freeze(Object.defineProperty({__proto__:null,contour:aE,geojson:lE,geopath:cE,geopoint:fE,geoshape:dE,graticule:hE,heatmap:pE,isocontour:oE,kde2d:sE,projection:UO},Symbol.toStringTag,{value:"Module"}));function iY(e,t){var n,i=1;e==null&&(e=0),t==null&&(t=0);function r(){var o,s=n.length,a,u=0,l=0;for(o=0;o<s;++o)a=n[o],u+=a.x,l+=a.y;for(u=(u/s-e)*i,l=(l/s-t)*i,o=0;o<s;++o)a=n[o],a.x-=u,a.y-=l}return r.initialize=function(o){n=o},r.x=function(o){return arguments.length?(e=+o,r):e},r.y=function(o){return arguments.length?(t=+o,r):t},r.strength=function(o){return arguments.length?(i=+o,r):i},r}function rY(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return jO(this.cover(t,n),t,n,e)}function jO(e,t,n,i){if(isNaN(t)||isNaN(n))return e;var r,o=e._root,s={data:i},a=e._x0,u=e._y0,l=e._x1,c=e._y1,f,d,h,p,g,m,y,b;if(!o)return e._root=s,e;for(;o.length;)if((g=t>=(f=(a+l)/2))?a=f:l=f,(m=n>=(d=(u+c)/2))?u=d:c=d,r=o,!(o=o[y=m<<1|g]))return r[y]=s,e;if(h=+e._x.call(null,o.data),p=+e._y.call(null,o.data),t===h&&n===p)return s.next=o,r?r[y]=s:e._root=s,e;do r=r?r[y]=new Array(4):e._root=new Array(4),(g=t>=(f=(a+l)/2))?a=f:l=f,(m=n>=(d=(u+c)/2))?u=d:c=d;while((y=m<<1|g)===(b=(p>=d)<<1|h>=f));return r[b]=o,r[y]=s,e}function oY(e){var t,n,i=e.length,r,o,s=new Array(i),a=new Array(i),u=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<i;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(s[n]=r,a[n]=o,r<u&&(u=r),r>c&&(c=r),o<l&&(l=o),o>f&&(f=o));if(u>c||l>f)return this;for(this.cover(u,l).cover(c,f),n=0;n<i;++n)jO(this,s[n],a[n],e[n]);return this}function sY(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,i=this._y0,r=this._x1,o=this._y1;if(isNaN(n))r=(n=Math.floor(e))+1,o=(i=Math.floor(t))+1;else{for(var s=r-n||1,a=this._root,u,l;n>e||e>=r||i>t||t>=o;)switch(l=(t<i)<<1|e<n,u=new Array(4),u[l]=a,a=u,s*=2,l){case 0:r=n+s,o=i+s;break;case 1:n=r-s,o=i+s;break;case 2:r=n+s,i=o-s;break;case 3:n=r-s,i=o-s;break}this._root&&this._root.length&&(this._root=a)}return this._x0=n,this._y0=i,this._x1=r,this._y1=o,this}function aY(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e}function uY(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function gn(e,t,n,i,r){this.node=e,this.x0=t,this.y0=n,this.x1=i,this.y1=r}function lY(e,t,n){var i,r=this._x0,o=this._y0,s,a,u,l,c=this._x1,f=this._y1,d=[],h=this._root,p,g;for(h&&d.push(new gn(h,r,o,c,f)),n==null?n=1/0:(r=e-n,o=t-n,c=e+n,f=t+n,n*=n);p=d.pop();)if(!(!(h=p.node)||(s=p.x0)>c||(a=p.y0)>f||(u=p.x1)<r||(l=p.y1)<o))if(h.length){var m=(s+u)/2,y=(a+l)/2;d.push(new gn(h[3],m,y,u,l),new gn(h[2],s,y,m,l),new gn(h[1],m,a,u,y),new gn(h[0],s,a,m,y)),(g=(t>=y)<<1|e>=m)&&(p=d[d.length-1],d[d.length-1]=d[d.length-1-g],d[d.length-1-g]=p)}else{var b=e-+this._x.call(null,h.data),x=t-+this._y.call(null,h.data),v=b*b+x*x;if(v<n){var w=Math.sqrt(n=v);r=e-w,o=t-w,c=e+w,f=t+w,i=h.data}}return i}function cY(e){if(isNaN(c=+this._x.call(null,e))||isNaN(f=+this._y.call(null,e)))return this;var t,n=this._root,i,r,o,s=this._x0,a=this._y0,u=this._x1,l=this._y1,c,f,d,h,p,g,m,y;if(!n)return this;if(n.length)for(;;){if((p=c>=(d=(s+u)/2))?s=d:u=d,(g=f>=(h=(a+l)/2))?a=h:l=h,t=n,!(n=n[m=g<<1|p]))return this;if(!n.length)break;(t[m+1&3]||t[m+2&3]||t[m+3&3])&&(i=t,y=m)}for(;n.data!==e;)if(r=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,r?(o?r.next=o:delete r.next,this):t?(o?t[m]=o:delete t[m],(n=t[0]||t[1]||t[2]||t[3])&&n===(t[3]||t[2]||t[1]||t[0])&&!n.length&&(i?i[y]=n:this._root=n),this):(this._root=o,this)}function fY(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this}function dY(){return this._root}function hY(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e}function pY(e){var t=[],n,i=this._root,r,o,s,a,u;for(i&&t.push(new gn(i,this._x0,this._y0,this._x1,this._y1));n=t.pop();)if(!e(i=n.node,o=n.x0,s=n.y0,a=n.x1,u=n.y1)&&i.length){var l=(o+a)/2,c=(s+u)/2;(r=i[3])&&t.push(new gn(r,l,c,a,u)),(r=i[2])&&t.push(new gn(r,o,c,l,u)),(r=i[1])&&t.push(new gn(r,l,s,a,c)),(r=i[0])&&t.push(new gn(r,o,s,l,c))}return this}function gY(e){var t=[],n=[],i;for(this._root&&t.push(new gn(this._root,this._x0,this._y0,this._x1,this._y1));i=t.pop();){var r=i.node;if(r.length){var o,s=i.x0,a=i.y0,u=i.x1,l=i.y1,c=(s+u)/2,f=(a+l)/2;(o=r[0])&&t.push(new gn(o,s,a,c,f)),(o=r[1])&&t.push(new gn(o,c,a,u,f)),(o=r[2])&&t.push(new gn(o,s,f,c,l)),(o=r[3])&&t.push(new gn(o,c,f,u,l))}n.push(i)}for(;i=n.pop();)e(i.node,i.x0,i.y0,i.x1,i.y1);return this}function mY(e){return e[0]}function yY(e){return arguments.length?(this._x=e,this):this._x}function bY(e){return e[1]}function xY(e){return arguments.length?(this._y=e,this):this._y}function gE(e,t,n){var i=new mE(t??mY,n??bY,NaN,NaN,NaN,NaN);return e==null?i:i.addAll(e)}function mE(e,t,n,i,r,o){this._x=e,this._y=t,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function l$(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var $n=gE.prototype=mE.prototype;$n.copy=function(){var e=new mE(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,n,i;if(!t)return e;if(!t.length)return e._root=l$(t),e;for(n=[{source:t,target:e._root=new Array(4)}];t=n.pop();)for(var r=0;r<4;++r)(i=t.source[r])&&(i.length?n.push({source:i,target:t.target[r]=new Array(4)}):t.target[r]=l$(i));return e};$n.add=rY;$n.addAll=oY;$n.cover=sY;$n.data=aY;$n.extent=uY;$n.find=lY;$n.remove=cY;$n.removeAll=fY;$n.root=dY;$n.size=hY;$n.visit=pY;$n.visitAfter=gY;$n.x=yY;$n.y=xY;function yn(e){return function(){return e}}function jo(e){return(e()-.5)*1e-6}function vY(e){return e.x+e.vx}function EY(e){return e.y+e.vy}function wY(e){var t,n,i,r=1,o=1;typeof e!="function"&&(e=yn(e==null?1:+e));function s(){for(var l,c=t.length,f,d,h,p,g,m,y=0;y<o;++y)for(f=gE(t,vY,EY).visitAfter(a),l=0;l<c;++l)d=t[l],g=n[d.index],m=g*g,h=d.x+d.vx,p=d.y+d.vy,f.visit(b);function b(x,v,w,A,E){var S=x.data,C=x.r,_=g+C;if(S){if(S.index>d.index){var k=h-S.x-S.vx,N=p-S.y-S.vy,T=k*k+N*N;T<_*_&&(k===0&&(k=jo(i),T+=k*k),N===0&&(N=jo(i),T+=N*N),T=(_-(T=Math.sqrt(T)))/T*r,d.vx+=(k*=T)*(_=(C*=C)/(m+C)),d.vy+=(N*=T)*_,S.vx-=k*(_=1-_),S.vy-=N*_)}return}return v>h+_||A<h-_||w>p+_||E<p-_}}function a(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 u(){if(t){var l,c=t.length,f;for(n=new Array(c),l=0;l<c;++l)f=t[l],n[f.index]=+e(f,l,t)}}return s.initialize=function(l,c){t=l,i=c,u()},s.iterations=function(l){return arguments.length?(o=+l,s):o},s.strength=function(l){return arguments.length?(r=+l,s):r},s.radius=function(l){return arguments.length?(e=typeof l=="function"?l:yn(+l),u(),s):e},s}function AY(e){return e.index}function c$(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function SY(e){var t=AY,n=f,i,r=yn(30),o,s,a,u,l,c=1;e==null&&(e=[]);function f(m){return 1/Math.min(a[m.source.index],a[m.target.index])}function d(m){for(var y=0,b=e.length;y<c;++y)for(var x=0,v,w,A,E,S,C,_;x<b;++x)v=e[x],w=v.source,A=v.target,E=A.x+A.vx-w.x-w.vx||jo(l),S=A.y+A.vy-w.y-w.vy||jo(l),C=Math.sqrt(E*E+S*S),C=(C-o[x])/C*m*i[x],E*=C,S*=C,A.vx-=E*(_=u[x]),A.vy-=S*_,w.vx+=E*(_=1-_),w.vy+=S*_}function h(){if(s){var m,y=s.length,b=e.length,x=new Map(s.map((w,A)=>[t(w,A,s),w])),v;for(m=0,a=new Array(y);m<b;++m)v=e[m],v.index=m,typeof v.source!="object"&&(v.source=c$(x,v.source)),typeof v.target!="object"&&(v.target=c$(x,v.target)),a[v.source.index]=(a[v.source.index]||0)+1,a[v.target.index]=(a[v.target.index]||0)+1;for(m=0,u=new Array(b);m<b;++m)v=e[m],u[m]=a[v.source.index]/(a[v.source.index]+a[v.target.index]);i=new Array(b),p(),o=new Array(b),g()}}function p(){if(s)for(var m=0,y=e.length;m<y;++m)i[m]=+n(e[m],m,e)}function g(){if(s)for(var m=0,y=e.length;m<y;++m)o[m]=+r(e[m],m,e)}return d.initialize=function(m,y){s=m,l=y,h()},d.links=function(m){return arguments.length?(e=m,h(),d):e},d.id=function(m){return arguments.length?(t=m,d):t},d.iterations=function(m){return arguments.length?(c=+m,d):c},d.strength=function(m){return arguments.length?(n=typeof m=="function"?m:yn(+m),p(),d):n},d.distance=function(m){return arguments.length?(r=typeof m=="function"?m:yn(+m),g(),d):r},d}function CY(e,t,n){var i=new o9,r=t;return t==null?(i.restart(e,t,n),i):(i._restart=i.restart,i.restart=function(o,s,a){s=+s,a=a==null?s9():+a,i._restart(function u(l){l+=r,i._restart(u,r+=s,a),o(l)},s,a)},i.restart(e,t,n),i)}const $Y=1664525,_Y=1013904223,f$=4294967296;function FY(){let e=1;return()=>(e=($Y*e+_Y)%f$)/f$}function kY(e){return e.x}function DY(e){return e.y}var TY=10,MY=Math.PI*(3-Math.sqrt(5));function OY(e){var t,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,s=.6,a=new Map,u=a9(f),l=u9("tick","end"),c=FY();e==null&&(e=[]);function f(){d(),l.call("tick",t),n<i&&(u.stop(),l.call("end",t))}function d(g){var m,y=e.length,b;g===void 0&&(g=1);for(var x=0;x<g;++x)for(n+=(o-n)*r,a.forEach(function(v){v(n)}),m=0;m<y;++m)b=e[m],b.fx==null?b.x+=b.vx*=s:(b.x=b.fx,b.vx=0),b.fy==null?b.y+=b.vy*=s:(b.y=b.fy,b.vy=0);return t}function h(){for(var g=0,m=e.length,y;g<m;++g){if(y=e[g],y.index=g,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var b=TY*Math.sqrt(.5+g),x=g*MY;y.x=b*Math.cos(x),y.y=b*Math.sin(x)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function p(g){return g.initialize&&g.initialize(e,c),g}return h(),t={tick:d,restart:function(){return u.restart(f),t},stop:function(){return u.stop(),t},nodes:function(g){return arguments.length?(e=g,h(),a.forEach(p),t):e},alpha:function(g){return arguments.length?(n=+g,t):n},alphaMin:function(g){return arguments.length?(i=+g,t):i},alphaDecay:function(g){return arguments.length?(r=+g,t):+r},alphaTarget:function(g){return arguments.length?(o=+g,t):o},velocityDecay:function(g){return arguments.length?(s=1-g,t):1-s},randomSource:function(g){return arguments.length?(c=g,a.forEach(p),t):c},force:function(g,m){return arguments.length>1?(m==null?a.delete(g):a.set(g,p(m)),t):a.get(g)},find:function(g,m,y){var b=0,x=e.length,v,w,A,E,S;for(y==null?y=1/0:y*=y,b=0;b<x;++b)E=e[b],v=g-E.x,w=m-E.y,A=v*v+w*w,A<y&&(S=E,y=A);return S},on:function(g,m){return arguments.length>1?(l.on(g,m),t):l.on(g)}}}function RY(){var e,t,n,i,r=yn(-30),o,s=1,a=1/0,u=.81;function l(h){var p,g=e.length,m=gE(e,kY,DY).visitAfter(f);for(i=h,p=0;p<g;++p)t=e[p],m.visit(d)}function c(){if(e){var h,p=e.length,g;for(o=new Array(p),h=0;h<p;++h)g=e[h],o[g.index]=+r(g,h,e)}}function f(h){var p=0,g,m,y=0,b,x,v;if(h.length){for(b=x=v=0;v<4;++v)(g=h[v])&&(m=Math.abs(g.value))&&(p+=g.value,y+=m,b+=m*g.x,x+=m*g.y);h.x=b/y,h.y=x/y}else{g=h,g.x=g.data.x,g.y=g.data.y;do p+=o[g.data.index];while(g=g.next)}h.value=p}function d(h,p,g,m){if(!h.value)return!0;var y=h.x-t.x,b=h.y-t.y,x=m-p,v=y*y+b*b;if(x*x/u<v)return v<a&&(y===0&&(y=jo(n),v+=y*y),b===0&&(b=jo(n),v+=b*b),v<s&&(v=Math.sqrt(s*v)),t.vx+=y*h.value*i/v,t.vy+=b*h.value*i/v),!0;if(h.length||v>=a)return;(h.data!==t||h.next)&&(y===0&&(y=jo(n),v+=y*y),b===0&&(b=jo(n),v+=b*b),v<s&&(v=Math.sqrt(s*v)));do h.data!==t&&(x=o[h.data.index]*i/v,t.vx+=y*x,t.vy+=b*x);while(h=h.next)}return l.initialize=function(h,p){e=h,n=p,c()},l.strength=function(h){return arguments.length?(r=typeof h=="function"?h:yn(+h),c(),l):r},l.distanceMin=function(h){return arguments.length?(s=h*h,l):Math.sqrt(s)},l.distanceMax=function(h){return arguments.length?(a=h*h,l):Math.sqrt(a)},l.theta=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l}function NY(e){var t=yn(.1),n,i,r;typeof e!="function"&&(e=yn(e==null?0:+e));function o(a){for(var u=0,l=n.length,c;u<l;++u)c=n[u],c.vx+=(r[u]-c.x)*i[u]*a}function s(){if(n){var a,u=n.length;for(i=new Array(u),r=new Array(u),a=0;a<u;++a)i[a]=isNaN(r[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return o.initialize=function(a){n=a,s()},o.strength=function(a){return arguments.length?(t=typeof a=="function"?a:yn(+a),s(),o):t},o.x=function(a){return arguments.length?(e=typeof a=="function"?a:yn(+a),s(),o):e},o}function LY(e){var t=yn(.1),n,i,r;typeof e!="function"&&(e=yn(e==null?0:+e));function o(a){for(var u=0,l=n.length,c;u<l;++u)c=n[u],c.vy+=(r[u]-c.y)*i[u]*a}function s(){if(n){var a,u=n.length;for(i=new Array(u),r=new Array(u),a=0;a<u;++a)i[a]=isNaN(r[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return o.initialize=function(a){n=a,s()},o.strength=function(a){return arguments.length?(t=typeof a=="function"?a:yn(+a),s(),o):t},o.y=function(a){return arguments.length?(e=typeof a=="function"?a:yn(+a),s(),o):e},o}const d$={center:iY,collide:wY,nbody:RY,link:SY,x:NY,y:LY},mc="forces",yb=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],PY=["static","iterations"],qO=["x","y","vx","vy"];function yE(e){M.call(this,null,e)}yE.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,expr:!0},{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:qO}]};G(yE,M,{transform(e,t){var n=this.value,i=t.changed(t.ADD_REM),r=e.modified(yb),o=e.iterations||300;if(n?(i&&(t.modifies("index"),n.nodes(t.source)),(r||t.changed(t.MOD))&&WO(n,e,0,t)):(this.value=n=zY(t.source,e),n.on("tick",IY(t.dataflow,this)),e.static||(i=!0,n.tick()),t.modifies("index")),r||i||e.modified(PY)||t.changed()&&e.restart){if(n.alpha(Math.max(n.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(n.alphaMin(),1/o)),e.static)for(n.stop();--o>=0;)n.tick();else if(n.stopped()&&n.restart(),!i)return t.StopPropagation}return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let a=this._argops,u=0,l=a.length,c;u<l;++u)if(c=a[u],!(c.name!==mc||c.op._argval.force!=="link")){for(var i=c.op._argops,r=0,o=i.length,s;r<o;++r)if(i[r].name==="links"&&(s=i[r].op.source)){n.pulse(s,n.changeset().reflow());break}}return t.reflow(e.modified()).modifies(qO)}});function IY(e,t){return()=>e.touch(t).run()}function zY(e,t){const n=OY(e),i=n.stop,r=n.restart;let o=!1;return n.stopped=()=>o,n.restart=()=>(o=!1,r()),n.stop=()=>(o=!0,i()),WO(n,t,!0).on("end",()=>o=!0)}function WO(e,t,n,i){var r=se(t.forces),o,s,a,u;for(o=0,s=yb.length;o<s;++o)a=yb[o],a!==mc&&t.modified(a)&&e[a](t[a]);for(o=0,s=r.length;o<s;++o)u=mc+o,a=n||t.modified(mc,o)?UY(r[o]):i&&BY(r[o],i)?e.force(u):null,a&&e.force(u,a);for(s=e.numForces||0;o<s;++o)e.force(mc+o,null);return e.numForces=r.length,e}function BY(e,t){var n,i;for(n in e)if(be(i=e[n])&&t.modified(xn(i)))return 1;return 0}function UY(e){var t,n;le(d$,e.force)||L("Unrecognized force: "+e.force),t=d$[e.force]();for(n in e)be(t[n])&&jY(t[n],e[n],e);return t}function jY(e,t,n){e(be(t)?i=>t(i,n):t)}const qY=Object.freeze(Object.defineProperty({__proto__:null,force:yE},Symbol.toStringTag,{value:"Module"}));function WY(e,t){return e.parent===t.parent?1:2}function GY(e){return e.reduce(HY,0)/e.length}function HY(e,t){return e+t.x}function VY(e){return 1+e.reduce(YY,0)}function YY(e,t){return Math.max(e,t.y)}function XY(e){for(var t;t=e.children;)e=t[0];return e}function KY(e){for(var t;t=e.children;)e=t[t.length-1];return e}function JY(){var e=WY,t=1,n=1,i=!1;function r(o){var s,a=0;o.eachAfter(function(d){var h=d.children;h?(d.x=GY(h),d.y=VY(h)):(d.x=s?a+=e(d,s):0,d.y=0,s=d)});var u=XY(o),l=KY(o),c=u.x-e(u,l)/2,f=l.x+e(l,u)/2;return o.eachAfter(i?function(d){d.x=(d.x-o.x)*t,d.y=(o.y-d.y)*n}:function(d){d.x=(d.x-c)/(f-c)*t,d.y=(1-(o.y?d.y/o.y:1))*n})}return r.separation=function(o){return arguments.length?(e=o,r):e},r.size=function(o){return arguments.length?(i=!1,t=+o[0],n=+o[1],r):i?null:[t,n]},r.nodeSize=function(o){return arguments.length?(i=!0,t=+o[0],n=+o[1],r):i?[t,n]:null},r}function QY(e){var t=0,n=e.children,i=n&&n.length;if(!i)t=1;else for(;--i>=0;)t+=n[i].value;e.value=t}function ZY(){return this.eachAfter(QY)}function eX(e,t){let n=-1;for(const i of this)e.call(t,i,++n,this);return this}function tX(e,t){for(var n=this,i=[n],r,o,s=-1;n=i.pop();)if(e.call(t,n,++s,this),r=n.children)for(o=r.length-1;o>=0;--o)i.push(r[o]);return this}function nX(e,t){for(var n=this,i=[n],r=[],o,s,a,u=-1;n=i.pop();)if(r.push(n),o=n.children)for(s=0,a=o.length;s<a;++s)i.push(o[s]);for(;n=r.pop();)e.call(t,n,++u,this);return this}function iX(e,t){let n=-1;for(const i of this)if(e.call(t,i,++n,this))return i}function rX(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)n+=i[r].value;t.value=n})}function oX(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function sX(e){for(var t=this,n=aX(t,e),i=[t];t!==n;)t=t.parent,i.push(t);for(var r=i.length;e!==n;)i.splice(r,0,e),e=e.parent;return i}function aX(e,t){if(e===t)return e;var n=e.ancestors(),i=t.ancestors(),r=null;for(e=n.pop(),t=i.pop();e===t;)r=e,e=n.pop(),t=i.pop();return r}function uX(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function lX(){return Array.from(this)}function cX(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function fX(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*dX(){var e=this,t,n=[e],i,r,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,i=e.children)for(r=0,o=i.length;r<o;++r)n.push(i[r]);while(n.length)}function bE(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=gX)):t===void 0&&(t=pX);for(var n=new Uu(e),i,r=[n],o,s,a,u;i=r.pop();)if((s=t(i.data))&&(u=(s=Array.from(s)).length))for(i.children=s,a=u-1;a>=0;--a)r.push(o=s[a]=new Uu(s[a])),o.parent=i,o.depth=i.depth+1;return n.eachBefore(GO)}function hX(){return bE(this).eachBefore(mX)}function pX(e){return e.children}function gX(e){return Array.isArray(e)?e[1]:null}function mX(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function GO(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function Uu(e){this.data=e,this.depth=this.height=0,this.parent=null}Uu.prototype=bE.prototype={constructor:Uu,count:ZY,each:eX,eachAfter:nX,eachBefore:tX,find:iX,sum:rX,sort:oX,path:sX,ancestors:uX,descendants:lX,leaves:cX,links:fX,copy:hX,[Symbol.iterator]:dX};function fh(e){return e==null?null:HO(e)}function HO(e){if(typeof e!="function")throw new Error;return e}function Ws(){return 0}function su(e){return function(){return e}}const yX=1664525,bX=1013904223,h$=4294967296;function xX(){let e=1;return()=>(e=(yX*e+bX)%h$)/h$}function vX(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function EX(e,t){let n=e.length,i,r;for(;n;)r=t()*n--|0,i=e[n],e[n]=e[r],e[r]=i;return e}function wX(e,t){for(var n=0,i=(e=EX(Array.from(e),t)).length,r=[],o,s;n<i;)o=e[n],s&&VO(s,o)?++n:(s=SX(r=AX(r,o)),n=0);return s}function AX(e,t){var n,i;if(Km(t,e))return[t];for(n=0;n<e.length;++n)if(Td(t,e[n])&&Km(yc(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(i=n+1;i<e.length;++i)if(Td(yc(e[n],e[i]),t)&&Td(yc(e[n],t),e[i])&&Td(yc(e[i],t),e[n])&&Km(YO(e[n],e[i],t),e))return[e[n],e[i],t];throw new Error}function Td(e,t){var n=e.r-t.r,i=t.x-e.x,r=t.y-e.y;return n<0||n*n<i*i+r*r}function VO(e,t){var n=e.r-t.r+Math.max(e.r,t.r,1)*1e-9,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function Km(e,t){for(var n=0;n<t.length;++n)if(!VO(e,t[n]))return!1;return!0}function SX(e){switch(e.length){case 1:return CX(e[0]);case 2:return yc(e[0],e[1]);case 3:return YO(e[0],e[1],e[2])}}function CX(e){return{x:e.x,y:e.y,r:e.r}}function yc(e,t){var n=e.x,i=e.y,r=e.r,o=t.x,s=t.y,a=t.r,u=o-n,l=s-i,c=a-r,f=Math.sqrt(u*u+l*l);return{x:(n+o+u/f*c)/2,y:(i+s+l/f*c)/2,r:(f+r+a)/2}}function YO(e,t,n){var i=e.x,r=e.y,o=e.r,s=t.x,a=t.y,u=t.r,l=n.x,c=n.y,f=n.r,d=i-s,h=i-l,p=r-a,g=r-c,m=u-o,y=f-o,b=i*i+r*r-o*o,x=b-s*s-a*a+u*u,v=b-l*l-c*c+f*f,w=h*p-d*g,A=(p*v-g*x)/(w*2)-i,E=(g*m-p*y)/w,S=(h*x-d*v)/(w*2)-r,C=(d*y-h*m)/w,_=E*E+C*C-1,k=2*(o+A*E+S*C),N=A*A+S*S-o*o,T=-(Math.abs(_)>1e-6?(k+Math.sqrt(k*k-4*_*N))/(2*_):N/k);return{x:i+A+E*T,y:r+S+C*T,r:T}}function p$(e,t,n){var i=e.x-t.x,r,o,s=e.y-t.y,a,u,l=i*i+s*s;l?(o=t.r+n.r,o*=o,u=e.r+n.r,u*=u,o>u?(r=(l+u-o)/(2*l),a=Math.sqrt(Math.max(0,u/l-r*r)),n.x=e.x-r*i-a*s,n.y=e.y-r*s+a*i):(r=(l+o-u)/(2*l),a=Math.sqrt(Math.max(0,o/l-r*r)),n.x=t.x+r*i-a*s,n.y=t.y+r*s+a*i)):(n.x=t.x+n.r,n.y=t.y)}function g$(e,t){var n=e.r+t.r-1e-6,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function m$(e){var t=e._,n=e.next._,i=t.r+n.r,r=(t.x*n.r+n.x*t.r)/i,o=(t.y*n.r+n.y*t.r)/i;return r*r+o*o}function Md(e){this._=e,this.next=null,this.previous=null}function $X(e,t){if(!(o=(e=vX(e)).length))return 0;var n,i,r,o,s,a,u,l,c,f,d;if(n=e[0],n.x=0,n.y=0,!(o>1))return n.r;if(i=e[1],n.x=-i.r,i.x=n.r,i.y=0,!(o>2))return n.r+i.r;p$(i,n,r=e[2]),n=new Md(n),i=new Md(i),r=new Md(r),n.next=r.previous=i,i.next=n.previous=r,r.next=i.previous=n;e:for(u=3;u<o;++u){p$(n._,i._,r=e[u]),r=new Md(r),l=i.next,c=n.previous,f=i._.r,d=n._.r;do if(f<=d){if(g$(l._,r._)){i=l,n.next=i,i.previous=n,--u;continue e}f+=l._.r,l=l.next}else{if(g$(c._,r._)){n=c,n.next=i,i.previous=n,--u;continue e}d+=c._.r,c=c.previous}while(l!==c.next);for(r.previous=n,r.next=i,n.next=i.previous=i=r,s=m$(n);(r=r.next)!==i;)(a=m$(r))<s&&(n=r,s=a);i=n.next}for(n=[i._],r=i;(r=r.next)!==i;)n.push(r._);for(r=wX(n,t),u=0;u<o;++u)n=e[u],n.x-=r.x,n.y-=r.y;return r.r}function _X(e){return Math.sqrt(e.value)}function FX(){var e=null,t=1,n=1,i=Ws;function r(o){const s=xX();return o.x=t/2,o.y=n/2,e?o.eachBefore(y$(e)).eachAfter(Jm(i,.5,s)).eachBefore(b$(1)):o.eachBefore(y$(_X)).eachAfter(Jm(Ws,1,s)).eachAfter(Jm(i,o.r/Math.min(t,n),s)).eachBefore(b$(Math.min(t,n)/(2*o.r))),o}return r.radius=function(o){return arguments.length?(e=fh(o),r):e},r.size=function(o){return arguments.length?(t=+o[0],n=+o[1],r):[t,n]},r.padding=function(o){return arguments.length?(i=typeof o=="function"?o:su(+o),r):i},r}function y$(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function Jm(e,t,n){return function(i){if(r=i.children){var r,o,s=r.length,a=e(i)*t||0,u;if(a)for(o=0;o<s;++o)r[o].r+=a;if(u=$X(r,n),a)for(o=0;o<s;++o)r[o].r-=a;i.r=u+a}}}function b$(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function XO(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function zf(e,t,n,i,r){for(var o=e.children,s,a=-1,u=o.length,l=e.value&&(i-t)/e.value;++a<u;)s=o[a],s.y0=n,s.y1=r,s.x0=t,s.x1=t+=s.value*l}function kX(){var e=1,t=1,n=0,i=!1;function r(s){var a=s.height+1;return s.x0=s.y0=n,s.x1=e,s.y1=t/a,s.eachBefore(o(t,a)),i&&s.eachBefore(XO),s}function o(s,a){return function(u){u.children&&zf(u,u.x0,s*(u.depth+1)/a,u.x1,s*(u.depth+2)/a);var l=u.x0,c=u.y0,f=u.x1-n,d=u.y1-n;f<l&&(l=f=(l+f)/2),d<c&&(c=d=(c+d)/2),u.x0=l,u.y0=c,u.x1=f,u.y1=d}}return r.round=function(s){return arguments.length?(i=!!s,r):i},r.size=function(s){return arguments.length?(e=+s[0],t=+s[1],r):[e,t]},r.padding=function(s){return arguments.length?(n=+s,r):n},r}var DX={depth:-1},x$={},Qm={};function TX(e){return e.id}function MX(e){return e.parentId}function v$(){var e=TX,t=MX,n;function i(r){var o=Array.from(r),s=e,a=t,u,l,c,f,d,h,p,g,m=new Map;if(n!=null){const y=o.map((v,w)=>OX(n(v,w,r))),b=y.map(E$),x=new Set(y).add("");for(const v of b)x.has(v)||(x.add(v),y.push(v),b.push(E$(v)),o.push(Qm));s=(v,w)=>y[w],a=(v,w)=>b[w]}for(c=0,u=o.length;c<u;++c)l=o[c],h=o[c]=new Uu(l),(p=s(l,c,r))!=null&&(p+="")&&(g=h.id=p,m.set(g,m.has(g)?x$:h)),(p=a(l,c,r))!=null&&(p+="")&&(h.parent=p);for(c=0;c<u;++c)if(h=o[c],p=h.parent){if(d=m.get(p),!d)throw new Error("missing: "+p);if(d===x$)throw new Error("ambiguous: "+p);d.children?d.children.push(h):d.children=[h],h.parent=d}else{if(f)throw new Error("multiple roots");f=h}if(!f)throw new Error("no root");if(n!=null){for(;f.data===Qm&&f.children.length===1;)f=f.children[0],--u;for(let y=o.length-1;y>=0&&(h=o[y],h.data===Qm);--y)h.data=null}if(f.parent=DX,f.eachBefore(function(y){y.depth=y.parent.depth+1,--u}).eachBefore(GO),f.parent=null,u>0)throw new Error("cycle");return f}return i.id=function(r){return arguments.length?(e=fh(r),i):e},i.parentId=function(r){return arguments.length?(t=fh(r),i):t},i.path=function(r){return arguments.length?(n=fh(r),i):n},i}function OX(e){e=`${e}`;let t=e.length;return bb(e,t-1)&&!bb(e,t-2)&&(e=e.slice(0,-1)),e[0]==="/"?e:`/${e}`}function E$(e){let t=e.length;if(t<2)return"";for(;--t>1&&!bb(e,t););return e.slice(0,t)}function bb(e,t){if(e[t]==="/"){let n=0;for(;t>0&&e[--t]==="\\";)++n;if((n&1)===0)return!0}return!1}function RX(e,t){return e.parent===t.parent?1:2}function Zm(e){var t=e.children;return t?t[0]:e.t}function e1(e){var t=e.children;return t?t[t.length-1]:e.t}function NX(e,t,n){var i=n/(t.i-e.i);t.c-=i,t.s+=n,e.c+=i,t.z+=n,t.m+=n}function LX(e){for(var t=0,n=0,i=e.children,r=i.length,o;--r>=0;)o=i[r],o.z+=t,o.m+=t,t+=o.s+(n+=o.c)}function PX(e,t,n){return e.a.parent===t.parent?e.a:n}function dh(e,t){this._=e,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=t}dh.prototype=Object.create(Uu.prototype);function IX(e){for(var t=new dh(e,0),n,i=[t],r,o,s,a;n=i.pop();)if(o=n._.children)for(n.children=new Array(a=o.length),s=a-1;s>=0;--s)i.push(r=n.children[s]=new dh(o[s],s)),r.parent=n;return(t.parent=new dh(null,0)).children=[t],t}function zX(){var e=RX,t=1,n=1,i=null;function r(l){var c=IX(l);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(s),i)l.eachBefore(u);else{var f=l,d=l,h=l;l.eachBefore(function(b){b.x<f.x&&(f=b),b.x>d.x&&(d=b),b.depth>h.depth&&(h=b)});var p=f===d?1:e(f,d)/2,g=p-f.x,m=t/(d.x+p+g),y=n/(h.depth||1);l.eachBefore(function(b){b.x=(b.x+g)*m,b.y=b.depth*y})}return l}function o(l){var c=l.children,f=l.parent.children,d=l.i?f[l.i-1]:null;if(c){LX(l);var h=(c[0].z+c[c.length-1].z)/2;d?(l.z=d.z+e(l._,d._),l.m=l.z-h):l.z=h}else d&&(l.z=d.z+e(l._,d._));l.parent.A=a(l,d,l.parent.A||f[0])}function s(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function a(l,c,f){if(c){for(var d=l,h=l,p=c,g=d.parent.children[0],m=d.m,y=h.m,b=p.m,x=g.m,v;p=e1(p),d=Zm(d),p&&d;)g=Zm(g),h=e1(h),h.a=l,v=p.z+b-d.z-m+e(p._,d._),v>0&&(NX(PX(p,l,f),l,v),m+=v,y+=v),b+=p.m,m+=d.m,x+=g.m,y+=h.m;p&&!e1(h)&&(h.t=p,h.m+=b-y),d&&!Zm(g)&&(g.t=d,g.m+=m-x,f=l)}return f}function u(l){l.x*=t,l.y=l.depth*n}return r.separation=function(l){return arguments.length?(e=l,r):e},r.size=function(l){return arguments.length?(i=!1,t=+l[0],n=+l[1],r):i?null:[t,n]},r.nodeSize=function(l){return arguments.length?(i=!0,t=+l[0],n=+l[1],r):i?[t,n]:null},r}function i0(e,t,n,i,r){for(var o=e.children,s,a=-1,u=o.length,l=e.value&&(r-n)/e.value;++a<u;)s=o[a],s.x0=t,s.x1=i,s.y0=n,s.y1=n+=s.value*l}var KO=(1+Math.sqrt(5))/2;function JO(e,t,n,i,r,o){for(var s=[],a=t.children,u,l,c=0,f=0,d=a.length,h,p,g=t.value,m,y,b,x,v,w,A;c<d;){h=r-n,p=o-i;do m=a[f++].value;while(!m&&f<d);for(y=b=m,w=Math.max(p/h,h/p)/(g*e),A=m*m*w,v=Math.max(b/A,A/y);f<d;++f){if(m+=l=a[f].value,l<y&&(y=l),l>b&&(b=l),A=m*m*w,x=Math.max(b/A,A/y),x>v){m-=l;break}v=x}s.push(u={value:m,dice:h<p,children:a.slice(c,f)}),u.dice?zf(u,n,i,r,g?i+=p*m/g:o):i0(u,n,i,g?n+=h*m/g:r,o),g-=m,c=f}return s}const QO=function e(t){function n(i,r,o,s,a){JO(t,i,r,o,s,a)}return n.ratio=function(i){return e((i=+i)>1?i:1)},n}(KO);function BX(){var e=QO,t=!1,n=1,i=1,r=[0],o=Ws,s=Ws,a=Ws,u=Ws,l=Ws;function c(d){return d.x0=d.y0=0,d.x1=n,d.y1=i,d.eachBefore(f),r=[0],t&&d.eachBefore(XO),d}function f(d){var h=r[d.depth],p=d.x0+h,g=d.y0+h,m=d.x1-h,y=d.y1-h;m<p&&(p=m=(p+m)/2),y<g&&(g=y=(g+y)/2),d.x0=p,d.y0=g,d.x1=m,d.y1=y,d.children&&(h=r[d.depth+1]=o(d)/2,p+=l(d)-h,g+=s(d)-h,m-=a(d)-h,y-=u(d)-h,m<p&&(p=m=(p+m)/2),y<g&&(g=y=(g+y)/2),e(d,p,g,m,y))}return c.round=function(d){return arguments.length?(t=!!d,c):t},c.size=function(d){return arguments.length?(n=+d[0],i=+d[1],c):[n,i]},c.tile=function(d){return arguments.length?(e=HO(d),c):e},c.padding=function(d){return arguments.length?c.paddingInner(d).paddingOuter(d):c.paddingInner()},c.paddingInner=function(d){return arguments.length?(o=typeof d=="function"?d:su(+d),c):o},c.paddingOuter=function(d){return arguments.length?c.paddingTop(d).paddingRight(d).paddingBottom(d).paddingLeft(d):c.paddingTop()},c.paddingTop=function(d){return arguments.length?(s=typeof d=="function"?d:su(+d),c):s},c.paddingRight=function(d){return arguments.length?(a=typeof d=="function"?d:su(+d),c):a},c.paddingBottom=function(d){return arguments.length?(u=typeof d=="function"?d:su(+d),c):u},c.paddingLeft=function(d){return arguments.length?(l=typeof d=="function"?d:su(+d),c):l},c}function UX(e,t,n,i,r){var o=e.children,s,a=o.length,u,l=new Array(a+1);for(l[0]=u=s=0;s<a;++s)l[s+1]=u+=o[s].value;c(0,a,e.value,t,n,i,r);function c(f,d,h,p,g,m,y){if(f>=d-1){var b=o[f];b.x0=p,b.y0=g,b.x1=m,b.y1=y;return}for(var x=l[f],v=h/2+x,w=f+1,A=d-1;w<A;){var E=w+A>>>1;l[E]<v?w=E+1:A=E}v-l[w-1]<l[w]-v&&f+1<w&&--w;var S=l[w]-x,C=h-S;if(m-p>y-g){var _=h?(p*C+m*S)/h:m;c(f,w,S,p,g,_,y),c(w,d,C,_,g,m,y)}else{var k=h?(g*C+y*S)/h:y;c(f,w,S,p,g,m,k),c(w,d,C,p,k,m,y)}}}function jX(e,t,n,i,r){(e.depth&1?i0:zf)(e,t,n,i,r)}const qX=function e(t){function n(i,r,o,s,a){if((u=i._squarify)&&u.ratio===t)for(var u,l,c,f,d=-1,h,p=u.length,g=i.value;++d<p;){for(l=u[d],c=l.children,f=l.value=0,h=c.length;f<h;++f)l.value+=c[f].value;l.dice?zf(l,r,o,s,g?o+=(a-o)*l.value/g:a):i0(l,r,o,g?r+=(s-r)*l.value/g:s,a),g-=l.value}else i._squarify=u=JO(t,i,r,o,s,a),u.ratio=t}return n.ratio=function(i){return e((i=+i)>1?i:1)},n}(KO);function xb(e,t,n){const i={};return e.each(r=>{const o=r.data;n(o)&&(i[t(o)]=r)}),e.lookup=i,e}function xE(e){M.call(this,null,e)}xE.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const WX=e=>e.values;G(xE,M,{transform(e,t){t.source||L("Nest transform requires an upstream data source.");var n=e.generate,i=e.modified(),r=t.clone(),o=this.value;return(!o||i||t.changed())&&(o&&o.each(s=>{s.children&&wg(s.data)&&r.rem.push(s.data)}),this.value=o=bE({values:se(e.keys).reduce((s,a)=>(s.key(a),s),GX()).entries(r.source)},WX),n&&o.each(s=>{s.children&&(s=Oe(s.data),r.add.push(s),r.source.push(s))}),xb(o,te,te)),r.source.root=o,r}});function GX(){const e=[],t={entries:r=>i(n(r,0),0),key:r=>(e.push(r),t)};function n(r,o){if(o>=e.length)return r;const s=r.length,a=e[o++],u={},l={};let c=-1,f,d,h;for(;++c<s;)f=a(d=r[c])+"",(h=u[f])?h.push(d):u[f]=[d];for(f in u)l[f]=n(u[f],o);return l}function i(r,o){if(++o>e.length)return r;const s=[];for(const a in r)s.push({key:a,values:i(r[a],o)});return s}return t}function xo(e){M.call(this,null,e)}const HX=(e,t)=>e.parent===t.parent?1:2;G(xo,M,{transform(e,t){(!t.source||!t.source.root)&&L(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),i=this.fields,r=t.source.root,o=e.as||i;e.field?r.sum(e.field):r.count(),e.sort&&r.sort(Da(e.sort,s=>s.data)),VX(n,this.params,e),n.separation&&n.separation(e.separation!==!1?HX:xf);try{this.value=n(r)}catch(s){L(s)}return r.each(s=>YX(s,i,o)),t.reflow(e.modified()).modifies(o).modifies("leaf")}});function VX(e,t,n){for(let i,r=0,o=t.length;r<o;++r)i=t[r],i in n&&e[i](n[i])}function YX(e,t,n){const i=e.data,r=t.length-1;for(let o=0;o<r;++o)i[n[o]]=e[t[o]];i[n[r]]=e.children?e.children.length:0}const vb=["x","y","r","depth","children"];function vE(e){xo.call(this,e)}vE.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:vb.length,default:vb}]};G(vE,xo,{layout:FX,params:["radius","size","padding"],fields:vb});const Eb=["x0","y0","x1","y1","depth","children"];function EE(e){xo.call(this,e)}EE.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:Eb.length,default:Eb}]};G(EE,xo,{layout:kX,params:["size","round","padding"],fields:Eb});function wE(e){M.call(this,null,e)}wE.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]};G(wE,M,{transform(e,t){t.source||L("Stratify transform requires an upstream data source.");let n=this.value;const i=e.modified(),r=t.fork(t.ALL).materialize(t.SOURCE),o=!n||i||t.changed(t.ADD_REM)||t.modified(e.key.fields)||t.modified(e.parentKey.fields);return r.source=r.source.slice(),o&&(n=r.source.length?xb(v$().id(e.key).parentId(e.parentKey)(r.source),e.key,Pi):xb(v$()([{}]),e.key,e.key)),r.source.root=this.value=n,r}});const w$={tidy:zX,cluster:JY},wb=["x","y","depth","children"];function AE(e){xo.call(this,e)}AE.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:wb.length,default:wb}]};G(AE,xo,{layout(e){const t=e||"tidy";if(le(w$,t))return w$[t]();L("Unrecognized Tree layout method: "+t)},params:["size","nodeSize"],fields:wb});function SE(e){M.call(this,[],e)}SE.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]};G(SE,M,{transform(e,t){const n=this.value,i=t.source&&t.source.root,r=t.fork(t.NO_SOURCE),o={};return i||L("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(r.rem=n,t.visit(t.SOURCE,s=>o[te(s)]=1),i.each(s=>{const a=s.data,u=s.parent&&s.parent.data;u&&o[te(a)]&&o[te(u)]&&r.add.push(Oe({source:u,target:a}))}),this.value=r.add):t.changed(t.MOD)&&(t.visit(t.MOD,s=>o[te(s)]=1),n.forEach(s=>{(o[te(s.source)]||o[te(s.target)])&&r.mod.push(s)})),r}});const A$={binary:UX,dice:zf,slice:i0,slicedice:jX,squarify:QO,resquarify:qX},Ab=["x0","y0","x1","y1","depth","children"];function CE(e){xo.call(this,e)}CE.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:Ab.length,default:Ab}]};G(CE,xo,{layout(){const e=BX();return e.ratio=t=>{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=t=>{le(A$,t)?e.tile(A$[t]):L("Unrecognized Treemap layout method: "+t)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:Ab});const XX=Object.freeze(Object.defineProperty({__proto__:null,nest:xE,pack:vE,partition:EE,stratify:wE,tree:AE,treelinks:SE,treemap:CE},Symbol.toStringTag,{value:"Module"})),t1=4278190080;function KX(e,t){const n=e.bitmap();return(t||[]).forEach(i=>n.set(e(i.boundary[0]),e(i.boundary[3]))),[n,void 0]}function JX(e,t,n,i,r){const o=e.width,s=e.height,a=i||r,u=Vo(o,s).getContext("2d"),l=Vo(o,s).getContext("2d"),c=a&&Vo(o,s).getContext("2d");n.forEach(S=>hh(u,S,!1)),hh(l,t,!1),a&&hh(c,t,!0);const f=n1(u,o,s),d=n1(l,o,s),h=a&&n1(c,o,s),p=e.bitmap(),g=a&&e.bitmap();let m,y,b,x,v,w,A,E;for(y=0;y<s;++y)for(m=0;m<o;++m)v=y*o+m,w=f[v]&t1,E=d[v]&t1,A=a&&h[v]&t1,(w||A||E)&&(b=e(m),x=e(y),!r&&(w||E)&&p.set(b,x),a&&(w||A)&&g.set(b,x));return[p,g]}function n1(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function hh(e,t,n){if(!t.length)return;const i=t[0].mark.marktype;i==="group"?t.forEach(r=>{r.items.forEach(o=>hh(e,o.items,n))}):ni[i].draw(e,{items:n?t.map(QX):t})}function QX(e){const t=Ag(e,{});return t.stroke&&t.strokeOpacity!==0||t.fill&&t.fillOpacity!==0?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const Br=5,un=31,Zc=32,Oo=new Uint32Array(Zc+1),Fi=new Uint32Array(Zc+1);Fi[0]=0;Oo[0]=~Fi[0];for(let e=1;e<=Zc;++e)Fi[e]=Fi[e-1]<<1|1,Oo[e]=~Fi[e];function ZX(e,t){const n=new Uint32Array(~~((e*t+Zc)/Zc));function i(o,s){n[o]|=s}function r(o,s){n[o]&=s}return{array:n,get:(o,s)=>{const a=s*e+o;return n[a>>>Br]&1<<(a&un)},set:(o,s)=>{const a=s*e+o;i(a>>>Br,1<<(a&un))},clear:(o,s)=>{const a=s*e+o;r(a>>>Br,~(1<<(a&un)))},getRange:(o,s,a,u)=>{let l=u,c,f,d,h;for(;l>=s;--l)if(c=l*e+o,f=l*e+a,d=c>>>Br,h=f>>>Br,d===h){if(n[d]&Oo[c&un]&Fi[(f&un)+1])return!0}else{if(n[d]&Oo[c&un]||n[h]&Fi[(f&un)+1])return!0;for(let p=d+1;p<h;++p)if(n[p])return!0}return!1},setRange:(o,s,a,u)=>{let l,c,f,d,h;for(;s<=u;++s)if(l=s*e+o,c=s*e+a,f=l>>>Br,d=c>>>Br,f===d)i(f,Oo[l&un]&Fi[(c&un)+1]);else for(i(f,Oo[l&un]),i(d,Fi[(c&un)+1]),h=f+1;h<d;++h)i(h,4294967295)},clearRange:(o,s,a,u)=>{let l,c,f,d,h;for(;s<=u;++s)if(l=s*e+o,c=s*e+a,f=l>>>Br,d=c>>>Br,f===d)r(f,Fi[l&un]|Oo[(c&un)+1]);else for(r(f,Fi[l&un]),r(d,Oo[(c&un)+1]),h=f+1;h<d;++h)r(h,0)},outOfBounds:(o,s,a,u)=>o<0||s<0||u>=t||a>=e}}function eK(e,t,n){const i=Math.max(1,Math.sqrt(e*t/1e6)),r=~~((e+2*n+i)/i),o=~~((t+2*n+i)/i),s=a=>~~((a+n)/i);return s.invert=a=>a*i-n,s.bitmap=()=>ZX(r,o),s.ratio=i,s.padding=n,s.width=e,s.height=t,s}function tK(e,t,n,i){const r=e.width,o=e.height;return function(s){const a=s.datum.datum.items[i].items,u=a.length,l=s.datum.fontSize,c=Jn.width(s.datum,s.datum.text);let f=0,d,h,p,g,m,y,b;for(let x=0;x<u;++x)d=a[x].x,p=a[x].y,h=a[x].x2===void 0?d:a[x].x2,g=a[x].y2===void 0?p:a[x].y2,m=(d+h)/2,y=(p+g)/2,b=Math.abs(h-d+g-p),b>=f&&(f=b,s.x=m,s.y=y);return m=c/2,y=l/2,d=s.x-m,h=s.x+m,p=s.y-y,g=s.y+y,s.align="center",d<0&&h<=r?s.align="left":0<=d&&r<h&&(s.align="right"),s.baseline="middle",p<0&&g<=o?s.baseline="top":0<=p&&o<g&&(s.baseline="bottom"),!0}}function $p(e,t,n,i,r,o){let s=n/2;return e-s<0||e+s>r||t-(s=i/2)<0||t+s>o}function qo(e,t,n,i,r,o,s,a){const u=r*o/(i*2),l=e(t-u),c=e(t+u),f=e(n-(o=o/2)),d=e(n+o);return s.outOfBounds(l,f,c,d)||s.getRange(l,f,c,d)||a&&a.getRange(l,f,c,d)}function nK(e,t,n,i){const r=e.width,o=e.height,s=t[0],a=t[1];function u(l,c,f,d,h){const p=e.invert(l),g=e.invert(c);let m=f,y=o,b;if(!$p(p,g,d,h,r,o)&&!qo(e,p,g,h,d,m,s,a)&&!qo(e,p,g,h,d,h,s,null)){for(;y-m>=1;)b=(m+y)/2,qo(e,p,g,h,d,b,s,a)?y=b:m=b;if(m>f)return[p,g,m,!0]}}return function(l){const c=l.datum.datum.items[i].items,f=c.length,d=l.datum.fontSize,h=Jn.width(l.datum,l.datum.text);let p=n?d:0,g=!1,m=!1,y=0,b,x,v,w,A,E,S,C,_,k,N,T,F,$,D,P,z;for(let I=0;I<f;++I){for(b=c[I].x,v=c[I].y,x=c[I].x2===void 0?b:c[I].x2,w=c[I].y2===void 0?v:c[I].y2,b>x&&(z=b,b=x,x=z),v>w&&(z=v,v=w,w=z),_=e(b),N=e(x),k=~~((_+N)/2),T=e(v),$=e(w),F=~~((T+$)/2),S=k;S>=_;--S)for(C=F;C>=T;--C)P=u(S,C,p,h,d),P&&([l.x,l.y,p,g]=P);for(S=k;S<=N;++S)for(C=F;C<=$;++C)P=u(S,C,p,h,d),P&&([l.x,l.y,p,g]=P);!g&&!n&&(D=Math.abs(x-b+w-v),A=(b+x)/2,E=(v+w)/2,D>=y&&!$p(A,E,h,d,r,o)&&!qo(e,A,E,d,h,d,s,null)&&(y=D,l.x=A,l.y=E,m=!0))}return g||m?(A=h/2,E=d/2,s.setRange(e(l.x-A),e(l.y-E),e(l.x+A),e(l.y+E)),l.align="center",l.baseline="middle",!0):!1}}const iK=[-1,-1,1,1],rK=[-1,1,-1,1];function oK(e,t,n,i){const r=e.width,o=e.height,s=t[0],a=t[1],u=e.bitmap();return function(l){const c=l.datum.datum.items[i].items,f=c.length,d=l.datum.fontSize,h=Jn.width(l.datum,l.datum.text),p=[];let g=n?d:0,m=!1,y=!1,b=0,x,v,w,A,E,S,C,_,k,N,T,F;for(let $=0;$<f;++$){for(x=c[$].x,w=c[$].y,v=c[$].x2===void 0?x:c[$].x2,A=c[$].y2===void 0?w:c[$].y2,p.push([e((x+v)/2),e((w+A)/2)]);p.length;)if([C,_]=p.pop(),!(s.get(C,_)||a.get(C,_)||u.get(C,_))){u.set(C,_);for(let D=0;D<4;++D)E=C+iK[D],S=_+rK[D],u.outOfBounds(E,S,E,S)||p.push([E,S]);if(E=e.invert(C),S=e.invert(_),k=g,N=o,!$p(E,S,h,d,r,o)&&!qo(e,E,S,d,h,k,s,a)&&!qo(e,E,S,d,h,d,s,null)){for(;N-k>=1;)T=(k+N)/2,qo(e,E,S,d,h,T,s,a)?N=T:k=T;k>g&&(l.x=E,l.y=S,g=k,m=!0)}}!m&&!n&&(F=Math.abs(v-x+A-w),E=(x+v)/2,S=(w+A)/2,F>=b&&!$p(E,S,h,d,r,o)&&!qo(e,E,S,d,h,d,s,null)&&(b=F,l.x=E,l.y=S,y=!0))}return m||y?(E=h/2,S=d/2,s.setRange(e(l.x-E),e(l.y-S),e(l.x+E),e(l.y+S)),l.align="center",l.baseline="middle",!0):!1}}const sK=["right","center","left"],aK=["bottom","middle","top"];function uK(e,t,n,i){const r=e.width,o=e.height,s=t[0],a=t[1],u=i.length;return function(l){const c=l.boundary,f=l.datum.fontSize;if(c[2]<0||c[5]<0||c[0]>r||c[3]>o)return!1;let d=l.textWidth??0,h,p,g,m,y,b,x,v,w,A,E,S,C,_,k;for(let N=0;N<u;++N){if(h=(n[N]&3)-1,p=(n[N]>>>2&3)-1,g=h===0&&p===0||i[N]<0,m=h&&p?Math.SQRT1_2:1,y=i[N]<0?-1:1,b=c[1+h]+i[N]*h*m,E=c[4+p]+y*f*p/2+i[N]*p*m,v=E-f/2,w=E+f/2,S=e(b),_=e(v),k=e(w),!d)if(S$(S,S,_,k,s,a,b,b,v,w,c,g))d=Jn.width(l.datum,l.datum.text);else continue;if(A=b+y*d*h/2,b=A-d/2,x=A+d/2,S=e(b),C=e(x),S$(S,C,_,k,s,a,b,x,v,w,c,g))return l.x=h?h*y<0?x:b:A,l.y=p?p*y<0?w:v:E,l.align=sK[h*y+1],l.baseline=aK[p*y+1],s.setRange(S,_,C,k),!0}return!1}}function S$(e,t,n,i,r,o,s,a,u,l,c,f){return!(r.outOfBounds(e,n,t,i)||(f&&o||r).getRange(e,n,t,i))}const i1=0,r1=4,o1=8,s1=0,a1=1,u1=2,lK={"top-left":i1+s1,top:i1+a1,"top-right":i1+u1,left:r1+s1,middle:r1+a1,right:r1+u1,"bottom-left":o1+s1,bottom:o1+a1,"bottom-right":o1+u1},cK={naive:tK,"reduced-search":nK,floodfill:oK};function fK(e,t,n,i,r,o,s,a,u,l,c){if(!e.length)return e;const f=Math.max(i.length,r.length),d=dK(i,f),h=hK(r,f),p=pK(e[0].datum),g=p==="group"&&e[0].datum.items[u].marktype,m=g==="area",y=gK(p,g,a,u),b=l===null||l===1/0,x=m&&c==="naive";let v=-1,w=-1;const A=e.map(_=>{const k=b?Jn.width(_,_.text):void 0;return v=Math.max(v,k),w=Math.max(w,_.fontSize),{datum:_,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(_),textWidth:k}});l=l===null||l===1/0?Math.max(v,w)+Math.max(...i):l;const E=eK(t[0],t[1],l);let S;if(!x){n&&A.sort((N,T)=>n(N.datum,T.datum));let _=!1;for(let N=0;N<h.length&&!_;++N)_=h[N]===5||d[N]<0;const k=(p&&s||m)&&e.map(N=>N.datum);S=o.length||k?JX(E,k||[],o,_,m):KX(E,s&&A)}const C=m?cK[c](E,S,s,u):uK(E,S,h,d);return A.forEach(_=>_.opacity=+C(_)),A}function dK(e,t){const n=new Float64Array(t),i=e.length;for(let r=0;r<i;++r)n[r]=e[r]||0;for(let r=i;r<t;++r)n[r]=n[i-1];return n}function hK(e,t){const n=new Int8Array(t),i=e.length;for(let r=0;r<i;++r)n[r]|=lK[e[r]];for(let r=i;r<t;++r)n[r]=n[i-1];return n}function pK(e){return e&&e.mark&&e.mark.marktype}function gK(e,t,n,i){const r=o=>[o.x,o.x,o.x,o.y,o.y,o.y];return e?e==="line"||e==="area"?o=>r(o.datum):t==="line"?o=>{const s=o.datum.items[i].items;return r(s.length?s[n==="start"?0:s.length-1]:{x:NaN,y:NaN})}:o=>{const s=o.datum.bounds;return[s.x1,(s.x1+s.x2)/2,s.x2,s.y1,(s.y1+s.y2)/2,s.y2]}:r}const Sb=["x","y","opacity","align","baseline"],ZO=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function $E(e){M.call(this,null,e)}$E.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:ZO},{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:Sb.length,default:Sb}]};G($E,M,{transform(e,t){function n(o){const s=e[o];return be(s)&&t.modified(s.fields)}const i=e.modified();if(!(i||t.changed(t.ADD_REM)||n("sort")))return;(!e.size||e.size.length!==2)&&L("Size parameter should be specified as a [width, height] array.");const r=e.as||Sb;return fK(t.materialize(t.SOURCE).source||[],e.size,e.sort,se(e.offset==null?1:e.offset),se(e.anchor||ZO),e.avoidMarks||[],e.avoidBaseMark!==!1,e.lineAnchor||"end",e.markIndex||0,e.padding===void 0?0:e.padding,e.method||"naive").forEach(o=>{const s=o.datum;s[r[0]]=o.x,s[r[1]]=o.y,s[r[2]]=o.opacity,s[r[3]]=o.align,s[r[4]]=o.baseline}),t.reflow(i).modifies(r)}});const mK=Object.freeze(Object.defineProperty({__proto__:null,label:$E},Symbol.toStringTag,{value:"Module"}));function eR(e,t){var n=[],i=function(c){return c(a)},r,o,s,a,u,l;if(t==null)n.push(e);else for(r={},o=0,s=e.length;o<s;++o)a=e[o],u=t.map(i),l=r[u],l||(r[u]=l=[],l.dims=u,n.push(l)),l.push(a);return n}function _E(e){M.call(this,null,e)}_E.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}]};G(_E,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=eR(i,e.groupby),o=(e.groupby||[]).map(lt),s=o.length,a=e.as||[lt(e.x),lt(e.y)],u=[];r.forEach(l=>{k3(l,e.x,e.y,e.bandwidth||.3).forEach(c=>{const f={};for(let d=0;d<s;++d)f[o[d]]=l.dims[d];f[a[0]]=c[0],f[a[1]]=c[1],u.push(Oe(f))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}});const Cb={constant:dv,linear:hv,log:C3,exp:$3,pow:_3,quad:pv,poly:F3},yK=(e,t)=>e==="poly"?t:e==="quad"?2:1;function FE(e){M.call(this,null,e)}FE.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(Cb)},{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}]};G(FE,M,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=eR(i,e.groupby),o=(e.groupby||[]).map(lt),s=e.method||"linear",a=e.order==null?3:e.order,u=yK(s,a),l=e.as||[lt(e.x),lt(e.y)],c=Cb[s],f=[];let d=e.extent;le(Cb,s)||L("Invalid regression method: "+s),d!=null&&s==="log"&&d[0]<=0&&(t.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),r.forEach(h=>{if(h.length<=u){t.dataflow.warn("Skipping regression with more parameters than data points.");return}const g=c(h,e.x,e.y,a);if(e.params){f.push(Oe({keys:h.dims,coef:g.coef,rSquared:g.rSquared}));return}const m=d||lo(h,e.x),y=b=>{const x={};for(let v=0;v<o.length;++v)x[o[v]]=h.dims[v];x[l[0]]=b[0],x[l[1]]=b[1],f.push(Oe(x))};s==="linear"||s==="constant"?m.forEach(b=>y([b,g.predict(b)])):Dg(g.predict,m,25,200).forEach(y)}),this.value&&(n.rem=this.value),this.value=n.add=n.source=f}return n}});const bK=Object.freeze(Object.defineProperty({__proto__:null,loess:_E,regression:FE},Symbol.toStringTag,{value:"Module"})),io=11102230246251565e-32,Xt=134217729,xK=(3+8*io)*io;function l1(e,t,n,i,r){let o,s,a,u,l=t[0],c=i[0],f=0,d=0;c>l==c>-l?(o=l,l=t[++f]):(o=c,c=i[++d]);let h=0;if(f<e&&d<n)for(c>l==c>-l?(s=l+o,a=o-(s-l),l=t[++f]):(s=c+o,a=o-(s-c),c=i[++d]),o=s,a!==0&&(r[h++]=a);f<e&&d<n;)c>l==c>-l?(s=o+l,u=s-o,a=o-(s-u)+(l-u),l=t[++f]):(s=o+c,u=s-o,a=o-(s-u)+(c-u),c=i[++d]),o=s,a!==0&&(r[h++]=a);for(;f<e;)s=o+l,u=s-o,a=o-(s-u)+(l-u),l=t[++f],o=s,a!==0&&(r[h++]=a);for(;d<n;)s=o+c,u=s-o,a=o-(s-u)+(c-u),c=i[++d],o=s,a!==0&&(r[h++]=a);return(o!==0||h===0)&&(r[h++]=o),h}function vK(e,t){let n=t[0];for(let i=1;i<e;i++)n+=t[i];return n}function Bf(e){return new Float64Array(e)}const EK=(3+16*io)*io,wK=(2+12*io)*io,AK=(9+64*io)*io*io,eu=Bf(4),C$=Bf(8),$$=Bf(12),_$=Bf(16),ln=Bf(4);function SK(e,t,n,i,r,o,s){let a,u,l,c,f,d,h,p,g,m,y,b,x,v,w,A,E,S;const C=e-r,_=n-r,k=t-o,N=i-o;v=C*N,d=Xt*C,h=d-(d-C),p=C-h,d=Xt*N,g=d-(d-N),m=N-g,w=p*m-(v-h*g-p*g-h*m),A=k*_,d=Xt*k,h=d-(d-k),p=k-h,d=Xt*_,g=d-(d-_),m=_-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,eu[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,eu[1]=x-(y+f)+(f-A),S=b+y,f=S-b,eu[2]=b-(S-f)+(y-f),eu[3]=S;let T=vK(4,eu),F=wK*s;if(T>=F||-T>=F||(f=e-C,a=e-(C+f)+(f-r),f=n-_,l=n-(_+f)+(f-r),f=t-k,u=t-(k+f)+(f-o),f=i-N,c=i-(N+f)+(f-o),a===0&&u===0&&l===0&&c===0)||(F=AK*s+xK*Math.abs(T),T+=C*c+N*a-(k*l+_*u),T>=F||-T>=F))return T;v=a*N,d=Xt*a,h=d-(d-a),p=a-h,d=Xt*N,g=d-(d-N),m=N-g,w=p*m-(v-h*g-p*g-h*m),A=u*_,d=Xt*u,h=d-(d-u),p=u-h,d=Xt*_,g=d-(d-_),m=_-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,ln[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,ln[1]=x-(y+f)+(f-A),S=b+y,f=S-b,ln[2]=b-(S-f)+(y-f),ln[3]=S;const $=l1(4,eu,4,ln,C$);v=C*c,d=Xt*C,h=d-(d-C),p=C-h,d=Xt*c,g=d-(d-c),m=c-g,w=p*m-(v-h*g-p*g-h*m),A=k*l,d=Xt*k,h=d-(d-k),p=k-h,d=Xt*l,g=d-(d-l),m=l-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,ln[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,ln[1]=x-(y+f)+(f-A),S=b+y,f=S-b,ln[2]=b-(S-f)+(y-f),ln[3]=S;const D=l1($,C$,4,ln,$$);v=a*c,d=Xt*a,h=d-(d-a),p=a-h,d=Xt*c,g=d-(d-c),m=c-g,w=p*m-(v-h*g-p*g-h*m),A=u*l,d=Xt*u,h=d-(d-u),p=u-h,d=Xt*l,g=d-(d-l),m=l-g,E=p*m-(A-h*g-p*g-h*m),y=w-E,f=w-y,ln[0]=w-(y+f)+(f-E),b=v+y,f=b-v,x=v-(b-f)+(y-f),y=x-A,f=x-y,ln[1]=x-(y+f)+(f-A),S=b+y,f=S-b,ln[2]=b-(S-f)+(y-f),ln[3]=S;const P=l1(D,$$,4,ln,_$);return _$[P-1]}function Od(e,t,n,i,r,o){const s=(t-o)*(n-r),a=(e-r)*(i-o),u=s-a,l=Math.abs(s+a);return Math.abs(u)>=EK*l?u:-SK(e,t,n,i,r,o,l)}const F$=Math.pow(2,-52),Rd=new Uint32Array(512);class _p{static from(t,n=kK,i=DK){const r=t.length,o=new Float64Array(r*2);for(let s=0;s<r;s++){const a=t[s];o[2*s]=n(a),o[2*s+1]=i(a)}return new _p(o)}constructor(t){const n=t.length>>1;if(n>0&&typeof t[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=t;const i=Math.max(2*n-5,0);this._triangles=new Uint32Array(i*3),this._halfedges=new Int32Array(i*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),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:i,_hullTri:r,_hullHash:o}=this,s=t.length>>1;let a=1/0,u=1/0,l=-1/0,c=-1/0;for(let C=0;C<s;C++){const _=t[2*C],k=t[2*C+1];_<a&&(a=_),k<u&&(u=k),_>l&&(l=_),k>c&&(c=k),this._ids[C]=C}const f=(a+l)/2,d=(u+c)/2;let h,p,g;for(let C=0,_=1/0;C<s;C++){const k=c1(f,d,t[2*C],t[2*C+1]);k<_&&(h=C,_=k)}const m=t[2*h],y=t[2*h+1];for(let C=0,_=1/0;C<s;C++){if(C===h)continue;const k=c1(m,y,t[2*C],t[2*C+1]);k<_&&k>0&&(p=C,_=k)}let b=t[2*p],x=t[2*p+1],v=1/0;for(let C=0;C<s;C++){if(C===h||C===p)continue;const _=_K(m,y,b,x,t[2*C],t[2*C+1]);_<v&&(g=C,v=_)}let w=t[2*g],A=t[2*g+1];if(v===1/0){for(let k=0;k<s;k++)this._dists[k]=t[2*k]-t[0]||t[2*k+1]-t[1];du(this._ids,this._dists,0,s-1);const C=new Uint32Array(s);let _=0;for(let k=0,N=-1/0;k<s;k++){const T=this._ids[k],F=this._dists[T];F>N&&(C[_++]=T,N=F)}this.hull=C.subarray(0,_),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(Od(m,y,b,x,w,A)<0){const C=p,_=b,k=x;p=g,b=w,x=A,g=C,w=_,A=k}const E=FK(m,y,b,x,w,A);this._cx=E.x,this._cy=E.y;for(let C=0;C<s;C++)this._dists[C]=c1(t[2*C],t[2*C+1],E.x,E.y);du(this._ids,this._dists,0,s-1),this._hullStart=h;let S=3;i[h]=n[g]=p,i[p]=n[h]=g,i[g]=n[p]=h,r[h]=0,r[p]=1,r[g]=2,o.fill(-1),o[this._hashKey(m,y)]=h,o[this._hashKey(b,x)]=p,o[this._hashKey(w,A)]=g,this.trianglesLen=0,this._addTriangle(h,p,g,-1,-1,-1);for(let C=0,_,k;C<this._ids.length;C++){const N=this._ids[C],T=t[2*N],F=t[2*N+1];if(C>0&&Math.abs(T-_)<=F$&&Math.abs(F-k)<=F$||(_=T,k=F,N===h||N===p||N===g))continue;let $=0;for(let V=0,ue=this._hashKey(T,F);V<this._hashSize&&($=o[(ue+V)%this._hashSize],!($!==-1&&$!==i[$]));V++);$=n[$];let D=$,P;for(;P=i[D],Od(T,F,t[2*D],t[2*D+1],t[2*P],t[2*P+1])>=0;)if(D=P,D===$){D=-1;break}if(D===-1)continue;let z=this._addTriangle(D,N,i[D],-1,-1,r[D]);r[N]=this._legalize(z+2),r[D]=z,S++;let I=i[D];for(;P=i[I],Od(T,F,t[2*I],t[2*I+1],t[2*P],t[2*P+1])<0;)z=this._addTriangle(I,N,P,r[N],-1,r[I]),r[N]=this._legalize(z+2),i[I]=I,S--,I=P;if(D===$)for(;P=n[D],Od(T,F,t[2*P],t[2*P+1],t[2*D],t[2*D+1])<0;)z=this._addTriangle(P,N,D,-1,r[D],r[P]),this._legalize(z+2),r[P]=z,i[D]=D,S--,D=P;this._hullStart=n[N]=D,i[D]=n[I]=N,i[N]=I,o[this._hashKey(T,F)]=N,o[this._hashKey(t[2*D],t[2*D+1])]=D}this.hull=new Uint32Array(S);for(let C=0,_=this._hullStart;C<S;C++)this.hull[C]=_,_=i[_];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,n){return Math.floor(CK(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:i,coords:r}=this;let o=0,s=0;for(;;){const a=i[t],u=t-t%3;if(s=u+(t+2)%3,a===-1){if(o===0)break;t=Rd[--o];continue}const l=a-a%3,c=u+(t+1)%3,f=l+(a+2)%3,d=n[s],h=n[t],p=n[c],g=n[f];if($K(r[2*d],r[2*d+1],r[2*h],r[2*h+1],r[2*p],r[2*p+1],r[2*g],r[2*g+1])){n[t]=g,n[a]=d;const y=i[f];if(y===-1){let x=this._hullStart;do{if(this._hullTri[x]===f){this._hullTri[x]=t;break}x=this._hullPrev[x]}while(x!==this._hullStart)}this._link(t,y),this._link(a,i[s]),this._link(s,f);const b=l+(a+1)%3;o<Rd.length&&(Rd[o++]=b)}else{if(o===0)break;t=Rd[--o]}}return s}_link(t,n){this._halfedges[t]=n,n!==-1&&(this._halfedges[n]=t)}_addTriangle(t,n,i,r,o,s){const a=this.trianglesLen;return this._triangles[a]=t,this._triangles[a+1]=n,this._triangles[a+2]=i,this._link(a,r),this._link(a+1,o),this._link(a+2,s),this.trianglesLen+=3,a}}function CK(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}function c1(e,t,n,i){const r=e-n,o=t-i;return r*r+o*o}function $K(e,t,n,i,r,o,s,a){const u=e-s,l=t-a,c=n-s,f=i-a,d=r-s,h=o-a,p=u*u+l*l,g=c*c+f*f,m=d*d+h*h;return u*(f*m-g*h)-l*(c*m-g*d)+p*(c*h-f*d)<0}function _K(e,t,n,i,r,o){const s=n-e,a=i-t,u=r-e,l=o-t,c=s*s+a*a,f=u*u+l*l,d=.5/(s*l-a*u),h=(l*c-a*f)*d,p=(s*f-u*c)*d;return h*h+p*p}function FK(e,t,n,i,r,o){const s=n-e,a=i-t,u=r-e,l=o-t,c=s*s+a*a,f=u*u+l*l,d=.5/(s*l-a*u),h=e+(l*c-a*f)*d,p=t+(s*f-u*c)*d;return{x:h,y:p}}function du(e,t,n,i){if(i-n<=20)for(let r=n+1;r<=i;r++){const o=e[r],s=t[o];let a=r-1;for(;a>=n&&t[e[a]]>s;)e[a+1]=e[a--];e[a+1]=o}else{const r=n+i>>1;let o=n+1,s=i;Ul(e,r,o),t[e[n]]>t[e[i]]&&Ul(e,n,i),t[e[o]]>t[e[i]]&&Ul(e,o,i),t[e[n]]>t[e[o]]&&Ul(e,n,o);const a=e[o],u=t[a];for(;;){do o++;while(t[e[o]]<u);do s--;while(t[e[s]]>u);if(s<o)break;Ul(e,o,s)}e[n+1]=e[s],e[s]=a,i-o+1>=s-n?(du(e,t,o,i),du(e,t,n,s-1)):(du(e,t,n,s-1),du(e,t,o,i))}}function Ul(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function kK(e){return e[0]}function DK(e){return e[1]}const k$=1e-6;class Vs{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,i){t=+t,n=+n,i=+i;const r=t+i,o=n;if(i<0)throw new Error("negative radius");this._x1===null?this._+=`M${r},${o}`:(Math.abs(this._x1-r)>k$||Math.abs(this._y1-o)>k$)&&(this._+="L"+r+","+o),i&&(this._+=`A${i},${i},0,1,1,${t-i},${n}A${i},${i},0,1,1,${this._x1=r},${this._y1=o}`)}rect(t,n,i,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+i}v${+r}h${-i}Z`}value(){return this._||null}}class $b{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}let TK=class{constructor(t,[n,i,r,o]=[0,0,960,500]){if(!((r=+r)>=(n=+n))||!((o=+o)>=(i=+i)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(t.points.length*2),this.vectors=new Float64Array(t.points.length*2),this.xmax=r,this.xmin=n,this.ymax=o,this.ymin=i,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:i},vectors:r}=this;let o,s;const a=this.circumcenters=this._circumcenters.subarray(0,i.length/3*2);for(let g=0,m=0,y=i.length,b,x;g<y;g+=3,m+=2){const v=i[g]*2,w=i[g+1]*2,A=i[g+2]*2,E=t[v],S=t[v+1],C=t[w],_=t[w+1],k=t[A],N=t[A+1],T=C-E,F=_-S,$=k-E,D=N-S,P=(T*D-F*$)*2;if(Math.abs(P)<1e-9){if(o===void 0){o=s=0;for(const I of n)o+=t[I*2],s+=t[I*2+1];o/=n.length,s/=n.length}const z=1e9*Math.sign((o-E)*D-(s-S)*$);b=(E+k)/2-z*D,x=(S+N)/2+z*$}else{const z=1/P,I=T*T+F*F,V=$*$+D*D;b=E+(D*I-F*V)*z,x=S+(T*V-$*I)*z}a[m]=b,a[m+1]=x}let u=n[n.length-1],l,c=u*4,f,d=t[2*u],h,p=t[2*u+1];r.fill(0);for(let g=0;g<n.length;++g)u=n[g],l=c,f=d,h=p,c=u*4,d=t[2*u],p=t[2*u+1],r[l+2]=r[c]=h-p,r[l+3]=r[c+1]=d-f}render(t){const n=t==null?t=new Vs:void 0,{delaunay:{halfedges:i,inedges:r,hull:o},circumcenters:s,vectors:a}=this;if(o.length<=1)return null;for(let c=0,f=i.length;c<f;++c){const d=i[c];if(d<c)continue;const h=Math.floor(c/3)*2,p=Math.floor(d/3)*2,g=s[h],m=s[h+1],y=s[p],b=s[p+1];this._renderSegment(g,m,y,b,t)}let u,l=o[o.length-1];for(let c=0;c<o.length;++c){u=l,l=o[c];const f=Math.floor(r[l]/3)*2,d=s[f],h=s[f+1],p=u*4,g=this._project(d,h,a[p+2],a[p+3]);g&&this._renderSegment(d,h,g[0],g[1],t)}return n&&n.value()}renderBounds(t){const n=t==null?t=new Vs:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(t,n){const i=n==null?n=new Vs:void 0,r=this._clip(t);if(r===null||!r.length)return;n.moveTo(r[0],r[1]);let o=r.length;for(;r[0]===r[o-2]&&r[1]===r[o-1]&&o>1;)o-=2;for(let s=2;s<o;s+=2)(r[s]!==r[s-2]||r[s+1]!==r[s-1])&&n.lineTo(r[s],r[s+1]);return n.closePath(),i&&i.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,i=t.length/2;n<i;++n){const r=this.cellPolygon(n);r&&(r.index=n,yield r)}}cellPolygon(t){const n=new $b;return this.renderCell(t,n),n.value()}_renderSegment(t,n,i,r,o){let s;const a=this._regioncode(t,n),u=this._regioncode(i,r);a===0&&u===0?(o.moveTo(t,n),o.lineTo(i,r)):(s=this._clipSegment(t,n,i,r,a,u))&&(o.moveTo(s[0],s[1]),o.lineTo(s[2],s[3]))}contains(t,n,i){return n=+n,n!==n||(i=+i,i!==i)?!1:this.delaunay._step(t,n,i)===t}*neighbors(t){const n=this._clip(t);if(n)for(const i of this.delaunay.neighbors(t)){const r=this._clip(i);if(r){e:for(let o=0,s=n.length;o<s;o+=2)for(let a=0,u=r.length;a<u;a+=2)if(n[o]===r[a]&&n[o+1]===r[a+1]&&n[(o+2)%s]===r[(a+u-2)%u]&&n[(o+3)%s]===r[(a+u-1)%u]){yield i;break e}}}}_cell(t){const{circumcenters:n,delaunay:{inedges:i,halfedges:r,triangles:o}}=this,s=i[t];if(s===-1)return null;const a=[];let u=s;do{const l=Math.floor(u/3);if(a.push(n[l*2],n[l*2+1]),u=u%3===2?u-2:u+1,o[u]!==t)break;u=r[u]}while(u!==s&&u!==-1);return a}_clip(t){if(t===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(t);if(n===null)return null;const{vectors:i}=this,r=t*4;return this._simplify(i[r]||i[r+1]?this._clipInfinite(t,n,i[r],i[r+1],i[r+2],i[r+3]):this._clipFinite(t,n))}_clipFinite(t,n){const i=n.length;let r=null,o,s,a=n[i-2],u=n[i-1],l,c=this._regioncode(a,u),f,d=0;for(let h=0;h<i;h+=2)if(o=a,s=u,a=n[h],u=n[h+1],l=c,c=this._regioncode(a,u),l===0&&c===0)f=d,d=0,r?r.push(a,u):r=[a,u];else{let p,g,m,y,b;if(l===0){if((p=this._clipSegment(o,s,a,u,l,c))===null)continue;[g,m,y,b]=p}else{if((p=this._clipSegment(a,u,o,s,c,l))===null)continue;[y,b,g,m]=p,f=d,d=this._edgecode(g,m),f&&d&&this._edge(t,f,d,r,r.length),r?r.push(g,m):r=[g,m]}f=d,d=this._edgecode(y,b),f&&d&&this._edge(t,f,d,r,r.length),r?r.push(y,b):r=[y,b]}if(r)f=d,d=this._edgecode(r[0],r[1]),f&&d&&this._edge(t,f,d,r,r.length);else if(this.contains(t,(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 r}_clipSegment(t,n,i,r,o,s){const a=o<s;for(a&&([t,n,i,r,o,s]=[i,r,t,n,s,o]);;){if(o===0&&s===0)return a?[i,r,t,n]:[t,n,i,r];if(o&s)return null;let u,l,c=o||s;c&8?(u=t+(i-t)*(this.ymax-n)/(r-n),l=this.ymax):c&4?(u=t+(i-t)*(this.ymin-n)/(r-n),l=this.ymin):c&2?(l=n+(r-n)*(this.xmax-t)/(i-t),u=this.xmax):(l=n+(r-n)*(this.xmin-t)/(i-t),u=this.xmin),o?(t=u,n=l,o=this._regioncode(t,n)):(i=u,r=l,s=this._regioncode(i,r))}}_clipInfinite(t,n,i,r,o,s){let a=Array.from(n),u;if((u=this._project(a[0],a[1],i,r))&&a.unshift(u[0],u[1]),(u=this._project(a[a.length-2],a[a.length-1],o,s))&&a.push(u[0],u[1]),a=this._clipFinite(t,a))for(let l=0,c=a.length,f,d=this._edgecode(a[c-2],a[c-1]);l<c;l+=2)f=d,d=this._edgecode(a[l],a[l+1]),f&&d&&(l=this._edge(t,f,d,a,l),c=a.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(a=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return a}_edge(t,n,i,r,o){for(;n!==i;){let s,a;switch(n){case 5:n=4;continue;case 4:n=6,s=this.xmax,a=this.ymin;break;case 6:n=2;continue;case 2:n=10,s=this.xmax,a=this.ymax;break;case 10:n=8;continue;case 8:n=9,s=this.xmin,a=this.ymax;break;case 9:n=1;continue;case 1:n=5,s=this.xmin,a=this.ymin;break}(r[o]!==s||r[o+1]!==a)&&this.contains(t,s,a)&&(r.splice(o,0,s,a),o+=2)}return o}_project(t,n,i,r){let o=1/0,s,a,u;if(r<0){if(n<=this.ymin)return null;(s=(this.ymin-n)/r)<o&&(u=this.ymin,a=t+(o=s)*i)}else if(r>0){if(n>=this.ymax)return null;(s=(this.ymax-n)/r)<o&&(u=this.ymax,a=t+(o=s)*i)}if(i>0){if(t>=this.xmax)return null;(s=(this.xmax-t)/i)<o&&(a=this.xmax,u=n+(o=s)*r)}else if(i<0){if(t<=this.xmin)return null;(s=(this.xmin-t)/i)<o&&(a=this.xmin,u=n+(o=s)*r)}return[a,u]}_edgecode(t,n){return(t===this.xmin?1:t===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(t,n){return(t<this.xmin?1:t>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let n=0;n<t.length;n+=2){const i=(n+2)%t.length,r=(n+4)%t.length;(t[n]===t[i]&&t[i]===t[r]||t[n+1]===t[i+1]&&t[i+1]===t[r+1])&&(t.splice(i,2),n-=2)}t.length||(t=null)}return t}};const MK=2*Math.PI,tu=Math.pow;function OK(e){return e[0]}function RK(e){return e[1]}function NK(e){const{triangles:t,coords:n}=e;for(let i=0;i<t.length;i+=3){const r=2*t[i],o=2*t[i+1],s=2*t[i+2];if((n[s]-n[r])*(n[o+1]-n[r+1])-(n[o]-n[r])*(n[s+1]-n[r+1])>1e-10)return!1}return!0}function LK(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class kE{static from(t,n=OK,i=RK,r){return new kE("length"in t?PK(t,n,i,r):Float64Array.from(IK(t,n,i,r)))}constructor(t){this._delaunator=new _p(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const t=this._delaunator,n=this.points;if(t.hull&&t.hull.length>2&&NK(t)){this.collinear=Int32Array.from({length:n.length/2},(d,h)=>h).sort((d,h)=>n[2*d]-n[2*h]||n[2*d+1]-n[2*h+1]);const u=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[n[2*u],n[2*u+1],n[2*l],n[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let d=0,h=n.length/2;d<h;++d){const p=LK(n[2*d],n[2*d+1],f);n[2*d]=p[0],n[2*d+1]=p[1]}this._delaunator=new _p(n)}else delete this.collinear;const i=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,s=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let u=0,l=i.length;u<l;++u){const c=o[u%3===2?u-2:u+1];(i[u]===-1||s[c]===-1)&&(s[c]=u)}for(let u=0,l=r.length;u<l;++u)a[r[u]]=u;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],s[r[0]]=1,r.length===2&&(s[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(t){return new TK(this,t)}*neighbors(t){const{inedges:n,hull:i,_hullIndex:r,halfedges:o,triangles:s,collinear:a}=this;if(a){const f=a.indexOf(t);f>0&&(yield a[f-1]),f<a.length-1&&(yield a[f+1]);return}const u=n[t];if(u===-1)return;let l=u,c=-1;do{if(yield c=s[l],l=l%3===2?l-2:l+1,s[l]!==t)return;if(l=o[l],l===-1){const f=i[(r[t]+1)%i.length];f!==c&&(yield f);return}}while(l!==u)}find(t,n,i=0){if(t=+t,t!==t||(n=+n,n!==n))return-1;const r=i;let o;for(;(o=this._step(i,t,n))>=0&&o!==i&&o!==r;)i=o;return o}_step(t,n,i){const{inedges:r,hull:o,_hullIndex:s,halfedges:a,triangles:u,points:l}=this;if(r[t]===-1||!l.length)return(t+1)%(l.length>>1);let c=t,f=tu(n-l[t*2],2)+tu(i-l[t*2+1],2);const d=r[t];let h=d;do{let p=u[h];const g=tu(n-l[p*2],2)+tu(i-l[p*2+1],2);if(g<f&&(f=g,c=p),h=h%3===2?h-2:h+1,u[h]!==t)break;if(h=a[h],h===-1){if(h=o[(s[t]+1)%o.length],h!==p&&tu(n-l[h*2],2)+tu(i-l[h*2+1],2)<f)return h;break}}while(h!==d);return c}render(t){const n=t==null?t=new Vs:void 0,{points:i,halfedges:r,triangles:o}=this;for(let s=0,a=r.length;s<a;++s){const u=r[s];if(u<s)continue;const l=o[s]*2,c=o[u]*2;t.moveTo(i[l],i[l+1]),t.lineTo(i[c],i[c+1])}return this.renderHull(t),n&&n.value()}renderPoints(t,n){n===void 0&&(!t||typeof t.moveTo!="function")&&(n=t,t=null),n=n==null?2:+n;const i=t==null?t=new Vs:void 0,{points:r}=this;for(let o=0,s=r.length;o<s;o+=2){const a=r[o],u=r[o+1];t.moveTo(a+n,u),t.arc(a,u,n,0,MK)}return i&&i.value()}renderHull(t){const n=t==null?t=new Vs:void 0,{hull:i,points:r}=this,o=i[0]*2,s=i.length;t.moveTo(r[o],r[o+1]);for(let a=1;a<s;++a){const u=2*i[a];t.lineTo(r[u],r[u+1])}return t.closePath(),n&&n.value()}hullPolygon(){const t=new $b;return this.renderHull(t),t.value()}renderTriangle(t,n){const i=n==null?n=new Vs:void 0,{points:r,triangles:o}=this,s=o[t*=3]*2,a=o[t+1]*2,u=o[t+2]*2;return n.moveTo(r[s],r[s+1]),n.lineTo(r[a],r[a+1]),n.lineTo(r[u],r[u+1]),n.closePath(),i&&i.value()}*trianglePolygons(){const{triangles:t}=this;for(let n=0,i=t.length/3;n<i;++n)yield this.trianglePolygon(n)}trianglePolygon(t){const n=new $b;return this.renderTriangle(t,n),n.value()}}function PK(e,t,n,i){const r=e.length,o=new Float64Array(r*2);for(let s=0;s<r;++s){const a=e[s];o[s*2]=t.call(i,a,s,e),o[s*2+1]=n.call(i,a,s,e)}return o}function*IK(e,t,n,i){let r=0;for(const o of e)yield t.call(i,o,r,e),yield n.call(i,o,r,e),++r}function DE(e){M.call(this,null,e)}DE.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 zK=[-1e5,-1e5,1e5,1e5];G(DE,M,{transform(e,t){const n=e.as||"path",i=t.source;if(!i||!i.length)return t;let r=e.size;r=r?[0,0,r[0],r[1]]:(r=e.extent)?[r[0][0],r[0][1],r[1][0],r[1][1]]:zK;const o=this.value=kE.from(i,e.x,e.y).voronoi(r);for(let s=0,a=i.length;s<a;++s){const u=o.cellPolygon(s);i[s][n]=u&&!UK(u)?BK(u):null}return t.reflow(e.modified()).modifies(n)}});function BK(e){const t=e[0][0],n=e[0][1];let i=e.length-1;for(;e[i][0]===t&&e[i][1]===n;--i);return"M"+e.slice(0,i+1).join("L")+"Z"}function UK(e){return e.length===2&&e[0][0]===e[1][0]&&e[0][1]===e[1][1]}const jK=Object.freeze(Object.defineProperty({__proto__:null,voronoi:DE},Symbol.toStringTag,{value:"Module"}));var f1=Math.PI/180,bc=64,ph=2048;function qK(){var e=[256,256],t,n,i,r,o,s,a,u=tR,l=[],c=Math.random,f={};f.layout=function(){for(var p=d(Vo()),g=XK((e[0]>>5)*e[1]),m=null,y=l.length,b=-1,x=[],v=l.map(A=>({text:t(A),font:n(A),style:r(A),weight:o(A),rotate:s(A),size:~~(i(A)+1e-14),padding:a(A),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:A})).sort((A,E)=>E.size-A.size);++b<y;){var w=v[b];w.x=e[0]*(c()+.5)>>1,w.y=e[1]*(c()+.5)>>1,WK(p,w,v,b),w.hasText&&h(g,w,m)&&(x.push(w),m?HK(m,w):m=[{x:w.x+w.x0,y:w.y+w.y0},{x:w.x+w.x1,y:w.y+w.y1}],w.x-=e[0]>>1,w.y-=e[1]>>1)}return x};function d(p){p.width=p.height=1;var g=Math.sqrt(p.getContext("2d").getImageData(0,0,1,1).data.length>>2);p.width=(bc<<5)/g,p.height=ph/g;var m=p.getContext("2d");return m.fillStyle=m.strokeStyle="red",m.textAlign="center",{context:m,ratio:g}}function h(p,g,m){for(var y=g.x,b=g.y,x=Math.hypot(e[0],e[1]),v=u(e),w=c()<.5?1:-1,A=-w,E,S,C;(E=v(A+=w))&&(S=~~E[0],C=~~E[1],!(Math.min(Math.abs(S),Math.abs(C))>=x));)if(g.x=y+S,g.y=b+C,!(g.x+g.x0<0||g.y+g.y0<0||g.x+g.x1>e[0]||g.y+g.y1>e[1])&&(!m||!GK(g,p,e[0]))&&(!m||VK(g,m))){for(var _=g.sprite,k=g.width>>5,N=e[0]>>5,T=g.x-(k<<4),F=T&127,$=32-F,D=g.y1-g.y0,P=(g.y+g.y0)*N+(T>>5),z,I=0;I<D;I++){z=0;for(var V=0;V<=k;V++)p[P+V]|=z<<$|(V<k?(z=_[I*k+V])>>>F:0);P+=N}return g.sprite=null,!0}return!1}return f.words=function(p){return arguments.length?(l=p,f):l},f.size=function(p){return arguments.length?(e=[+p[0],+p[1]],f):e},f.font=function(p){return arguments.length?(n=Cs(p),f):n},f.fontStyle=function(p){return arguments.length?(r=Cs(p),f):r},f.fontWeight=function(p){return arguments.length?(o=Cs(p),f):o},f.rotate=function(p){return arguments.length?(s=Cs(p),f):s},f.text=function(p){return arguments.length?(t=Cs(p),f):t},f.spiral=function(p){return arguments.length?(u=KK[p]||p,f):u},f.fontSize=function(p){return arguments.length?(i=Cs(p),f):i},f.padding=function(p){return arguments.length?(a=Cs(p),f):a},f.random=function(p){return arguments.length?(c=p,f):c},f}function WK(e,t,n,i){if(!t.sprite){var r=e.context,o=e.ratio;r.clearRect(0,0,(bc<<5)/o,ph/o);var s=0,a=0,u=0,l=n.length,c,f,d,h,p;for(--i;++i<l;){if(t=n[i],r.save(),r.font=t.style+" "+t.weight+" "+~~((t.size+1)/o)+"px "+t.font,c=r.measureText(t.text+"m").width*o,d=t.size<<1,t.rotate){var g=Math.sin(t.rotate*f1),m=Math.cos(t.rotate*f1),y=c*m,b=c*g,x=d*m,v=d*g;c=Math.max(Math.abs(y+v),Math.abs(y-v))+31>>5<<5,d=~~Math.max(Math.abs(b+x),Math.abs(b-x))}else c=c+31>>5<<5;if(d>u&&(u=d),s+c>=bc<<5&&(s=0,a+=u,u=0),a+d>=ph)break;r.translate((s+(c>>1))/o,(a+(d>>1))/o),t.rotate&&r.rotate(t.rotate*f1),r.fillText(t.text,0,0),t.padding&&(r.lineWidth=2*t.padding,r.strokeText(t.text,0,0)),r.restore(),t.width=c,t.height=d,t.xoff=s,t.yoff=a,t.x1=c>>1,t.y1=d>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,s+=c}for(var w=r.getImageData(0,0,(bc<<5)/o,ph/o).data,A=[];--i>=0;)if(t=n[i],!!t.hasText){for(c=t.width,f=c>>5,d=t.y1-t.y0,h=0;h<d*f;h++)A[h]=0;if(s=t.xoff,s==null)return;a=t.yoff;var E=0,S=-1;for(p=0;p<d;p++){for(h=0;h<c;h++){var C=f*p+(h>>5),_=w[(a+p)*(bc<<5)+(s+h)<<2]?1<<31-h%32:0;A[C]|=_,E|=_}E?S=p:(t.y0++,d--,p--,a++)}t.y1=t.y0+S,t.sprite=A.slice(0,(t.y1-t.y0)*f)}}}function GK(e,t,n){n>>=5;for(var i=e.sprite,r=e.width>>5,o=e.x-(r<<4),s=o&127,a=32-s,u=e.y1-e.y0,l=(e.y+e.y0)*n+(o>>5),c,f=0;f<u;f++){c=0;for(var d=0;d<=r;d++)if((c<<a|(d<r?(c=i[f*r+d])>>>s:0))&t[l+d])return!0;l+=n}return!1}function HK(e,t){var n=e[0],i=e[1];t.x+t.x0<n.x&&(n.x=t.x+t.x0),t.y+t.y0<n.y&&(n.y=t.y+t.y0),t.x+t.x1>i.x&&(i.x=t.x+t.x1),t.y+t.y1>i.y&&(i.y=t.y+t.y1)}function VK(e,t){return e.x+e.x1>t[0].x&&e.x+e.x0<t[1].x&&e.y+e.y1>t[0].y&&e.y+e.y0<t[1].y}function tR(e){var t=e[0]/e[1];return function(n){return[t*(n*=.1)*Math.cos(n),n*Math.sin(n)]}}function YK(e){var t=4,n=t*e[0]/e[1],i=0,r=0;return function(o){var s=o<0?-1:1;switch(Math.sqrt(1+4*s*o)-s&3){case 0:i+=n;break;case 1:r+=t;break;case 2:i-=n;break;default:r-=t;break}return[i,r]}}function XK(e){for(var t=[],n=-1;++n<e;)t[n]=0;return t}function Cs(e){return typeof e=="function"?e:function(){return e}}var KK={archimedean:tR,rectangular:YK};const nR=["x","y","font","fontSize","fontStyle","fontWeight","angle"],JK=["text","font","rotate","fontSize","fontStyle","fontWeight"];function TE(e){M.call(this,qK(),e)}TE.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:nR}]};G(TE,M,{transform(e,t){e.size&&!(e.size[0]&&e.size[1])&&L("Wordcloud size dimensions must be non-zero.");function n(p){const g=e[p];return be(g)&&t.modified(g.fields)}const i=e.modified();if(!(i||t.changed(t.ADD_REM)||JK.some(n)))return;const r=t.materialize(t.SOURCE).source,o=this.value,s=e.as||nR;let a=e.fontSize||14,u;if(be(a)?u=e.fontSizeRange:a=wn(a),u){const p=a,g=Me("sqrt")().domain(lo(r,p)).range(u);a=m=>g(p(m))}r.forEach(p=>{p[s[0]]=NaN,p[s[1]]=NaN,p[s[3]]=0});const l=o.words(r).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(a).random(mi).layout(),c=o.size(),f=c[0]>>1,d=c[1]>>1,h=l.length;for(let p=0,g,m;p<h;++p)g=l[p],m=g.datum,m[s[0]]=g.x+f,m[s[1]]=g.y+d,m[s[2]]=g.font,m[s[3]]=g.size,m[s[4]]=g.style,m[s[5]]=g.weight,m[s[6]]=g.rotate;return t.reflow(i).modifies(s)}});const QK=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:TE},Symbol.toStringTag,{value:"Module"})),ZK=e=>new Uint8Array(e),eJ=e=>new Uint16Array(e),Mc=e=>new Uint32Array(e);function tJ(){let e=8,t=[],n=Mc(0),i=Nd(0,e),r=Nd(0,e);return{data:()=>t,seen:()=>n=nJ(n,t.length),add(o){for(let s=0,a=t.length,u=o.length,l;s<u;++s)l=o[s],l._index=a++,t.push(l)},remove(o,s){const a=t.length,u=Array(a-o),l=t;let c,f,d;for(f=0;!s[f]&&f<a;++f)u[f]=t[f],l[f]=f;for(d=f;f<a;++f)c=t[f],s[f]?l[f]=-1:(l[f]=d,i[d]=i[f],r[d]=r[f],u[d]=c,c._index=d++),i[f]=0;return t=u,l},size:()=>t.length,curr:()=>i,prev:()=>r,reset:o=>r[o]=i[o],all:()=>e<257?255:e<65537?65535:4294967295,set(o,s){i[o]|=s},clear(o,s){i[o]&=~s},resize(o,s){const a=i.length;(o>a||s>e)&&(e=Math.max(s,e),i=Nd(o,e,i),r=Nd(o,e))}}}function nJ(e,t,n){return e.length>=t?e:(n=n||new e.constructor(t),n.set(e),n)}function Nd(e,t,n){const i=(t<257?ZK:t<65537?eJ:Mc)(e);return n&&i.set(n),i}function D$(e,t,n){const i=1<<t;return{one:i,zero:~i,range:n.slice(),bisect:e.bisect,index:e.index,size:e.size,onAdd(r,o){const s=this,a=s.bisect(s.range,r.value),u=r.index,l=a[0],c=a[1],f=u.length;let d;for(d=0;d<l;++d)o[u[d]]|=i;for(d=c;d<f;++d)o[u[d]]|=i;return s}}}function T$(){let e=Mc(0),t=[],n=0;function i(a,u,l){if(!u.length)return[];const c=n,f=u.length,d=Mc(f);let h=Array(f),p,g,m;for(m=0;m<f;++m)h[m]=a(u[m]),d[m]=m;if(h=iJ(h,d),c)p=t,g=e,t=Array(c+f),e=Mc(c+f),rJ(l,p,g,c,h,d,f,t,e);else{if(l>0)for(m=0;m<f;++m)d[m]+=l;t=h,e=d}return n=c+f,{index:d,value:h}}function r(a,u){const l=n;let c,f,d;for(f=0;!u[e[f]]&&f<l;++f);for(d=f;f<l;++f)u[c=e[f]]||(e[d]=c,t[d]=t[f],++d);n=l-a}function o(a){for(let u=0,l=n;u<l;++u)e[u]=a[e[u]]}function s(a,u){let l;return u?l=u.length:(u=t,l=n),[U8(u,a[0],0,l),Cu(u,a[1],0,l)]}return{insert:i,remove:r,bisect:s,reindex:o,index:()=>e,size:()=>n}}function iJ(e,t){return e.sort.call(t,(n,i)=>{const r=e[n],o=e[i];return r<o?-1:r>o?1:0}),sI(e,t)}function rJ(e,t,n,i,r,o,s,a,u){let l=0,c=0,f;for(f=0;l<i&&c<s;++f)t[l]<r[c]?(a[f]=t[l],u[f]=n[l++]):(a[f]=r[c],u[f]=o[c++]+e);for(;l<i;++l,++f)a[f]=t[l],u[f]=n[l];for(;c<s;++c,++f)a[f]=r[c],u[f]=o[c]+e}function ME(e){M.call(this,tJ(),e),this._indices=null,this._dims=null}ME.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}}]};G(ME,M,{transform(e,t){if(this._dims){var n=e.modified("fields")||e.fields.some(i=>t.modified(i.fields));return n?this.reinit(e,t):this.eval(e,t)}else return this.init(e,t)},init(e,t){const n=e.fields,i=e.query,r=this._indices={},o=this._dims=[],s=i.length;let a=0,u,l;for(;a<s;++a)u=n[a].fname,l=r[u]||(r[u]=T$()),o.push(D$(l,a,i[a]));return this.eval(e,t)},reinit(e,t){const n=t.materialize().fork(),i=e.fields,r=e.query,o=this._indices,s=this._dims,a=this.value,u=a.curr(),l=a.prev(),c=a.all(),f=n.rem=n.add,d=n.mod,h=r.length,p={};let g,m,y,b,x,v,w,A,E;if(l.set(u),t.rem.length&&(x=this.remove(e,t,n)),t.add.length&&a.add(t.add),t.mod.length)for(v={},b=t.mod,w=0,A=b.length;w<A;++w)v[b[w]._index]=1;for(w=0;w<h;++w)E=i[w],(!s[w]||e.modified("fields",w)||t.modified(E.fields))&&(y=E.fname,(g=p[y])||(o[y]=m=T$(),p[y]=g=m.insert(E,t.source,0)),s[w]=D$(m,w,r[w]).onAdd(g,u));for(w=0,A=a.data().length;w<A;++w)x[w]||(l[w]!==u[w]?f.push(w):v[w]&&u[w]!==c&&d.push(w));return a.mask=(1<<h)-1,n},eval(e,t){const n=t.materialize().fork(),i=this._dims.length;let r=0;return t.rem.length&&(this.remove(e,t,n),r|=(1<<i)-1),e.modified("query")&&!e.modified("fields")&&(r|=this.update(e,t,n)),t.add.length&&(this.insert(e,t,n),r|=(1<<i)-1),t.mod.length&&(this.modify(t,n),r|=(1<<i)-1),this.value.mask=r,n},insert(e,t,n){const i=t.add,r=this.value,o=this._dims,s=this._indices,a=e.fields,u={},l=n.add,c=r.size()+i.length,f=o.length;let d=r.size(),h,p,g;r.resize(c,f),r.add(i);const m=r.curr(),y=r.prev(),b=r.all();for(h=0;h<f;++h)p=a[h].fname,g=u[p]||(u[p]=s[p].insert(a[h],i,d)),o[h].onAdd(g,m);for(;d<c;++d)y[d]=b,m[d]!==b&&l.push(d)},modify(e,t){const n=t.mod,i=this.value,r=i.curr(),o=i.all(),s=e.mod;let a,u,l;for(a=0,u=s.length;a<u;++a)l=s[a]._index,r[l]!==o&&n.push(l)},remove(e,t,n){const i=this._indices,r=this.value,o=r.curr(),s=r.prev(),a=r.all(),u={},l=n.rem,c=t.rem;let f,d,h,p;for(f=0,d=c.length;f<d;++f)h=c[f]._index,u[h]=1,s[h]=p=o[h],o[h]=a,p!==a&&l.push(h);for(h in i)i[h].remove(d,u);return this.reindex(t,d,u),u},reindex(e,t,n){const i=this._indices,r=this.value;e.runAfter(()=>{const o=r.remove(t,n);for(const s in i)i[s].reindex(o)})},update(e,t,n){const i=this._dims,r=e.query,o=t.stamp,s=i.length;let a=0,u,l;for(n.filters=0,l=0;l<s;++l)e.modified("query",l)&&(u=l,++a);if(a===1)a=i[u].one,this.incrementOne(i[u],r[u],n.add,n.rem);else for(l=0,a=0;l<s;++l)e.modified("query",l)&&(a|=i[l].one,this.incrementAll(i[l],r[l],o,n.add),n.rem=n.add);return a},incrementAll(e,t,n,i){const r=this.value,o=r.seen(),s=r.curr(),a=r.prev(),u=e.index(),l=e.bisect(e.range),c=e.bisect(t),f=c[0],d=c[1],h=l[0],p=l[1],g=e.one;let m,y,b;if(f<h)for(m=f,y=Math.min(h,d);m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;else if(f>h)for(m=h,y=Math.min(f,p);m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;if(d>p)for(m=Math.max(f,p),y=d;m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;else if(d<p)for(m=Math.max(h,d),y=p;m<y;++m)b=u[m],o[b]!==n&&(a[b]=s[b],o[b]=n,i.push(b)),s[b]^=g;e.range=t.slice()},incrementOne(e,t,n,i){const r=this.value,o=r.curr(),s=e.index(),a=e.bisect(e.range),u=e.bisect(t),l=u[0],c=u[1],f=a[0],d=a[1],h=e.one;let p,g,m;if(l<f)for(p=l,g=Math.min(f,c);p<g;++p)m=s[p],o[m]^=h,n.push(m);else if(l>f)for(p=f,g=Math.min(l,d);p<g;++p)m=s[p],o[m]^=h,i.push(m);if(c>d)for(p=Math.max(l,d),g=c;p<g;++p)m=s[p],o[m]^=h,n.push(m);else if(c<d)for(p=Math.max(f,c),g=d;p<g;++p)m=s[p],o[m]^=h,i.push(m);e.range=t.slice()}});function OE(e){M.call(this,null,e)}OE.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."}]};G(OE,M,{transform(e,t){const n=~(e.ignore||0),i=e.filter,r=i.mask;if((r&n)===0)return t.StopPropagation;const o=t.fork(t.ALL),s=i.data(),a=i.curr(),u=i.prev(),l=c=>a[c]&n?null:s[c];return o.filter(o.MOD,l),r&r-1?(o.filter(o.ADD,c=>{const f=a[c]&n;return!f&&f^u[c]&n?s[c]:null}),o.filter(o.REM,c=>{const f=a[c]&n;return f&&!(f^(f^u[c]&n))?s[c]:null})):(o.filter(o.ADD,l),o.filter(o.REM,c=>(a[c]&n)===r?s[c]:null)),o.filter(o.SOURCE,c=>l(c._index))}});const oJ=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:ME,resolvefilter:OE},Symbol.toStringTag,{value:"Module"})),sJ="RawCode",da="Literal",aJ="Property",uJ="Identifier",lJ="ArrayExpression",cJ="BinaryExpression",iR="CallExpression",fJ="ConditionalExpression",dJ="LogicalExpression",hJ="MemberExpression",pJ="ObjectExpression",gJ="UnaryExpression";function Wi(e){this.type=e}Wi.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=mJ(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};function mJ(e){switch(e.type){case lJ:return e.elements;case cJ:case dJ:return[e.left,e.right];case iR:return[e.callee].concat(e.arguments);case fJ:return[e.test,e.consequent,e.alternate];case hJ:return[e.object,e.property];case pJ:return e.properties;case aJ:return[e.key,e.value];case gJ:return[e.argument];case uJ:case da:case sJ:default:return[]}}var kr,K,O,rn,Pe,r0=1,Uf=2,ha=3,fs=4,o0=5,Oa=6,kn=7,jf=8,yJ=9;kr={};kr[r0]="Boolean";kr[Uf]="<end>";kr[ha]="Identifier";kr[fs]="Keyword";kr[o0]="Null";kr[Oa]="Numeric";kr[kn]="Punctuator";kr[jf]="String";kr[yJ]="RegularExpression";var bJ="ArrayExpression",xJ="BinaryExpression",vJ="CallExpression",EJ="ConditionalExpression",rR="Identifier",wJ="Literal",AJ="LogicalExpression",SJ="MemberExpression",CJ="ObjectExpression",$J="Property",_J="UnaryExpression",Ct="Unexpected token %0",FJ="Unexpected number",kJ="Unexpected string",DJ="Unexpected identifier",TJ="Unexpected reserved word",MJ="Unexpected end of input",_b="Invalid regular expression",d1="Invalid regular expression: missing /",oR="Octal literals are not allowed in strict mode.",OJ="Duplicate data property in object literal not allowed in strict mode",Bt="ILLEGAL",ef="Disabled.",RJ=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]"),NJ=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 s0(e,t){if(!e)throw new Error("ASSERT: "+t)}function Wr(e){return e>=48&&e<=57}function RE(e){return"0123456789abcdefABCDEF".includes(e)}function Oc(e){return"01234567".includes(e)}function LJ(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function tf(e){return e===10||e===13||e===8232||e===8233}function qf(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&RJ.test(String.fromCharCode(e))}function Fp(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&NJ.test(String.fromCharCode(e))}const PJ={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 sR(){for(;O<rn;){const e=K.charCodeAt(O);if(LJ(e)||tf(e))++O;else break}}function Fb(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)O<rn&&RE(K[O])?(i=K[O++],r=r*16+"0123456789abcdef".indexOf(i.toLowerCase())):ke({},Ct,Bt);return String.fromCharCode(r)}function IJ(){var e,t,n,i;for(e=K[O],t=0,e==="}"&&ke({},Ct,Bt);O<rn&&(e=K[O++],!!RE(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ke({},Ct,Bt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function aR(){var e,t;for(e=K.charCodeAt(O++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(O)!==117&&ke({},Ct,Bt),++O,e=Fb("u"),(!e||e==="\\"||!qf(e.charCodeAt(0)))&&ke({},Ct,Bt),t=e);O<rn&&(e=K.charCodeAt(O),!!Fp(e));)++O,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(O)!==117&&ke({},Ct,Bt),++O,e=Fb("u"),(!e||e==="\\"||!Fp(e.charCodeAt(0)))&&ke({},Ct,Bt),t+=e);return t}function zJ(){var e,t;for(e=O++;O<rn;){if(t=K.charCodeAt(O),t===92)return O=e,aR();if(Fp(t))++O;else break}return K.slice(e,O)}function BJ(){var e,t,n;return e=O,t=K.charCodeAt(O)===92?aR():zJ(),t.length===1?n=ha:PJ.hasOwnProperty(t)?n=fs:t==="null"?n=o0:t==="true"||t==="false"?n=r0:n=ha,{type:n,value:t,start:e,end:O}}function h1(){var e=O,t=K.charCodeAt(O),n,i=K[O],r,o,s;switch(t){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++O,{type:kn,value:String.fromCharCode(t),start:e,end:O};default:if(n=K.charCodeAt(O+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return O+=2,{type:kn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:O};case 33:case 61:return O+=2,K.charCodeAt(O)===61&&++O,{type:kn,value:K.slice(e,O),start:e,end:O}}}if(s=K.substr(O,4),s===">>>=")return O+=4,{type:kn,value:s,start:e,end:O};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return O+=3,{type:kn,value:o,start:e,end:O};if(r=o.substr(0,2),i===r[1]&&"+-<>&|".includes(i)||r==="=>")return O+=2,{type:kn,value:r,start:e,end:O};if(r==="//"&&ke({},Ct,Bt),"<>=!+-*%&|^/".includes(i))return++O,{type:kn,value:i,start:e,end:O};ke({},Ct,Bt)}function UJ(e){let t="";for(;O<rn&&RE(K[O]);)t+=K[O++];return t.length===0&&ke({},Ct,Bt),qf(K.charCodeAt(O))&&ke({},Ct,Bt),{type:Oa,value:parseInt("0x"+t,16),start:e,end:O}}function jJ(e){let t="0"+K[O++];for(;O<rn&&Oc(K[O]);)t+=K[O++];return(qf(K.charCodeAt(O))||Wr(K.charCodeAt(O)))&&ke({},Ct,Bt),{type:Oa,value:parseInt(t,8),octal:!0,start:e,end:O}}function M$(){var e,t,n;if(n=K[O],s0(Wr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=O,e="",n!=="."){if(e=K[O++],n=K[O],e==="0"){if(n==="x"||n==="X")return++O,UJ(t);if(Oc(n))return jJ(t);n&&Wr(n.charCodeAt(0))&&ke({},Ct,Bt)}for(;Wr(K.charCodeAt(O));)e+=K[O++];n=K[O]}if(n==="."){for(e+=K[O++];Wr(K.charCodeAt(O));)e+=K[O++];n=K[O]}if(n==="e"||n==="E")if(e+=K[O++],n=K[O],(n==="+"||n==="-")&&(e+=K[O++]),Wr(K.charCodeAt(O)))for(;Wr(K.charCodeAt(O));)e+=K[O++];else ke({},Ct,Bt);return qf(K.charCodeAt(O))&&ke({},Ct,Bt),{type:Oa,value:parseFloat(e),start:t,end:O}}function qJ(){var e="",t,n,i,r,o=!1;for(t=K[O],s0(t==="'"||t==='"',"String literal must starts with a quote"),n=O,++O;O<rn;)if(i=K[O++],i===t){t="";break}else if(i==="\\")if(i=K[O++],!i||!tf(i.charCodeAt(0)))switch(i){case"u":case"x":K[O]==="{"?(++O,e+=IJ()):e+=Fb(i);break;case"n":e+=`
8
8
  `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:Oc(i)?(r="01234567".indexOf(i),r!==0&&(o=!0),O<rn&&Oc(K[O])&&(o=!0,r=r*8+"01234567".indexOf(K[O++]),"0123".includes(i)&&O<rn&&Oc(K[O])&&(r=r*8+"01234567".indexOf(K[O++]))),e+=String.fromCharCode(r)):e+=i;break}else i==="\r"&&K[O]===`
9
- `&&++O;else{if(tf(i.charCodeAt(0)))break;e+=i}return t!==""&&ke({},Ct,Bt),{type:jf,value:e,octal:o,start:n,end:O}}function GJ(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(i,r)=>{if(parseInt(r,16)<=1114111)return"x";ke({},_b)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ke({},_b)}try{return new RegExp(e,t)}catch{return null}}function HJ(){var e,t,n,i,r;for(e=K[O],s0(e==="/","Regular expression literal must start with a slash"),t=K[O++],n=!1,i=!1;O<rn;)if(e=K[O++],t+=e,e==="\\")e=K[O++],tf(e.charCodeAt(0))&&ke({},d1),t+=e;else if(tf(e.charCodeAt(0)))ke({},d1);else if(n)e==="]"&&(n=!1);else if(e==="/"){i=!0;break}else e==="["&&(n=!0);return i||ke({},d1),r=t.substr(1,t.length-2),{value:r,literal:t}}function VJ(){var e,t,n;for(t="",n="";O<rn&&(e=K[O],!!Fp(e.charCodeAt(0)));)++O,e==="\\"&&O<rn?ke({},Ct,Bt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ke({},_b,n),{value:n,literal:t}}function YJ(){var e,t,n,i;return Pe=null,aR(),e=O,t=HJ(),n=VJ(),i=GJ(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:O}}function XJ(e){return e.type===ha||e.type===fs||e.type===r0||e.type===o0}function lR(){if(aR(),O>=rn)return{type:Uf,start:O,end:O};const e=K.charCodeAt(O);return qf(e)?UJ():e===40||e===41||e===59?h1():e===39||e===34?WJ():e===46?Wr(K.charCodeAt(O+1))?O$():h1():Wr(e)?O$():h1()}function Mn(){const e=Pe;return O=e.end,Pe=lR(),O=e.end,e}function cR(){const e=O;Pe=lR(),O=e}function KJ(e){const t=new Wi(xJ);return t.elements=e,t}function R$(e,t,n){const i=new Wi(e==="||"||e==="&&"?SJ:vJ);return i.operator=e,i.left=t,i.right=n,i}function JJ(e,t){const n=new Wi(EJ);return n.callee=e,n.arguments=t,n}function QJ(e,t,n){const i=new Wi(wJ);return i.test=e,i.consequent=t,i.alternate=n,i}function NE(e){const t=new Wi(oR);return t.name=e,t}function xc(e){const t=new Wi(AJ);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function N$(e,t,n){const i=new Wi(CJ);return i.computed=e==="[",i.object=t,i.property=n,i.computed||(n.member=!0),i}function ZJ(e){const t=new Wi($J);return t.properties=e,t}function L$(e,t,n){const i=new Wi(_J);return i.key=t,i.value=n,i.kind=e,i}function eQ(e,t){const n=new Wi(FJ);return n.operator=e,n.argument=t,n.prefix=!0,n}function ke(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(o,s)=>(s0(s<i.length,"Message reference must be in range"),i[s]));throw n=new Error(r),n.index=O,n.description=r,n}function a0(e){e.type===Uf&&ke(e,OJ),e.type===Oa&&ke(e,kJ),e.type===jf&&ke(e,DJ),e.type===ha&&ke(e,TJ),e.type===fs&&ke(e,MJ),ke(e,Ct,e.value)}function on(e){const t=Mn();(t.type!==kn||t.value!==e)&&a0(t)}function Ve(e){return Pe.type===kn&&Pe.value===e}function p1(e){return Pe.type===fs&&Pe.value===e}function tQ(){const e=[];for(O=Pe.start,on("[");!Ve("]");)Ve(",")?(Mn(),e.push(null)):(e.push(pa()),Ve("]")||on(","));return Mn(),KJ(e)}function P$(){O=Pe.start;const e=Mn();return e.type===jf||e.type===Oa?(e.octal&&ke(e,sR),xc(e)):NE(e.value)}function nQ(){var e,t,n,i;if(O=Pe.start,e=Pe,e.type===ha)return n=P$(),on(":"),i=pa(),L$("init",n,i);if(e.type===Uf||e.type===kn)a0(e);else return t=P$(),on(":"),i=pa(),L$("init",t,i)}function iQ(){var e=[],t,n,i,r={},o=String;for(O=Pe.start,on("{");!Ve("}");)t=nQ(),t.key.type===oR?n=t.key.name:n=o(t.key.value),i="$"+n,Object.prototype.hasOwnProperty.call(r,i)?ke({},RJ):r[i]=!0,e.push(t),Ve("}")||on(",");return on("}"),ZJ(e)}function rQ(){on("(");const e=LE();return on(")"),e}const oQ={if:1};function sQ(){var e,t,n;if(Ve("("))return rQ();if(Ve("["))return tQ();if(Ve("{"))return iQ();if(e=Pe.type,O=Pe.start,e===ha||oQ[Pe.value])n=NE(Mn().value);else if(e===jf||e===Oa)Pe.octal&&ke(Pe,sR),n=xc(Mn());else{if(e===fs)throw new Error(ef);e===r0?(t=Mn(),t.value=t.value==="true",n=xc(t)):e===o0?(t=Mn(),t.value=null,n=xc(t)):Ve("/")||Ve("/=")?(n=xc(YJ()),cR()):a0(Mn())}return n}function aQ(){const e=[];if(on("("),!Ve(")"))for(;O<rn&&(e.push(pa()),!Ve(")"));)on(",");return on(")"),e}function uQ(){O=Pe.start;const e=Mn();return XJ(e)||a0(e),NE(e.value)}function lQ(){return on("."),uQ()}function cQ(){on("[");const e=LE();return on("]"),e}function fQ(){var e,t,n;for(e=sQ();;)if(Ve("."))n=lQ(),e=N$(".",e,n);else if(Ve("("))t=aQ(),e=JJ(e,t);else if(Ve("["))n=cQ(),e=N$("[",e,n);else break;return e}function I$(){const e=fQ();if(Pe.type===kn&&(Ve("++")||Ve("--")))throw new Error(ef);return e}function gh(){var e,t;if(Pe.type!==kn&&Pe.type!==fs)t=I$();else{if(Ve("++")||Ve("--"))throw new Error(ef);if(Ve("+")||Ve("-")||Ve("~")||Ve("!"))e=Mn(),t=gh(),t=eQ(e.value,t);else{if(p1("delete")||p1("void")||p1("typeof"))throw new Error(ef);t=I$()}}return t}function z$(e){let t=0;if(e.type!==kn&&e.type!==fs)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function dQ(){var e,t,n,i,r,o,s,a,u,l;if(e=Pe,u=gh(),i=Pe,r=z$(i),r===0)return u;for(i.prec=r,Mn(),t=[e,Pe],s=gh(),o=[u,i,s];(r=z$(Pe))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)s=o.pop(),a=o.pop().value,u=o.pop(),t.pop(),n=R$(a,u,s),o.push(n);i=Mn(),i.prec=r,o.push(i),t.push(Pe),n=gh(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=R$(o[l-1].value,o[l-2],n),l-=2;return n}function pa(){var e,t,n;return e=dQ(),Ve("?")&&(Mn(),t=pa(),on(":"),n=pa(),e=QJ(e,t,n)),e}function LE(){const e=pa();if(Ve(","))throw new Error(ef);return e}function fR(e){K=e,O=0,rn=K.length,Pe=null,cR();const t=LE();if(Pe.type!==Uf)throw new Error("Unexpect token after expression.");return t}var dR={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 hR(e){function t(s,a,u,l){let c=e(a[0]);return u&&(c=u+"("+c+")",u.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+s+(l<0?"":l===0?"()":"("+a.slice(1).map(e).join(",")+")")}function n(s,a,u){return l=>t(s,l,a,u)}const i="new Date",r="String",o="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",hypot:"Math.hypot",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(s){s.length<3&&L("Missing arguments to clamp function."),s.length>3&&L("Too many arguments to clamp function.");const a=s.map(e);return"Math.max("+a[1]+", Math.min("+a[2]+","+a[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:i,date:n("getDate",i,0),day:n("getDay",i,0),year:n("getFullYear",i,0),month:n("getMonth",i,0),hours:n("getHours",i,0),minutes:n("getMinutes",i,0),seconds:n("getSeconds",i,0),milliseconds:n("getMilliseconds",i,0),time:n("getTime",i,0),timezoneoffset:n("getTimezoneOffset",i,0),utcdate:n("getUTCDate",i,0),utcday:n("getUTCDay",i,0),utcyear:n("getUTCFullYear",i,0),utcmonth:n("getUTCMonth",i,0),utchours:n("getUTCHours",i,0),utcminutes:n("getUTCMinutes",i,0),utcseconds:n("getUTCSeconds",i,0),utcmilliseconds:n("getUTCMilliseconds",i,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",r,0),lower:n("toLowerCase",r,0),substring:n("substring",r),split:n("split",r),trim:n("trim",r,0),btoa:"btoa",atob:"atob",regexp:o,test:n("test",o),if:function(s){s.length<3&&L("Missing arguments to if function."),s.length>3&&L("Too many arguments to if function.");const a=s.map(e);return"("+a[0]+"?"+a[1]+":"+a[2]+")"}}}function hQ(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function pR(e){e=e||{};const t=e.allowed?yr(e.allowed):{},n=e.forbidden?yr(e.forbidden):{},i=e.constants||dR,r=(e.functions||hR)(f),o=e.globalvar,s=e.fieldvar,a=be(o)?o:p=>`${o}["${p}"]`;let u={},l={},c=0;function f(p){if(Ke(p))return p;const g=d[p.type];return g==null&&L("Unsupported type: "+p.type),g(p)}const d={Literal:p=>p.raw,Identifier:p=>{const g=p.name;return c>0?g:le(n,g)?L("Illegal identifier: "+g):le(i,g)?i[g]:le(t,g)?g:(u[g]=1,a(g))},MemberExpression:p=>{const g=!p.computed,m=f(p.object);g&&(c+=1);const y=f(p.property);return m===s&&(l[hQ(y)]=1),g&&(c-=1),m+(g?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&L("Illegal callee type: "+p.callee.type);const g=p.callee.name,m=p.arguments,y=le(r,g)&&r[g];return y||L("Unrecognized function: "+g),be(y)?y(m):y+"("+m.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 g=f(p.key);return c-=1,g+":"+f(p.value)}};function h(p){const g={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},g}return h.functions=r,h.constants=i,h}const B$=Symbol("vega_selection_getter");function gR(e){return(!e.getter||!e.getter[B$])&&(e.getter=Li(e.field),e.getter[B$]=!0),e.getter}const PE="intersect",U$="union",pQ="vlMulti",gQ="vlPoint",j$="or",mQ="and",sr="_vgsid_",nf=Li(sr),yQ="E",bQ="R",xQ="R-E",vQ="R-LE",EQ="R-RE",wQ="E-LT",AQ="E-LTE",SQ="E-GT",CQ="E-GTE",$Q="E-VALID",_Q="E-ONE",kp="index:unit";function q$(e,t){for(var n=t.fields,i=t.values,r=n.length,o=0,s,a;o<r;++o)if(a=n[o],s=gR(a)(e),Ys(s)&&(s=mn(s)),Ys(i[o])&&(i[o]=mn(i[o])),Z(i[o])&&Ys(i[o][0])&&(i[o]=i[o].map(mn)),a.type===yQ){if(Z(i[o])?!i[o].includes(s):s!==i[o])return!1}else if(a.type===bQ){if(!tc(s,i[o]))return!1}else if(a.type===EQ){if(!tc(s,i[o],!0,!1))return!1}else if(a.type===xQ){if(!tc(s,i[o],!1,!1))return!1}else if(a.type===vQ){if(!tc(s,i[o],!1,!0))return!1}else if(a.type===wQ){if(s>=i[o])return!1}else if(a.type===AQ){if(s>i[o])return!1}else if(a.type===SQ){if(s<=i[o])return!1}else if(a.type===CQ){if(s<i[o])return!1}else if(a.type===$Q){if(s===null||isNaN(s))return!1}else if(a.type===_Q&&i[o].indexOf(s)===-1)return!1;return!0}function FQ(e,t,n){for(var i=this.context.data[e],r=i?i.values.value:[],o=i?i[kp]&&i[kp].value:void 0,s=n===PE,a=r.length,u=0,l,c,f,d,h;u<a;++u)if(l=r[u],o&&s){if(c=c||{},f=c[d=l.unit]||0,f===-1)continue;if(h=q$(t,l),c[d]=h?-1:++f,h&&o.size===1)return!0;if(!h&&f===o.get(d).count)return!1}else if(h=q$(t,l),s^h)return h;return a&&s}const mR=eg(nf),kQ=mR.left,DQ=mR.right;function TQ(e,t,n){const i=this.context.data[e],r=i?i.values.value:[],o=i?i[kp]&&i[kp].value:void 0,s=n===PE,a=nf(t),u=kQ(r,a);if(u===r.length||nf(r[u])!==a)return!1;if(o&&s){if(o.size===1)return!0;if(DQ(r,a)-u<o.size)return!1}return!0}function MQ(e,t){return e.map(n=>ye(t.fields?{values:t.fields.map(i=>gR(i)(n.datum))}:{[sr]:nf(n.datum)},t))}function OQ(e,t,n,i){for(var r=this.context.data[e],o=r?r.values.value:[],s={},a={},u={},l,c,f,d,h,p,g,m,y,b,x=o.length,v=0,w,A;v<x;++v)if(l=o[v],d=l.unit,c=l.fields,f=l.values,c&&f){for(w=0,A=c.length;w<A;++w)h=c[w],g=s[h.field]||(s[h.field]={}),m=g[d]||(g[d]=[]),u[h.field]=y=h.type.charAt(0),b=g1[`${y}_union`],g[d]=b(m,se(f[w]));n&&(m=a[d]||(a[d]=[]),m.push(se(f).reduce((E,S,C)=>(E[c[C].field]=S,E),{})))}else h=sr,p=nf(l),g=s[h]||(s[h]={}),m=g[d]||(g[d]=[]),m.push(p),n&&(m=a[d]||(a[d]=[]),m.push({[sr]:p}));if(t=t||U$,s[sr]?s[sr]=g1[`${sr}_${t}`](...Object.values(s[sr])):Object.keys(s).forEach(E=>{s[E]=Object.keys(s[E]).map(S=>s[E][S]).reduce((S,C)=>S===void 0?C:g1[`${u[E]}_${t}`](S,C))}),o=Object.keys(a),n&&o.length){const E=i?gQ:pQ;s[E]=t===U$?{[j$]:o.reduce((S,C)=>(S.push(...a[C]),S),[])}:{[mQ]:o.map(S=>({[j$]:a[S]}))}}return s}var g1={[`${sr}_union`]:hI,[`${sr}_intersect`]:fI,E_union:function(e,t){if(!e.length)return t;for(var n=0,i=t.length;n<i;++n)e.includes(t[n])||e.push(t[n]);return e},E_intersect:function(e,t){return e.length?e.filter(n=>t.includes(n)):t},R_union:function(e,t){var n=mn(t[0]),i=mn(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]<i&&(e[1]=i),e):[n,i]},R_intersect:function(e,t){var n=mn(t[0]),i=mn(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?i<e[0]||e[1]<n?[]:(e[0]<n&&(e[0]=n),e[1]>i&&(e[1]=i),e):[n,i]}};const RQ=":",NQ="@";function IE(e,t,n,i){t[0].type!==da&&L("First argument to selection functions must be a string literal.");const r=t[0].value,o=t.length>=2&&$e(t).value,s="unit",a=NQ+s,u=RQ+r;o===PE&&!le(i,a)&&(i[a]=n.getData(r).indataRef(n,s)),le(i,u)||(i[u]=n.getData(r).tuplesRef())}function yR(e){const t=this.context.data[e];return t?t.values.value:[]}function LQ(e,t,n){const i=this.context.data[e]["index:"+t],r=i?i.value.get(n):void 0;return r&&r.count}function PQ(e,t){const n=this.context.dataflow,i=this.context.data[e],r=i.input;return n.pulse(r,n.changeset().remove(Pi).insert(t)),1}function IQ(e,t,n){if(e){const i=this.context.dataflow,r=e.mark.source;i.pulse(r,i.changeset().encode(e,t))}return n!==void 0?n:e}const Wf=e=>function(t,n){const i=this.context.dataflow.locale();return t===null?"null":i[e](n)(t)},zQ=Wf("format"),bR=Wf("timeFormat"),BQ=Wf("utcFormat"),UQ=Wf("timeParse"),jQ=Wf("utcParse"),Ld=new Date(2e3,0,1);function u0(e,t,n){return!Number.isInteger(e)||!Number.isInteger(t)?"":(Ld.setYear(2e3),Ld.setMonth(e),Ld.setDate(t),bR.call(this,Ld,n))}function qQ(e){return u0.call(this,e,1,"%B")}function WQ(e){return u0.call(this,e,1,"%b")}function GQ(e){return u0.call(this,0,2+e,"%A")}function HQ(e){return u0.call(this,0,2+e,"%a")}const VQ=":",YQ="@",kb="%",xR="$";function zE(e,t,n,i){t[0].type!==da&&L("First argument to data functions must be a string literal.");const r=t[0].value,o=VQ+r;if(!le(o,i))try{i[o]=n.getData(r).tuplesRef()}catch{}}function XQ(e,t,n,i){t[0].type!==da&&L("First argument to indata must be a string literal."),t[1].type!==da&&L("Second argument to indata must be a string literal.");const r=t[0].value,o=t[1].value,s=YQ+o;le(s,i)||(i[s]=n.getData(r).indataRef(n,o))}function En(e,t,n,i){if(t[0].type===da)W$(n,i,t[0].value);else for(e in n.scales)W$(n,i,e)}function W$(e,t,n){const i=kb+n;if(!le(t,i))try{t[i]=e.scaleRef(n)}catch{}}function Dr(e,t){if(Ke(e)){const n=t.scales[e];return n&&XS(n.value)?n.value:void 0}else if(be(e))return XS(e)?e:void 0}function KQ(e,t,n){t.__bandwidth=r=>r&&r.bandwidth?r.bandwidth():0,n._bandwidth=En,n._range=En,n._scale=En;const i=r=>"_["+(r.type===da?re(kb+r.value):re(kb)+"+"+e(r))+"]";return{_bandwidth:r=>`this.__bandwidth(${i(r[0])})`,_range:r=>`${i(r[0])}.range()`,_scale:r=>`${i(r[0])}(${e(r[1])})`}}function BE(e,t){return function(n,i,r){if(n){const o=Dr(n,(r||this).context);return o&&o.path[e](i)}else return t(i)}}const JQ=BE("area",wH),QQ=BE("bounds",$H),ZQ=BE("centroid",MH);function eZ(e,t){const n=Dr(e,(t||this).context);return n&&n.scale()}function tZ(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n}function UE(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(i){e.warn(i)}return n[n.length-1]}function nZ(){return UE(this.context.dataflow,"warn",arguments)}function iZ(){return UE(this.context.dataflow,"info",arguments)}function rZ(){return UE(this.context.dataflow,"debug",arguments)}function m1(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Db(e){const t=Ch(e),n=m1(t.r),i=m1(t.g),r=m1(t.b);return .2126*n+.7152*i+.0722*r}function oZ(e,t){const n=Db(e),i=Db(t),r=Math.max(n,i),o=Math.min(n,i);return(r+.05)/(o+.05)}function sZ(){const e=[].slice.call(arguments);return e.unshift({}),ye(...e)}function vR(e,t){return e===t||e!==e&&t!==t?!0:Z(e)?Z(t)&&e.length===t.length?aZ(e,t):!1:me(e)&&me(t)?ER(e,t):!1}function aZ(e,t){for(let n=0,i=e.length;n<i;++n)if(!vR(e[n],t[n]))return!1;return!0}function ER(e,t){for(const n in e)if(!vR(e[n],t[n]))return!1;return!0}function G$(e){return t=>ER(e,t)}function uZ(e,t,n,i,r,o){const s=this.context.dataflow,a=this.context.data[e],u=a.input,l=s.stamp();let c=a.changes,f,d;if(s._trigger===!1||!(u.value.length||t||i))return 0;if((!c||c.stamp<l)&&(a.changes=c=s.changeset(),c.stamp=l,s.runAfter(()=>{a.modified=!0,s.pulse(u,c).run()},!0,1)),n&&(f=n===!0?Pi:Z(n)||wg(n)?n:G$(n),c.remove(f)),t&&c.insert(t),i&&(f=G$(i),u.value.some(f)?c.remove(f):c.insert(i)),r)for(d in o)c.modify(r,d,o[d]);return 1}function lZ(e){const t=e.touches,n=t[0].clientX-t[1].clientX,i=t[0].clientY-t[1].clientY;return Math.hypot(n,i)}function cZ(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)}const H$={};function fZ(e,t){const n=H$[t]||(H$[t]=Li(t));return Z(e)?e.map(n):n(e)}function l0(e){return Z(e)||ArrayBuffer.isView(e)?e:null}function jE(e){return l0(e)||(Ke(e)?e:null)}function dZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return l0(e).join(...n)}function hZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return jE(e).indexOf(...n)}function pZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return jE(e).lastIndexOf(...n)}function gZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return jE(e).slice(...n)}function mZ(e,t,n){return be(n)&&L("Function argument passed to replace."),!Ke(t)&&!aD(t)&&L("Please pass a string or RegExp argument to replace."),String(e).replace(t,n)}function yZ(e){return l0(e).slice().reverse()}function bZ(e){return l0(e).slice().sort(hg)}function xZ(e,t,n){return i2(e||0,t||0,n||0)}function vZ(e,t){const n=Dr(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}function EZ(e,t){const n=Dr(e,(t||this).context);return n?n.copy():void 0}function wZ(e,t){const n=Dr(e,(t||this).context);return n?n.domain():[]}function AZ(e,t,n){const i=Dr(e,(n||this).context);return i?Z(t)?(i.invertRange||i.invert)(t):(i.invert||i.invertExtent)(t):void 0}function SZ(e,t){const n=Dr(e,(t||this).context);return n&&n.range?n.range():[]}function CZ(e,t,n){const i=Dr(e,(n||this).context);return i?i(t):void 0}function $Z(e,t,n,i,r){e=Dr(e,(r||this).context);const o=pM(t,n);let s=e.domain(),a=s[0],u=$e(s),l=Ln;return u-a?l=nM(e,a,u):e=(e.interpolator?Me("sequential")().interpolator(e.interpolator()):Me("linear")().interpolate(e.interpolate()).range(e.range())).domain([a=0,u=1]),e.ticks&&(s=e.ticks(+i||15),a!==s[0]&&s.unshift(a),u!==$e(s)&&s.push(u)),s.forEach(c=>o.stop(l(c),e(c))),o}function _Z(e,t,n){const i=Dr(e,(n||this).context);return function(r){return i?i.path.context(r)(t):""}}function FZ(e){let t=null;return function(n){return n?Vc(n,t=t||Nu(e)):e}}const wR=e=>e.data;function AR(e,t){const n=yR.call(t,e);return n.root&&n.root.lookup||{}}function kZ(e,t,n){const i=AR(e,this),r=i[t],o=i[n];return r&&o?r.path(o).map(wR):void 0}function DZ(e,t){const n=AR(e,this)[t];return n?n.ancestors().map(wR):void 0}const SR=()=>typeof window<"u"&&window||null;function TZ(){const e=SR();return e?e.screen:{}}function MZ(){const e=SR();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]}function OZ(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]}function CR(e,t,n){if(!e)return[];const[i,r]=e,o=new gt().set(i[0],i[1],r[0],r[1]),s=n||this.context.dataflow.scenegraph().root;return f5(s,o,RZ(t))}function RZ(e){let t=null;if(e){const n=se(e.marktype),i=se(e.markname);t=r=>(!n.length||n.some(o=>r.marktype===o))&&(!i.length||i.some(o=>r.name===o))}return t}function NZ(e,t,n){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;e=se(e);const r=e[e.length-1];return r===void 0||Math.hypot(r[0]-t,r[1]-n)>i?[...e,[t,n]]:e}function LZ(e){return se(e).reduce((t,n,i)=>{let[r,o]=n;return t+=i==0?`M ${r},${o} `:i===e.length-1?" Z":`L ${r},${o} `},"")}function PZ(e,t,n){const{x:i,y:r,mark:o}=n,s=new gt().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[u,l]of t)u<s.x1&&(s.x1=u),u>s.x2&&(s.x2=u),l<s.y1&&(s.y1=l),l>s.y2&&(s.y2=l);return s.translate(i,r),CR([[s.x1,s.y1],[s.x2,s.y2]],e,o).filter(u=>IZ(u.x,u.y,t))}function IZ(e,t,n){let i=0;for(let r=0,o=n.length-1;r<n.length;o=r++){const[s,a]=n[o],[u,l]=n[r];l>t!=a>t&&e<(s-u)*(t-l)/(a-l)+u&&i++}return i&1}const rf={random(){return mi()},cumulativeNormal:_g,cumulativeLogNormal:sv,cumulativeUniform:cv,densityNormal:tv,densityLogNormal:ov,densityUniform:lv,quantileNormal:Fg,quantileLogNormal:av,quantileUniform:fv,sampleNormal:$g,sampleLogNormal:rv,sampleUniform:uv,isArray:Z,isBoolean:IP,isDate:Ys,isDefined(e){return e!==void 0},isNumber:sa,isObject:me,isRegExp:aD,isString:Ke,isTuple:wg,isValid(e){return e!=null&&e===e},toBoolean:lD,toDate(e){return cD(e)},toNumber:mn,toString:fD,indexof:hZ,join:dZ,lastindexof:pZ,replace:mZ,reverse:yZ,sort:bZ,slice:gZ,flush:PP,lerp:BP,merge:sZ,pad:WP,peek:$e,pluck:fZ,span:pg,inrange:tc,truncate:HP,rgb:Ch,lab:Ih,hcl:zh,hsl:py,luminance:Db,contrast:oZ,sequence:Yn,format:zQ,utcFormat:BQ,utcParse:jQ,utcOffset:PD,utcSequence:BD,timeFormat:bR,timeParse:UQ,timeOffset:LD,timeSequence:zD,timeUnitSpecifier:CD,monthFormat:qQ,monthAbbrevFormat:WQ,dayFormat:GQ,dayAbbrevFormat:HQ,quarter:kP,utcquarter:DP,week:_D,utcweek:DD,dayofyear:$D,utcdayofyear:kD,warn:nZ,info:iZ,debug:rZ,extent(e){return lo(e)},inScope:tZ,intersect:CR,clampRange:TP,pinchDistance:lZ,pinchAngle:cZ,screen:TZ,containerSize:OZ,windowSize:MZ,bandspace:xZ,setdata:PQ,pathShape:FZ,panLinear:CP,panLog:$P,panPow:_P,panSymlog:FP,zoomLinear:nD,zoomLog:iD,zoomPow:gy,zoomSymlog:rD,encode:IQ,modify:uZ,lassoAppend:NZ,lassoPath:LZ,intersectLasso:PZ},zZ=["view","item","group","xy","x","y"],BZ="event.vega.",$R="this.",qE={},_R={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${re(xR+e)}]`,functions:UZ,constants:dR,visitors:qE},Tb=pR(_R);function UZ(e){const t=hR(e);zZ.forEach(n=>t[n]=BZ+n);for(const n in rf)t[n]=$R+n;return ye(t,KQ(e,rf,qE)),t}function ht(e,t,n){return arguments.length===1?rf[e]:(rf[e]=t,n&&(qE[e]=n),Tb&&(Tb.functions[e]=$R+e),this)}ht("bandwidth",vZ,En);ht("copy",EZ,En);ht("domain",wZ,En);ht("range",SZ,En);ht("invert",AZ,En);ht("scale",CZ,En);ht("gradient",$Z,En);ht("geoArea",JQ,En);ht("geoBounds",QQ,En);ht("geoCentroid",ZQ,En);ht("geoShape",_Z,En);ht("geoScale",eZ,En);ht("indata",LQ,XQ);ht("data",yR,zE);ht("treePath",kZ,zE);ht("treeAncestors",DZ,zE);ht("vlSelectionTest",FQ,IE);ht("vlSelectionIdTest",TQ,IE);ht("vlSelectionResolve",OQ,IE);ht("vlSelectionTuples",MQ);function wr(e,t){const n={};let i;try{e=Ke(e)?e:re(e)+"",i=fR(e)}catch{L("Expression parse error: "+e)}i.visit(o=>{if(o.type!==rR)return;const s=o.callee.name,a=_R.visitors[s];a&&a(s,o.arguments,t,n)});const r=Tb(i);return r.globals.forEach(o=>{const s=xR+o;!le(n,s)&&t.getSignal(o)&&(n[s]=t.signalRef(o))}),{$expr:ye({code:r.code},t.options.ast?{ast:i}:null),$fields:r.fields,$params:n}}function jZ(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach(i=>t.parseOperator(i)),n.forEach(i=>t.parseOperatorParameters(i)),(e.streams||[]).forEach(i=>t.parseStream(i)),(e.updates||[]).forEach(i=>t.parseUpdate(i)),t.resolve()}const qZ=yr(["rule"]),V$=yr(["group","image","rect"]);function WZ(e,t){let n="";return qZ[t]||(e.x2&&(e.x?(V$[t]&&(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);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(V$[t]&&(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);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}function WE(e){return(e+"").toLowerCase()}function GZ(e){return WE(e)==="operator"}function HZ(e){return WE(e)==="collect"}function jl(e,t,n){n.endsWith(";")||(n="return("+n+");");const i=Function(...t.concat(n));return e&&e.functions?i.bind(e.functions):i}function VZ(e,t,n,i){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}
9
+ `&&++O;else{if(tf(i.charCodeAt(0)))break;e+=i}return t!==""&&ke({},Ct,Bt),{type:jf,value:e,octal:o,start:n,end:O}}function WJ(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(i,r)=>{if(parseInt(r,16)<=1114111)return"x";ke({},_b)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ke({},_b)}try{return new RegExp(e,t)}catch{return null}}function GJ(){var e,t,n,i,r;for(e=K[O],s0(e==="/","Regular expression literal must start with a slash"),t=K[O++],n=!1,i=!1;O<rn;)if(e=K[O++],t+=e,e==="\\")e=K[O++],tf(e.charCodeAt(0))&&ke({},d1),t+=e;else if(tf(e.charCodeAt(0)))ke({},d1);else if(n)e==="]"&&(n=!1);else if(e==="/"){i=!0;break}else e==="["&&(n=!0);return i||ke({},d1),r=t.substr(1,t.length-2),{value:r,literal:t}}function HJ(){var e,t,n;for(t="",n="";O<rn&&(e=K[O],!!Fp(e.charCodeAt(0)));)++O,e==="\\"&&O<rn?ke({},Ct,Bt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ke({},_b,n),{value:n,literal:t}}function VJ(){var e,t,n,i;return Pe=null,sR(),e=O,t=GJ(),n=HJ(),i=WJ(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:O}}function YJ(e){return e.type===ha||e.type===fs||e.type===r0||e.type===o0}function uR(){if(sR(),O>=rn)return{type:Uf,start:O,end:O};const e=K.charCodeAt(O);return qf(e)?BJ():e===40||e===41||e===59?h1():e===39||e===34?qJ():e===46?Wr(K.charCodeAt(O+1))?M$():h1():Wr(e)?M$():h1()}function Mn(){const e=Pe;return O=e.end,Pe=uR(),O=e.end,e}function lR(){const e=O;Pe=uR(),O=e}function XJ(e){const t=new Wi(bJ);return t.elements=e,t}function O$(e,t,n){const i=new Wi(e==="||"||e==="&&"?AJ:xJ);return i.operator=e,i.left=t,i.right=n,i}function KJ(e,t){const n=new Wi(vJ);return n.callee=e,n.arguments=t,n}function JJ(e,t,n){const i=new Wi(EJ);return i.test=e,i.consequent=t,i.alternate=n,i}function NE(e){const t=new Wi(rR);return t.name=e,t}function xc(e){const t=new Wi(wJ);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function R$(e,t,n){const i=new Wi(SJ);return i.computed=e==="[",i.object=t,i.property=n,i.computed||(n.member=!0),i}function QJ(e){const t=new Wi(CJ);return t.properties=e,t}function N$(e,t,n){const i=new Wi($J);return i.key=t,i.value=n,i.kind=e,i}function ZJ(e,t){const n=new Wi(_J);return n.operator=e,n.argument=t,n.prefix=!0,n}function ke(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(o,s)=>(s0(s<i.length,"Message reference must be in range"),i[s]));throw n=new Error(r),n.index=O,n.description=r,n}function a0(e){e.type===Uf&&ke(e,MJ),e.type===Oa&&ke(e,FJ),e.type===jf&&ke(e,kJ),e.type===ha&&ke(e,DJ),e.type===fs&&ke(e,TJ),ke(e,Ct,e.value)}function on(e){const t=Mn();(t.type!==kn||t.value!==e)&&a0(t)}function Ve(e){return Pe.type===kn&&Pe.value===e}function p1(e){return Pe.type===fs&&Pe.value===e}function eQ(){const e=[];for(O=Pe.start,on("[");!Ve("]");)Ve(",")?(Mn(),e.push(null)):(e.push(pa()),Ve("]")||on(","));return Mn(),XJ(e)}function L$(){O=Pe.start;const e=Mn();return e.type===jf||e.type===Oa?(e.octal&&ke(e,oR),xc(e)):NE(e.value)}function tQ(){var e,t,n,i;if(O=Pe.start,e=Pe,e.type===ha)return n=L$(),on(":"),i=pa(),N$("init",n,i);if(e.type===Uf||e.type===kn)a0(e);else return t=L$(),on(":"),i=pa(),N$("init",t,i)}function nQ(){var e=[],t,n,i,r={},o=String;for(O=Pe.start,on("{");!Ve("}");)t=tQ(),t.key.type===rR?n=t.key.name:n=o(t.key.value),i="$"+n,Object.prototype.hasOwnProperty.call(r,i)?ke({},OJ):r[i]=!0,e.push(t),Ve("}")||on(",");return on("}"),QJ(e)}function iQ(){on("(");const e=LE();return on(")"),e}const rQ={if:1};function oQ(){var e,t,n;if(Ve("("))return iQ();if(Ve("["))return eQ();if(Ve("{"))return nQ();if(e=Pe.type,O=Pe.start,e===ha||rQ[Pe.value])n=NE(Mn().value);else if(e===jf||e===Oa)Pe.octal&&ke(Pe,oR),n=xc(Mn());else{if(e===fs)throw new Error(ef);e===r0?(t=Mn(),t.value=t.value==="true",n=xc(t)):e===o0?(t=Mn(),t.value=null,n=xc(t)):Ve("/")||Ve("/=")?(n=xc(VJ()),lR()):a0(Mn())}return n}function sQ(){const e=[];if(on("("),!Ve(")"))for(;O<rn&&(e.push(pa()),!Ve(")"));)on(",");return on(")"),e}function aQ(){O=Pe.start;const e=Mn();return YJ(e)||a0(e),NE(e.value)}function uQ(){return on("."),aQ()}function lQ(){on("[");const e=LE();return on("]"),e}function cQ(){var e,t,n;for(e=oQ();;)if(Ve("."))n=uQ(),e=R$(".",e,n);else if(Ve("("))t=sQ(),e=KJ(e,t);else if(Ve("["))n=lQ(),e=R$("[",e,n);else break;return e}function P$(){const e=cQ();if(Pe.type===kn&&(Ve("++")||Ve("--")))throw new Error(ef);return e}function gh(){var e,t;if(Pe.type!==kn&&Pe.type!==fs)t=P$();else{if(Ve("++")||Ve("--"))throw new Error(ef);if(Ve("+")||Ve("-")||Ve("~")||Ve("!"))e=Mn(),t=gh(),t=ZJ(e.value,t);else{if(p1("delete")||p1("void")||p1("typeof"))throw new Error(ef);t=P$()}}return t}function I$(e){let t=0;if(e.type!==kn&&e.type!==fs)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function fQ(){var e,t,n,i,r,o,s,a,u,l;if(e=Pe,u=gh(),i=Pe,r=I$(i),r===0)return u;for(i.prec=r,Mn(),t=[e,Pe],s=gh(),o=[u,i,s];(r=I$(Pe))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)s=o.pop(),a=o.pop().value,u=o.pop(),t.pop(),n=O$(a,u,s),o.push(n);i=Mn(),i.prec=r,o.push(i),t.push(Pe),n=gh(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=O$(o[l-1].value,o[l-2],n),l-=2;return n}function pa(){var e,t,n;return e=fQ(),Ve("?")&&(Mn(),t=pa(),on(":"),n=pa(),e=JJ(e,t,n)),e}function LE(){const e=pa();if(Ve(","))throw new Error(ef);return e}function cR(e){K=e,O=0,rn=K.length,Pe=null,lR();const t=LE();if(Pe.type!==Uf)throw new Error("Unexpect token after expression.");return t}var fR={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 dR(e){function t(s,a,u,l){let c=e(a[0]);return u&&(c=u+"("+c+")",u.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+s+(l<0?"":l===0?"()":"("+a.slice(1).map(e).join(",")+")")}function n(s,a,u){return l=>t(s,l,a,u)}const i="new Date",r="String",o="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",hypot:"Math.hypot",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(s){s.length<3&&L("Missing arguments to clamp function."),s.length>3&&L("Too many arguments to clamp function.");const a=s.map(e);return"Math.max("+a[1]+", Math.min("+a[2]+","+a[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:i,date:n("getDate",i,0),day:n("getDay",i,0),year:n("getFullYear",i,0),month:n("getMonth",i,0),hours:n("getHours",i,0),minutes:n("getMinutes",i,0),seconds:n("getSeconds",i,0),milliseconds:n("getMilliseconds",i,0),time:n("getTime",i,0),timezoneoffset:n("getTimezoneOffset",i,0),utcdate:n("getUTCDate",i,0),utcday:n("getUTCDay",i,0),utcyear:n("getUTCFullYear",i,0),utcmonth:n("getUTCMonth",i,0),utchours:n("getUTCHours",i,0),utcminutes:n("getUTCMinutes",i,0),utcseconds:n("getUTCSeconds",i,0),utcmilliseconds:n("getUTCMilliseconds",i,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",r,0),lower:n("toLowerCase",r,0),substring:n("substring",r),split:n("split",r),trim:n("trim",r,0),btoa:"btoa",atob:"atob",regexp:o,test:n("test",o),if:function(s){s.length<3&&L("Missing arguments to if function."),s.length>3&&L("Too many arguments to if function.");const a=s.map(e);return"("+a[0]+"?"+a[1]+":"+a[2]+")"}}}function dQ(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function hR(e){e=e||{};const t=e.allowed?yr(e.allowed):{},n=e.forbidden?yr(e.forbidden):{},i=e.constants||fR,r=(e.functions||dR)(f),o=e.globalvar,s=e.fieldvar,a=be(o)?o:p=>`${o}["${p}"]`;let u={},l={},c=0;function f(p){if(Ke(p))return p;const g=d[p.type];return g==null&&L("Unsupported type: "+p.type),g(p)}const d={Literal:p=>p.raw,Identifier:p=>{const g=p.name;return c>0?g:le(n,g)?L("Illegal identifier: "+g):le(i,g)?i[g]:le(t,g)?g:(u[g]=1,a(g))},MemberExpression:p=>{const g=!p.computed,m=f(p.object);g&&(c+=1);const y=f(p.property);return m===s&&(l[dQ(y)]=1),g&&(c-=1),m+(g?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&L("Illegal callee type: "+p.callee.type);const g=p.callee.name,m=p.arguments,y=le(r,g)&&r[g];return y||L("Unrecognized function: "+g),be(y)?y(m):y+"("+m.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 g=f(p.key);return c-=1,g+":"+f(p.value)}};function h(p){const g={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},g}return h.functions=r,h.constants=i,h}const z$=Symbol("vega_selection_getter");function pR(e){return(!e.getter||!e.getter[z$])&&(e.getter=Li(e.field),e.getter[z$]=!0),e.getter}const PE="intersect",B$="union",hQ="vlMulti",pQ="vlPoint",U$="or",gQ="and",sr="_vgsid_",nf=Li(sr),mQ="E",yQ="R",bQ="R-E",xQ="R-LE",vQ="R-RE",EQ="E-LT",wQ="E-LTE",AQ="E-GT",SQ="E-GTE",CQ="E-VALID",$Q="E-ONE",kp="index:unit";function j$(e,t){for(var n=t.fields,i=t.values,r=n.length,o=0,s,a;o<r;++o)if(a=n[o],s=pR(a)(e),Ys(s)&&(s=mn(s)),Ys(i[o])&&(i[o]=mn(i[o])),Z(i[o])&&Ys(i[o][0])&&(i[o]=i[o].map(mn)),a.type===mQ){if(Z(i[o])?!i[o].includes(s):s!==i[o])return!1}else if(a.type===yQ){if(!tc(s,i[o]))return!1}else if(a.type===vQ){if(!tc(s,i[o],!0,!1))return!1}else if(a.type===bQ){if(!tc(s,i[o],!1,!1))return!1}else if(a.type===xQ){if(!tc(s,i[o],!1,!0))return!1}else if(a.type===EQ){if(s>=i[o])return!1}else if(a.type===wQ){if(s>i[o])return!1}else if(a.type===AQ){if(s<=i[o])return!1}else if(a.type===SQ){if(s<i[o])return!1}else if(a.type===CQ){if(s===null||isNaN(s))return!1}else if(a.type===$Q&&i[o].indexOf(s)===-1)return!1;return!0}function _Q(e,t,n){for(var i=this.context.data[e],r=i?i.values.value:[],o=i?i[kp]&&i[kp].value:void 0,s=n===PE,a=r.length,u=0,l,c,f,d,h;u<a;++u)if(l=r[u],o&&s){if(c=c||{},f=c[d=l.unit]||0,f===-1)continue;if(h=j$(t,l),c[d]=h?-1:++f,h&&o.size===1)return!0;if(!h&&f===o.get(d).count)return!1}else if(h=j$(t,l),s^h)return h;return a&&s}const gR=eg(nf),FQ=gR.left,kQ=gR.right;function DQ(e,t,n){const i=this.context.data[e],r=i?i.values.value:[],o=i?i[kp]&&i[kp].value:void 0,s=n===PE,a=nf(t),u=FQ(r,a);if(u===r.length||nf(r[u])!==a)return!1;if(o&&s){if(o.size===1)return!0;if(kQ(r,a)-u<o.size)return!1}return!0}function TQ(e,t){return e.map(n=>ye(t.fields?{values:t.fields.map(i=>pR(i)(n.datum))}:{[sr]:nf(n.datum)},t))}function MQ(e,t,n,i){for(var r=this.context.data[e],o=r?r.values.value:[],s={},a={},u={},l,c,f,d,h,p,g,m,y,b,x=o.length,v=0,w,A;v<x;++v)if(l=o[v],d=l.unit,c=l.fields,f=l.values,c&&f){for(w=0,A=c.length;w<A;++w)h=c[w],g=s[h.field]||(s[h.field]={}),m=g[d]||(g[d]=[]),u[h.field]=y=h.type.charAt(0),b=g1[`${y}_union`],g[d]=b(m,se(f[w]));n&&(m=a[d]||(a[d]=[]),m.push(se(f).reduce((E,S,C)=>(E[c[C].field]=S,E),{})))}else h=sr,p=nf(l),g=s[h]||(s[h]={}),m=g[d]||(g[d]=[]),m.push(p),n&&(m=a[d]||(a[d]=[]),m.push({[sr]:p}));if(t=t||B$,s[sr]?s[sr]=g1[`${sr}_${t}`](...Object.values(s[sr])):Object.keys(s).forEach(E=>{s[E]=Object.keys(s[E]).map(S=>s[E][S]).reduce((S,C)=>S===void 0?C:g1[`${u[E]}_${t}`](S,C))}),o=Object.keys(a),n&&o.length){const E=i?pQ:hQ;s[E]=t===B$?{[U$]:o.reduce((S,C)=>(S.push(...a[C]),S),[])}:{[gQ]:o.map(S=>({[U$]:a[S]}))}}return s}var g1={[`${sr}_union`]:dI,[`${sr}_intersect`]:cI,E_union:function(e,t){if(!e.length)return t;for(var n=0,i=t.length;n<i;++n)e.includes(t[n])||e.push(t[n]);return e},E_intersect:function(e,t){return e.length?e.filter(n=>t.includes(n)):t},R_union:function(e,t){var n=mn(t[0]),i=mn(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]<i&&(e[1]=i),e):[n,i]},R_intersect:function(e,t){var n=mn(t[0]),i=mn(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?i<e[0]||e[1]<n?[]:(e[0]<n&&(e[0]=n),e[1]>i&&(e[1]=i),e):[n,i]}};const OQ=":",RQ="@";function IE(e,t,n,i){t[0].type!==da&&L("First argument to selection functions must be a string literal.");const r=t[0].value,o=t.length>=2&&$e(t).value,s="unit",a=RQ+s,u=OQ+r;o===PE&&!le(i,a)&&(i[a]=n.getData(r).indataRef(n,s)),le(i,u)||(i[u]=n.getData(r).tuplesRef())}function mR(e){const t=this.context.data[e];return t?t.values.value:[]}function NQ(e,t,n){const i=this.context.data[e]["index:"+t],r=i?i.value.get(n):void 0;return r&&r.count}function LQ(e,t){const n=this.context.dataflow,i=this.context.data[e],r=i.input;return n.pulse(r,n.changeset().remove(Pi).insert(t)),1}function PQ(e,t,n){if(e){const i=this.context.dataflow,r=e.mark.source;i.pulse(r,i.changeset().encode(e,t))}return n!==void 0?n:e}const Wf=e=>function(t,n){const i=this.context.dataflow.locale();return t===null?"null":i[e](n)(t)},IQ=Wf("format"),yR=Wf("timeFormat"),zQ=Wf("utcFormat"),BQ=Wf("timeParse"),UQ=Wf("utcParse"),Ld=new Date(2e3,0,1);function u0(e,t,n){return!Number.isInteger(e)||!Number.isInteger(t)?"":(Ld.setYear(2e3),Ld.setMonth(e),Ld.setDate(t),yR.call(this,Ld,n))}function jQ(e){return u0.call(this,e,1,"%B")}function qQ(e){return u0.call(this,e,1,"%b")}function WQ(e){return u0.call(this,0,2+e,"%A")}function GQ(e){return u0.call(this,0,2+e,"%a")}const HQ=":",VQ="@",kb="%",bR="$";function zE(e,t,n,i){t[0].type!==da&&L("First argument to data functions must be a string literal.");const r=t[0].value,o=HQ+r;if(!le(o,i))try{i[o]=n.getData(r).tuplesRef()}catch{}}function YQ(e,t,n,i){t[0].type!==da&&L("First argument to indata must be a string literal."),t[1].type!==da&&L("Second argument to indata must be a string literal.");const r=t[0].value,o=t[1].value,s=VQ+o;le(s,i)||(i[s]=n.getData(r).indataRef(n,o))}function En(e,t,n,i){if(t[0].type===da)q$(n,i,t[0].value);else for(e in n.scales)q$(n,i,e)}function q$(e,t,n){const i=kb+n;if(!le(t,i))try{t[i]=e.scaleRef(n)}catch{}}function Dr(e,t){if(Ke(e)){const n=t.scales[e];return n&&YS(n.value)?n.value:void 0}else if(be(e))return YS(e)?e:void 0}function XQ(e,t,n){t.__bandwidth=r=>r&&r.bandwidth?r.bandwidth():0,n._bandwidth=En,n._range=En,n._scale=En;const i=r=>"_["+(r.type===da?re(kb+r.value):re(kb)+"+"+e(r))+"]";return{_bandwidth:r=>`this.__bandwidth(${i(r[0])})`,_range:r=>`${i(r[0])}.range()`,_scale:r=>`${i(r[0])}(${e(r[1])})`}}function BE(e,t){return function(n,i,r){if(n){const o=Dr(n,(r||this).context);return o&&o.path[e](i)}else return t(i)}}const KQ=BE("area",EH),JQ=BE("bounds",CH),QQ=BE("centroid",TH);function ZQ(e,t){const n=Dr(e,(t||this).context);return n&&n.scale()}function eZ(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n}function UE(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(i){e.warn(i)}return n[n.length-1]}function tZ(){return UE(this.context.dataflow,"warn",arguments)}function nZ(){return UE(this.context.dataflow,"info",arguments)}function iZ(){return UE(this.context.dataflow,"debug",arguments)}function m1(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Db(e){const t=Ch(e),n=m1(t.r),i=m1(t.g),r=m1(t.b);return .2126*n+.7152*i+.0722*r}function rZ(e,t){const n=Db(e),i=Db(t),r=Math.max(n,i),o=Math.min(n,i);return(r+.05)/(o+.05)}function oZ(){const e=[].slice.call(arguments);return e.unshift({}),ye(...e)}function xR(e,t){return e===t||e!==e&&t!==t?!0:Z(e)?Z(t)&&e.length===t.length?sZ(e,t):!1:me(e)&&me(t)?vR(e,t):!1}function sZ(e,t){for(let n=0,i=e.length;n<i;++n)if(!xR(e[n],t[n]))return!1;return!0}function vR(e,t){for(const n in e)if(!xR(e[n],t[n]))return!1;return!0}function W$(e){return t=>vR(e,t)}function aZ(e,t,n,i,r,o){const s=this.context.dataflow,a=this.context.data[e],u=a.input,l=s.stamp();let c=a.changes,f,d;if(s._trigger===!1||!(u.value.length||t||i))return 0;if((!c||c.stamp<l)&&(a.changes=c=s.changeset(),c.stamp=l,s.runAfter(()=>{a.modified=!0,s.pulse(u,c).run()},!0,1)),n&&(f=n===!0?Pi:Z(n)||wg(n)?n:W$(n),c.remove(f)),t&&c.insert(t),i&&(f=W$(i),u.value.some(f)?c.remove(f):c.insert(i)),r)for(d in o)c.modify(r,d,o[d]);return 1}function uZ(e){const t=e.touches,n=t[0].clientX-t[1].clientX,i=t[0].clientY-t[1].clientY;return Math.hypot(n,i)}function lZ(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)}const G$={};function cZ(e,t){const n=G$[t]||(G$[t]=Li(t));return Z(e)?e.map(n):n(e)}function l0(e){return Z(e)||ArrayBuffer.isView(e)?e:null}function jE(e){return l0(e)||(Ke(e)?e:null)}function fZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return l0(e).join(...n)}function dZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return jE(e).indexOf(...n)}function hZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return jE(e).lastIndexOf(...n)}function pZ(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return jE(e).slice(...n)}function gZ(e,t,n){return be(n)&&L("Function argument passed to replace."),!Ke(t)&&!sD(t)&&L("Please pass a string or RegExp argument to replace."),String(e).replace(t,n)}function mZ(e){return l0(e).slice().reverse()}function yZ(e){return l0(e).slice().sort(hg)}function bZ(e,t,n){return i2(e||0,t||0,n||0)}function xZ(e,t){const n=Dr(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}function vZ(e,t){const n=Dr(e,(t||this).context);return n?n.copy():void 0}function EZ(e,t){const n=Dr(e,(t||this).context);return n?n.domain():[]}function wZ(e,t,n){const i=Dr(e,(n||this).context);return i?Z(t)?(i.invertRange||i.invert)(t):(i.invert||i.invertExtent)(t):void 0}function AZ(e,t){const n=Dr(e,(t||this).context);return n&&n.range?n.range():[]}function SZ(e,t,n){const i=Dr(e,(n||this).context);return i?i(t):void 0}function CZ(e,t,n,i,r){e=Dr(e,(r||this).context);const o=hM(t,n);let s=e.domain(),a=s[0],u=$e(s),l=Ln;return u-a?l=tM(e,a,u):e=(e.interpolator?Me("sequential")().interpolator(e.interpolator()):Me("linear")().interpolate(e.interpolate()).range(e.range())).domain([a=0,u=1]),e.ticks&&(s=e.ticks(+i||15),a!==s[0]&&s.unshift(a),u!==$e(s)&&s.push(u)),s.forEach(c=>o.stop(l(c),e(c))),o}function $Z(e,t,n){const i=Dr(e,(n||this).context);return function(r){return i?i.path.context(r)(t):""}}function _Z(e){let t=null;return function(n){return n?Vc(n,t=t||Nu(e)):e}}const ER=e=>e.data;function wR(e,t){const n=mR.call(t,e);return n.root&&n.root.lookup||{}}function FZ(e,t,n){const i=wR(e,this),r=i[t],o=i[n];return r&&o?r.path(o).map(ER):void 0}function kZ(e,t){const n=wR(e,this)[t];return n?n.ancestors().map(ER):void 0}const AR=()=>typeof window<"u"&&window||null;function DZ(){const e=AR();return e?e.screen:{}}function TZ(){const e=AR();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]}function MZ(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]}function SR(e,t,n){if(!e)return[];const[i,r]=e,o=new gt().set(i[0],i[1],r[0],r[1]),s=n||this.context.dataflow.scenegraph().root;return c5(s,o,OZ(t))}function OZ(e){let t=null;if(e){const n=se(e.marktype),i=se(e.markname);t=r=>(!n.length||n.some(o=>r.marktype===o))&&(!i.length||i.some(o=>r.name===o))}return t}function RZ(e,t,n){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;e=se(e);const r=e[e.length-1];return r===void 0||Math.hypot(r[0]-t,r[1]-n)>i?[...e,[t,n]]:e}function NZ(e){return se(e).reduce((t,n,i)=>{let[r,o]=n;return t+=i==0?`M ${r},${o} `:i===e.length-1?" Z":`L ${r},${o} `},"")}function LZ(e,t,n){const{x:i,y:r,mark:o}=n,s=new gt().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[u,l]of t)u<s.x1&&(s.x1=u),u>s.x2&&(s.x2=u),l<s.y1&&(s.y1=l),l>s.y2&&(s.y2=l);return s.translate(i,r),SR([[s.x1,s.y1],[s.x2,s.y2]],e,o).filter(u=>PZ(u.x,u.y,t))}function PZ(e,t,n){let i=0;for(let r=0,o=n.length-1;r<n.length;o=r++){const[s,a]=n[o],[u,l]=n[r];l>t!=a>t&&e<(s-u)*(t-l)/(a-l)+u&&i++}return i&1}const rf={random(){return mi()},cumulativeNormal:_g,cumulativeLogNormal:sv,cumulativeUniform:cv,densityNormal:tv,densityLogNormal:ov,densityUniform:lv,quantileNormal:Fg,quantileLogNormal:av,quantileUniform:fv,sampleNormal:$g,sampleLogNormal:rv,sampleUniform:uv,isArray:Z,isBoolean:PP,isDate:Ys,isDefined(e){return e!==void 0},isNumber:sa,isObject:me,isRegExp:sD,isString:Ke,isTuple:wg,isValid(e){return e!=null&&e===e},toBoolean:uD,toDate(e){return lD(e)},toNumber:mn,toString:cD,indexof:dZ,join:fZ,lastindexof:hZ,replace:gZ,reverse:mZ,sort:yZ,slice:pZ,flush:LP,lerp:zP,merge:oZ,pad:qP,peek:$e,pluck:cZ,span:pg,inrange:tc,truncate:GP,rgb:Ch,lab:Ih,hcl:zh,hsl:py,luminance:Db,contrast:rZ,sequence:Yn,format:IQ,utcFormat:zQ,utcParse:UQ,utcOffset:LD,utcSequence:zD,timeFormat:yR,timeParse:BQ,timeOffset:ND,timeSequence:ID,timeUnitSpecifier:SD,monthFormat:jQ,monthAbbrevFormat:qQ,dayFormat:WQ,dayAbbrevFormat:GQ,quarter:FP,utcquarter:kP,week:$D,utcweek:kD,dayofyear:CD,utcdayofyear:FD,warn:tZ,info:nZ,debug:iZ,extent(e){return lo(e)},inScope:eZ,intersect:SR,clampRange:DP,pinchDistance:uZ,pinchAngle:lZ,screen:DZ,containerSize:MZ,windowSize:TZ,bandspace:bZ,setdata:LQ,pathShape:_Z,panLinear:SP,panLog:CP,panPow:$P,panSymlog:_P,zoomLinear:tD,zoomLog:nD,zoomPow:gy,zoomSymlog:iD,encode:PQ,modify:aZ,lassoAppend:RZ,lassoPath:NZ,intersectLasso:LZ},IZ=["view","item","group","xy","x","y"],zZ="event.vega.",CR="this.",qE={},$R={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${re(bR+e)}]`,functions:BZ,constants:fR,visitors:qE},Tb=hR($R);function BZ(e){const t=dR(e);IZ.forEach(n=>t[n]=zZ+n);for(const n in rf)t[n]=CR+n;return ye(t,XQ(e,rf,qE)),t}function ht(e,t,n){return arguments.length===1?rf[e]:(rf[e]=t,n&&(qE[e]=n),Tb&&(Tb.functions[e]=CR+e),this)}ht("bandwidth",xZ,En);ht("copy",vZ,En);ht("domain",EZ,En);ht("range",AZ,En);ht("invert",wZ,En);ht("scale",SZ,En);ht("gradient",CZ,En);ht("geoArea",KQ,En);ht("geoBounds",JQ,En);ht("geoCentroid",QQ,En);ht("geoShape",$Z,En);ht("geoScale",ZQ,En);ht("indata",NQ,YQ);ht("data",mR,zE);ht("treePath",FZ,zE);ht("treeAncestors",kZ,zE);ht("vlSelectionTest",_Q,IE);ht("vlSelectionIdTest",DQ,IE);ht("vlSelectionResolve",MQ,IE);ht("vlSelectionTuples",TQ);function wr(e,t){const n={};let i;try{e=Ke(e)?e:re(e)+"",i=cR(e)}catch{L("Expression parse error: "+e)}i.visit(o=>{if(o.type!==iR)return;const s=o.callee.name,a=$R.visitors[s];a&&a(s,o.arguments,t,n)});const r=Tb(i);return r.globals.forEach(o=>{const s=bR+o;!le(n,s)&&t.getSignal(o)&&(n[s]=t.signalRef(o))}),{$expr:ye({code:r.code},t.options.ast?{ast:i}:null),$fields:r.fields,$params:n}}function UZ(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach(i=>t.parseOperator(i)),n.forEach(i=>t.parseOperatorParameters(i)),(e.streams||[]).forEach(i=>t.parseStream(i)),(e.updates||[]).forEach(i=>t.parseUpdate(i)),t.resolve()}const jZ=yr(["rule"]),H$=yr(["group","image","rect"]);function qZ(e,t){let n="";return jZ[t]||(e.x2&&(e.x?(H$[t]&&(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);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(H$[t]&&(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);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}function WE(e){return(e+"").toLowerCase()}function WZ(e){return WE(e)==="operator"}function GZ(e){return WE(e)==="collect"}function jl(e,t,n){n.endsWith(";")||(n="return("+n+");");const i=Function(...t.concat(n));return e&&e.functions?i.bind(e.functions):i}function HZ(e,t,n,i){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}
10
10
  : (u > v || v == null) && u != null ? ${i}
11
11
  : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}
12
- : v !== v && u === u ? ${i} : `}var YZ={operator:(e,t)=>jl(e,["_"],t.code),parameter:(e,t)=>jl(e,["datum","_"],t.code),event:(e,t)=>jl(e,["event"],t.code),handler:(e,t)=>{const n=`var datum=event.item&&event.item.datum;return ${t.code};`;return jl(e,["_","event"],n)},encode:(e,t)=>{const{marktype:n,channels:i}=t;let r="var o=item,datum=o.datum,m=0,$;";for(const o in i){const s="o["+re(o)+"]";r+=`$=${i[o].code};if(${s}!==$)${s}=$,m=1;`}return r+=WZ(i,n),r+="return m;",jl(e,["item","_"],r)},codegen:{get(e){const t=`[${e.map(re).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const i=(o,s)=>{const a=t[s];let u,l;return o.path?(u=`a${o.path}`,l=`b${o.path}`):((n=n||{})["f"+s]=o,u=`this.f${s}(a)`,l=`this.f${s}(b)`),VZ(u,l,-a,a)},r=Function("a","b","var u, v; return "+e.map(i).join("")+"0;");return n?r.bind(n):r}}};function XZ(e){const t=this;GZ(e.type)||!e.type?t.operator(e,e.update?t.operatorExpression(e.update):null):t.transform(e,e.type)}function KZ(e){const t=this;if(e.params){const n=t.get(e.id);n||L("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}}function JZ(e,t){t=t||{};const n=this;for(const i in e){const r=e[i];t[i]=Z(r)?r.map(o=>Y$(o,n,t)):Y$(r,n,t)}return t}function Y$(e,t,n){if(!e||!me(e))return e;for(let i=0,r=X$.length,o;i<r;++i)if(o=X$[i],le(e,o.key))return o.parse(e,t,n);return e}var X$=[{key:"$ref",parse:QZ},{key:"$key",parse:eee},{key:"$expr",parse:ZZ},{key:"$field",parse:tee},{key:"$encode",parse:iee},{key:"$compare",parse:nee},{key:"$context",parse:ree},{key:"$subflow",parse:oee},{key:"$tupleid",parse:see}];function QZ(e,t){return t.get(e.$ref)||L("Operator not defined: "+e.$ref)}function ZZ(e,t,n){e.$params&&t.parseParameters(e.$params,n);const i="e:"+e.$expr.code;return t.fn[i]||(t.fn[i]=ri(t.parameterExpression(e.$expr),e.$fields))}function eee(e,t){const n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=uD(e.$key,e.$flat,t.expr.codegen))}function tee(e,t){if(!e.$field)return null;const n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=Li(e.$field,e.$name,t.expr.codegen))}function nee(e,t){const n="c:"+e.$compare+"_"+e.$order,i=se(e.$compare).map(r=>r&&r.$tupleid?te:r);return t.fn[n]||(t.fn[n]=oD(i,e.$order,t.expr.codegen))}function iee(e,t){const n=e.$encode,i={};for(const r in n){const o=n[r];i[r]=ri(t.encodeExpression(o.$expr),o.$fields),i[r].output=o.$output}return i}function ree(e,t){return t}function oee(e,t){const n=e.$subflow;return function(i,r,o){const s=t.fork().parse(n),a=s.get(n.operators[0].id),u=s.signals.parent;return u&&u.set(o),a.detachSubflow=()=>t.detach(s),a}}function see(){return te}function aee(e){var t=this,n=e.filter!=null?t.eventExpression(e.filter):void 0,i=e.stream!=null?t.get(e.stream):void 0,r;e.source?i=t.events(e.source,e.type,n):e.merge&&(r=e.merge.map(o=>t.get(o)),i=r[0].merge.apply(r[0],r.slice(1))),e.between&&(r=e.between.map(o=>t.get(o)),i=i.between(r[0],r[1])),e.filter&&(i=i.filter(n)),e.throttle!=null&&(i=i.throttle(+e.throttle)),e.debounce!=null&&(i=i.debounce(+e.debounce)),i==null&&L("Invalid stream definition: "+JSON.stringify(e)),e.consume&&i.consume(!0),t.stream(e,i)}function uee(e){var t=this,n=me(n=e.source)?n.$ref:n,i=t.get(n),r=null,o=e.update,s=void 0;i||L("Source not defined: "+e.source),r=e.target&&e.target.$expr?t.eventExpression(e.target.$expr):t.get(e.target),o&&o.$expr&&(o.$params&&(s=t.parseParameters(o.$params)),o=t.handlerExpression(o.$expr)),t.update(e,i,r,o,s)}const lee={skip:!0};function cee(e){var t=this,n={};if(e.signals){var i=n.signals={};Object.keys(t.signals).forEach(o=>{const s=t.signals[o];e.signals(o,s)&&(i[o]=s.value)})}if(e.data){var r=n.data={};Object.keys(t.data).forEach(o=>{const s=t.data[o];e.data(o,s)&&(r[o]=s.input.value)})}return t.subcontext&&e.recurse!==!1&&(n.subcontext=t.subcontext.map(o=>o.getState(e))),n}function fee(e){var t=this,n=t.dataflow,i=e.data,r=e.signals;Object.keys(r||{}).forEach(o=>{n.update(t.signals[o],r[o],lee)}),Object.keys(i||{}).forEach(o=>{n.pulse(t.data[o].input,n.changeset().remove(Pi).insert(i[o]))}),(e.subcontext||[]).forEach((o,s)=>{const a=t.subcontext[s];a&&a.setState(o)})}function FR(e,t,n,i){return new kR(e,t,n,i)}function kR(e,t,n,i){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=i||YZ,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function K$(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}kR.prototype=K$.prototype={fork(){const e=new K$(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter(n=>n!==e);const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,i=n.dataflow,r=e.value;if(n.set(e.id,t),HZ(e.type)&&r&&(r.$ingest?i.ingest(t,r.$ingest,r.$format):r.$request?i.preload(t,r.$request,r.$format):i.pulse(t,i.changeset().insert(r))),e.root&&(n.root=t),e.parent){let o=n.get(e.parent.$ref);o?(i.connect(o,[t]),t.targets().add(o)):(n.unresolved=n.unresolved||[]).push(()=>{o=n.get(e.parent.$ref),i.connect(o,[t]),t.targets().add(o)})}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const o in e.data){const s=n.data[o]||(n.data[o]={});e.data[o].forEach(a=>s[a]=t)}},resolve(){return(this.unresolved||[]).forEach(e=>e()),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[WE(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,i,r){this.dataflow.on(t,n,i,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:jZ,parseOperator:XZ,parseOperatorParameters:KZ,parseParameters:JZ,parseStream:aee,parseUpdate:uee,getState:cee,setState:fee};function dee(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),DR(t,e.description()))}function DR(e,t){e&&(t==null?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}function hee(e){e.add(null,t=>(e._background=t.bg,e._resize=1,t.bg),{bg:e._signals.background})}const y1="default";function pee(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:y1,item:null}));e.on(e.events("view","pointermove"),t,(n,i)=>{const r=t.value,o=r?Ke(r)?r:r.user:y1,s=i.item&&i.item.cursor||null;return r&&o===r.user&&s==r.item?r:{user:o,item:s}}),e.add(null,function(n){let i=n.cursor,r=this.value;return Ke(i)||(r=i.item,i=i.user),Mb(e,i&&i!==y1?i:r||i),r},{cursor:t})}function Mb(e,t){const n=e.globalCursor()?typeof document<"u"&&document.body:e.container();if(n)return t==null?n.style.removeProperty("cursor"):n.style.cursor=t}function Dp(e,t){var n=e._runtime.data;return le(n,t)||L("Unrecognized data set: "+t),n[t]}function gee(e,t){return arguments.length<2?Dp(this,e).values.value:c0.call(this,e,Ta().remove(Pi).insert(t))}function c0(e,t){h3(t)||L("Second argument to changes must be a changeset.");const n=Dp(this,e);return n.modified=!0,this.pulse(n.input,t)}function mee(e,t){return c0.call(this,e,Ta().insert(t))}function yee(e,t){return c0.call(this,e,Ta().remove(t))}function TR(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function MR(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function f0(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function bee(e){var t=f0(e),n=TR(e),i=MR(e);e._renderer.background(e.background()),e._renderer.resize(n,i,t),e._handler.origin(t),e._resizeListeners.forEach(r=>{try{r(n,i)}catch(o){e.error(o)}})}function xee(e,t,n){var i=e._renderer,r=i&&i.canvas(),o,s,a;return r&&(a=f0(e),s=t.changedTouches?t.changedTouches[0]:t,o=Jg(s,r),o[0]-=a[0],o[1]-=a[1]),t.dataflow=e,t.item=n,t.vega=vee(e,n,o),t}function vee(e,t,n){const i=t?t.mark.marktype==="group"?t:t.mark.group:null;function r(s){var a=i,u;if(s){for(u=t;u;u=u.mark.group)if(u.mark.name===s){a=u;break}}return a&&a.mark&&a.mark.interactive?a:{}}function o(s){if(!s)return n;Ke(s)&&(s=r(s));const a=n.slice();for(;s;)a[0]-=s.x||0,a[1]-=s.y||0,s=s.mark&&s.mark.group;return a}return{view:wn(e),item:wn(t||{}),group:r,xy:o,x:s=>o(s)[0],y:s=>o(s)[1]}}const J$="view",Eee="timer",wee="window",Aee={trap:!1};function See(e){const t=ye({defaults:{}},e),n=(i,r)=>{r.forEach(o=>{Z(i[o])&&(i[o]=yr(i[o]))})};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}function OR(e,t,n,i){e._eventListeners.push({type:n,sources:se(t),handler:i})}function Cee(e,t){var n=e._eventConfig.defaults,i=n.prevent,r=n.allow;return i===!1||r===!0?!1:i===!0||r===!1?!0:i?i[t]:r?!r[t]:e.preventDefault()}function Pd(e,t,n){const i=e._eventConfig&&e._eventConfig[t];return i===!1||me(i)&&!i[n]?(e.warn(`Blocked ${t} ${n} event listener.`),!1):!0}function $ee(e,t,n){var i=this,r=new Cg(n),o=function(l,c){i.runAsync(null,()=>{e===J$&&Cee(i,t)&&l.preventDefault(),r.receive(xee(i,l,c))})},s;if(e===Eee)Pd(i,"timer",t)&&i.timer(o,t);else if(e===J$)Pd(i,"view",t)&&i.addEventListener(t,o,Aee);else if(e===wee?Pd(i,"window",t)&&typeof window<"u"&&(s=[window]):typeof document<"u"&&Pd(i,"selector",t)&&(s=Array.from(document.querySelectorAll(e))),!s)i.warn("Can not resolve event source: "+e);else{for(var a=0,u=s.length;a<u;++a)s[a].addEventListener(t,o);OR(i,s,t,o)}return r}function Q$(e){return e.item}function Z$(e){return e.item.mark.source}function e_(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function _ee(e,t){return e=[e||"hover"],t=[t||"update",e[0]],this.on(this.events("view","pointerover",Q$),Z$,e_(e)),this.on(this.events("view","pointerout",Q$),Z$,e_(t)),this}function Fee(){var e=this._tooltip,t=this._timers,n=this._handler.handlers(),i=this._eventListeners,r,o,s,a,u;for(r=t.length;--r>=0;)t[r].stop();for(r=i.length;--r>=0;)for(s=i[r],o=s.sources.length;--o>=0;)s.sources[o].removeEventListener(s.type,s.handler);for(e&&e.call(this,this._handler,null,null,null),r=n.length;--r>=0;)u=n[r].type,a=n[r].handler,this._handler.off(u,a);return this}function Qn(e,t,n){const i=document.createElement(e);for(const r in t)i.setAttribute(r,t[r]);return n!=null&&(i.textContent=n),i}const kee="vega-bind",Dee="vega-bind-name",Tee="vega-bind-radio";function Mee(e,t,n){if(!t)return;const i=n.param;let r=n.state;return r||(r=n.state={elements:null,active:!1,set:null,update:s=>{s!=e.signal(i.signal)&&e.runAsync(null,()=>{r.source=!0,e.signal(i.signal,s)})}},i.debounce&&(r.update=sD(i.debounce,r.update))),(i.input==null&&i.element?Oee:Nee)(r,t,i,e),r.active||(e.on(e._signals[i.signal],null,()=>{r.source?r.source=!1:r.set(e.signal(i.signal))}),r.active=!0),r}function Oee(e,t,n,i){const r=n.event||"input",o=()=>e.update(t.value);i.signal(n.signal,t.value),t.addEventListener(r,o),OR(i,t,r,o),e.set=s=>{t.value=s,t.dispatchEvent(Ree(r))}}function Ree(e){return typeof Event<"u"?new Event(e):{type:e}}function Nee(e,t,n,i){const r=i.signal(n.signal),o=Qn("div",{class:kee}),s=n.input==="radio"?o:o.appendChild(Qn("label"));s.appendChild(Qn("span",{class:Dee},n.name||n.signal)),t.appendChild(o);let a=Lee;switch(n.input){case"checkbox":a=Pee;break;case"select":a=Iee;break;case"radio":a=zee;break;case"range":a=Bee;break}a(e,s,n,r)}function Lee(e,t,n,i){const r=Qn("input");for(const o in n)o!=="signal"&&o!=="element"&&r.setAttribute(o==="input"?"type":o,n[o]);r.setAttribute("name",n.signal),r.value=i,t.appendChild(r),r.addEventListener("input",()=>e.update(r.value)),e.elements=[r],e.set=o=>r.value=o}function Pee(e,t,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=Qn("input",r);t.appendChild(o),o.addEventListener("change",()=>e.update(o.checked)),e.elements=[o],e.set=s=>o.checked=!!s||null}function Iee(e,t,n,i){const r=Qn("select",{name:n.signal}),o=n.labels||[];n.options.forEach((s,a)=>{const u={value:s};Tp(s,i)&&(u.selected=!0),r.appendChild(Qn("option",u,(o[a]||s)+""))}),t.appendChild(r),r.addEventListener("change",()=>{e.update(n.options[r.selectedIndex])}),e.elements=[r],e.set=s=>{for(let a=0,u=n.options.length;a<u;++a)if(Tp(n.options[a],s)){r.selectedIndex=a;return}}}function zee(e,t,n,i){const r=Qn("span",{class:Tee}),o=n.labels||[];t.appendChild(r),e.elements=n.options.map((s,a)=>{const u={type:"radio",name:n.signal,value:s};Tp(s,i)&&(u.checked=!0);const l=Qn("input",u);l.addEventListener("change",()=>e.update(s));const c=Qn("label",{},(o[a]||s)+"");return c.prepend(l),r.appendChild(c),l}),e.set=s=>{const a=e.elements,u=a.length;for(let l=0;l<u;++l)Tp(a[l].value,s)&&(a[l].checked=!0)}}function Bee(e,t,n,i){i=i!==void 0?i:(+n.max+ +n.min)/2;const r=n.max!=null?n.max:Math.max(100,+i)||100,o=n.min||Math.min(0,r,+i)||0,s=n.step||ra(o,r,100),a=Qn("input",{type:"range",name:n.signal,min:o,max:r,step:s});a.value=i;const u=Qn("span",{},+i);t.appendChild(a),t.appendChild(u);const l=()=>{u.textContent=a.value,e.update(+a.value)};a.addEventListener("input",l),a.addEventListener("change",l),e.elements=[a],e.set=c=>{a.value=c,u.textContent=c}}function Tp(e,t){return e===t||e+""==t+""}function RR(e,t,n,i,r,o){return t=t||new i(e.loader()),t.initialize(n,TR(e),MR(e),f0(e),r,o).background(e.background())}function GE(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function Uee(e,t,n,i){const r=new i(e.loader(),GE(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,f0(e),e);return t&&t.handlers().forEach(o=>{r.on(o.type,o.handler)}),r}function jee(e,t){const n=this,i=n._renderType,r=n._eventConfig.bind,o=Qg(i);e=n._el=e?b1(n,e,!0):null,dee(n),o||n.error("Unrecognized renderer type: "+i);const s=o.handler||Lf,a=e?o.renderer:o.headless;return n._renderer=a?RR(n,n._renderer,e,a):null,n._handler=Uee(n,n._handler,e,s),n._redraw=!0,e&&r!=="none"&&(t=t?n._elBind=b1(n,t,!0):e.appendChild(Qn("form",{class:"vega-bindings"})),n._bind.forEach(u=>{u.param.element&&r!=="container"&&(u.element=b1(n,u.param.element,!!u.param.input))}),n._bind.forEach(u=>{Mee(n,u.element||t,u)})),n}function b1(e,t,n){if(typeof t=="string")if(typeof document<"u"){if(t=document.querySelector(t),!t)return e.error("Signal bind element not found: "+t),null}else return e.error("DOM document instance not found."),null;if(t&&n)try{t.textContent=""}catch(i){t=null,e.error(i)}return t}const ql=e=>+e||0,qee=e=>({top:e,bottom:e,left:e,right:e});function t_(e){return me(e)?{top:ql(e.top),bottom:ql(e.bottom),left:ql(e.left),right:ql(e.right)}:qee(ql(e))}async function HE(e,t,n,i){const r=Qg(t),o=r&&r.headless;return o||L("Unrecognized renderer type: "+t),await e.runAsync(),RR(e,null,null,o,n,i).renderAsync(e._scenegraph.root)}async function Wee(e,t){e!==zo.Canvas&&e!==zo.SVG&&e!==zo.PNG&&L("Unrecognized image type: "+e);const n=await HE(this,e,t);return e===zo.SVG?Gee(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function Gee(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}async function Hee(e,t){return(await HE(this,zo.Canvas,e,t)).canvas()}async function Vee(e){return(await HE(this,zo.SVG,e)).svg()}function Yee(e,t,n){return FR(e,Du,rf,n).parse(t)}function Xee(e){var t=this._runtime.scales;return le(t,e)||L("Unrecognized scale or projection: "+e),t[e].value}var NR="width",LR="height",VE="padding",n_={skip:!0};function PR(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===VE?i.left+i.right:0)}function IR(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===VE?i.top+i.bottom:0)}function Kee(e){var t=e._signals,n=t[NR],i=t[LR],r=t[VE];function o(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,a=>{e._width=a.size,e._viewWidth=PR(e,a.size),o()},{size:n}),e._resizeHeight=e.add(null,a=>{e._height=a.size,e._viewHeight=IR(e,a.size),o()},{size:i});const s=e.add(null,o,{pad:r});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=i.rank+1,s.rank=r.rank+1}function Jee(e,t,n,i,r,o){this.runAfter(s=>{let a=0;s._autosize=0,s.width()!==n&&(a=1,s.signal(NR,n,n_),s._resizeWidth.skip(!0)),s.height()!==i&&(a=1,s.signal(LR,i,n_),s._resizeHeight.skip(!0)),s._viewWidth!==e&&(s._resize=1,s._viewWidth=e),s._viewHeight!==t&&(s._resize=1,s._viewHeight=t),(s._origin[0]!==r[0]||s._origin[1]!==r[1])&&(s._resize=1,s._origin=r),a&&s.run("enter"),o&&s.runAfter(u=>u.resize())},!1,1)}function Qee(e){return this._runtime.getState(e||{data:Zee,signals:ete,recurse:!0})}function Zee(e,t){return t.modified&&Z(t.input.value)&&!e.startsWith("_:vega:_")}function ete(e,t){return!(e==="parent"||t instanceof Du.proxy)}function tte(e){return this.runAsync(null,t=>{t._trigger=!1,t._runtime.setState(e)},t=>{t._trigger=!0}),this}function nte(e,t){function n(i){e({timestamp:Date.now(),elapsed:i})}this._timers.push($Y(n,t))}function ite(e,t,n,i){const r=e.element();r&&r.setAttribute("title",rte(i))}function rte(e){return e==null?"":Z(e)?zR(e):me(e)&&!Ys(e)?ote(e):e+""}function ote(e){return Object.keys(e).map(t=>{const n=e[t];return t+": "+(Z(n)?zR(n):BR(n))}).join(`
13
- `)}function zR(e){return"["+e.map(BR).join(", ")+"]"}function BR(e){return Z(e)?"[…]":me(e)&&!Ys(e)?"{…}":e}function ste(){if(this.renderer()==="canvas"&&this._renderer._canvas){let e=null;const t=()=>{e?.();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}function UR(e,t){const n=this;if(t=t||{},mu.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){const o=ye({},e.locale,t.locale);n.locale(i3(o.number,o.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||zo.Canvas,n._scenegraph=new IM;const i=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||ite,n._redraw=!0,n._handler=new Lf().scene(i),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=See(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const r=Yee(n,e,t.expr);n._runtime=r,n._signals=r.signals,n._bind=(e.bindings||[]).map(o=>({state:null,param:ye({},o)})),r.root&&r.root.set(i),i.source=r.data.root.input,n.pulse(r.data.root.input,n.changeset().insert(i.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=PR(n,n._width),n._viewHeight=IR(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,Kee(n),hee(n),pee(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function Id(e,t){return le(e._signals,t)?e._signals[t]:L("Unrecognized signal name: "+re(t))}function jR(e,t){const n=(e._targets||[]).filter(i=>i._update&&i._update.handler===t);return n.length?n[0]:null}function i_(e,t,n,i){let r=jR(n,i);return r||(r=GE(e,()=>i(t,n.value)),r.handler=i,e.on(n,null,r)),e}function r_(e,t,n){const i=jR(t,n);return i&&t._targets.remove(i),e}G(UR,mu,{async evaluate(e,t,n){if(await mu.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,bee(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(i){this.error(i)}return n&&Zd(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=e!=null?e+"":null;return t!==this._desc&&DR(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const i=Id(this,e);return arguments.length===1?i.value:this.update(i,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",t_(e)):t_(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(Qg(e)||L("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(mu.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Id(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:Jee,addEventListener(e,t,n){let i=t;return n&&n.trap===!1||(i=GE(this,t),i.raw=t),this._handler.on(e,i),this},removeEventListener(e,t){for(var n=this._handler.handlers(e),i=n.length,r,o;--i>=0;)if(o=n[i].type,r=n[i].handler,e===o&&(t===r||t===r.raw)){this._handler.off(o,r);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return i_(this,e,Id(this,e),t)},removeSignalListener(e,t){return r_(this,Id(this,e),t)},addDataListener(e,t){return i_(this,e,Dp(this,e).values,t)},removeDataListener(e,t){return r_(this,Dp(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=Mb(this,null);this._globalCursor=!!e,t&&Mb(this,t)}return this}else return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:nte,events:$ee,finalize:Fee,hover:_ee,data:gee,change:c0,insert:mee,remove:yee,scale:Xee,initialize:jee,toImageURL:Wee,toCanvas:Hee,toSVG:Vee,getState:Qee,setState:tte,_watchPixelRatio:ste});const ate="view",Mp="[",Op="]",qR="{",WR="}",ute=":",GR=",",lte="@",cte=">",fte=/[[\]{}]/,dte={"*":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 HR,VR;function ds(e,t,n){return HR=t||ate,VR=n||dte,YR(e.trim()).map(Ob)}function hte(e){return VR[e]}function Rc(e,t,n,i,r){const o=e.length;let s=0,a;for(;t<o;++t){if(a=e[t],!s&&a===n)return t;r&&r.indexOf(a)>=0?--s:i&&i.indexOf(a)>=0&&++s}return t}function YR(e){const t=[],n=e.length;let i=0,r=0;for(;r<n;)r=Rc(e,r,GR,Mp+qR,Op+WR),t.push(e.substring(i,r).trim()),i=++r;if(t.length===0)throw"Empty event selector: "+e;return t}function Ob(e){return e[0]==="["?pte(e):gte(e)}function pte(e){const t=e.length;let n=1,i;if(n=Rc(e,n,Op,Mp,Op),n===t)throw"Empty between selector: "+e;if(i=YR(e.substring(1,n)),i.length!==2)throw"Between selector must have two elements: "+e;if(e=e.slice(n+1).trim(),e[0]!==cte)throw"Expected '>' after between selector: "+e;i=i.map(Ob);const r=Ob(e.slice(1).trim());return r.between?{between:i,stream:r}:(r.between=i,r)}function gte(e){const t={source:HR},n=[];let i=[0,0],r=0,o=0,s=e.length,a=0,u,l;if(e[s-1]===WR){if(a=e.lastIndexOf(qR),a>=0){try{i=mte(e.substring(a+1,s-1))}catch{throw"Invalid throttle specification: "+e}e=e.slice(0,a).trim(),s=e.length}else throw"Unmatched right brace: "+e;a=0}if(!s)throw e;if(e[0]===lte&&(r=++a),u=Rc(e,a,ute),u<s&&(n.push(e.substring(o,u).trim()),o=a=++u),a=Rc(e,a,Mp),a===s)n.push(e.substring(o,s).trim());else if(n.push(e.substring(o,a).trim()),l=[],o=++a,o===s)throw"Unmatched left bracket: "+e;for(;a<s;){if(a=Rc(e,a,Op),a===s)throw"Unmatched left bracket: "+e;if(l.push(e.substring(o,a).trim()),a<s-1&&e[++a]!==Mp)throw"Expected left bracket: "+e;o=++a}if(!(s=n.length)||fte.test(n[s-1]))throw"Invalid event selector: "+e;return s>1?(t.type=n[1],r?t.markname=n[0].slice(1):hte(n[0])?t.marktype=n[0]:t.source=n[0]):t.type=n[0],t.type.slice(-1)==="!"&&(t.consume=!0,t.type=t.type.slice(0,-1)),l!=null&&(t.filter=l),i[0]&&(t.throttle=i[0]),i[1]&&(t.debounce=i[1]),t}function mte(e){const t=e.split(GR);if(!e.length||t.length>2)throw e;return t.map(n=>{const i=+n;if(i!==i)throw e;return i})}function yte(e){return me(e)?e:{type:e||"pad"}}const Wl=e=>+e||0,bte=e=>({top:e,bottom:e,left:e,right:e});function xte(e){return me(e)?e.signal?e:{top:Wl(e.top),bottom:Wl(e.bottom),left:Wl(e.left),right:Wl(e.right)}:bte(Wl(e))}const $t=e=>me(e)&&!Z(e)?ye({},e):{value:e};function o_(e,t,n,i){return n!=null?(me(n)&&!Z(n)||Z(n)&&n.length&&me(n[0])?e.update[t]=n:e[i||"enter"][t]={value:n},1):0}function Wt(e,t,n){for(const i in t)o_(e,i,t[i]);for(const i in n)o_(e,i,n[i],"update")}function pl(e,t,n){for(const i in t)n&&le(n,i)||(e[i]=ye(e[i]||{},t[i]));return e}function au(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const YE="mark",XE="frame",KE="scope",vte="axis",Ete="axis-domain",wte="axis-grid",Ate="axis-label",Ste="axis-tick",Cte="axis-title",$te="legend",_te="legend-band",Fte="legend-entry",kte="legend-gradient",XR="legend-label",Dte="legend-symbol",Tte="legend-title",Mte="title",Ote="title-text",Rte="title-subtitle";function Nte(e,t,n,i,r){const o={},s={};let a,u,l,c;u="lineBreak",t==="text"&&r[u]!=null&&!au(u,e)&&x1(o,u,r[u]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===XE?r.group:n===YE?ye({},r.mark,r[t]):null;for(u in c)l=au(u,e)||(u==="fill"||u==="stroke")&&(au("fill",e)||au("stroke",e)),l||x1(o,u,c[u]);se(i).forEach(f=>{const d=r.style&&r.style[f];for(const h in d)au(h,e)||x1(o,h,d[h])}),e=ye({},e);for(u in o)c=o[u],c.signal?(a=a||{})[u]=c:s[u]=c;return e.enter=ye(s,e.enter),a&&(e.update=ye(a,e.update)),e}function x1(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const KR=e=>Ke(e)?re(e):e.signal?`(${e.signal})`:JR(e);function d0(e){if(e.gradient!=null)return Pte(e);let t=e.signal?`(${e.signal})`:e.color?Lte(e.color):e.field!=null?JR(e.field):e.value!==void 0?re(e.value):void 0;return e.scale!=null&&(t=Ite(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${mh(e.exponent)})`),e.mult!=null&&(t+=`*${mh(e.mult)}`),e.offset!=null&&(t+=`+${mh(e.offset)}`),e.round&&(t=`round(${t})`),t}const zd=(e,t,n,i)=>`(${e}(${[t,n,i].map(d0).join(",")})+'')`;function Lte(e){return e.c?zd("hcl",e.h,e.c,e.l):e.h||e.s?zd("hsl",e.h,e.s,e.l):e.l||e.a?zd("lab",e.l,e.a,e.b):e.r||e.g||e.b?zd("rgb",e.r,e.g,e.b):null}function Pte(e){const t=[e.start,e.stop,e.count].map(n=>n==null?null:re(n));for(;t.length&&$e(t)==null;)t.pop();return t.unshift(KR(e.gradient)),`gradient(${t.join(",")})`}function mh(e){return me(e)?"("+d0(e)+")":e}function JR(e){return QR(me(e)?e:{datum:e})}function QR(e){let t,n,i;if(e.signal)t="datum",i=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(i=e.parent,t+=".datum"):i=e.group}else e.datum?(t="datum",i=e.datum):L("Invalid field reference: "+re(e));return e.signal||(i=Ke(i)?Ix(i).map(re).join("]["):QR(i)),t+"["+i+"]"}function Ite(e,t){const n=KR(e.scale);return e.range!=null?t=`lerp(_range(${n}), ${+e.range})`:(t!==void 0&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(+e.band==1?"":"*"+mh(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),t==null&&(t="0")),t}function zte(e){let t="";return e.forEach(n=>{const i=d0(n);t+=n.test?`(${n.test})?${i}:`:i}),$e(t)===":"&&(t+="null"),t}function ZR(e,t,n,i,r,o){const s={};o=o||{},o.encoders={$encode:s},e=Nte(e,t,n,i,r.config);for(const a in e)s[a]=Bte(e[a],t,o,r);return o}function Bte(e,t,n,i){const r={},o={};for(const s in e)e[s]!=null&&(r[s]=jte(Ute(e[s]),i,n,o));return{$expr:{marktype:t,channels:r},$fields:Object.keys(o),$output:Object.keys(e)}}function Ute(e){return Z(e)?zte(e):d0(e)}function jte(e,t,n,i){const r=wr(e,t);return r.$fields.forEach(o=>i[o]=1),ye(n,r.$params),r.$expr}const qte="outer",Wte=["value","update","init","react","bind"];function s_(e,t){L(e+' for "outer" push: '+re(t))}function eN(e,t){const n=e.name;if(e.push===qte)t.signals[n]||s_("No prior signal definition",n),Wte.forEach(i=>{e[i]!==void 0&&s_("Invalid property ",i)});else{const i=t.addSignal(n,e.value);e.react===!1&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function Rb(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function h0(e,t,n,i){return new Rb(e,t,n,i)}function Rp(e,t){return h0("operator",e,t)}function ee(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function of(e,t){return t?{$field:e,$name:t}:{$field:e}}const Nb=of("key");function a_(e,t){return{$compare:e,$order:t}}function Gte(e,t){const n={$key:e};return t&&(n.$flat=!0),n}const Hte="ascending",Vte="descending";function Yte(e){return me(e)?(e.order===Vte?"-":"+")+p0(e.op,e.field):""}function p0(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const JE="scope",Lb="view";function vt(e){return e&&e.signal}function Xte(e){return e&&e.expr}function yh(e){if(vt(e))return!0;if(me(e)){for(const t in e)if(yh(e[t]))return!0}return!1}function _i(e,t){return e??t}function Qs(e){return e&&e.signal||e}const u_="timer";function sf(e,t){return(e.merge?Jte:e.stream?Qte:e.type?Zte:L("Invalid stream specification: "+re(e)))(e,t)}function Kte(e){return e===JE?Lb:e||Lb}function Jte(e,t){const n=e.merge.map(r=>sf(r,t)),i=QE({merge:n},e,t);return t.addStream(i).id}function Qte(e,t){const n=sf(e.stream,t),i=QE({stream:n},e,t);return t.addStream(i).id}function Zte(e,t){let n;e.type===u_?(n=t.event(u_,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(Kte(e.source),e.type);const i=QE({stream:n},e,t);return Object.keys(i).length===1?n:t.addStream(i).id}function QE(e,t,n){let i=t.between;return i&&(i.length!==2&&L('Stream "between" parameter must have 2 entries: '+re(t)),e.between=[sf(i[0],n),sf(i[1],n)]),i=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&i.push(ene(t.marktype,t.markname,t.markrole)),t.source===JE&&i.push("inScope(event.item)"),i.length&&(e.filter=wr("("+i.join(")&&(")+")",n).$expr),(i=t.throttle)!=null&&(e.throttle=+i),(i=t.debounce)!=null&&(e.debounce=+i),t.consume&&(e.consume=!0),e}function ene(e,t,n){const i="event.item";return i+(e&&e!=="*"?"&&"+i+".mark.marktype==='"+e+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(t?"&&"+i+".mark.name==='"+t+"'":"")}const tne={code:"_.$value",ast:{type:"Identifier",value:"value"}};function nne(e,t,n){const i=e.encode,r={target:n};let o=e.events,s=e.update,a=[];o||L("Signal update missing events specification."),Ke(o)&&(o=ds(o,t.isSubscope()?JE:Lb)),o=se(o).filter(u=>u.signal||u.scale?(a.push(u),0):1),a.length>1&&(a=[rne(a)]),o.length&&a.push(o.length>1?{merge:o}:o[0]),i!=null&&(s&&L("Signal encode and update are mutually exclusive."),s="encode(item(),"+re(i)+")"),r.update=Ke(s)?wr(s,t):s.expr!=null?wr(s.expr,t):s.value!=null?s.value:s.signal!=null?{$expr:tne,$params:{$value:t.signalRef(s.signal)}}:L("Invalid signal update specification."),e.force&&(r.options={force:!0}),a.forEach(u=>t.addUpdate(ye(ine(u,t),r)))}function ine(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):sf(e,t)}}function rne(e){return{signal:"["+e.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}function one(e,t){const n=t.getSignal(e.name);let i=e.update;e.init&&(i?L("Signals can not include both init and update expressions."):(i=e.init,n.initonly=!0)),i&&(i=wr(i,t),n.update=i.$expr,n.params=i.$params),e.on&&e.on.forEach(r=>nne(r,t,n.id))}const qe=e=>(t,n,i)=>h0(e,n,t||void 0,i),tN=qe("aggregate"),sne=qe("axisticks"),nN=qe("bound"),Gi=qe("collect"),l_=qe("compare"),ane=qe("datajoin"),iN=qe("encode"),une=qe("expression"),lne=qe("facet"),cne=qe("field"),fne=qe("key"),dne=qe("legendentries"),hne=qe("load"),pne=qe("mark"),gne=qe("multiextent"),mne=qe("multivalues"),yne=qe("overlap"),bne=qe("params"),rN=qe("prefacet"),xne=qe("projection"),vne=qe("proxy"),Ene=qe("relay"),oN=qe("render"),wne=qe("scale"),Ra=qe("sieve"),Ane=qe("sortitems"),sN=qe("viewlayout"),Sne=qe("values");let Cne=0;const aN={min:"min",max:"max",count:"sum"};function $ne(e,t){const n=e.type||"linear";KT(n)||L("Unrecognized scale type: "+re(n)),t.addScale(e.name,{type:n,domain:void 0})}function _ne(e,t){const n=t.getScale(e.name).params;let i;n.domain=uN(e.domain,e,t),e.range!=null&&(n.range=cN(e,t,n)),e.interpolate!=null&&Pne(e.interpolate,n),e.nice!=null&&(n.nice=Lne(e.nice,t)),e.bins!=null&&(n.bins=Nne(e.bins,t));for(i in e)le(n,i)||i==="name"||(n[i]=fi(e[i],t))}function fi(e,t){return me(e)?e.signal?t.signalRef(e.signal):L("Unsupported object: "+re(e)):e}function bh(e,t){return e.signal?t.signalRef(e.signal):e.map(n=>fi(n,t))}function g0(e){L("Can not find data set: "+re(e))}function uN(e,t,n){if(!e){(t.domainMin!=null||t.domainMax!=null)&&L("No scale domain defined for domainMin/domainMax to override.");return}return e.signal?n.signalRef(e.signal):(Z(e)?Fne:e.fields?Dne:kne)(e,t,n)}function Fne(e,t,n){return e.map(i=>fi(i,n))}function kne(e,t,n){const i=n.getData(e.data);return i||g0(e.data),Ru(t.type)?i.valuesRef(n,e.field,lN(e.sort,!1)):ZT(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function Dne(e,t,n){const i=e.data,r=e.fields.reduce((o,s)=>(s=Ke(s)?{data:i,field:s}:Z(s)||s.signal?Tne(s,n):s,o.push(s),o),[]);return(Ru(t.type)?Mne:ZT(t.type)?One:Rne)(e,n,r)}function Tne(e,t){const n="_:vega:_"+Cne++,i=Gi({});if(Z(e))i.value={$ingest:e};else if(e.signal){const r="setdata("+re(n)+","+e.signal+")";i.params.input=t.signalRef(r)}return t.addDataPipeline(n,[i,Ra({})]),{data:n,field:"data"}}function Mne(e,t,n){const i=lN(e.sort,!0);let r,o;const s=n.map(l=>{const c=t.getData(l.data);return c||g0(l.data),c.countsRef(t,l.field,i)}),a={groupby:Nb,pulse:s};i&&(r=i.op||"count",o=i.field?p0(r,i.field):"count",a.ops=[aN[r]],a.fields=[t.fieldRef(o)],a.as=[o]),r=t.add(tN(a));const u=t.add(Gi({pulse:ee(r)}));return o=t.add(Sne({field:Nb,sort:t.sortRef(i),pulse:ee(u)})),ee(o)}function lN(e,t){return e&&(!e.field&&!e.op?me(e)?e.field="key":e={field:"key"}:!e.field&&e.op!=="count"?L("No field provided for sort aggregate op: "+e.op):t&&e.field&&e.op&&!aN[e.op]&&L("Multiple domain scales can not be sorted using "+e.op)),e}function One(e,t,n){const i=n.map(r=>{const o=t.getData(r.data);return o||g0(r.data),o.domainRef(t,r.field)});return ee(t.add(mne({values:i})))}function Rne(e,t,n){const i=n.map(r=>{const o=t.getData(r.data);return o||g0(r.data),o.extentRef(t,r.field)});return ee(t.add(gne({extents:i})))}function Nne(e,t){return e.signal||Z(e)?bh(e,t):t.objectProperty(e)}function Lne(e,t){return e.signal?t.signalRef(e.signal):me(e)?{interval:fi(e.interval),step:fi(e.step)}:fi(e)}function Pne(e,t){t.interpolate=fi(e.type||e),e.gamma!=null&&(t.interpolateGamma=fi(e.gamma))}function cN(e,t,n){const i=t.config.range;let r=e.range;if(r.signal)return t.signalRef(r.signal);if(Ke(r)){if(i&&le(i,r))return e=ye({},e,{range:i[r]}),cN(e,t,n);r==="width"?r=[0,{signal:"width"}]:r==="height"?r=Ru(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:L("Unrecognized scale range value: "+re(r))}else if(r.scheme){n.scheme=Z(r.scheme)?bh(r.scheme,t):fi(r.scheme,t),r.extent&&(n.schemeExtent=bh(r.extent,t)),r.count&&(n.schemeCount=fi(r.count,t));return}else if(r.step){n.rangeStep=fi(r.step,t);return}else{if(Ru(e.type)&&!Z(r))return uN(r,e,t);Z(r)||L("Unsupported range type: "+re(r))}return r.map(o=>(Z(o)?bh:fi)(o,t))}function Ine(e,t){const n=t.config.projection||{},i={};for(const r in e)r!=="name"&&(i[r]=Pb(e[r],r,t));for(const r in n)i[r]==null&&(i[r]=Pb(n[r],r,t));t.addProjection(e.name,i)}function Pb(e,t,n){return Z(e)?e.map(i=>Pb(i,t,n)):me(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:L("Unsupported parameter object: "+re(e)):e}const Hi="top",gl="left",ml="right",ns="bottom",fN="center",zne="vertical",Bne="start",Une="middle",jne="end",Ib="index",ZE="label",qne="offset",ju="perc",Wne="perc2",hi="value",Gf="guide-label",ew="guide-title",Gne="group-title",Hne="group-subtitle",c_="symbol",xh="gradient",zb="discrete",Bb="size",Vne="shape",Yne="fill",Xne="stroke",Kne="strokeWidth",Jne="strokeDash",Qne="opacity",tw=[Bb,Vne,Yne,Xne,Kne,Jne,Qne],Hf={name:1,style:1,interactive:1},Ce={value:0},pi={value:1},m0="group",dN="rect",nw="rule",Zne="symbol",Na="text";function af(e){return e.type=m0,e.interactive=e.interactive||!1,e}function qn(e,t){const n=(i,r)=>_i(e[i],_i(t[i],r));return n.isVertical=i=>zne===_i(e.direction,t.direction||(i?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>_i(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>_i(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>_i(e.columns,_i(t.columns,+n.isVertical(!0))),n}function hN(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function eie(e,t,n){const i=t.config.style[n];return i&&i[e]}function y0(e,t,n){return`item.anchor === '${Bne}' ? ${e} : item.anchor === '${jne}' ? ${t} : ${n}`}const iw=y0(re(gl),re(ml),re(fN));function tie(e){const t=e("tickBand");let n=e("tickOffset"),i,r;return t?t.signal?(i={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},r={signal:`(${t.signal}) === 'extent'`},me(n)||(n={signal:`(${t.signal}) === 'extent' ? 0 : ${n}`})):t==="extent"?(i=1,r=!0,n=0):(i=.5,r=!1):(i=e("bandPosition"),r=e("tickExtra")),{extra:r,band:i,offset:n}}function pN(e,t){return t?e?me(e)?Object.assign({},e,{offset:pN(e.offset,t)}):{value:e,offset:t}:t:e}function ii(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=pl(e.encode,t,Hf)):e.interactive=!1,e}function nie(e,t,n,i){const r=qn(e,n),o=r.isVertical(),s=r.gradientThickness(),a=r.gradientLength();let u,l,c,f,d;o?(l=[0,1],c=[0,0],f=s,d=a):(l=[0,0],c=[1,0],f=a,d=s);const h={enter:u={opacity:Ce,x:Ce,y:Ce,width:$t(f),height:$t(d)},update:ye({},u,{opacity:pi,fill:{gradient:t,start:l,stop:c}}),exit:{opacity:Ce}};return Wt(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),ii({type:dN,role:kte,encode:h},i)}function iie(e,t,n,i,r){const o=qn(e,n),s=o.isVertical(),a=o.gradientThickness(),u=o.gradientLength();let l,c,f,d,h="";s?(l="y",f="y2",c="x",d="width",h="1-"):(l="x",f="x2",c="y",d="height");const p={opacity:Ce,fill:{scale:t,field:hi}};p[l]={signal:h+"datum."+ju,mult:u},p[c]=Ce,p[f]={signal:h+"datum."+Wne,mult:u},p[d]=$t(a);const g={enter:p,update:ye({},p,{opacity:pi}),exit:{opacity:Ce}};return Wt(g,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),ii({type:dN,role:_te,key:hi,from:r,encode:g},i)}const rie=`datum.${ju}<=0?"${gl}":datum.${ju}>=1?"${ml}":"${fN}"`,oie=`datum.${ju}<=0?"${ns}":datum.${ju}>=1?"${Hi}":"${Une}"`;function f_(e,t,n,i){const r=qn(e,t),o=r.isVertical(),s=$t(r.gradientThickness()),a=r.gradientLength();let u=r("labelOverlap"),l,c,f,d,h="";const p={enter:l={opacity:Ce},update:c={opacity:pi,text:{field:ZE}},exit:{opacity:Ce}};return Wt(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:_i(e.labelLimit,t.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=c.baseline={signal:oie},f="y",d="x",h="1-"):(l.align=c.align={signal:rie},l.baseline={value:"top"},f="x",d="y"),l[f]=c[f]={signal:h+"datum."+ju,mult:a},l[d]=c[d]=s,s.offset=_i(e.labelOffset,t.gradientLabelOffset)||0,u=u?{separation:r("labelSeparation"),method:u,order:"datum."+Ib}:void 0,ii({type:Na,role:XR,style:Gf,key:hi,from:i,encode:p,overlap:u},n)}function sie(e,t,n,i,r){const o=qn(e,t),s=n.entries,a=!!(s&&s.interactive),u=s?s.name:void 0,l=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.${qne} : datum.${Bb}`,h=l?$t(l):{field:Bb},p=`datum.${Ib}`,g=`max(1, ${r})`;let m,y,b,x,v;h.mult=.5,m={enter:y={opacity:Ce,x:{signal:d,mult:.5,offset:c},y:h},update:b={opacity:pi,x:y.x,y:y.y},exit:{opacity:Ce}};let w=null,A=null;e.fill||(w=t.symbolBaseFillColor,A=t.symbolBaseStrokeColor),Wt(m,{fill:o("symbolFillColor",w),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",A),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),tw.forEach(_=>{e[_]&&(b[_]=y[_]={scale:e[_],field:hi})});const E=ii({type:Zne,role:Dte,key:hi,from:f,clip:l?!0:void 0,encode:m},n.symbols),S=$t(c);S.offset=o("labelOffset"),m={enter:y={opacity:Ce,x:{signal:d,offset:S},y:h},update:b={opacity:pi,text:{field:ZE},x:y.x,y:y.y},exit:{opacity:Ce}},Wt(m,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const C=ii({type:Na,role:XR,style:Gf,key:hi,from:f,encode:m},n.labels);return m={enter:{noBound:{value:!l},width:Ce,height:l?$t(l):Ce,opacity:Ce},exit:{opacity:Ce},update:b={opacity:pi,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(x=`ceil(item.mark.items.length / ${g})`,b.row.signal=`${p}%${x}`,b.column.signal=`floor(${p} / ${x})`,v={field:["row",p]}):(b.row.signal=`floor(${p} / ${g})`,b.column.signal=`${p} % ${g}`,v={field:p}),b.column.signal=`(${r})?${b.column.signal}:${p}`,i={facet:{data:i,name:"value",groupby:Ib}},af({role:KE,from:i,encode:pl(m,s,Hf),marks:[E,C],name:u,interactive:a,sort:v})}function aie(e,t){const n=qn(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const rw='item.orient === "left"',ow='item.orient === "right"',b0=`(${rw} || ${ow})`,uie=`datum.vgrad && ${b0}`,lie=y0('"top"','"bottom"','"middle"'),cie=y0('"right"','"left"','"center"'),fie=`datum.vgrad && ${ow} ? (${cie}) : (${b0} && !(datum.vgrad && ${rw})) ? "left" : ${iw}`,die=`item._anchor || (${b0} ? "middle" : "start")`,hie=`${uie} ? (${rw} ? -90 : 90) : 0`,pie=`${b0} ? (datum.vgrad ? (${ow} ? "bottom" : "top") : ${lie}) : "top"`;function gie(e,t,n,i){const r=qn(e,t),o={enter:{opacity:Ce},update:{opacity:pi,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Ce}};return Wt(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:die},angle:{signal:hie},align:{signal:fie},baseline:{signal:pie},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),ii({type:Na,role:Tte,style:ew,from:i,encode:o},n)}function mie(e,t){let n;return me(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+d_(e.path)+")":e.sphere&&(n="geoShape("+d_(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function d_(e){return me(e)&&e.signal?e.signal:re(e)}function gN(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===m0?KE:t||YE}function yie(e){return{marktype:e.type,name:e.name||void 0,role:e.role||gN(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function bie(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function sw(e,t){const n=m3(e.type);n||L("Unrecognized transform type: "+re(e.type));const i=h0(n.type.toLowerCase(),null,mN(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(i)),i.metadata=n.metadata||{},i}function mN(e,t,n){const i={},r=e.params.length;for(let o=0;o<r;++o){const s=e.params[o];i[s.name]=xie(s,t,n)}return i}function xie(e,t,n){const i=e.type,r=t[e.name];if(i==="index")return vie(e,t,n);if(r===void 0){e.required&&L("Missing required "+re(t.type)+" parameter: "+re(e.name));return}else{if(i==="param")return Eie(e,t,n);if(i==="projection")return n.projectionRef(t[e.name])}return e.array&&!vt(r)?r.map(o=>h_(e,o,n)):h_(e,r,n)}function h_(e,t,n){const i=e.type;if(vt(t))return g_(i)?L("Expression references can not be signals."):v1(i)?n.fieldRef(t):m_(i)?n.compareRef(t):n.signalRef(t.signal);{const r=e.expr||v1(i);return r&&wie(t)?n.exprRef(t.expr,t.as):r&&Aie(t)?of(t.field,t.as):g_(i)?wr(t,n):Sie(i)?ee(n.getData(t).values):v1(i)?of(t):m_(i)?n.compareRef(t):t}}function vie(e,t,n){return Ke(t.from)||L('Lookup "from" parameter must be a string literal.'),n.getData(t.from).lookupRef(n,t.key)}function Eie(e,t,n){const i=t[e.name];return e.array?(Z(i)||L("Expected an array of sub-parameters. Instead: "+re(i)),i.map(r=>p_(e,r,n))):p_(e,i,n)}function p_(e,t,n){const i=e.params.length;let r;for(let s=0;s<i;++s){r=e.params[s];for(const a in r.key)if(r.key[a]!==t[a]){r=null;break}if(r)break}r||L("Unsupported parameter: "+re(t));const o=ye(mN(r,t,n),r.key);return ee(n.add(bne(o)))}const wie=e=>e&&e.expr,Aie=e=>e&&e.field,Sie=e=>e==="data",g_=e=>e==="expr",v1=e=>e==="field",m_=e=>e==="compare";function Cie(e,t,n){let i,r,o,s,a;return e?(i=e.facet)&&(t||L("Only group marks can be faceted."),i.field!=null?s=a=vh(i,n):(e.data?a=ee(n.getData(e.data).aggregate):(o=sw(ye({type:"aggregate",groupby:se(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=vh(i,n),s=a=ee(n.add(o))),r=n.keyRef(i.groupby,!0))):s=ee(n.add(Gi(null,[{}]))),s||(s=vh(e,n)),{key:r,pulse:s,parent:a}}function vh(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:ee(t.getData(e.data).output)}function ga(e,t,n,i,r){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=r,this.index={}}ga.fromEntries=function(e,t){const n=t.length,i=t[n-1],r=t[n-2];let o=t[0],s=null,a=1;for(o&&o.type==="load"&&(o=t[1]),e.add(t[0]);a<n;++a)t[a].params.pulse=ee(t[a-1]),e.add(t[a]),t[a].type==="aggregate"&&(s=t[a]);return new ga(e,o,r,i,s)};function yN(e){return Ke(e)?e:null}function y_(e,t,n){const i=p0(n.op,n.field);let r;if(t.ops){for(let o=0,s=t.as.length;o<s;++o)if(t.as[o]===i)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((r=n.op.signal)?e.signalRef(r):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(i))}function Gl(e,t,n,i,r,o,s){const a=t[n]||(t[n]={}),u=Yte(o);let l=yN(r),c,f;if(l!=null&&(e=t.scope,l=l+(u?"|"+u:""),c=a[l]),!c){const d=o?{field:Nb,pulse:t.countsRef(e,r,o)}:{field:e.fieldRef(r),pulse:ee(t.output)};u&&(d.sort=e.sortRef(o)),f=e.add(h0(i,void 0,d)),s&&(t.index[r]=f),c=ee(f),l!=null&&(a[l]=c)}return c}ga.prototype={countsRef(e,t,n){const i=this,r=i.counts||(i.counts={}),o=yN(t);let s,a,u;return o!=null&&(e=i.scope,s=r[o]),s?n&&n.field&&y_(e,s.agg.params,n):(u={groupby:e.fieldRef(t,"key"),pulse:ee(i.output)},n&&n.field&&y_(e,u,n),a=e.add(tN(u)),s=e.add(Gi({pulse:ee(a)})),s={agg:a,ref:ee(s)},o!=null&&(r[o]=s)),s.ref},tuplesRef(){return ee(this.values)},extentRef(e,t){return Gl(e,this,"extent","extent",t,!1)},domainRef(e,t){return Gl(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return Gl(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return Gl(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return Gl(e,this,"indata","tupleindex",t,!0,!0)}};function $ie(e,t,n){const i=e.from.facet,r=i.name,o=vh(i,t);let s;i.name||L("Facet must have a name: "+re(i)),i.data||L("Facet must reference a data set: "+re(i)),i.field?s=t.add(rN({field:t.fieldRef(i.field),pulse:o})):i.groupby?s=t.add(lne({key:t.keyRef(i.groupby),group:ee(t.proxy(n.parent)),pulse:o})):L("Facet must specify groupby or field: "+re(i));const a=t.fork(),u=a.add(Gi()),l=a.add(Ra({pulse:ee(u)}));a.addData(r,new ga(a,u,u,l)),a.addSignal("parent",null),s.params.subflow={$subflow:a.parse(e).toRuntime()}}function _ie(e,t,n){const i=t.add(rN({pulse:n.pulse})),r=t.fork();r.add(Ra()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(e).toRuntime()}}function bN(e,t,n){const i=e.remove,r=e.insert,o=e.toggle,s=e.modify,a=e.values,u=t.add(Rp()),l="if("+e.trigger+',modify("'+n+'",'+[r,i,o,s,a].map(f=>f??"null").join(",")+"),0)",c=wr(l,t);u.update=c.$expr,u.params=c.$params}function x0(e,t){const n=gN(e),i=e.type===m0,r=e.from&&e.from.facet,o=e.overlap;let s=e.layout||n===KE||n===XE,a,u,l,c,f,d,h;const p=n===YE||s||r,g=Cie(e.from,i,t);u=t.add(ane({key:g.key||(e.key?of(e.key):void 0),pulse:g.pulse,clean:!i}));const m=ee(u);u=l=t.add(Gi({pulse:m})),u=t.add(pne({markdef:yie(e),interactive:bie(e.interactive,t),clip:mie(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:ee(u)}));const y=ee(u);u=c=t.add(iN(ZR(e.encode,e.type,n,e.style,t,{mod:!1,pulse:y}))),u.params.parent=t.encode(),e.transform&&e.transform.forEach(A=>{const E=sw(A,t),S=E.metadata;(S.generates||S.changes)&&L("Mark transforms should not generate new data."),S.nomod||(c.params.mod=!0),E.params.pulse=ee(u),t.add(u=E)}),e.sort&&(u=t.add(Ane({sort:t.compareRef(e.sort),pulse:ee(u)})));const b=ee(u);(r||s)&&(s=t.add(sN({layout:t.objectProperty(e.layout),legends:t.legends,mark:y,pulse:b})),d=ee(s));const x=t.add(nN({mark:y,pulse:d||b}));h=ee(x),i&&(p&&(a=t.operators,a.pop(),s&&a.pop()),t.pushState(b,d||h,m),r?$ie(e,t,g):p?_ie(e,t,g):t.parse(e),t.popState(),p&&(s&&a.push(s),a.push(x))),o&&(h=Fie(o,h,t));const v=t.add(oN({pulse:h})),w=t.add(Ra({pulse:ee(v)},void 0,t.parent()));e.name!=null&&(f=e.name,t.addData(f,new ga(t,l,v,w)),e.on&&e.on.forEach(A=>{(A.insert||A.remove||A.toggle)&&L("Marks only support modify triggers."),bN(A,t,f)}))}function Fie(e,t,n){const i=e.method,r=e.bound,o=e.separation,s={separation:vt(o)?n.signalRef(o.signal):o,method:vt(i)?n.signalRef(i.signal):i,pulse:t};if(e.order&&(s.sort=n.compareRef({field:e.order})),r){const a=r.tolerance;s.boundTolerance=vt(a)?n.signalRef(a.signal):+a,s.boundScale=n.scaleRef(r.scale),s.boundOrient=r.orient}return ee(n.add(yne(s)))}function kie(e,t){const n=t.config.legend,i=e.encode||{},r=qn(e,n),o=i.legend||{},s=o.name||void 0,a=o.interactive,u=o.style,l={};let c=0,f,d,h;tw.forEach(x=>e[x]?(l[x]=e[x],c=c||e[x]):0),c||L("Missing valid scale for legend.");const p=Die(e,t.scaleType(c)),g={title:e.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&r.isVertical()},m=ee(t.add(Gi(null,[g]))),y={enter:{x:{value:0},y:{value:0}}},b=ee(t.add(dne(d={type:p,scale:t.scaleRef(c),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===xh?(h=[nie(e,c,n,i.gradient),f_(e,n,i.labels,b)],d.count=d.count||t.signalRef(`max(2,2*floor((${Qs(r.gradientLength())})/100))`)):p===zb?h=[iie(e,c,n,i.gradient,b),f_(e,n,i.labels,b)]:(f=aie(e,n),h=[sie(e,n,i,b,Qs(f.columns))],d.size=Oie(e,t,h[0].marks)),h=[af({role:Fte,from:m,encode:y,marks:h,layout:f,interactive:a})],g.title&&h.push(gie(e,n,i.title,m)),x0(af({role:$te,from:m,encode:pl(Mie(r,e,n),o,Hf),marks:h,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:s,interactive:a,style:u}),t)}function Die(e,t){let n=e.type||c_;return!e.type&&Tie(e)===1&&(e.fill||e.stroke)&&(n=u2(t)?xh:My(t)?zb:c_),n!==xh?n:My(t)?zb:xh}function Tie(e){return tw.reduce((t,n)=>t+(e[n]?1:0),0)}function Mie(e,t,n){const i={enter:{},update:{}};return Wt(i,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),i}function Oie(e,t,n){const i=Qs(b_("size",e,n)),r=Qs(b_("strokeWidth",e,n)),o=Qs(Rie(n[1].encode,t,Gf));return wr(`max(ceil(sqrt(${i})+${r}),${o})`,t)}function b_(e,t,n){return t[e]?`scale("${t[e]}",datum)`:hN(e,n[0].encode)}function Rie(e,t,n){return hN("fontSize",e)||eie("fontSize",t,n)}const Nie=`item.orient==="${gl}"?-90:item.orient==="${ml}"?90:0`;function Lie(e,t){e=Ke(e)?{text:e}:e;const n=qn(e,t.config.title),i=e.encode||{},r=i.group||{},o=r.name||void 0,s=r.interactive,a=r.style,u=[],l={},c=ee(t.add(Gi(null,[l])));return u.push(zie(e,n,Pie(e),c)),e.subtitle&&u.push(Bie(e,n,i.subtitle,c)),x0(af({role:Mte,from:c,encode:Iie(n,r),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:o,interactive:s,style:a}),t)}function Pie(e){const t=e.encode;return t&&t.title||ye({name:e.name,interactive:e.interactive,style:e.style},t)}function Iie(e,t){const n={enter:{},update:{}};return Wt(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:iw},angle:{signal:Nie},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),pl(n,t,Hf)}function zie(e,t,n,i){const r={value:0},o=e.text,s={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return Wt(s,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),ii({type:Na,role:Ote,style:Gne,from:i,encode:s},n)}function Bie(e,t,n,i){const r={value:0},o=e.subtitle,s={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return Wt(s,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),ii({type:Na,role:Rte,style:Hne,from:i,encode:s},n)}function Uie(e,t){const n=[];e.transform&&e.transform.forEach(i=>{n.push(sw(i,t))}),e.on&&e.on.forEach(i=>{bN(i,t,e.name)}),t.addDataPipeline(e.name,jie(e,t,n))}function jie(e,t,n){const i=[];let r=null,o=!1,s=!1,a,u,l,c,f;for(e.values?vt(e.values)||yh(e.format)?(i.push(x_(t,e)),i.push(r=$s())):i.push(r=$s({$ingest:e.values,$format:e.format})):e.url?yh(e.url)||yh(e.format)?(i.push(x_(t,e)),i.push(r=$s())):i.push(r=$s({$request:e.url,$format:e.format})):e.source&&(r=a=se(e.source).map(d=>ee(t.getData(d).output)),i.push(null)),u=0,l=n.length;u<l;++u)c=n[u],f=c.metadata,!r&&!f.source&&i.push(r=$s()),i.push(c),f.generates&&(s=!0),f.modifies&&!s&&(o=!0),f.source?r=c:f.changes&&(r=null);return a&&(l=a.length-1,i[0]=Ene({derive:o,pulse:l?a:a[0]}),(o||l)&&i.splice(1,0,$s())),r||i.push($s()),i.push(Ra({})),i}function $s(e){const t=Gi({},e);return t.metadata={source:!0},t}function x_(e,t){return hne({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}const xN=e=>e===ns||e===Hi,v0=(e,t,n)=>vt(e)?Hie(e.signal,t,n):e===gl||e===Hi?t:n,_t=(e,t,n)=>vt(e)?Wie(e.signal,t,n):xN(e)?t:n,Ri=(e,t,n)=>vt(e)?Gie(e.signal,t,n):xN(e)?n:t,vN=(e,t,n)=>vt(e)?Vie(e.signal,t,n):e===Hi?{value:t}:{value:n},qie=(e,t,n)=>vt(e)?Yie(e.signal,t,n):e===ml?{value:t}:{value:n},Wie=(e,t,n)=>EN(`${e} === '${Hi}' || ${e} === '${ns}'`,t,n),Gie=(e,t,n)=>EN(`${e} !== '${Hi}' && ${e} !== '${ns}'`,t,n),Hie=(e,t,n)=>aw(`${e} === '${gl}' || ${e} === '${Hi}'`,t,n),Vie=(e,t,n)=>aw(`${e} === '${Hi}'`,t,n),Yie=(e,t,n)=>aw(`${e} === '${ml}'`,t,n),EN=(e,t,n)=>(t=t!=null?$t(t):t,n=n!=null?$t(n):n,v_(t)&&v_(n)?(t=t?t.signal||re(t.value):null,n=n?n.signal||re(n.value):null,{signal:`${e} ? (${t}) : (${n})`}):[ye({test:e},t)].concat(n||[])),v_=e=>e==null||Object.keys(e).length===1,aw=(e,t,n)=>({signal:`${e} ? (${hu(t)}) : (${hu(n)})`}),Xie=(e,t,n,i,r)=>({signal:(i!=null?`${e} === '${gl}' ? (${hu(i)}) : `:"")+(n!=null?`${e} === '${ns}' ? (${hu(n)}) : `:"")+(r!=null?`${e} === '${ml}' ? (${hu(r)}) : `:"")+(t!=null?`${e} === '${Hi}' ? (${hu(t)}) : `:"")+"(null)"}),hu=e=>vt(e)?e.signal:e==null?null:re(e),Kie=(e,t)=>t===0?0:vt(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},xu=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function nu(e,t,n,i){let r;if(t&&le(t,e))return t[e];if(le(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=e[5].toLowerCase()+e.slice(6)}return i[ew][r]}else if(e.startsWith("label")){switch(e){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=e[5].toLowerCase()+e.slice(6)}return i[Gf][r]}return null}function E_(e){const t={};for(const n of e)if(n)for(const i in n)t[i]=1;return Object.keys(t)}function Jie(e,t){var n=t.config,i=n.style,r=n.axis,o=t.scaleType(e.scale)==="band"&&n.axisBand,s=e.orient,a,u,l;if(vt(s)){const f=E_([n.axisX,n.axisY]),d=E_([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);a={};for(l of f)a[l]=_t(s,nu(l,n.axisX,r,i),nu(l,n.axisY,r,i));u={};for(l of d)u[l]=Xie(s.signal,nu(l,n.axisTop,r,i),nu(l,n.axisBottom,r,i),nu(l,n.axisLeft,r,i),nu(l,n.axisRight,r,i))}else a=s===Hi||s===ns?n.axisX:n.axisY,u=n["axis"+s[0].toUpperCase()+s.slice(1)];return a||u||o?ye({},r,a,u,o):r}function Qie(e,t,n,i){const r=qn(e,t),o=e.orient;let s,a;const u={enter:s={opacity:Ce},update:a={opacity:pi},exit:{opacity:Ce}};Wt(u,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const l=w_(e,0),c=w_(e,1);return s.x=a.x=_t(o,l,Ce),s.x2=a.x2=_t(o,c),s.y=a.y=Ri(o,l,Ce),s.y2=a.y2=Ri(o,c),ii({type:nw,role:Ete,from:i,encode:u},n)}function w_(e,t){return{scale:e.scale,range:t}}function Zie(e,t,n,i,r){const o=qn(e,t),s=e.orient,a=e.gridScale,u=v0(s,1,-1),l=ere(e.offset,u);let c,f,d;const h={enter:c={opacity:Ce},update:d={opacity:pi},exit:f={opacity:Ce}};Wt(h,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const p={scale:e.scale,field:hi,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},g=_t(s,{signal:"height"},{signal:"width"}),m=a?{scale:a,range:0,mult:u,offset:l}:{value:0,offset:l},y=a?{scale:a,range:1,mult:u,offset:l}:ye(g,{mult:u,offset:l});return c.x=d.x=_t(s,p,m),c.y=d.y=Ri(s,p,m),c.x2=d.x2=Ri(s,y),c.y2=d.y2=_t(s,y),f.x=_t(s,p),f.y=Ri(s,p),ii({type:nw,role:wte,key:hi,from:i,encode:h},n)}function ere(e,t){if(t!==1)if(!me(e))e=vt(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);else{let n=e=ye({},e);for(;n.mult!=null;)if(me(n.mult))n=n.mult=ye({},n.mult);else return n.mult=vt(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n.mult=t}return e}function tre(e,t,n,i,r,o){const s=qn(e,t),a=e.orient,u=v0(a,-1,1);let l,c,f;const d={enter:l={opacity:Ce},update:f={opacity:pi},exit:c={opacity:Ce}};Wt(d,{stroke:s("tickColor"),strokeCap:s("tickCap"),strokeDash:s("tickDash"),strokeDashOffset:s("tickDashOffset"),strokeOpacity:s("tickOpacity"),strokeWidth:s("tickWidth")});const h=$t(r);h.mult=u;const p={scale:e.scale,field:hi,band:o.band,extra:o.extra,offset:o.offset,round:s("tickRound")};return f.y=l.y=_t(a,Ce,p),f.y2=l.y2=_t(a,h),c.x=_t(a,p),f.x=l.x=Ri(a,Ce,p),f.x2=l.x2=Ri(a,h),c.y=Ri(a,p),ii({type:nw,role:Ste,key:hi,from:i,encode:d},n)}function E1(e,t,n,i,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+r+")"}}function nre(e,t,n,i,r,o){const s=qn(e,t),a=e.orient,u=e.scale,l=v0(a,-1,1),c=Qs(s("labelFlush")),f=Qs(s("labelFlushOffset")),d=s("labelAlign"),h=s("labelBaseline");let p=c===0||!!c,g;const m=$t(r);m.mult=l,m.offset=$t(s("labelPadding")||0),m.offset.mult=l;const y={scale:u,field:hi,band:.5,offset:pN(o.offset,s("labelOffset"))},b=_t(a,p?E1(u,c,'"left"','"right"','"center"'):{value:"center"},qie(a,"left","right")),x=_t(a,vN(a,"bottom","top"),p?E1(u,c,'"top"','"bottom"','"middle"'):{value:"middle"}),v=E1(u,c,`-(${f})`,f,0);p=p&&f;const w={opacity:Ce,x:_t(a,y,m),y:Ri(a,y,m)},A={enter:w,update:g={opacity:pi,text:{field:ZE},x:w.x,y:w.y,align:b,baseline:x},exit:{opacity:Ce,x:w.x,y:w.y}};Wt(A,{dx:!d&&p?_t(a,v):null,dy:!h&&p?Ri(a,v):null}),Wt(A,{angle:s("labelAngle"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontWeight:s("labelFontWeight"),fontStyle:s("labelFontStyle"),limit:s("labelLimit"),lineHeight:s("labelLineHeight")},{align:d,baseline:h});const E=s("labelBound");let S=s("labelOverlap");return S=S||E?{separation:s("labelSeparation"),method:S,order:"datum.index",bound:E?{scale:u,orient:a,tolerance:E}:null}:void 0,g.align!==b&&(g.align=xu(g.align,b)),g.baseline!==x&&(g.baseline=xu(g.baseline,x)),ii({type:Na,role:Ate,style:Gf,key:hi,from:i,encode:A,overlap:S},n)}function ire(e,t,n,i){const r=qn(e,t),o=e.orient,s=v0(o,-1,1);let a,u;const l={enter:a={opacity:Ce,anchor:$t(r("titleAnchor",null)),align:{signal:iw}},update:u=ye({},a,{opacity:pi,text:$t(e.title)}),exit:{opacity:Ce}},c={signal:`lerp(range("${e.scale}"), ${y0(0,1,.5)})`};return u.x=_t(o,c),u.y=Ri(o,c),a.angle=_t(o,Ce,Kie(s,90)),a.baseline=_t(o,vN(o,ns,Hi),{value:ns}),u.angle=a.angle,u.baseline=a.baseline,Wt(l,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),rre(r,o,l,n),l.update.align=xu(l.update.align,a.align),l.update.angle=xu(l.update.angle,a.angle),l.update.baseline=xu(l.update.baseline,a.baseline),ii({type:Na,role:Cte,style:ew,from:i,encode:l},n)}function rre(e,t,n,i){const r=(a,u)=>a!=null?(n.update[u]=xu($t(a),n.update[u]),!1):!au(u,i),o=r(e("titleX"),"x"),s=r(e("titleY"),"y");n.enter.auto=s===o?$t(s):_t(t,$t(s),$t(o))}function ore(e,t){const n=Jie(e,t),i=e.encode||{},r=i.axis||{},o=r.name||void 0,s=r.interactive,a=r.style,u=qn(e,n),l=tie(u),c={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:e.title!=null},f=ee(t.add(Gi({},[c]))),d=ee(t.add(sne({scale:t.scaleRef(e.scale),extra:t.property(l.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let p;return c.grid&&h.push(Zie(e,n,i.grid,d,l)),c.ticks&&(p=u("tickSize"),h.push(tre(e,n,i.ticks,d,p,l))),c.labels&&(p=c.ticks?p:0,h.push(nre(e,n,i.labels,d,p,l))),c.domain&&h.push(Qie(e,n,i.domain,f)),c.title&&h.push(ire(e,n,i.title,f)),x0(af({role:vte,from:f,encode:pl(sre(u,e),r,Hf),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:o,interactive:s,style:a}),t)}function sre(e,t){const n={enter:{},update:{}};return Wt(n,{orient:e("orient"),offset:e("offset")||0,position:_i(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function wN(e,t,n){const i=se(e.signals),r=se(e.scales);return n||i.forEach(o=>eN(o,t)),se(e.projections).forEach(o=>Ine(o,t)),r.forEach(o=>$ne(o,t)),se(e.data).forEach(o=>Uie(o,t)),r.forEach(o=>_ne(o,t)),(n||i).forEach(o=>one(o,t)),se(e.axes).forEach(o=>ore(o,t)),se(e.marks).forEach(o=>x0(o,t)),se(e.legends).forEach(o=>kie(o,t)),e.title&&Lie(e.title,t),t.parseLambdas(),t}const are=e=>pl({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function ure(e,t){const n=t.config,i=ee(t.root=t.add(Rp())),r=lre(e,n);r.forEach(l=>eN(l,t)),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;const o=t.add(Gi()),s=t.add(iN(ZR(are(e.encode),m0,XE,e.style,t,{pulse:ee(o)}))),a=t.add(sN({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:i,pulse:ee(s)}));t.operators.pop(),t.pushState(ee(s),ee(a),null),wN(e,t,r),t.operators.push(a);let u=t.add(nN({mark:i,pulse:ee(a)}));return u=t.add(oN({pulse:ee(u)})),u=t.add(Ra({pulse:ee(u)})),t.addData("root",new ga(t,o,o,u)),t}function Hl(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function lre(e,t){const n=s=>_i(e[s],t[s]),i=[Hl("background",n("background")),Hl("autosize",yte(n("autosize"))),Hl("padding",xte(n("padding"))),Hl("width",n("width")||0),Hl("height",n("height")||0)],r=i.reduce((s,a)=>(s[a.name]=a,s),{}),o={};return se(e.signals).forEach(s=>{le(r,s.name)?s=ye(r[s.name],s):i.push(s),o[s.name]=s}),se(t.signals).forEach(s=>{!le(o,s.name)&&!le(r,s.name)&&i.push(s)}),i}function AN(e,t){this.config=e||{},this.options=t||{},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 A_(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}AN.prototype=A_.prototype={parse(e){return wN(e,this)},fork(){return new A_(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(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach(t=>{t.$ref=e.id}),e.refs=null),e},proxy(e){const t=e instanceof Rb?ee(e):e;return this.add(vne({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;this.root&&(this.root.root=!0);for(e in this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(i,r,o){let s,a;i&&(s=i.data||(i.data={}),a=s[r]||(s[r]=[]),a.push(o))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const i in t.index)n(t.index[i],e,"index:"+i)}return this},pushState(e,t,n){this._encode.push(ee(this.add(Ra({pulse:e})))),this._parent.push(t),this._lookup.push(n?ee(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return $e(this._parent)},encode(){return $e(this._encode)},lookup(){return $e(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ke(e))return of(e,t);e.signal||L("Unsupported field reference: "+re(e));const n=e.signal;let i=this.field[n];if(!i){const r={name:this.signalRef(n)};t&&(r.as=t),this.field[n]=i=ee(this.add(cne(r)))}return i},compareRef(e){let t=!1;const n=o=>vt(o)?(t=!0,this.signalRef(o.signal)):Xte(o)?(t=!0,this.exprRef(o.expr)):o,i=se(e.field).map(n),r=se(e.order).map(n);return t?ee(this.add(l_({fields:i,orders:r}))):a_(i,r)},keyRef(e,t){let n=!1;const i=o=>vt(o)?(n=!0,ee(r[o.signal])):o,r=this.signals;return e=se(e).map(i),n?ee(this.add(fne({fields:e,flat:t}))):Gte(e,t)},sortRef(e){if(!e)return e;const t=p0(e.op,e.field),n=e.order||Hte;return n.signal?ee(this.add(l_({fields:t,orders:this.signalRef(n.signal)}))):a_(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},hasOwnSignal(e){return le(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&L("Duplicate signal name: "+re(e));const n=t instanceof Rb?t:this.add(Rp(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||L("Unrecognized signal name: "+re(e)),this.signals[e]},signalRef(e){return this.signals[e]?ee(this.signals[e]):(le(this.lambdas,e)||(this.lambdas[e]=this.add(Rp(null))),ee(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){const i=e[t],r=wr(i,this),o=this.lambdas[i];o.params=r.$params,o.update=r.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return!e||!me(e)?e:this.signalRef(e.signal||uw(e))},exprRef(e,t){const n={expr:wr(e,this)};return t&&(n.expr.$name=t),ee(this.add(une(n)))},addBinding(e,t){this.bindings||L("Nested signals do not support binding: "+re(e)),this.bindings.push(ye({signal:e},t))},addScaleProj(e,t){le(this.scales,e)&&L("Duplicate scale or projection name: "+re(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,wne(t))},addProjection(e,t){this.addScaleProj(e,xne(t))},getScale(e){return this.scales[e]||L("Unrecognized scale name: "+re(e)),this.scales[e]},scaleRef(e){return ee(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return le(this.data,e)&&L("Duplicate data set name: "+re(e)),this.data[e]=t},getData(e){return this.data[e]||L("Undefined data set name: "+re(e)),this.data[e]},addDataPipeline(e,t){return le(this.data,e)&&L("Duplicate data set name: "+re(e)),this.addData(e,ga.fromEntries(this,t))}};function uw(e){return(Z(e)?cre:fre)(e)}function cre(e){const t=e.length;let n="[";for(let i=0;i<t;++i){const r=e[i];n+=(i>0?",":"")+(me(r)?r.signal||uw(r):re(r))}return n+"]"}function fre(e){let t="{",n=0,i,r;for(i in e)r=e[i],t+=(++n>1?",":"")+re(i)+":"+(me(r)?r.signal||uw(r):re(r));return t+"}"}function dre(){const e="sans-serif",i="#4c78a8",r="#000",o="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:i},area:{fill:i},image:null,line:{stroke:i,strokeWidth:2},path:{stroke:i},rect:{fill:i},rule:{stroke:r},shape:{stroke:i},symbol:{fill:i,size:64},text:{fill:r,font:e,fontSize:11},trail:{fill:i,size:2},style:{"guide-label":{fill:r,font:e,fontSize:10},"guide-title":{fill:r,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:r,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:r,font:e,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:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,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:s,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:o,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 hre(e,t,n){return me(e)||L("Input Vega specification must be an object."),t=AP(dre(),t,e.config),ure(e,new AN(t,n)).toRuntime()}var pre="5.33.0";Px(Du,UB,BG,bH,iY,WY,yK,KX,xK,qK,ZK,sJ);const gre=Object.freeze(Object.defineProperty({__proto__:null,Bounds:gt,CanvasHandler:Lf,CanvasRenderer:Jh,DATE:In,DAY:Zt,DAYOFYEAR:vr,Dataflow:mu,Debug:Uk,Error:Ik,EventStream:Cg,Gradient:pM,GroupItem:Wg,HOURS:ei,Handler:O2,HybridHandler:o5,HybridRenderer:qy,Info:Bk,Item:qg,MILLISECONDS:Ii,MINUTES:ti,MONTH:nn,Marks:ni,MultiPulse:Kx,None:Pk,Operator:Ge,Parameters:Sg,Pulse:Ho,QUARTER:Pn,RenderType:zo,Renderer:Nf,ResourceLoader:EM,SECONDS:gi,SVGHandler:HM,SVGRenderer:z2,SVGStringRenderer:r5,Scenegraph:IM,TIME_UNITS:Bx,Transform:M,View:UR,WEEK:bt,Warn:zk,YEAR:jt,accessor:yo,accessorFields:Rk,accessorName:b9,array:Bc,ascending:Lx,bandwidthNRD:ev,bin:x3,bootstrapCI:v3,boundClip:g5,boundContext:Tf,boundItem:Iy,boundMark:RM,boundStroke:bo,changeset:Ta,clampRange:I9,codegenExpression:pR,compare:B9,constant:W9,cumulativeLogNormal:sv,cumulativeNormal:_g,cumulativeUniform:cv,dayofyear:$D,debounce:G9,defaultLocale:Gx,definition:m3,densityLogNormal:ov,densityNormal:tv,densityUniform:lv,domChild:yt,domClear:ai,domCreate:Po,domFind:M2,dotbin:E3,error:Jd,expressionFunction:ht,extend:Px,extent:H9,extentIndex:V9,falsy:S9,fastmap:X9,field:Mx,flush:K9,font:Xg,fontFamily:Rf,fontSize:_r,format:Qd,formatLocale:Th,formats:Yx,hasOwnProperty:Hr,id:E9,identity:Ox,inferType:o3,inferTypes:s3,ingest:Oe,inherits:J9,inrange:Q9,interpolate:l2,interpolateColors:Ug,interpolateRange:eM,intersect:f5,intersectBoxLine:lu,intersectPath:y2,intersectPoint:b2,intersectRule:AM,isArray:og,isBoolean:Hk,isDate:Vk,isFunction:lg,isIterable:Z9,isNumber:Yk,isObject:oa,isRegExp:eP,isString:to,isTuple:wg,key:tP,lerp:nP,lineHeight:Zo,loader:vg,locale:i3,logger:$9,lruCache:rP,markup:I2,merge:oP,mergeConfig:Rx,multiLineOffset:k2,one:A9,pad:sP,panLinear:F9,panLog:k9,panPow:D9,panSymlog:T9,parse:hre,parseExpression:fR,parseSelector:ds,path:Dx,pathCurves:p2,pathEqual:m5,pathParse:Nu,pathRectangle:yM,pathRender:Vc,pathSymbols:mM,pathTrail:bM,peek:ol,point:Jg,projection:rE,quantileLogNormal:av,quantileNormal:Fg,quantileUniform:fv,quantiles:Qx,quantizeInterpolator:tM,quarter:L9,quartiles:Zx,get random(){return mi},randomInteger:Gz,randomKDE:iv,randomLCG:Wz,randomLogNormal:A3,randomMixture:S3,randomNormal:nv,randomUniform:C3,read:l3,regressionConstant:dv,regressionExp:_3,regressionLinear:hv,regressionLoess:D3,regressionLog:$3,regressionPoly:k3,regressionPow:F3,regressionQuad:pv,renderModule:Qg,repeat:ec,resetDefaultLocale:U7,resetSVGClipId:vM,resetSVGDefIds:rG,responseType:u3,runtimeContext:FR,sampleCurve:Dg,sampleLogNormal:rv,sampleNormal:$g,sampleUniform:uv,scale:Me,sceneEqual:B2,sceneFromJSON:LM,scenePickVisit:qh,sceneToJSON:NM,sceneVisit:zi,sceneZOrder:x2,scheme:c2,serializeXML:e5,setHybridRendererOptions:eG,setRandom:jz,span:aP,splitAccessPath:Tx,stringValue:gu,textMetrics:Jn,timeBin:qD,timeFloor:OD,timeFormatLocale:qc,timeInterval:ul,timeOffset:LD,timeSequence:zD,timeUnitSpecifier:CD,timeUnits:Ux,toBoolean:uP,toDate:cP,toNumber:Nx,toSet:dP,toString:fP,transform:y3,transforms:Du,truncate:hP,truthy:Lk,tupleid:te,typeParsers:_y,utcFloor:RD,utcInterval:ll,utcOffset:PD,utcSequence:BD,utcdayofyear:kD,utcquarter:P9,utcweek:DD,version:pre,visitArray:pP,week:_D,writeConfig:sg,zero:w9,zoomLinear:M9,zoomLog:O9,zoomPow:R9,zoomSymlog:N9},Symbol.toStringTag,{value:"Module"})),mre=/("(?:[^\\"]|\\.)*")|[:,]/g;function w1(e,t={}){const n=JSON.stringify([1],void 0,t.indent===void 0?2:t.indent).slice(2,-3),i=n===""?1/0:t.maxLength===void 0?80:t.maxLength;let{replacer:r}=t;return function o(s,a,u){s&&typeof s.toJSON=="function"&&(s=s.toJSON());const l=JSON.stringify(s,r);if(l===void 0)return l;const c=i-a.length-u;if(l.length<=c){const f=l.replace(mre,(d,h)=>h||`${d} `);if(f.length<=c)return f}if(r!=null&&(s=JSON.parse(l),r=void 0),typeof s=="object"&&s!==null){const f=a+n,d=[];let h=0,p,g;if(Array.isArray(s)){p="[",g="]";const{length:m}=s;for(;h<m;h++)d.push(o(s[h],f,h===m-1?0:1)||"null")}else{p="{",g="}";const m=Object.keys(s),{length:y}=m;for(;h<y;h++){const b=m[h],x=`${JSON.stringify(b)}: `,v=o(s[b],f,x.length+(h===y-1?0:1));v!==void 0&&d.push(x+v)}}if(d.length>0)return[p,n+d.join(`,
12
+ : v !== v && u === u ? ${i} : `}var VZ={operator:(e,t)=>jl(e,["_"],t.code),parameter:(e,t)=>jl(e,["datum","_"],t.code),event:(e,t)=>jl(e,["event"],t.code),handler:(e,t)=>{const n=`var datum=event.item&&event.item.datum;return ${t.code};`;return jl(e,["_","event"],n)},encode:(e,t)=>{const{marktype:n,channels:i}=t;let r="var o=item,datum=o.datum,m=0,$;";for(const o in i){const s="o["+re(o)+"]";r+=`$=${i[o].code};if(${s}!==$)${s}=$,m=1;`}return r+=qZ(i,n),r+="return m;",jl(e,["item","_"],r)},codegen:{get(e){const t=`[${e.map(re).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const i=(o,s)=>{const a=t[s];let u,l;return o.path?(u=`a${o.path}`,l=`b${o.path}`):((n=n||{})["f"+s]=o,u=`this.f${s}(a)`,l=`this.f${s}(b)`),HZ(u,l,-a,a)},r=Function("a","b","var u, v; return "+e.map(i).join("")+"0;");return n?r.bind(n):r}}};function YZ(e){const t=this;WZ(e.type)||!e.type?t.operator(e,e.update?t.operatorExpression(e.update):null):t.transform(e,e.type)}function XZ(e){const t=this;if(e.params){const n=t.get(e.id);n||L("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}}function KZ(e,t){t=t||{};const n=this;for(const i in e){const r=e[i];t[i]=Z(r)?r.map(o=>V$(o,n,t)):V$(r,n,t)}return t}function V$(e,t,n){if(!e||!me(e))return e;for(let i=0,r=Y$.length,o;i<r;++i)if(o=Y$[i],le(e,o.key))return o.parse(e,t,n);return e}var Y$=[{key:"$ref",parse:JZ},{key:"$key",parse:ZZ},{key:"$expr",parse:QZ},{key:"$field",parse:eee},{key:"$encode",parse:nee},{key:"$compare",parse:tee},{key:"$context",parse:iee},{key:"$subflow",parse:ree},{key:"$tupleid",parse:oee}];function JZ(e,t){return t.get(e.$ref)||L("Operator not defined: "+e.$ref)}function QZ(e,t,n){e.$params&&t.parseParameters(e.$params,n);const i="e:"+e.$expr.code;return t.fn[i]||(t.fn[i]=ri(t.parameterExpression(e.$expr),e.$fields))}function ZZ(e,t){const n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=aD(e.$key,e.$flat,t.expr.codegen))}function eee(e,t){if(!e.$field)return null;const n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=Li(e.$field,e.$name,t.expr.codegen))}function tee(e,t){const n="c:"+e.$compare+"_"+e.$order,i=se(e.$compare).map(r=>r&&r.$tupleid?te:r);return t.fn[n]||(t.fn[n]=rD(i,e.$order,t.expr.codegen))}function nee(e,t){const n=e.$encode,i={};for(const r in n){const o=n[r];i[r]=ri(t.encodeExpression(o.$expr),o.$fields),i[r].output=o.$output}return i}function iee(e,t){return t}function ree(e,t){const n=e.$subflow;return function(i,r,o){const s=t.fork().parse(n),a=s.get(n.operators[0].id),u=s.signals.parent;return u&&u.set(o),a.detachSubflow=()=>t.detach(s),a}}function oee(){return te}function see(e){var t=this,n=e.filter!=null?t.eventExpression(e.filter):void 0,i=e.stream!=null?t.get(e.stream):void 0,r;e.source?i=t.events(e.source,e.type,n):e.merge&&(r=e.merge.map(o=>t.get(o)),i=r[0].merge.apply(r[0],r.slice(1))),e.between&&(r=e.between.map(o=>t.get(o)),i=i.between(r[0],r[1])),e.filter&&(i=i.filter(n)),e.throttle!=null&&(i=i.throttle(+e.throttle)),e.debounce!=null&&(i=i.debounce(+e.debounce)),i==null&&L("Invalid stream definition: "+JSON.stringify(e)),e.consume&&i.consume(!0),t.stream(e,i)}function aee(e){var t=this,n=me(n=e.source)?n.$ref:n,i=t.get(n),r=null,o=e.update,s=void 0;i||L("Source not defined: "+e.source),r=e.target&&e.target.$expr?t.eventExpression(e.target.$expr):t.get(e.target),o&&o.$expr&&(o.$params&&(s=t.parseParameters(o.$params)),o=t.handlerExpression(o.$expr)),t.update(e,i,r,o,s)}const uee={skip:!0};function lee(e){var t=this,n={};if(e.signals){var i=n.signals={};Object.keys(t.signals).forEach(o=>{const s=t.signals[o];e.signals(o,s)&&(i[o]=s.value)})}if(e.data){var r=n.data={};Object.keys(t.data).forEach(o=>{const s=t.data[o];e.data(o,s)&&(r[o]=s.input.value)})}return t.subcontext&&e.recurse!==!1&&(n.subcontext=t.subcontext.map(o=>o.getState(e))),n}function cee(e){var t=this,n=t.dataflow,i=e.data,r=e.signals;Object.keys(r||{}).forEach(o=>{n.update(t.signals[o],r[o],uee)}),Object.keys(i||{}).forEach(o=>{n.pulse(t.data[o].input,n.changeset().remove(Pi).insert(i[o]))}),(e.subcontext||[]).forEach((o,s)=>{const a=t.subcontext[s];a&&a.setState(o)})}function _R(e,t,n,i){return new FR(e,t,n,i)}function FR(e,t,n,i){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=i||VZ,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function X$(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}FR.prototype=X$.prototype={fork(){const e=new X$(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter(n=>n!==e);const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,i=n.dataflow,r=e.value;if(n.set(e.id,t),GZ(e.type)&&r&&(r.$ingest?i.ingest(t,r.$ingest,r.$format):r.$request?i.preload(t,r.$request,r.$format):i.pulse(t,i.changeset().insert(r))),e.root&&(n.root=t),e.parent){let o=n.get(e.parent.$ref);o?(i.connect(o,[t]),t.targets().add(o)):(n.unresolved=n.unresolved||[]).push(()=>{o=n.get(e.parent.$ref),i.connect(o,[t]),t.targets().add(o)})}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const o in e.data){const s=n.data[o]||(n.data[o]={});e.data[o].forEach(a=>s[a]=t)}},resolve(){return(this.unresolved||[]).forEach(e=>e()),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[WE(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,i,r){this.dataflow.on(t,n,i,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:UZ,parseOperator:YZ,parseOperatorParameters:XZ,parseParameters:KZ,parseStream:see,parseUpdate:aee,getState:lee,setState:cee};function fee(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),kR(t,e.description()))}function kR(e,t){e&&(t==null?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}function dee(e){e.add(null,t=>(e._background=t.bg,e._resize=1,t.bg),{bg:e._signals.background})}const y1="default";function hee(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:y1,item:null}));e.on(e.events("view","pointermove"),t,(n,i)=>{const r=t.value,o=r?Ke(r)?r:r.user:y1,s=i.item&&i.item.cursor||null;return r&&o===r.user&&s==r.item?r:{user:o,item:s}}),e.add(null,function(n){let i=n.cursor,r=this.value;return Ke(i)||(r=i.item,i=i.user),Mb(e,i&&i!==y1?i:r||i),r},{cursor:t})}function Mb(e,t){const n=e.globalCursor()?typeof document<"u"&&document.body:e.container();if(n)return t==null?n.style.removeProperty("cursor"):n.style.cursor=t}function Dp(e,t){var n=e._runtime.data;return le(n,t)||L("Unrecognized data set: "+t),n[t]}function pee(e,t){return arguments.length<2?Dp(this,e).values.value:c0.call(this,e,Ta().remove(Pi).insert(t))}function c0(e,t){d3(t)||L("Second argument to changes must be a changeset.");const n=Dp(this,e);return n.modified=!0,this.pulse(n.input,t)}function gee(e,t){return c0.call(this,e,Ta().insert(t))}function mee(e,t){return c0.call(this,e,Ta().remove(t))}function DR(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function TR(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function f0(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function yee(e){var t=f0(e),n=DR(e),i=TR(e);e._renderer.background(e.background()),e._renderer.resize(n,i,t),e._handler.origin(t),e._resizeListeners.forEach(r=>{try{r(n,i)}catch(o){e.error(o)}})}function bee(e,t,n){var i=e._renderer,r=i&&i.canvas(),o,s,a;return r&&(a=f0(e),s=t.changedTouches?t.changedTouches[0]:t,o=Jg(s,r),o[0]-=a[0],o[1]-=a[1]),t.dataflow=e,t.item=n,t.vega=xee(e,n,o),t}function xee(e,t,n){const i=t?t.mark.marktype==="group"?t:t.mark.group:null;function r(s){var a=i,u;if(s){for(u=t;u;u=u.mark.group)if(u.mark.name===s){a=u;break}}return a&&a.mark&&a.mark.interactive?a:{}}function o(s){if(!s)return n;Ke(s)&&(s=r(s));const a=n.slice();for(;s;)a[0]-=s.x||0,a[1]-=s.y||0,s=s.mark&&s.mark.group;return a}return{view:wn(e),item:wn(t||{}),group:r,xy:o,x:s=>o(s)[0],y:s=>o(s)[1]}}const K$="view",vee="timer",Eee="window",wee={trap:!1};function Aee(e){const t=ye({defaults:{}},e),n=(i,r)=>{r.forEach(o=>{Z(i[o])&&(i[o]=yr(i[o]))})};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}function MR(e,t,n,i){e._eventListeners.push({type:n,sources:se(t),handler:i})}function See(e,t){var n=e._eventConfig.defaults,i=n.prevent,r=n.allow;return i===!1||r===!0?!1:i===!0||r===!1?!0:i?i[t]:r?!r[t]:e.preventDefault()}function Pd(e,t,n){const i=e._eventConfig&&e._eventConfig[t];return i===!1||me(i)&&!i[n]?(e.warn(`Blocked ${t} ${n} event listener.`),!1):!0}function Cee(e,t,n){var i=this,r=new Cg(n),o=function(l,c){i.runAsync(null,()=>{e===K$&&See(i,t)&&l.preventDefault(),r.receive(bee(i,l,c))})},s;if(e===vee)Pd(i,"timer",t)&&i.timer(o,t);else if(e===K$)Pd(i,"view",t)&&i.addEventListener(t,o,wee);else if(e===Eee?Pd(i,"window",t)&&typeof window<"u"&&(s=[window]):typeof document<"u"&&Pd(i,"selector",t)&&(s=Array.from(document.querySelectorAll(e))),!s)i.warn("Can not resolve event source: "+e);else{for(var a=0,u=s.length;a<u;++a)s[a].addEventListener(t,o);MR(i,s,t,o)}return r}function J$(e){return e.item}function Q$(e){return e.item.mark.source}function Z$(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function $ee(e,t){return e=[e||"hover"],t=[t||"update",e[0]],this.on(this.events("view","pointerover",J$),Q$,Z$(e)),this.on(this.events("view","pointerout",J$),Q$,Z$(t)),this}function _ee(){var e=this._tooltip,t=this._timers,n=this._handler.handlers(),i=this._eventListeners,r,o,s,a,u;for(r=t.length;--r>=0;)t[r].stop();for(r=i.length;--r>=0;)for(s=i[r],o=s.sources.length;--o>=0;)s.sources[o].removeEventListener(s.type,s.handler);for(e&&e.call(this,this._handler,null,null,null),r=n.length;--r>=0;)u=n[r].type,a=n[r].handler,this._handler.off(u,a);return this}function Qn(e,t,n){const i=document.createElement(e);for(const r in t)i.setAttribute(r,t[r]);return n!=null&&(i.textContent=n),i}const Fee="vega-bind",kee="vega-bind-name",Dee="vega-bind-radio";function Tee(e,t,n){if(!t)return;const i=n.param;let r=n.state;return r||(r=n.state={elements:null,active:!1,set:null,update:s=>{s!=e.signal(i.signal)&&e.runAsync(null,()=>{r.source=!0,e.signal(i.signal,s)})}},i.debounce&&(r.update=oD(i.debounce,r.update))),(i.input==null&&i.element?Mee:Ree)(r,t,i,e),r.active||(e.on(e._signals[i.signal],null,()=>{r.source?r.source=!1:r.set(e.signal(i.signal))}),r.active=!0),r}function Mee(e,t,n,i){const r=n.event||"input",o=()=>e.update(t.value);i.signal(n.signal,t.value),t.addEventListener(r,o),MR(i,t,r,o),e.set=s=>{t.value=s,t.dispatchEvent(Oee(r))}}function Oee(e){return typeof Event<"u"?new Event(e):{type:e}}function Ree(e,t,n,i){const r=i.signal(n.signal),o=Qn("div",{class:Fee}),s=n.input==="radio"?o:o.appendChild(Qn("label"));s.appendChild(Qn("span",{class:kee},n.name||n.signal)),t.appendChild(o);let a=Nee;switch(n.input){case"checkbox":a=Lee;break;case"select":a=Pee;break;case"radio":a=Iee;break;case"range":a=zee;break}a(e,s,n,r)}function Nee(e,t,n,i){const r=Qn("input");for(const o in n)o!=="signal"&&o!=="element"&&r.setAttribute(o==="input"?"type":o,n[o]);r.setAttribute("name",n.signal),r.value=i,t.appendChild(r),r.addEventListener("input",()=>e.update(r.value)),e.elements=[r],e.set=o=>r.value=o}function Lee(e,t,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=Qn("input",r);t.appendChild(o),o.addEventListener("change",()=>e.update(o.checked)),e.elements=[o],e.set=s=>o.checked=!!s||null}function Pee(e,t,n,i){const r=Qn("select",{name:n.signal}),o=n.labels||[];n.options.forEach((s,a)=>{const u={value:s};Tp(s,i)&&(u.selected=!0),r.appendChild(Qn("option",u,(o[a]||s)+""))}),t.appendChild(r),r.addEventListener("change",()=>{e.update(n.options[r.selectedIndex])}),e.elements=[r],e.set=s=>{for(let a=0,u=n.options.length;a<u;++a)if(Tp(n.options[a],s)){r.selectedIndex=a;return}}}function Iee(e,t,n,i){const r=Qn("span",{class:Dee}),o=n.labels||[];t.appendChild(r),e.elements=n.options.map((s,a)=>{const u={type:"radio",name:n.signal,value:s};Tp(s,i)&&(u.checked=!0);const l=Qn("input",u);l.addEventListener("change",()=>e.update(s));const c=Qn("label",{},(o[a]||s)+"");return c.prepend(l),r.appendChild(c),l}),e.set=s=>{const a=e.elements,u=a.length;for(let l=0;l<u;++l)Tp(a[l].value,s)&&(a[l].checked=!0)}}function zee(e,t,n,i){i=i!==void 0?i:(+n.max+ +n.min)/2;const r=n.max!=null?n.max:Math.max(100,+i)||100,o=n.min||Math.min(0,r,+i)||0,s=n.step||ra(o,r,100),a=Qn("input",{type:"range",name:n.signal,min:o,max:r,step:s});a.value=i;const u=Qn("span",{},+i);t.appendChild(a),t.appendChild(u);const l=()=>{u.textContent=a.value,e.update(+a.value)};a.addEventListener("input",l),a.addEventListener("change",l),e.elements=[a],e.set=c=>{a.value=c,u.textContent=c}}function Tp(e,t){return e===t||e+""==t+""}function OR(e,t,n,i,r,o){return t=t||new i(e.loader()),t.initialize(n,DR(e),TR(e),f0(e),r,o).background(e.background())}function GE(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function Bee(e,t,n,i){const r=new i(e.loader(),GE(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,f0(e),e);return t&&t.handlers().forEach(o=>{r.on(o.type,o.handler)}),r}function Uee(e,t){const n=this,i=n._renderType,r=n._eventConfig.bind,o=Qg(i);e=n._el=e?b1(n,e,!0):null,fee(n),o||n.error("Unrecognized renderer type: "+i);const s=o.handler||Lf,a=e?o.renderer:o.headless;return n._renderer=a?OR(n,n._renderer,e,a):null,n._handler=Bee(n,n._handler,e,s),n._redraw=!0,e&&r!=="none"&&(t=t?n._elBind=b1(n,t,!0):e.appendChild(Qn("form",{class:"vega-bindings"})),n._bind.forEach(u=>{u.param.element&&r!=="container"&&(u.element=b1(n,u.param.element,!!u.param.input))}),n._bind.forEach(u=>{Tee(n,u.element||t,u)})),n}function b1(e,t,n){if(typeof t=="string")if(typeof document<"u"){if(t=document.querySelector(t),!t)return e.error("Signal bind element not found: "+t),null}else return e.error("DOM document instance not found."),null;if(t&&n)try{t.textContent=""}catch(i){t=null,e.error(i)}return t}const ql=e=>+e||0,jee=e=>({top:e,bottom:e,left:e,right:e});function e_(e){return me(e)?{top:ql(e.top),bottom:ql(e.bottom),left:ql(e.left),right:ql(e.right)}:jee(ql(e))}async function HE(e,t,n,i){const r=Qg(t),o=r&&r.headless;return o||L("Unrecognized renderer type: "+t),await e.runAsync(),OR(e,null,null,o,n,i).renderAsync(e._scenegraph.root)}async function qee(e,t){e!==zo.Canvas&&e!==zo.SVG&&e!==zo.PNG&&L("Unrecognized image type: "+e);const n=await HE(this,e,t);return e===zo.SVG?Wee(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function Wee(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}async function Gee(e,t){return(await HE(this,zo.Canvas,e,t)).canvas()}async function Hee(e){return(await HE(this,zo.SVG,e)).svg()}function Vee(e,t,n){return _R(e,Du,rf,n).parse(t)}function Yee(e){var t=this._runtime.scales;return le(t,e)||L("Unrecognized scale or projection: "+e),t[e].value}var RR="width",NR="height",VE="padding",t_={skip:!0};function LR(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===VE?i.left+i.right:0)}function PR(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===VE?i.top+i.bottom:0)}function Xee(e){var t=e._signals,n=t[RR],i=t[NR],r=t[VE];function o(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,a=>{e._width=a.size,e._viewWidth=LR(e,a.size),o()},{size:n}),e._resizeHeight=e.add(null,a=>{e._height=a.size,e._viewHeight=PR(e,a.size),o()},{size:i});const s=e.add(null,o,{pad:r});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=i.rank+1,s.rank=r.rank+1}function Kee(e,t,n,i,r,o){this.runAfter(s=>{let a=0;s._autosize=0,s.width()!==n&&(a=1,s.signal(RR,n,t_),s._resizeWidth.skip(!0)),s.height()!==i&&(a=1,s.signal(NR,i,t_),s._resizeHeight.skip(!0)),s._viewWidth!==e&&(s._resize=1,s._viewWidth=e),s._viewHeight!==t&&(s._resize=1,s._viewHeight=t),(s._origin[0]!==r[0]||s._origin[1]!==r[1])&&(s._resize=1,s._origin=r),a&&s.run("enter"),o&&s.runAfter(u=>u.resize())},!1,1)}function Jee(e){return this._runtime.getState(e||{data:Qee,signals:Zee,recurse:!0})}function Qee(e,t){return t.modified&&Z(t.input.value)&&!e.startsWith("_:vega:_")}function Zee(e,t){return!(e==="parent"||t instanceof Du.proxy)}function ete(e){return this.runAsync(null,t=>{t._trigger=!1,t._runtime.setState(e)},t=>{t._trigger=!0}),this}function tte(e,t){function n(i){e({timestamp:Date.now(),elapsed:i})}this._timers.push(CY(n,t))}function nte(e,t,n,i){const r=e.element();r&&r.setAttribute("title",ite(i))}function ite(e){return e==null?"":Z(e)?IR(e):me(e)&&!Ys(e)?rte(e):e+""}function rte(e){return Object.keys(e).map(t=>{const n=e[t];return t+": "+(Z(n)?IR(n):zR(n))}).join(`
13
+ `)}function IR(e){return"["+e.map(zR).join(", ")+"]"}function zR(e){return Z(e)?"[…]":me(e)&&!Ys(e)?"{…}":e}function ote(){if(this.renderer()==="canvas"&&this._renderer._canvas){let e=null;const t=()=>{e?.();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}function BR(e,t){const n=this;if(t=t||{},mu.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){const o=ye({},e.locale,t.locale);n.locale(n3(o.number,o.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||zo.Canvas,n._scenegraph=new PM;const i=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||nte,n._redraw=!0,n._handler=new Lf().scene(i),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=Aee(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const r=Vee(n,e,t.expr);n._runtime=r,n._signals=r.signals,n._bind=(e.bindings||[]).map(o=>({state:null,param:ye({},o)})),r.root&&r.root.set(i),i.source=r.data.root.input,n.pulse(r.data.root.input,n.changeset().insert(i.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=LR(n,n._width),n._viewHeight=PR(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,Xee(n),dee(n),hee(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function Id(e,t){return le(e._signals,t)?e._signals[t]:L("Unrecognized signal name: "+re(t))}function UR(e,t){const n=(e._targets||[]).filter(i=>i._update&&i._update.handler===t);return n.length?n[0]:null}function n_(e,t,n,i){let r=UR(n,i);return r||(r=GE(e,()=>i(t,n.value)),r.handler=i,e.on(n,null,r)),e}function i_(e,t,n){const i=UR(t,n);return i&&t._targets.remove(i),e}G(BR,mu,{async evaluate(e,t,n){if(await mu.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,yee(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(i){this.error(i)}return n&&Zd(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=e!=null?e+"":null;return t!==this._desc&&kR(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const i=Id(this,e);return arguments.length===1?i.value:this.update(i,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",e_(e)):e_(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(Qg(e)||L("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(mu.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Id(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:Kee,addEventListener(e,t,n){let i=t;return n&&n.trap===!1||(i=GE(this,t),i.raw=t),this._handler.on(e,i),this},removeEventListener(e,t){for(var n=this._handler.handlers(e),i=n.length,r,o;--i>=0;)if(o=n[i].type,r=n[i].handler,e===o&&(t===r||t===r.raw)){this._handler.off(o,r);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return n_(this,e,Id(this,e),t)},removeSignalListener(e,t){return i_(this,Id(this,e),t)},addDataListener(e,t){return n_(this,e,Dp(this,e).values,t)},removeDataListener(e,t){return i_(this,Dp(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=Mb(this,null);this._globalCursor=!!e,t&&Mb(this,t)}return this}else return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:tte,events:Cee,finalize:_ee,hover:$ee,data:pee,change:c0,insert:gee,remove:mee,scale:Yee,initialize:Uee,toImageURL:qee,toCanvas:Gee,toSVG:Hee,getState:Jee,setState:ete,_watchPixelRatio:ote});const ste="view",Mp="[",Op="]",jR="{",qR="}",ate=":",WR=",",ute="@",lte=">",cte=/[[\]{}]/,fte={"*":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 GR,HR;function ds(e,t,n){return GR=t||ste,HR=n||fte,VR(e.trim()).map(Ob)}function dte(e){return HR[e]}function Rc(e,t,n,i,r){const o=e.length;let s=0,a;for(;t<o;++t){if(a=e[t],!s&&a===n)return t;r&&r.indexOf(a)>=0?--s:i&&i.indexOf(a)>=0&&++s}return t}function VR(e){const t=[],n=e.length;let i=0,r=0;for(;r<n;)r=Rc(e,r,WR,Mp+jR,Op+qR),t.push(e.substring(i,r).trim()),i=++r;if(t.length===0)throw"Empty event selector: "+e;return t}function Ob(e){return e[0]==="["?hte(e):pte(e)}function hte(e){const t=e.length;let n=1,i;if(n=Rc(e,n,Op,Mp,Op),n===t)throw"Empty between selector: "+e;if(i=VR(e.substring(1,n)),i.length!==2)throw"Between selector must have two elements: "+e;if(e=e.slice(n+1).trim(),e[0]!==lte)throw"Expected '>' after between selector: "+e;i=i.map(Ob);const r=Ob(e.slice(1).trim());return r.between?{between:i,stream:r}:(r.between=i,r)}function pte(e){const t={source:GR},n=[];let i=[0,0],r=0,o=0,s=e.length,a=0,u,l;if(e[s-1]===qR){if(a=e.lastIndexOf(jR),a>=0){try{i=gte(e.substring(a+1,s-1))}catch{throw"Invalid throttle specification: "+e}e=e.slice(0,a).trim(),s=e.length}else throw"Unmatched right brace: "+e;a=0}if(!s)throw e;if(e[0]===ute&&(r=++a),u=Rc(e,a,ate),u<s&&(n.push(e.substring(o,u).trim()),o=a=++u),a=Rc(e,a,Mp),a===s)n.push(e.substring(o,s).trim());else if(n.push(e.substring(o,a).trim()),l=[],o=++a,o===s)throw"Unmatched left bracket: "+e;for(;a<s;){if(a=Rc(e,a,Op),a===s)throw"Unmatched left bracket: "+e;if(l.push(e.substring(o,a).trim()),a<s-1&&e[++a]!==Mp)throw"Expected left bracket: "+e;o=++a}if(!(s=n.length)||cte.test(n[s-1]))throw"Invalid event selector: "+e;return s>1?(t.type=n[1],r?t.markname=n[0].slice(1):dte(n[0])?t.marktype=n[0]:t.source=n[0]):t.type=n[0],t.type.slice(-1)==="!"&&(t.consume=!0,t.type=t.type.slice(0,-1)),l!=null&&(t.filter=l),i[0]&&(t.throttle=i[0]),i[1]&&(t.debounce=i[1]),t}function gte(e){const t=e.split(WR);if(!e.length||t.length>2)throw e;return t.map(n=>{const i=+n;if(i!==i)throw e;return i})}function mte(e){return me(e)?e:{type:e||"pad"}}const Wl=e=>+e||0,yte=e=>({top:e,bottom:e,left:e,right:e});function bte(e){return me(e)?e.signal?e:{top:Wl(e.top),bottom:Wl(e.bottom),left:Wl(e.left),right:Wl(e.right)}:yte(Wl(e))}const $t=e=>me(e)&&!Z(e)?ye({},e):{value:e};function r_(e,t,n,i){return n!=null?(me(n)&&!Z(n)||Z(n)&&n.length&&me(n[0])?e.update[t]=n:e[i||"enter"][t]={value:n},1):0}function Wt(e,t,n){for(const i in t)r_(e,i,t[i]);for(const i in n)r_(e,i,n[i],"update")}function pl(e,t,n){for(const i in t)n&&le(n,i)||(e[i]=ye(e[i]||{},t[i]));return e}function au(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const YE="mark",XE="frame",KE="scope",xte="axis",vte="axis-domain",Ete="axis-grid",wte="axis-label",Ate="axis-tick",Ste="axis-title",Cte="legend",$te="legend-band",_te="legend-entry",Fte="legend-gradient",YR="legend-label",kte="legend-symbol",Dte="legend-title",Tte="title",Mte="title-text",Ote="title-subtitle";function Rte(e,t,n,i,r){const o={},s={};let a,u,l,c;u="lineBreak",t==="text"&&r[u]!=null&&!au(u,e)&&x1(o,u,r[u]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===XE?r.group:n===YE?ye({},r.mark,r[t]):null;for(u in c)l=au(u,e)||(u==="fill"||u==="stroke")&&(au("fill",e)||au("stroke",e)),l||x1(o,u,c[u]);se(i).forEach(f=>{const d=r.style&&r.style[f];for(const h in d)au(h,e)||x1(o,h,d[h])}),e=ye({},e);for(u in o)c=o[u],c.signal?(a=a||{})[u]=c:s[u]=c;return e.enter=ye(s,e.enter),a&&(e.update=ye(a,e.update)),e}function x1(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const XR=e=>Ke(e)?re(e):e.signal?`(${e.signal})`:KR(e);function d0(e){if(e.gradient!=null)return Lte(e);let t=e.signal?`(${e.signal})`:e.color?Nte(e.color):e.field!=null?KR(e.field):e.value!==void 0?re(e.value):void 0;return e.scale!=null&&(t=Pte(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${mh(e.exponent)})`),e.mult!=null&&(t+=`*${mh(e.mult)}`),e.offset!=null&&(t+=`+${mh(e.offset)}`),e.round&&(t=`round(${t})`),t}const zd=(e,t,n,i)=>`(${e}(${[t,n,i].map(d0).join(",")})+'')`;function Nte(e){return e.c?zd("hcl",e.h,e.c,e.l):e.h||e.s?zd("hsl",e.h,e.s,e.l):e.l||e.a?zd("lab",e.l,e.a,e.b):e.r||e.g||e.b?zd("rgb",e.r,e.g,e.b):null}function Lte(e){const t=[e.start,e.stop,e.count].map(n=>n==null?null:re(n));for(;t.length&&$e(t)==null;)t.pop();return t.unshift(XR(e.gradient)),`gradient(${t.join(",")})`}function mh(e){return me(e)?"("+d0(e)+")":e}function KR(e){return JR(me(e)?e:{datum:e})}function JR(e){let t,n,i;if(e.signal)t="datum",i=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(i=e.parent,t+=".datum"):i=e.group}else e.datum?(t="datum",i=e.datum):L("Invalid field reference: "+re(e));return e.signal||(i=Ke(i)?Ix(i).map(re).join("]["):JR(i)),t+"["+i+"]"}function Pte(e,t){const n=XR(e.scale);return e.range!=null?t=`lerp(_range(${n}), ${+e.range})`:(t!==void 0&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(+e.band==1?"":"*"+mh(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),t==null&&(t="0")),t}function Ite(e){let t="";return e.forEach(n=>{const i=d0(n);t+=n.test?`(${n.test})?${i}:`:i}),$e(t)===":"&&(t+="null"),t}function QR(e,t,n,i,r,o){const s={};o=o||{},o.encoders={$encode:s},e=Rte(e,t,n,i,r.config);for(const a in e)s[a]=zte(e[a],t,o,r);return o}function zte(e,t,n,i){const r={},o={};for(const s in e)e[s]!=null&&(r[s]=Ute(Bte(e[s]),i,n,o));return{$expr:{marktype:t,channels:r},$fields:Object.keys(o),$output:Object.keys(e)}}function Bte(e){return Z(e)?Ite(e):d0(e)}function Ute(e,t,n,i){const r=wr(e,t);return r.$fields.forEach(o=>i[o]=1),ye(n,r.$params),r.$expr}const jte="outer",qte=["value","update","init","react","bind"];function o_(e,t){L(e+' for "outer" push: '+re(t))}function ZR(e,t){const n=e.name;if(e.push===jte)t.signals[n]||o_("No prior signal definition",n),qte.forEach(i=>{e[i]!==void 0&&o_("Invalid property ",i)});else{const i=t.addSignal(n,e.value);e.react===!1&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function Rb(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function h0(e,t,n,i){return new Rb(e,t,n,i)}function Rp(e,t){return h0("operator",e,t)}function ee(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function of(e,t){return t?{$field:e,$name:t}:{$field:e}}const Nb=of("key");function s_(e,t){return{$compare:e,$order:t}}function Wte(e,t){const n={$key:e};return t&&(n.$flat=!0),n}const Gte="ascending",Hte="descending";function Vte(e){return me(e)?(e.order===Hte?"-":"+")+p0(e.op,e.field):""}function p0(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const JE="scope",Lb="view";function vt(e){return e&&e.signal}function Yte(e){return e&&e.expr}function yh(e){if(vt(e))return!0;if(me(e)){for(const t in e)if(yh(e[t]))return!0}return!1}function _i(e,t){return e??t}function Qs(e){return e&&e.signal||e}const a_="timer";function sf(e,t){return(e.merge?Kte:e.stream?Jte:e.type?Qte:L("Invalid stream specification: "+re(e)))(e,t)}function Xte(e){return e===JE?Lb:e||Lb}function Kte(e,t){const n=e.merge.map(r=>sf(r,t)),i=QE({merge:n},e,t);return t.addStream(i).id}function Jte(e,t){const n=sf(e.stream,t),i=QE({stream:n},e,t);return t.addStream(i).id}function Qte(e,t){let n;e.type===a_?(n=t.event(a_,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(Xte(e.source),e.type);const i=QE({stream:n},e,t);return Object.keys(i).length===1?n:t.addStream(i).id}function QE(e,t,n){let i=t.between;return i&&(i.length!==2&&L('Stream "between" parameter must have 2 entries: '+re(t)),e.between=[sf(i[0],n),sf(i[1],n)]),i=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&i.push(Zte(t.marktype,t.markname,t.markrole)),t.source===JE&&i.push("inScope(event.item)"),i.length&&(e.filter=wr("("+i.join(")&&(")+")",n).$expr),(i=t.throttle)!=null&&(e.throttle=+i),(i=t.debounce)!=null&&(e.debounce=+i),t.consume&&(e.consume=!0),e}function Zte(e,t,n){const i="event.item";return i+(e&&e!=="*"?"&&"+i+".mark.marktype==='"+e+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(t?"&&"+i+".mark.name==='"+t+"'":"")}const ene={code:"_.$value",ast:{type:"Identifier",value:"value"}};function tne(e,t,n){const i=e.encode,r={target:n};let o=e.events,s=e.update,a=[];o||L("Signal update missing events specification."),Ke(o)&&(o=ds(o,t.isSubscope()?JE:Lb)),o=se(o).filter(u=>u.signal||u.scale?(a.push(u),0):1),a.length>1&&(a=[ine(a)]),o.length&&a.push(o.length>1?{merge:o}:o[0]),i!=null&&(s&&L("Signal encode and update are mutually exclusive."),s="encode(item(),"+re(i)+")"),r.update=Ke(s)?wr(s,t):s.expr!=null?wr(s.expr,t):s.value!=null?s.value:s.signal!=null?{$expr:ene,$params:{$value:t.signalRef(s.signal)}}:L("Invalid signal update specification."),e.force&&(r.options={force:!0}),a.forEach(u=>t.addUpdate(ye(nne(u,t),r)))}function nne(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):sf(e,t)}}function ine(e){return{signal:"["+e.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}function rne(e,t){const n=t.getSignal(e.name);let i=e.update;e.init&&(i?L("Signals can not include both init and update expressions."):(i=e.init,n.initonly=!0)),i&&(i=wr(i,t),n.update=i.$expr,n.params=i.$params),e.on&&e.on.forEach(r=>tne(r,t,n.id))}const qe=e=>(t,n,i)=>h0(e,n,t||void 0,i),eN=qe("aggregate"),one=qe("axisticks"),tN=qe("bound"),Gi=qe("collect"),u_=qe("compare"),sne=qe("datajoin"),nN=qe("encode"),ane=qe("expression"),une=qe("facet"),lne=qe("field"),cne=qe("key"),fne=qe("legendentries"),dne=qe("load"),hne=qe("mark"),pne=qe("multiextent"),gne=qe("multivalues"),mne=qe("overlap"),yne=qe("params"),iN=qe("prefacet"),bne=qe("projection"),xne=qe("proxy"),vne=qe("relay"),rN=qe("render"),Ene=qe("scale"),Ra=qe("sieve"),wne=qe("sortitems"),oN=qe("viewlayout"),Ane=qe("values");let Sne=0;const sN={min:"min",max:"max",count:"sum"};function Cne(e,t){const n=e.type||"linear";XT(n)||L("Unrecognized scale type: "+re(n)),t.addScale(e.name,{type:n,domain:void 0})}function $ne(e,t){const n=t.getScale(e.name).params;let i;n.domain=aN(e.domain,e,t),e.range!=null&&(n.range=lN(e,t,n)),e.interpolate!=null&&Lne(e.interpolate,n),e.nice!=null&&(n.nice=Nne(e.nice,t)),e.bins!=null&&(n.bins=Rne(e.bins,t));for(i in e)le(n,i)||i==="name"||(n[i]=fi(e[i],t))}function fi(e,t){return me(e)?e.signal?t.signalRef(e.signal):L("Unsupported object: "+re(e)):e}function bh(e,t){return e.signal?t.signalRef(e.signal):e.map(n=>fi(n,t))}function g0(e){L("Can not find data set: "+re(e))}function aN(e,t,n){if(!e){(t.domainMin!=null||t.domainMax!=null)&&L("No scale domain defined for domainMin/domainMax to override.");return}return e.signal?n.signalRef(e.signal):(Z(e)?_ne:e.fields?kne:Fne)(e,t,n)}function _ne(e,t,n){return e.map(i=>fi(i,n))}function Fne(e,t,n){const i=n.getData(e.data);return i||g0(e.data),Ru(t.type)?i.valuesRef(n,e.field,uN(e.sort,!1)):QT(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function kne(e,t,n){const i=e.data,r=e.fields.reduce((o,s)=>(s=Ke(s)?{data:i,field:s}:Z(s)||s.signal?Dne(s,n):s,o.push(s),o),[]);return(Ru(t.type)?Tne:QT(t.type)?Mne:One)(e,n,r)}function Dne(e,t){const n="_:vega:_"+Sne++,i=Gi({});if(Z(e))i.value={$ingest:e};else if(e.signal){const r="setdata("+re(n)+","+e.signal+")";i.params.input=t.signalRef(r)}return t.addDataPipeline(n,[i,Ra({})]),{data:n,field:"data"}}function Tne(e,t,n){const i=uN(e.sort,!0);let r,o;const s=n.map(l=>{const c=t.getData(l.data);return c||g0(l.data),c.countsRef(t,l.field,i)}),a={groupby:Nb,pulse:s};i&&(r=i.op||"count",o=i.field?p0(r,i.field):"count",a.ops=[sN[r]],a.fields=[t.fieldRef(o)],a.as=[o]),r=t.add(eN(a));const u=t.add(Gi({pulse:ee(r)}));return o=t.add(Ane({field:Nb,sort:t.sortRef(i),pulse:ee(u)})),ee(o)}function uN(e,t){return e&&(!e.field&&!e.op?me(e)?e.field="key":e={field:"key"}:!e.field&&e.op!=="count"?L("No field provided for sort aggregate op: "+e.op):t&&e.field&&e.op&&!sN[e.op]&&L("Multiple domain scales can not be sorted using "+e.op)),e}function Mne(e,t,n){const i=n.map(r=>{const o=t.getData(r.data);return o||g0(r.data),o.domainRef(t,r.field)});return ee(t.add(gne({values:i})))}function One(e,t,n){const i=n.map(r=>{const o=t.getData(r.data);return o||g0(r.data),o.extentRef(t,r.field)});return ee(t.add(pne({extents:i})))}function Rne(e,t){return e.signal||Z(e)?bh(e,t):t.objectProperty(e)}function Nne(e,t){return e.signal?t.signalRef(e.signal):me(e)?{interval:fi(e.interval),step:fi(e.step)}:fi(e)}function Lne(e,t){t.interpolate=fi(e.type||e),e.gamma!=null&&(t.interpolateGamma=fi(e.gamma))}function lN(e,t,n){const i=t.config.range;let r=e.range;if(r.signal)return t.signalRef(r.signal);if(Ke(r)){if(i&&le(i,r))return e=ye({},e,{range:i[r]}),lN(e,t,n);r==="width"?r=[0,{signal:"width"}]:r==="height"?r=Ru(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:L("Unrecognized scale range value: "+re(r))}else if(r.scheme){n.scheme=Z(r.scheme)?bh(r.scheme,t):fi(r.scheme,t),r.extent&&(n.schemeExtent=bh(r.extent,t)),r.count&&(n.schemeCount=fi(r.count,t));return}else if(r.step){n.rangeStep=fi(r.step,t);return}else{if(Ru(e.type)&&!Z(r))return aN(r,e,t);Z(r)||L("Unsupported range type: "+re(r))}return r.map(o=>(Z(o)?bh:fi)(o,t))}function Pne(e,t){const n=t.config.projection||{},i={};for(const r in e)r!=="name"&&(i[r]=Pb(e[r],r,t));for(const r in n)i[r]==null&&(i[r]=Pb(n[r],r,t));t.addProjection(e.name,i)}function Pb(e,t,n){return Z(e)?e.map(i=>Pb(i,t,n)):me(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:L("Unsupported parameter object: "+re(e)):e}const Hi="top",gl="left",ml="right",ns="bottom",cN="center",Ine="vertical",zne="start",Bne="middle",Une="end",Ib="index",ZE="label",jne="offset",ju="perc",qne="perc2",hi="value",Gf="guide-label",ew="guide-title",Wne="group-title",Gne="group-subtitle",l_="symbol",xh="gradient",zb="discrete",Bb="size",Hne="shape",Vne="fill",Yne="stroke",Xne="strokeWidth",Kne="strokeDash",Jne="opacity",tw=[Bb,Hne,Vne,Yne,Xne,Kne,Jne],Hf={name:1,style:1,interactive:1},Ce={value:0},pi={value:1},m0="group",fN="rect",nw="rule",Qne="symbol",Na="text";function af(e){return e.type=m0,e.interactive=e.interactive||!1,e}function qn(e,t){const n=(i,r)=>_i(e[i],_i(t[i],r));return n.isVertical=i=>Ine===_i(e.direction,t.direction||(i?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>_i(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>_i(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>_i(e.columns,_i(t.columns,+n.isVertical(!0))),n}function dN(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function Zne(e,t,n){const i=t.config.style[n];return i&&i[e]}function y0(e,t,n){return`item.anchor === '${zne}' ? ${e} : item.anchor === '${Une}' ? ${t} : ${n}`}const iw=y0(re(gl),re(ml),re(cN));function eie(e){const t=e("tickBand");let n=e("tickOffset"),i,r;return t?t.signal?(i={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},r={signal:`(${t.signal}) === 'extent'`},me(n)||(n={signal:`(${t.signal}) === 'extent' ? 0 : ${n}`})):t==="extent"?(i=1,r=!0,n=0):(i=.5,r=!1):(i=e("bandPosition"),r=e("tickExtra")),{extra:r,band:i,offset:n}}function hN(e,t){return t?e?me(e)?Object.assign({},e,{offset:hN(e.offset,t)}):{value:e,offset:t}:t:e}function ii(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=pl(e.encode,t,Hf)):e.interactive=!1,e}function tie(e,t,n,i){const r=qn(e,n),o=r.isVertical(),s=r.gradientThickness(),a=r.gradientLength();let u,l,c,f,d;o?(l=[0,1],c=[0,0],f=s,d=a):(l=[0,0],c=[1,0],f=a,d=s);const h={enter:u={opacity:Ce,x:Ce,y:Ce,width:$t(f),height:$t(d)},update:ye({},u,{opacity:pi,fill:{gradient:t,start:l,stop:c}}),exit:{opacity:Ce}};return Wt(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),ii({type:fN,role:Fte,encode:h},i)}function nie(e,t,n,i,r){const o=qn(e,n),s=o.isVertical(),a=o.gradientThickness(),u=o.gradientLength();let l,c,f,d,h="";s?(l="y",f="y2",c="x",d="width",h="1-"):(l="x",f="x2",c="y",d="height");const p={opacity:Ce,fill:{scale:t,field:hi}};p[l]={signal:h+"datum."+ju,mult:u},p[c]=Ce,p[f]={signal:h+"datum."+qne,mult:u},p[d]=$t(a);const g={enter:p,update:ye({},p,{opacity:pi}),exit:{opacity:Ce}};return Wt(g,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),ii({type:fN,role:$te,key:hi,from:r,encode:g},i)}const iie=`datum.${ju}<=0?"${gl}":datum.${ju}>=1?"${ml}":"${cN}"`,rie=`datum.${ju}<=0?"${ns}":datum.${ju}>=1?"${Hi}":"${Bne}"`;function c_(e,t,n,i){const r=qn(e,t),o=r.isVertical(),s=$t(r.gradientThickness()),a=r.gradientLength();let u=r("labelOverlap"),l,c,f,d,h="";const p={enter:l={opacity:Ce},update:c={opacity:pi,text:{field:ZE}},exit:{opacity:Ce}};return Wt(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:_i(e.labelLimit,t.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=c.baseline={signal:rie},f="y",d="x",h="1-"):(l.align=c.align={signal:iie},l.baseline={value:"top"},f="x",d="y"),l[f]=c[f]={signal:h+"datum."+ju,mult:a},l[d]=c[d]=s,s.offset=_i(e.labelOffset,t.gradientLabelOffset)||0,u=u?{separation:r("labelSeparation"),method:u,order:"datum."+Ib}:void 0,ii({type:Na,role:YR,style:Gf,key:hi,from:i,encode:p,overlap:u},n)}function oie(e,t,n,i,r){const o=qn(e,t),s=n.entries,a=!!(s&&s.interactive),u=s?s.name:void 0,l=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.${jne} : datum.${Bb}`,h=l?$t(l):{field:Bb},p=`datum.${Ib}`,g=`max(1, ${r})`;let m,y,b,x,v;h.mult=.5,m={enter:y={opacity:Ce,x:{signal:d,mult:.5,offset:c},y:h},update:b={opacity:pi,x:y.x,y:y.y},exit:{opacity:Ce}};let w=null,A=null;e.fill||(w=t.symbolBaseFillColor,A=t.symbolBaseStrokeColor),Wt(m,{fill:o("symbolFillColor",w),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",A),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),tw.forEach(_=>{e[_]&&(b[_]=y[_]={scale:e[_],field:hi})});const E=ii({type:Qne,role:kte,key:hi,from:f,clip:l?!0:void 0,encode:m},n.symbols),S=$t(c);S.offset=o("labelOffset"),m={enter:y={opacity:Ce,x:{signal:d,offset:S},y:h},update:b={opacity:pi,text:{field:ZE},x:y.x,y:y.y},exit:{opacity:Ce}},Wt(m,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const C=ii({type:Na,role:YR,style:Gf,key:hi,from:f,encode:m},n.labels);return m={enter:{noBound:{value:!l},width:Ce,height:l?$t(l):Ce,opacity:Ce},exit:{opacity:Ce},update:b={opacity:pi,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(x=`ceil(item.mark.items.length / ${g})`,b.row.signal=`${p}%${x}`,b.column.signal=`floor(${p} / ${x})`,v={field:["row",p]}):(b.row.signal=`floor(${p} / ${g})`,b.column.signal=`${p} % ${g}`,v={field:p}),b.column.signal=`(${r})?${b.column.signal}:${p}`,i={facet:{data:i,name:"value",groupby:Ib}},af({role:KE,from:i,encode:pl(m,s,Hf),marks:[E,C],name:u,interactive:a,sort:v})}function sie(e,t){const n=qn(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const rw='item.orient === "left"',ow='item.orient === "right"',b0=`(${rw} || ${ow})`,aie=`datum.vgrad && ${b0}`,uie=y0('"top"','"bottom"','"middle"'),lie=y0('"right"','"left"','"center"'),cie=`datum.vgrad && ${ow} ? (${lie}) : (${b0} && !(datum.vgrad && ${rw})) ? "left" : ${iw}`,fie=`item._anchor || (${b0} ? "middle" : "start")`,die=`${aie} ? (${rw} ? -90 : 90) : 0`,hie=`${b0} ? (datum.vgrad ? (${ow} ? "bottom" : "top") : ${uie}) : "top"`;function pie(e,t,n,i){const r=qn(e,t),o={enter:{opacity:Ce},update:{opacity:pi,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Ce}};return Wt(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:fie},angle:{signal:die},align:{signal:cie},baseline:{signal:hie},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),ii({type:Na,role:Dte,style:ew,from:i,encode:o},n)}function gie(e,t){let n;return me(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+f_(e.path)+")":e.sphere&&(n="geoShape("+f_(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function f_(e){return me(e)&&e.signal?e.signal:re(e)}function pN(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===m0?KE:t||YE}function mie(e){return{marktype:e.type,name:e.name||void 0,role:e.role||pN(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function yie(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function sw(e,t){const n=g3(e.type);n||L("Unrecognized transform type: "+re(e.type));const i=h0(n.type.toLowerCase(),null,gN(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(i)),i.metadata=n.metadata||{},i}function gN(e,t,n){const i={},r=e.params.length;for(let o=0;o<r;++o){const s=e.params[o];i[s.name]=bie(s,t,n)}return i}function bie(e,t,n){const i=e.type,r=t[e.name];if(i==="index")return xie(e,t,n);if(r===void 0){e.required&&L("Missing required "+re(t.type)+" parameter: "+re(e.name));return}else{if(i==="param")return vie(e,t,n);if(i==="projection")return n.projectionRef(t[e.name])}return e.array&&!vt(r)?r.map(o=>d_(e,o,n)):d_(e,r,n)}function d_(e,t,n){const i=e.type;if(vt(t))return p_(i)?L("Expression references can not be signals."):v1(i)?n.fieldRef(t):g_(i)?n.compareRef(t):n.signalRef(t.signal);{const r=e.expr||v1(i);return r&&Eie(t)?n.exprRef(t.expr,t.as):r&&wie(t)?of(t.field,t.as):p_(i)?wr(t,n):Aie(i)?ee(n.getData(t).values):v1(i)?of(t):g_(i)?n.compareRef(t):t}}function xie(e,t,n){return Ke(t.from)||L('Lookup "from" parameter must be a string literal.'),n.getData(t.from).lookupRef(n,t.key)}function vie(e,t,n){const i=t[e.name];return e.array?(Z(i)||L("Expected an array of sub-parameters. Instead: "+re(i)),i.map(r=>h_(e,r,n))):h_(e,i,n)}function h_(e,t,n){const i=e.params.length;let r;for(let s=0;s<i;++s){r=e.params[s];for(const a in r.key)if(r.key[a]!==t[a]){r=null;break}if(r)break}r||L("Unsupported parameter: "+re(t));const o=ye(gN(r,t,n),r.key);return ee(n.add(yne(o)))}const Eie=e=>e&&e.expr,wie=e=>e&&e.field,Aie=e=>e==="data",p_=e=>e==="expr",v1=e=>e==="field",g_=e=>e==="compare";function Sie(e,t,n){let i,r,o,s,a;return e?(i=e.facet)&&(t||L("Only group marks can be faceted."),i.field!=null?s=a=vh(i,n):(e.data?a=ee(n.getData(e.data).aggregate):(o=sw(ye({type:"aggregate",groupby:se(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=vh(i,n),s=a=ee(n.add(o))),r=n.keyRef(i.groupby,!0))):s=ee(n.add(Gi(null,[{}]))),s||(s=vh(e,n)),{key:r,pulse:s,parent:a}}function vh(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:ee(t.getData(e.data).output)}function ga(e,t,n,i,r){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=r,this.index={}}ga.fromEntries=function(e,t){const n=t.length,i=t[n-1],r=t[n-2];let o=t[0],s=null,a=1;for(o&&o.type==="load"&&(o=t[1]),e.add(t[0]);a<n;++a)t[a].params.pulse=ee(t[a-1]),e.add(t[a]),t[a].type==="aggregate"&&(s=t[a]);return new ga(e,o,r,i,s)};function mN(e){return Ke(e)?e:null}function m_(e,t,n){const i=p0(n.op,n.field);let r;if(t.ops){for(let o=0,s=t.as.length;o<s;++o)if(t.as[o]===i)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((r=n.op.signal)?e.signalRef(r):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(i))}function Gl(e,t,n,i,r,o,s){const a=t[n]||(t[n]={}),u=Vte(o);let l=mN(r),c,f;if(l!=null&&(e=t.scope,l=l+(u?"|"+u:""),c=a[l]),!c){const d=o?{field:Nb,pulse:t.countsRef(e,r,o)}:{field:e.fieldRef(r),pulse:ee(t.output)};u&&(d.sort=e.sortRef(o)),f=e.add(h0(i,void 0,d)),s&&(t.index[r]=f),c=ee(f),l!=null&&(a[l]=c)}return c}ga.prototype={countsRef(e,t,n){const i=this,r=i.counts||(i.counts={}),o=mN(t);let s,a,u;return o!=null&&(e=i.scope,s=r[o]),s?n&&n.field&&m_(e,s.agg.params,n):(u={groupby:e.fieldRef(t,"key"),pulse:ee(i.output)},n&&n.field&&m_(e,u,n),a=e.add(eN(u)),s=e.add(Gi({pulse:ee(a)})),s={agg:a,ref:ee(s)},o!=null&&(r[o]=s)),s.ref},tuplesRef(){return ee(this.values)},extentRef(e,t){return Gl(e,this,"extent","extent",t,!1)},domainRef(e,t){return Gl(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return Gl(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return Gl(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return Gl(e,this,"indata","tupleindex",t,!0,!0)}};function Cie(e,t,n){const i=e.from.facet,r=i.name,o=vh(i,t);let s;i.name||L("Facet must have a name: "+re(i)),i.data||L("Facet must reference a data set: "+re(i)),i.field?s=t.add(iN({field:t.fieldRef(i.field),pulse:o})):i.groupby?s=t.add(une({key:t.keyRef(i.groupby),group:ee(t.proxy(n.parent)),pulse:o})):L("Facet must specify groupby or field: "+re(i));const a=t.fork(),u=a.add(Gi()),l=a.add(Ra({pulse:ee(u)}));a.addData(r,new ga(a,u,u,l)),a.addSignal("parent",null),s.params.subflow={$subflow:a.parse(e).toRuntime()}}function $ie(e,t,n){const i=t.add(iN({pulse:n.pulse})),r=t.fork();r.add(Ra()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(e).toRuntime()}}function yN(e,t,n){const i=e.remove,r=e.insert,o=e.toggle,s=e.modify,a=e.values,u=t.add(Rp()),l="if("+e.trigger+',modify("'+n+'",'+[r,i,o,s,a].map(f=>f??"null").join(",")+"),0)",c=wr(l,t);u.update=c.$expr,u.params=c.$params}function x0(e,t){const n=pN(e),i=e.type===m0,r=e.from&&e.from.facet,o=e.overlap;let s=e.layout||n===KE||n===XE,a,u,l,c,f,d,h;const p=n===YE||s||r,g=Sie(e.from,i,t);u=t.add(sne({key:g.key||(e.key?of(e.key):void 0),pulse:g.pulse,clean:!i}));const m=ee(u);u=l=t.add(Gi({pulse:m})),u=t.add(hne({markdef:mie(e),interactive:yie(e.interactive,t),clip:gie(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:ee(u)}));const y=ee(u);u=c=t.add(nN(QR(e.encode,e.type,n,e.style,t,{mod:!1,pulse:y}))),u.params.parent=t.encode(),e.transform&&e.transform.forEach(A=>{const E=sw(A,t),S=E.metadata;(S.generates||S.changes)&&L("Mark transforms should not generate new data."),S.nomod||(c.params.mod=!0),E.params.pulse=ee(u),t.add(u=E)}),e.sort&&(u=t.add(wne({sort:t.compareRef(e.sort),pulse:ee(u)})));const b=ee(u);(r||s)&&(s=t.add(oN({layout:t.objectProperty(e.layout),legends:t.legends,mark:y,pulse:b})),d=ee(s));const x=t.add(tN({mark:y,pulse:d||b}));h=ee(x),i&&(p&&(a=t.operators,a.pop(),s&&a.pop()),t.pushState(b,d||h,m),r?Cie(e,t,g):p?$ie(e,t,g):t.parse(e),t.popState(),p&&(s&&a.push(s),a.push(x))),o&&(h=_ie(o,h,t));const v=t.add(rN({pulse:h})),w=t.add(Ra({pulse:ee(v)},void 0,t.parent()));e.name!=null&&(f=e.name,t.addData(f,new ga(t,l,v,w)),e.on&&e.on.forEach(A=>{(A.insert||A.remove||A.toggle)&&L("Marks only support modify triggers."),yN(A,t,f)}))}function _ie(e,t,n){const i=e.method,r=e.bound,o=e.separation,s={separation:vt(o)?n.signalRef(o.signal):o,method:vt(i)?n.signalRef(i.signal):i,pulse:t};if(e.order&&(s.sort=n.compareRef({field:e.order})),r){const a=r.tolerance;s.boundTolerance=vt(a)?n.signalRef(a.signal):+a,s.boundScale=n.scaleRef(r.scale),s.boundOrient=r.orient}return ee(n.add(mne(s)))}function Fie(e,t){const n=t.config.legend,i=e.encode||{},r=qn(e,n),o=i.legend||{},s=o.name||void 0,a=o.interactive,u=o.style,l={};let c=0,f,d,h;tw.forEach(x=>e[x]?(l[x]=e[x],c=c||e[x]):0),c||L("Missing valid scale for legend.");const p=kie(e,t.scaleType(c)),g={title:e.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&r.isVertical()},m=ee(t.add(Gi(null,[g]))),y={enter:{x:{value:0},y:{value:0}}},b=ee(t.add(fne(d={type:p,scale:t.scaleRef(c),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===xh?(h=[tie(e,c,n,i.gradient),c_(e,n,i.labels,b)],d.count=d.count||t.signalRef(`max(2,2*floor((${Qs(r.gradientLength())})/100))`)):p===zb?h=[nie(e,c,n,i.gradient,b),c_(e,n,i.labels,b)]:(f=sie(e,n),h=[oie(e,n,i,b,Qs(f.columns))],d.size=Mie(e,t,h[0].marks)),h=[af({role:_te,from:m,encode:y,marks:h,layout:f,interactive:a})],g.title&&h.push(pie(e,n,i.title,m)),x0(af({role:Cte,from:m,encode:pl(Tie(r,e,n),o,Hf),marks:h,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:s,interactive:a,style:u}),t)}function kie(e,t){let n=e.type||l_;return!e.type&&Die(e)===1&&(e.fill||e.stroke)&&(n=u2(t)?xh:My(t)?zb:l_),n!==xh?n:My(t)?zb:xh}function Die(e){return tw.reduce((t,n)=>t+(e[n]?1:0),0)}function Tie(e,t,n){const i={enter:{},update:{}};return Wt(i,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),i}function Mie(e,t,n){const i=Qs(y_("size",e,n)),r=Qs(y_("strokeWidth",e,n)),o=Qs(Oie(n[1].encode,t,Gf));return wr(`max(ceil(sqrt(${i})+${r}),${o})`,t)}function y_(e,t,n){return t[e]?`scale("${t[e]}",datum)`:dN(e,n[0].encode)}function Oie(e,t,n){return dN("fontSize",e)||Zne("fontSize",t,n)}const Rie=`item.orient==="${gl}"?-90:item.orient==="${ml}"?90:0`;function Nie(e,t){e=Ke(e)?{text:e}:e;const n=qn(e,t.config.title),i=e.encode||{},r=i.group||{},o=r.name||void 0,s=r.interactive,a=r.style,u=[],l={},c=ee(t.add(Gi(null,[l])));return u.push(Iie(e,n,Lie(e),c)),e.subtitle&&u.push(zie(e,n,i.subtitle,c)),x0(af({role:Tte,from:c,encode:Pie(n,r),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:o,interactive:s,style:a}),t)}function Lie(e){const t=e.encode;return t&&t.title||ye({name:e.name,interactive:e.interactive,style:e.style},t)}function Pie(e,t){const n={enter:{},update:{}};return Wt(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:iw},angle:{signal:Rie},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),pl(n,t,Hf)}function Iie(e,t,n,i){const r={value:0},o=e.text,s={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return Wt(s,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),ii({type:Na,role:Mte,style:Wne,from:i,encode:s},n)}function zie(e,t,n,i){const r={value:0},o=e.subtitle,s={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return Wt(s,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),ii({type:Na,role:Ote,style:Gne,from:i,encode:s},n)}function Bie(e,t){const n=[];e.transform&&e.transform.forEach(i=>{n.push(sw(i,t))}),e.on&&e.on.forEach(i=>{yN(i,t,e.name)}),t.addDataPipeline(e.name,Uie(e,t,n))}function Uie(e,t,n){const i=[];let r=null,o=!1,s=!1,a,u,l,c,f;for(e.values?vt(e.values)||yh(e.format)?(i.push(b_(t,e)),i.push(r=$s())):i.push(r=$s({$ingest:e.values,$format:e.format})):e.url?yh(e.url)||yh(e.format)?(i.push(b_(t,e)),i.push(r=$s())):i.push(r=$s({$request:e.url,$format:e.format})):e.source&&(r=a=se(e.source).map(d=>ee(t.getData(d).output)),i.push(null)),u=0,l=n.length;u<l;++u)c=n[u],f=c.metadata,!r&&!f.source&&i.push(r=$s()),i.push(c),f.generates&&(s=!0),f.modifies&&!s&&(o=!0),f.source?r=c:f.changes&&(r=null);return a&&(l=a.length-1,i[0]=vne({derive:o,pulse:l?a:a[0]}),(o||l)&&i.splice(1,0,$s())),r||i.push($s()),i.push(Ra({})),i}function $s(e){const t=Gi({},e);return t.metadata={source:!0},t}function b_(e,t){return dne({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}const bN=e=>e===ns||e===Hi,v0=(e,t,n)=>vt(e)?Gie(e.signal,t,n):e===gl||e===Hi?t:n,_t=(e,t,n)=>vt(e)?qie(e.signal,t,n):bN(e)?t:n,Ri=(e,t,n)=>vt(e)?Wie(e.signal,t,n):bN(e)?n:t,xN=(e,t,n)=>vt(e)?Hie(e.signal,t,n):e===Hi?{value:t}:{value:n},jie=(e,t,n)=>vt(e)?Vie(e.signal,t,n):e===ml?{value:t}:{value:n},qie=(e,t,n)=>vN(`${e} === '${Hi}' || ${e} === '${ns}'`,t,n),Wie=(e,t,n)=>vN(`${e} !== '${Hi}' && ${e} !== '${ns}'`,t,n),Gie=(e,t,n)=>aw(`${e} === '${gl}' || ${e} === '${Hi}'`,t,n),Hie=(e,t,n)=>aw(`${e} === '${Hi}'`,t,n),Vie=(e,t,n)=>aw(`${e} === '${ml}'`,t,n),vN=(e,t,n)=>(t=t!=null?$t(t):t,n=n!=null?$t(n):n,x_(t)&&x_(n)?(t=t?t.signal||re(t.value):null,n=n?n.signal||re(n.value):null,{signal:`${e} ? (${t}) : (${n})`}):[ye({test:e},t)].concat(n||[])),x_=e=>e==null||Object.keys(e).length===1,aw=(e,t,n)=>({signal:`${e} ? (${hu(t)}) : (${hu(n)})`}),Yie=(e,t,n,i,r)=>({signal:(i!=null?`${e} === '${gl}' ? (${hu(i)}) : `:"")+(n!=null?`${e} === '${ns}' ? (${hu(n)}) : `:"")+(r!=null?`${e} === '${ml}' ? (${hu(r)}) : `:"")+(t!=null?`${e} === '${Hi}' ? (${hu(t)}) : `:"")+"(null)"}),hu=e=>vt(e)?e.signal:e==null?null:re(e),Xie=(e,t)=>t===0?0:vt(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},xu=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function nu(e,t,n,i){let r;if(t&&le(t,e))return t[e];if(le(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=e[5].toLowerCase()+e.slice(6)}return i[ew][r]}else if(e.startsWith("label")){switch(e){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=e[5].toLowerCase()+e.slice(6)}return i[Gf][r]}return null}function v_(e){const t={};for(const n of e)if(n)for(const i in n)t[i]=1;return Object.keys(t)}function Kie(e,t){var n=t.config,i=n.style,r=n.axis,o=t.scaleType(e.scale)==="band"&&n.axisBand,s=e.orient,a,u,l;if(vt(s)){const f=v_([n.axisX,n.axisY]),d=v_([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);a={};for(l of f)a[l]=_t(s,nu(l,n.axisX,r,i),nu(l,n.axisY,r,i));u={};for(l of d)u[l]=Yie(s.signal,nu(l,n.axisTop,r,i),nu(l,n.axisBottom,r,i),nu(l,n.axisLeft,r,i),nu(l,n.axisRight,r,i))}else a=s===Hi||s===ns?n.axisX:n.axisY,u=n["axis"+s[0].toUpperCase()+s.slice(1)];return a||u||o?ye({},r,a,u,o):r}function Jie(e,t,n,i){const r=qn(e,t),o=e.orient;let s,a;const u={enter:s={opacity:Ce},update:a={opacity:pi},exit:{opacity:Ce}};Wt(u,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const l=E_(e,0),c=E_(e,1);return s.x=a.x=_t(o,l,Ce),s.x2=a.x2=_t(o,c),s.y=a.y=Ri(o,l,Ce),s.y2=a.y2=Ri(o,c),ii({type:nw,role:vte,from:i,encode:u},n)}function E_(e,t){return{scale:e.scale,range:t}}function Qie(e,t,n,i,r){const o=qn(e,t),s=e.orient,a=e.gridScale,u=v0(s,1,-1),l=Zie(e.offset,u);let c,f,d;const h={enter:c={opacity:Ce},update:d={opacity:pi},exit:f={opacity:Ce}};Wt(h,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const p={scale:e.scale,field:hi,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},g=_t(s,{signal:"height"},{signal:"width"}),m=a?{scale:a,range:0,mult:u,offset:l}:{value:0,offset:l},y=a?{scale:a,range:1,mult:u,offset:l}:ye(g,{mult:u,offset:l});return c.x=d.x=_t(s,p,m),c.y=d.y=Ri(s,p,m),c.x2=d.x2=Ri(s,y),c.y2=d.y2=_t(s,y),f.x=_t(s,p),f.y=Ri(s,p),ii({type:nw,role:Ete,key:hi,from:i,encode:h},n)}function Zie(e,t){if(t!==1)if(!me(e))e=vt(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);else{let n=e=ye({},e);for(;n.mult!=null;)if(me(n.mult))n=n.mult=ye({},n.mult);else return n.mult=vt(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n.mult=t}return e}function ere(e,t,n,i,r,o){const s=qn(e,t),a=e.orient,u=v0(a,-1,1);let l,c,f;const d={enter:l={opacity:Ce},update:f={opacity:pi},exit:c={opacity:Ce}};Wt(d,{stroke:s("tickColor"),strokeCap:s("tickCap"),strokeDash:s("tickDash"),strokeDashOffset:s("tickDashOffset"),strokeOpacity:s("tickOpacity"),strokeWidth:s("tickWidth")});const h=$t(r);h.mult=u;const p={scale:e.scale,field:hi,band:o.band,extra:o.extra,offset:o.offset,round:s("tickRound")};return f.y=l.y=_t(a,Ce,p),f.y2=l.y2=_t(a,h),c.x=_t(a,p),f.x=l.x=Ri(a,Ce,p),f.x2=l.x2=Ri(a,h),c.y=Ri(a,p),ii({type:nw,role:Ate,key:hi,from:i,encode:d},n)}function E1(e,t,n,i,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+r+")"}}function tre(e,t,n,i,r,o){const s=qn(e,t),a=e.orient,u=e.scale,l=v0(a,-1,1),c=Qs(s("labelFlush")),f=Qs(s("labelFlushOffset")),d=s("labelAlign"),h=s("labelBaseline");let p=c===0||!!c,g;const m=$t(r);m.mult=l,m.offset=$t(s("labelPadding")||0),m.offset.mult=l;const y={scale:u,field:hi,band:.5,offset:hN(o.offset,s("labelOffset"))},b=_t(a,p?E1(u,c,'"left"','"right"','"center"'):{value:"center"},jie(a,"left","right")),x=_t(a,xN(a,"bottom","top"),p?E1(u,c,'"top"','"bottom"','"middle"'):{value:"middle"}),v=E1(u,c,`-(${f})`,f,0);p=p&&f;const w={opacity:Ce,x:_t(a,y,m),y:Ri(a,y,m)},A={enter:w,update:g={opacity:pi,text:{field:ZE},x:w.x,y:w.y,align:b,baseline:x},exit:{opacity:Ce,x:w.x,y:w.y}};Wt(A,{dx:!d&&p?_t(a,v):null,dy:!h&&p?Ri(a,v):null}),Wt(A,{angle:s("labelAngle"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontWeight:s("labelFontWeight"),fontStyle:s("labelFontStyle"),limit:s("labelLimit"),lineHeight:s("labelLineHeight")},{align:d,baseline:h});const E=s("labelBound");let S=s("labelOverlap");return S=S||E?{separation:s("labelSeparation"),method:S,order:"datum.index",bound:E?{scale:u,orient:a,tolerance:E}:null}:void 0,g.align!==b&&(g.align=xu(g.align,b)),g.baseline!==x&&(g.baseline=xu(g.baseline,x)),ii({type:Na,role:wte,style:Gf,key:hi,from:i,encode:A,overlap:S},n)}function nre(e,t,n,i){const r=qn(e,t),o=e.orient,s=v0(o,-1,1);let a,u;const l={enter:a={opacity:Ce,anchor:$t(r("titleAnchor",null)),align:{signal:iw}},update:u=ye({},a,{opacity:pi,text:$t(e.title)}),exit:{opacity:Ce}},c={signal:`lerp(range("${e.scale}"), ${y0(0,1,.5)})`};return u.x=_t(o,c),u.y=Ri(o,c),a.angle=_t(o,Ce,Xie(s,90)),a.baseline=_t(o,xN(o,ns,Hi),{value:ns}),u.angle=a.angle,u.baseline=a.baseline,Wt(l,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),ire(r,o,l,n),l.update.align=xu(l.update.align,a.align),l.update.angle=xu(l.update.angle,a.angle),l.update.baseline=xu(l.update.baseline,a.baseline),ii({type:Na,role:Ste,style:ew,from:i,encode:l},n)}function ire(e,t,n,i){const r=(a,u)=>a!=null?(n.update[u]=xu($t(a),n.update[u]),!1):!au(u,i),o=r(e("titleX"),"x"),s=r(e("titleY"),"y");n.enter.auto=s===o?$t(s):_t(t,$t(s),$t(o))}function rre(e,t){const n=Kie(e,t),i=e.encode||{},r=i.axis||{},o=r.name||void 0,s=r.interactive,a=r.style,u=qn(e,n),l=eie(u),c={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:e.title!=null},f=ee(t.add(Gi({},[c]))),d=ee(t.add(one({scale:t.scaleRef(e.scale),extra:t.property(l.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let p;return c.grid&&h.push(Qie(e,n,i.grid,d,l)),c.ticks&&(p=u("tickSize"),h.push(ere(e,n,i.ticks,d,p,l))),c.labels&&(p=c.ticks?p:0,h.push(tre(e,n,i.labels,d,p,l))),c.domain&&h.push(Jie(e,n,i.domain,f)),c.title&&h.push(nre(e,n,i.title,f)),x0(af({role:xte,from:f,encode:pl(ore(u,e),r,Hf),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:o,interactive:s,style:a}),t)}function ore(e,t){const n={enter:{},update:{}};return Wt(n,{orient:e("orient"),offset:e("offset")||0,position:_i(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function EN(e,t,n){const i=se(e.signals),r=se(e.scales);return n||i.forEach(o=>ZR(o,t)),se(e.projections).forEach(o=>Pne(o,t)),r.forEach(o=>Cne(o,t)),se(e.data).forEach(o=>Bie(o,t)),r.forEach(o=>$ne(o,t)),(n||i).forEach(o=>rne(o,t)),se(e.axes).forEach(o=>rre(o,t)),se(e.marks).forEach(o=>x0(o,t)),se(e.legends).forEach(o=>Fie(o,t)),e.title&&Nie(e.title,t),t.parseLambdas(),t}const sre=e=>pl({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function are(e,t){const n=t.config,i=ee(t.root=t.add(Rp())),r=ure(e,n);r.forEach(l=>ZR(l,t)),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;const o=t.add(Gi()),s=t.add(nN(QR(sre(e.encode),m0,XE,e.style,t,{pulse:ee(o)}))),a=t.add(oN({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:i,pulse:ee(s)}));t.operators.pop(),t.pushState(ee(s),ee(a),null),EN(e,t,r),t.operators.push(a);let u=t.add(tN({mark:i,pulse:ee(a)}));return u=t.add(rN({pulse:ee(u)})),u=t.add(Ra({pulse:ee(u)})),t.addData("root",new ga(t,o,o,u)),t}function Hl(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function ure(e,t){const n=s=>_i(e[s],t[s]),i=[Hl("background",n("background")),Hl("autosize",mte(n("autosize"))),Hl("padding",bte(n("padding"))),Hl("width",n("width")||0),Hl("height",n("height")||0)],r=i.reduce((s,a)=>(s[a.name]=a,s),{}),o={};return se(e.signals).forEach(s=>{le(r,s.name)?s=ye(r[s.name],s):i.push(s),o[s.name]=s}),se(t.signals).forEach(s=>{!le(o,s.name)&&!le(r,s.name)&&i.push(s)}),i}function wN(e,t){this.config=e||{},this.options=t||{},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 w_(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}wN.prototype=w_.prototype={parse(e){return EN(e,this)},fork(){return new w_(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(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach(t=>{t.$ref=e.id}),e.refs=null),e},proxy(e){const t=e instanceof Rb?ee(e):e;return this.add(xne({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;this.root&&(this.root.root=!0);for(e in this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(i,r,o){let s,a;i&&(s=i.data||(i.data={}),a=s[r]||(s[r]=[]),a.push(o))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const i in t.index)n(t.index[i],e,"index:"+i)}return this},pushState(e,t,n){this._encode.push(ee(this.add(Ra({pulse:e})))),this._parent.push(t),this._lookup.push(n?ee(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return $e(this._parent)},encode(){return $e(this._encode)},lookup(){return $e(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ke(e))return of(e,t);e.signal||L("Unsupported field reference: "+re(e));const n=e.signal;let i=this.field[n];if(!i){const r={name:this.signalRef(n)};t&&(r.as=t),this.field[n]=i=ee(this.add(lne(r)))}return i},compareRef(e){let t=!1;const n=o=>vt(o)?(t=!0,this.signalRef(o.signal)):Yte(o)?(t=!0,this.exprRef(o.expr)):o,i=se(e.field).map(n),r=se(e.order).map(n);return t?ee(this.add(u_({fields:i,orders:r}))):s_(i,r)},keyRef(e,t){let n=!1;const i=o=>vt(o)?(n=!0,ee(r[o.signal])):o,r=this.signals;return e=se(e).map(i),n?ee(this.add(cne({fields:e,flat:t}))):Wte(e,t)},sortRef(e){if(!e)return e;const t=p0(e.op,e.field),n=e.order||Gte;return n.signal?ee(this.add(u_({fields:t,orders:this.signalRef(n.signal)}))):s_(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},hasOwnSignal(e){return le(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&L("Duplicate signal name: "+re(e));const n=t instanceof Rb?t:this.add(Rp(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||L("Unrecognized signal name: "+re(e)),this.signals[e]},signalRef(e){return this.signals[e]?ee(this.signals[e]):(le(this.lambdas,e)||(this.lambdas[e]=this.add(Rp(null))),ee(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){const i=e[t],r=wr(i,this),o=this.lambdas[i];o.params=r.$params,o.update=r.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return!e||!me(e)?e:this.signalRef(e.signal||uw(e))},exprRef(e,t){const n={expr:wr(e,this)};return t&&(n.expr.$name=t),ee(this.add(ane(n)))},addBinding(e,t){this.bindings||L("Nested signals do not support binding: "+re(e)),this.bindings.push(ye({signal:e},t))},addScaleProj(e,t){le(this.scales,e)&&L("Duplicate scale or projection name: "+re(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,Ene(t))},addProjection(e,t){this.addScaleProj(e,bne(t))},getScale(e){return this.scales[e]||L("Unrecognized scale name: "+re(e)),this.scales[e]},scaleRef(e){return ee(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return le(this.data,e)&&L("Duplicate data set name: "+re(e)),this.data[e]=t},getData(e){return this.data[e]||L("Undefined data set name: "+re(e)),this.data[e]},addDataPipeline(e,t){return le(this.data,e)&&L("Duplicate data set name: "+re(e)),this.addData(e,ga.fromEntries(this,t))}};function uw(e){return(Z(e)?lre:cre)(e)}function lre(e){const t=e.length;let n="[";for(let i=0;i<t;++i){const r=e[i];n+=(i>0?",":"")+(me(r)?r.signal||uw(r):re(r))}return n+"]"}function cre(e){let t="{",n=0,i,r;for(i in e)r=e[i],t+=(++n>1?",":"")+re(i)+":"+(me(r)?r.signal||uw(r):re(r));return t+"}"}function fre(){const e="sans-serif",i="#4c78a8",r="#000",o="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:i},area:{fill:i},image:null,line:{stroke:i,strokeWidth:2},path:{stroke:i},rect:{fill:i},rule:{stroke:r},shape:{stroke:i},symbol:{fill:i,size:64},text:{fill:r,font:e,fontSize:11},trail:{fill:i,size:2},style:{"guide-label":{fill:r,font:e,fontSize:10},"guide-title":{fill:r,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:r,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:r,font:e,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:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,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:s,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:o,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 dre(e,t,n){return me(e)||L("Input Vega specification must be an object."),t=wP(fre(),t,e.config),are(e,new wN(t,n)).toRuntime()}var hre="5.33.0";Px(Du,BB,zG,yH,nY,qY,mK,XX,bK,jK,QK,oJ);const pre=Object.freeze(Object.defineProperty({__proto__:null,Bounds:gt,CanvasHandler:Lf,CanvasRenderer:Jh,DATE:In,DAY:Zt,DAYOFYEAR:vr,Dataflow:mu,Debug:Bk,Error:Pk,EventStream:Cg,Gradient:hM,GroupItem:Wg,HOURS:ei,Handler:O2,HybridHandler:r5,HybridRenderer:qy,Info:zk,Item:qg,MILLISECONDS:Ii,MINUTES:ti,MONTH:nn,Marks:ni,MultiPulse:Kx,None:Lk,Operator:Ge,Parameters:Sg,Pulse:Ho,QUARTER:Pn,RenderType:zo,Renderer:Nf,ResourceLoader:vM,SECONDS:gi,SVGHandler:GM,SVGRenderer:z2,SVGStringRenderer:i5,Scenegraph:PM,TIME_UNITS:Bx,Transform:M,View:BR,WEEK:bt,Warn:Ik,YEAR:jt,accessor:yo,accessorFields:Ok,accessorName:y9,array:Bc,ascending:Lx,bandwidthNRD:ev,bin:b3,bootstrapCI:x3,boundClip:p5,boundContext:Tf,boundItem:Iy,boundMark:OM,boundStroke:bo,changeset:Ta,clampRange:P9,codegenExpression:hR,compare:z9,constant:q9,cumulativeLogNormal:sv,cumulativeNormal:_g,cumulativeUniform:cv,dayofyear:CD,debounce:W9,defaultLocale:Gx,definition:g3,densityLogNormal:ov,densityNormal:tv,densityUniform:lv,domChild:yt,domClear:ai,domCreate:Po,domFind:M2,dotbin:v3,error:Jd,expressionFunction:ht,extend:Px,extent:G9,extentIndex:H9,falsy:A9,fastmap:Y9,field:Mx,flush:X9,font:Xg,fontFamily:Rf,fontSize:_r,format:Qd,formatLocale:Th,formats:Yx,hasOwnProperty:Hr,id:v9,identity:Ox,inferType:r3,inferTypes:o3,ingest:Oe,inherits:K9,inrange:J9,interpolate:l2,interpolateColors:Ug,interpolateRange:ZT,intersect:c5,intersectBoxLine:lu,intersectPath:y2,intersectPoint:b2,intersectRule:wM,isArray:og,isBoolean:Gk,isDate:Hk,isFunction:lg,isIterable:Q9,isNumber:Vk,isObject:oa,isRegExp:Z9,isString:to,isTuple:wg,key:eP,lerp:tP,lineHeight:Zo,loader:vg,locale:n3,logger:C9,lruCache:iP,markup:I2,merge:rP,mergeConfig:Rx,multiLineOffset:k2,one:w9,pad:oP,panLinear:_9,panLog:F9,panPow:k9,panSymlog:D9,parse:dre,parseExpression:cR,parseSelector:ds,path:Dx,pathCurves:p2,pathEqual:g5,pathParse:Nu,pathRectangle:mM,pathRender:Vc,pathSymbols:gM,pathTrail:yM,peek:ol,point:Jg,projection:rE,quantileLogNormal:av,quantileNormal:Fg,quantileUniform:fv,quantiles:Qx,quantizeInterpolator:eM,quarter:N9,quartiles:Zx,get random(){return mi},randomInteger:Wz,randomKDE:iv,randomLCG:qz,randomLogNormal:w3,randomMixture:A3,randomNormal:nv,randomUniform:S3,read:u3,regressionConstant:dv,regressionExp:$3,regressionLinear:hv,regressionLoess:k3,regressionLog:C3,regressionPoly:F3,regressionPow:_3,regressionQuad:pv,renderModule:Qg,repeat:ec,resetDefaultLocale:B7,resetSVGClipId:xM,resetSVGDefIds:iG,responseType:a3,runtimeContext:_R,sampleCurve:Dg,sampleLogNormal:rv,sampleNormal:$g,sampleUniform:uv,scale:Me,sceneEqual:B2,sceneFromJSON:NM,scenePickVisit:qh,sceneToJSON:RM,sceneVisit:zi,sceneZOrder:x2,scheme:c2,serializeXML:ZM,setHybridRendererOptions:ZW,setRandom:Uz,span:sP,splitAccessPath:Tx,stringValue:gu,textMetrics:Jn,timeBin:jD,timeFloor:MD,timeFormatLocale:qc,timeInterval:ul,timeOffset:ND,timeSequence:ID,timeUnitSpecifier:SD,timeUnits:Ux,toBoolean:aP,toDate:lP,toNumber:Nx,toSet:fP,toString:cP,transform:m3,transforms:Du,truncate:dP,truthy:Nk,tupleid:te,typeParsers:_y,utcFloor:OD,utcInterval:ll,utcOffset:LD,utcSequence:zD,utcdayofyear:FD,utcquarter:L9,utcweek:kD,version:hre,visitArray:hP,week:$D,writeConfig:sg,zero:E9,zoomLinear:T9,zoomLog:M9,zoomPow:O9,zoomSymlog:R9},Symbol.toStringTag,{value:"Module"})),gre=/("(?:[^\\"]|\\.)*")|[:,]/g;function w1(e,t={}){const n=JSON.stringify([1],void 0,t.indent===void 0?2:t.indent).slice(2,-3),i=n===""?1/0:t.maxLength===void 0?80:t.maxLength;let{replacer:r}=t;return function o(s,a,u){s&&typeof s.toJSON=="function"&&(s=s.toJSON());const l=JSON.stringify(s,r);if(l===void 0)return l;const c=i-a.length-u;if(l.length<=c){const f=l.replace(gre,(d,h)=>h||`${d} `);if(f.length<=c)return f}if(r!=null&&(s=JSON.parse(l),r=void 0),typeof s=="object"&&s!==null){const f=a+n,d=[];let h=0,p,g;if(Array.isArray(s)){p="[",g="]";const{length:m}=s;for(;h<m;h++)d.push(o(s[h],f,h===m-1?0:1)||"null")}else{p="{",g="}";const m=Object.keys(s),{length:y}=m;for(;h<y;h++){const b=m[h],x=`${JSON.stringify(b)}: `,v=o(s[b],f,x.length+(h===y-1?0:1));v!==void 0&&d.push(x+v)}}if(d.length>0)return[p,n+d.join(`,
14
14
  ${f}`),g].join(`
15
- ${a}`)}return l}(e,"",0)}function yre(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var bre={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},xre={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},vre={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const Ere=Array.prototype.slice,_s=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,Ere.call(t,1))},wre=(e,t,n,i,r,o,s)=>new Date(e,t||0,n??1,i||0,r||0,o||0,s||0);var Are={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:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:wre,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return _s("join",arguments)},indexof:function(){return _s("indexOf",arguments)},lastindexof:function(){return _s("lastIndexOf",arguments)},slice:function(){return _s("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return _s("substring",arguments,String)},split:function(){return _s("split",arguments,String)},replace:function(){return _s("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const Sre=["view","item","group","xy","x","y"],Ub=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ub.add(setImmediate);const Cre={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:bre[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ub.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||Are[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>xre[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>vre[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ub.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Vl(e,t,n,i,r,o){const s=a=>Cre[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,Sre.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var $re={operator(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Vl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Vl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Vl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&yre(s,i,o),l}}};const _re="5.23.0",Fre={version:_re};function yl(e,t,n){return e.fields=t||[],e.fname=n,e}function kre(e){return e.length===1?Dre(e[0]):Tre(e)}const Dre=e=>function(t){return t[e]},Tre=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function A1(e){throw Error(e)}function La(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||A1("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&A1("Access path missing closing bracket: "+e),i&&A1("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Mre(e,t,n){const i=La(e);return e=i.length===1?i[0]:e,yl(kre(i),[e],e)}Mre("id");const Ore=yl(e=>e,[],"identity");yl(()=>0,[],"zero");yl(()=>1,[],"one");yl(()=>!0,[],"true");yl(()=>!1,[],"false");function Rre(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Nre=0,Lre=1,SN=2,Pre=3,Ire=4;function zre(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Rre,i=e||Nre;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Lre&&n("error","ERROR",arguments),this},warn(){return i>=SN&&n("warn","WARN",arguments),this},info(){return i>=Pre&&n("log","INFO",arguments),this},debug(){return i>=Ire&&n("log","DEBUG",arguments),this}}}var X=Array.isArray;function Fe(e){return e===Object(e)}const S_=e=>e!=="__proto__";function CN(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=Bre(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;E0(i,o,r[o],s)}return i},{})}function E0(e,t,n,i){if(!S_(t))return;let r,o;if(Fe(n)&&!X(n)){o=Fe(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?E0(o,r,n[r]):S_(r)&&(o[r]=n[r])}else e[t]=n}function Bre(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ct(e){return e!=null?X(e)?e:[e]:[]}function Ure(e){return typeof e=="function"}const jre=Object.prototype.hasOwnProperty;function pt(e,t){return jre.call(e,t)}function Vf(e){return typeof e=="boolean"}function Ze(e){return typeof e=="number"}function de(e){return typeof e=="string"}function _e(e){return X(e)?"["+e.map(_e)+"]":Fe(e)||de(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function lw(e){return U(e,"or")}function cw(e){return U(e,"and")}function fw(e){return U(e,"not")}function Eh(e,t){if(fw(e))Eh(e.not,t);else if(cw(e))for(const n of e.and)Eh(n,t);else if(lw(e))for(const n of e.or)Eh(n,t);else t(e)}function vu(e,t){return fw(e)?{not:vu(e.not,t)}:cw(e)?{and:e.and.map(n=>vu(n,t))}:lw(e)?{or:e.or.map(n=>vu(n,t))}:t(e)}const ce=structuredClone;function $N(e){throw new Error(e)}function qu(e,t){const n={};for(const i of t)pt(e,i)&&(n[i]=e[i]);return n}function Rn(e,t){const n={...e};for(const i of t)delete n[i];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>je(e)).join(",")})`};function Ae(e){if(Ze(e))return e;const t=de(e)?e:je(e);if(t.length<250)return t;let n=0;for(let i=0;i<t.length;i++){const r=t.charCodeAt(i);n=(n<<5)-n+r,n=n&n}return n}function jb(e){return e===!1||e===null}function we(e,t){return e.includes(t)}function Wu(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function dw(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function _N(e,...t){for(const n of t)qre(e,n??{});return e}function qre(e,t){for(const n of B(t))E0(e,n,t[n],!0)}function cr(e,t){const n=[],i={};let r;for(const o of e)r=t(o),!(r in i)&&(i[r]=1,n.push(o));return n}function Wre(e,t){const n=B(e),i=B(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function FN(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function hw(e,t){for(const n of e)if(t.has(n))return!0;return!1}function qb(e){const t=new Set;for(const n of e){const r=La(n).map((s,a)=>a===0?s:`[${s}]`),o=r.map((s,a)=>r.slice(0,a+1).join(""));for(const s of o)t.add(s)}return t}function pw(e,t){return e===void 0||t===void 0?!0:hw(qb(e),qb(t))}function Ue(e){return B(e).length===0}const B=Object.keys,qt=Object.values,is=Object.entries;function uf(e){return e===!0||e===!1}function Qe(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Nc(e,t){return fw(e)?`!(${Nc(e.not,t)})`:cw(e)?`(${e.and.map(n=>Nc(n,t)).join(") && (")})`:lw(e)?`(${e.or.map(n=>Nc(n,t)).join(") || (")})`:t(e)}function Np(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&Np(e[n],t)&&delete e[n],Ue(e)}function Yf(e){return e.charAt(0).toUpperCase()+e.substr(1)}function gw(e,t="datum"){const n=La(e),i=[];for(let r=1;r<=n.length;r++){const o=`[${n.slice(0,r).map(_e).join("][")}]`;i.push(`${t}${o}`)}return i.join(" && ")}function kN(e,t="datum"){return`${t}[${_e(La(e).join("."))}]`}function Le(e){return`datum['${e.replaceAll("'","\\'")}']`}function Gre(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function bi(e){return`${La(e).map(Gre).join("\\.")}`}function ma(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function bl(e){return`${La(e).join(".")}`}function Gu(e){return e?La(e).length:0}function ft(...e){return e.find(t=>t!==void 0)}let DN=42;function TN(e){const t=++DN;return e?String(e)+t:t}function Hre(){DN=42}function MN(e){return ON(e)?e:`__${e}`}function ON(e){return e.startsWith("__")}function lf(e){if(e!==void 0)return(e%360+360)%360}function w0(e){return Ze(e)?!0:!isNaN(e)&&!isNaN(parseFloat(e))}const C_=Object.getPrototypeOf(structuredClone({}));function Xn(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor.name!==t.constructor.name)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=n;i--!==0;)if(!Xn(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;for(const o of e.entries())if(!Xn(o[1],t.get(o[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;i--!==0;)if(e[i]!==t[i])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==C_.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==C_.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;i--!==0;){const o=r[i];if(!Xn(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function je(e){const t=[];return function n(i){if(i&&i.toJSON&&typeof i.toJSON=="function"&&(i=i.toJSON()),i===void 0)return;if(typeof i=="number")return isFinite(i)?""+i:"null";if(typeof i!="object")return JSON.stringify(i);let r,o;if(Array.isArray(i)){for(o="[",r=0;r<i.length;r++)r&&(o+=","),o+=n(i[r])||"null";return o+"]"}if(i===null)return"null";if(t.includes(i))throw new TypeError("Converting circular structure to JSON");const s=t.push(i)-1,a=Object.keys(i).sort();for(o="",r=0;r<a.length;r++){const u=a[r],l=n(i[u]);l&&(o&&(o+=","),o+=JSON.stringify(u)+":"+l)}return t.splice(s,1),`{${o}}`}(e)}function U(e,t){return Fe(e)&&pt(e,t)&&e[t]!==void 0}const ro="row",oo="column",A0="facet",et="x",Mt="y",Vi="x2",Tr="y2",hs="xOffset",xl="yOffset",Yi="radius",vo="radius2",Ei="theta",Eo="theta2",Xi="latitude",Ki="longitude",Ji="latitude2",xi="longitude2",ps="time",Bn="color",Mr="fill",Or="stroke",Un="shape",wo="size",Pa="angle",Ao="opacity",gs="fillOpacity",ms="strokeOpacity",ys="strokeWidth",bs="strokeDash",Xf="text",Hu="order",Kf="detail",S0="key",ya="tooltip",C0="href",$0="url",_0="description",Vre={x:1,y:1,x2:1,y2:1},RN={theta:1,theta2:1,radius:1,radius2:1};function NN(e){return pt(RN,e)}const mw={longitude:1,longitude2:1,latitude:1,latitude2:1};function LN(e){switch(e){case Xi:return"y";case Ji:return"y2";case Ki:return"x";case xi:return"x2"}}function PN(e){return pt(mw,e)}const Yre=B(mw),yw={...Vre,...RN,...mw,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,time:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function Eu(e){return e===Bn||e===Mr||e===Or}const IN={row:1,column:1,facet:1},di=B(IN),bw={...yw,...IN},Xre=B(bw),{order:ime,detail:rme,tooltip:ome,...Kre}=bw,{row:sme,column:ame,facet:ume,...Jre}=Kre;function Qre(e){return pt(Jre,e)}function zN(e){return pt(bw,e)}const Zre=[Vi,Tr,Ji,xi,Eo,vo];function BN(e){return Ia(e)!==e}function Ia(e){switch(e){case Vi:return et;case Tr:return Mt;case Ji:return Xi;case xi:return Ki;case Eo:return Ei;case vo:return Yi}return e}function rs(e){if(NN(e))switch(e){case Ei:return"startAngle";case Eo:return"endAngle";case Yi:return"outerRadius";case vo:return"innerRadius"}return e}function Rr(e){switch(e){case et:return Vi;case Mt:return Tr;case Xi:return Ji;case Ki:return xi;case Ei:return Eo;case Yi:return vo}}function jn(e){switch(e){case et:case Vi:return"width";case Mt:case Tr:return"height"}}function UN(e){switch(e){case et:return"xOffset";case Mt:return"yOffset";case Vi:return"x2Offset";case Tr:return"y2Offset";case Ei:return"thetaOffset";case Yi:return"radiusOffset";case Eo:return"theta2Offset";case vo:return"radius2Offset"}}function xw(e){switch(e){case et:return"xOffset";case Mt:return"yOffset"}}function eoe(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const toe=B(yw),{x:lme,y:cme,x2:fme,y2:dme,xOffset:hme,yOffset:pme,latitude:gme,longitude:mme,latitude2:yme,longitude2:bme,theta:xme,theta2:vme,radius:Eme,radius2:wme,...vw}=yw,noe=B(vw),Ew={x:1,y:1},So=B(Ew);function dt(e){return pt(Ew,e)}const ww={theta:1,radius:1},ioe=B(ww);function F0(e){return e==="width"?et:Mt}const jN={xOffset:1,yOffset:1};function Jf(e){return pt(jN,e)}const roe={time:1};function S1(e){return e in roe}const{text:Ame,tooltip:Sme,href:Cme,url:$me,description:_me,detail:Fme,key:kme,order:Dme,...qN}=vw,ooe=B(qN);function soe(e){return pt(vw,e)}function aoe(e){switch(e){case Bn:case Mr:case Or:case wo:case Un:case Ao:case ys:case bs:return!0;case gs:case ms:case Pa:case ps:return!1}}const WN={...Ew,...ww,...jN,...qN},Aw=B(WN);function Nr(e){return pt(WN,e)}function uoe(e,t){return coe(e)[t]}const GN={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Tme,...loe}=GN;function coe(e){switch(e){case Bn:case Mr:case Or:case _0:case Kf:case S0:case ya:case C0:case Hu:case Ao:case gs:case ms:case ys:case A0:case ro:case oo:return GN;case et:case Mt:case hs:case xl:case Xi:case Ki:case ps:return loe;case Vi:case Tr:case Ji:case xi:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case wo:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case bs:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case Un:return{point:"always",geoshape:"always"};case Xf:return{text:"always"};case Pa:return{point:"always",square:"always",text:"always"};case $0:return{image:"always"};case Ei:return{text:"always",arc:"always"};case Yi:return{text:"always",arc:"always"};case Eo:case vo:return{arc:"always"}}}function C1(e){switch(e){case et:case Mt:case Ei:case Yi:case hs:case xl:case wo:case Pa:case ys:case Ao:case gs:case ms:case ps:case Vi:case Tr:case Eo:case vo:return;case A0:case ro:case oo:case Un:case bs:case Xf:case ya:case C0:case $0:case _0:return"discrete";case Bn:case Mr:case Or:return"flexible";case Xi:case Ki:case Ji:case xi:case Kf:case S0:case Hu:return}}const foe={argmax:1,argmin:1,average:1,count:1,distinct:1,exponential:1,exponentialb:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},doe={count:1,min:1,max:1};function po(e){return U(e,"argmin")}function xs(e){return U(e,"argmax")}function Sw(e){return de(e)&&pt(foe,e)}const hoe=new Set(["count","valid","missing","distinct"]);function k0(e){return de(e)&&hoe.has(e)}function poe(e){return de(e)&&we(["min","max"],e)}const goe=new Set(["count","sum","distinct","valid","missing"]),moe=new Set(["mean","average","median","q1","q3","min","max"]);function HN(e){return Vf(e)&&(e=U0(e,void 0)),"bin"+B(e).map(t=>D0(e[t])?Qe(`_${t}_${is(e[t])}`):Qe(`_${t}_${e[t]}`)).join("")}function He(e){return e===!0||za(e)&&!e.binned}function Nt(e){return e==="binned"||za(e)&&e.binned===!0}function za(e){return Fe(e)}function D0(e){return U(e,"param")}function $_(e){switch(e){case ro:case oo:case wo:case Bn:case Mr:case Or:case ys:case Ao:case gs:case ms:case Un:return 6;case bs:return 4;default:return 10}}function Qf(e){return U(e,"expr")}function Lt(e,{level:t}={level:0}){const n=B(e||{}),i={};for(const r of n)i[r]=t===0?Vn(e[r]):Lt(e[r],{level:t-1});return i}function VN(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:s,color:a,subtitleColor:u,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...g}=e,m={...g,...a?{fill:a}:{}},y={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...o!==void 0?{angle:o}:{},...s!==void 0?{limit:s}:{}},b={...u?{subtitleColor:u}:{},...l?{subtitleFont:l}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}},x=qu(e,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:m,subtitleMarkConfig:x,nonMarkTitleProperties:y,subtitle:b}}function Ro(e){return de(e)||X(e)&&de(e[0])}function Q(e){return U(e,"signal")}function Ba(e){return U(e,"step")}function yoe(e){return X(e)?!1:U(e,"fields")&&!U(e,"data")}function boe(e){return X(e)?!1:U(e,"fields")&&U(e,"data")}function eo(e){return X(e)?!1:U(e,"field")&&U(e,"data")}const xoe={aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1},voe=B(xoe),Eoe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Wb=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function YN(e){const t=X(e.condition)?e.condition.map(__):__(e.condition);return{...Vn(e),condition:t}}function Vn(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function __(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function Ye(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Q(e)?e:e!==void 0?{value:e}:void 0}function woe(e){return Q(e)?e.signal:_e(e)}function F_(e){return Q(e)?e.signal:_e(e.value)}function Mi(e){return Q(e)?e.signal:e==null?null:_e(e)}function Aoe(e,t,n){for(const i of n){const r=Ar(i,t.markDef,t.config);r!==void 0&&(e[i]=Ye(r))}return e}function XN(e){return[].concat(e.type,e.style??[])}function Be(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&U(t,r)?t[r]:t[e]!==void 0?t[e]:o&&(!r||r===e)?void 0:Ar(e,t,n,i)}function Ar(e,t,n,{vgChannel:i}={}){const r=Gb(e,t,n.style);return ft(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function Gb(e,t,n){return KN(e,XN(t),n)}function KN(e,t,n){t=ct(t);let i;for(const r of t){const o=n[r];U(o,e)&&(i=o[e])}return i}function JN(e,t){return ct(e).reduce((n,i)=>(n.field.push(H(i,t)),n.order.push(i.sort??"ascending"),n),{field:[],order:[]})}function QN(e,t){const n=[...e];return t.forEach(i=>{for(const r of n)if(Xn(r,i))return;n.push(i)}),n}function ZN(e,t){return Xn(e,t)||!t?e:e?[...ct(e),...ct(t)].join(", "):t}function e6(e,t){const n=e.value,i=t.value;if(n==null||i===null)return{explicit:e.explicit,value:null};if((Ro(n)||Q(n))&&(Ro(i)||Q(i)))return{explicit:e.explicit,value:ZN(n,i)};if(Ro(n)||Q(n))return{explicit:e.explicit,value:n};if(Ro(i)||Q(i))return{explicit:e.explicit,value:i};if(!Ro(n)&&!Q(n)&&!Ro(i)&&!Q(i))return{explicit:e.explicit,value:QN(n,i)};throw new Error("It should never reach here")}function Cw(e){return`Invalid specification ${je(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Soe='Autosize "fit" only works for single views and layered views.';function k_(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function D_(e){const t=e=="width"?"Width":"Height",n=e=="width"?"x":"y";return`${t} "container" only works well with autosize "fit" or "fit-${n}".`}function T_(e){return e?`Dropping "fit-${e}" because spec has discrete ${jn(e)}.`:'Dropping "fit" because spec has discrete size.'}function $w(e){return`Unknown field for ${e}. Cannot calculate view size.`}function M_(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Coe(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function $oe(e){return`The "nearest" transform is not supported for ${e} marks.`}function t6(e){return`Selection not supported for ${e} yet.`}function _oe(e){return`Cannot find a selection named "${e}".`}const Foe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",koe="Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc",Doe="Legend bindings are only supported for selections over an individual field or encoding channel.";function Toe(e){return`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`}function Moe(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}const Ooe="The same selection must be used to override scale domains in a layered view.",Roe='Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.';function Noe(e){return`Unknown repeated value "${e}".`}function O_(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const Loe="Multiple timer selections in one unit spec are not supported. Ignoring all but the first.",_w="Animation involving facet, layer, or concat is currently unsupported.";function Poe(e){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${gu(e)}.`}function Ioe(e,t,n,i){return(e.length?"Multiple ":"No ")+`matching ${gu(t)} encoding found for selection ${gu(n.param)}. Using "field": ${gu(i)}.`}const zoe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Boe(e){return`Unrecognized parse "${e}".`}function R_(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}const Uoe="Attempt to add the same child twice.";function joe(e){return`Ignoring an invalid transform: ${je(e)}.`}const qoe='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function N_(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function Woe(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${je(t)} is overridden by a child projection ${je(n)}.`}const Goe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Hoe(e){return`${e}Offset dropped because ${e} is continuous`}function Voe(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${je(n)}}.`}function n6(e){return`Invalid field type "${e}".`}function Yoe(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Xoe(e){return`Invalid aggregation operator "${e}".`}function i6(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`}function Koe(e){return`Position range does not support relative band size for ${e}.`}function Hb(e,t){return`Dropping ${je(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}const Joe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function T0(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function Qoe(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function Zoe(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function ese(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function tse(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function $1(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function nse(e){return`The ${e} for range marks cannot be an expression`}function ise(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function rse(e,t){return`Specified orient "${e}" overridden with "${t}".`}function ose(e){return`Cannot use the scale property "${e}" with non-color channel.`}function sse(e){return`Cannot use the relative band size with ${e} scale.`}function ase(e){return`Using unaggregated domain with raw field has no effect (${je(e)}).`}function use(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function lse(e){return`Unaggregated domain is currently unsupported for log scale (${je(e)}).`}function cse(e){return`Cannot apply size to non-oriented mark "${e}".`}function fse(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function dse(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function r6(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function o6(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}function hse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using ${je(n)}.`}function pse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using the union of the two domains.`}function gse(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function mse(e){return`Dropping sort property ${je(e)} as unioned domains only support boolean or op "count", "min", and "max".`}const L_="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",yse="Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.",bse="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.",xse="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";function vse(e){return`Cannot stack "${e}" if there is already "${e}2".`}function Ese(e){return`Stack is applied to a non-linear scale (${e}).`}function wse(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`}function Lp(e,t){return`Invalid ${e}: ${je(t)}.`}function Ase(e){return`Dropping day from datetime ${je(e)} as day cannot be combined with other units.`}function Sse(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function Cse(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function $se(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function P_(e){return`1D error band does not support ${e}.`}function s6(e){return`Channel ${e} is required for "binned" bin.`}function _se(e){return`Channel ${e} should not be used with "binned" bin.`}function Fse(e){return`Domain for ${e} is required for threshold scale.`}const a6=zre(SN);let ba=a6;function kse(e){return ba=e,ba}function Dse(){return ba=a6,ba}function Fw(...e){ba.error(...e)}function j(...e){ba.warn(...e)}function Tse(...e){ba.debug(...e)}function Ua(e){if(e&&Fe(e)){for(const t of Dw)if(U(e,t))return!0}return!1}const u6=["january","february","march","april","may","june","july","august","september","october","november","december"],Mse=u6.map(e=>e.substr(0,3)),l6=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Ose=l6.map(e=>e.substr(0,3));function Rse(e){if(w0(e)&&(e=+e),Ze(e))return e>4&&j(Lp("quarter",e)),e-1;throw new Error(Lp("quarter",e))}function Nse(e){if(w0(e)&&(e=+e),Ze(e))return e-1;{const t=e.toLowerCase(),n=u6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Mse.indexOf(i);if(r!==-1)return r;throw new Error(Lp("month",e))}}function Lse(e){if(w0(e)&&(e=+e),Ze(e))return e%7;{const t=e.toLowerCase(),n=l6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Ose.indexOf(i);if(r!==-1)return r;throw new Error(Lp("day",e))}}function kw(e,t){const n=[];if(t&&e.day!==void 0&&B(e).length>1&&(j(Ase(e)),e=ce(e),delete e.day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const i=t?Nse(e.month):e.month;n.push(i)}else if(e.quarter!==void 0){const i=t?Rse(e.quarter):e.quarter;n.push(Ze(i)?i*3:`${i}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const i=t?Lse(e.day):e.day;n.push(Ze(i)?i+1:`${i}+1`)}else n.push(1);for(const i of["hours","minutes","seconds","milliseconds"]){const r=e[i];n.push(typeof r>"u"?0:r)}return n}function xa(e){const n=kw(e,!0).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Pse(e){const n=kw(e,!1).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Ise(e){const t=kw(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}const c6={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Dw=B(c6);function zse(e){return Hr(c6,e)}function ja(e){return Fe(e)?e.binned:f6(e)}function f6(e){return e&&e.startsWith("binned")}function Tw(e){return e.startsWith("utc")}function Bse(e){return e.substring(3)}const Use={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function M0(e){return Dw.filter(t=>h6(e,t))}function d6(e){const t=M0(e);return t[t.length-1]}function h6(e,t){const n=e.indexOf(t);return!(n<0||n>0&&t==="seconds"&&e.charAt(n-1)==="i"||e.length>n+3&&t==="day"&&e.charAt(n+3)==="o"||n>0&&t==="year"&&e.charAt(n-1)==="f")}function jse(e,t,{end:n}={end:!1}){const i=gw(t),r=Tw(e)?"utc":"";function o(u){return u==="quarter"?`(${r}quarter(${i})-1)`:`${r}${u}(${i})`}let s;const a={};for(const u of Dw)h6(e,u)&&(a[u]=o(u),s=u);return n&&(a[s]+="+1"),Pse(a)}function p6(e){if(!e)return;const t=M0(e);return`timeUnitSpecifier(${je(t)}, ${je(Use)})`}function qse(e,t,n){if(!e)return;const i=p6(e);return`${n||Tw(e)?"utc":"time"}Format(${t}, ${i})`}function kt(e){if(!e)return;let t;return de(e)?f6(e)?t={unit:e.substring(6),binned:!0}:t={unit:e}:Fe(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),Tw(t.unit)&&(t.utc=!0,t.unit=Bse(t.unit)),t}function Wse(e){const{utc:t,...n}=kt(e);return n.unit?(t?"utc":"")+B(n).map(i=>Qe(`${i==="unit"?"":`_${i}_`}${n[i]}`)).join(""):(t?"utc":"")+"timeunit"+B(n).map(i=>Qe(`_${i}_${n[i]}`)).join("")}function g6(e,t=n=>n){const n=kt(e),i=d6(n.unit);if(i&&i!=="day"){const r={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:o,part:s}=m6(i,n.step),a={...r,[s]:+r[s]+o};return`${t(xa(a))} - ${t(xa(r))}`}}const Gse={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Hse(e){return Hr(Gse,e)}function m6(e,t=1){if(Hse(e))return{part:e,step:t};switch(e){case"day":case"dayofyear":return{part:"date",step:t};case"quarter":return{part:"month",step:t*3};case"week":return{part:"date",step:t*7}}}function Vse(e){return U(e,"param")}function Mw(e){return!!e?.field&&e.equal!==void 0}function Ow(e){return!!e?.field&&e.lt!==void 0}function Rw(e){return!!e?.field&&e.lte!==void 0}function Nw(e){return!!e?.field&&e.gt!==void 0}function Lw(e){return!!e?.field&&e.gte!==void 0}function Pw(e){if(e?.field){if(X(e.range)&&e.range.length===2)return!0;if(Q(e.range))return!0}return!1}function Iw(e){return!!e?.field&&(X(e.oneOf)||X(e.in))}function Yse(e){return!!e?.field&&e.valid!==void 0}function y6(e){return Iw(e)||Mw(e)||Pw(e)||Ow(e)||Nw(e)||Rw(e)||Lw(e)}function nr(e,t){return j0(e,{timeUnit:t,wrapTime:!0})}function Xse(e,t){return e.map(n=>nr(n,t))}function b6(e,t=!0){const{field:n}=e,i=kt(e.timeUnit),{unit:r,binned:o}=i||{},s=H(e,{expr:"datum"}),a=r?`time(${o?s:jse(r,n)})`:s;if(Mw(e))return`${a}===${nr(e.equal,r)}`;if(Ow(e)){const u=e.lt;return`${a}<${nr(u,r)}`}else if(Nw(e)){const u=e.gt;return`${a}>${nr(u,r)}`}else if(Rw(e)){const u=e.lte;return`${a}<=${nr(u,r)}`}else if(Lw(e)){const u=e.gte;return`${a}>=${nr(u,r)}`}else{if(Iw(e))return`indexof([${Xse(e.oneOf,r).join(",")}], ${a}) !== -1`;if(Yse(e))return O0(a,e.valid);if(Pw(e)){const{range:u}=Lt(e),l=Q(u)?{signal:`${u.signal}[0]`}:u[0],c=Q(u)?{signal:`${u.signal}[1]`}:u[1];if(l!==null&&c!==null&&t)return"inrange("+a+", ["+nr(l,r)+", "+nr(c,r)+"])";const f=[];return l!==null&&f.push(`${a} >= ${nr(l,r)}`),c!==null&&f.push(`${a} <= ${nr(c,r)}`),f.length>0?f.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${je(e)}`)}function O0(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function Kse(e){return y6(e)&&e.timeUnit?{...e,timeUnit:kt(e.timeUnit)}:e}const Zf={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Jse(e){return e==="quantitative"||e==="temporal"}function x6(e){return e==="ordinal"||e==="nominal"}const va=Zf.quantitative,zw=Zf.ordinal,Vu=Zf.temporal,Bw=Zf.nominal,vl=Zf.geojson;function Qse(e){if(e)switch(e=e.toLowerCase(),e){case"q":case va:return"quantitative";case"t":case Vu:return"temporal";case"o":case zw:return"ordinal";case"n":case Bw:return"nominal";case vl:return"geojson"}}const Pt={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",TIME:"time",UTC:"utc",POINT:"point",BAND:"band"},Vb={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 Zse(e,t){const n=Vb[e],i=Vb[t];return n===i||n==="ordinal-position"&&i==="time"||i==="ordinal-position"&&n==="time"}const eae={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 I_(e){return eae[e]}const v6=new Set(["linear","log","pow","sqrt","symlog"]),E6=new Set([...v6,"time","utc"]);function w6(e){return v6.has(e)}const A6=new Set(["quantile","quantize","threshold"]),tae=new Set([...E6,...A6,"sequential","identity"]),nae=new Set(["ordinal","bin-ordinal","point","band"]);function Dt(e){return nae.has(e)}function Bi(e){return tae.has(e)}function fr(e){return E6.has(e)}function Yu(e){return A6.has(e)}const iae={pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,tickBandPaddingInner:.25,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:4,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0,framesPerSecond:2,animationDuration:5};function rae(e){return!de(e)&&U(e,"name")}function S6(e){return U(e,"param")}function oae(e){return U(e,"unionWith")}function sae(e){return Fe(e)&&"field"in e}const aae={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw: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:Mme,domain:Ome,range:Rme,rangeMax:Nme,rangeMin:Lme,scheme:Pme,...uae}=aae,lae=B(uae);function Yb(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return fr(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return fr(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return e==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return fr(e);case"nice":return fr(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Bi(e)&&!we(["log","time","utc","threshold","quantile"],e)}}function C6(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return Eu(e)?void 0:ose(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":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 cae(e,t){return we([zw,Bw],t)?e===void 0||Dt(e):t===Vu?we([Pt.TIME,Pt.UTC,void 0],e):t===va?w6(e)||Yu(e)||e===void 0:!0}function fae(e,t,n=!1){if(!Nr(e))return!1;switch(e){case et:case Mt:case hs:case xl:case Ei:case Yi:return fr(t)||t==="band"?!0:t==="point"?!n:!1;case ps:return we(["linear","band"],t);case wo:case ys:case Ao:case gs:case ms:case Pa:return fr(t)||Yu(t)||we(["band","point","ordinal"],t);case Bn:case Mr:case Or:return t!=="band";case bs:case Un:return t==="ordinal"||Yu(t)}}function dae(e){return Fe(e)&&"value"in e}const _n={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"},$6=_n.arc,R0=_n.area,N0=_n.bar,hae=_n.image,L0=_n.line,P0=_n.point,pae=_n.rect,Pp=_n.rule,_6=_n.text,Uw=_n.tick,gae=_n.trail,jw=_n.circle,qw=_n.square,F6=_n.geoshape;function vs(e){return["line","area","trail"].includes(e)}function cf(e){return["rect","bar","image","arc","tick"].includes(e)}const mae=new Set(B(_n));function Sr(e){return U(e,"type")}const yae=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],bae=["fill","fillOpacity"],xae=[...yae,...bae],vae={color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1},z_=B(vae),_1=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],Eae={area:["line","point"],bar:_1,rect:_1,line:["point"],tick:["bandSize","thickness",..._1]},wae={color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},Aae={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},k6=B(Aae);function Ea(e){return U(e,"band")}const Sae={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Cae=5,Ww={binSpacing:0,continuousBandSize:Cae,minBandSize:.25,timeUnitBandPosition:.5},$ae={...Ww,binSpacing:1},_ae={...Ww,thickness:1};function Fae(e){return Sr(e)?e.type:e}function D6(e,{isPath:t}){return e===void 0||e==="break-paths-show-path-domains"?t?"break-paths-show-domains":"filter":e===null?"show":e}function Gw({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){if(!i||!Bi(i)||r)return"always-valid";const o=D6(Be("invalid",e,t),{isPath:vs(e.type)});return t.scale?.invalid?.[n]!==void 0?"show":o}function kae(e){return e==="break-paths-filter-domains"||e==="break-paths-show-domains"}function T6({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,s=t.domainHasZero();return s==="definitely"?{scale:e,value:0}:s==="maybe"?{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${n==="zeroOrMin"?r:o})`}:{signal:`scale('${e}', ${n==="zeroOrMin"?r:o})`}}function M6({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){const s=n?.get("type"),a=ji(t),u=k0(a?.aggregate),l=Gw({scaleChannel:e,markDef:r,config:o,scaleType:s,isCountAggregate:u});if(a&&l==="show"){const c=o.scale.invalid?.[e]??"zero-or-min";return{test:O0(H(a,{expr:"datum"}),!1),...Dae(c,n,i)}}}function Dae(e,t,n){if(dae(e)){const{value:i}=e;return Q(i)?{signal:i.signal}:{value:i}}return T6({scale:t,scaleName:n,mode:"zeroOrMin"})}function Hw(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:s}=e,a=Ia(t),u=Vw(e),l=M6({scaleChannel:a,channelDef:n,scale:r,scaleName:o,markDef:i,config:s});return l!==void 0?[l,u]:u}function Tae(e){const{datum:t}=e;return Ua(t)?xa(t):`${je(t)}`}function Zs(e,t,n,i){const r={};if(t&&(r.scale=t),Lr(e)){const{datum:o}=e;Ua(o)?r.signal=xa(o):Q(o)?r.signal=o.signal:Qf(o)?r.signal=o.expr:r.value=o}else r.field=H(e,n);if(i){const{offset:o,band:s}=i;o&&(r.offset=o),s&&(r.band=s)}return r}function Ip({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:s=.5}){const a=!Q(s)&&0<s&&s<1?"datum":void 0,u=H(t,{expr:a,suffix:r}),l=n!==void 0?H(n,{expr:a}):H(t,{suffix:o,expr:a}),c={};if(s===0||s===1){c.scale=e;const f=s===0?u:l;c.field=f}else{const f=Q(s)?`(1-${s.signal}) * ${u} + ${s.signal} * ${l}`:`${1-s} * ${u} + ${s} * ${l}`;c.signal=`scale("${e}", ${f})`}return i&&(c.offset=i),c}function Mae({scaleName:e,fieldDef:t}){const n=H(t,{expr:"datum"}),i=H(t,{expr:"datum",suffix:"end"});return`abs(scale("${e}", ${i}) - scale("${e}", ${n}))`}function Vw({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l,bandPosition:c}){if(t){if(fe(t)){const f=s?.get("type");if(Cn(t)){c??(c=os({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:d,timeUnit:h,type:p}=t;if(He(d)||c&&h&&p===Vu)return a?.impute?Zs(t,o,{binSuffix:"mid"},{offset:u}):c&&!Dt(f)?Ip({scaleName:o,fieldOrDatumDef:t,bandPosition:c,offset:u}):Zs(t,o,rd(t,e)?{binSuffix:"range"}:{},{offset:u});if(Nt(d)){if(q(n))return Ip({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:c,offset:u});j(s6(e===et?Vi:Tr))}}return Zs(t,o,Dt(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?c??t.bandPosition??.5:void 0})}else if(Ui(t)){const f=t.value,d=u?{offset:u}:{};return{...Lc(e,f),...d}}}return Ure(l)&&(l=l()),l&&{...l,...u?{offset:u}:{}}}function Lc(e,t){return we(["x","x2"],e)&&t==="width"?{field:{group:"width"}}:we(["y","y2"],e)&&t==="height"?{field:{group:"height"}}:Ye(t)}function wa(e){return e&&e!=="number"&&e!=="time"}function O6(e,t,n){return`${e}(${t}${n?`, ${je(n)}`:""})`}const Oae=" – ";function Yw({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o}){if(wa(n))return Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,config:o});const s=R6(e,i,r),a=Xu(e);if(t===void 0&&n===void 0&&o.customFormatTypes){if(a==="quantitative"){if(r&&o.normalizedNumberFormatType)return Oi({fieldOrDatumDef:e,format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,expr:i,config:o});if(o.numberFormatType)return Oi({fieldOrDatumDef:e,format:o.numberFormat,formatType:o.numberFormatType,expr:i,config:o})}if(a==="temporal"&&o.timeFormatType&&q(e)&&e.timeUnit===void 0)return Oi({fieldOrDatumDef:e,format:o.timeFormat,formatType:o.timeFormatType,expr:i,config:o})}if(Ju(e)){const u=Nae({field:s,timeUnit:q(e)?kt(e.timeUnit)?.unit:void 0,format:t,formatType:o.timeFormatType,rawTimeFormat:o.timeFormat,isUTCScale:qa(e)&&e.scale?.type===Pt.UTC});return u?{signal:u}:void 0}if(t=Xb({type:a,specifiedFormat:t,config:o,normalizeStack:r}),q(e)&&He(e.bin)){const u=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,u,t,n,o)}}else return t||Xu(e)==="quantitative"?{signal:`${P6(s,t)}`}:{signal:`isValid(${s}) ? ${s} : ""+${s}`}}function R6(e,t,n){return q(e)?n?`${H(e,{expr:t,suffix:"end"})}-${H(e,{expr:t,suffix:"start"})}`:H(e,{expr:t}):Tae(e)}function Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:s}){if(s??(s=R6(e,i,r)),s!=="datum.value"&&q(e)&&He(e.bin)){const a=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,a,t,n,o)}}return{signal:O6(n,s,t)}}function N6(e,t,n,i,r,o){if(!(de(i)&&wa(i))&&!(n===void 0&&i===void 0&&r.customFormatTypes&&Xu(e)==="quantitative"&&(r.normalizedNumberFormatType&&Ku(e)&&e.stack==="normalize"||r.numberFormatType))){if(Ku(e)&&e.stack==="normalize"&&r.normalizedNumberFormat)return Xb({type:"quantitative",config:r,normalizeStack:!0});if(Ju(e)){const s=q(e)?kt(e.timeUnit)?.unit:void 0;return s===void 0&&r.customFormatTypes&&r.timeFormatType?void 0:Rae({specifiedFormat:n,timeUnit:s,config:r,omitTimeFormatConfig:o})}return Xb({type:t,specifiedFormat:n,config:r})}}function L6(e,t,n){if(e&&(Q(e)||e==="number"||e==="time"))return e;if(Ju(t)&&n!=="time"&&n!=="utc")return q(t)&&kt(t?.timeUnit)?.utc?"utc":"time"}function Xb({type:e,specifiedFormat:t,config:n,normalizeStack:i}){if(de(t))return t;if(e===va)return i?n.normalizedNumberFormat:n.numberFormat}function Rae({specifiedFormat:e,timeUnit:t,config:n,omitTimeFormatConfig:i}){return e||(t?{signal:p6(t)}:i?void 0:n.timeFormat)}function P6(e,t){return`format(${e}, "${t||""}")`}function B_(e,t,n,i){return wa(n)?O6(n,e,t):P6(e,(de(t)?t:void 0)??i.numberFormat)}function ed(e,t,n,i,r){if(n===void 0&&i===void 0&&r.customFormatTypes&&r.numberFormatType)return ed(e,t,r.numberFormat,r.numberFormatType,r);const o=B_(e,n,i,r),s=B_(t,n,i,r);return`${O0(e,!1)} ? "null" : ${o} + "${Oae}" + ${s}`}function Nae({field:e,timeUnit:t,format:n,formatType:i,rawTimeFormat:r,isUTCScale:o}){return!t||n?!t&&i?`${i}(${e}, '${n}')`:(n=de(n)?n:r,`${o?"utc":"time"}Format(${e}, '${n}')`):qse(t,e,o)}const I0="min",Lae={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 U_(e){return pt(Lae,e)}function Pae(e){return U(e,"encoding")}function so(e){return e&&(e.op==="count"||U(e,"field"))}function I6(e){return e&&X(e)}function td(e){return U(e,"row")||U(e,"column")}function Xw(e){return U(e,"header")}function z0(e){return U(e,"facet")}function Iae(e){return U(e,"param")}function zae(e){return!de(e)&&U(e,"repeat")}function j_(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function Kw(e){return U(e,"sort")}function os({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(fe(e)&&e.bandPosition!==void 0)return e.bandPosition;if(q(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return Ar("timeUnitBandPosition",n,i);if(He(o))return .5}}function z6({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:s}){const a=jn(e),u=Be(s?"size":a,i,r,{vgChannel:a});if(u!==void 0)return u;if(q(t)){const{timeUnit:l,bin:c}=t;if(l&&!n)return{band:Ar("timeUnitBandSize",i,r)};if(He(c)&&!Dt(o))return{band:1}}if(cf(i.type))return o?Dt(o)?r[i.type]?.discreteBandSize||{band:1}:r[i.type]?.continuousBandSize:r[i.type]?.discreteBandSize}function B6(e,t,n,i){return He(e.bin)||e.timeUnit&&Cn(e)&&e.type==="temporal"?os({fieldDef:e,fieldDef2:t,markDef:n,config:i})!==void 0:!1}function U6(e){return U(e,"sort")&&!U(e,"field")}function nd(e){return U(e,"condition")}function B0(e){const t=e?.condition;return!!t&&!X(t)&&q(t)}function id(e){const t=e?.condition;return!!t&&!X(t)&&fe(t)}function Bae(e){const t=e?.condition;return!!t&&(X(t)||Ui(t))}function q(e){return U(e,"field")||e?.aggregate==="count"}function Xu(e){return e?.type}function Lr(e){return U(e,"datum")}function Wo(e){return Cn(e)&&!Bp(e)||zp(e)}function q_(e){return Cn(e)&&e.type==="quantitative"&&!e.bin||zp(e)}function zp(e){return Lr(e)&&Ze(e.datum)}function fe(e){return q(e)||Lr(e)}function Cn(e){return e&&(U(e,"field")||e.aggregate==="count")&&U(e,"type")}function Ui(e){return U(e,"value")}function qa(e){return U(e,"scale")||U(e,"sort")}function Ku(e){return U(e,"axis")||U(e,"stack")||U(e,"impute")}function j6(e){return U(e,"legend")}function q6(e){return U(e,"format")||U(e,"formatType")}function Uae(e){return Rn(e,["legend","axis","header","scale"])}function jae(e){return U(e,"op")}function H(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(Wae(e))n=MN("count");else{let s;if(!t.nofn)if(jae(e))s=e.op;else{const{bin:a,aggregate:u,timeUnit:l}=e;He(a)?(s=HN(a),r=(t.binSuffix??"")+(t.suffix??"")):u?xs(u)?(o=`["${n}"]`,n=`argmax_${u.argmax}`):po(u)?(o=`["${n}"]`,n=`argmin_${u.argmin}`):s=String(u):l&&!ja(l)&&(s=Wse(l),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}s&&(n=n?`${s}_${n}`:s)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?bl(n):t.expr?kN(n,t.expr)+o:bi(n)+o}function Bp(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return q(e)&&!!e.bin;case"temporal":return!1}throw new Error(n6(e.type))}function qae(e){return qa(e)&&Yu(e.scale?.type)}function Wae(e){return e.aggregate==="count"}function Gae(e,t){const{field:n,bin:i,timeUnit:r,aggregate:o}=e;if(o==="count")return t.countTitle;if(He(i))return`${n} (binned)`;if(r&&!ja(r)){const s=kt(r)?.unit;if(s)return`${n} (${M0(s).join("-")})`}else if(o)return xs(o)?`${n} for max ${o.argmax}`:po(o)?`${n} for min ${o.argmin}`:`${Yf(o)} of ${n}`;return n}function Hae(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(xs(t))return`${r} for argmax(${t.argmax})`;if(po(t))return`${r} for argmin(${t.argmin})`;const o=i&&!ja(i)?kt(i):void 0,s=t||o?.unit||o?.maxbins&&"timeunit"||He(n)&&"bin";return s?`${s.toUpperCase()}(${r})`:r}const W6=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return Hae(e);default:return Gae(e,t)}};let G6=W6;function H6(e){G6=e}function Vae(){H6(W6)}function wu(e,t,{allowDisabling:n,includeDefault:i=!0}){const r=Jw(e)?.title;if(!q(e))return r??e.title;const o=e,s=i?Qw(o,t):void 0;return n?ft(r,o.title,s):r??o.title??s}function Jw(e){if(Ku(e)&&e.axis)return e.axis;if(j6(e)&&e.legend)return e.legend;if(Xw(e)&&e.header)return e.header}function Qw(e,t){return G6(e,t)}function Up(e){if(q6(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}else{const t=Jw(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function Yae(e,t){switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Kw(e)&&X(e.sort))return"ordinal";const{aggregate:n,bin:i,timeUnit:r}=e;if(r)return"temporal";if(i||n&&!xs(n)&&!po(n))return"quantitative";if(qa(e)&&e.scale?.type)switch(Vb[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function ji(e){if(q(e))return e;if(B0(e))return e.condition}function xt(e){if(fe(e))return e;if(id(e))return e.condition}function V6(e,t,n,i={}){if(de(e)||Ze(e)||Vf(e)){const r=de(e)?"string":Ze(e)?"number":"boolean";return j(Voe(t,r,e)),{value:e}}return fe(e)?jp(e,t,n,i):id(e)?{...e,condition:jp(e.condition,t,n,i)}:e}function jp(e,t,n,i){if(q6(e)){const{format:r,formatType:o,...s}=e;if(wa(o)&&!n.customFormatTypes)return j(N_(t)),jp(s,t,n,i)}else{const r=Ku(e)?"axis":j6(e)?"legend":Xw(e)?"header":null;if(r&&e[r]){const{format:o,formatType:s,...a}=e[r];if(wa(s)&&!n.customFormatTypes)return j(N_(t)),jp({...e,[r]:a},t,n,i)}}return q(e)?Zw(e,t,i):Xae(e)}function Xae(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=Ze(n)?"quantitative":de(n)?"nominal":Ua(n)?"temporal":void 0,{...e,type:t}}function Zw(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:s}=e,a={...e};if(!n&&i&&!Sw(i)&&!xs(i)&&!po(i)&&(j(Xoe(i)),delete a.aggregate),r&&(a.timeUnit=kt(r)),s&&(a.field=`${s}`),He(o)&&(a.bin=U0(o,t)),Nt(o)&&!dt(t)&&j(_se(t)),Cn(a)){const{type:u}=a,l=Qse(u);u!==l&&(a.type=l),u!=="quantitative"&&k0(i)&&(j(Yoe(u,i)),a.type="quantitative")}else if(!BN(t)){const u=Yae(a,t);a.type=u}if(Cn(a)){const{compatible:u,warning:l}=Kae(a,t)||{};u===!1&&j(l)}if(Kw(a)&&de(a.sort)){const{sort:u}=a;if(U_(u))return{...a,sort:{encoding:u}};const l=u.substring(1);if(u.charAt(0)==="-"&&U_(l))return{...a,sort:{encoding:l,order:"descending"}}}if(Xw(a)){const{header:u}=a;if(u){const{orient:l,...c}=u;if(l)return{...a,header:{...c,labelOrient:u.labelOrient||l,titleOrient:u.titleOrient||l}}}}return a}function U0(e,t){return Vf(e)?{maxbins:$_(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?{...e,maxbins:$_(t)}:e}const iu={compatible:!0};function Kae(e,t){const n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case ro:case oo:case A0:return Bp(e)?iu:{compatible:!1,warning:Zoe(t)};case et:case Mt:case hs:case xl:case Bn:case Mr:case Or:case Xf:case Kf:case S0:case ya:case C0:case $0:case Pa:case Ei:case Yi:case _0:return iu;case Ki:case xi:case Xi:case Ji:return n!==va?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:iu;case Ao:case gs:case ms:case ys:case wo:case Eo:case vo:case Vi:case Tr:case ps:return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:iu;case Un:case bs:return!Bp(e)&&!qae(e)?{compatible:!1,warning:ese(t)}:iu;case Hu:return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:iu}}function Ju(e){const{formatType:t}=Up(e);return t==="time"||!t&&Jae(e)}function Jae(e){return e&&(e.type==="temporal"||q(e)&&!!e.timeUnit)}function j0(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){const o=t&&kt(t)?.unit;let s=o||n==="temporal",a;return Qf(e)?a=e.expr:Q(e)?a=e.signal:Ua(e)?(s=!0,a=xa(e)):(de(e)||Ze(e))&&s&&(a=`datetime(${je(e)})`,zse(o)&&(Ze(e)&&e<1e4||de(e)&&isNaN(Date.parse(e)))&&(a=xa({[o]:e}))),a?i&&s?`time(${a})`:a:r?void 0:je(e)}function Y6(e,t){const{type:n}=e;return t.map(i=>{const r=q(e)&&!ja(e.timeUnit)?e.timeUnit:void 0,o=j0(i,{timeUnit:r,type:n,undefinedIfExprNotRequired:!0});return o!==void 0?{signal:o}:i})}function rd(e,t){return He(e.bin)?Nr(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const W_={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 od(e){return e?.condition}const X6=["domain","grid","labels","ticks","title"],Qae={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"},K6={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},Zae={...K6,style:1,labelExpr:1,encoding:1};function G_(e){return pt(Zae,e)}const eue={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},J6=B(eue);function Co(e){return U(e,"mark")}class q0{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return Co(t)?Fae(t.mark)===this.name:!1}}function ea(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||B0(n):!1}function Q6(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||Lr(n)||id(n):!1}function Z6(e,t){if(dt(t)){const n=e[t];if((q(n)||Lr(n))&&(x6(n.type)||q(n)&&n.timeUnit)){const i=xw(t);return Q6(e,i)}}return!1}function e4(e){return Wu(Xre,t=>{if(ea(e,t)){const n=e[t];if(X(n))return Wu(n,i=>!!i.aggregate);{const i=ji(n);return i&&!!i.aggregate}}return!1})}function t4(e,t){const n=[],i=[],r=[],o=[],s={};return eA(e,(a,u)=>{if(q(a)){const{field:l,aggregate:c,bin:f,timeUnit:d,...h}=a;if(c||d||f){const g=Jw(a)?.title;let m=H(a,{forAs:!0});const y={...g?[]:{title:wu(a,t,{allowDisabling:!0})},...h,field:m};if(c){let b;if(xs(c)?(b="argmax",m=H({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${m}.${l}`):po(c)?(b="argmin",m=H({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${m}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(b=c),b){const x={op:b,as:m};l&&(x.field=l),o.push(x)}}else if(n.push(m),Cn(a)&&He(f)){if(i.push({bin:f,field:l,as:m}),n.push(H(a,{binSuffix:"end"})),rd(a,u)&&n.push(H(a,{binSuffix:"range"})),dt(u)){const b={field:`${m}_end`};s[`${u}2`]=b}y.bin="binned",BN(u)||(y.type=va)}else if(d&&!ja(d)){r.push({timeUnit:d,field:l,as:m});const b=Cn(a)&&a.type!==Vu&&"time";b&&(u===Xf||u===ya?y.formatType=b:soe(u)?y.legend={formatType:b,...y.legend}:dt(u)&&(y.axis={formatType:b,...y.axis}))}s[u]=y}else n.push(l),s[u]=e[u]}else s[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:s}}function tue(e,t,n){const i=uoe(t,n);if(i){if(i==="binned"){const r=e[t===Vi?et:Mt];return!!(q(r)&&q(e[t])&&Nt(r.bin))}}else return!1;return!0}function nue(e,t,n,i){const r={};for(const o of B(e))zN(o)||j(Qoe(o));for(let o of toe){if(!e[o])continue;const s=e[o];if(Jf(o)){const a=eoe(o),u=r[a];if(q(u)&&Jse(u.type)&&q(s)&&!u.timeUnit){j(Hoe(a));continue}}if(o==="angle"&&t==="arc"&&!e.theta&&(j(Goe),o=Ei),!tue(e,o,t)){j(T0(o,t));continue}if(o===wo&&t==="line"&&ji(e[o])?.aggregate){j(Joe);continue}if(o===Bn&&(n?"fill"in e:"stroke"in e)){j(i6("encoding",{fill:"fill"in e,stroke:"stroke"in e}));continue}if(o===Kf||o===Hu&&!X(s)&&!Ui(s)||o===ya&&X(s)){if(s){if(o===Hu){const a=e[o];if(U6(a)){r[o]=a;continue}}r[o]=ct(s).reduce((a,u)=>(q(u)?a.push(Zw(u,o)):j(Hb(u,o)),a),[])}}else{if(o===ya&&s===null)r[o]=null;else if(!q(s)&&!Lr(s)&&!Ui(s)&&!nd(s)&&!Q(s)){j(Hb(s,o));continue}r[o]=V6(s,o,i)}}return r}function W0(e,t){const n={};for(const i of B(e)){const r=V6(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function iue(e){const t=[];for(const n of B(e))if(ea(e,n)){const i=e[n],r=ct(i);for(const o of r)q(o)?t.push(o):B0(o)&&t.push(o.condition)}return t}function eA(e,t,n){if(e)for(const i of B(e)){const r=e[i];if(X(r))for(const o of r)t.call(n,o,i);else t.call(n,r,i)}}function rue(e,t,n,i){return e?B(e).reduce((r,o)=>{const s=e[o];return X(s)?s.reduce((a,u)=>t.call(i,a,u,o),r):t.call(i,r,s,o)},n):n}function n4(e,t){return B(t).reduce((n,i)=>{switch(i){case et:case Mt:case C0:case _0:case $0:case Vi:case Tr:case hs:case xl:case Ei:case Eo:case Yi:case vo:case ps:case Xi:case Ki:case Ji:case xi:case Xf:case Un:case Pa:case ya:return n;case Hu:if(e==="line"||e==="trail")return n;case Kf:case S0:{const r=t[i];if(X(r)||q(r))for(const o of ct(r))o.aggregate||n.push(H(o,{}));return n}case wo:if(e==="trail")return n;case Bn:case Mr:case Or:case Ao:case gs:case ms:case bs:case ys:{const r=ji(t[i]);return r&&!r.aggregate&&n.push(H(r,{})),n}}},[])}function oue(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if(X(t)){for(const o of t)o.aggregate?(i||(i=[]),i.push(o)):(r||(r=[]),r.push(o));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return X(r)&&r.length===1&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}function Kb(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};const r=e.map(({fieldPrefix:s,titlePrefix:a})=>{const u=i?` of ${tA(t)}`:"";return{field:s+t.field,type:t.type,title:Q(a)?{signal:`${a}"${escape(u)}"`}:a+u}}),o=iue(n).map(Uae);return{tooltip:[...r,...cr(o,Ae)]}}function tA(e){const{title:t,field:n}=e;return ft(t,n)}function nA(e,t,n,i,r){const{scale:o,axis:s}=n;return({partName:a,mark:u,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const d=tA(n);return i4(e,a,r,{mark:u,encoding:{[t]:{field:`${l}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...o!==void 0?{scale:o}:{},...s!==void 0?{axis:s}:{}},...de(c)?{[`${t}2`]:{field:`${c}_${n.field}`}}:{},...i,...f}})}}function i4(e,t,n,i){const{clip:r,color:o,opacity:s}=e,a=e.type;return e[t]||e[t]===void 0&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...s?{opacity:s}:{},...Sr(i.mark)?i.mark:{type:i.mark},style:`${a}-${String(t)}`,...Vf(e[t])?{}:e[t]}}]:[]}function r4(e,t,n){const{encoding:i}=e,r=t==="vertical"?"y":"x",o=i[r],s=i[`${r}2`],a=i[`${r}Error`],u=i[`${r}Error2`];return{continuousAxisChannelDef:Bd(o,n),continuousAxisChannelDef2:Bd(s,n),continuousAxisChannelDefError:Bd(a,n),continuousAxisChannelDefError2:Bd(u,n),continuousAxis:r}}function Bd(e,t){if(e?.aggregate){const{aggregate:n,...i}=e;return n!==t&&j($se(n,t)),i}else return e}function o4(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(Sr(n)&&n.orient)return n.orient;if(Wo(r)){if(Wo(o)){const s=q(r)&&r.aggregate,a=q(o)&&o.aggregate;if(!s&&a===t)return"vertical";if(!a&&s===t)return"horizontal";if(s===t&&a===t)throw new Error("Both x and y cannot have aggregate");return Ju(o)&&!Ju(r)?"horizontal":"vertical"}return"horizontal"}else{if(Wo(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}}const qp="boxplot",sue=["box","median","outliers","rule","ticks"],aue=new q0(qp,a4);function s4(e){return Ze(e)?"tukey":e}function a4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...s}=e,a=Sr(n)?n:{type:n};r&&j(t6("boxplot"));const u=a.extent??t.boxplot.extent,l=Be("size",a,t),c=a.invalid,f=s4(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:g,continuousAxis:m,groupby:y,aggregate:b,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:A}=uue(e,u,t),E=bl(g.field),{color:S,size:C,..._}=x,k=dd=>nA(a,m,g,dd,t.boxplot),N=k(_),T=k(x),F=(Fe(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",$=k({..._,...C?{size:C}:{},color:{condition:{test:`${Le(`lower_box_${g.field}`)} >= ${Le(`upper_box_${g.field}`)}`,...S||{value:F}}}}),D=Kb([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,x),P={type:"tick",color:"black",opacity:1,orient:v,invalid:c,aria:!1},z=f==="min-max"?D:Kb([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,x),I=[...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:z}),...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"lower_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"upper_whisker",extraEncoding:z})],V=[...f!=="tukey"?I:[],...T({partName:"box",mark:{type:"bar",...l?{size:l}:{},orient:w,invalid:c,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:D}),...$({partName:"median",mark:{type:"tick",invalid:c,...Fe(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...l?{size:l}:{},orient:v,aria:!1},positionPrefix:"mid_box",extraEncoding:D})];if(f==="min-max")return{...s,transform:(s.transform??[]).concat(p),layer:V};const ue=Le(`lower_box_${g.field}`),ie=Le(`upper_box_${g.field}`),he=`(${ie} - ${ue})`,We=`${ue} - ${u} * ${he}`,pe=`${ie} + ${u} * ${he}`,Ht=Le(g.field),ws={joinaggregate:u4(g.field),groupby:y},_o={transform:[{filter:`(${We} <= ${Ht}) && (${Ht} <= ${pe})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${E}`},{op:"max",field:g.field,as:`upper_whisker_${E}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${E}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${E}`},...b],groupby:y}],layer:I},{tooltip:Y,...ge}=_,{scale:ve,axis:W}=g,Ot=tA(g),Ne=Rn(W,["title"]),Vt=i4(a,"outliers",t.boxplot,{transform:[{filter:`(${Ht} < ${We}) || (${Ht} > ${pe})`}],mark:"point",encoding:{[m]:{field:g.field,type:g.type,...Ot!==void 0?{title:Ot}:{},...ve!==void 0?{scale:ve}:{},...Ue(Ne)?{}:{axis:Ne}},...ge,...S?{color:S}:{},...A?{tooltip:A}:{}}})[0];let At;const Zi=[...d,...h,ws];return Vt?At={transform:Zi,layer:[Vt,_o]}:(At=_o,At.transform.unshift(...Zi)),{...s,layer:[At,{transform:p,layer:V}]}}function u4(e){const t=bl(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}function uue(e,t,n){const i=o4(e,qp),{continuousAxisChannelDef:r,continuousAxis:o}=r4(e,i,qp),s=r.field,a=bl(s),u=s4(t),l=[...u4(s),{op:"median",field:s,as:`mid_box_${a}`},{op:"min",field:s,as:(u==="min-max"?"lower_whisker_":"min_")+a},{op:"max",field:s,as:(u==="min-max"?"upper_whisker_":"max_")+a}],c=u==="min-max"||u==="tukey"?[]:[{calculate:`${Le(`upper_box_${a}`)} - ${Le(`lower_box_${a}`)}`,as:`iqr_${a}`},{calculate:`min(${Le(`upper_box_${a}`)} + ${Le(`iqr_${a}`)} * ${t}, ${Le(`max_${a}`)})`,as:`upper_whisker_${a}`},{calculate:`max(${Le(`lower_box_${a}`)} - ${Le(`iqr_${a}`)} * ${t}, ${Le(`min_${a}`)})`,as:`lower_whisker_${a}`}],{[o]:f,...d}=e.encoding,{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=oue(d),{bins:g,timeUnits:m,aggregate:y,groupby:b,encoding:x}=t4(p,n),v=i==="vertical"?"horizontal":"vertical",w=i,A=[...g,...m,{aggregate:[...y,...l],groupby:b},...c];return{bins:g,timeUnits:m,transform:A,groupby:b,aggregate:y,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:h}}const iA="errorbar",lue=["ticks","rule"],cue=new q0(iA,l4);function l4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:s,markDef:a,outerSpec:u,tooltipEncoding:l}=c4(e,iA,t);delete o.size;const c=nA(a,r,i,o,t.errorbar),f=a.thickness,d=a.size,h={type:"tick",orient:s,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...u,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function fue(e,t){const{encoding:n}=e;if(due(n))return{orient:o4(e,t),inputType:"raw"};const i=hue(n),r=pue(n),o=n.x,s=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const a=n.x2,u=n.y2;if(fe(a)&&fe(u))throw new Error(`${t} cannot have both x2 and y2`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}else if(fe(u)){if(Wo(s))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}else{const a=n.xError,u=n.xError2,l=n.yError,c=n.yError2;if(fe(u)&&!fe(a))throw new Error(`${t} cannot have xError2 without xError`);if(fe(c)&&!fe(l))throw new Error(`${t} cannot have yError2 without yError`);if(fe(a)&&fe(l))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(fe(l)){if(Wo(s))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 due(e){return(fe(e.x)||fe(e.y))&&!fe(e.x2)&&!fe(e.y2)&&!fe(e.xError)&&!fe(e.xError2)&&!fe(e.yError)&&!fe(e.yError2)}function hue(e){return fe(e.x2)||fe(e.y2)}function pue(e){return fe(e.xError)||fe(e.xError2)||fe(e.yError)||fe(e.yError2)}function c4(e,t,n){const{mark:i,encoding:r,params:o,projection:s,...a}=e,u=Sr(i)?i:{type:i};o&&j(t6(t));const{orient:l,inputType:c}=fue(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:g}=r4(e,l,t),{errorBarSpecificAggregate:m,postAggregateCalculates:y,tooltipSummary:b,tooltipTitleWithFieldName:x}=gue(u,f,d,h,p,c,t,n),{[g]:v,[g==="x"?"x2":"y2"]:w,[g==="x"?"xError":"yError"]:A,[g==="x"?"xError2":"yError2"]:E,...S}=r,{bins:C,timeUnits:_,aggregate:k,groupby:N,encoding:T}=t4(S,n),F=[...k,...m],$=c!=="raw"?[]:N,D=Kb(b,f,T,x);return{transform:[...a.transform??[],...C,..._,...F.length===0?[]:[{aggregate:F,groupby:$}],...y],groupby:$,continuousAxisChannelDef:f,continuousAxis:g,encodingWithoutContinuousAxis:T,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:a,tooltipEncoding:D}}function gue(e,t,n,i,r,o,s,a){let u=[],l=[];const c=t.field;let f,d=!1;if(o==="raw"){const h=e.center?e.center:e.extent?e.extent==="iqr"?"median":"mean":a.errorbar.center,p=e.extent?e.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&j(Cse(h,p,s)),p==="stderr"||p==="stdev")u=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`${Le(`center_${c}`)} + ${Le(`extent_${c}`)}`,as:`upper_${c}`},{calculate:`${Le(`center_${c}`)} - ${Le(`extent_${c}`)}`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:Yf(h)},{fieldPrefix:"upper_",titlePrefix:H_(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:H_(h,p,"-")}],d=!0;else{let g,m,y;p==="ci"?(g="mean",m="ci0",y="ci1"):(g="median",m="q1",y="q3"),u=[{op:m,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:g,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:wu({field:c,aggregate:y,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:wu({field:c,aggregate:m,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:wu({field:c,aggregate:g,type:"quantitative"},a,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&j(Sse(e.center,e.extent)),o==="aggregated-upper-lower"?(f=[],l=[{calculate:Le(n.field),as:`upper_${c}`},{calculate:Le(c),as:`lower_${c}`}]):o==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`${Le(c)} + ${Le(i.field)}`,as:`upper_${c}`}],r?l.push({calculate:`${Le(c)} + ${Le(r.field)}`,as:`lower_${c}`}):l.push({calculate:`${Le(c)} - ${Le(i.field)}`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:ma(ma(h.calculate,"datum['",""),"']","")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}function H_(e,t,n){return`${Yf(e)} ${n} ${t}`}const rA="errorband",mue=["band","borders"],yue=new q0(rA,f4);function f4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:s,outerSpec:a,tooltipEncoding:u}=c4(e,rA,t),l=s,c=nA(l,r,i,o,t.errorband),f=e.encoding.x!==void 0&&e.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):l.interpolate?j(P_("interpolate")):l.tension&&j(P_("tension")),{...a,transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const d4={};function oA(e,t,n){const i=new q0(e,t);d4[e]={normalizer:i,parts:n}}function bue(){return B(d4)}oA(qp,a4,sue);oA(iA,l4,lue);oA(rA,f4,mue);const xue=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],h4={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"},p4={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"},vue=B(h4),Eue=B(p4),wue={header:1,headerRow:1,headerColumn:1,headerFacet:1},g4=B(wue),m4=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],Aue={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},Sue={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},qi="_vgsid_",Cue={point:{on:"click",fields:[qi],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function sA(e){return e==="legend"||!!e?.legend}function F1(e){return sA(e)&&Fe(e)}function aA(e){return!!e?.select}function y4(e){const t=[];for(const n of e||[]){if(aA(n))continue;const{expr:i,bind:r,...o}=n;if(r&&i){const s={...o,bind:r,init:i};t.push(s)}else{const s={...o,...i?{update:i}:{},...r?{bind:r}:{}};t.push(s)}}return t}function $ue(e){return G0(e)||lA(e)||uA(e)}function uA(e){return U(e,"concat")}function G0(e){return U(e,"vconcat")}function lA(e){return U(e,"hconcat")}function b4({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Cr(e){return U(e,"step")}function V_(e){return U(e,"view")||U(e,"width")||U(e,"height")}const Y_=20,_ue={align:1,bounds:1,center:1,columns:1,spacing:1},Fue=B(_ue);function kue(e,t,n){const i=n[t],r={},{spacing:o,columns:s}=i;o!==void 0&&(r.spacing=o),s!==void 0&&(z0(e)&&!td(e.facet)||uA(e))&&(r.columns=s),G0(e)&&(r.columns=1);for(const a of Fue)if(e[a]!==void 0)if(a==="spacing"){const u=e[a];r[a]=Ze(u)?u:{row:u.row??o,column:u.column??o}}else r[a]=e[a];return r}function Jb(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function Qb(e,t){const n=Wp(e,t);return Cr(n)?n.step:x4}function Wp(e,t){const n=e[t]??e[t==="width"?"discreteWidth":"discreteHeight"];return ft(n,{step:e.step})}const x4=20,Due={continuousWidth:200,continuousHeight:200,step:x4},Tue={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:Due,mark:wae,arc:{},area:{},bar:$ae,circle:{},geoshape:{},image:{},line:{},point:{},rect:Ww,rule:{color:"black"},square:{},text:{color:"black"},tick:_ae,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:iae,projection:{},legend:Aue,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Cue,style:{},title:{},facet:{spacing:Y_},concat:{spacing:Y_},normalizedNumberFormat:".0%"},Ur=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],X_={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},K_={blue:Ur[0],orange:Ur[1],red:Ur[2],teal:Ur[3],green:Ur[4],yellow:Ur[5],purple:Ur[6],pink:Ur[7],brown:Ur[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 Mue(e={}){return{signals:[{name:"color",value:Fe(e)?{...K_,...e}:K_}],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 Oue(e){return{signals:[{name:"fontSize",value:Fe(e)?{...X_,...e}:X_}],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 Rue(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}function v4(e){const t=B(e||{}),n={};for(const i of t){const r=e[i];n[i]=od(r)?YN(r):Vn(r)}return n}function Nue(e){const t=B(e),n={};for(const i of t)n[i]=v4(e[i]);return n}const Lue=[...k6,...J6,...g4,"background","padding","legend","lineBreak","scale","style","title","view"];function E4(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,s=CN({},ce(Tue),n?Rue(n):{},t?Mue(t):{},i?Oue(i):{},o||{});r&&E0(s,"selection",r,!0);const a=Rn(s,Lue);for(const u of["background","lineBreak","padding"])s[u]&&(a[u]=Vn(s[u]));for(const u of k6)s[u]&&(a[u]=Lt(s[u]));for(const u of J6)s[u]&&(a[u]=v4(s[u]));for(const u of g4)s[u]&&(a[u]=Lt(s[u]));if(s.legend&&(a.legend=Lt(s.legend)),s.scale){const{invalid:u,...l}=s.scale,c=Lt(u,{level:1});a.scale={...Lt(l),...B(c).length>0?{invalid:c}:{}}}return s.style&&(a.style=Nue(s.style)),s.title&&(a.title=Lt(s.title)),s.view&&(a.view=Lt(s.view)),a}const Pue=new Set(["view",...mae]),Iue=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],zue={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...Eae};function Bue(e){e=ce(e);for(const t of Iue)delete e[t];if(e.axis)for(const t in e.axis)od(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of xue)delete e.legend[t];if(e.mark){for(const t of z_)delete e.mark[t];e.mark.tooltip&&Fe(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(y4(e.params)),delete e.params);for(const t of Pue){for(const i of z_)delete e[t][i];const n=zue[t];if(n)for(const i of n)delete e[t][i];jue(e,t)}for(const t of bue())delete e[t];Uue(e);for(const t in e)Fe(e[t])&&Ue(e[t])&&delete e[t];return Ue(e)?void 0:e}function Uue(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=VN(e.title);Ue(t)||(e.style["group-title"]={...e.style["group-title"],...t}),Ue(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n}),Ue(i)?delete e.title:e.title=i}function jue(e,t,n,i){const r=e[t];t==="view"&&(n="cell");const o={...r,...e.style[n??t]};Ue(o)||(e.style[n??t]=o),delete e[t]}function H0(e){return U(e,"layer")}function que(e){return U(e,"repeat")}function Wue(e){return!X(e.repeat)&&U(e.repeat,"layer")}class cA{map(t,n){return z0(t)?this.mapFacet(t,n):que(t)?this.mapRepeat(t,n):lA(t)?this.mapHConcat(t,n):G0(t)?this.mapVConcat(t,n):uA(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(H0(t))return this.mapLayer(t,n);if(Co(t))return this.mapUnit(t,n);throw new Error(Cw(t))}mapLayer(t,n){return{...t,layer:t.layer.map(i=>this.mapLayerOrUnit(i,n))}}mapHConcat(t,n){return{...t,hconcat:t.hconcat.map(i=>this.map(i,n))}}mapVConcat(t,n){return{...t,vconcat:t.vconcat.map(i=>this.map(i,n))}}mapConcat(t,n){const{concat:i,...r}=t;return{...r,concat:i.map(o=>this.map(o,n))}}mapFacet(t,n){return{...t,spec:this.map(t.spec,n)}}mapRepeat(t,n){return{...t,spec:this.map(t.spec,n)}}}const Gue={zero:1,center:1,normalize:1};function Hue(e){return pt(Gue,e)}const Vue=new Set([$6,N0,R0,Pp,P0,jw,qw,L0,_6,Uw]),Yue=new Set([N0,R0,$6]);function ru(e){return q(e)&&Xu(e)==="quantitative"&&!e.bin}function J_(e,t,{orient:n,type:i}){const r=t==="x"?"y":"radius",o=t==="x"&&["bar","area"].includes(i),s=e[t],a=e[r];if(q(s)&&q(a))if(ru(s)&&ru(a)){if(s.stack)return t;if(a.stack)return r;const u=q(s)&&!!s.aggregate,l=q(a)&&!!a.aggregate;if(u!==l)return u?t:r;if(o){if(n==="vertical")return r;if(n==="horizontal")return t}}else{if(ru(s))return t;if(ru(a))return r}else{if(ru(s))return o&&n==="vertical"?void 0:t;if(ru(a))return o&&n==="horizontal"?void 0:r}}function Xue(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function w4(e,t){const n=Sr(e)?e:{type:e},i=n.type;if(!Vue.has(i))return null;const r=J_(t,"x",n)||J_(t,"theta",n);if(!r)return null;const o=t[r],s=q(o)?H(o,{}):void 0,a=Xue(r),u=[],l=new Set;if(t[a]){const g=t[a],m=q(g)?H(g,{}):void 0;m&&m!==s&&(u.push(a),l.add(m))}const c=a==="x"?"xOffset":"yOffset",f=t[c],d=q(f)?H(f,{}):void 0;d&&d!==s&&(u.push(c),l.add(d));const h=noe.reduce((g,m)=>{if(m!=="tooltip"&&ea(t,m)){const y=t[m];for(const b of ct(y)){const x=ji(b);if(x.aggregate)continue;const v=H(x,{});(!v||!l.has(v))&&g.push({channel:m,fieldDef:x})}}return g},[]);let p;return o.stack!==void 0?Vf(o.stack)?p=o.stack?"zero":null:p=o.stack:Yue.has(i)&&(p="zero"),!p||!Hue(p)||e4(t)&&h.length===0?null:(o?.scale?.type&&o?.scale?.type!==Pt.LINEAR&&o?.stack&&j(Ese(o.scale.type)),fe(t[Rr(r)])?(o.stack!==void 0&&j(vse(r)),null):(q(o)&&o.aggregate&&!goe.has(o.aggregate)&&j(wse(o.aggregate)),{groupbyChannels:u,groupbyFields:l,fieldChannel:r,impute:o.impute===null?!1:vs(i),stackBy:h,offset:p}))}function A4(e,t,n){const i=Lt(e),r=Be("orient",i,n);if(i.orient=Zue(i.type,t,r),r!==void 0&&r!==i.orient&&j(rse(i.orient,r)),i.type==="bar"&&i.orient){const u=Be("cornerRadiusEnd",i,n);if(u!==void 0){const l=i.orient==="horizontal"&&t.x2||i.orient==="vertical"&&t.y2?["cornerRadius"]:Sae[i.orient];for(const c of l)i[c]=u;i.cornerRadiusEnd!==void 0&&delete i.cornerRadiusEnd}}const o=Be("opacity",i,n),s=Be("fillOpacity",i,n);return o===void 0&&s===void 0&&(i.opacity=Jue(i.type,t)),Be("cursor",i,n)===void 0&&(i.cursor=Kue(i,t,n)),i}function Kue(e,t,n){return t.href||e.href||Be("href",e,n)?"pointer":e.cursor}function Jue(e,t){if(we([P0,Uw,jw,qw],e)&&!e4(t))return .7}function Que(e,t,{graticule:n}){if(n)return!1;const i=Ar("filled",e,t),r=e.type;return ft(i,r!==P0&&r!==L0&&r!==Pp)}function Zue(e,t,n){switch(e){case P0:case jw:case qw:case _6:case pae:case hae:return}const{x:i,y:r,x2:o,y2:s}=t;switch(e){case N0:if(q(i)&&(Nt(i.bin)||q(r)&&r.aggregate&&!i.aggregate))return"vertical";if(q(r)&&(Nt(r.bin)||q(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(s||o){if(n)return n;if(!o)return(q(i)&&i.type===va&&!He(i.bin)||zp(i))&&q(r)&&Nt(r.bin)?"horizontal":"vertical";if(!s)return(q(r)&&r.type===va&&!He(r.bin)||zp(r))&&q(i)&&Nt(i.bin)?"vertical":"horizontal"}case Pp:if(o&&!(q(i)&&Nt(i.bin))&&s&&!(q(r)&&Nt(r.bin)))return;case R0:if(s)return q(r)&&Nt(r.bin)?"horizontal":"vertical";if(o)return q(i)&&Nt(i.bin)?"vertical":"horizontal";if(e===Pp){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case L0:case Uw:{const a=q_(i),u=q_(r);if(n)return n;if(a&&!u)return e!=="tick"?"horizontal":"vertical";if(!a&&u)return e!=="tick"?"vertical":"horizontal";if(a&&u)return"vertical";{const l=Cn(i)&&i.type===Vu,c=Cn(r)&&r.type===Vu;if(l&&!c)return"vertical";if(!l&&c)return"horizontal"}return}}return"vertical"}function ele(e){const{point:t,line:n,...i}=e;return B(i).length>1?i:i.type}function tle(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Rn(e[t],["point","line"])});return e}function k1(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?Fe(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?Fe(t.point)?t.point:{}:void 0}function Q_(e,t={}){return e.line?e.line===!0?{}:e.line:e.line!==void 0?null:t.line?t.line===!0?{}:t.line:void 0}class nle{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(Co(t)){const{mark:i,encoding:r}=t,o=Sr(i)?i:{type:i};switch(o.type){case"line":case"rule":case"trail":return!!k1(o,n[o.type],r);case"area":return!!k1(o,n[o.type],r)||!!Q_(o,n[o.type])}}return!1}run(t,n,i){const{config:r}=n,{params:o,projection:s,mark:a,name:u,encoding:l,...c}=t,f=W0(l,r),d=Sr(a)?a:{type:a},h=k1(d,r[d.type],f),p=d.type==="area"&&Q_(d,r[d.type]),g=[{name:u,...o?{params:o}:{},mark:ele({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:Rn(f,["shape"])}],m=w4(A4(d,f,r),f);let y=f;if(m){const{fieldChannel:b,offset:x}=m;y={...f,[b]:{...f[b],...x?{stack:x}:{}}}}return y=Rn(y,["y2","x2"]),p&&g.push({...s?{projection:s}:{},mark:{type:"line",...qu(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&g.push({...s?{projection:s}:{},mark:{type:"point",opacity:1,filled:!0,...qu(d,["clip","tooltip"]),...h},encoding:y}),i({...c,layer:g},{...n,config:tle(r)})}}function ile(e,t){return t?td(e)?C4(e,t):S4(e,t):e}function D1(e,t){return t?C4(e,t):e}function Zb(e,t,n){const i=t[e];if(zae(i)){if(i.repeat in n)return{...t,[e]:n[i.repeat]};j(Noe(i.repeat));return}return t}function S4(e,t){if(e=Zb("field",e,t),e!==void 0){if(e===null)return null;if(Kw(e)&&so(e.sort)){const n=Zb("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Z_(e,t){if(q(e))return S4(e,t);{const n=Zb("datum",e,t);return n!==e&&!n.type&&(n.type="nominal"),n}}function eF(e,t){if(fe(e)){const n=Z_(e,t);if(n)return n;if(nd(e))return{condition:e.condition}}else{if(id(e)){const n=Z_(e.condition,t);if(n)return{...e,condition:n};{const{condition:i,...r}=e;return r}}return e}}function C4(e,t){const n={};for(const i in e)if(U(e,i)){const r=e[i];if(X(r))n[i]=r.map(o=>eF(o,t)).filter(o=>o);else{const o=eF(r,t);o!==void 0&&(n[i]=o)}}return n}class rle{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(Co(t)){const{encoding:n,mark:i}=t;if(i==="line"||Sr(i)&&i.type==="line")for(const r of Zre){const o=Ia(r),s=n[o];if(n[r]&&(q(s)&&!Nt(s.bin)||Lr(s)))return!0}}return!1}run(t,n,i){const{encoding:r,mark:o}=t;return j(ise(!!r.x2,!!r.y2)),i({...t,mark:Fe(o)?{...o,type:"rule"}:"rule"},n)}}class ole extends cA{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[aue,cue,yue,new nle,new rle]}map(t,n){if(Co(t)){const i=ea(t.encoding,ro),r=ea(t.encoding,oo),o=ea(t.encoding,A0);if(i||r||o)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:i,parentProjection:r}=n,o=D1(t.encoding,n.repeater),s={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(u=>u).join("_")}:{},...o?{encoding:o}:{}};if(i||r)return this.mapUnitWithParentEncodingOrProjection(s,n);const a=this.mapLayerOrUnit.bind(this);for(const u of this.nonFacetUnitNormalizers)if(u.hasMatchingType(s,n.config))return u.run(s,n,a);return s}mapRepeat(t,n){return Wue(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:i,spec:r,...o}=t,{row:s,column:a,layer:u}=i,{repeater:l={},repeaterPrefix:c=""}=n;return s||a?this.mapRepeat({...t,repeat:{...s?{row:s}:{},...a?{column:a}:{}},spec:{repeat:{layer:u},spec:r}},n):{...o,layer:u.map(f=>{const d={...l,layer:f},h=`${(r.name?`${r.name}_`:"")+c}child__layer_${Qe(f)}`,p=this.mapLayerOrUnit(r,{...n,repeater:d,repeaterPrefix:h});return p.name=h,p})}}mapNonLayerRepeat(t,n){const{repeat:i,spec:r,data:o,...s}=t;!X(i)&&t.columns&&(t=Rn(t,["columns"]),j(O_("repeat")));const a=[],{repeater:u={},repeaterPrefix:l=""}=n,c=!X(i)&&i.row||[u?u.row:null],f=!X(i)&&i.column||[u?u.column:null],d=X(i)&&i||[u?u.repeat:null];for(const p of d)for(const g of c)for(const m of f){const y={repeat:p,row:g,column:m,layer:u.layer},b=(r.name?`${r.name}_`:"")+l+"child__"+(X(i)?`${Qe(p)}`:(i.row?`row_${Qe(g)}`:"")+(i.column?`column_${Qe(m)}`:"")),x=this.map(r,{...n,repeater:y,repeaterPrefix:b});x.name=b,a.push(Rn(x,["data"]))}const h=X(i)?t.columns:i.column?i.column.length:1;return{data:r.data??o,align:"all",...s,columns:h,concat:a}}mapFacet(t,n){const{facet:i}=t;return td(i)&&t.columns&&(t=Rn(t,["columns"]),j(O_("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:i,projection:r}=t,{parentEncoding:o,parentProjection:s,config:a}=n,u=nF({parentProjection:s,projection:r}),l=tF({parentEncoding:o,encoding:D1(i,n.repeater)});return this.mapUnit({...t,...u?{projection:u}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(t,n){const{row:i,column:r,facet:o,...s}=t.encoding,{mark:a,width:u,projection:l,height:c,view:f,params:d,encoding:h,...p}=t,{facetMapping:g,layout:m}=this.getFacetMappingAndLayout({row:i,column:r,facet:o},n),y=D1(s,n.repeater);return this.mapFacet({...p,...m,facet:g,spec:{...u?{width:u}:{},...c?{height:c}:{},...f?{view:f}:{},...l?{projection:l}:{},mark:a,encoding:y,...d?{params:d}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:i,column:r,facet:o}=t;if(i||r){o&&j(tse([...i?[ro]:[],...r?[oo]:[]]));const s={},a={};for(const u of[ro,oo]){const l=t[u];if(l){const{align:c,center:f,spacing:d,columns:h,...p}=l;s[u]=p;for(const g of["align","center","spacing"])l[g]!==void 0&&(a[g]??(a[g]={}),a[g][u]=l[g])}}return{facetMapping:s,layout:a}}else{const{align:s,center:a,spacing:u,columns:l,...c}=o;return{facetMapping:ile(c,n.repeater),layout:{...s?{align:s}:{},...a?{center:a}:{},...u?{spacing:u}:{},...l?{columns:l}:{}}}}}mapLayer(t,{parentEncoding:n,parentProjection:i,...r}){const{encoding:o,projection:s,...a}=t,u={...r,parentEncoding:tF({parentEncoding:n,encoding:o,layer:!0}),parentProjection:nF({parentProjection:i,projection:s})};return super.mapLayer({...a,...t.name?{name:[u.repeaterPrefix,t.name].filter(l=>l).join("_")}:{}},u)}}function tF({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...B(e),...B(t)]);for(const o of r){const s=t[o],a=e[o];if(fe(s)){const u={...a,...s};i[o]=u}else id(s)?i[o]={...s,condition:{...a,...s.condition}}:s||s===null?i[o]=s:(n||Ui(a)||Q(a)||fe(a)||X(a))&&(i[o]=a)}}else i=t;return!i||Ue(i)?void 0:i}function nF(e){const{parentProjection:t,projection:n}=e;return t&&n&&j(Woe({parentProjection:t,projection:n})),n??t}function fA(e){return U(e,"filter")}function sle(e){return U(e,"stop")}function $4(e){return U(e,"lookup")}function ale(e){return U(e,"data")}function ule(e){return U(e,"param")}function lle(e){return U(e,"pivot")}function cle(e){return U(e,"density")}function fle(e){return U(e,"quantile")}function dle(e){return U(e,"regression")}function hle(e){return U(e,"loess")}function ple(e){return U(e,"sample")}function gle(e){return U(e,"window")}function mle(e){return U(e,"joinaggregate")}function yle(e){return U(e,"flatten")}function ble(e){return U(e,"calculate")}function _4(e){return U(e,"bin")}function xle(e){return U(e,"impute")}function vle(e){return U(e,"timeUnit")}function Ele(e){return U(e,"aggregate")}function wle(e){return U(e,"stack")}function Ale(e){return U(e,"fold")}function Sle(e){return U(e,"extent")&&!U(e,"density")&&!U(e,"regression")}function Cle(e){return e.map(t=>fA(t)?{filter:vu(t.filter,Kse)}:t)}class $le extends cA{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=iF(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if(t=iF(t,n),t.encoding){const i={};for(const[r,o]of is(t.encoding))i[r]=F4(o,n);t={...t,encoding:i}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:i,...r}=t;return i?{...r,params:is(i).map(([o,s])=>{const{init:a,bind:u,empty:l,...c}=s;c.type==="single"?(c.type="point",c.toggle=!1):c.type==="multi"&&(c.type="point"),n.emptySelections[o]=l!=="none";for(const f of qt(n.selectionPredicates[o]??{}))f.empty=l!=="none";return{name:o,value:a,select:c,bind:u}})}:t}}function iF(e,t){const{transform:n,...i}=e;if(n){const r=n.map(o=>{if(fA(o))return{filter:ex(o,t)};if(_4(o)&&za(o.bin))return{...o,bin:k4(o.bin)};if($4(o)){const{selection:s,...a}=o.from;return s?{...o,from:{param:s,...a}}:o}return o});return{...i,transform:r}}return e}function F4(e,t){const n=ce(e);if(q(n)&&za(n.bin)&&(n.bin=k4(n.bin)),qa(n)&&n.scale?.domain?.selection){const{selection:i,...r}=n.scale.domain;n.scale.domain={...r,...i?{param:i}:{}}}if(nd(n))if(X(n.condition))n.condition=n.condition.map(i=>{const{selection:r,param:o,test:s,...a}=i;return o?i:{...a,test:ex(i,t)}});else{const{selection:i,param:r,test:o,...s}=F4(n.condition,t);n.condition=r?n.condition:{...s,test:ex(n.condition,t)}}return n}function k4(e){const t=e.extent;if(t?.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function ex(e,t){const n=i=>vu(i,r=>{var o;const s=t.emptySelections[r]??!0,a={param:r,empty:s};return(o=t.selectionPredicates)[r]??(o[r]=[]),t.selectionPredicates[r].push(a),a});return e.selection?n(e.selection):vu(e.test||e.filter,i=>i.selection?n(i.selection):i)}class tx extends cA{map(t,n){const i=n.selections??[];if(t.params&&!Co(t)){const r=[];for(const o of t.params)aA(o)?i.push(o):r.push(o);t.params=r}return n.selections=i,super.map(t,n)}mapUnit(t,n){const i=n.selections;if(!i||!i.length)return t;const r=(n.path??[]).concat(t.name),o=[];for(const s of i)if(!s.views||!s.views.length)o.push(s);else for(const a of s.views)(de(a)&&(a===t.name||r.includes(a))||X(a)&&a.map(u=>r.indexOf(u)).every((u,l,c)=>u!==-1&&(l===0||u>c[l-1])))&&o.push(s);return o.length&&(t.params=o),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=tx.prototype[e];tx.prototype[e]=function(n,i){return t.call(this,n,_le(n,i))}}function _le(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function D4(e,t){t===void 0&&(t=E4(e.config));const n=Tle(e,t),{width:i,height:r}=e,o=Mle(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const Fle=new ole,kle=new $le,Dle=new tx;function Tle(e,t={}){const n={config:t};return Dle.map(Fle.map(kle.map(e,n),n),n)}function rF(e){return de(e)?{type:e}:e??{}}function Mle(e,t,n){let{width:i,height:r}=t;const o=Co(e)||H0(e),s={};o?i=="container"&&r=="container"?(s.type="fit",s.contains="padding"):i=="container"?(s.type="fit-x",s.contains="padding"):r=="container"&&(s.type="fit-y",s.contains="padding"):(i=="container"&&(j(k_("width")),i=void 0),r=="container"&&(j(k_("height")),r=void 0));const a={type:"pad",...s,...n?rF(n.autosize):{},...rF(e.autosize)};if(a.type==="fit"&&!o&&(j(Soe),a.type="pad"),i=="container"&&!(a.type=="fit"||a.type=="fit-x")&&j(D_("width")),r=="container"&&!(a.type=="fit"||a.type=="fit-y")&&j(D_("height")),!Xn(a,{type:"pad"}))return a}function Ole(e){return["fit","fit-x","fit-y"].includes(e)}function Rle(e){return e?`fit-${F0(e)}`:"fit"}const Nle=["background","padding"];function oF(e,t){const n={};for(const i of Nle)e&&e[i]!==void 0&&(n[i]=Vn(e[i]));return t&&(n.params=e.params),n}class $o{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new $o(ce(this.explicit),ce(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return ft(this.explicit[t],this.implicit[t])}getWithExplicit(t){return this.explicit[t]!==void 0?{explicit:!0,value:this.explicit[t]}:this.implicit[t]!==void 0?{explicit:!1,value:this.implicit[t]}:{explicit:!1,value:void 0}}setWithExplicit(t,{value:n,explicit:i}){n!==void 0&&this.set(t,n,i)}set(t,n,i){return delete this[i?"implicit":"explicit"][t],this[i?"explicit":"implicit"][t]=n,this}copyKeyFromSplit(t,{explicit:n,implicit:i}){n[t]!==void 0?this.set(t,n[t],!0):i[t]!==void 0&&this.set(t,i[t],!1)}copyKeyFromObject(t,n){n[t]!==void 0&&this.set(t,n[t],!0)}copyAll(t){for(const n of B(t.combine())){const i=t.getWithExplicit(n);this.setWithExplicit(n,i)}}}function or(e){return{explicit:!0,value:e}}function Wn(e){return{explicit:!1,value:e}}function T4(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:V0(t,n,i,r)}}function V0(e,t,n,i){return e.explicit&&t.explicit&&j(hse(n,i,e.value,t.value)),e}function ss(e,t,n,i,r=V0){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Xn(e.value,t.value)?e:r(e,t,n,i)}class Lle extends $o{constructor(t={},n={},i=!1){super(t,n),this.explicit=t,this.implicit=n,this.parseNothing=i}clone(){const t=super.clone();return t.parseNothing=this.parseNothing,t}}function Qu(e){return U(e,"url")}function ff(e){return U(e,"values")}function M4(e){return U(e,"name")&&!Qu(e)&&!ff(e)&&!Xo(e)}function Xo(e){return e&&(O4(e)||R4(e)||dA(e))}function O4(e){return U(e,"sequence")}function R4(e){return U(e,"sphere")}function dA(e){return U(e,"graticule")}var it;(function(e){e[e.Raw=0]="Raw",e[e.Main=1]="Main",e[e.Row=2]="Row",e[e.Column=3]="Column",e[e.Lookup=4]="Lookup",e[e.PreFilterInvalid=5]="PreFilterInvalid",e[e.PostFilterInvalid=6]="PostFilterInvalid"})(it||(it={}));function N4({invalid:e,isPath:t}){switch(D6(e,{isPath:t})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}function Ple(e){const{marks:t,scales:n}=N4(e);return t===n?it.Main:n==="include-invalid-values"?it.PreFilterInvalid:it.PostFilterInvalid}class ze{constructor(t,n){this.debugName=n,this._children=[],this._parent=null,t&&(this.parent=t)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(t){this._parent=t,t&&t.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(t,n){if(this._children.includes(t)){j(Uoe);return}n!==void 0?this._children.splice(n,0,t):this._children.push(t)}removeChild(t){const n=this._children.indexOf(t);return this._children.splice(n,1),n}remove(){let t=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,t++)}insertAsParentOf(t){const n=t.parent;n.removeChild(this),this.parent=n,t.parent=this}swapWithParent(){const t=this._parent,n=t.parent;for(const r of this._children)r.parent=t;this._children=[],t.removeChild(this);const i=t.parent.removeChild(t);this._parent=n,n.addChild(this,i),t.parent=this}}class Nn extends ze{clone(){const t=new this.constructor;return t.debugName=`clone_${this.debugName}`,t._source=this._source,t._name=`clone_${this._name}`,t.type=this.type,t.refCounts=this.refCounts,t.refCounts[t._name]=0,t}constructor(t,n,i,r){super(t,n),this.type=i,this.refCounts=r,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${TN()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function T1(e){return e.as!==void 0}function sF(e){return`${e}_end`}class pr extends ze{clone(){return new pr(null,ce(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,s)=>{const{field:a,timeUnit:u}=o;if(u){let l;if(ja(u)){if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});(cf(c)||h)&&(l={timeUnit:kt(u),field:a})}}else l={as:H(o,{forAs:!0}),field:a,timeUnit:u};if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});cf(c)&&dt(s)&&h!==.5&&(l.rectBandPosition=h)}l&&(r[Ae(l)]=l)}return r},{});return Ue(i)?null:new pr(t,i)}static makeFromTransform(t,n){const{timeUnit:i,...r}={...n},o=kt(i),s={...r,timeUnit:o};return new pr(t,{[Ae(s)]:s})}merge(t){this.timeUnits={...this.timeUnits};for(const n in t.timeUnits)this.timeUnits[n]||(this.timeUnits[n]=t.timeUnits[n]);for(const n of t.children)t.removeChild(n),n.parent=this;t.remove()}removeFormulas(t){const n={};for(const[i,r]of is(this.timeUnits)){const o=T1(r)?r.as:`${r.field}_end`;t.has(o)||(n[i]=r)}this.timeUnits=n}producedFields(){return new Set(qt(this.timeUnits).map(t=>T1(t)?t.as:sF(t.field)))}dependentFields(){return new Set(qt(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${Ae(this.timeUnits)}`}assemble(){const t=[];for(const n of qt(this.timeUnits)){const{rectBandPosition:i}=n,r=kt(n.timeUnit);if(T1(n)){const{field:o,as:s}=n,{unit:a,utc:u,...l}=r,c=[s,`${s}_end`];t.push({field:bi(o),type:"timeunit",...a?{units:M0(a)}:{},...u?{timezone:"utc"}:{},...l,as:c}),t.push(...aF(c,i,r))}else if(n){const{field:o}=n,s=o.replaceAll("\\.","."),a=L4({timeUnit:r,field:s}),u=sF(s);t.push({type:"formula",expr:a,as:u}),t.push(...aF([s,u],i,r))}}return t}}const Y0="offsetted_rect_start",X0="offsetted_rect_end";function L4({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=d6(i),{part:s,step:a}=m6(o,e.step);return`${r?"utcOffset":"timeOffset"}('${s}', ${Le(t)}, ${n?-a:a})`}function aF([e,t],n,i){if(n!==void 0&&n!==.5){const r=Le(e),o=Le(t);return[{type:"formula",expr:uF([L4({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${Y0}`},{type:"formula",expr:uF([r,o],n+.5),as:`${e}_${X0}`}]}return[]}function uF([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const sd="_tuple_fields";class Ile{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const zle={defined:()=>!0,parse:(e,t,n)=>{const i=t.name,r=t.project??(t.project=new Ile),o={},s={},a=new Set,u=(p,g)=>{const m=g==="visual"?p.channel:p.field;let y=Qe(`${i}_${m}`);for(let b=1;a.has(y);b++)y=Qe(`${i}_${m}_${b}`);return a.add(y),{[g]:y}},l=t.type,c=e.config.selection[l],f=n.value!==void 0?ct(n.value):null;let{fields:d,encodings:h}=Fe(n.select)?n.select:{};if(!d&&!h&&f){for(const p of f)if(Fe(p))for(const g of B(p))Qre(g)?(h||(h=[])).push(g):l==="interval"?(j(Roe),h=c.encodings):(d??(d=[])).push(g)}!d&&!h&&(h=c.encodings,"fields"in c&&(d=c.fields));for(const p of h??[]){const g=e.fieldDef(p);if(g){let m=g.field;if(g.aggregate){j(Coe(p,g.aggregate));continue}else if(!m){j(M_(p));continue}if(g.timeUnit&&!ja(g.timeUnit)){m=e.vgField(p);const y={timeUnit:g.timeUnit,as:m,field:g.field};s[Ae(y)]=y}if(!o[m]){const y=l==="interval"&&Nr(p)&&Bi(e.getScaleComponent(p).get("type"))?"R":g.bin?"R-RE":"E",b={field:m,channel:p,type:y,index:r.items.length};b.signals={...u(b,"data"),...u(b,"visual")},r.items.push(o[m]=b),r.hasField[m]=o[m],r.hasSelectionId=r.hasSelectionId||m===qi,PN(p)?(b.geoChannel=p,b.channel=LN(p),r.hasChannel[b.channel]=o[m]):r.hasChannel[p]=o[m]}}else j(M_(p))}for(const p of d??[]){if(r.hasField[p])continue;const g={type:"E",field:p,index:r.items.length};g.signals={...u(g,"data")},r.items.push(g),r.hasField[p]=g,r.hasSelectionId=r.hasSelectionId||p===qi}f&&(t.init=f.map(p=>r.items.map(g=>Fe(p)?p[g.geoChannel||g.channel]!==void 0?p[g.geoChannel||g.channel]:p[g.field]:p))),Ue(s)||(r.timeUnit=new pr(null,s))},signals:(e,t,n)=>{const i=t.name+sd;return n.filter(o=>o.name===i).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(B4)})}},P4="_curr",wh="anim_value",uu="anim_clock",nx="eased_anim_clock",I4="min_extent",z4="max_range_extent",M1="last_tick_at",O1="is_playing",Ble=1/60*1e3,Ule=(e,t)=>[{name:nx,update:uu},{name:`${e}_domain`,init:`domain('${t}')`},{name:I4,init:`extent(${e}_domain)[0]`},{name:z4,init:`extent(range('${t}'))[1]`},{name:wh,update:`invert('${t}', ${nx})`}],jle={defined:e=>e.type==="point",topLevelSignals:(e,t,n)=>(gr(t)&&(n=n.concat([{name:uu,init:"0",on:[{events:{type:"timer",throttle:Ble},update:`${O1} ? (${uu} + (now() - ${M1}) > ${z4} ? 0 : ${uu} + (now() - ${M1})) : ${uu}`}]},{name:M1,init:"now()",on:[{events:[{signal:uu},{signal:O1}],update:"now()"}]},{name:O1,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+sd,o=t.project,s="(item().isVoronoi ? datum.datum : datum)",a=qt(e.component.selection??{}).reduce((c,f)=>f.type==="interval"?c.concat(f.name+Au):c,[]).map(c=>`indexof(item().mark.name, '${c}') < 0`).join(" && "),u=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${a?` && ${a}`:""}`;let l=`unit: ${ta(e)}, `;if(t.project.hasSelectionId)l+=`${qi}: ${s}[${_e(qi)}]`;else if(gr(t))l+=`fields: ${r}, values: [${wh} ? ${wh} : ${I4}]`;else{const c=o.items.map(f=>e.fieldDef(f.channel)?.bin?`[${s}[${_e(e.vgField(f.channel,{}))}], ${s}[${_e(e.vgField(f.channel,{binSuffix:"end"}))}]]`:`${s}[${_e(f.field)}]`).join(", ");l+=`fields: ${r}, values: [${c}]`}if(gr(t))return n.concat(Ule(t.name,e.scaleName(ps)),[{name:i+mo,on:[{events:[{signal:nx},{signal:wh}],update:`{${l}}`,force:!0}]}]);{const c=t.events;return n.concat([{name:i+mo,on:c?[{events:c,update:`${u} ? {${l}} : null`,force:!0}]:[]}])}}};function B4(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=bi(r.field),r}function Aa(e,t=!0,n=Ore){if(X(e)){const i=e.map(r=>Aa(r,t,n));return t?`[${i.join(", ")}]`:i}else if(Ua(e))return n(t?xa(e):Ise(e));return t?n(je(e)):e}function qle(e,t){for(const n of qt(e.component.selection??{})){const i=n.name;let r=`${i}${mo}, ${n.resolve==="global"?"true":`{unit: ${ta(e)}}`}`;for(const o of J0)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+mce,on:[{events:{signal:n.name+mo},update:`modify(${_e(n.name+Sa)}, ${r})`}]})}return hA(t)}function Wle(e,t){if(e.component.selection&&B(e.component.selection).length){const n=_e(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:ds("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return hA(t)}function Gle(e,t){let n=!1;for(const i of qt(e.component.selection??{})){const r=i.name,o=_e(r+Sa);if(t.filter(a=>a.name===r).length===0){const a=i.resolve==="global"?"union":i.resolve,u=i.type==="point"?", true, true)":")";t.push({name:i.name,update:`${iL}(${o}, ${_e(a)}${u}`})}n=!0;for(const a of J0)a.defined(i)&&a.topLevelSignals&&(t=a.topLevelSignals(e,i,t))}return n&&t.filter(r=>r.name==="unit").length===0&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),hA(t)}function Hle(e,t){const n=[],i=[],r=ta(e,{escape:!1});for(const o of qt(e.component.selection??{})){const s={name:o.name+Sa};if(o.project.hasSelectionId&&(s.transform=[{type:"collect",sort:{field:qi}}]),o.init){const u=o.project.items.map(B4);s.values=o.project.hasSelectionId?o.init.map(l=>({unit:r,[qi]:Aa(l,!1)[0]})):o.init.map(l=>({unit:r,fields:u,values:Aa(l,!1)}))}if([...n,...t].filter(u=>u.name===o.name+Sa).length||n.push(s),gr(o)&&t.length){const u=e.lookupDataSource(e.getDataName(it.Main)),l=t.find(f=>f.name===u),c=l.transform.find(f=>f.type==="filter"&&f.expr.includes("vlSelectionTest"));if(c){l.transform=l.transform.filter(d=>d!==c);const f={name:l.name+P4,source:l.name,transform:[c]};i.push(f)}}}return n.concat(t,i)}function U4(e,t){for(const n of qt(e.component.selection??{}))for(const i of J0)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function Vle(e,t){for(const n of e.children)nt(n)&&(t=U4(n,t));return t}function Yle(e,t,n,i){const r=pL(e,t.param,t);return{signal:Bi(n.get("type"))&&X(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}function hA(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}const ao={defined:e=>e.type==="interval"&&e.resolve==="global"&&e.bind&&e.bind==="scales",parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!Nr(r))continue;const o=e.getScaleComponent(r),s=o?o.get("type"):void 0;if(s=="sequential"&&j(koe),!o||!Bi(s)){j(Foe);continue}o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(s=>n.filter(a=>a.name===s.signals.data).length===0);if(!e.parent||rx(e)||i.length===0)return n;const r=n.find(s=>s.name===t.name);let o=r.update;if(o.includes(iL))r.update=`{${i.map(s=>`${_e(bi(s.field))}: ${s.signals.data}`).join(", ")}}`;else{for(const s of i){const a=`${_e(bi(s.field))}: ${s.signals.data}`;o.includes(a)||(o=`${o.substring(0,o.length-1)}, ${a}}`)}r.update=o}return n.concat(i.map(s=>({name:s.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!rx(e))for(const i of t.scales){const r=n.find(o=>o.name===i.signals.data);r.push="outer",delete r.value,delete r.update}return n}};function ix(e,t){return`domain(${_e(e.scaleName(t))})`}function rx(e){return e.parent&&Cl(e.parent)&&(!e.parent.parent||rx(e.parent.parent))}const Au="_brush",j4="_scale_trigger",Yl="geo_interval_init_tick",q4="_init",Xle="_center",Kle={defined:e=>e.type==="interval",parse:(e,t,n)=>{var i;if(e.hasProjection){const r={...oa(n.select)?n.select:{}};r.fields=[qi],r.encodings||(r.encodings=n.value?B(n.value):[Ki,Xi]),n.select={type:"interval",...r}}if(t.translate&&!ao.defined(t)){const r=`!event.item || event.item.mark.name !== ${_e(t.name+Au)}`;for(const o of t.events){if(!o.between){j(`${o} is not an ordered event stream for interval selections.`);continue}const s=ct((i=o.between[0]).filter??(i.filter=[]));s.includes(r)||s.push(r)}}},signals:(e,t,n)=>{const i=t.name,r=i+mo,o=qt(t.project.hasChannel).filter(a=>a.channel===et||a.channel===Mt),s=t.init?t.init[0]:null;if(n.push(...o.reduce((a,u)=>a.concat(Jle(e,t,u,s&&s[u.index])),[])),e.hasProjection){const a=_e(e.projectionName()),u=e.projectionName()+Xle,{x:l,y:c}=t.project.hasChannel,f=l&&l.signals.visual,d=c&&c.signals.visual,h=l?s&&s[l.index]:`${u}[0]`,p=c?s&&s[c.index]:`${u}[1]`,g=w=>e.getSizeSignalRef(w).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":g("width")}, ${d?d+"[1]":g("height")}]]`;s&&(n.unshift({name:i+q4,init:`[scale(${a}, [${l?h[0]:h}, ${c?p[0]:p}]), scale(${a}, [${l?h[1]:h}, ${c?p[1]:p}])]`}),(!l||!c)&&(n.find(A=>A.name===u)||n.unshift({name:u,update:`invert(${a}, [${g("width")}/2, ${g("height")}/2])`})));const y=`intersect(${m}, {markname: ${_e(e.getName("marks"))}}, unit.mark)`,b=`{unit: ${ta(e)}}`,x=`vlSelectionTuples(${y}, ${b})`,v=o.map(w=>w.signals.visual);return n.concat({name:r,on:[{events:[...v.length?[{signal:v.join(" || ")}]:[],...s?[{signal:Yl}]:[]],update:x}]})}else{if(!ao.defined(t)){const l=i+j4,c=o.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,g=_e(e.scaleName(d)),m=e.getScaleComponent(d).get("type"),y=Bi(m)?"+":"";return`(!isArray(${h}) || (${y}invert(${g}, ${p})[0] === ${y}${h}[0] && ${y}invert(${g}, ${p})[1] === ${y}${h}[1]))`});c.length&&n.push({name:l,value:{},on:[{events:o.map(f=>({scale:e.scaleName(f.channel)})),update:c.join(" && ")+` ? ${l} : {}`}]})}const a=o.map(l=>l.signals.data),u=`unit: ${ta(e)}, fields: ${i+sd}, values`;return n.concat({name:r,...s?{init:`{${u}: ${Aa(s)}}`}:{},...a.length?{on:[{events:[{signal:a.join(" || ")}],update:`${a.join(" && ")} ? {${u}: [${a}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(nt(e)&&e.hasProjection&&t.init&&(n.filter(r=>r.name===Yl).length||n.unshift({name:Yl,value:null,on:[{events:"timer{1}",update:`${Yl} === null ? {} : ${Yl}`}]})),n),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,s=r?.signals.visual,a=o?.signals.visual,u=`data(${_e(t.name+Sa)})`;if(ao.defined(t)||!r&&!o)return n;const l={x:r!==void 0?{signal:`${s}[0]`}:{value:0},y:o!==void 0?{signal:`${a}[0]`}:{value:0},x2:r!==void 0?{signal:`${s}[1]`}:{field:{group:"width"}},y2:o!==void 0?{signal:`${a}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const m of B(l))l[m]=[{test:`${u}.length && ${u}[0].unit === ${ta(e)}`,...l[m]},{value:0}];const{fill:c,fillOpacity:f,cursor:d,...h}=t.mark,p=B(h).reduce((m,y)=>(m[y]=[{test:[r!==void 0&&`${s}[0] !== ${s}[1]`,o!==void 0&&`${a}[0] !== ${a}[1]`].filter(b=>b).join(" && "),value:h[y]},{value:null}],m),{}),g=d??(t.translate?"move":null);return[{name:`${i+Au}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:c},fillOpacity:{value:f}},update:l}},...n,{name:i+Au,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...l,...p}}}]}};function Jle(e,t,n,i){const r=!e.hasProjection,o=n.channel,s=n.signals.visual,a=_e(r?e.scaleName(o):e.projectionName()),u=d=>`scale(${a}, ${d})`,l=e.getSizeSignalRef(o===et?"width":"height").signal,c=`${o}(unit)`,f=t.events.reduce((d,h)=>[...d,{events:h.between[0],update:`[${c}, ${c}]`},{events:h,update:`[${s}[0], clamp(${c}, 0, ${l})]`}],[]);if(r){const d=n.signals.data,h=ao.defined(t),p=e.getScaleComponent(o),g=p?p.get("type"):void 0,m=i?{init:Aa(i,!0,u)}:{value:[]};return f.push({events:{signal:t.name+j4},update:Bi(g)?`[${u(`${d}[0]`)}, ${u(`${d}[1]`)}]`:"[0, 0]"}),h?[{name:d,on:[]}]:[{name:s,...m,on:f},{name:d,...i?{init:Aa(i)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]}]}else{const d=o===et?0:1,h=t.name+q4,p=i?{init:`[${h}[0][${d}], ${h}[1][${d}]]`}:{value:[]};return[{name:s,...p,on:f}]}}function El({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=nd(t)&&t.condition;let s=[];o&&(s=ct(o).map(l=>{const c=r(l);if(Iae(l)){const{param:f,empty:d}=l;return{test:hL(e,{param:f,empty:d}),...c}}else return{test:Yp(e,l.test),...c}})),i!==void 0&&s.push(i);const a=r(t);return a!==void 0&&s.push(a),s.length>1||s.length===1&&s[0].test?{[n]:s}:s.length===1?{[n]:s[0]}:{}}function pA(e,t="text"){const n=e.encoding[t];return El({model:e,channelDef:n,vgChannel:t,mainRefFn:i=>K0(i,e.config),invalidValueRef:void 0})}function K0(e,t,n="datum"){if(e){if(Ui(e))return Ye(e.value);if(fe(e)){const{format:i,formatType:r}=Up(e);return Yw({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function W4(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,s=n.tooltip;if(X(s))return{tooltip:lF({tooltip:s},o,r,t)};{const a=t.reactiveGeom?"datum.datum":"datum";return El({model:e,channelDef:s,vgChannel:"tooltip",mainRefFn:l=>{const c=K0(l,r,a);if(c)return c;if(l===null)return;let f=Be("tooltip",i,r);if(f===!0&&(f={content:"encoding"}),de(f))return{value:f};if(Fe(f))return Q(f)?f:f.content==="encoding"?lF(n,o,r,t):{signal:a}},invalidValueRef:void 0})}}function G4(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,s=i?"datum.datum":"datum",a=[];function u(c,f){const d=Ia(f),h=Cn(c)?c:{...c,type:e[d].type},p=h.title||Qw(h,r),g=ct(p).join(", ").replaceAll(/"/g,'\\"');let m;if(dt(f)){const y=f==="x"?"x2":"y2",b=ji(e[y]);if(Nt(h.bin)&&b){const x=H(h,{expr:s}),v=H(b,{expr:s}),{format:w,formatType:A}=Up(h);m=ed(x,v,w,A,r),o.add(y)}}if((dt(f)||f===Ei||f===Yi)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:y,formatType:b}=Up(h);m=Yw({fieldOrDatumDef:h,format:y,formatType:b,expr:s,config:r,normalizeStack:!0}).signal}m??(m=K0(h,r,s).signal),a.push({channel:f,key:g,value:m})}eA(e,(c,f)=>{q(c)?u(c,f):B0(c)&&u(c.condition,f)});const l={};for(const{channel:c,key:f,value:d}of a)!o.has(c)&&!l[f]&&(l[f]=d);return l}function lF(e,t,n,{reactiveGeom:i}={}){const r=G4(e,t,n,{reactiveGeom:i}),o=is(r).map(([s,a])=>`"${s}": ${a}`);return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function Qle(e){const{markDef:t,config:n}=e,i=Be("aria",t,n);return i===!1?{}:{...i?{aria:i}:{},...Zle(e),...ece(e)}}function Zle(e){const{mark:t,markDef:n,config:i}=e;if(i.aria===!1)return{};const r=Be("ariaRoleDescription",n,i);return r!=null?{ariaRoleDescription:{value:r}}:pt(Eoe,t)?{}:{ariaRoleDescription:{value:t}}}function ece(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return El({model:e,channelDef:o,vgChannel:"description",mainRefFn:u=>K0(u,e.config),invalidValueRef:void 0});const s=Be("description",n,i);if(s!=null)return{description:Ye(s)};if(i.aria===!1)return{};const a=G4(t,r,i);if(!Ue(a))return{description:{signal:is(a).map(([u,l],c)=>`"${c>0?"; ":""}${u}: " + (${l})`).join(" + ")}}}function It(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:s}=n;let{defaultRef:a,defaultValue:u}=n;const l=r[e];a===void 0&&(u??(u=Be(e,i,o,{vgChannel:s,ignoreVgConfig:!nd(l)})),u!==void 0&&(a=Ye(u)));const c={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=M6({...c,scaleChannel:e,channelDef:l});return El({model:t,channelDef:l,vgChannel:s??e,invalidValueRef:f,mainRefFn:h=>Vw({...c,channel:e,channelDef:h,stack:null,defaultRef:a})})}function H4(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,s=t.filled??Be("filled",n,r),a=we(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,u=Be(s===!0?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[s===!0&&"color"]??a,l=Be(s===!1?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[s===!1&&"color"],c=s?"fill":"stroke",f={...u?{fill:Ye(u)}:{},...l?{stroke:Ye(l)}:{}};return n.color&&(s?n.fill:n.stroke)&&j(i6("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...It("color",e,{vgChannel:c,defaultValue:s?u:l}),...It("fill",e,{defaultValue:i.fill?u:void 0}),...It("stroke",e,{defaultValue:i.stroke?l:void 0})}}function tce(e){const{encoding:t,mark:n}=e,i=t.order;return!vs(n)&&Ui(i)?El({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:r=>Ye(r.value),invalidValueRef:void 0}):{}}function Zu({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,s=t[o],a=n[o];if((o==="xOffset"||o==="yOffset")&&a)return{offsetType:"encoding",offset:Vw({channel:o,channelDef:a,markDef:t,config:i?.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:Ye(s),bandPosition:r})};const u=t[o];return u?{offsetType:"visual",offset:u}:{}}function bn(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:s,stack:a}=t,u=r[e],l=r[Rr(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Zu({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=gA({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),g=!u&&dt(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:nce({channel:e,channelDef:u,channel2Def:l,markDef:o,config:s,scaleName:c,scale:f,stack:a,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return g?{[i||e]:g}:void 0}function nce(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:s}=e;if(fe(n)&&r&&t===r.fieldChannel){if(q(n)){let a=n.bandPosition;if(a===void 0&&s.type==="text"&&(t==="radius"||t==="theta")&&(a=.5),a!==void 0)return Ip({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:a,offset:o})}return Zs(n,i,{suffix:"end"},{offset:o})}return Hw(e)}function gA({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:s}=e;return()=>{const a=Ia(n),u=rs(n),l=Be(n,o,s,{vgChannel:u});if(l!==void 0)return Lc(n,l);switch(t){case"zeroOrMin":return cF({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:a,config:s});case"zeroOrMax":return cF({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:a,config:s});case"mid":return{...e[jn(n)],mult:.5}}}}function cF({mainChannel:e,config:t,...n}){const i=T6(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if(r==="zeroOrMin")return{value:0};const{widthSignal:o,heightSignal:s}=r.zeroOrMax;return{signal:`min(${o},${s})/2`}}case"theta":return r==="zeroOrMin"?{value:0}:{signal:"2*PI"};case"x":return r==="zeroOrMin"?{value:0}:{field:{group:"width"}};case"y":return r==="zeroOrMin"?{field:{group:"height"}}:{value:0}}}const ice={left:"x",center:"xc",right:"x2"},rce={top:"y",middle:"yc",bottom:"y2"};function V4(e,t,n,i="middle"){if(e==="radius"||e==="theta")return rs(e);const r=e==="x"?"align":"baseline",o=Be(r,t,n);let s;return Q(o)?(j(nse(r)),s=void 0):s=o,e==="x"?ice[s||(i==="top"?"left":"center")]:rce[s||i]}function Gp(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?Y4(e,t,{defaultPos:n,defaultPos2:i}):bn(e,t,{defaultPos:n})}function Y4(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,s=Rr(e),a=jn(e),u=oce(t,i,s),l=u[a]?V4(e,r,o):rs(e);return{...bn(e,t,{defaultPos:n,vgChannel:l}),...u}}function oce(e,t,n){const{encoding:i,mark:r,markDef:o,stack:s,config:a}=e,u=Ia(n),l=jn(n),c=rs(n),f=i[u],d=e.scaleName(u),h=e.getScaleComponent(u),{offset:p}=n in i||n in o?Zu({channel:n,markDef:o,encoding:i,model:e}):Zu({channel:u,markDef:o,encoding:i,model:e});if(!f&&(n==="x2"||n==="y2")&&(i.latitude||i.longitude)){const m=jn(n),y=e.markDef[m];return y!=null?{[m]:{value:y}}:{[c]:{field:e.getName(n)}}}const g=sce({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:a,scaleName:d,scale:h,stack:s,offset:p,defaultRef:void 0});return g!==void 0?{[c]:g}:Ud(n,o)||Ud(n,{[n]:Gb(n,o,a.style),[l]:Gb(l,o,a.style)})||Ud(n,a[r])||Ud(n,a.mark)||{[c]:gA({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}function sce({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l}){return fe(t)&&a&&e.charAt(0)===a.fieldChannel.charAt(0)?Zs(t,o,{suffix:"start"},{offset:u}):Hw({channel:e,channelDef:n,scaleName:o,scale:s,stack:a,markDef:i,config:r,offset:u,defaultRef:l})}function Ud(e,t){const n=jn(e),i=rs(e);if(t[i]!==void 0)return{[i]:Lc(e,t[i])};if(t[e]!==void 0)return{[i]:Lc(e,t[e])};if(t[n]){const r=t[n];if(Ea(r))j(Koe(n));else return{[n]:Lc(e,r)}}}function go(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,s=Rr(t),a=jn(t),u=i[t],l=i[s],c=e.getScaleComponent(t),f=c?c.get("type"):void 0,d=r.orient,h=i[a]??i.size??Be("size",r,n,{vgChannel:a}),p=UN(t),g=o==="bar"&&(t==="x"?d==="vertical":d==="horizontal")||o==="tick"&&(t==="y"?d==="vertical":d==="horizontal");return q(u)&&(He(u.bin)||Nt(u.bin)||u.timeUnit&&!l)&&!(h&&!Ea(h))&&!i[p]&&!Dt(f)?lce({fieldDef:u,fieldDef2:l,channel:t,model:e}):(fe(u)&&Dt(f)||g)&&!l?uce(u,t,e):Y4(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function ace(e,t,n,i,r,o,s){if(Ea(r))if(n){const u=n.get("type");if(u==="band"){let l=`bandwidth('${t}')`;r.band!==1&&(l=`${r.band} * ${l}`);const c=Ar("minBandSize",{type:s},i);return{signal:c?`max(${Mi(c)}, ${l})`:l}}else r.band!==1&&(j(sse(u)),r=void 0)}else return{mult:r.band,field:{group:e}};else{if(Q(r))return r;if(r)return{value:r}}if(n){const u=n.get("range");if(Ba(u)&&Ze(u.step))return{value:u.step-2}}if(!o){const{bandPaddingInner:u,barBandPaddingInner:l,rectBandPaddingInner:c,tickBandPaddingInner:f}=i.scale,d=ft(u,s==="tick"?f:s==="bar"?l:c);if(Q(d))return{signal:`(1 - (${d.signal})) * ${e}`};if(Ze(d))return{signal:`${1-d} * ${e}`}}return{value:Qb(i.view,e)-2}}function uce(e,t,n){const{markDef:i,encoding:r,config:o,stack:s}=n,a=i.orient,u=n.scaleName(t),l=n.getScaleComponent(t),c=jn(t),f=Rr(t),d=UN(t),h=n.scaleName(d),p=n.getScaleComponent(xw(t)),g=i.type==="tick"||a==="horizontal"&&t==="y"||a==="vertical"&&t==="x";let m;(r.size||i.size)&&(g?m=It("size",n,{vgChannel:c,defaultRef:Ye(i.size)}):j(cse(i.type)));const y=!!m,b=z6({channel:t,fieldDef:e,markDef:i,config:o,scaleType:(l||p)?.get("type"),useVlSizeChannel:g});m=m||{[c]:ace(c,h||u,p||l,o,b,!!e,i.type)};const x=(l||p)?.get("type")==="band"&&Ea(b)&&!y?"top":"middle",v=V4(t,i,o,x),w=v==="xc"||v==="yc",{offset:A,offsetType:E}=Zu({channel:t,markDef:i,encoding:r,model:n,bandPosition:w?.5:0}),S=Hw({channel:t,channelDef:e,markDef:i,config:o,scaleName:u,scale:l,stack:s,offset:A,defaultRef:gA({model:n,defaultPos:"mid",channel:t,scaleName:u,scale:l}),bandPosition:w?E==="encoding"?0:.5:Q(b)?{signal:`(1-${b})/2`}:Ea(b)?(1-b.band)/2:0});if(c)return{[v]:S,...m};{const C=rs(f),_=m[c],k=A?{..._,offset:A}:_;return{[v]:S,[C]:X(S)?[S[0],{...S[1],offset:k}]:{...S,offset:k}}}}function fF(e,t,n,i,r,o,s){if(NN(e))return 0;const a=e==="x"||e==="y2",u=a?-t/2:t/2;if(Q(n)||Q(r)||Q(i)||o){const l=Mi(n),c=Mi(r),f=Mi(i),d=Mi(o),p=o?`(${s} < ${d} ? ${a?"":"-"}0.5 * (${d} - (${s})) : ${u})`:u,g=f?`${f} + `:"",m=l?`(${l} ? -1 : 1) * `:"",y=c?`(${c} + ${p})`:p;return{signal:g+m+y}}else return r=r||0,i+(n?-r-u:+r+u)}function lce({fieldDef:e,fieldDef2:t,channel:n,model:i}){const{config:r,markDef:o,encoding:s}=i,a=i.getScaleComponent(n),u=i.scaleName(n),l=a?a.get("type"):void 0,c=a.get("reverse"),f=z6({channel:n,fieldDef:e,markDef:o,config:r,scaleType:l}),h=i.component.axes[n]?.[0]?.get("translate")??.5,p=dt(n)?Be("binSpacing",o,r)??0:0,g=Rr(n),m=rs(n),y=rs(g),b=Ar("minBandSize",o,r),{offset:x}=Zu({channel:n,markDef:o,encoding:s,model:i,bandPosition:0}),{offset:v}=Zu({channel:g,markDef:o,encoding:s,model:i,bandPosition:0}),w=Mae({fieldDef:e,scaleName:u}),A=fF(n,p,c,h,x,b,w),E=fF(g,p,c,h,v??x,b,w),S=Q(f)?{signal:`(1-${f.signal})/2`}:Ea(f)?(1-f.band)/2:.5,C=os({fieldDef:e,fieldDef2:t,markDef:o,config:r});if(He(e.bin)||e.timeUnit){const _=e.timeUnit&&C!==.5;return{[y]:dF({fieldDef:e,scaleName:u,bandPosition:S,offset:E,useRectOffsetField:_}),[m]:dF({fieldDef:e,scaleName:u,bandPosition:Q(S)?{signal:`1-${S.signal}`}:1-S,offset:A,useRectOffsetField:_})}}else if(Nt(e.bin)){const _=Zs(e,u,{},{offset:E});if(q(t))return{[y]:_,[m]:Zs(t,u,{},{offset:A})};if(za(e.bin)&&e.bin.step)return{[y]:_,[m]:{signal:`scale("${u}", ${H(e,{expr:"datum"})} + ${e.bin.step})`,offset:A}}}j(s6(g))}function dF({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return Ip({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:Y0,endSuffix:X0}:{}})}const cce=new Set(["aria","width","height"]);function wi(e,t){const{fill:n=void 0,stroke:i=void 0}=t.color==="include"?H4(e):{};return{...fce(e.markDef,t),...hF("fill",n),...hF("stroke",i),...It("opacity",e),...It("fillOpacity",e),...It("strokeOpacity",e),...It("strokeWidth",e),...It("strokeDash",e),...tce(e),...W4(e),...pA(e,"href"),...Qle(e)}}function hF(e,t){return t?{[e]:t}:{}}function fce(e,t){return voe.reduce((n,i)=>(!cce.has(i)&&U(e,i)&&t[i]!=="ignore"&&(n[i]=Ye(e[i])),n),{})}function mA(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef((r,o)=>{let s;if(!Nr(o)||!(s=e.getScaleType(o)))return;const a=k0(r.aggregate),u=Gw({scaleChannel:o,markDef:n,config:t,scaleType:s,isCountAggregate:a});if(kae(u)){const l=e.vgField(o,{expr:"datum",binSuffix:e.stack?.impute?"mid":void 0});l&&i.add(l)}}),i.size>0)return{defined:{signal:[...i].map(o=>O0(o,!0)).join(" && ")}}}function pF(e,t){if(t!==void 0)return{[e]:Ye(t)}}const R1="voronoi",X4={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(R1)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(vs(o))return j($oe(o)),n;const s={name:e.getName(R1),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...W4(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let a=0,u=!1;return n.forEach((l,c)=>{const f=l.name??"";f===e.component.mark[0].name?a=c:f.includes(R1)&&(u=!0)}),u||n.splice(a+1,0,s),n}},K4={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!sA(e.bind),parse:(e,t,n)=>rL(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,s=t.init&&t.init[0],a=X4.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((u,l)=>{const c=Qe(`${i}_${u.field}`);n.filter(d=>d.name===c).length||n.unshift({name:c,...s?{init:Aa(s[l])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${a}[${_e(u.field)}] : null`}]:[],bind:o[u.field]??o[u.channel]??o})}),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(l=>l.name===i+mo),s=i+sd,a=r.items.map(l=>Qe(`${i}_${l.field}`)),u=a.map(l=>`${l} !== null`).join(" && ");return a.length&&(o.update=`${u} ? {fields: ${s}, values: [${a.join(", ")}]} : null`),delete o.value,delete o.on,n}},Hp="_toggle",J4={defined:e=>e.type==="point"&&!gr(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+Hp,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+mo,i=t.name+Hp;return`${i} ? null : ${n}, `+(t.resolve==="global"?`${i} ? null : true, `:`${i} ? null : {unit: ${ta(e)}}, `)+`${i} ? ${n} : null`}},dce={defined:e=>e.clear!==void 0&&e.clear!==!1&&!gr(e),parse:(e,t)=>{t.clear&&(t.clear=de(t.clear)?ds(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(K4.defined(t))for(const i of t.project.items){const r=n.findIndex(o=>o.name===Qe(`${t.name}_${i.field}`));r!==-1&&n[r].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(r,o){r!==-1&&n[r].on&&n[r].on.push({events:t.clear,update:o})}if(t.type==="interval")for(const r of t.project.items){const o=n.findIndex(s=>s.name===r.signals.visual);if(i(o,"[0, 0]"),o===-1){const s=n.findIndex(a=>a.name===r.signals.data);i(s,"null")}}else{let r=n.findIndex(o=>o.name===t.name+mo);i(r,"null"),J4.defined(t)&&(r=n.findIndex(o=>o.name===t.name+Hp),i(r,"false"))}return n}},Q4={defined:e=>{const t=e.resolve==="global"&&e.bind&&sA(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==qi;return t&&!n&&j(Doe),t&&n},parse:(e,t,n)=>{const i=ce(n);if(i.select=de(i.select)?{type:i.select,toggle:t.toggle}:{...i.select,toggle:t.toggle},rL(t,i),oa(n.select)&&(n.select.on||n.select.clear)){const s='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of t.events)a.filter=ct(a.filter??[]),a.filter.includes(s)||a.filter.push(s)}const r=F1(t.bind)?t.bind.legend:"click",o=de(r)?ds(r,"view"):ct(r);t.bind={legend:{merge:o}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=F1(t.bind)&&t.bind.legend,o=s=>a=>{const u=ce(a);return u.markname=s,u};for(const s of t.project.items){if(!s.hasLegend)continue;const a=`${Qe(s.field)}_legend`,u=`${i}_${a}`;if(n.filter(c=>c.name===u).length===0){const c=r.merge.map(o(`${a}_symbols`)).concat(r.merge.map(o(`${a}_labels`))).concat(r.merge.map(o(`${a}_entries`)));n.unshift({name:u,...t.init?{}:{value:null},on:[{events:c,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(d=>d.name===i+mo),s=i+sd,a=r.items.filter(d=>d.hasLegend).map(d=>Qe(`${i}_${Qe(d.field)}_legend`)),l=`${a.map(d=>`${d} !== null`).join(" && ")} ? {fields: ${s}, values: [${a.join(", ")}]} : null`;t.events&&a.length>0?o.on.push({events:a.map(d=>({signal:d})),update:l}):a.length>0&&(o.update=l,delete o.value,delete o.on);const c=n.find(d=>d.name===i+Hp),f=F1(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push({...c.on[0],events:f}):c.on[0].events=f),n}};function hce(e,t,n){const i=e.fieldDef(t)?.field;for(const r of qt(e.component.selection??{})){const o=r.project.hasField[i]??r.project.hasChannel[t];if(o&&Q4.defined(r)){const s=n.get("selections")??[];s.push(r.name),n.set("selections",s,!1),o.hasLegend=!0}}}const Z4="_translate_anchor",eL="_translate_delta",pce={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+Z4,{x:s,y:a}=t.project.hasChannel;let u=ds(t.translate,"scope");return r||(u=u.map(l=>(l.between[0].markname=i+Au,l))),n.push({name:o,value:{},on:[{events:u.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(s!==void 0?`, extent_x: ${r?ix(e,et):`slice(${s.signals.visual})`}`:"")+(a!==void 0?`, extent_y: ${r?ix(e,Mt):`slice(${a.signals.visual})`}`:"")+"}"}]},{name:i+eL,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),s!==void 0&&gF(e,t,s,"width",n),a!==void 0&&gF(e,t,a,"height",n),n}};function gF(e,t,n,i,r){const o=t.name,s=o+Z4,a=o+eL,u=n.channel,l=ao.defined(t),c=r.find(w=>w.name===n.signals[l?"data":"visual"]),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),g=l?u===et?p?"":"-":p?"-":"":"",m=`${s}.extent_${u}`,y=`${g}${a}.${u} / ${l?`${f}`:`span(${m})`}`,b=!l||!d?"panLinear":h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear",x=l?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":"",v=`${b}(${m}, ${y}${x})`;c.on.push({events:{signal:a},update:l?v:`clampRange(${v}, 0, ${f})`})}const tL="_zoom_anchor",nL="_zoom_delta",gce={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+nL,{x:s,y:a}=t.project.hasChannel,u=_e(e.scaleName(et)),l=_e(e.scaleName(Mt));let c=ds(t.zoom,"scope");return r||(c=c.map(f=>(f.markname=i+Au,f))),n.push({name:i+tL,on:[{events:c,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),s!==void 0&&mF(e,t,s,"width",n),a!==void 0&&mF(e,t,a,"height",n),n}};function mF(e,t,n,i,r){const o=t.name,s=n.channel,a=ao.defined(t),u=r.find(b=>b.name===n.signals[a?"data":"visual"]),l=e.getSizeSignalRef(i).signal,c=e.getScaleComponent(s),f=c&&c.get("type"),d=a?ix(e,s):u.name,h=o+nL,p=`${o}${tL}.${s}`,g=!a||!c?"zoomLinear":f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear",m=a?f==="pow"?`, ${c.get("exponent")??1}`:f==="symlog"?`, ${c.get("constant")??1}`:"":"",y=`${g}(${d}, ${p}, ${h}${m})`;u.on.push({events:{signal:h},update:a?y:`clampRange(${y}, 0, ${l})`})}const Sa="_store",mo="_tuple",mce="_modify",iL="vlSelectionResolve",J0=[jle,Kle,zle,J4,K4,ao,Q4,dce,pce,gce,X4];function yce(e){let t=e.parent;for(;t&&!Zn(t);)t=t.parent;return t}function ta(e,{escape:t}={escape:!0}){let n=t?_e(e.name):e.name;const i=yce(e);if(i){const{facet:r}=i;for(const o of di)r[o]&&(n+=` + '__facet_${o}_' + (facet[${_e(i.vgField(o))}])`)}return n}function yA(e){return qt(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function rL(e,t){(to(t.select)||!t.select.on)&&delete e.events,(to(t.select)||!t.select.clear)&&delete e.clear,(to(t.select)||!t.select.toggle)&&delete e.toggle}function gr(e){return e.events?.find(t=>"type"in t&&t.type==="timer")}const bce="RawCode",xce="Literal",vce="Property",Ece="Identifier",wce="ArrayExpression",Ace="BinaryExpression",Sce="CallExpression",Cce="ConditionalExpression",$ce="LogicalExpression",_ce="MemberExpression",Fce="ObjectExpression",kce="UnaryExpression";function Qi(e){this.type=e}Qi.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=Dce(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};function Dce(e){switch(e.type){case wce:return e.elements;case Ace:case $ce:return[e.left,e.right];case Sce:return[e.callee].concat(e.arguments);case Cce:return[e.test,e.consequent,e.alternate];case _ce:return[e.object,e.property];case Fce:return e.properties;case vce:return[e.key,e.value];case kce:return[e.argument];case Ece:case xce:case bce:default:return[]}}var Pr,J,R,sn,Ie,Q0=1,ad=2,Ca=3,Es=4,Z0=5,Wa=6,Dn=7,ud=8,Tce=9;Pr={};Pr[Q0]="Boolean";Pr[ad]="<end>";Pr[Ca]="Identifier";Pr[Es]="Keyword";Pr[Z0]="Null";Pr[Wa]="Numeric";Pr[Dn]="Punctuator";Pr[ud]="String";Pr[Tce]="RegularExpression";var Mce="ArrayExpression",Oce="BinaryExpression",Rce="CallExpression",Nce="ConditionalExpression",oL="Identifier",Lce="Literal",Pce="LogicalExpression",Ice="MemberExpression",zce="ObjectExpression",Bce="Property",Uce="UnaryExpression",Ft="Unexpected token %0",jce="Unexpected number",qce="Unexpected string",Wce="Unexpected identifier",Gce="Unexpected reserved word",Hce="Unexpected end of input",ox="Invalid regular expression",N1="Invalid regular expression: missing /",sL="Octal literals are not allowed in strict mode.",Vce="Duplicate data property in object literal not allowed in strict mode",Ut="ILLEGAL",df="Disabled.",Yce=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]"),Xce=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 em(e,t){if(!e)throw new Error("ASSERT: "+t)}function Gr(e){return e>=48&&e<=57}function bA(e){return"0123456789abcdefABCDEF".includes(e)}function Pc(e){return"01234567".includes(e)}function Kce(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function hf(e){return e===10||e===13||e===8232||e===8233}function ld(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&Yce.test(String.fromCharCode(e))}function Vp(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&Xce.test(String.fromCharCode(e))}const Jce={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 aL(){for(;R<sn;){const e=J.charCodeAt(R);if(Kce(e)||hf(e))++R;else break}}function sx(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<sn&&bA(J[R])?(i=J[R++],r=r*16+"0123456789abcdef".indexOf(i.toLowerCase())):De({},Ft,Ut);return String.fromCharCode(r)}function Qce(){var e,t,n,i;for(e=J[R],t=0,e==="}"&&De({},Ft,Ut);R<sn&&(e=J[R++],!!bA(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&De({},Ft,Ut),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function uL(){var e,t;for(e=J.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!ld(e.charCodeAt(0)))&&De({},Ft,Ut),t=e);R<sn&&(e=J.charCodeAt(R),!!Vp(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!Vp(e.charCodeAt(0)))&&De({},Ft,Ut),t+=e);return t}function Zce(){var e,t;for(e=R++;R<sn;){if(t=J.charCodeAt(R),t===92)return R=e,uL();if(Vp(t))++R;else break}return J.slice(e,R)}function efe(){var e,t,n;return e=R,t=J.charCodeAt(R)===92?uL():Zce(),t.length===1?n=Ca:Jce.hasOwnProperty(t)?n=Es:t==="null"?n=Z0:t==="true"||t==="false"?n=Q0:n=Ca,{type:n,value:t,start:e,end:R}}function L1(){var e=R,t=J.charCodeAt(R),n,i=J[R],r,o,s;switch(t){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++R,{type:Dn,value:String.fromCharCode(t),start:e,end:R};default:if(n=J.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:Dn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,J.charCodeAt(R)===61&&++R,{type:Dn,value:J.slice(e,R),start:e,end:R}}}if(s=J.substr(R,4),s===">>>=")return R+=4,{type:Dn,value:s,start:e,end:R};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return R+=3,{type:Dn,value:o,start:e,end:R};if(r=o.substr(0,2),i===r[1]&&"+-<>&|".includes(i)||r==="=>")return R+=2,{type:Dn,value:r,start:e,end:R};if(r==="//"&&De({},Ft,Ut),"<>=!+-*%&|^/".includes(i))return++R,{type:Dn,value:i,start:e,end:R};De({},Ft,Ut)}function tfe(e){let t="";for(;R<sn&&bA(J[R]);)t+=J[R++];return t.length===0&&De({},Ft,Ut),ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseInt("0x"+t,16),start:e,end:R}}function nfe(e){let t="0"+J[R++];for(;R<sn&&Pc(J[R]);)t+=J[R++];return(ld(J.charCodeAt(R))||Gr(J.charCodeAt(R)))&&De({},Ft,Ut),{type:Wa,value:parseInt(t,8),octal:!0,start:e,end:R}}function yF(){var e,t,n;if(n=J[R],em(Gr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=J[R++],n=J[R],e==="0"){if(n==="x"||n==="X")return++R,tfe(t);if(Pc(n))return nfe(t);n&&Gr(n.charCodeAt(0))&&De({},Ft,Ut)}for(;Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="."){for(e+=J[R++];Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="e"||n==="E")if(e+=J[R++],n=J[R],(n==="+"||n==="-")&&(e+=J[R++]),Gr(J.charCodeAt(R)))for(;Gr(J.charCodeAt(R));)e+=J[R++];else De({},Ft,Ut);return ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseFloat(e),start:t,end:R}}function ife(){var e="",t,n,i,r,o=!1;for(t=J[R],em(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<sn;)if(i=J[R++],i===t){t="";break}else if(i==="\\")if(i=J[R++],!i||!hf(i.charCodeAt(0)))switch(i){case"u":case"x":J[R]==="{"?(++R,e+=Qce()):e+=sx(i);break;case"n":e+=`
15
+ ${a}`)}return l}(e,"",0)}function mre(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var yre={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},bre={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},xre={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const vre=Array.prototype.slice,_s=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,vre.call(t,1))},Ere=(e,t,n,i,r,o,s)=>new Date(e,t||0,n??1,i||0,r||0,o||0,s||0);var wre={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:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:Ere,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return _s("join",arguments)},indexof:function(){return _s("indexOf",arguments)},lastindexof:function(){return _s("lastIndexOf",arguments)},slice:function(){return _s("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return _s("substring",arguments,String)},split:function(){return _s("split",arguments,String)},replace:function(){return _s("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const Are=["view","item","group","xy","x","y"],Ub=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ub.add(setImmediate);const Sre={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:yre[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ub.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||wre[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>bre[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>xre[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ub.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Vl(e,t,n,i,r,o){const s=a=>Sre[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,Are.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var Cre={operator(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Vl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Vl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Vl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&mre(s,i,o),l}}};const $re="5.23.0",_re={version:$re};function yl(e,t,n){return e.fields=t||[],e.fname=n,e}function Fre(e){return e.length===1?kre(e[0]):Dre(e)}const kre=e=>function(t){return t[e]},Dre=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function A1(e){throw Error(e)}function La(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||A1("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&A1("Access path missing closing bracket: "+e),i&&A1("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Tre(e,t,n){const i=La(e);return e=i.length===1?i[0]:e,yl(Fre(i),[e],e)}Tre("id");const Mre=yl(e=>e,[],"identity");yl(()=>0,[],"zero");yl(()=>1,[],"one");yl(()=>!0,[],"true");yl(()=>!1,[],"false");function Ore(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Rre=0,Nre=1,AN=2,Lre=3,Pre=4;function Ire(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ore,i=e||Rre;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Nre&&n("error","ERROR",arguments),this},warn(){return i>=AN&&n("warn","WARN",arguments),this},info(){return i>=Lre&&n("log","INFO",arguments),this},debug(){return i>=Pre&&n("log","DEBUG",arguments),this}}}var X=Array.isArray;function Fe(e){return e===Object(e)}const A_=e=>e!=="__proto__";function SN(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=zre(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;E0(i,o,r[o],s)}return i},{})}function E0(e,t,n,i){if(!A_(t))return;let r,o;if(Fe(n)&&!X(n)){o=Fe(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?E0(o,r,n[r]):A_(r)&&(o[r]=n[r])}else e[t]=n}function zre(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ct(e){return e!=null?X(e)?e:[e]:[]}function Bre(e){return typeof e=="function"}const Ure=Object.prototype.hasOwnProperty;function pt(e,t){return Ure.call(e,t)}function Vf(e){return typeof e=="boolean"}function Ze(e){return typeof e=="number"}function de(e){return typeof e=="string"}function _e(e){return X(e)?"["+e.map(_e)+"]":Fe(e)||de(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function lw(e){return U(e,"or")}function cw(e){return U(e,"and")}function fw(e){return U(e,"not")}function Eh(e,t){if(fw(e))Eh(e.not,t);else if(cw(e))for(const n of e.and)Eh(n,t);else if(lw(e))for(const n of e.or)Eh(n,t);else t(e)}function vu(e,t){return fw(e)?{not:vu(e.not,t)}:cw(e)?{and:e.and.map(n=>vu(n,t))}:lw(e)?{or:e.or.map(n=>vu(n,t))}:t(e)}const ce=structuredClone;function CN(e){throw new Error(e)}function qu(e,t){const n={};for(const i of t)pt(e,i)&&(n[i]=e[i]);return n}function Rn(e,t){const n={...e};for(const i of t)delete n[i];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>je(e)).join(",")})`};function Ae(e){if(Ze(e))return e;const t=de(e)?e:je(e);if(t.length<250)return t;let n=0;for(let i=0;i<t.length;i++){const r=t.charCodeAt(i);n=(n<<5)-n+r,n=n&n}return n}function jb(e){return e===!1||e===null}function we(e,t){return e.includes(t)}function Wu(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function dw(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function $N(e,...t){for(const n of t)jre(e,n??{});return e}function jre(e,t){for(const n of B(t))E0(e,n,t[n],!0)}function cr(e,t){const n=[],i={};let r;for(const o of e)r=t(o),!(r in i)&&(i[r]=1,n.push(o));return n}function qre(e,t){const n=B(e),i=B(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function _N(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function hw(e,t){for(const n of e)if(t.has(n))return!0;return!1}function qb(e){const t=new Set;for(const n of e){const r=La(n).map((s,a)=>a===0?s:`[${s}]`),o=r.map((s,a)=>r.slice(0,a+1).join(""));for(const s of o)t.add(s)}return t}function pw(e,t){return e===void 0||t===void 0?!0:hw(qb(e),qb(t))}function Ue(e){return B(e).length===0}const B=Object.keys,qt=Object.values,is=Object.entries;function uf(e){return e===!0||e===!1}function Qe(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Nc(e,t){return fw(e)?`!(${Nc(e.not,t)})`:cw(e)?`(${e.and.map(n=>Nc(n,t)).join(") && (")})`:lw(e)?`(${e.or.map(n=>Nc(n,t)).join(") || (")})`:t(e)}function Np(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&Np(e[n],t)&&delete e[n],Ue(e)}function Yf(e){return e.charAt(0).toUpperCase()+e.substr(1)}function gw(e,t="datum"){const n=La(e),i=[];for(let r=1;r<=n.length;r++){const o=`[${n.slice(0,r).map(_e).join("][")}]`;i.push(`${t}${o}`)}return i.join(" && ")}function FN(e,t="datum"){return`${t}[${_e(La(e).join("."))}]`}function Le(e){return`datum['${e.replaceAll("'","\\'")}']`}function Wre(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function bi(e){return`${La(e).map(Wre).join("\\.")}`}function ma(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function bl(e){return`${La(e).join(".")}`}function Gu(e){return e?La(e).length:0}function ft(...e){return e.find(t=>t!==void 0)}let kN=42;function DN(e){const t=++kN;return e?String(e)+t:t}function Gre(){kN=42}function TN(e){return MN(e)?e:`__${e}`}function MN(e){return e.startsWith("__")}function lf(e){if(e!==void 0)return(e%360+360)%360}function w0(e){return Ze(e)?!0:!isNaN(e)&&!isNaN(parseFloat(e))}const S_=Object.getPrototypeOf(structuredClone({}));function Xn(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor.name!==t.constructor.name)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=n;i--!==0;)if(!Xn(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;for(const o of e.entries())if(!Xn(o[1],t.get(o[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;i--!==0;)if(e[i]!==t[i])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==S_.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==S_.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;i--!==0;){const o=r[i];if(!Xn(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function je(e){const t=[];return function n(i){if(i&&i.toJSON&&typeof i.toJSON=="function"&&(i=i.toJSON()),i===void 0)return;if(typeof i=="number")return isFinite(i)?""+i:"null";if(typeof i!="object")return JSON.stringify(i);let r,o;if(Array.isArray(i)){for(o="[",r=0;r<i.length;r++)r&&(o+=","),o+=n(i[r])||"null";return o+"]"}if(i===null)return"null";if(t.includes(i))throw new TypeError("Converting circular structure to JSON");const s=t.push(i)-1,a=Object.keys(i).sort();for(o="",r=0;r<a.length;r++){const u=a[r],l=n(i[u]);l&&(o&&(o+=","),o+=JSON.stringify(u)+":"+l)}return t.splice(s,1),`{${o}}`}(e)}function U(e,t){return Fe(e)&&pt(e,t)&&e[t]!==void 0}const ro="row",oo="column",A0="facet",et="x",Mt="y",Vi="x2",Tr="y2",hs="xOffset",xl="yOffset",Yi="radius",vo="radius2",Ei="theta",Eo="theta2",Xi="latitude",Ki="longitude",Ji="latitude2",xi="longitude2",ps="time",Bn="color",Mr="fill",Or="stroke",Un="shape",wo="size",Pa="angle",Ao="opacity",gs="fillOpacity",ms="strokeOpacity",ys="strokeWidth",bs="strokeDash",Xf="text",Hu="order",Kf="detail",S0="key",ya="tooltip",C0="href",$0="url",_0="description",Hre={x:1,y:1,x2:1,y2:1},ON={theta:1,theta2:1,radius:1,radius2:1};function RN(e){return pt(ON,e)}const mw={longitude:1,longitude2:1,latitude:1,latitude2:1};function NN(e){switch(e){case Xi:return"y";case Ji:return"y2";case Ki:return"x";case xi:return"x2"}}function LN(e){return pt(mw,e)}const Vre=B(mw),yw={...Hre,...ON,...mw,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,time:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function Eu(e){return e===Bn||e===Mr||e===Or}const PN={row:1,column:1,facet:1},di=B(PN),bw={...yw,...PN},Yre=B(bw),{order:nme,detail:ime,tooltip:rme,...Xre}=bw,{row:ome,column:sme,facet:ame,...Kre}=Xre;function Jre(e){return pt(Kre,e)}function IN(e){return pt(bw,e)}const Qre=[Vi,Tr,Ji,xi,Eo,vo];function zN(e){return Ia(e)!==e}function Ia(e){switch(e){case Vi:return et;case Tr:return Mt;case Ji:return Xi;case xi:return Ki;case Eo:return Ei;case vo:return Yi}return e}function rs(e){if(RN(e))switch(e){case Ei:return"startAngle";case Eo:return"endAngle";case Yi:return"outerRadius";case vo:return"innerRadius"}return e}function Rr(e){switch(e){case et:return Vi;case Mt:return Tr;case Xi:return Ji;case Ki:return xi;case Ei:return Eo;case Yi:return vo}}function jn(e){switch(e){case et:case Vi:return"width";case Mt:case Tr:return"height"}}function BN(e){switch(e){case et:return"xOffset";case Mt:return"yOffset";case Vi:return"x2Offset";case Tr:return"y2Offset";case Ei:return"thetaOffset";case Yi:return"radiusOffset";case Eo:return"theta2Offset";case vo:return"radius2Offset"}}function xw(e){switch(e){case et:return"xOffset";case Mt:return"yOffset"}}function Zre(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const eoe=B(yw),{x:ume,y:lme,x2:cme,y2:fme,xOffset:dme,yOffset:hme,latitude:pme,longitude:gme,latitude2:mme,longitude2:yme,theta:bme,theta2:xme,radius:vme,radius2:Eme,...vw}=yw,toe=B(vw),Ew={x:1,y:1},So=B(Ew);function dt(e){return pt(Ew,e)}const ww={theta:1,radius:1},noe=B(ww);function F0(e){return e==="width"?et:Mt}const UN={xOffset:1,yOffset:1};function Jf(e){return pt(UN,e)}const ioe={time:1};function S1(e){return e in ioe}const{text:wme,tooltip:Ame,href:Sme,url:Cme,description:$me,detail:_me,key:Fme,order:kme,...jN}=vw,roe=B(jN);function ooe(e){return pt(vw,e)}function soe(e){switch(e){case Bn:case Mr:case Or:case wo:case Un:case Ao:case ys:case bs:return!0;case gs:case ms:case Pa:case ps:return!1}}const qN={...Ew,...ww,...UN,...jN},Aw=B(qN);function Nr(e){return pt(qN,e)}function aoe(e,t){return loe(e)[t]}const WN={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Dme,...uoe}=WN;function loe(e){switch(e){case Bn:case Mr:case Or:case _0:case Kf:case S0:case ya:case C0:case Hu:case Ao:case gs:case ms:case ys:case A0:case ro:case oo:return WN;case et:case Mt:case hs:case xl:case Xi:case Ki:case ps:return uoe;case Vi:case Tr:case Ji:case xi:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case wo:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case bs:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case Un:return{point:"always",geoshape:"always"};case Xf:return{text:"always"};case Pa:return{point:"always",square:"always",text:"always"};case $0:return{image:"always"};case Ei:return{text:"always",arc:"always"};case Yi:return{text:"always",arc:"always"};case Eo:case vo:return{arc:"always"}}}function C1(e){switch(e){case et:case Mt:case Ei:case Yi:case hs:case xl:case wo:case Pa:case ys:case Ao:case gs:case ms:case ps:case Vi:case Tr:case Eo:case vo:return;case A0:case ro:case oo:case Un:case bs:case Xf:case ya:case C0:case $0:case _0:return"discrete";case Bn:case Mr:case Or:return"flexible";case Xi:case Ki:case Ji:case xi:case Kf:case S0:case Hu:return}}const coe={argmax:1,argmin:1,average:1,count:1,distinct:1,exponential:1,exponentialb:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},foe={count:1,min:1,max:1};function po(e){return U(e,"argmin")}function xs(e){return U(e,"argmax")}function Sw(e){return de(e)&&pt(coe,e)}const doe=new Set(["count","valid","missing","distinct"]);function k0(e){return de(e)&&doe.has(e)}function hoe(e){return de(e)&&we(["min","max"],e)}const poe=new Set(["count","sum","distinct","valid","missing"]),goe=new Set(["mean","average","median","q1","q3","min","max"]);function GN(e){return Vf(e)&&(e=U0(e,void 0)),"bin"+B(e).map(t=>D0(e[t])?Qe(`_${t}_${is(e[t])}`):Qe(`_${t}_${e[t]}`)).join("")}function He(e){return e===!0||za(e)&&!e.binned}function Nt(e){return e==="binned"||za(e)&&e.binned===!0}function za(e){return Fe(e)}function D0(e){return U(e,"param")}function C_(e){switch(e){case ro:case oo:case wo:case Bn:case Mr:case Or:case ys:case Ao:case gs:case ms:case Un:return 6;case bs:return 4;default:return 10}}function Qf(e){return U(e,"expr")}function Lt(e,{level:t}={level:0}){const n=B(e||{}),i={};for(const r of n)i[r]=t===0?Vn(e[r]):Lt(e[r],{level:t-1});return i}function HN(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:s,color:a,subtitleColor:u,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...g}=e,m={...g,...a?{fill:a}:{}},y={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...o!==void 0?{angle:o}:{},...s!==void 0?{limit:s}:{}},b={...u?{subtitleColor:u}:{},...l?{subtitleFont:l}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}},x=qu(e,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:m,subtitleMarkConfig:x,nonMarkTitleProperties:y,subtitle:b}}function Ro(e){return de(e)||X(e)&&de(e[0])}function Q(e){return U(e,"signal")}function Ba(e){return U(e,"step")}function moe(e){return X(e)?!1:U(e,"fields")&&!U(e,"data")}function yoe(e){return X(e)?!1:U(e,"fields")&&U(e,"data")}function eo(e){return X(e)?!1:U(e,"field")&&U(e,"data")}const boe={aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1},xoe=B(boe),voe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Wb=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function VN(e){const t=X(e.condition)?e.condition.map($_):$_(e.condition);return{...Vn(e),condition:t}}function Vn(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function $_(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function Ye(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Q(e)?e:e!==void 0?{value:e}:void 0}function Eoe(e){return Q(e)?e.signal:_e(e)}function __(e){return Q(e)?e.signal:_e(e.value)}function Mi(e){return Q(e)?e.signal:e==null?null:_e(e)}function woe(e,t,n){for(const i of n){const r=Ar(i,t.markDef,t.config);r!==void 0&&(e[i]=Ye(r))}return e}function YN(e){return[].concat(e.type,e.style??[])}function Be(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&U(t,r)?t[r]:t[e]!==void 0?t[e]:o&&(!r||r===e)?void 0:Ar(e,t,n,i)}function Ar(e,t,n,{vgChannel:i}={}){const r=Gb(e,t,n.style);return ft(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function Gb(e,t,n){return XN(e,YN(t),n)}function XN(e,t,n){t=ct(t);let i;for(const r of t){const o=n[r];U(o,e)&&(i=o[e])}return i}function KN(e,t){return ct(e).reduce((n,i)=>(n.field.push(H(i,t)),n.order.push(i.sort??"ascending"),n),{field:[],order:[]})}function JN(e,t){const n=[...e];return t.forEach(i=>{for(const r of n)if(Xn(r,i))return;n.push(i)}),n}function QN(e,t){return Xn(e,t)||!t?e:e?[...ct(e),...ct(t)].join(", "):t}function ZN(e,t){const n=e.value,i=t.value;if(n==null||i===null)return{explicit:e.explicit,value:null};if((Ro(n)||Q(n))&&(Ro(i)||Q(i)))return{explicit:e.explicit,value:QN(n,i)};if(Ro(n)||Q(n))return{explicit:e.explicit,value:n};if(Ro(i)||Q(i))return{explicit:e.explicit,value:i};if(!Ro(n)&&!Q(n)&&!Ro(i)&&!Q(i))return{explicit:e.explicit,value:JN(n,i)};throw new Error("It should never reach here")}function Cw(e){return`Invalid specification ${je(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Aoe='Autosize "fit" only works for single views and layered views.';function F_(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function k_(e){const t=e=="width"?"Width":"Height",n=e=="width"?"x":"y";return`${t} "container" only works well with autosize "fit" or "fit-${n}".`}function D_(e){return e?`Dropping "fit-${e}" because spec has discrete ${jn(e)}.`:'Dropping "fit" because spec has discrete size.'}function $w(e){return`Unknown field for ${e}. Cannot calculate view size.`}function T_(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Soe(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Coe(e){return`The "nearest" transform is not supported for ${e} marks.`}function e6(e){return`Selection not supported for ${e} yet.`}function $oe(e){return`Cannot find a selection named "${e}".`}const _oe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",Foe="Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc",koe="Legend bindings are only supported for selections over an individual field or encoding channel.";function Doe(e){return`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`}function Toe(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}const Moe="The same selection must be used to override scale domains in a layered view.",Ooe='Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.';function Roe(e){return`Unknown repeated value "${e}".`}function M_(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const Noe="Multiple timer selections in one unit spec are not supported. Ignoring all but the first.",_w="Animation involving facet, layer, or concat is currently unsupported.";function Loe(e){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${gu(e)}.`}function Poe(e,t,n,i){return(e.length?"Multiple ":"No ")+`matching ${gu(t)} encoding found for selection ${gu(n.param)}. Using "field": ${gu(i)}.`}const Ioe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function zoe(e){return`Unrecognized parse "${e}".`}function O_(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}const Boe="Attempt to add the same child twice.";function Uoe(e){return`Ignoring an invalid transform: ${je(e)}.`}const joe='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function R_(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function qoe(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${je(t)} is overridden by a child projection ${je(n)}.`}const Woe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Goe(e){return`${e}Offset dropped because ${e} is continuous`}function Hoe(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${je(n)}}.`}function t6(e){return`Invalid field type "${e}".`}function Voe(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Yoe(e){return`Invalid aggregation operator "${e}".`}function n6(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`}function Xoe(e){return`Position range does not support relative band size for ${e}.`}function Hb(e,t){return`Dropping ${je(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}const Koe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function T0(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function Joe(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function Qoe(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function Zoe(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function ese(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function $1(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function tse(e){return`The ${e} for range marks cannot be an expression`}function nse(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function ise(e,t){return`Specified orient "${e}" overridden with "${t}".`}function rse(e){return`Cannot use the scale property "${e}" with non-color channel.`}function ose(e){return`Cannot use the relative band size with ${e} scale.`}function sse(e){return`Using unaggregated domain with raw field has no effect (${je(e)}).`}function ase(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function use(e){return`Unaggregated domain is currently unsupported for log scale (${je(e)}).`}function lse(e){return`Cannot apply size to non-oriented mark "${e}".`}function cse(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function fse(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function i6(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function r6(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}function dse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using ${je(n)}.`}function hse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using the union of the two domains.`}function pse(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function gse(e){return`Dropping sort property ${je(e)} as unioned domains only support boolean or op "count", "min", and "max".`}const N_="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",mse="Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.",yse="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.",bse="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";function xse(e){return`Cannot stack "${e}" if there is already "${e}2".`}function vse(e){return`Stack is applied to a non-linear scale (${e}).`}function Ese(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`}function Lp(e,t){return`Invalid ${e}: ${je(t)}.`}function wse(e){return`Dropping day from datetime ${je(e)} as day cannot be combined with other units.`}function Ase(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function Sse(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function Cse(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function L_(e){return`1D error band does not support ${e}.`}function o6(e){return`Channel ${e} is required for "binned" bin.`}function $se(e){return`Channel ${e} should not be used with "binned" bin.`}function _se(e){return`Domain for ${e} is required for threshold scale.`}const s6=Ire(AN);let ba=s6;function Fse(e){return ba=e,ba}function kse(){return ba=s6,ba}function Fw(...e){ba.error(...e)}function j(...e){ba.warn(...e)}function Dse(...e){ba.debug(...e)}function Ua(e){if(e&&Fe(e)){for(const t of Dw)if(U(e,t))return!0}return!1}const a6=["january","february","march","april","may","june","july","august","september","october","november","december"],Tse=a6.map(e=>e.substr(0,3)),u6=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Mse=u6.map(e=>e.substr(0,3));function Ose(e){if(w0(e)&&(e=+e),Ze(e))return e>4&&j(Lp("quarter",e)),e-1;throw new Error(Lp("quarter",e))}function Rse(e){if(w0(e)&&(e=+e),Ze(e))return e-1;{const t=e.toLowerCase(),n=a6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Tse.indexOf(i);if(r!==-1)return r;throw new Error(Lp("month",e))}}function Nse(e){if(w0(e)&&(e=+e),Ze(e))return e%7;{const t=e.toLowerCase(),n=u6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Mse.indexOf(i);if(r!==-1)return r;throw new Error(Lp("day",e))}}function kw(e,t){const n=[];if(t&&e.day!==void 0&&B(e).length>1&&(j(wse(e)),e=ce(e),delete e.day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const i=t?Rse(e.month):e.month;n.push(i)}else if(e.quarter!==void 0){const i=t?Ose(e.quarter):e.quarter;n.push(Ze(i)?i*3:`${i}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const i=t?Nse(e.day):e.day;n.push(Ze(i)?i+1:`${i}+1`)}else n.push(1);for(const i of["hours","minutes","seconds","milliseconds"]){const r=e[i];n.push(typeof r>"u"?0:r)}return n}function xa(e){const n=kw(e,!0).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Lse(e){const n=kw(e,!1).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Pse(e){const t=kw(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}const l6={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Dw=B(l6);function Ise(e){return Hr(l6,e)}function ja(e){return Fe(e)?e.binned:c6(e)}function c6(e){return e&&e.startsWith("binned")}function Tw(e){return e.startsWith("utc")}function zse(e){return e.substring(3)}const Bse={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function M0(e){return Dw.filter(t=>d6(e,t))}function f6(e){const t=M0(e);return t[t.length-1]}function d6(e,t){const n=e.indexOf(t);return!(n<0||n>0&&t==="seconds"&&e.charAt(n-1)==="i"||e.length>n+3&&t==="day"&&e.charAt(n+3)==="o"||n>0&&t==="year"&&e.charAt(n-1)==="f")}function Use(e,t,{end:n}={end:!1}){const i=gw(t),r=Tw(e)?"utc":"";function o(u){return u==="quarter"?`(${r}quarter(${i})-1)`:`${r}${u}(${i})`}let s;const a={};for(const u of Dw)d6(e,u)&&(a[u]=o(u),s=u);return n&&(a[s]+="+1"),Lse(a)}function h6(e){if(!e)return;const t=M0(e);return`timeUnitSpecifier(${je(t)}, ${je(Bse)})`}function jse(e,t,n){if(!e)return;const i=h6(e);return`${n||Tw(e)?"utc":"time"}Format(${t}, ${i})`}function kt(e){if(!e)return;let t;return de(e)?c6(e)?t={unit:e.substring(6),binned:!0}:t={unit:e}:Fe(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),Tw(t.unit)&&(t.utc=!0,t.unit=zse(t.unit)),t}function qse(e){const{utc:t,...n}=kt(e);return n.unit?(t?"utc":"")+B(n).map(i=>Qe(`${i==="unit"?"":`_${i}_`}${n[i]}`)).join(""):(t?"utc":"")+"timeunit"+B(n).map(i=>Qe(`_${i}_${n[i]}`)).join("")}function p6(e,t=n=>n){const n=kt(e),i=f6(n.unit);if(i&&i!=="day"){const r={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:o,part:s}=g6(i,n.step),a={...r,[s]:+r[s]+o};return`${t(xa(a))} - ${t(xa(r))}`}}const Wse={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Gse(e){return Hr(Wse,e)}function g6(e,t=1){if(Gse(e))return{part:e,step:t};switch(e){case"day":case"dayofyear":return{part:"date",step:t};case"quarter":return{part:"month",step:t*3};case"week":return{part:"date",step:t*7}}}function Hse(e){return U(e,"param")}function Mw(e){return!!e?.field&&e.equal!==void 0}function Ow(e){return!!e?.field&&e.lt!==void 0}function Rw(e){return!!e?.field&&e.lte!==void 0}function Nw(e){return!!e?.field&&e.gt!==void 0}function Lw(e){return!!e?.field&&e.gte!==void 0}function Pw(e){if(e?.field){if(X(e.range)&&e.range.length===2)return!0;if(Q(e.range))return!0}return!1}function Iw(e){return!!e?.field&&(X(e.oneOf)||X(e.in))}function Vse(e){return!!e?.field&&e.valid!==void 0}function m6(e){return Iw(e)||Mw(e)||Pw(e)||Ow(e)||Nw(e)||Rw(e)||Lw(e)}function nr(e,t){return j0(e,{timeUnit:t,wrapTime:!0})}function Yse(e,t){return e.map(n=>nr(n,t))}function y6(e,t=!0){const{field:n}=e,i=kt(e.timeUnit),{unit:r,binned:o}=i||{},s=H(e,{expr:"datum"}),a=r?`time(${o?s:Use(r,n)})`:s;if(Mw(e))return`${a}===${nr(e.equal,r)}`;if(Ow(e)){const u=e.lt;return`${a}<${nr(u,r)}`}else if(Nw(e)){const u=e.gt;return`${a}>${nr(u,r)}`}else if(Rw(e)){const u=e.lte;return`${a}<=${nr(u,r)}`}else if(Lw(e)){const u=e.gte;return`${a}>=${nr(u,r)}`}else{if(Iw(e))return`indexof([${Yse(e.oneOf,r).join(",")}], ${a}) !== -1`;if(Vse(e))return O0(a,e.valid);if(Pw(e)){const{range:u}=Lt(e),l=Q(u)?{signal:`${u.signal}[0]`}:u[0],c=Q(u)?{signal:`${u.signal}[1]`}:u[1];if(l!==null&&c!==null&&t)return"inrange("+a+", ["+nr(l,r)+", "+nr(c,r)+"])";const f=[];return l!==null&&f.push(`${a} >= ${nr(l,r)}`),c!==null&&f.push(`${a} <= ${nr(c,r)}`),f.length>0?f.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${je(e)}`)}function O0(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function Xse(e){return m6(e)&&e.timeUnit?{...e,timeUnit:kt(e.timeUnit)}:e}const Zf={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Kse(e){return e==="quantitative"||e==="temporal"}function b6(e){return e==="ordinal"||e==="nominal"}const va=Zf.quantitative,zw=Zf.ordinal,Vu=Zf.temporal,Bw=Zf.nominal,vl=Zf.geojson;function Jse(e){if(e)switch(e=e.toLowerCase(),e){case"q":case va:return"quantitative";case"t":case Vu:return"temporal";case"o":case zw:return"ordinal";case"n":case Bw:return"nominal";case vl:return"geojson"}}const Pt={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",TIME:"time",UTC:"utc",POINT:"point",BAND:"band"},Vb={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 Qse(e,t){const n=Vb[e],i=Vb[t];return n===i||n==="ordinal-position"&&i==="time"||i==="ordinal-position"&&n==="time"}const Zse={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 P_(e){return Zse[e]}const x6=new Set(["linear","log","pow","sqrt","symlog"]),v6=new Set([...x6,"time","utc"]);function E6(e){return x6.has(e)}const w6=new Set(["quantile","quantize","threshold"]),eae=new Set([...v6,...w6,"sequential","identity"]),tae=new Set(["ordinal","bin-ordinal","point","band"]);function Dt(e){return tae.has(e)}function Bi(e){return eae.has(e)}function fr(e){return v6.has(e)}function Yu(e){return w6.has(e)}const nae={pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,tickBandPaddingInner:.25,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:4,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0,framesPerSecond:2,animationDuration:5};function iae(e){return!de(e)&&U(e,"name")}function A6(e){return U(e,"param")}function rae(e){return U(e,"unionWith")}function oae(e){return Fe(e)&&"field"in e}const sae={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw: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:Tme,domain:Mme,range:Ome,rangeMax:Rme,rangeMin:Nme,scheme:Lme,...aae}=sae,uae=B(aae);function Yb(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return fr(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return fr(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return e==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return fr(e);case"nice":return fr(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Bi(e)&&!we(["log","time","utc","threshold","quantile"],e)}}function S6(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return Eu(e)?void 0:rse(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":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 lae(e,t){return we([zw,Bw],t)?e===void 0||Dt(e):t===Vu?we([Pt.TIME,Pt.UTC,void 0],e):t===va?E6(e)||Yu(e)||e===void 0:!0}function cae(e,t,n=!1){if(!Nr(e))return!1;switch(e){case et:case Mt:case hs:case xl:case Ei:case Yi:return fr(t)||t==="band"?!0:t==="point"?!n:!1;case ps:return we(["linear","band"],t);case wo:case ys:case Ao:case gs:case ms:case Pa:return fr(t)||Yu(t)||we(["band","point","ordinal"],t);case Bn:case Mr:case Or:return t!=="band";case bs:case Un:return t==="ordinal"||Yu(t)}}function fae(e){return Fe(e)&&"value"in e}const _n={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"},C6=_n.arc,R0=_n.area,N0=_n.bar,dae=_n.image,L0=_n.line,P0=_n.point,hae=_n.rect,Pp=_n.rule,$6=_n.text,Uw=_n.tick,pae=_n.trail,jw=_n.circle,qw=_n.square,_6=_n.geoshape;function vs(e){return["line","area","trail"].includes(e)}function cf(e){return["rect","bar","image","arc","tick"].includes(e)}const gae=new Set(B(_n));function Sr(e){return U(e,"type")}const mae=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],yae=["fill","fillOpacity"],bae=[...mae,...yae],xae={color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1},I_=B(xae),_1=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],vae={area:["line","point"],bar:_1,rect:_1,line:["point"],tick:["bandSize","thickness",..._1]},Eae={color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},wae={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},F6=B(wae);function Ea(e){return U(e,"band")}const Aae={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Sae=5,Ww={binSpacing:0,continuousBandSize:Sae,minBandSize:.25,timeUnitBandPosition:.5},Cae={...Ww,binSpacing:1},$ae={...Ww,thickness:1};function _ae(e){return Sr(e)?e.type:e}function k6(e,{isPath:t}){return e===void 0||e==="break-paths-show-path-domains"?t?"break-paths-show-domains":"filter":e===null?"show":e}function Gw({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){if(!i||!Bi(i)||r)return"always-valid";const o=k6(Be("invalid",e,t),{isPath:vs(e.type)});return t.scale?.invalid?.[n]!==void 0?"show":o}function Fae(e){return e==="break-paths-filter-domains"||e==="break-paths-show-domains"}function D6({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,s=t.domainHasZero();return s==="definitely"?{scale:e,value:0}:s==="maybe"?{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${n==="zeroOrMin"?r:o})`}:{signal:`scale('${e}', ${n==="zeroOrMin"?r:o})`}}function T6({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){const s=n?.get("type"),a=ji(t),u=k0(a?.aggregate),l=Gw({scaleChannel:e,markDef:r,config:o,scaleType:s,isCountAggregate:u});if(a&&l==="show"){const c=o.scale.invalid?.[e]??"zero-or-min";return{test:O0(H(a,{expr:"datum"}),!1),...kae(c,n,i)}}}function kae(e,t,n){if(fae(e)){const{value:i}=e;return Q(i)?{signal:i.signal}:{value:i}}return D6({scale:t,scaleName:n,mode:"zeroOrMin"})}function Hw(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:s}=e,a=Ia(t),u=Vw(e),l=T6({scaleChannel:a,channelDef:n,scale:r,scaleName:o,markDef:i,config:s});return l!==void 0?[l,u]:u}function Dae(e){const{datum:t}=e;return Ua(t)?xa(t):`${je(t)}`}function Zs(e,t,n,i){const r={};if(t&&(r.scale=t),Lr(e)){const{datum:o}=e;Ua(o)?r.signal=xa(o):Q(o)?r.signal=o.signal:Qf(o)?r.signal=o.expr:r.value=o}else r.field=H(e,n);if(i){const{offset:o,band:s}=i;o&&(r.offset=o),s&&(r.band=s)}return r}function Ip({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:s=.5}){const a=!Q(s)&&0<s&&s<1?"datum":void 0,u=H(t,{expr:a,suffix:r}),l=n!==void 0?H(n,{expr:a}):H(t,{suffix:o,expr:a}),c={};if(s===0||s===1){c.scale=e;const f=s===0?u:l;c.field=f}else{const f=Q(s)?`(1-${s.signal}) * ${u} + ${s.signal} * ${l}`:`${1-s} * ${u} + ${s} * ${l}`;c.signal=`scale("${e}", ${f})`}return i&&(c.offset=i),c}function Tae({scaleName:e,fieldDef:t}){const n=H(t,{expr:"datum"}),i=H(t,{expr:"datum",suffix:"end"});return`abs(scale("${e}", ${i}) - scale("${e}", ${n}))`}function Vw({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l,bandPosition:c}){if(t){if(fe(t)){const f=s?.get("type");if(Cn(t)){c??(c=os({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:d,timeUnit:h,type:p}=t;if(He(d)||c&&h&&p===Vu)return a?.impute?Zs(t,o,{binSuffix:"mid"},{offset:u}):c&&!Dt(f)?Ip({scaleName:o,fieldOrDatumDef:t,bandPosition:c,offset:u}):Zs(t,o,rd(t,e)?{binSuffix:"range"}:{},{offset:u});if(Nt(d)){if(q(n))return Ip({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:c,offset:u});j(o6(e===et?Vi:Tr))}}return Zs(t,o,Dt(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?c??t.bandPosition??.5:void 0})}else if(Ui(t)){const f=t.value,d=u?{offset:u}:{};return{...Lc(e,f),...d}}}return Bre(l)&&(l=l()),l&&{...l,...u?{offset:u}:{}}}function Lc(e,t){return we(["x","x2"],e)&&t==="width"?{field:{group:"width"}}:we(["y","y2"],e)&&t==="height"?{field:{group:"height"}}:Ye(t)}function wa(e){return e&&e!=="number"&&e!=="time"}function M6(e,t,n){return`${e}(${t}${n?`, ${je(n)}`:""})`}const Mae=" – ";function Yw({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o}){if(wa(n))return Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,config:o});const s=O6(e,i,r),a=Xu(e);if(t===void 0&&n===void 0&&o.customFormatTypes){if(a==="quantitative"){if(r&&o.normalizedNumberFormatType)return Oi({fieldOrDatumDef:e,format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,expr:i,config:o});if(o.numberFormatType)return Oi({fieldOrDatumDef:e,format:o.numberFormat,formatType:o.numberFormatType,expr:i,config:o})}if(a==="temporal"&&o.timeFormatType&&q(e)&&e.timeUnit===void 0)return Oi({fieldOrDatumDef:e,format:o.timeFormat,formatType:o.timeFormatType,expr:i,config:o})}if(Ju(e)){const u=Rae({field:s,timeUnit:q(e)?kt(e.timeUnit)?.unit:void 0,format:t,formatType:o.timeFormatType,rawTimeFormat:o.timeFormat,isUTCScale:qa(e)&&e.scale?.type===Pt.UTC});return u?{signal:u}:void 0}if(t=Xb({type:a,specifiedFormat:t,config:o,normalizeStack:r}),q(e)&&He(e.bin)){const u=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,u,t,n,o)}}else return t||Xu(e)==="quantitative"?{signal:`${L6(s,t)}`}:{signal:`isValid(${s}) ? ${s} : ""+${s}`}}function O6(e,t,n){return q(e)?n?`${H(e,{expr:t,suffix:"end"})}-${H(e,{expr:t,suffix:"start"})}`:H(e,{expr:t}):Dae(e)}function Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:s}){if(s??(s=O6(e,i,r)),s!=="datum.value"&&q(e)&&He(e.bin)){const a=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,a,t,n,o)}}return{signal:M6(n,s,t)}}function R6(e,t,n,i,r,o){if(!(de(i)&&wa(i))&&!(n===void 0&&i===void 0&&r.customFormatTypes&&Xu(e)==="quantitative"&&(r.normalizedNumberFormatType&&Ku(e)&&e.stack==="normalize"||r.numberFormatType))){if(Ku(e)&&e.stack==="normalize"&&r.normalizedNumberFormat)return Xb({type:"quantitative",config:r,normalizeStack:!0});if(Ju(e)){const s=q(e)?kt(e.timeUnit)?.unit:void 0;return s===void 0&&r.customFormatTypes&&r.timeFormatType?void 0:Oae({specifiedFormat:n,timeUnit:s,config:r,omitTimeFormatConfig:o})}return Xb({type:t,specifiedFormat:n,config:r})}}function N6(e,t,n){if(e&&(Q(e)||e==="number"||e==="time"))return e;if(Ju(t)&&n!=="time"&&n!=="utc")return q(t)&&kt(t?.timeUnit)?.utc?"utc":"time"}function Xb({type:e,specifiedFormat:t,config:n,normalizeStack:i}){if(de(t))return t;if(e===va)return i?n.normalizedNumberFormat:n.numberFormat}function Oae({specifiedFormat:e,timeUnit:t,config:n,omitTimeFormatConfig:i}){return e||(t?{signal:h6(t)}:i?void 0:n.timeFormat)}function L6(e,t){return`format(${e}, "${t||""}")`}function z_(e,t,n,i){return wa(n)?M6(n,e,t):L6(e,(de(t)?t:void 0)??i.numberFormat)}function ed(e,t,n,i,r){if(n===void 0&&i===void 0&&r.customFormatTypes&&r.numberFormatType)return ed(e,t,r.numberFormat,r.numberFormatType,r);const o=z_(e,n,i,r),s=z_(t,n,i,r);return`${O0(e,!1)} ? "null" : ${o} + "${Mae}" + ${s}`}function Rae({field:e,timeUnit:t,format:n,formatType:i,rawTimeFormat:r,isUTCScale:o}){return!t||n?!t&&i?`${i}(${e}, '${n}')`:(n=de(n)?n:r,`${o?"utc":"time"}Format(${e}, '${n}')`):jse(t,e,o)}const I0="min",Nae={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 B_(e){return pt(Nae,e)}function Lae(e){return U(e,"encoding")}function so(e){return e&&(e.op==="count"||U(e,"field"))}function P6(e){return e&&X(e)}function td(e){return U(e,"row")||U(e,"column")}function Xw(e){return U(e,"header")}function z0(e){return U(e,"facet")}function Pae(e){return U(e,"param")}function Iae(e){return!de(e)&&U(e,"repeat")}function U_(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function Kw(e){return U(e,"sort")}function os({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(fe(e)&&e.bandPosition!==void 0)return e.bandPosition;if(q(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return Ar("timeUnitBandPosition",n,i);if(He(o))return .5}}function I6({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:s}){const a=jn(e),u=Be(s?"size":a,i,r,{vgChannel:a});if(u!==void 0)return u;if(q(t)){const{timeUnit:l,bin:c}=t;if(l&&!n)return{band:Ar("timeUnitBandSize",i,r)};if(He(c)&&!Dt(o))return{band:1}}if(cf(i.type))return o?Dt(o)?r[i.type]?.discreteBandSize||{band:1}:r[i.type]?.continuousBandSize:r[i.type]?.discreteBandSize}function z6(e,t,n,i){return He(e.bin)||e.timeUnit&&Cn(e)&&e.type==="temporal"?os({fieldDef:e,fieldDef2:t,markDef:n,config:i})!==void 0:!1}function B6(e){return U(e,"sort")&&!U(e,"field")}function nd(e){return U(e,"condition")}function B0(e){const t=e?.condition;return!!t&&!X(t)&&q(t)}function id(e){const t=e?.condition;return!!t&&!X(t)&&fe(t)}function zae(e){const t=e?.condition;return!!t&&(X(t)||Ui(t))}function q(e){return U(e,"field")||e?.aggregate==="count"}function Xu(e){return e?.type}function Lr(e){return U(e,"datum")}function Wo(e){return Cn(e)&&!Bp(e)||zp(e)}function j_(e){return Cn(e)&&e.type==="quantitative"&&!e.bin||zp(e)}function zp(e){return Lr(e)&&Ze(e.datum)}function fe(e){return q(e)||Lr(e)}function Cn(e){return e&&(U(e,"field")||e.aggregate==="count")&&U(e,"type")}function Ui(e){return U(e,"value")}function qa(e){return U(e,"scale")||U(e,"sort")}function Ku(e){return U(e,"axis")||U(e,"stack")||U(e,"impute")}function U6(e){return U(e,"legend")}function j6(e){return U(e,"format")||U(e,"formatType")}function Bae(e){return Rn(e,["legend","axis","header","scale"])}function Uae(e){return U(e,"op")}function H(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(qae(e))n=TN("count");else{let s;if(!t.nofn)if(Uae(e))s=e.op;else{const{bin:a,aggregate:u,timeUnit:l}=e;He(a)?(s=GN(a),r=(t.binSuffix??"")+(t.suffix??"")):u?xs(u)?(o=`["${n}"]`,n=`argmax_${u.argmax}`):po(u)?(o=`["${n}"]`,n=`argmin_${u.argmin}`):s=String(u):l&&!ja(l)&&(s=qse(l),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}s&&(n=n?`${s}_${n}`:s)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?bl(n):t.expr?FN(n,t.expr)+o:bi(n)+o}function Bp(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return q(e)&&!!e.bin;case"temporal":return!1}throw new Error(t6(e.type))}function jae(e){return qa(e)&&Yu(e.scale?.type)}function qae(e){return e.aggregate==="count"}function Wae(e,t){const{field:n,bin:i,timeUnit:r,aggregate:o}=e;if(o==="count")return t.countTitle;if(He(i))return`${n} (binned)`;if(r&&!ja(r)){const s=kt(r)?.unit;if(s)return`${n} (${M0(s).join("-")})`}else if(o)return xs(o)?`${n} for max ${o.argmax}`:po(o)?`${n} for min ${o.argmin}`:`${Yf(o)} of ${n}`;return n}function Gae(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(xs(t))return`${r} for argmax(${t.argmax})`;if(po(t))return`${r} for argmin(${t.argmin})`;const o=i&&!ja(i)?kt(i):void 0,s=t||o?.unit||o?.maxbins&&"timeunit"||He(n)&&"bin";return s?`${s.toUpperCase()}(${r})`:r}const q6=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return Gae(e);default:return Wae(e,t)}};let W6=q6;function G6(e){W6=e}function Hae(){G6(q6)}function wu(e,t,{allowDisabling:n,includeDefault:i=!0}){const r=Jw(e)?.title;if(!q(e))return r??e.title;const o=e,s=i?Qw(o,t):void 0;return n?ft(r,o.title,s):r??o.title??s}function Jw(e){if(Ku(e)&&e.axis)return e.axis;if(U6(e)&&e.legend)return e.legend;if(Xw(e)&&e.header)return e.header}function Qw(e,t){return W6(e,t)}function Up(e){if(j6(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}else{const t=Jw(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function Vae(e,t){switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Kw(e)&&X(e.sort))return"ordinal";const{aggregate:n,bin:i,timeUnit:r}=e;if(r)return"temporal";if(i||n&&!xs(n)&&!po(n))return"quantitative";if(qa(e)&&e.scale?.type)switch(Vb[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function ji(e){if(q(e))return e;if(B0(e))return e.condition}function xt(e){if(fe(e))return e;if(id(e))return e.condition}function H6(e,t,n,i={}){if(de(e)||Ze(e)||Vf(e)){const r=de(e)?"string":Ze(e)?"number":"boolean";return j(Hoe(t,r,e)),{value:e}}return fe(e)?jp(e,t,n,i):id(e)?{...e,condition:jp(e.condition,t,n,i)}:e}function jp(e,t,n,i){if(j6(e)){const{format:r,formatType:o,...s}=e;if(wa(o)&&!n.customFormatTypes)return j(R_(t)),jp(s,t,n,i)}else{const r=Ku(e)?"axis":U6(e)?"legend":Xw(e)?"header":null;if(r&&e[r]){const{format:o,formatType:s,...a}=e[r];if(wa(s)&&!n.customFormatTypes)return j(R_(t)),jp({...e,[r]:a},t,n,i)}}return q(e)?Zw(e,t,i):Yae(e)}function Yae(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=Ze(n)?"quantitative":de(n)?"nominal":Ua(n)?"temporal":void 0,{...e,type:t}}function Zw(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:s}=e,a={...e};if(!n&&i&&!Sw(i)&&!xs(i)&&!po(i)&&(j(Yoe(i)),delete a.aggregate),r&&(a.timeUnit=kt(r)),s&&(a.field=`${s}`),He(o)&&(a.bin=U0(o,t)),Nt(o)&&!dt(t)&&j($se(t)),Cn(a)){const{type:u}=a,l=Jse(u);u!==l&&(a.type=l),u!=="quantitative"&&k0(i)&&(j(Voe(u,i)),a.type="quantitative")}else if(!zN(t)){const u=Vae(a,t);a.type=u}if(Cn(a)){const{compatible:u,warning:l}=Xae(a,t)||{};u===!1&&j(l)}if(Kw(a)&&de(a.sort)){const{sort:u}=a;if(B_(u))return{...a,sort:{encoding:u}};const l=u.substring(1);if(u.charAt(0)==="-"&&B_(l))return{...a,sort:{encoding:l,order:"descending"}}}if(Xw(a)){const{header:u}=a;if(u){const{orient:l,...c}=u;if(l)return{...a,header:{...c,labelOrient:u.labelOrient||l,titleOrient:u.titleOrient||l}}}}return a}function U0(e,t){return Vf(e)?{maxbins:C_(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?{...e,maxbins:C_(t)}:e}const iu={compatible:!0};function Xae(e,t){const n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case ro:case oo:case A0:return Bp(e)?iu:{compatible:!1,warning:Qoe(t)};case et:case Mt:case hs:case xl:case Bn:case Mr:case Or:case Xf:case Kf:case S0:case ya:case C0:case $0:case Pa:case Ei:case Yi:case _0:return iu;case Ki:case xi:case Xi:case Ji:return n!==va?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:iu;case Ao:case gs:case ms:case ys:case wo:case Eo:case vo:case Vi:case Tr:case ps:return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:iu;case Un:case bs:return!Bp(e)&&!jae(e)?{compatible:!1,warning:Zoe(t)}:iu;case Hu:return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:iu}}function Ju(e){const{formatType:t}=Up(e);return t==="time"||!t&&Kae(e)}function Kae(e){return e&&(e.type==="temporal"||q(e)&&!!e.timeUnit)}function j0(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){const o=t&&kt(t)?.unit;let s=o||n==="temporal",a;return Qf(e)?a=e.expr:Q(e)?a=e.signal:Ua(e)?(s=!0,a=xa(e)):(de(e)||Ze(e))&&s&&(a=`datetime(${je(e)})`,Ise(o)&&(Ze(e)&&e<1e4||de(e)&&isNaN(Date.parse(e)))&&(a=xa({[o]:e}))),a?i&&s?`time(${a})`:a:r?void 0:je(e)}function V6(e,t){const{type:n}=e;return t.map(i=>{const r=q(e)&&!ja(e.timeUnit)?e.timeUnit:void 0,o=j0(i,{timeUnit:r,type:n,undefinedIfExprNotRequired:!0});return o!==void 0?{signal:o}:i})}function rd(e,t){return He(e.bin)?Nr(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const q_={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 od(e){return e?.condition}const Y6=["domain","grid","labels","ticks","title"],Jae={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"},X6={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},Qae={...X6,style:1,labelExpr:1,encoding:1};function W_(e){return pt(Qae,e)}const Zae={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},K6=B(Zae);function Co(e){return U(e,"mark")}class q0{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return Co(t)?_ae(t.mark)===this.name:!1}}function ea(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||B0(n):!1}function J6(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||Lr(n)||id(n):!1}function Q6(e,t){if(dt(t)){const n=e[t];if((q(n)||Lr(n))&&(b6(n.type)||q(n)&&n.timeUnit)){const i=xw(t);return J6(e,i)}}return!1}function Z6(e){return Wu(Yre,t=>{if(ea(e,t)){const n=e[t];if(X(n))return Wu(n,i=>!!i.aggregate);{const i=ji(n);return i&&!!i.aggregate}}return!1})}function e4(e,t){const n=[],i=[],r=[],o=[],s={};return eA(e,(a,u)=>{if(q(a)){const{field:l,aggregate:c,bin:f,timeUnit:d,...h}=a;if(c||d||f){const g=Jw(a)?.title;let m=H(a,{forAs:!0});const y={...g?[]:{title:wu(a,t,{allowDisabling:!0})},...h,field:m};if(c){let b;if(xs(c)?(b="argmax",m=H({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${m}.${l}`):po(c)?(b="argmin",m=H({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${m}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(b=c),b){const x={op:b,as:m};l&&(x.field=l),o.push(x)}}else if(n.push(m),Cn(a)&&He(f)){if(i.push({bin:f,field:l,as:m}),n.push(H(a,{binSuffix:"end"})),rd(a,u)&&n.push(H(a,{binSuffix:"range"})),dt(u)){const b={field:`${m}_end`};s[`${u}2`]=b}y.bin="binned",zN(u)||(y.type=va)}else if(d&&!ja(d)){r.push({timeUnit:d,field:l,as:m});const b=Cn(a)&&a.type!==Vu&&"time";b&&(u===Xf||u===ya?y.formatType=b:ooe(u)?y.legend={formatType:b,...y.legend}:dt(u)&&(y.axis={formatType:b,...y.axis}))}s[u]=y}else n.push(l),s[u]=e[u]}else s[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:s}}function eue(e,t,n){const i=aoe(t,n);if(i){if(i==="binned"){const r=e[t===Vi?et:Mt];return!!(q(r)&&q(e[t])&&Nt(r.bin))}}else return!1;return!0}function tue(e,t,n,i){const r={};for(const o of B(e))IN(o)||j(Joe(o));for(let o of eoe){if(!e[o])continue;const s=e[o];if(Jf(o)){const a=Zre(o),u=r[a];if(q(u)&&Kse(u.type)&&q(s)&&!u.timeUnit){j(Goe(a));continue}}if(o==="angle"&&t==="arc"&&!e.theta&&(j(Woe),o=Ei),!eue(e,o,t)){j(T0(o,t));continue}if(o===wo&&t==="line"&&ji(e[o])?.aggregate){j(Koe);continue}if(o===Bn&&(n?"fill"in e:"stroke"in e)){j(n6("encoding",{fill:"fill"in e,stroke:"stroke"in e}));continue}if(o===Kf||o===Hu&&!X(s)&&!Ui(s)||o===ya&&X(s)){if(s){if(o===Hu){const a=e[o];if(B6(a)){r[o]=a;continue}}r[o]=ct(s).reduce((a,u)=>(q(u)?a.push(Zw(u,o)):j(Hb(u,o)),a),[])}}else{if(o===ya&&s===null)r[o]=null;else if(!q(s)&&!Lr(s)&&!Ui(s)&&!nd(s)&&!Q(s)){j(Hb(s,o));continue}r[o]=H6(s,o,i)}}return r}function W0(e,t){const n={};for(const i of B(e)){const r=H6(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function nue(e){const t=[];for(const n of B(e))if(ea(e,n)){const i=e[n],r=ct(i);for(const o of r)q(o)?t.push(o):B0(o)&&t.push(o.condition)}return t}function eA(e,t,n){if(e)for(const i of B(e)){const r=e[i];if(X(r))for(const o of r)t.call(n,o,i);else t.call(n,r,i)}}function iue(e,t,n,i){return e?B(e).reduce((r,o)=>{const s=e[o];return X(s)?s.reduce((a,u)=>t.call(i,a,u,o),r):t.call(i,r,s,o)},n):n}function t4(e,t){return B(t).reduce((n,i)=>{switch(i){case et:case Mt:case C0:case _0:case $0:case Vi:case Tr:case hs:case xl:case Ei:case Eo:case Yi:case vo:case ps:case Xi:case Ki:case Ji:case xi:case Xf:case Un:case Pa:case ya:return n;case Hu:if(e==="line"||e==="trail")return n;case Kf:case S0:{const r=t[i];if(X(r)||q(r))for(const o of ct(r))o.aggregate||n.push(H(o,{}));return n}case wo:if(e==="trail")return n;case Bn:case Mr:case Or:case Ao:case gs:case ms:case bs:case ys:{const r=ji(t[i]);return r&&!r.aggregate&&n.push(H(r,{})),n}}},[])}function rue(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if(X(t)){for(const o of t)o.aggregate?(i||(i=[]),i.push(o)):(r||(r=[]),r.push(o));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return X(r)&&r.length===1&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}function Kb(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};const r=e.map(({fieldPrefix:s,titlePrefix:a})=>{const u=i?` of ${tA(t)}`:"";return{field:s+t.field,type:t.type,title:Q(a)?{signal:`${a}"${escape(u)}"`}:a+u}}),o=nue(n).map(Bae);return{tooltip:[...r,...cr(o,Ae)]}}function tA(e){const{title:t,field:n}=e;return ft(t,n)}function nA(e,t,n,i,r){const{scale:o,axis:s}=n;return({partName:a,mark:u,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const d=tA(n);return n4(e,a,r,{mark:u,encoding:{[t]:{field:`${l}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...o!==void 0?{scale:o}:{},...s!==void 0?{axis:s}:{}},...de(c)?{[`${t}2`]:{field:`${c}_${n.field}`}}:{},...i,...f}})}}function n4(e,t,n,i){const{clip:r,color:o,opacity:s}=e,a=e.type;return e[t]||e[t]===void 0&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...s?{opacity:s}:{},...Sr(i.mark)?i.mark:{type:i.mark},style:`${a}-${String(t)}`,...Vf(e[t])?{}:e[t]}}]:[]}function i4(e,t,n){const{encoding:i}=e,r=t==="vertical"?"y":"x",o=i[r],s=i[`${r}2`],a=i[`${r}Error`],u=i[`${r}Error2`];return{continuousAxisChannelDef:Bd(o,n),continuousAxisChannelDef2:Bd(s,n),continuousAxisChannelDefError:Bd(a,n),continuousAxisChannelDefError2:Bd(u,n),continuousAxis:r}}function Bd(e,t){if(e?.aggregate){const{aggregate:n,...i}=e;return n!==t&&j(Cse(n,t)),i}else return e}function r4(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(Sr(n)&&n.orient)return n.orient;if(Wo(r)){if(Wo(o)){const s=q(r)&&r.aggregate,a=q(o)&&o.aggregate;if(!s&&a===t)return"vertical";if(!a&&s===t)return"horizontal";if(s===t&&a===t)throw new Error("Both x and y cannot have aggregate");return Ju(o)&&!Ju(r)?"horizontal":"vertical"}return"horizontal"}else{if(Wo(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}}const qp="boxplot",oue=["box","median","outliers","rule","ticks"],sue=new q0(qp,s4);function o4(e){return Ze(e)?"tukey":e}function s4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...s}=e,a=Sr(n)?n:{type:n};r&&j(e6("boxplot"));const u=a.extent??t.boxplot.extent,l=Be("size",a,t),c=a.invalid,f=o4(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:g,continuousAxis:m,groupby:y,aggregate:b,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:A}=aue(e,u,t),E=bl(g.field),{color:S,size:C,..._}=x,k=dd=>nA(a,m,g,dd,t.boxplot),N=k(_),T=k(x),F=(Fe(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",$=k({..._,...C?{size:C}:{},color:{condition:{test:`${Le(`lower_box_${g.field}`)} >= ${Le(`upper_box_${g.field}`)}`,...S||{value:F}}}}),D=Kb([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,x),P={type:"tick",color:"black",opacity:1,orient:v,invalid:c,aria:!1},z=f==="min-max"?D:Kb([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,x),I=[...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:z}),...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"lower_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"upper_whisker",extraEncoding:z})],V=[...f!=="tukey"?I:[],...T({partName:"box",mark:{type:"bar",...l?{size:l}:{},orient:w,invalid:c,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:D}),...$({partName:"median",mark:{type:"tick",invalid:c,...Fe(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...l?{size:l}:{},orient:v,aria:!1},positionPrefix:"mid_box",extraEncoding:D})];if(f==="min-max")return{...s,transform:(s.transform??[]).concat(p),layer:V};const ue=Le(`lower_box_${g.field}`),ie=Le(`upper_box_${g.field}`),he=`(${ie} - ${ue})`,We=`${ue} - ${u} * ${he}`,pe=`${ie} + ${u} * ${he}`,Ht=Le(g.field),ws={joinaggregate:a4(g.field),groupby:y},_o={transform:[{filter:`(${We} <= ${Ht}) && (${Ht} <= ${pe})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${E}`},{op:"max",field:g.field,as:`upper_whisker_${E}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${E}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${E}`},...b],groupby:y}],layer:I},{tooltip:Y,...ge}=_,{scale:ve,axis:W}=g,Ot=tA(g),Ne=Rn(W,["title"]),Vt=n4(a,"outliers",t.boxplot,{transform:[{filter:`(${Ht} < ${We}) || (${Ht} > ${pe})`}],mark:"point",encoding:{[m]:{field:g.field,type:g.type,...Ot!==void 0?{title:Ot}:{},...ve!==void 0?{scale:ve}:{},...Ue(Ne)?{}:{axis:Ne}},...ge,...S?{color:S}:{},...A?{tooltip:A}:{}}})[0];let At;const Zi=[...d,...h,ws];return Vt?At={transform:Zi,layer:[Vt,_o]}:(At=_o,At.transform.unshift(...Zi)),{...s,layer:[At,{transform:p,layer:V}]}}function a4(e){const t=bl(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}function aue(e,t,n){const i=r4(e,qp),{continuousAxisChannelDef:r,continuousAxis:o}=i4(e,i,qp),s=r.field,a=bl(s),u=o4(t),l=[...a4(s),{op:"median",field:s,as:`mid_box_${a}`},{op:"min",field:s,as:(u==="min-max"?"lower_whisker_":"min_")+a},{op:"max",field:s,as:(u==="min-max"?"upper_whisker_":"max_")+a}],c=u==="min-max"||u==="tukey"?[]:[{calculate:`${Le(`upper_box_${a}`)} - ${Le(`lower_box_${a}`)}`,as:`iqr_${a}`},{calculate:`min(${Le(`upper_box_${a}`)} + ${Le(`iqr_${a}`)} * ${t}, ${Le(`max_${a}`)})`,as:`upper_whisker_${a}`},{calculate:`max(${Le(`lower_box_${a}`)} - ${Le(`iqr_${a}`)} * ${t}, ${Le(`min_${a}`)})`,as:`lower_whisker_${a}`}],{[o]:f,...d}=e.encoding,{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=rue(d),{bins:g,timeUnits:m,aggregate:y,groupby:b,encoding:x}=e4(p,n),v=i==="vertical"?"horizontal":"vertical",w=i,A=[...g,...m,{aggregate:[...y,...l],groupby:b},...c];return{bins:g,timeUnits:m,transform:A,groupby:b,aggregate:y,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:h}}const iA="errorbar",uue=["ticks","rule"],lue=new q0(iA,u4);function u4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:s,markDef:a,outerSpec:u,tooltipEncoding:l}=l4(e,iA,t);delete o.size;const c=nA(a,r,i,o,t.errorbar),f=a.thickness,d=a.size,h={type:"tick",orient:s,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...u,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function cue(e,t){const{encoding:n}=e;if(fue(n))return{orient:r4(e,t),inputType:"raw"};const i=due(n),r=hue(n),o=n.x,s=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const a=n.x2,u=n.y2;if(fe(a)&&fe(u))throw new Error(`${t} cannot have both x2 and y2`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}else if(fe(u)){if(Wo(s))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}else{const a=n.xError,u=n.xError2,l=n.yError,c=n.yError2;if(fe(u)&&!fe(a))throw new Error(`${t} cannot have xError2 without xError`);if(fe(c)&&!fe(l))throw new Error(`${t} cannot have yError2 without yError`);if(fe(a)&&fe(l))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(fe(l)){if(Wo(s))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 fue(e){return(fe(e.x)||fe(e.y))&&!fe(e.x2)&&!fe(e.y2)&&!fe(e.xError)&&!fe(e.xError2)&&!fe(e.yError)&&!fe(e.yError2)}function due(e){return fe(e.x2)||fe(e.y2)}function hue(e){return fe(e.xError)||fe(e.xError2)||fe(e.yError)||fe(e.yError2)}function l4(e,t,n){const{mark:i,encoding:r,params:o,projection:s,...a}=e,u=Sr(i)?i:{type:i};o&&j(e6(t));const{orient:l,inputType:c}=cue(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:g}=i4(e,l,t),{errorBarSpecificAggregate:m,postAggregateCalculates:y,tooltipSummary:b,tooltipTitleWithFieldName:x}=pue(u,f,d,h,p,c,t,n),{[g]:v,[g==="x"?"x2":"y2"]:w,[g==="x"?"xError":"yError"]:A,[g==="x"?"xError2":"yError2"]:E,...S}=r,{bins:C,timeUnits:_,aggregate:k,groupby:N,encoding:T}=e4(S,n),F=[...k,...m],$=c!=="raw"?[]:N,D=Kb(b,f,T,x);return{transform:[...a.transform??[],...C,..._,...F.length===0?[]:[{aggregate:F,groupby:$}],...y],groupby:$,continuousAxisChannelDef:f,continuousAxis:g,encodingWithoutContinuousAxis:T,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:a,tooltipEncoding:D}}function pue(e,t,n,i,r,o,s,a){let u=[],l=[];const c=t.field;let f,d=!1;if(o==="raw"){const h=e.center?e.center:e.extent?e.extent==="iqr"?"median":"mean":a.errorbar.center,p=e.extent?e.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&j(Sse(h,p,s)),p==="stderr"||p==="stdev")u=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`${Le(`center_${c}`)} + ${Le(`extent_${c}`)}`,as:`upper_${c}`},{calculate:`${Le(`center_${c}`)} - ${Le(`extent_${c}`)}`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:Yf(h)},{fieldPrefix:"upper_",titlePrefix:G_(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:G_(h,p,"-")}],d=!0;else{let g,m,y;p==="ci"?(g="mean",m="ci0",y="ci1"):(g="median",m="q1",y="q3"),u=[{op:m,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:g,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:wu({field:c,aggregate:y,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:wu({field:c,aggregate:m,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:wu({field:c,aggregate:g,type:"quantitative"},a,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&j(Ase(e.center,e.extent)),o==="aggregated-upper-lower"?(f=[],l=[{calculate:Le(n.field),as:`upper_${c}`},{calculate:Le(c),as:`lower_${c}`}]):o==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`${Le(c)} + ${Le(i.field)}`,as:`upper_${c}`}],r?l.push({calculate:`${Le(c)} + ${Le(r.field)}`,as:`lower_${c}`}):l.push({calculate:`${Le(c)} - ${Le(i.field)}`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:ma(ma(h.calculate,"datum['",""),"']","")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}function G_(e,t,n){return`${Yf(e)} ${n} ${t}`}const rA="errorband",gue=["band","borders"],mue=new q0(rA,c4);function c4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:s,outerSpec:a,tooltipEncoding:u}=l4(e,rA,t),l=s,c=nA(l,r,i,o,t.errorband),f=e.encoding.x!==void 0&&e.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):l.interpolate?j(L_("interpolate")):l.tension&&j(L_("tension")),{...a,transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const f4={};function oA(e,t,n){const i=new q0(e,t);f4[e]={normalizer:i,parts:n}}function yue(){return B(f4)}oA(qp,s4,oue);oA(iA,u4,uue);oA(rA,c4,gue);const bue=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],d4={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"},h4={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"},xue=B(d4),vue=B(h4),Eue={header:1,headerRow:1,headerColumn:1,headerFacet:1},p4=B(Eue),g4=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],wue={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},Aue={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},qi="_vgsid_",Sue={point:{on:"click",fields:[qi],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function sA(e){return e==="legend"||!!e?.legend}function F1(e){return sA(e)&&Fe(e)}function aA(e){return!!e?.select}function m4(e){const t=[];for(const n of e||[]){if(aA(n))continue;const{expr:i,bind:r,...o}=n;if(r&&i){const s={...o,bind:r,init:i};t.push(s)}else{const s={...o,...i?{update:i}:{},...r?{bind:r}:{}};t.push(s)}}return t}function Cue(e){return G0(e)||lA(e)||uA(e)}function uA(e){return U(e,"concat")}function G0(e){return U(e,"vconcat")}function lA(e){return U(e,"hconcat")}function y4({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Cr(e){return U(e,"step")}function H_(e){return U(e,"view")||U(e,"width")||U(e,"height")}const V_=20,$ue={align:1,bounds:1,center:1,columns:1,spacing:1},_ue=B($ue);function Fue(e,t,n){const i=n[t],r={},{spacing:o,columns:s}=i;o!==void 0&&(r.spacing=o),s!==void 0&&(z0(e)&&!td(e.facet)||uA(e))&&(r.columns=s),G0(e)&&(r.columns=1);for(const a of _ue)if(e[a]!==void 0)if(a==="spacing"){const u=e[a];r[a]=Ze(u)?u:{row:u.row??o,column:u.column??o}}else r[a]=e[a];return r}function Jb(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function Qb(e,t){const n=Wp(e,t);return Cr(n)?n.step:b4}function Wp(e,t){const n=e[t]??e[t==="width"?"discreteWidth":"discreteHeight"];return ft(n,{step:e.step})}const b4=20,kue={continuousWidth:200,continuousHeight:200,step:b4},Due={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:kue,mark:Eae,arc:{},area:{},bar:Cae,circle:{},geoshape:{},image:{},line:{},point:{},rect:Ww,rule:{color:"black"},square:{},text:{color:"black"},tick:$ae,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:nae,projection:{},legend:wue,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Sue,style:{},title:{},facet:{spacing:V_},concat:{spacing:V_},normalizedNumberFormat:".0%"},Ur=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Y_={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},X_={blue:Ur[0],orange:Ur[1],red:Ur[2],teal:Ur[3],green:Ur[4],yellow:Ur[5],purple:Ur[6],pink:Ur[7],brown:Ur[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 Tue(e={}){return{signals:[{name:"color",value:Fe(e)?{...X_,...e}:X_}],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 Mue(e){return{signals:[{name:"fontSize",value:Fe(e)?{...Y_,...e}:Y_}],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 Oue(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}function x4(e){const t=B(e||{}),n={};for(const i of t){const r=e[i];n[i]=od(r)?VN(r):Vn(r)}return n}function Rue(e){const t=B(e),n={};for(const i of t)n[i]=x4(e[i]);return n}const Nue=[...F6,...K6,...p4,"background","padding","legend","lineBreak","scale","style","title","view"];function v4(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,s=SN({},ce(Due),n?Oue(n):{},t?Tue(t):{},i?Mue(i):{},o||{});r&&E0(s,"selection",r,!0);const a=Rn(s,Nue);for(const u of["background","lineBreak","padding"])s[u]&&(a[u]=Vn(s[u]));for(const u of F6)s[u]&&(a[u]=Lt(s[u]));for(const u of K6)s[u]&&(a[u]=x4(s[u]));for(const u of p4)s[u]&&(a[u]=Lt(s[u]));if(s.legend&&(a.legend=Lt(s.legend)),s.scale){const{invalid:u,...l}=s.scale,c=Lt(u,{level:1});a.scale={...Lt(l),...B(c).length>0?{invalid:c}:{}}}return s.style&&(a.style=Rue(s.style)),s.title&&(a.title=Lt(s.title)),s.view&&(a.view=Lt(s.view)),a}const Lue=new Set(["view",...gae]),Pue=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Iue={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...vae};function zue(e){e=ce(e);for(const t of Pue)delete e[t];if(e.axis)for(const t in e.axis)od(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of bue)delete e.legend[t];if(e.mark){for(const t of I_)delete e.mark[t];e.mark.tooltip&&Fe(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(m4(e.params)),delete e.params);for(const t of Lue){for(const i of I_)delete e[t][i];const n=Iue[t];if(n)for(const i of n)delete e[t][i];Uue(e,t)}for(const t of yue())delete e[t];Bue(e);for(const t in e)Fe(e[t])&&Ue(e[t])&&delete e[t];return Ue(e)?void 0:e}function Bue(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=HN(e.title);Ue(t)||(e.style["group-title"]={...e.style["group-title"],...t}),Ue(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n}),Ue(i)?delete e.title:e.title=i}function Uue(e,t,n,i){const r=e[t];t==="view"&&(n="cell");const o={...r,...e.style[n??t]};Ue(o)||(e.style[n??t]=o),delete e[t]}function H0(e){return U(e,"layer")}function jue(e){return U(e,"repeat")}function que(e){return!X(e.repeat)&&U(e.repeat,"layer")}class cA{map(t,n){return z0(t)?this.mapFacet(t,n):jue(t)?this.mapRepeat(t,n):lA(t)?this.mapHConcat(t,n):G0(t)?this.mapVConcat(t,n):uA(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(H0(t))return this.mapLayer(t,n);if(Co(t))return this.mapUnit(t,n);throw new Error(Cw(t))}mapLayer(t,n){return{...t,layer:t.layer.map(i=>this.mapLayerOrUnit(i,n))}}mapHConcat(t,n){return{...t,hconcat:t.hconcat.map(i=>this.map(i,n))}}mapVConcat(t,n){return{...t,vconcat:t.vconcat.map(i=>this.map(i,n))}}mapConcat(t,n){const{concat:i,...r}=t;return{...r,concat:i.map(o=>this.map(o,n))}}mapFacet(t,n){return{...t,spec:this.map(t.spec,n)}}mapRepeat(t,n){return{...t,spec:this.map(t.spec,n)}}}const Wue={zero:1,center:1,normalize:1};function Gue(e){return pt(Wue,e)}const Hue=new Set([C6,N0,R0,Pp,P0,jw,qw,L0,$6,Uw]),Vue=new Set([N0,R0,C6]);function ru(e){return q(e)&&Xu(e)==="quantitative"&&!e.bin}function K_(e,t,{orient:n,type:i}){const r=t==="x"?"y":"radius",o=t==="x"&&["bar","area"].includes(i),s=e[t],a=e[r];if(q(s)&&q(a))if(ru(s)&&ru(a)){if(s.stack)return t;if(a.stack)return r;const u=q(s)&&!!s.aggregate,l=q(a)&&!!a.aggregate;if(u!==l)return u?t:r;if(o){if(n==="vertical")return r;if(n==="horizontal")return t}}else{if(ru(s))return t;if(ru(a))return r}else{if(ru(s))return o&&n==="vertical"?void 0:t;if(ru(a))return o&&n==="horizontal"?void 0:r}}function Yue(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function E4(e,t){const n=Sr(e)?e:{type:e},i=n.type;if(!Hue.has(i))return null;const r=K_(t,"x",n)||K_(t,"theta",n);if(!r)return null;const o=t[r],s=q(o)?H(o,{}):void 0,a=Yue(r),u=[],l=new Set;if(t[a]){const g=t[a],m=q(g)?H(g,{}):void 0;m&&m!==s&&(u.push(a),l.add(m))}const c=a==="x"?"xOffset":"yOffset",f=t[c],d=q(f)?H(f,{}):void 0;d&&d!==s&&(u.push(c),l.add(d));const h=toe.reduce((g,m)=>{if(m!=="tooltip"&&ea(t,m)){const y=t[m];for(const b of ct(y)){const x=ji(b);if(x.aggregate)continue;const v=H(x,{});(!v||!l.has(v))&&g.push({channel:m,fieldDef:x})}}return g},[]);let p;return o.stack!==void 0?Vf(o.stack)?p=o.stack?"zero":null:p=o.stack:Vue.has(i)&&(p="zero"),!p||!Gue(p)||Z6(t)&&h.length===0?null:(o?.scale?.type&&o?.scale?.type!==Pt.LINEAR&&o?.stack&&j(vse(o.scale.type)),fe(t[Rr(r)])?(o.stack!==void 0&&j(xse(r)),null):(q(o)&&o.aggregate&&!poe.has(o.aggregate)&&j(Ese(o.aggregate)),{groupbyChannels:u,groupbyFields:l,fieldChannel:r,impute:o.impute===null?!1:vs(i),stackBy:h,offset:p}))}function w4(e,t,n){const i=Lt(e),r=Be("orient",i,n);if(i.orient=Que(i.type,t,r),r!==void 0&&r!==i.orient&&j(ise(i.orient,r)),i.type==="bar"&&i.orient){const u=Be("cornerRadiusEnd",i,n);if(u!==void 0){const l=i.orient==="horizontal"&&t.x2||i.orient==="vertical"&&t.y2?["cornerRadius"]:Aae[i.orient];for(const c of l)i[c]=u;i.cornerRadiusEnd!==void 0&&delete i.cornerRadiusEnd}}const o=Be("opacity",i,n),s=Be("fillOpacity",i,n);return o===void 0&&s===void 0&&(i.opacity=Kue(i.type,t)),Be("cursor",i,n)===void 0&&(i.cursor=Xue(i,t,n)),i}function Xue(e,t,n){return t.href||e.href||Be("href",e,n)?"pointer":e.cursor}function Kue(e,t){if(we([P0,Uw,jw,qw],e)&&!Z6(t))return .7}function Jue(e,t,{graticule:n}){if(n)return!1;const i=Ar("filled",e,t),r=e.type;return ft(i,r!==P0&&r!==L0&&r!==Pp)}function Que(e,t,n){switch(e){case P0:case jw:case qw:case $6:case hae:case dae:return}const{x:i,y:r,x2:o,y2:s}=t;switch(e){case N0:if(q(i)&&(Nt(i.bin)||q(r)&&r.aggregate&&!i.aggregate))return"vertical";if(q(r)&&(Nt(r.bin)||q(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(s||o){if(n)return n;if(!o)return(q(i)&&i.type===va&&!He(i.bin)||zp(i))&&q(r)&&Nt(r.bin)?"horizontal":"vertical";if(!s)return(q(r)&&r.type===va&&!He(r.bin)||zp(r))&&q(i)&&Nt(i.bin)?"vertical":"horizontal"}case Pp:if(o&&!(q(i)&&Nt(i.bin))&&s&&!(q(r)&&Nt(r.bin)))return;case R0:if(s)return q(r)&&Nt(r.bin)?"horizontal":"vertical";if(o)return q(i)&&Nt(i.bin)?"vertical":"horizontal";if(e===Pp){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case L0:case Uw:{const a=j_(i),u=j_(r);if(n)return n;if(a&&!u)return e!=="tick"?"horizontal":"vertical";if(!a&&u)return e!=="tick"?"vertical":"horizontal";if(a&&u)return"vertical";{const l=Cn(i)&&i.type===Vu,c=Cn(r)&&r.type===Vu;if(l&&!c)return"vertical";if(!l&&c)return"horizontal"}return}}return"vertical"}function Zue(e){const{point:t,line:n,...i}=e;return B(i).length>1?i:i.type}function ele(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Rn(e[t],["point","line"])});return e}function k1(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?Fe(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?Fe(t.point)?t.point:{}:void 0}function J_(e,t={}){return e.line?e.line===!0?{}:e.line:e.line!==void 0?null:t.line?t.line===!0?{}:t.line:void 0}class tle{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(Co(t)){const{mark:i,encoding:r}=t,o=Sr(i)?i:{type:i};switch(o.type){case"line":case"rule":case"trail":return!!k1(o,n[o.type],r);case"area":return!!k1(o,n[o.type],r)||!!J_(o,n[o.type])}}return!1}run(t,n,i){const{config:r}=n,{params:o,projection:s,mark:a,name:u,encoding:l,...c}=t,f=W0(l,r),d=Sr(a)?a:{type:a},h=k1(d,r[d.type],f),p=d.type==="area"&&J_(d,r[d.type]),g=[{name:u,...o?{params:o}:{},mark:Zue({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:Rn(f,["shape"])}],m=E4(w4(d,f,r),f);let y=f;if(m){const{fieldChannel:b,offset:x}=m;y={...f,[b]:{...f[b],...x?{stack:x}:{}}}}return y=Rn(y,["y2","x2"]),p&&g.push({...s?{projection:s}:{},mark:{type:"line",...qu(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&g.push({...s?{projection:s}:{},mark:{type:"point",opacity:1,filled:!0,...qu(d,["clip","tooltip"]),...h},encoding:y}),i({...c,layer:g},{...n,config:ele(r)})}}function nle(e,t){return t?td(e)?S4(e,t):A4(e,t):e}function D1(e,t){return t?S4(e,t):e}function Zb(e,t,n){const i=t[e];if(Iae(i)){if(i.repeat in n)return{...t,[e]:n[i.repeat]};j(Roe(i.repeat));return}return t}function A4(e,t){if(e=Zb("field",e,t),e!==void 0){if(e===null)return null;if(Kw(e)&&so(e.sort)){const n=Zb("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Q_(e,t){if(q(e))return A4(e,t);{const n=Zb("datum",e,t);return n!==e&&!n.type&&(n.type="nominal"),n}}function Z_(e,t){if(fe(e)){const n=Q_(e,t);if(n)return n;if(nd(e))return{condition:e.condition}}else{if(id(e)){const n=Q_(e.condition,t);if(n)return{...e,condition:n};{const{condition:i,...r}=e;return r}}return e}}function S4(e,t){const n={};for(const i in e)if(U(e,i)){const r=e[i];if(X(r))n[i]=r.map(o=>Z_(o,t)).filter(o=>o);else{const o=Z_(r,t);o!==void 0&&(n[i]=o)}}return n}class ile{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(Co(t)){const{encoding:n,mark:i}=t;if(i==="line"||Sr(i)&&i.type==="line")for(const r of Qre){const o=Ia(r),s=n[o];if(n[r]&&(q(s)&&!Nt(s.bin)||Lr(s)))return!0}}return!1}run(t,n,i){const{encoding:r,mark:o}=t;return j(nse(!!r.x2,!!r.y2)),i({...t,mark:Fe(o)?{...o,type:"rule"}:"rule"},n)}}class rle extends cA{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[sue,lue,mue,new tle,new ile]}map(t,n){if(Co(t)){const i=ea(t.encoding,ro),r=ea(t.encoding,oo),o=ea(t.encoding,A0);if(i||r||o)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:i,parentProjection:r}=n,o=D1(t.encoding,n.repeater),s={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(u=>u).join("_")}:{},...o?{encoding:o}:{}};if(i||r)return this.mapUnitWithParentEncodingOrProjection(s,n);const a=this.mapLayerOrUnit.bind(this);for(const u of this.nonFacetUnitNormalizers)if(u.hasMatchingType(s,n.config))return u.run(s,n,a);return s}mapRepeat(t,n){return que(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:i,spec:r,...o}=t,{row:s,column:a,layer:u}=i,{repeater:l={},repeaterPrefix:c=""}=n;return s||a?this.mapRepeat({...t,repeat:{...s?{row:s}:{},...a?{column:a}:{}},spec:{repeat:{layer:u},spec:r}},n):{...o,layer:u.map(f=>{const d={...l,layer:f},h=`${(r.name?`${r.name}_`:"")+c}child__layer_${Qe(f)}`,p=this.mapLayerOrUnit(r,{...n,repeater:d,repeaterPrefix:h});return p.name=h,p})}}mapNonLayerRepeat(t,n){const{repeat:i,spec:r,data:o,...s}=t;!X(i)&&t.columns&&(t=Rn(t,["columns"]),j(M_("repeat")));const a=[],{repeater:u={},repeaterPrefix:l=""}=n,c=!X(i)&&i.row||[u?u.row:null],f=!X(i)&&i.column||[u?u.column:null],d=X(i)&&i||[u?u.repeat:null];for(const p of d)for(const g of c)for(const m of f){const y={repeat:p,row:g,column:m,layer:u.layer},b=(r.name?`${r.name}_`:"")+l+"child__"+(X(i)?`${Qe(p)}`:(i.row?`row_${Qe(g)}`:"")+(i.column?`column_${Qe(m)}`:"")),x=this.map(r,{...n,repeater:y,repeaterPrefix:b});x.name=b,a.push(Rn(x,["data"]))}const h=X(i)?t.columns:i.column?i.column.length:1;return{data:r.data??o,align:"all",...s,columns:h,concat:a}}mapFacet(t,n){const{facet:i}=t;return td(i)&&t.columns&&(t=Rn(t,["columns"]),j(M_("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:i,projection:r}=t,{parentEncoding:o,parentProjection:s,config:a}=n,u=tF({parentProjection:s,projection:r}),l=eF({parentEncoding:o,encoding:D1(i,n.repeater)});return this.mapUnit({...t,...u?{projection:u}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(t,n){const{row:i,column:r,facet:o,...s}=t.encoding,{mark:a,width:u,projection:l,height:c,view:f,params:d,encoding:h,...p}=t,{facetMapping:g,layout:m}=this.getFacetMappingAndLayout({row:i,column:r,facet:o},n),y=D1(s,n.repeater);return this.mapFacet({...p,...m,facet:g,spec:{...u?{width:u}:{},...c?{height:c}:{},...f?{view:f}:{},...l?{projection:l}:{},mark:a,encoding:y,...d?{params:d}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:i,column:r,facet:o}=t;if(i||r){o&&j(ese([...i?[ro]:[],...r?[oo]:[]]));const s={},a={};for(const u of[ro,oo]){const l=t[u];if(l){const{align:c,center:f,spacing:d,columns:h,...p}=l;s[u]=p;for(const g of["align","center","spacing"])l[g]!==void 0&&(a[g]??(a[g]={}),a[g][u]=l[g])}}return{facetMapping:s,layout:a}}else{const{align:s,center:a,spacing:u,columns:l,...c}=o;return{facetMapping:nle(c,n.repeater),layout:{...s?{align:s}:{},...a?{center:a}:{},...u?{spacing:u}:{},...l?{columns:l}:{}}}}}mapLayer(t,{parentEncoding:n,parentProjection:i,...r}){const{encoding:o,projection:s,...a}=t,u={...r,parentEncoding:eF({parentEncoding:n,encoding:o,layer:!0}),parentProjection:tF({parentProjection:i,projection:s})};return super.mapLayer({...a,...t.name?{name:[u.repeaterPrefix,t.name].filter(l=>l).join("_")}:{}},u)}}function eF({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...B(e),...B(t)]);for(const o of r){const s=t[o],a=e[o];if(fe(s)){const u={...a,...s};i[o]=u}else id(s)?i[o]={...s,condition:{...a,...s.condition}}:s||s===null?i[o]=s:(n||Ui(a)||Q(a)||fe(a)||X(a))&&(i[o]=a)}}else i=t;return!i||Ue(i)?void 0:i}function tF(e){const{parentProjection:t,projection:n}=e;return t&&n&&j(qoe({parentProjection:t,projection:n})),n??t}function fA(e){return U(e,"filter")}function ole(e){return U(e,"stop")}function C4(e){return U(e,"lookup")}function sle(e){return U(e,"data")}function ale(e){return U(e,"param")}function ule(e){return U(e,"pivot")}function lle(e){return U(e,"density")}function cle(e){return U(e,"quantile")}function fle(e){return U(e,"regression")}function dle(e){return U(e,"loess")}function hle(e){return U(e,"sample")}function ple(e){return U(e,"window")}function gle(e){return U(e,"joinaggregate")}function mle(e){return U(e,"flatten")}function yle(e){return U(e,"calculate")}function $4(e){return U(e,"bin")}function ble(e){return U(e,"impute")}function xle(e){return U(e,"timeUnit")}function vle(e){return U(e,"aggregate")}function Ele(e){return U(e,"stack")}function wle(e){return U(e,"fold")}function Ale(e){return U(e,"extent")&&!U(e,"density")&&!U(e,"regression")}function Sle(e){return e.map(t=>fA(t)?{filter:vu(t.filter,Xse)}:t)}class Cle extends cA{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=nF(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if(t=nF(t,n),t.encoding){const i={};for(const[r,o]of is(t.encoding))i[r]=_4(o,n);t={...t,encoding:i}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:i,...r}=t;return i?{...r,params:is(i).map(([o,s])=>{const{init:a,bind:u,empty:l,...c}=s;c.type==="single"?(c.type="point",c.toggle=!1):c.type==="multi"&&(c.type="point"),n.emptySelections[o]=l!=="none";for(const f of qt(n.selectionPredicates[o]??{}))f.empty=l!=="none";return{name:o,value:a,select:c,bind:u}})}:t}}function nF(e,t){const{transform:n,...i}=e;if(n){const r=n.map(o=>{if(fA(o))return{filter:ex(o,t)};if($4(o)&&za(o.bin))return{...o,bin:F4(o.bin)};if(C4(o)){const{selection:s,...a}=o.from;return s?{...o,from:{param:s,...a}}:o}return o});return{...i,transform:r}}return e}function _4(e,t){const n=ce(e);if(q(n)&&za(n.bin)&&(n.bin=F4(n.bin)),qa(n)&&n.scale?.domain?.selection){const{selection:i,...r}=n.scale.domain;n.scale.domain={...r,...i?{param:i}:{}}}if(nd(n))if(X(n.condition))n.condition=n.condition.map(i=>{const{selection:r,param:o,test:s,...a}=i;return o?i:{...a,test:ex(i,t)}});else{const{selection:i,param:r,test:o,...s}=_4(n.condition,t);n.condition=r?n.condition:{...s,test:ex(n.condition,t)}}return n}function F4(e){const t=e.extent;if(t?.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function ex(e,t){const n=i=>vu(i,r=>{var o;const s=t.emptySelections[r]??!0,a={param:r,empty:s};return(o=t.selectionPredicates)[r]??(o[r]=[]),t.selectionPredicates[r].push(a),a});return e.selection?n(e.selection):vu(e.test||e.filter,i=>i.selection?n(i.selection):i)}class tx extends cA{map(t,n){const i=n.selections??[];if(t.params&&!Co(t)){const r=[];for(const o of t.params)aA(o)?i.push(o):r.push(o);t.params=r}return n.selections=i,super.map(t,n)}mapUnit(t,n){const i=n.selections;if(!i||!i.length)return t;const r=(n.path??[]).concat(t.name),o=[];for(const s of i)if(!s.views||!s.views.length)o.push(s);else for(const a of s.views)(de(a)&&(a===t.name||r.includes(a))||X(a)&&a.map(u=>r.indexOf(u)).every((u,l,c)=>u!==-1&&(l===0||u>c[l-1])))&&o.push(s);return o.length&&(t.params=o),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=tx.prototype[e];tx.prototype[e]=function(n,i){return t.call(this,n,$le(n,i))}}function $le(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function k4(e,t){t===void 0&&(t=v4(e.config));const n=Dle(e,t),{width:i,height:r}=e,o=Tle(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const _le=new rle,Fle=new Cle,kle=new tx;function Dle(e,t={}){const n={config:t};return kle.map(_le.map(Fle.map(e,n),n),n)}function iF(e){return de(e)?{type:e}:e??{}}function Tle(e,t,n){let{width:i,height:r}=t;const o=Co(e)||H0(e),s={};o?i=="container"&&r=="container"?(s.type="fit",s.contains="padding"):i=="container"?(s.type="fit-x",s.contains="padding"):r=="container"&&(s.type="fit-y",s.contains="padding"):(i=="container"&&(j(F_("width")),i=void 0),r=="container"&&(j(F_("height")),r=void 0));const a={type:"pad",...s,...n?iF(n.autosize):{},...iF(e.autosize)};if(a.type==="fit"&&!o&&(j(Aoe),a.type="pad"),i=="container"&&!(a.type=="fit"||a.type=="fit-x")&&j(k_("width")),r=="container"&&!(a.type=="fit"||a.type=="fit-y")&&j(k_("height")),!Xn(a,{type:"pad"}))return a}function Mle(e){return["fit","fit-x","fit-y"].includes(e)}function Ole(e){return e?`fit-${F0(e)}`:"fit"}const Rle=["background","padding"];function rF(e,t){const n={};for(const i of Rle)e&&e[i]!==void 0&&(n[i]=Vn(e[i]));return t&&(n.params=e.params),n}class $o{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new $o(ce(this.explicit),ce(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return ft(this.explicit[t],this.implicit[t])}getWithExplicit(t){return this.explicit[t]!==void 0?{explicit:!0,value:this.explicit[t]}:this.implicit[t]!==void 0?{explicit:!1,value:this.implicit[t]}:{explicit:!1,value:void 0}}setWithExplicit(t,{value:n,explicit:i}){n!==void 0&&this.set(t,n,i)}set(t,n,i){return delete this[i?"implicit":"explicit"][t],this[i?"explicit":"implicit"][t]=n,this}copyKeyFromSplit(t,{explicit:n,implicit:i}){n[t]!==void 0?this.set(t,n[t],!0):i[t]!==void 0&&this.set(t,i[t],!1)}copyKeyFromObject(t,n){n[t]!==void 0&&this.set(t,n[t],!0)}copyAll(t){for(const n of B(t.combine())){const i=t.getWithExplicit(n);this.setWithExplicit(n,i)}}}function or(e){return{explicit:!0,value:e}}function Wn(e){return{explicit:!1,value:e}}function D4(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:V0(t,n,i,r)}}function V0(e,t,n,i){return e.explicit&&t.explicit&&j(dse(n,i,e.value,t.value)),e}function ss(e,t,n,i,r=V0){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Xn(e.value,t.value)?e:r(e,t,n,i)}class Nle extends $o{constructor(t={},n={},i=!1){super(t,n),this.explicit=t,this.implicit=n,this.parseNothing=i}clone(){const t=super.clone();return t.parseNothing=this.parseNothing,t}}function Qu(e){return U(e,"url")}function ff(e){return U(e,"values")}function T4(e){return U(e,"name")&&!Qu(e)&&!ff(e)&&!Xo(e)}function Xo(e){return e&&(M4(e)||O4(e)||dA(e))}function M4(e){return U(e,"sequence")}function O4(e){return U(e,"sphere")}function dA(e){return U(e,"graticule")}var it;(function(e){e[e.Raw=0]="Raw",e[e.Main=1]="Main",e[e.Row=2]="Row",e[e.Column=3]="Column",e[e.Lookup=4]="Lookup",e[e.PreFilterInvalid=5]="PreFilterInvalid",e[e.PostFilterInvalid=6]="PostFilterInvalid"})(it||(it={}));function R4({invalid:e,isPath:t}){switch(k6(e,{isPath:t})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}function Lle(e){const{marks:t,scales:n}=R4(e);return t===n?it.Main:n==="include-invalid-values"?it.PreFilterInvalid:it.PostFilterInvalid}class ze{constructor(t,n){this.debugName=n,this._children=[],this._parent=null,t&&(this.parent=t)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(t){this._parent=t,t&&t.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(t,n){if(this._children.includes(t)){j(Boe);return}n!==void 0?this._children.splice(n,0,t):this._children.push(t)}removeChild(t){const n=this._children.indexOf(t);return this._children.splice(n,1),n}remove(){let t=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,t++)}insertAsParentOf(t){const n=t.parent;n.removeChild(this),this.parent=n,t.parent=this}swapWithParent(){const t=this._parent,n=t.parent;for(const r of this._children)r.parent=t;this._children=[],t.removeChild(this);const i=t.parent.removeChild(t);this._parent=n,n.addChild(this,i),t.parent=this}}class Nn extends ze{clone(){const t=new this.constructor;return t.debugName=`clone_${this.debugName}`,t._source=this._source,t._name=`clone_${this._name}`,t.type=this.type,t.refCounts=this.refCounts,t.refCounts[t._name]=0,t}constructor(t,n,i,r){super(t,n),this.type=i,this.refCounts=r,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${DN()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function T1(e){return e.as!==void 0}function oF(e){return`${e}_end`}class pr extends ze{clone(){return new pr(null,ce(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,s)=>{const{field:a,timeUnit:u}=o;if(u){let l;if(ja(u)){if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});(cf(c)||h)&&(l={timeUnit:kt(u),field:a})}}else l={as:H(o,{forAs:!0}),field:a,timeUnit:u};if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});cf(c)&&dt(s)&&h!==.5&&(l.rectBandPosition=h)}l&&(r[Ae(l)]=l)}return r},{});return Ue(i)?null:new pr(t,i)}static makeFromTransform(t,n){const{timeUnit:i,...r}={...n},o=kt(i),s={...r,timeUnit:o};return new pr(t,{[Ae(s)]:s})}merge(t){this.timeUnits={...this.timeUnits};for(const n in t.timeUnits)this.timeUnits[n]||(this.timeUnits[n]=t.timeUnits[n]);for(const n of t.children)t.removeChild(n),n.parent=this;t.remove()}removeFormulas(t){const n={};for(const[i,r]of is(this.timeUnits)){const o=T1(r)?r.as:`${r.field}_end`;t.has(o)||(n[i]=r)}this.timeUnits=n}producedFields(){return new Set(qt(this.timeUnits).map(t=>T1(t)?t.as:oF(t.field)))}dependentFields(){return new Set(qt(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${Ae(this.timeUnits)}`}assemble(){const t=[];for(const n of qt(this.timeUnits)){const{rectBandPosition:i}=n,r=kt(n.timeUnit);if(T1(n)){const{field:o,as:s}=n,{unit:a,utc:u,...l}=r,c=[s,`${s}_end`];t.push({field:bi(o),type:"timeunit",...a?{units:M0(a)}:{},...u?{timezone:"utc"}:{},...l,as:c}),t.push(...sF(c,i,r))}else if(n){const{field:o}=n,s=o.replaceAll("\\.","."),a=N4({timeUnit:r,field:s}),u=oF(s);t.push({type:"formula",expr:a,as:u}),t.push(...sF([s,u],i,r))}}return t}}const Y0="offsetted_rect_start",X0="offsetted_rect_end";function N4({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=f6(i),{part:s,step:a}=g6(o,e.step);return`${r?"utcOffset":"timeOffset"}('${s}', ${Le(t)}, ${n?-a:a})`}function sF([e,t],n,i){if(n!==void 0&&n!==.5){const r=Le(e),o=Le(t);return[{type:"formula",expr:aF([N4({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${Y0}`},{type:"formula",expr:aF([r,o],n+.5),as:`${e}_${X0}`}]}return[]}function aF([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const sd="_tuple_fields";class Ple{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Ile={defined:()=>!0,parse:(e,t,n)=>{const i=t.name,r=t.project??(t.project=new Ple),o={},s={},a=new Set,u=(p,g)=>{const m=g==="visual"?p.channel:p.field;let y=Qe(`${i}_${m}`);for(let b=1;a.has(y);b++)y=Qe(`${i}_${m}_${b}`);return a.add(y),{[g]:y}},l=t.type,c=e.config.selection[l],f=n.value!==void 0?ct(n.value):null;let{fields:d,encodings:h}=Fe(n.select)?n.select:{};if(!d&&!h&&f){for(const p of f)if(Fe(p))for(const g of B(p))Jre(g)?(h||(h=[])).push(g):l==="interval"?(j(Ooe),h=c.encodings):(d??(d=[])).push(g)}!d&&!h&&(h=c.encodings,"fields"in c&&(d=c.fields));for(const p of h??[]){const g=e.fieldDef(p);if(g){let m=g.field;if(g.aggregate){j(Soe(p,g.aggregate));continue}else if(!m){j(T_(p));continue}if(g.timeUnit&&!ja(g.timeUnit)){m=e.vgField(p);const y={timeUnit:g.timeUnit,as:m,field:g.field};s[Ae(y)]=y}if(!o[m]){const y=l==="interval"&&Nr(p)&&Bi(e.getScaleComponent(p).get("type"))?"R":g.bin?"R-RE":"E",b={field:m,channel:p,type:y,index:r.items.length};b.signals={...u(b,"data"),...u(b,"visual")},r.items.push(o[m]=b),r.hasField[m]=o[m],r.hasSelectionId=r.hasSelectionId||m===qi,LN(p)?(b.geoChannel=p,b.channel=NN(p),r.hasChannel[b.channel]=o[m]):r.hasChannel[p]=o[m]}}else j(T_(p))}for(const p of d??[]){if(r.hasField[p])continue;const g={type:"E",field:p,index:r.items.length};g.signals={...u(g,"data")},r.items.push(g),r.hasField[p]=g,r.hasSelectionId=r.hasSelectionId||p===qi}f&&(t.init=f.map(p=>r.items.map(g=>Fe(p)?p[g.geoChannel||g.channel]!==void 0?p[g.geoChannel||g.channel]:p[g.field]:p))),Ue(s)||(r.timeUnit=new pr(null,s))},signals:(e,t,n)=>{const i=t.name+sd;return n.filter(o=>o.name===i).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(z4)})}},L4="_curr",wh="anim_value",uu="anim_clock",nx="eased_anim_clock",P4="min_extent",I4="max_range_extent",M1="last_tick_at",O1="is_playing",zle=1/60*1e3,Ble=(e,t)=>[{name:nx,update:uu},{name:`${e}_domain`,init:`domain('${t}')`},{name:P4,init:`extent(${e}_domain)[0]`},{name:I4,init:`extent(range('${t}'))[1]`},{name:wh,update:`invert('${t}', ${nx})`}],Ule={defined:e=>e.type==="point",topLevelSignals:(e,t,n)=>(gr(t)&&(n=n.concat([{name:uu,init:"0",on:[{events:{type:"timer",throttle:zle},update:`${O1} ? (${uu} + (now() - ${M1}) > ${I4} ? 0 : ${uu} + (now() - ${M1})) : ${uu}`}]},{name:M1,init:"now()",on:[{events:[{signal:uu},{signal:O1}],update:"now()"}]},{name:O1,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+sd,o=t.project,s="(item().isVoronoi ? datum.datum : datum)",a=qt(e.component.selection??{}).reduce((c,f)=>f.type==="interval"?c.concat(f.name+Au):c,[]).map(c=>`indexof(item().mark.name, '${c}') < 0`).join(" && "),u=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${a?` && ${a}`:""}`;let l=`unit: ${ta(e)}, `;if(t.project.hasSelectionId)l+=`${qi}: ${s}[${_e(qi)}]`;else if(gr(t))l+=`fields: ${r}, values: [${wh} ? ${wh} : ${P4}]`;else{const c=o.items.map(f=>e.fieldDef(f.channel)?.bin?`[${s}[${_e(e.vgField(f.channel,{}))}], ${s}[${_e(e.vgField(f.channel,{binSuffix:"end"}))}]]`:`${s}[${_e(f.field)}]`).join(", ");l+=`fields: ${r}, values: [${c}]`}if(gr(t))return n.concat(Ble(t.name,e.scaleName(ps)),[{name:i+mo,on:[{events:[{signal:nx},{signal:wh}],update:`{${l}}`,force:!0}]}]);{const c=t.events;return n.concat([{name:i+mo,on:c?[{events:c,update:`${u} ? {${l}} : null`,force:!0}]:[]}])}}};function z4(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=bi(r.field),r}function Aa(e,t=!0,n=Mre){if(X(e)){const i=e.map(r=>Aa(r,t,n));return t?`[${i.join(", ")}]`:i}else if(Ua(e))return n(t?xa(e):Pse(e));return t?n(je(e)):e}function jle(e,t){for(const n of qt(e.component.selection??{})){const i=n.name;let r=`${i}${mo}, ${n.resolve==="global"?"true":`{unit: ${ta(e)}}`}`;for(const o of J0)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+gce,on:[{events:{signal:n.name+mo},update:`modify(${_e(n.name+Sa)}, ${r})`}]})}return hA(t)}function qle(e,t){if(e.component.selection&&B(e.component.selection).length){const n=_e(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:ds("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return hA(t)}function Wle(e,t){let n=!1;for(const i of qt(e.component.selection??{})){const r=i.name,o=_e(r+Sa);if(t.filter(a=>a.name===r).length===0){const a=i.resolve==="global"?"union":i.resolve,u=i.type==="point"?", true, true)":")";t.push({name:i.name,update:`${nL}(${o}, ${_e(a)}${u}`})}n=!0;for(const a of J0)a.defined(i)&&a.topLevelSignals&&(t=a.topLevelSignals(e,i,t))}return n&&t.filter(r=>r.name==="unit").length===0&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),hA(t)}function Gle(e,t){const n=[],i=[],r=ta(e,{escape:!1});for(const o of qt(e.component.selection??{})){const s={name:o.name+Sa};if(o.project.hasSelectionId&&(s.transform=[{type:"collect",sort:{field:qi}}]),o.init){const u=o.project.items.map(z4);s.values=o.project.hasSelectionId?o.init.map(l=>({unit:r,[qi]:Aa(l,!1)[0]})):o.init.map(l=>({unit:r,fields:u,values:Aa(l,!1)}))}if([...n,...t].filter(u=>u.name===o.name+Sa).length||n.push(s),gr(o)&&t.length){const u=e.lookupDataSource(e.getDataName(it.Main)),l=t.find(f=>f.name===u),c=l.transform.find(f=>f.type==="filter"&&f.expr.includes("vlSelectionTest"));if(c){l.transform=l.transform.filter(d=>d!==c);const f={name:l.name+L4,source:l.name,transform:[c]};i.push(f)}}}return n.concat(t,i)}function B4(e,t){for(const n of qt(e.component.selection??{}))for(const i of J0)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function Hle(e,t){for(const n of e.children)nt(n)&&(t=B4(n,t));return t}function Vle(e,t,n,i){const r=hL(e,t.param,t);return{signal:Bi(n.get("type"))&&X(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}function hA(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}const ao={defined:e=>e.type==="interval"&&e.resolve==="global"&&e.bind&&e.bind==="scales",parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!Nr(r))continue;const o=e.getScaleComponent(r),s=o?o.get("type"):void 0;if(s=="sequential"&&j(Foe),!o||!Bi(s)){j(_oe);continue}o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(s=>n.filter(a=>a.name===s.signals.data).length===0);if(!e.parent||rx(e)||i.length===0)return n;const r=n.find(s=>s.name===t.name);let o=r.update;if(o.includes(nL))r.update=`{${i.map(s=>`${_e(bi(s.field))}: ${s.signals.data}`).join(", ")}}`;else{for(const s of i){const a=`${_e(bi(s.field))}: ${s.signals.data}`;o.includes(a)||(o=`${o.substring(0,o.length-1)}, ${a}}`)}r.update=o}return n.concat(i.map(s=>({name:s.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!rx(e))for(const i of t.scales){const r=n.find(o=>o.name===i.signals.data);r.push="outer",delete r.value,delete r.update}return n}};function ix(e,t){return`domain(${_e(e.scaleName(t))})`}function rx(e){return e.parent&&Cl(e.parent)&&(!e.parent.parent||rx(e.parent.parent))}const Au="_brush",U4="_scale_trigger",Yl="geo_interval_init_tick",j4="_init",Yle="_center",Xle={defined:e=>e.type==="interval",parse:(e,t,n)=>{var i;if(e.hasProjection){const r={...oa(n.select)?n.select:{}};r.fields=[qi],r.encodings||(r.encodings=n.value?B(n.value):[Ki,Xi]),n.select={type:"interval",...r}}if(t.translate&&!ao.defined(t)){const r=`!event.item || event.item.mark.name !== ${_e(t.name+Au)}`;for(const o of t.events){if(!o.between){j(`${o} is not an ordered event stream for interval selections.`);continue}const s=ct((i=o.between[0]).filter??(i.filter=[]));s.includes(r)||s.push(r)}}},signals:(e,t,n)=>{const i=t.name,r=i+mo,o=qt(t.project.hasChannel).filter(a=>a.channel===et||a.channel===Mt),s=t.init?t.init[0]:null;if(n.push(...o.reduce((a,u)=>a.concat(Kle(e,t,u,s&&s[u.index])),[])),e.hasProjection){const a=_e(e.projectionName()),u=e.projectionName()+Yle,{x:l,y:c}=t.project.hasChannel,f=l&&l.signals.visual,d=c&&c.signals.visual,h=l?s&&s[l.index]:`${u}[0]`,p=c?s&&s[c.index]:`${u}[1]`,g=w=>e.getSizeSignalRef(w).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":g("width")}, ${d?d+"[1]":g("height")}]]`;s&&(n.unshift({name:i+j4,init:`[scale(${a}, [${l?h[0]:h}, ${c?p[0]:p}]), scale(${a}, [${l?h[1]:h}, ${c?p[1]:p}])]`}),(!l||!c)&&(n.find(A=>A.name===u)||n.unshift({name:u,update:`invert(${a}, [${g("width")}/2, ${g("height")}/2])`})));const y=`intersect(${m}, {markname: ${_e(e.getName("marks"))}}, unit.mark)`,b=`{unit: ${ta(e)}}`,x=`vlSelectionTuples(${y}, ${b})`,v=o.map(w=>w.signals.visual);return n.concat({name:r,on:[{events:[...v.length?[{signal:v.join(" || ")}]:[],...s?[{signal:Yl}]:[]],update:x}]})}else{if(!ao.defined(t)){const l=i+U4,c=o.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,g=_e(e.scaleName(d)),m=e.getScaleComponent(d).get("type"),y=Bi(m)?"+":"";return`(!isArray(${h}) || (${y}invert(${g}, ${p})[0] === ${y}${h}[0] && ${y}invert(${g}, ${p})[1] === ${y}${h}[1]))`});c.length&&n.push({name:l,value:{},on:[{events:o.map(f=>({scale:e.scaleName(f.channel)})),update:c.join(" && ")+` ? ${l} : {}`}]})}const a=o.map(l=>l.signals.data),u=`unit: ${ta(e)}, fields: ${i+sd}, values`;return n.concat({name:r,...s?{init:`{${u}: ${Aa(s)}}`}:{},...a.length?{on:[{events:[{signal:a.join(" || ")}],update:`${a.join(" && ")} ? {${u}: [${a}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(nt(e)&&e.hasProjection&&t.init&&(n.filter(r=>r.name===Yl).length||n.unshift({name:Yl,value:null,on:[{events:"timer{1}",update:`${Yl} === null ? {} : ${Yl}`}]})),n),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,s=r?.signals.visual,a=o?.signals.visual,u=`data(${_e(t.name+Sa)})`;if(ao.defined(t)||!r&&!o)return n;const l={x:r!==void 0?{signal:`${s}[0]`}:{value:0},y:o!==void 0?{signal:`${a}[0]`}:{value:0},x2:r!==void 0?{signal:`${s}[1]`}:{field:{group:"width"}},y2:o!==void 0?{signal:`${a}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const m of B(l))l[m]=[{test:`${u}.length && ${u}[0].unit === ${ta(e)}`,...l[m]},{value:0}];const{fill:c,fillOpacity:f,cursor:d,...h}=t.mark,p=B(h).reduce((m,y)=>(m[y]=[{test:[r!==void 0&&`${s}[0] !== ${s}[1]`,o!==void 0&&`${a}[0] !== ${a}[1]`].filter(b=>b).join(" && "),value:h[y]},{value:null}],m),{}),g=d??(t.translate?"move":null);return[{name:`${i+Au}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:c},fillOpacity:{value:f}},update:l}},...n,{name:i+Au,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...l,...p}}}]}};function Kle(e,t,n,i){const r=!e.hasProjection,o=n.channel,s=n.signals.visual,a=_e(r?e.scaleName(o):e.projectionName()),u=d=>`scale(${a}, ${d})`,l=e.getSizeSignalRef(o===et?"width":"height").signal,c=`${o}(unit)`,f=t.events.reduce((d,h)=>[...d,{events:h.between[0],update:`[${c}, ${c}]`},{events:h,update:`[${s}[0], clamp(${c}, 0, ${l})]`}],[]);if(r){const d=n.signals.data,h=ao.defined(t),p=e.getScaleComponent(o),g=p?p.get("type"):void 0,m=i?{init:Aa(i,!0,u)}:{value:[]};return f.push({events:{signal:t.name+U4},update:Bi(g)?`[${u(`${d}[0]`)}, ${u(`${d}[1]`)}]`:"[0, 0]"}),h?[{name:d,on:[]}]:[{name:s,...m,on:f},{name:d,...i?{init:Aa(i)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]}]}else{const d=o===et?0:1,h=t.name+j4,p=i?{init:`[${h}[0][${d}], ${h}[1][${d}]]`}:{value:[]};return[{name:s,...p,on:f}]}}function El({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=nd(t)&&t.condition;let s=[];o&&(s=ct(o).map(l=>{const c=r(l);if(Pae(l)){const{param:f,empty:d}=l;return{test:dL(e,{param:f,empty:d}),...c}}else return{test:Yp(e,l.test),...c}})),i!==void 0&&s.push(i);const a=r(t);return a!==void 0&&s.push(a),s.length>1||s.length===1&&s[0].test?{[n]:s}:s.length===1?{[n]:s[0]}:{}}function pA(e,t="text"){const n=e.encoding[t];return El({model:e,channelDef:n,vgChannel:t,mainRefFn:i=>K0(i,e.config),invalidValueRef:void 0})}function K0(e,t,n="datum"){if(e){if(Ui(e))return Ye(e.value);if(fe(e)){const{format:i,formatType:r}=Up(e);return Yw({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function q4(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,s=n.tooltip;if(X(s))return{tooltip:uF({tooltip:s},o,r,t)};{const a=t.reactiveGeom?"datum.datum":"datum";return El({model:e,channelDef:s,vgChannel:"tooltip",mainRefFn:l=>{const c=K0(l,r,a);if(c)return c;if(l===null)return;let f=Be("tooltip",i,r);if(f===!0&&(f={content:"encoding"}),de(f))return{value:f};if(Fe(f))return Q(f)?f:f.content==="encoding"?uF(n,o,r,t):{signal:a}},invalidValueRef:void 0})}}function W4(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,s=i?"datum.datum":"datum",a=[];function u(c,f){const d=Ia(f),h=Cn(c)?c:{...c,type:e[d].type},p=h.title||Qw(h,r),g=ct(p).join(", ").replaceAll(/"/g,'\\"');let m;if(dt(f)){const y=f==="x"?"x2":"y2",b=ji(e[y]);if(Nt(h.bin)&&b){const x=H(h,{expr:s}),v=H(b,{expr:s}),{format:w,formatType:A}=Up(h);m=ed(x,v,w,A,r),o.add(y)}}if((dt(f)||f===Ei||f===Yi)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:y,formatType:b}=Up(h);m=Yw({fieldOrDatumDef:h,format:y,formatType:b,expr:s,config:r,normalizeStack:!0}).signal}m??(m=K0(h,r,s).signal),a.push({channel:f,key:g,value:m})}eA(e,(c,f)=>{q(c)?u(c,f):B0(c)&&u(c.condition,f)});const l={};for(const{channel:c,key:f,value:d}of a)!o.has(c)&&!l[f]&&(l[f]=d);return l}function uF(e,t,n,{reactiveGeom:i}={}){const r=W4(e,t,n,{reactiveGeom:i}),o=is(r).map(([s,a])=>`"${s}": ${a}`);return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function Jle(e){const{markDef:t,config:n}=e,i=Be("aria",t,n);return i===!1?{}:{...i?{aria:i}:{},...Qle(e),...Zle(e)}}function Qle(e){const{mark:t,markDef:n,config:i}=e;if(i.aria===!1)return{};const r=Be("ariaRoleDescription",n,i);return r!=null?{ariaRoleDescription:{value:r}}:pt(voe,t)?{}:{ariaRoleDescription:{value:t}}}function Zle(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return El({model:e,channelDef:o,vgChannel:"description",mainRefFn:u=>K0(u,e.config),invalidValueRef:void 0});const s=Be("description",n,i);if(s!=null)return{description:Ye(s)};if(i.aria===!1)return{};const a=W4(t,r,i);if(!Ue(a))return{description:{signal:is(a).map(([u,l],c)=>`"${c>0?"; ":""}${u}: " + (${l})`).join(" + ")}}}function It(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:s}=n;let{defaultRef:a,defaultValue:u}=n;const l=r[e];a===void 0&&(u??(u=Be(e,i,o,{vgChannel:s,ignoreVgConfig:!nd(l)})),u!==void 0&&(a=Ye(u)));const c={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=T6({...c,scaleChannel:e,channelDef:l});return El({model:t,channelDef:l,vgChannel:s??e,invalidValueRef:f,mainRefFn:h=>Vw({...c,channel:e,channelDef:h,stack:null,defaultRef:a})})}function G4(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,s=t.filled??Be("filled",n,r),a=we(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,u=Be(s===!0?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[s===!0&&"color"]??a,l=Be(s===!1?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[s===!1&&"color"],c=s?"fill":"stroke",f={...u?{fill:Ye(u)}:{},...l?{stroke:Ye(l)}:{}};return n.color&&(s?n.fill:n.stroke)&&j(n6("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...It("color",e,{vgChannel:c,defaultValue:s?u:l}),...It("fill",e,{defaultValue:i.fill?u:void 0}),...It("stroke",e,{defaultValue:i.stroke?l:void 0})}}function ece(e){const{encoding:t,mark:n}=e,i=t.order;return!vs(n)&&Ui(i)?El({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:r=>Ye(r.value),invalidValueRef:void 0}):{}}function Zu({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,s=t[o],a=n[o];if((o==="xOffset"||o==="yOffset")&&a)return{offsetType:"encoding",offset:Vw({channel:o,channelDef:a,markDef:t,config:i?.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:Ye(s),bandPosition:r})};const u=t[o];return u?{offsetType:"visual",offset:u}:{}}function bn(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:s,stack:a}=t,u=r[e],l=r[Rr(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Zu({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=gA({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),g=!u&&dt(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:tce({channel:e,channelDef:u,channel2Def:l,markDef:o,config:s,scaleName:c,scale:f,stack:a,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return g?{[i||e]:g}:void 0}function tce(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:s}=e;if(fe(n)&&r&&t===r.fieldChannel){if(q(n)){let a=n.bandPosition;if(a===void 0&&s.type==="text"&&(t==="radius"||t==="theta")&&(a=.5),a!==void 0)return Ip({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:a,offset:o})}return Zs(n,i,{suffix:"end"},{offset:o})}return Hw(e)}function gA({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:s}=e;return()=>{const a=Ia(n),u=rs(n),l=Be(n,o,s,{vgChannel:u});if(l!==void 0)return Lc(n,l);switch(t){case"zeroOrMin":return lF({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:a,config:s});case"zeroOrMax":return lF({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:a,config:s});case"mid":return{...e[jn(n)],mult:.5}}}}function lF({mainChannel:e,config:t,...n}){const i=D6(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if(r==="zeroOrMin")return{value:0};const{widthSignal:o,heightSignal:s}=r.zeroOrMax;return{signal:`min(${o},${s})/2`}}case"theta":return r==="zeroOrMin"?{value:0}:{signal:"2*PI"};case"x":return r==="zeroOrMin"?{value:0}:{field:{group:"width"}};case"y":return r==="zeroOrMin"?{field:{group:"height"}}:{value:0}}}const nce={left:"x",center:"xc",right:"x2"},ice={top:"y",middle:"yc",bottom:"y2"};function H4(e,t,n,i="middle"){if(e==="radius"||e==="theta")return rs(e);const r=e==="x"?"align":"baseline",o=Be(r,t,n);let s;return Q(o)?(j(tse(r)),s=void 0):s=o,e==="x"?nce[s||(i==="top"?"left":"center")]:ice[s||i]}function Gp(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?V4(e,t,{defaultPos:n,defaultPos2:i}):bn(e,t,{defaultPos:n})}function V4(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,s=Rr(e),a=jn(e),u=rce(t,i,s),l=u[a]?H4(e,r,o):rs(e);return{...bn(e,t,{defaultPos:n,vgChannel:l}),...u}}function rce(e,t,n){const{encoding:i,mark:r,markDef:o,stack:s,config:a}=e,u=Ia(n),l=jn(n),c=rs(n),f=i[u],d=e.scaleName(u),h=e.getScaleComponent(u),{offset:p}=n in i||n in o?Zu({channel:n,markDef:o,encoding:i,model:e}):Zu({channel:u,markDef:o,encoding:i,model:e});if(!f&&(n==="x2"||n==="y2")&&(i.latitude||i.longitude)){const m=jn(n),y=e.markDef[m];return y!=null?{[m]:{value:y}}:{[c]:{field:e.getName(n)}}}const g=oce({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:a,scaleName:d,scale:h,stack:s,offset:p,defaultRef:void 0});return g!==void 0?{[c]:g}:Ud(n,o)||Ud(n,{[n]:Gb(n,o,a.style),[l]:Gb(l,o,a.style)})||Ud(n,a[r])||Ud(n,a.mark)||{[c]:gA({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}function oce({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l}){return fe(t)&&a&&e.charAt(0)===a.fieldChannel.charAt(0)?Zs(t,o,{suffix:"start"},{offset:u}):Hw({channel:e,channelDef:n,scaleName:o,scale:s,stack:a,markDef:i,config:r,offset:u,defaultRef:l})}function Ud(e,t){const n=jn(e),i=rs(e);if(t[i]!==void 0)return{[i]:Lc(e,t[i])};if(t[e]!==void 0)return{[i]:Lc(e,t[e])};if(t[n]){const r=t[n];if(Ea(r))j(Xoe(n));else return{[n]:Lc(e,r)}}}function go(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,s=Rr(t),a=jn(t),u=i[t],l=i[s],c=e.getScaleComponent(t),f=c?c.get("type"):void 0,d=r.orient,h=i[a]??i.size??Be("size",r,n,{vgChannel:a}),p=BN(t),g=o==="bar"&&(t==="x"?d==="vertical":d==="horizontal")||o==="tick"&&(t==="y"?d==="vertical":d==="horizontal");return q(u)&&(He(u.bin)||Nt(u.bin)||u.timeUnit&&!l)&&!(h&&!Ea(h))&&!i[p]&&!Dt(f)?uce({fieldDef:u,fieldDef2:l,channel:t,model:e}):(fe(u)&&Dt(f)||g)&&!l?ace(u,t,e):V4(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function sce(e,t,n,i,r,o,s){if(Ea(r))if(n){const u=n.get("type");if(u==="band"){let l=`bandwidth('${t}')`;r.band!==1&&(l=`${r.band} * ${l}`);const c=Ar("minBandSize",{type:s},i);return{signal:c?`max(${Mi(c)}, ${l})`:l}}else r.band!==1&&(j(ose(u)),r=void 0)}else return{mult:r.band,field:{group:e}};else{if(Q(r))return r;if(r)return{value:r}}if(n){const u=n.get("range");if(Ba(u)&&Ze(u.step))return{value:u.step-2}}if(!o){const{bandPaddingInner:u,barBandPaddingInner:l,rectBandPaddingInner:c,tickBandPaddingInner:f}=i.scale,d=ft(u,s==="tick"?f:s==="bar"?l:c);if(Q(d))return{signal:`(1 - (${d.signal})) * ${e}`};if(Ze(d))return{signal:`${1-d} * ${e}`}}return{value:Qb(i.view,e)-2}}function ace(e,t,n){const{markDef:i,encoding:r,config:o,stack:s}=n,a=i.orient,u=n.scaleName(t),l=n.getScaleComponent(t),c=jn(t),f=Rr(t),d=BN(t),h=n.scaleName(d),p=n.getScaleComponent(xw(t)),g=i.type==="tick"||a==="horizontal"&&t==="y"||a==="vertical"&&t==="x";let m;(r.size||i.size)&&(g?m=It("size",n,{vgChannel:c,defaultRef:Ye(i.size)}):j(lse(i.type)));const y=!!m,b=I6({channel:t,fieldDef:e,markDef:i,config:o,scaleType:(l||p)?.get("type"),useVlSizeChannel:g});m=m||{[c]:sce(c,h||u,p||l,o,b,!!e,i.type)};const x=(l||p)?.get("type")==="band"&&Ea(b)&&!y?"top":"middle",v=H4(t,i,o,x),w=v==="xc"||v==="yc",{offset:A,offsetType:E}=Zu({channel:t,markDef:i,encoding:r,model:n,bandPosition:w?.5:0}),S=Hw({channel:t,channelDef:e,markDef:i,config:o,scaleName:u,scale:l,stack:s,offset:A,defaultRef:gA({model:n,defaultPos:"mid",channel:t,scaleName:u,scale:l}),bandPosition:w?E==="encoding"?0:.5:Q(b)?{signal:`(1-${b})/2`}:Ea(b)?(1-b.band)/2:0});if(c)return{[v]:S,...m};{const C=rs(f),_=m[c],k=A?{..._,offset:A}:_;return{[v]:S,[C]:X(S)?[S[0],{...S[1],offset:k}]:{...S,offset:k}}}}function cF(e,t,n,i,r,o,s){if(RN(e))return 0;const a=e==="x"||e==="y2",u=a?-t/2:t/2;if(Q(n)||Q(r)||Q(i)||o){const l=Mi(n),c=Mi(r),f=Mi(i),d=Mi(o),p=o?`(${s} < ${d} ? ${a?"":"-"}0.5 * (${d} - (${s})) : ${u})`:u,g=f?`${f} + `:"",m=l?`(${l} ? -1 : 1) * `:"",y=c?`(${c} + ${p})`:p;return{signal:g+m+y}}else return r=r||0,i+(n?-r-u:+r+u)}function uce({fieldDef:e,fieldDef2:t,channel:n,model:i}){const{config:r,markDef:o,encoding:s}=i,a=i.getScaleComponent(n),u=i.scaleName(n),l=a?a.get("type"):void 0,c=a.get("reverse"),f=I6({channel:n,fieldDef:e,markDef:o,config:r,scaleType:l}),h=i.component.axes[n]?.[0]?.get("translate")??.5,p=dt(n)?Be("binSpacing",o,r)??0:0,g=Rr(n),m=rs(n),y=rs(g),b=Ar("minBandSize",o,r),{offset:x}=Zu({channel:n,markDef:o,encoding:s,model:i,bandPosition:0}),{offset:v}=Zu({channel:g,markDef:o,encoding:s,model:i,bandPosition:0}),w=Tae({fieldDef:e,scaleName:u}),A=cF(n,p,c,h,x,b,w),E=cF(g,p,c,h,v??x,b,w),S=Q(f)?{signal:`(1-${f.signal})/2`}:Ea(f)?(1-f.band)/2:.5,C=os({fieldDef:e,fieldDef2:t,markDef:o,config:r});if(He(e.bin)||e.timeUnit){const _=e.timeUnit&&C!==.5;return{[y]:fF({fieldDef:e,scaleName:u,bandPosition:S,offset:E,useRectOffsetField:_}),[m]:fF({fieldDef:e,scaleName:u,bandPosition:Q(S)?{signal:`1-${S.signal}`}:1-S,offset:A,useRectOffsetField:_})}}else if(Nt(e.bin)){const _=Zs(e,u,{},{offset:E});if(q(t))return{[y]:_,[m]:Zs(t,u,{},{offset:A})};if(za(e.bin)&&e.bin.step)return{[y]:_,[m]:{signal:`scale("${u}", ${H(e,{expr:"datum"})} + ${e.bin.step})`,offset:A}}}j(o6(g))}function fF({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return Ip({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:Y0,endSuffix:X0}:{}})}const lce=new Set(["aria","width","height"]);function wi(e,t){const{fill:n=void 0,stroke:i=void 0}=t.color==="include"?G4(e):{};return{...cce(e.markDef,t),...dF("fill",n),...dF("stroke",i),...It("opacity",e),...It("fillOpacity",e),...It("strokeOpacity",e),...It("strokeWidth",e),...It("strokeDash",e),...ece(e),...q4(e),...pA(e,"href"),...Jle(e)}}function dF(e,t){return t?{[e]:t}:{}}function cce(e,t){return xoe.reduce((n,i)=>(!lce.has(i)&&U(e,i)&&t[i]!=="ignore"&&(n[i]=Ye(e[i])),n),{})}function mA(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef((r,o)=>{let s;if(!Nr(o)||!(s=e.getScaleType(o)))return;const a=k0(r.aggregate),u=Gw({scaleChannel:o,markDef:n,config:t,scaleType:s,isCountAggregate:a});if(Fae(u)){const l=e.vgField(o,{expr:"datum",binSuffix:e.stack?.impute?"mid":void 0});l&&i.add(l)}}),i.size>0)return{defined:{signal:[...i].map(o=>O0(o,!0)).join(" && ")}}}function hF(e,t){if(t!==void 0)return{[e]:Ye(t)}}const R1="voronoi",Y4={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(R1)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(vs(o))return j(Coe(o)),n;const s={name:e.getName(R1),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...q4(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let a=0,u=!1;return n.forEach((l,c)=>{const f=l.name??"";f===e.component.mark[0].name?a=c:f.includes(R1)&&(u=!0)}),u||n.splice(a+1,0,s),n}},X4={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!sA(e.bind),parse:(e,t,n)=>iL(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,s=t.init&&t.init[0],a=Y4.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((u,l)=>{const c=Qe(`${i}_${u.field}`);n.filter(d=>d.name===c).length||n.unshift({name:c,...s?{init:Aa(s[l])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${a}[${_e(u.field)}] : null`}]:[],bind:o[u.field]??o[u.channel]??o})}),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(l=>l.name===i+mo),s=i+sd,a=r.items.map(l=>Qe(`${i}_${l.field}`)),u=a.map(l=>`${l} !== null`).join(" && ");return a.length&&(o.update=`${u} ? {fields: ${s}, values: [${a.join(", ")}]} : null`),delete o.value,delete o.on,n}},Hp="_toggle",K4={defined:e=>e.type==="point"&&!gr(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+Hp,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+mo,i=t.name+Hp;return`${i} ? null : ${n}, `+(t.resolve==="global"?`${i} ? null : true, `:`${i} ? null : {unit: ${ta(e)}}, `)+`${i} ? ${n} : null`}},fce={defined:e=>e.clear!==void 0&&e.clear!==!1&&!gr(e),parse:(e,t)=>{t.clear&&(t.clear=de(t.clear)?ds(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(X4.defined(t))for(const i of t.project.items){const r=n.findIndex(o=>o.name===Qe(`${t.name}_${i.field}`));r!==-1&&n[r].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(r,o){r!==-1&&n[r].on&&n[r].on.push({events:t.clear,update:o})}if(t.type==="interval")for(const r of t.project.items){const o=n.findIndex(s=>s.name===r.signals.visual);if(i(o,"[0, 0]"),o===-1){const s=n.findIndex(a=>a.name===r.signals.data);i(s,"null")}}else{let r=n.findIndex(o=>o.name===t.name+mo);i(r,"null"),K4.defined(t)&&(r=n.findIndex(o=>o.name===t.name+Hp),i(r,"false"))}return n}},J4={defined:e=>{const t=e.resolve==="global"&&e.bind&&sA(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==qi;return t&&!n&&j(koe),t&&n},parse:(e,t,n)=>{const i=ce(n);if(i.select=de(i.select)?{type:i.select,toggle:t.toggle}:{...i.select,toggle:t.toggle},iL(t,i),oa(n.select)&&(n.select.on||n.select.clear)){const s='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of t.events)a.filter=ct(a.filter??[]),a.filter.includes(s)||a.filter.push(s)}const r=F1(t.bind)?t.bind.legend:"click",o=de(r)?ds(r,"view"):ct(r);t.bind={legend:{merge:o}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=F1(t.bind)&&t.bind.legend,o=s=>a=>{const u=ce(a);return u.markname=s,u};for(const s of t.project.items){if(!s.hasLegend)continue;const a=`${Qe(s.field)}_legend`,u=`${i}_${a}`;if(n.filter(c=>c.name===u).length===0){const c=r.merge.map(o(`${a}_symbols`)).concat(r.merge.map(o(`${a}_labels`))).concat(r.merge.map(o(`${a}_entries`)));n.unshift({name:u,...t.init?{}:{value:null},on:[{events:c,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(d=>d.name===i+mo),s=i+sd,a=r.items.filter(d=>d.hasLegend).map(d=>Qe(`${i}_${Qe(d.field)}_legend`)),l=`${a.map(d=>`${d} !== null`).join(" && ")} ? {fields: ${s}, values: [${a.join(", ")}]} : null`;t.events&&a.length>0?o.on.push({events:a.map(d=>({signal:d})),update:l}):a.length>0&&(o.update=l,delete o.value,delete o.on);const c=n.find(d=>d.name===i+Hp),f=F1(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push({...c.on[0],events:f}):c.on[0].events=f),n}};function dce(e,t,n){const i=e.fieldDef(t)?.field;for(const r of qt(e.component.selection??{})){const o=r.project.hasField[i]??r.project.hasChannel[t];if(o&&J4.defined(r)){const s=n.get("selections")??[];s.push(r.name),n.set("selections",s,!1),o.hasLegend=!0}}}const Q4="_translate_anchor",Z4="_translate_delta",hce={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+Q4,{x:s,y:a}=t.project.hasChannel;let u=ds(t.translate,"scope");return r||(u=u.map(l=>(l.between[0].markname=i+Au,l))),n.push({name:o,value:{},on:[{events:u.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(s!==void 0?`, extent_x: ${r?ix(e,et):`slice(${s.signals.visual})`}`:"")+(a!==void 0?`, extent_y: ${r?ix(e,Mt):`slice(${a.signals.visual})`}`:"")+"}"}]},{name:i+Z4,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),s!==void 0&&pF(e,t,s,"width",n),a!==void 0&&pF(e,t,a,"height",n),n}};function pF(e,t,n,i,r){const o=t.name,s=o+Q4,a=o+Z4,u=n.channel,l=ao.defined(t),c=r.find(w=>w.name===n.signals[l?"data":"visual"]),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),g=l?u===et?p?"":"-":p?"-":"":"",m=`${s}.extent_${u}`,y=`${g}${a}.${u} / ${l?`${f}`:`span(${m})`}`,b=!l||!d?"panLinear":h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear",x=l?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":"",v=`${b}(${m}, ${y}${x})`;c.on.push({events:{signal:a},update:l?v:`clampRange(${v}, 0, ${f})`})}const eL="_zoom_anchor",tL="_zoom_delta",pce={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+tL,{x:s,y:a}=t.project.hasChannel,u=_e(e.scaleName(et)),l=_e(e.scaleName(Mt));let c=ds(t.zoom,"scope");return r||(c=c.map(f=>(f.markname=i+Au,f))),n.push({name:i+eL,on:[{events:c,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),s!==void 0&&gF(e,t,s,"width",n),a!==void 0&&gF(e,t,a,"height",n),n}};function gF(e,t,n,i,r){const o=t.name,s=n.channel,a=ao.defined(t),u=r.find(b=>b.name===n.signals[a?"data":"visual"]),l=e.getSizeSignalRef(i).signal,c=e.getScaleComponent(s),f=c&&c.get("type"),d=a?ix(e,s):u.name,h=o+tL,p=`${o}${eL}.${s}`,g=!a||!c?"zoomLinear":f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear",m=a?f==="pow"?`, ${c.get("exponent")??1}`:f==="symlog"?`, ${c.get("constant")??1}`:"":"",y=`${g}(${d}, ${p}, ${h}${m})`;u.on.push({events:{signal:h},update:a?y:`clampRange(${y}, 0, ${l})`})}const Sa="_store",mo="_tuple",gce="_modify",nL="vlSelectionResolve",J0=[Ule,Xle,Ile,K4,X4,ao,J4,fce,hce,pce,Y4];function mce(e){let t=e.parent;for(;t&&!Zn(t);)t=t.parent;return t}function ta(e,{escape:t}={escape:!0}){let n=t?_e(e.name):e.name;const i=mce(e);if(i){const{facet:r}=i;for(const o of di)r[o]&&(n+=` + '__facet_${o}_' + (facet[${_e(i.vgField(o))}])`)}return n}function yA(e){return qt(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function iL(e,t){(to(t.select)||!t.select.on)&&delete e.events,(to(t.select)||!t.select.clear)&&delete e.clear,(to(t.select)||!t.select.toggle)&&delete e.toggle}function gr(e){return e.events?.find(t=>"type"in t&&t.type==="timer")}const yce="RawCode",bce="Literal",xce="Property",vce="Identifier",Ece="ArrayExpression",wce="BinaryExpression",Ace="CallExpression",Sce="ConditionalExpression",Cce="LogicalExpression",$ce="MemberExpression",_ce="ObjectExpression",Fce="UnaryExpression";function Qi(e){this.type=e}Qi.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=kce(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};function kce(e){switch(e.type){case Ece:return e.elements;case wce:case Cce:return[e.left,e.right];case Ace:return[e.callee].concat(e.arguments);case Sce:return[e.test,e.consequent,e.alternate];case $ce:return[e.object,e.property];case _ce:return e.properties;case xce:return[e.key,e.value];case Fce:return[e.argument];case vce:case bce:case yce:default:return[]}}var Pr,J,R,sn,Ie,Q0=1,ad=2,Ca=3,Es=4,Z0=5,Wa=6,Dn=7,ud=8,Dce=9;Pr={};Pr[Q0]="Boolean";Pr[ad]="<end>";Pr[Ca]="Identifier";Pr[Es]="Keyword";Pr[Z0]="Null";Pr[Wa]="Numeric";Pr[Dn]="Punctuator";Pr[ud]="String";Pr[Dce]="RegularExpression";var Tce="ArrayExpression",Mce="BinaryExpression",Oce="CallExpression",Rce="ConditionalExpression",rL="Identifier",Nce="Literal",Lce="LogicalExpression",Pce="MemberExpression",Ice="ObjectExpression",zce="Property",Bce="UnaryExpression",Ft="Unexpected token %0",Uce="Unexpected number",jce="Unexpected string",qce="Unexpected identifier",Wce="Unexpected reserved word",Gce="Unexpected end of input",ox="Invalid regular expression",N1="Invalid regular expression: missing /",oL="Octal literals are not allowed in strict mode.",Hce="Duplicate data property in object literal not allowed in strict mode",Ut="ILLEGAL",df="Disabled.",Vce=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]"),Yce=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 em(e,t){if(!e)throw new Error("ASSERT: "+t)}function Gr(e){return e>=48&&e<=57}function bA(e){return"0123456789abcdefABCDEF".includes(e)}function Pc(e){return"01234567".includes(e)}function Xce(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function hf(e){return e===10||e===13||e===8232||e===8233}function ld(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&Vce.test(String.fromCharCode(e))}function Vp(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&Yce.test(String.fromCharCode(e))}const Kce={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 sL(){for(;R<sn;){const e=J.charCodeAt(R);if(Xce(e)||hf(e))++R;else break}}function sx(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<sn&&bA(J[R])?(i=J[R++],r=r*16+"0123456789abcdef".indexOf(i.toLowerCase())):De({},Ft,Ut);return String.fromCharCode(r)}function Jce(){var e,t,n,i;for(e=J[R],t=0,e==="}"&&De({},Ft,Ut);R<sn&&(e=J[R++],!!bA(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&De({},Ft,Ut),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function aL(){var e,t;for(e=J.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!ld(e.charCodeAt(0)))&&De({},Ft,Ut),t=e);R<sn&&(e=J.charCodeAt(R),!!Vp(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!Vp(e.charCodeAt(0)))&&De({},Ft,Ut),t+=e);return t}function Qce(){var e,t;for(e=R++;R<sn;){if(t=J.charCodeAt(R),t===92)return R=e,aL();if(Vp(t))++R;else break}return J.slice(e,R)}function Zce(){var e,t,n;return e=R,t=J.charCodeAt(R)===92?aL():Qce(),t.length===1?n=Ca:Kce.hasOwnProperty(t)?n=Es:t==="null"?n=Z0:t==="true"||t==="false"?n=Q0:n=Ca,{type:n,value:t,start:e,end:R}}function L1(){var e=R,t=J.charCodeAt(R),n,i=J[R],r,o,s;switch(t){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++R,{type:Dn,value:String.fromCharCode(t),start:e,end:R};default:if(n=J.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:Dn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,J.charCodeAt(R)===61&&++R,{type:Dn,value:J.slice(e,R),start:e,end:R}}}if(s=J.substr(R,4),s===">>>=")return R+=4,{type:Dn,value:s,start:e,end:R};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return R+=3,{type:Dn,value:o,start:e,end:R};if(r=o.substr(0,2),i===r[1]&&"+-<>&|".includes(i)||r==="=>")return R+=2,{type:Dn,value:r,start:e,end:R};if(r==="//"&&De({},Ft,Ut),"<>=!+-*%&|^/".includes(i))return++R,{type:Dn,value:i,start:e,end:R};De({},Ft,Ut)}function efe(e){let t="";for(;R<sn&&bA(J[R]);)t+=J[R++];return t.length===0&&De({},Ft,Ut),ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseInt("0x"+t,16),start:e,end:R}}function tfe(e){let t="0"+J[R++];for(;R<sn&&Pc(J[R]);)t+=J[R++];return(ld(J.charCodeAt(R))||Gr(J.charCodeAt(R)))&&De({},Ft,Ut),{type:Wa,value:parseInt(t,8),octal:!0,start:e,end:R}}function mF(){var e,t,n;if(n=J[R],em(Gr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=J[R++],n=J[R],e==="0"){if(n==="x"||n==="X")return++R,efe(t);if(Pc(n))return tfe(t);n&&Gr(n.charCodeAt(0))&&De({},Ft,Ut)}for(;Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="."){for(e+=J[R++];Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="e"||n==="E")if(e+=J[R++],n=J[R],(n==="+"||n==="-")&&(e+=J[R++]),Gr(J.charCodeAt(R)))for(;Gr(J.charCodeAt(R));)e+=J[R++];else De({},Ft,Ut);return ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseFloat(e),start:t,end:R}}function nfe(){var e="",t,n,i,r,o=!1;for(t=J[R],em(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<sn;)if(i=J[R++],i===t){t="";break}else if(i==="\\")if(i=J[R++],!i||!hf(i.charCodeAt(0)))switch(i){case"u":case"x":J[R]==="{"?(++R,e+=Jce()):e+=sx(i);break;case"n":e+=`
16
16
  `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:Pc(i)?(r="01234567".indexOf(i),r!==0&&(o=!0),R<sn&&Pc(J[R])&&(o=!0,r=r*8+"01234567".indexOf(J[R++]),"0123".includes(i)&&R<sn&&Pc(J[R])&&(r=r*8+"01234567".indexOf(J[R++]))),e+=String.fromCharCode(r)):e+=i;break}else i==="\r"&&J[R]===`
17
- `&&++R;else{if(hf(i.charCodeAt(0)))break;e+=i}return t!==""&&De({},Ft,Ut),{type:ud,value:e,octal:o,start:n,end:R}}function rfe(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(i,r)=>{if(parseInt(r,16)<=1114111)return"x";De({},ox)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{De({},ox)}try{return new RegExp(e,t)}catch{return null}}function ofe(){var e,t,n,i,r;for(e=J[R],em(e==="/","Regular expression literal must start with a slash"),t=J[R++],n=!1,i=!1;R<sn;)if(e=J[R++],t+=e,e==="\\")e=J[R++],hf(e.charCodeAt(0))&&De({},N1),t+=e;else if(hf(e.charCodeAt(0)))De({},N1);else if(n)e==="]"&&(n=!1);else if(e==="/"){i=!0;break}else e==="["&&(n=!0);return i||De({},N1),r=t.substr(1,t.length-2),{value:r,literal:t}}function sfe(){var e,t,n;for(t="",n="";R<sn&&(e=J[R],!!Vp(e.charCodeAt(0)));)++R,e==="\\"&&R<sn?De({},Ft,Ut):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&De({},ox,n),{value:n,literal:t}}function afe(){var e,t,n,i;return Ie=null,aL(),e=R,t=ofe(),n=sfe(),i=rfe(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:R}}function ufe(e){return e.type===Ca||e.type===Es||e.type===Q0||e.type===Z0}function lL(){if(aL(),R>=sn)return{type:ad,start:R,end:R};const e=J.charCodeAt(R);return ld(e)?efe():e===40||e===41||e===59?L1():e===39||e===34?ife():e===46?Gr(J.charCodeAt(R+1))?yF():L1():Gr(e)?yF():L1()}function On(){const e=Ie;return R=e.end,Ie=lL(),R=e.end,e}function cL(){const e=R;Ie=lL(),R=e}function lfe(e){const t=new Qi(Mce);return t.elements=e,t}function bF(e,t,n){const i=new Qi(e==="||"||e==="&&"?Pce:Oce);return i.operator=e,i.left=t,i.right=n,i}function cfe(e,t){const n=new Qi(Rce);return n.callee=e,n.arguments=t,n}function ffe(e,t,n){const i=new Qi(Nce);return i.test=e,i.consequent=t,i.alternate=n,i}function xA(e){const t=new Qi(oL);return t.name=e,t}function vc(e){const t=new Qi(Lce);return t.value=e.value,t.raw=J.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function xF(e,t,n){const i=new Qi(Ice);return i.computed=e==="[",i.object=t,i.property=n,i.computed||(n.member=!0),i}function dfe(e){const t=new Qi(zce);return t.properties=e,t}function vF(e,t,n){const i=new Qi(Bce);return i.key=t,i.value=n,i.kind=e,i}function hfe(e,t){const n=new Qi(Uce);return n.operator=e,n.argument=t,n.prefix=!0,n}function De(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(o,s)=>(em(s<i.length,"Message reference must be in range"),i[s]));throw n=new Error(r),n.index=R,n.description=r,n}function tm(e){e.type===ad&&De(e,Hce),e.type===Wa&&De(e,jce),e.type===ud&&De(e,qce),e.type===Ca&&De(e,Wce),e.type===Es&&De(e,Gce),De(e,Ft,e.value)}function an(e){const t=On();(t.type!==Dn||t.value!==e)&&tm(t)}function Xe(e){return Ie.type===Dn&&Ie.value===e}function P1(e){return Ie.type===Es&&Ie.value===e}function pfe(){const e=[];for(R=Ie.start,an("[");!Xe("]");)Xe(",")?(On(),e.push(null)):(e.push($a()),Xe("]")||an(","));return On(),lfe(e)}function EF(){R=Ie.start;const e=On();return e.type===ud||e.type===Wa?(e.octal&&De(e,sL),vc(e)):xA(e.value)}function gfe(){var e,t,n,i;if(R=Ie.start,e=Ie,e.type===Ca)return n=EF(),an(":"),i=$a(),vF("init",n,i);if(e.type===ad||e.type===Dn)tm(e);else return t=EF(),an(":"),i=$a(),vF("init",t,i)}function mfe(){var e=[],t,n,i,r={},o=String;for(R=Ie.start,an("{");!Xe("}");)t=gfe(),t.key.type===oL?n=t.key.name:n=o(t.key.value),i="$"+n,Object.prototype.hasOwnProperty.call(r,i)?De({},Vce):r[i]=!0,e.push(t),Xe("}")||an(",");return an("}"),dfe(e)}function yfe(){an("(");const e=vA();return an(")"),e}const bfe={if:1};function xfe(){var e,t,n;if(Xe("("))return yfe();if(Xe("["))return pfe();if(Xe("{"))return mfe();if(e=Ie.type,R=Ie.start,e===Ca||bfe[Ie.value])n=xA(On().value);else if(e===ud||e===Wa)Ie.octal&&De(Ie,sL),n=vc(On());else{if(e===Es)throw new Error(df);e===Q0?(t=On(),t.value=t.value==="true",n=vc(t)):e===Z0?(t=On(),t.value=null,n=vc(t)):Xe("/")||Xe("/=")?(n=vc(afe()),cL()):tm(On())}return n}function vfe(){const e=[];if(an("("),!Xe(")"))for(;R<sn&&(e.push($a()),!Xe(")"));)an(",");return an(")"),e}function Efe(){R=Ie.start;const e=On();return ufe(e)||tm(e),xA(e.value)}function wfe(){return an("."),Efe()}function Afe(){an("[");const e=vA();return an("]"),e}function Sfe(){var e,t,n;for(e=xfe();;)if(Xe("."))n=wfe(),e=xF(".",e,n);else if(Xe("("))t=vfe(),e=cfe(e,t);else if(Xe("["))n=Afe(),e=xF("[",e,n);else break;return e}function wF(){const e=Sfe();if(Ie.type===Dn&&(Xe("++")||Xe("--")))throw new Error(df);return e}function Ah(){var e,t;if(Ie.type!==Dn&&Ie.type!==Es)t=wF();else{if(Xe("++")||Xe("--"))throw new Error(df);if(Xe("+")||Xe("-")||Xe("~")||Xe("!"))e=On(),t=Ah(),t=hfe(e.value,t);else{if(P1("delete")||P1("void")||P1("typeof"))throw new Error(df);t=wF()}}return t}function AF(e){let t=0;if(e.type!==Dn&&e.type!==Es)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function Cfe(){var e,t,n,i,r,o,s,a,u,l;if(e=Ie,u=Ah(),i=Ie,r=AF(i),r===0)return u;for(i.prec=r,On(),t=[e,Ie],s=Ah(),o=[u,i,s];(r=AF(Ie))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)s=o.pop(),a=o.pop().value,u=o.pop(),t.pop(),n=bF(a,u,s),o.push(n);i=On(),i.prec=r,o.push(i),t.push(Ie),n=Ah(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=bF(o[l-1].value,o[l-2],n),l-=2;return n}function $a(){var e,t,n;return e=Cfe(),Xe("?")&&(On(),t=$a(),an(":"),n=$a(),e=ffe(e,t,n)),e}function vA(){const e=$a();if(Xe(","))throw new Error(df);return e}function $fe(e){J=e,R=0,sn=J.length,Ie=null,cL();const t=vA();if(Ie.type!==ad)throw new Error("Unexpect token after expression.");return t}function ax(e){const t=[];return e.type==="Identifier"?[e.name]:e.type==="Literal"?[e.value]:(e.type==="MemberExpression"&&(t.push(...ax(e.object)),t.push(...ax(e.property))),t)}function fL(e){return e.object.type==="MemberExpression"?fL(e.object):e.object.name==="datum"}function dL(e){const t=$fe(e),n=new Set;return t.visit(i=>{i.type==="MemberExpression"&&fL(i)&&n.add(ax(i).slice(1).join("."))}),n}class wl extends ze{clone(){return new wl(null,this.model,ce(this.filter))}constructor(t,n,i){super(t),this.model=n,this.filter=i,this.expr=Yp(this.model,this.filter,this),this._dependentFields=dL(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function _fe(e,t){const n={},i=e.config.selection;if(!t||!t.length)return n;let r=0;for(const o of t){const s=Qe(o.name),a=o.select,u=de(a)?a:a.type,l=Fe(a)?ce(a):{type:u},c=i[u];for(const h in c)h==="fields"||h==="encodings"||(h==="mark"&&(l.mark={...c.mark,...l.mark}),(l[h]===void 0||l[h]===!0)&&(l[h]=ce(c[h]??l[h])));const f=n[s]={...l,name:s,type:u,init:o.value,bind:o.bind,events:de(l.on)?ds(l.on,"scope"):ct(ce(l.on))};if(gr(f)&&(r++,r>1)){delete n[s];continue}const d=ce(o);for(const h of J0)h.defined(f)&&h.parse&&h.parse(e,f,d)}return r>1&&j(Loe),n}function hL(e,t,n,i="datum"){const r=de(t)?t:t.param,o=Qe(r),s=_e(o+Sa);let a;try{a=e.getSelectionComponent(o,r)}catch{return`!!${o}`}if(a.project.timeUnit){const d=n??e.component.data.raw,h=a.project.timeUnit.clone();d.parent?h.insertAsParentOf(d):d.parent=h}const u=a.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(",l=a.resolve==="global"?")":`, ${_e(a.resolve)})`,c=`${u}${s}, ${i}${l}`,f=`length(data(${s}))`;return t.empty===!1?`${f} && ${c}`:`!${f} || ${c}`}function pL(e,t,n){const i=Qe(t),r=n.encoding;let o=n.field,s;try{s=e.getSelectionComponent(i,t)}catch{return i}if(!r&&!o)o=s.project.items[0].field,s.project.items.length>1&&j(Poe(o));else if(r&&!o){const a=s.project.items.filter(u=>u.channel===r);!a.length||a.length>1?(o=s.project.items[0].field,j(Ioe(a,r,n,o))):o=a[0].field}return`${s.name}[${_e(bi(o))}]`}function Ffe(e,t){for(const[n,i]of is(e.component.selection??{})){const r=e.getName(`lookup_${n}`);e.component.data.outputNodes[r]=i.materialized=new Nn(new wl(t,e,{param:n}),r,it.Lookup,e.component.data.outputNodeRefCounts)}}function Yp(e,t,n){return Nc(t,i=>de(i)?i:Vse(i)?hL(e,i,n):b6(i))}function kfe(e,t){if(e)return X(e)&&!Ro(e)?e.map(n=>Qw(n,t)).join(", "):e}function I1(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function Ec(e,t,n,i={header:!1}){const{disable:r,orient:o,scale:s,labelExpr:a,title:u,zindex:l,...c}=e.combine();if(!r){for(const f in c){const d=f,h=Qae[d],p=c[d];if(h&&h!==t&&h!=="both")delete c[d];else if(od(p)){const{condition:g,...m}=p,y=ct(g),b=W_[d];if(b){const{vgProp:x,part:v}=b,w=[...y.map(A=>{const{test:E,...S}=A;return{test:Yp(null,E),...S}}),m];I1(c,v,x,w),delete c[d]}else if(b===null){const x={signal:y.map(v=>{const{test:w,...A}=v;return`${Yp(null,w)} ? ${F_(A)} : `}).join("")+F_(m)};c[d]=x}}else if(Q(p)){const g=W_[d];if(g){const{vgProp:m,part:y}=g;I1(c,y,m,p),delete c[d]}}we(["labelAlign","labelBaseline"],d)&&c[d]===null&&delete c[d]}if(t==="grid"){if(!c.grid)return;if(c.encode){const{grid:f}=c.encode;c.encode={...f?{grid:f}:{}},Ue(c.encode)&&delete c.encode}return{scale:s,orient:o,...c,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:ft(l,0)}}else{if(!i.header&&e.mainExtracted)return;if(a!==void 0){let d=a;c.encode?.labels?.update&&Q(c.encode.labels.update.text)&&(d=ma(a,"datum.label",c.encode.labels.update.text.signal)),I1(c,"labels","text",{signal:d})}if(c.labelAlign===null&&delete c.labelAlign,c.encode){for(const d of X6)e.hasAxisPart(d)||delete c.encode[d];Ue(c.encode)&&delete c.encode}const f=kfe(u,n);return{scale:s,orient:o,grid:!1,...f?{title:f}:{},...c,...n.aria===!1?{aria:!1}:{},zindex:ft(l,0)}}}}function gL(e){const{axes:t}=e.component,n=[];for(const i of So)if(t[i]){for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const o=i==="x"?"height":"width",s=e.getSizeSignalRef(o).signal;o!==s&&n.push({name:o,update:s})}}return n}function Dfe(e,t){const{x:n=[],y:i=[]}=e;return[...n.map(r=>Ec(r,"grid",t)),...i.map(r=>Ec(r,"grid",t)),...n.map(r=>Ec(r,"main",t)),...i.map(r=>Ec(r,"main",t))].filter(r=>r)}function SF(e,t,n,i){return Object.assign.apply(null,[{},...e.map(r=>{if(r==="axisOrient"){const o=n==="x"?"bottom":"left",s=t[n==="x"?"axisBottom":"axisLeft"]||{},a=t[n==="x"?"axisTop":"axisRight"]||{},u=new Set([...B(s),...B(a)]),l={};for(const c of u.values())l[c]={signal:`${i.signal} === "${o}" ? ${Mi(s[c])} : ${Mi(a[c])}`};return l}return t[r]})])}function Tfe(e,t,n,i){const r=t==="band"?["axisDiscrete","axisBand"]:t==="point"?["axisDiscrete","axisPoint"]:w6(t)?["axisQuantitative"]:t==="time"||t==="utc"?["axisTemporal"]:[],o=e==="x"?"axisX":"axisY",s=Q(n)?"axisOrient":`axis${Yf(n)}`,a=[...r,...r.map(l=>o+l.substr(4))],u=["axis",s,o];return{vlOnlyAxisConfig:SF(a,i,e,n),vgAxisConfig:SF(u,i,e,n),axisConfigStyle:Mfe([...u,...a],i)}}function Mfe(e,t){const n=[{}];for(const i of e){let r=t[i]?.style;if(r){r=ct(r);for(const o of r)n.push(t.style[o])}}return Object.assign.apply(null,n)}function ux(e,t,n,i={}){const r=KN(e,n,t);if(r!==void 0)return{configFrom:"style",configValue:r};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(i[o]?.[e]!==void 0)return{configFrom:o,configValue:i[o][e]};return{}}const CF={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??Ofe(n,e),gridScale:({model:e,channel:t})=>Rfe(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||yL(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||mL(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??Lfe(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??Pfe(t.type,n,q(t)&&!!t.timeUnit,q(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{const o=e==="x"?"width":e==="y"?"height":void 0,s=o?t.getSizeSignalRef(o):void 0;return n.tickCount??zfe({fieldOrDatumDef:i,scaleType:r,size:s,values:n.values})},tickMinStep:Bfe,title:({axis:e,model:t,channel:n})=>{if(e.title!==void 0)return e.title;const i=bL(t,n);if(i!==void 0)return i;const r=t.typedFieldDef(n),o=n==="x"?"x2":"y2",s=t.fieldDef(o);return QN(r?[j_(r)]:[],q(s)?[j_(s)]:[])},values:({axis:e,fieldOrDatumDef:t})=>Ufe(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??jfe(n,t)};function Ofe(e,t){return!Dt(e)&&q(t)&&!He(t?.bin)&&!Nt(t?.bin)}function Rfe(e,t){const n=t==="x"?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}function Nfe(e,t,n,i,r){const o=t?.labelAngle;if(o!==void 0)return Q(o)?o:lf(o);{const{configValue:s}=ux("labelAngle",i,t?.style,r);return s!==void 0?lf(s):n===et&&we([Bw,zw],e.type)&&!(q(e)&&e.timeUnit)?270:void 0}}function lx(e){return`(((${e.signal} % 360) + 360) % 360)`}function mL(e,t,n,i){if(e!==void 0)if(n==="x"){if(Q(e)){const r=lx(e),o=Q(t)?`(${t.signal} === "top")`:t==="top";return{signal:`(45 < ${r} && ${r} < 135) || (225 < ${r} && ${r} < 315) ? "middle" :(${r} <= 45 || 315 <= ${r}) === ${o} ? "bottom" : "top"`}}if(45<e&&e<135||225<e&&e<315)return"middle";if(Q(t)){const r=e<=45||315<=e?"===":"!==";return{signal:`${t.signal} ${r} "top" ? "bottom" : "top"`}}return(e<=45||315<=e)==(t==="top")?"bottom":"top"}else{if(Q(e)){const r=lx(e),o=Q(t)?`(${t.signal} === "left")`:t==="left";return{signal:`${r} <= 45 || 315 <= ${r} || (135 <= ${r} && ${r} <= 225) ? ${i?'"middle"':"null"} : (45 <= ${r} && ${r} <= 135) === ${o} ? "top" : "bottom"`}}if(e<=45||315<=e||135<=e&&e<=225)return i?"middle":null;if(Q(t)){const r=45<=e&&e<=135?"===":"!==";return{signal:`${t.signal} ${r} "left" ? "top" : "bottom"`}}return(45<=e&&e<=135)==(t==="left")?"top":"bottom"}}function yL(e,t,n){if(e===void 0)return;const i=n==="x",r=i?0:90,o=i?"bottom":"left";if(Q(e)){const s=lx(e),a=Q(t)?`(${t.signal} === "${o}")`:t===o;return{signal:`(${r?`(${s} + 90)`:s} % 180 === 0) ? ${i?null:'"center"'} :(${r} < ${s} && ${s} < ${180+r}) === ${a} ? "left" : "right"`}}if((e+r)%180===0)return i?null:"center";if(Q(t)){const s=r<e&&e<180+r?"===":"!==";return{signal:`${`${t.signal} ${s} "${o}"`} ? "left" : "right"`}}return(r<e&&e<180+r)==(t===o)?"left":"right"}function Lfe(e,t){if(t==="x"&&we(["quantitative","temporal"],e))return!0}function Pfe(e,t,n,i){if(n&&!Fe(i)||e!=="nominal"&&e!=="ordinal")return t==="log"||t==="symlog"?"greedy":!0}function Ife(e){return e==="x"?"bottom":"left"}function zfe({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){if(!i&&!Dt(t)&&t!=="log"){if(q(e)){if(He(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&we(["month","hours","day","quarter"],kt(e.timeUnit)?.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function Bfe({format:e,fieldOrDatumDef:t}){if(e==="d")return 1;if(q(t)){const{timeUnit:n}=t;if(n){const i=g6(n);if(i)return{signal:i}}}}function bL(e,t){const n=t==="x"?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,s=r?r.title:void 0;if(o&&s)return ZN(o,s);if(o)return o;if(s)return s;if(o!==void 0)return o;if(s!==void 0)return s}function Ufe(e,t){const n=e.values;if(X(n))return Y6(t,n);if(Q(n))return n}function jfe(e,t){return e==="rect"&&Bp(t)?1:0}class el extends ze{clone(){return new el(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this._dependentFields=dL(this.transform.calculate)}static parseAllForSortIndex(t,n){return n.forEachFieldDef((i,r)=>{if(qa(i)&&I6(i.sort)){const{field:o,timeUnit:s}=i,a=i.sort,u=a.map((l,c)=>`${b6({field:o,timeUnit:s,equal:l})} ? ${c} : `).join("")+a.length;t=new el(t,{calculate:u,as:tl(i,r,{forAs:!0})})}}),t}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 ${Ae(this.transform)}`}}function tl(e,t,n){return H(e,{prefix:t,suffix:"sort_index",...n})}function nm(e,t){return we(["top","bottom"],t)?"column":we(["left","right"],t)||e==="row"?"row":"column"}function nl(e,t,n,i){const r=i==="row"?n.headerRow:i==="column"?n.headerColumn:n.headerFacet;return ft((t||{})[e],r[e],n.header[e])}function im(e,t,n,i){const r={};for(const o of e){const s=nl(o,t||{},n,i);s!==void 0&&(r[o]=s)}return r}const EA=["row","column"],wA=["header","footer"];function qfe(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:s,titleOrient:a}=im(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),u=nm(t,a),l=lf(s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:{text:n,...t==="row"?{orient:"left"}:{},style:"guide-title",...vL(l,u),...xL(u,l,o),...EL(i,r,t,vue,h4)}}}function xL(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=yL(t,e==="row"?"left":"top",e==="row"?"y":"x");return i?{align:i}:{}}function vL(e,t){const n=mL(e,t==="row"?"left":"top",t==="row"?"y":"x",!0);return n?{baseline:n}:{}}function Wfe(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of wA)if(n[r])for(const o of n[r]){const s=Hfe(e,t,r,n,o);s!=null&&i.push(s)}return i}function Gfe(e,t){const{sort:n}=e;return so(n)?{field:H(n,{expr:"datum"}),order:n.order??"ascending"}:X(n)?{field:tl(e,t,{expr:"datum"}),order:"ascending"}:{field:H(e,{expr:"datum"}),order:n??"ascending"}}function cx(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:s,labelOrient:a,labelExpr:u}=im(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),l=Yw({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,c=nm(t,a);return{text:{signal:u?ma(ma(u,"datum.label",l),"datum.value",H(e,{expr:"parent"})):l},...t==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...vL(o,c),...xL(c,o,s),...EL(n,e,t,Eue,p4)}}function Hfe(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:s}=i,a=e.config?e.config:void 0;if(s&&r.labels){const{labelOrient:f}=im(["labelOrient"],s.header,a,t);(t==="row"&&!we(["top","bottom"],f)||t==="column"&&!we(["left","right"],f))&&(o=cx(s,t,a))}const u=Zn(e)&&!td(e.facet),l=r.axes,c=l?.length>0;if(o||c){const f=t==="row"?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...i.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:Gfe(s,t)}:{},...c&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[f]:r.sizeSignal}}}:{},...c?{axes:l}:{}}}}return null}const Vfe={column:{start:0,end:1},row:{start:1,end:0}};function Yfe(e,t){return Vfe[t][e]}function Xfe(e,t){const n={};for(const i of di){const r=e[i];if(r?.facetFieldDef){const{titleAnchor:o,titleOrient:s}=im(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=nm(i,s),u=Yfe(o,a);u!==void 0&&(n[a]=u)}}return Ue(n)?void 0:n}function EL(e,t,n,i,r){const o={};for(const s of i){if(!r[s])continue;const a=nl(s,t?.header,e,n);a!==void 0&&(o[r[s]]=a)}return o}function AA(e){return[...jd(e,"width"),...jd(e,"height"),...jd(e,"childWidth"),...jd(e,"childHeight")]}function jd(e,t){const n=t==="width"?"x":"y",i=e.component.layoutSize.get(t);if(!i||i==="merged")return[];const r=e.getSizeSignalRef(t).signal;if(i==="step"){const o=e.getScaleComponent(n);if(o){const s=o.get("type"),a=o.get("range");if(Dt(s)&&Ba(a)){const u=e.scaleName(n);return Zn(e.parent)&&e.parent.component.resolve.scale[n]==="independent"?[$F(u,a)]:[$F(u,a),{name:r,update:wL(u,o,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(i=="container"){const o=r.endsWith("width"),s=o?"containerSize()[0]":"containerSize()[1]",a=Jb(e.config.view,o?"width":"height"),u=`isFinite(${s}) ? ${s} : ${a}`;return[{name:r,init:u,on:[{update:u,events:"window:resize"}]}]}else return[{name:r,value:i}]}function $F(e,t){const n=`${e}_step`;return Q(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function wL(e,t,n){const i=t.get("type"),r=t.get("padding"),o=ft(t.get("paddingOuter"),r);let s=t.get("paddingInner");return s=i==="band"?s!==void 0?s:r:1,`bandspace(${n}, ${Mi(s)}, ${Mi(o)}) * ${e}_step`}function AL(e){return e==="childWidth"?"width":e==="childHeight"?"height":e}function SL(e,t){return B(e).reduce((n,i)=>({...n,...El({model:t,channelDef:e[i],vgChannel:i,mainRefFn:r=>Ye(r.value),invalidValueRef:void 0})}),{})}function CL(e,t){if(Zn(t))return e==="theta"?"independent":"shared";if(Cl(t))return"shared";if(DA(t))return dt(e)||e==="theta"||e==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function SA(e,t){const n=e.scale[t],i=dt(t)?"axis":"legend";return n==="independent"?(e[i][t]==="shared"&&j(gse(t)),"independent"):e[i][t]||"shared"}const Kfe={...Sue,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1},$L=B(Kfe);class Jfe extends $o{}const _F={symbols:Qfe,gradient:Zfe,labels:ede,entries:tde};function Qfe(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if(o!=="symbol")return;const{markDef:s,encoding:a,config:u,mark:l}=n,c=s.filled&&l!=="trail";let f={...Aoe({},n,xae),...H4(n,{filled:c})};const d=r.get("symbolOpacity")??u.legend.symbolOpacity,h=r.get("symbolFillColor")??u.legend.symbolFillColor,p=r.get("symbolStrokeColor")??u.legend.symbolStrokeColor,g=d===void 0?_L(a.opacity)??s.opacity:void 0;if(f.fill){if(i==="fill"||c&&i===Bn)delete f.fill;else if(U(f.fill,"field"))h?delete f.fill:(f.fill=Ye(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=Ye(g??1));else if(X(f.fill)){const m=fx(a.fill??a.color)??s.fill??(c&&s.color);m&&(f.fill=Ye(m))}}if(f.stroke){if(i==="stroke"||!c&&i===Bn)delete f.stroke;else if(U(f.stroke,"field")||p)delete f.stroke;else if(X(f.stroke)){const m=ft(fx(a.stroke||a.color),s.stroke,c?s.color:void 0);m&&(f.stroke={value:m})}}if(i!==Ao){const m=q(t)&&kL(n,r,t);m?f.opacity=[{test:m,...Ye(g??1)},Ye(u.legend.unselectedOpacity)]:g&&(f.opacity=Ye(g))}return f={...f,...e},Ue(f)?void 0:f}function Zfe(e,{model:t,legendType:n,legendCmpt:i}){if(n!=="gradient")return;const{config:r,markDef:o,encoding:s}=t;let a={};const l=(i.get("gradientOpacity")??r.legend.gradientOpacity)===void 0?_L(s.opacity)||o.opacity:void 0;return l&&(a.opacity=Ye(l)),a={...a,...e},Ue(a)?void 0:a}function ede(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},s=n.config,a=q(t)?kL(n,r,t):void 0,u=a?[{test:a,value:1},{value:s.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=o;let f;wa(c)?f=Oi({fieldOrDatumDef:t,field:"datum.value",format:l,formatType:c,config:s}):l===void 0&&c===void 0&&s.customFormatTypes&&(t.type==="quantitative"&&s.numberFormatType?f=Oi({fieldOrDatumDef:t,field:"datum.value",format:s.numberFormat,formatType:s.numberFormatType,config:s}):t.type==="temporal"&&s.timeFormatType&&q(t)&&t.timeUnit===void 0&&(f=Oi({fieldOrDatumDef:t,field:"datum.value",format:s.timeFormat,formatType:s.timeFormatType,config:s})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...e};return Ue(d)?void 0:d}function tde(e,{legendCmpt:t}){return t.get("selections")?.length?{...e,fill:{value:"transparent"}}:e}function _L(e){return FL(e,(t,n)=>Math.max(t,n.value))}function fx(e){return FL(e,(t,n)=>ft(t,n.value))}function FL(e,t){if(Bae(e))return ct(e.condition).reduce(t,e.value);if(Ui(e))return e.value}function kL(e,t,n){const i=t.get("selections");if(!i?.length)return;const r=_e(n.field);return i.map(o=>`(!length(data(${_e(Qe(o)+Sa)})) || (${o}[${r}] && indexof(${o}[${r}], datum.value) >= 0))`).join(" || ")}const FF={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return N6(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return L6(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??ude(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??lde(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??ide(t.type,n,i.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>wu(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(Eu(n)&&fr(t)){if(e==="gradient")return}else if(e==="symbol")return;return e},values:({fieldOrDatumDef:e,legend:t})=>nde(t,e)};function nde(e,t){const n=e.values;if(X(n))return Y6(t,n);if(Q(n))return n}function ide(e,t,n,i){if(t!=="shape"){const r=fx(n)??i;if(r)return r}switch(e){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 rde(e){const{legend:t}=e;return ft(t.type,ode(e))}function ode({channel:e,timeUnit:t,scaleType:n}){if(Eu(e)){if(we(["quarter","month","day"],t))return"symbol";if(fr(n))return"gradient"}return"symbol"}function sde({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??ade(n,t)}function ade(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return t==="gradient"?"horizontal":void 0}}function ude({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:s,gradientVerticalMaxLength:a,gradientVerticalMinLength:u}=e;if(fr(r))return n==="horizontal"?i==="top"||i==="bottom"?kF(t,"width",s,o):s:kF(t,"height",u,a)}function kF(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function lde(e){if(we(["quantile","threshold","log","symlog"],e))return"greedy"}function DL(e){const t=nt(e)?cde(e):pde(e);return e.component.legends=t,t}function cde(e){const{encoding:t}=e,n={};for(const i of[Bn,...m4]){const r=xt(t[i]);!r||!e.getScaleComponent(i)||i===Un&&q(r)&&r.type===vl||(n[i]=hde(e,i))}return n}function fde(e,t){const n=e.scaleName(t);if(e.mark==="trail"){if(t==="color")return{stroke:n};if(t==="size")return{strokeWidth:n}}return t==="color"?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}function dde(e,t,n,i){switch(t){case"disable":return n!==void 0;case"values":return!!n?.values;case"title":if(t==="title"&&e===i?.title)return!0}return e===(n||{})[t]}function hde(e,t){let n=e.legend(t);const{markDef:i,encoding:r,config:o}=e,s=o.legend,a=new Jfe({},fde(e,t));hce(e,t,a);const u=n!==void 0?!n:s.disable;if(a.set("disable",u,n!==void 0),u)return a;n=n||{};const l=e.getScaleComponent(t).get("type"),c=xt(r[t]),f=q(c)?kt(c.timeUnit)?.unit:void 0,d=n.orient||o.legend.orient||"right",h=rde({legend:n,channel:t,timeUnit:f,scaleType:l}),p=sde({legend:n,legendType:h,orient:d,legendConfig:s}),g={legend:n,channel:t,model:e,markDef:i,encoding:r,fieldOrDatumDef:c,legendConfig:s,config:o,scaleType:l,orient:d,legendType:h,direction:p};for(const v of $L){if(h==="gradient"&&v.startsWith("symbol")||h==="symbol"&&v.startsWith("gradient"))continue;const w=v in FF?FF[v](g):n[v];if(w!==void 0){const A=dde(w,v,n,e.fieldDef(t));(A||o.legend[v]===void 0)&&a.set(v,w,A)}}const m=n?.encoding??{},y=a.get("selections"),b={},x={fieldOrDatumDef:c,model:e,channel:t,legendCmpt:a,legendType:h};for(const v of["labels","legend","title","symbols","gradient","entries"]){const w=SL(m[v]??{},e),A=v in _F?_F[v](w,x):w;A!==void 0&&!Ue(A)&&(b[v]={...y?.length&&q(c)?{name:`${Qe(c.field)}_legend_${v}`}:{},...y?.length?{interactive:!!y}:{},update:A})}return Ue(b)||a.set("encode",b,!!n?.encoding),a}function pde(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){DL(i);for(const r of B(i.component.legends))n.legend[r]=SA(e.component.resolve,r),n.legend[r]==="shared"&&(t[r]=TL(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of B(t))for(const r of e.children)r.component.legends[i]&&n.legend[i]==="shared"&&delete r.component.legends[i];return t}function TL(e,t){if(!e)return t.clone();const n=e.getWithExplicit("orient"),i=t.getWithExplicit("orient");if(n.explicit&&i.explicit&&n.value!==i.value)return;let r=!1;for(const o of $L){const s=ss(e.getWithExplicit(o),t.getWithExplicit(o),o,"legend",(a,u)=>{switch(o){case"symbolType":return gde(a,u);case"title":return e6(a,u);case"type":return r=!0,Wn("symbol")}return V0(a,u,o,"legend")});e.setWithExplicit(o,s)}return r&&(e.implicit?.encode?.gradient&&Np(e.implicit,["encode","gradient"]),e.explicit?.encode?.gradient&&Np(e.explicit,["encode","gradient"])),e}function gde(e,t){return t.value==="circle"?t:e}function mde(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function ML(e){const t=e.component.legends,n={};for(const r of B(t)){const o=e.getScaleComponent(r),s=je(o.get("domains"));if(n[s])for(const a of n[s])TL(a,t[r])||n[s].push(t[r]);else n[s]=[t[r].clone()]}return qt(n).flat().map(r=>yde(r,e.config)).filter(r=>r!==void 0)}function yde(e,t){const{disable:n,labelExpr:i,selections:r,...o}=e.combine();if(!n){if(t.aria===!1&&o.aria==null&&(o.aria=!1),o.encode?.symbols){const s=o.encode.symbols.update;s.fill&&s.fill.value!=="transparent"&&!s.stroke&&!o.stroke&&(s.stroke={value:"transparent"});for(const a of m4)o[a]&&delete s[a]}if(o.title||delete o.title,i!==void 0){let s=i;o.encode?.labels?.update&&Q(o.encode.labels.update.text)&&(s=ma(i,"datum.label",o.encode.labels.update.text.signal)),mde(o,"labels","text",{signal:s})}return o}}function bde(e){return Cl(e)||DA(e)?xde(e):OL(e)}function xde(e){return e.children.reduce((t,n)=>t.concat(n.assembleProjections()),OL(e))}function OL(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n;if(t.data){const r={signal:`[${t.size.map(s=>s.signal).join(", ")}]`},o=t.data.reduce((s,a)=>{const u=Q(a)?a.signal:`data('${e.lookupDataSource(a)}')`;return we(s,u)||s.push(u),s},[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:i,size:r,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]},...n}]}else return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const vde=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class RL extends $o{constructor(t,n,i,r){super({...n},{name:t}),this.specifiedProjection=n,this.size=i,this.data=r,this.merged=!1}get isFit(){return!!this.data}}function NL(e){e.component.projection=nt(e)?Ede(e):Sde(e)}function Ede(e){if(e.hasProjection){const t=Lt(e.specifiedProjection),n=!(t&&(t.scale!=null||t.translate!=null)),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?wde(e):void 0,o=new RL(e.projectionName(!0),{...Lt(e.config.projection),...t},i,r);return o.get("type")||o.set("type","equalEarth",!1),o}}function wde(e){const t=[],{encoding:n}=e;for(const i of[[Ki,Xi],[xi,Ji]])(xt(n[i[0]])||xt(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});return e.channelHasField(Un)&&e.typedFieldDef(Un).type===vl&&t.push({signal:e.getName(`geojson_${t.length}`)}),t.length===0&&t.push(e.requestDataName(it.Main)),t}function Ade(e,t){const n=dw(vde,r=>!!(!pt(e.explicit,r)&&!pt(t.explicit,r)||pt(e.explicit,r)&&pt(t.explicit,r)&&Xn(e.get(r),t.get(r))));if(Xn(e.size,t.size)){if(n)return e;if(Xn(e.explicit,{}))return t;if(Xn(t.explicit,{}))return e}return null}function Sde(e){if(e.children.length===0)return;let t;for(const i of e.children)NL(i);const n=dw(e.children,i=>{const r=i.component.projection;if(r)if(t){const o=Ade(t,r);return o&&(t=o),!!o}else return t=r,!0;else return!0});if(t&&n){const i=e.projectionName(!0),r=new RL(i,t.specifiedProjection,t.size,ce(t.data));for(const o of e.children){const s=o.component.projection;s&&(s.isFit&&r.data.push(...o.component.projection.data),o.renameProjection(s.get("name"),i),s.merged=!0)}return r}}function Cde(e,t,n,i){if(rd(t,n)){const r=nt(e)?e.axis(n)??e.legend(n)??{}:{},o=H(t,{expr:"datum"}),s=H(t,{expr:"datum",binSuffix:"end"});return{formulaAs:H(t,{binSuffix:"range",forAs:!0}),formula:ed(o,s,r.format,r.formatType,i)}}return{}}function LL(e,t){return`${HN(e)}_${t}`}function $de(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}function CA(e,t,n){const i=U0(n,void 0)??{},r=LL(i,t);return e.getName(`${r}_bins`)}function _de(e){return"as"in e}function DF(e,t,n){let i,r;_de(e)?i=de(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:i=[H(e,{forAs:!0}),H(e,{binSuffix:"end",forAs:!0})];const o={...U0(t,void 0)},s=LL(o,e.field),{signal:a,extentSignal:u}=$de(n,s);if(D0(o.extent)){const c=o.extent;r=pL(n,c.param,c),delete o.extent}const l={bin:o,field:e.field,as:[i],...a?{signal:a}:{},...u?{extentSignal:u}:{},...r?{span:r}:{}};return{key:s,binComponent:l}}class mr extends ze{clone(){return new mr(null,ce(this.bins))}constructor(t,n){super(t),this.bins=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,s)=>{if(Cn(o)&&He(o.bin)){const{key:a,binComponent:u}=DF(o,o.bin,n);r[a]={...u,...r[a],...Cde(n,o,s,n.config)}}return r},{});return Ue(i)?null:new mr(t,i)}static makeFromTransform(t,n,i){const{key:r,binComponent:o}=DF(n,n.bin,i);return new mr(t,{[r]:o})}merge(t,n){for(const i of B(t.bins))i in this.bins?(n(t.bins[i].signal,this.bins[i].signal),this.bins[i].as=cr([...this.bins[i].as,...t.bins[i].as],Ae)):this.bins[i]=t.bins[i];for(const i of t.children)t.removeChild(i),i.parent=this;t.remove()}producedFields(){return new Set(qt(this.bins).map(t=>t.as).flat(2))}dependentFields(){return new Set(qt(this.bins).map(t=>t.field))}hash(){return`Bin ${Ae(this.bins)}`}assemble(){return qt(this.bins).flatMap(t=>{const n=[],[i,...r]=t.as,{extent:o,...s}=t.bin,a={type:"bin",field:bi(t.field),as:i,signal:t.signal,...D0(o)?{extent:null}:{extent:o},...t.span?{span:{signal:`span(${t.span})`}}:{},...s};!o&&t.extentSignal&&(n.push({type:"extent",field:bi(t.field),signal:t.extentSignal}),a.extent={signal:t.extentSignal}),n.push(a);for(const u of r)for(let l=0;l<2;l++)n.push({type:"formula",expr:H({field:i[l]},{expr:"datum"}),as:u[l]});return t.formula&&n.push({type:"formula",expr:t.formula,as:t.formulaAs}),n})}}function Fde(e,t,n,i){const r=nt(i)?i.encoding[Rr(t)]:void 0;if(Cn(n)&&nt(i)&&B6(n,r,i.markDef,i.config)){e.add(H(n,{})),e.add(H(n,{suffix:"end"}));const{mark:o,markDef:s,config:a}=i,u=os({fieldDef:n,markDef:s,config:a});cf(o)&&u!==.5&&dt(t)&&(e.add(H(n,{suffix:Y0})),e.add(H(n,{suffix:X0}))),n.bin&&rd(n,t)&&e.add(H(n,{binSuffix:"range"}))}else if(PN(t)){const o=LN(t);e.add(i.getName(o))}else e.add(H(n));return qa(n)&&sae(n.scale?.range)&&e.add(n.scale.range.field),e}function kde(e,t){for(const n of B(t)){const i=t[n];for(const r of B(i))n in e?e[n][r]=new Set([...e[n][r]??[],...i[r]]):e[n]={[r]:i[r]}}}class Ni extends ze{clone(){return new Ni(null,new Set(this.dimensions),ce(this.measures))}constructor(t,n,i){super(t),this.dimensions=n,this.measures=i}get groupBy(){return this.dimensions}static makeFromEncoding(t,n){let i=!1;n.forEachFieldDef(s=>{s.aggregate&&(i=!0)});const r={},o=new Set;return!i||(n.forEachFieldDef((s,a)=>{const{aggregate:u,field:l}=s;if(u)if(u==="count")r["*"]??(r["*"]={}),r["*"].count=new Set([H(s,{forAs:!0})]);else{if(po(u)||xs(u)){const c=po(u)?"argmin":"argmax",f=u[c];r[f]??(r[f]={}),r[f][c]=new Set([H({op:c,field:f},{forAs:!0})])}else r[l]??(r[l]={}),r[l][u]=new Set([H(s,{forAs:!0})]);Nr(a)&&n.scaleDomain(a)==="unaggregated"&&(r[l]??(r[l]={}),r[l].min=new Set([H({field:l,aggregate:"min"},{forAs:!0})]),r[l].max=new Set([H({field:l,aggregate:"max"},{forAs:!0})]))}else Fde(o,a,s,n)}),o.size+B(r).length===0)?null:new Ni(t,o,r)}static makeFromTransform(t,n){var i;const r=new Set,o={};for(const s of n.aggregate){const{op:a,field:u,as:l}=s;a&&(a==="count"?(o["*"]??(o["*"]={}),o["*"].count=new Set([l||H(s,{forAs:!0})])):(o[u]??(o[u]={}),(i=o[u])[a]??(i[a]=new Set),o[u][a].add(l||H(s,{forAs:!0}))))}for(const s of n.groupby??[])r.add(s);return r.size+B(o).length===0?null:new Ni(t,r,o)}merge(t){return FN(this.dimensions,t.dimensions)?(kde(this.measures,t.measures),!0):(Tse("different dimensions, cannot merge"),!1)}addDimensions(t){t.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...B(this.measures)])}producedFields(){const t=new Set;for(const n of B(this.measures))for(const i of B(this.measures[n])){const r=this.measures[n][i];r.size===0?t.add(`${i}_${n}`):r.forEach(t.add,t)}return t}hash(){return`Aggregate ${Ae({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const t=[],n=[],i=[];for(const o of B(this.measures))for(const s of B(this.measures[o]))for(const a of this.measures[o][s])i.push(a),t.push(s),n.push(o==="*"?null:bi(o));return{type:"aggregate",groupby:[...this.dimensions].map(bi),ops:t,fields:n,as:i}}}class Al extends ze{constructor(t,n,i,r){super(t),this.model=n,this.name=i,this.data=r;for(const o of di){const s=n.facet[o];if(s){const{bin:a,sort:u}=s;this[o]={name:n.getName(`${o}_domain`),fields:[H(s),...He(a)?[H(s,{binSuffix:"end"})]:[]],...so(u)?{sortField:u}:X(u)?{sortIndexField:tl(s,o)}:{}}}}this.childModel=n.child}hash(){let t="Facet";for(const n of di)this[n]&&(t+=` ${n.charAt(0)}:${Ae(this[n])}`);return t}get fields(){const t=[];for(const n of di)this[n]?.fields&&t.push(...this[n].fields);return t}dependentFields(){const t=new Set(this.fields);for(const n of di)this[n]&&(this[n].sortField&&t.add(this[n].sortField.field),this[n].sortIndexField&&t.add(this[n].sortIndexField));return t}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const t={};for(const n of So){const i=this.childModel.component.scales[n];if(i&&!i.merged){const r=i.get("type"),o=i.get("range");if(Dt(r)&&Ba(o)){const s=rm(this.childModel,n),a=kA(s);a?t[n]=a:j($w(n))}}}return t}assembleRowColumnHeaderData(t,n,i){const r={row:"y",column:"x",facet:void 0}[t],o=[],s=[],a=[];r&&i&&i[r]&&(n?(o.push(`distinct_${i[r]}`),s.push("max")):(o.push(i[r]),s.push("distinct")),a.push(`distinct_${i[r]}`));const{sortField:u,sortIndexField:l}=this[t];if(u){const{op:c=I0,field:f}=u;o.push(f),s.push(c),a.push(H(u,{forAs:!0}))}else l&&(o.push(l),s.push("max"),a.push(l));return{name:this[t].name,source:n??this.data,transform:[{type:"aggregate",groupby:this[t].fields,...o.length?{fields:o,ops:s,as:a}:{}}]}}assembleFacetHeaderData(t){const{columns:n}=this.model.layout,{layoutHeaders:i}=this.model.component,r=[],o={};for(const u of EA){for(const l of wA){const c=(i[u]&&i[u][l])??[];for(const f of c)if(f.axes?.length>0){o[u]=!0;break}}if(o[u]){const l=`length(data("${this.facet.name}"))`,c=u==="row"?n?{signal:`ceil(${l} / ${n})`}:1:n?{signal:`min(${l}, ${n})`}:{signal:l};r.push({name:`${this.facet.name}_${u}`,transform:[{type:"sequence",start:0,stop:c}]})}}const{row:s,column:a}=o;return(s||a)&&r.unshift(this.assembleRowColumnHeaderData("facet",null,t)),r}assemble(){const t=[];let n=null;const i=this.getChildIndependentFieldsWithStep(),{column:r,row:o,facet:s}=this;if(r&&o&&(i.x||i.y)){n=`cross_${this.column.name}_${this.row.name}`;const a=[].concat(i.x??[],i.y??[]),u=a.map(()=>"distinct");t.push({name:n,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:a,ops:u}]})}for(const a of[oo,ro])this[a]&&t.push(this.assembleRowColumnHeaderData(a,n,i));if(s){const a=this.assembleFacetHeaderData(i);a&&t.push(...a)}return t}}function TF(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function Dde(e,t){const n=gw(e);if(t==="number")return`toNumber(${n})`;if(t==="boolean")return`toBoolean(${n})`;if(t==="string")return`toString(${n})`;if(t==="date")return`toDate(${n})`;if(t==="flatten")return n;if(t.startsWith("date:")){const i=TF(t.slice(5,t.length));return`timeParse(${n},'${i}')`}else if(t.startsWith("utc:")){const i=TF(t.slice(4,t.length));return`utcParse(${n},'${i}')`}else return j(Boe(t)),null}function Tde(e){const t={};return Eh(e.filter,n=>{if(y6(n)){let i=null;Mw(n)?i=Vn(n.equal):Rw(n)?i=Vn(n.lte):Ow(n)?i=Vn(n.lt):Nw(n)?i=Vn(n.gt):Lw(n)?i=Vn(n.gte):Pw(n)?i=n.range[0]:Iw(n)&&(i=(n.oneOf??n.in)[0]),i&&(Ua(i)?t[n.field]="date":Ze(i)?t[n.field]="number":de(i)&&(t[n.field]="string")),n.timeUnit&&(t[n.field]="date")}}),t}function Mde(e){const t={};function n(i){Ju(i)?t[i.field]="date":i.type==="quantitative"&&poe(i.aggregate)?t[i.field]="number":Gu(i.field)>1?i.field in t||(t[i.field]="flatten"):qa(i)&&so(i.sort)&&Gu(i.sort.field)>1&&(i.sort.field in t||(t[i.sort.field]="flatten"))}if((nt(e)||Zn(e))&&e.forEachFieldDef((i,r)=>{if(Cn(i))n(i);else{const o=Ia(r),s=e.fieldDef(o);n({...i,type:s.type})}}),nt(e)){const{mark:i,markDef:r,encoding:o}=e;if(vs(i)&&!e.encoding.order){const s=r.orient==="horizontal"?"y":"x",a=o[s];q(a)&&a.type==="quantitative"&&!(a.field in t)&&(t[a.field]="number")}}return t}function Ode(e){const t={};if(nt(e)&&e.component.selection)for(const n of B(e.component.selection)){const i=e.component.selection[n];for(const r of i.project.items)!r.channel&&Gu(r.field)>1&&(t[r.field]="flatten")}return t}class tn extends ze{clone(){return new tn(null,ce(this._parse))}constructor(t,n){super(t),this._parse=n}hash(){return`Parse ${Ae(this._parse)}`}static makeExplicit(t,n,i){let r={};const o=n.data;return!Xo(o)&&o?.format?.parse&&(r=o.format.parse),this.makeWithAncestors(t,r,{},i)}static makeWithAncestors(t,n,i,r){for(const a of B(i)){const u=r.getWithExplicit(a);u.value!==void 0&&(u.explicit||u.value===i[a]||u.value==="derived"||i[a]==="flatten"?delete i[a]:j(R_(a,i[a],u.value)))}for(const a of B(n)){const u=r.get(a);u!==void 0&&(u===n[a]?delete n[a]:j(R_(a,n[a],u)))}const o=new $o(n,i);r.copyAll(o);const s={};for(const a of B(o.combine())){const u=o.get(a);u!==null&&(s[a]=u)}return B(s).length===0||r.parseNothing?null:new tn(t,s)}get parse(){return this._parse}merge(t){this._parse={...this._parse,...t.parse},t.remove()}assembleFormatParse(){const t={};for(const n of B(this._parse)){const i=this._parse[n];Gu(n)===1&&(t[n]=i)}return t}producedFields(){return new Set(B(this._parse))}dependentFields(){return new Set(B(this._parse))}assembleTransforms(t=!1){return B(this._parse).filter(n=>t?Gu(n)>1:!0).map(n=>{const i=Dde(n,this._parse[n]);return i?{type:"formula",expr:i,as:bl(n)}:null}).filter(n=>n!==null)}}class as extends ze{clone(){return new as(null)}constructor(t){super(t)}dependentFields(){return new Set}producedFields(){return new Set([qi])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:qi}}}class cd extends ze{clone(){return new cd(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ae(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class fd extends ze{clone(){return new fd(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${Ae(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class _a extends ze{constructor(t){super(null),t??(t={name:"source"});let n;if(Xo(t)||(n=t.format?{...Rn(t.format,["parse"])}:{}),ff(t))this._data={values:t.values};else if(Qu(t)){if(this._data={url:t.url},!n.type){let i=/(?:\.([^.]+))?$/.exec(t.url)[1];we(["json","csv","tsv","dsv","topojson"],i)||(i="json"),n.type=i}}else R4(t)?this._data={values:[{type:"Sphere"}]}:(M4(t)||Xo(t))&&(this._data={});this._generator=Xo(t),t.name&&(this._name=t.name),n&&!Ue(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(t){this._name=t}set parent(t){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{name:this._name,...this._data,transform:[]}}}var MF=function(e,t,n,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(e,n):r?r.value=n:t.set(e,n),n},Rde=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},wc;function $A(e){return e instanceof _a||e instanceof cd||e instanceof fd}class _A{constructor(){wc.set(this,void 0),MF(this,wc,!1,"f")}setModified(){MF(this,wc,!0,"f")}get modifiedFlag(){return Rde(this,wc,"f")}}wc=new WeakMap;class Ga extends _A{getNodeDepths(t,n,i){i.set(t,n);for(const r of t.children)this.getNodeDepths(r,n+1,i);return i}optimize(t){const i=[...this.getNodeDepths(t,0,new Map).entries()].sort((r,o)=>o[1]-r[1]);for(const r of i)this.run(r[0]);return this.modifiedFlag}}class FA extends _A{optimize(t){this.run(t);for(const n of t.children)this.optimize(n);return this.modifiedFlag}}class Nde extends FA{mergeNodes(t,n){const i=n.shift();for(const r of n)t.removeChild(r),r.parent=i,r.remove()}run(t){const n=t.children.map(r=>r.hash()),i={};for(let r=0;r<n.length;r++)i[n[r]]===void 0?i[n[r]]=[t.children[r]]:i[n[r]].push(t.children[r]);for(const r of B(i))i[r].length>1&&(this.setModified(),this.mergeNodes(t,i[r]))}}class Lde extends FA{constructor(t){super(),this.requiresSelectionId=t&&yA(t)}run(t){t instanceof as&&(this.requiresSelectionId&&($A(t.parent)||t.parent instanceof Ni||t.parent instanceof tn)||(this.setModified(),t.remove()))}}class Pde extends _A{optimize(t){return this.run(t,new Set),this.modifiedFlag}run(t,n){let i=new Set;t instanceof pr&&(i=t.producedFields(),hw(i,n)&&(this.setModified(),t.removeFormulas(n),t.producedFields.length===0&&t.remove()));for(const r of t.children)this.run(r,new Set([...n,...i]))}}class Ide extends FA{constructor(){super()}run(t){t instanceof Nn&&!t.isRequired()&&(this.setModified(),t.remove())}}class zde extends Ga{run(t){if(!$A(t)&&!(t.numChildren()>1)){for(const n of t.children)if(n instanceof tn)if(t instanceof tn)this.setModified(),t.merge(n);else{if(pw(t.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class Bde extends Ga{run(t){const n=[...t.children],i=t.children.filter(r=>r instanceof tn);if(t.numChildren()>1&&i.length>=1){const r={},o=new Set;for(const s of i){const a=s.parse;for(const u of B(a))u in r?r[u]!==a[u]&&o.add(u):r[u]=a[u]}for(const s of o)delete r[s];if(!Ue(r)){this.setModified();const s=new tn(t,r);for(const a of n){if(a instanceof tn)for(const u of B(r))delete a.parse[u];t.removeChild(a),a.parent=s,a instanceof tn&&B(a.parse).length===0&&a.remove()}}}}}class Ude extends Ga{run(t){t instanceof Nn||t.numChildren()>0||t instanceof Al||t instanceof _a||(this.setModified(),t.remove())}}class jde extends Ga{run(t){const n=t.children.filter(r=>r instanceof pr),i=n.pop();for(const r of n)this.setModified(),i.merge(r)}}class qde extends Ga{run(t){const n=t.children.filter(r=>r instanceof Ni),i={};for(const r of n){const o=Ae(r.groupBy);o in i||(i[o]=[]),i[o].push(r)}for(const r of B(i)){const o=i[r];if(o.length>1){const s=o.pop();for(const a of o)s.merge(a)&&(t.removeChild(a),a.parent=s,a.remove(),this.setModified())}}}}class Wde extends Ga{constructor(t){super(),this.model=t}run(t){const n=!($A(t)||t instanceof wl||t instanceof tn||t instanceof as),i=[],r=[];for(const o of t.children)o instanceof mr&&(n&&!pw(t.producedFields(),o.dependentFields())?i.push(o):r.push(o));if(i.length>0){const o=i.pop();for(const s of i)o.merge(s,this.model.renameSignal.bind(this.model));this.setModified(),t instanceof mr?t.merge(o,this.model.renameSignal.bind(this.model)):o.swapWithParent()}if(r.length>1){const o=r.pop();for(const s of r)o.merge(s,this.model.renameSignal.bind(this.model));this.setModified()}}}class Gde extends Ga{run(t){const n=[...t.children];if(!Wu(n,s=>s instanceof Nn)||t.numChildren()<=1)return;const r=[];let o;for(const s of n)if(s instanceof Nn){let a=s;for(;a.numChildren()===1;){const[u]=a.children;if(u instanceof Nn)a=u;else break}r.push(...a.children),o?(t.removeChild(s),s.parent=o.parent,o.parent.removeChild(o),o.parent=a,this.setModified()):o=a}else r.push(s);if(r.length){this.setModified();for(const s of r)s.parent.removeChild(s),s.parent=o}}}class Ha extends ze{clone(){return new Ha(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t.add,t),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(t){return t.as??H(t)}hash(){return`JoinAggregateTransform ${Ae(this.transform)}`}assemble(){const t=[],n=[],i=[];for(const o of this.transform.joinaggregate)n.push(o.op),i.push(this.getDefaultName(o)),t.push(o.field===void 0?null:o.field);const r=this.transform.groupby;return{type:"joinaggregate",as:i,ops:n,fields:t,...r!==void 0?{groupby:r}:{}}}}class il extends ze{clone(){return new il(null,{...this.filter})}constructor(t,n){super(t),this.filter=n}static make(t,n,i){const{config:r,markDef:o}=n,{marks:s,scales:a}=i;if(s==="include-invalid-values"&&a==="include-invalid-values")return null;const u=n.reduceFieldDef((l,c,f)=>{const d=Nr(f)&&n.getScaleComponent(f);if(d){const h=d.get("type"),{aggregate:p}=c,g=Gw({scaleChannel:f,markDef:o,config:r,scaleType:h,isCountAggregate:k0(p)});g!=="show"&&g!=="always-valid"&&(l[c.field]=c)}return l},{});return B(u).length?new il(t,u):null}dependentFields(){return new Set(B(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ae(this.filter)}`}assemble(){const t=B(this.filter).reduce((n,i)=>{const r=this.filter[i],o=H(r,{expr:"datum"});return r!==null&&(r.type==="temporal"?n.push(`(isDate(${o}) || (${dx(o)}))`):r.type==="quantitative"&&n.push(dx(o))),n},[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}function dx(e){return`isValid(${e}) && isFinite(+${e})`}function Hde(e){return e.stack.stackBy.reduce((t,n)=>{const i=n.fieldDef,r=H(i);return r&&t.push(r),t},[])}function Vde(e){return X(e)&&e.every(t=>de(t))&&e.length>1}class uo extends ze{clone(){return new uo(null,ce(this._stack))}constructor(t,n){super(t),this._stack=n}static makeFromTransform(t,n){const{stack:i,groupby:r,as:o,offset:s="zero"}=n,a=[],u=[];if(n.sort!==void 0)for(const f of n.sort)a.push(f.field),u.push(ft(f.order,"ascending"));const l={field:a,order:u};let c;return Vde(o)?c=o:de(o)?c=[o,`${o}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new uo(t,{dimensionFieldDefs:[],stackField:i,groupby:r,offset:s,sort:l,facetby:[],as:c})}static makeFromEncoding(t,n){const i=n.stack,{encoding:r}=n;if(!i)return null;const{groupbyChannels:o,fieldChannel:s,offset:a,impute:u}=i,l=o.map(h=>{const p=r[h];return ji(p)}).filter(h=>!!h),c=Hde(n),f=n.encoding.order;let d;if(X(f)||q(f))d=JN(f);else{const h=U6(f)?f.sort:s==="y"?"descending":"ascending";d=c.reduce((p,g)=>(p.field.includes(g)||(p.field.push(g),p.order.push(h)),p),{field:[],order:[]})}return new uo(t,{dimensionFieldDefs:l,stackField:n.vgField(s),facetby:[],stackby:c,sort:d,offset:a,impute:u,as:[n.vgField(s,{suffix:"start",forAs:!0}),n.vgField(s,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(t){this._stack.facetby.push(...t)}dependentFields(){const t=new Set;return t.add(this._stack.stackField),this.getGroupbyFields().forEach(t.add,t),this._stack.facetby.forEach(t.add,t),this._stack.sort.field.forEach(t.add,t),t}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Ae(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:t,impute:n,groupby:i}=this._stack;return t.length>0?t.map(r=>r.bin?n?[H(r,{binSuffix:"mid"})]:[H(r,{}),H(r,{binSuffix:"end"})]:[H(r)]).flat():i??[]}assemble(){const t=[],{facetby:n,dimensionFieldDefs:i,stackField:r,stackby:o,sort:s,offset:a,impute:u,as:l}=this._stack;if(u)for(const c of i){const{bandPosition:f=.5,bin:d}=c;if(d){const h=H(c,{expr:"datum"}),p=H(c,{expr:"datum",binSuffix:"end"});t.push({type:"formula",expr:`${dx(h)} ? ${f}*${h}+${1-f}*${p} : ${h}`,as:H(c,{binSuffix:"mid",forAs:!0})})}t.push({type:"impute",field:r,groupby:[...o,...n],key:H(c,{binSuffix:"mid"}),method:"value",value:0})}return t.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:r,sort:s,as:l,offset:a}),t}}class Sl extends ze{clone(){return new Sl(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return(this.transform.groupby??[]).forEach(t.add,t),(this.transform.sort??[]).forEach(n=>t.add(n.field)),this.transform.window.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(t){return t.as??H(t)}hash(){return`WindowTransform ${Ae(this.transform)}`}assemble(){const t=[],n=[],i=[],r=[];for(const f of this.transform.window)n.push(f.op),i.push(this.getDefaultName(f)),r.push(f.param===void 0?null:f.param),t.push(f.field===void 0?null:f.field);const o=this.transform.frame,s=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&n.every(f=>Sw(f)))return{type:"joinaggregate",as:i,ops:n,fields:t,...s!==void 0?{groupby:s}:{}};const a=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)a.push(f.field),u.push(f.order??"ascending");const l={field:a,order:u},c=this.transform.ignorePeers;return{type:"window",params:r,as:i,ops:n,fields:t,sort:l,...c!==void 0?{ignorePeers:c}:{},...s!==void 0?{groupby:s}:{},...o!==void 0?{frame:o}:{}}}}function Yde(e){function t(n){if(!(n instanceof Al)){const i=n.clone();if(i instanceof Nn){const r=px+i.getSource();i.setSource(r),e.model.component.data.outputNodes[r]=i}else(i instanceof Ni||i instanceof uo||i instanceof Sl||i instanceof Ha)&&i.addDimensions(e.fields);for(const r of n.children.flatMap(t))r.parent=i;return[i]}return n.children.flatMap(t)}return t}function hx(e){if(e instanceof Al)if(e.numChildren()===1&&!(e.children[0]instanceof Nn)){const t=e.children[0];(t instanceof Ni||t instanceof uo||t instanceof Sl||t instanceof Ha)&&t.addDimensions(e.fields),t.swapWithParent(),hx(e)}else{const t=e.model.component.data.main;PL(t);const n=Yde(e),i=e.children.map(n).flat();for(const r of i)r.parent=t}else e.children.map(hx)}function PL(e){if(e instanceof Nn&&e.type===it.Main&&e.numChildren()===1){const t=e.children[0];t instanceof Al||(t.swapWithParent(),PL(e))}}const px="scale_",qd=5;function gx(e){for(const t of e){for(const n of t.children)if(n.parent!==t)return!1;if(!gx(t.children))return!1}return!0}function Ai(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function OF(e,t,n){let i=e.sources,r=!1;return r=Ai(new Ide,i)||r,r=Ai(new Lde(t),i)||r,i=i.filter(o=>o.numChildren()>0),r=Ai(new Ude,i)||r,i=i.filter(o=>o.numChildren()>0),n||(r=Ai(new zde,i)||r,r=Ai(new Wde(t),i)||r,r=Ai(new Pde,i)||r,r=Ai(new Bde,i)||r,r=Ai(new qde,i)||r,r=Ai(new jde,i)||r,r=Ai(new Nde,i)||r,r=Ai(new Gde,i)||r),e.sources=i,r}function Xde(e,t){gx(e.sources);let n=0,i=0;for(let r=0;r<qd&&OF(e,t,!0);r++)n++;e.sources.map(hx);for(let r=0;r<qd&&OF(e,t,!1);r++)i++;gx(e.sources),Math.max(n,i)===qd&&j(`Maximum optimization runs(${qd}) reached.`)}class St{constructor(t){Object.defineProperty(this,"signal",{enumerable:!0,get:t})}static fromName(t,n){return new St(()=>t(n))}}function IL(e){nt(e)?Kde(e):Jde(e)}function Kde(e){const t=e.component.scales;for(const n of B(t)){const i=Zde(e,n);if(t[n].setWithExplicit("domains",i),the(e,n),e.component.data.isFaceted){let o=e;for(;!Zn(o)&&o.parent;)o=o.parent;if(o.component.resolve.scale[n]==="shared")for(const a of i.value)eo(a)&&(a.data=px+a.data.replace(px,""))}}}function Jde(e){for(const n of e.children)IL(n);const t=e.component.scales;for(const n of B(t)){let i,r=null;for(const o of e.children){const s=o.component.scales[n];if(s){i===void 0?i=s.getWithExplicit("domains"):i=ss(i,s.getWithExplicit("domains"),"domains","scale",mx);const a=s.get("selectionExtent");r&&a&&r.param!==a.param&&j(Ooe),r=a}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}function Qde(e,t,n,i){if(e==="unaggregated"){const{valid:r,reason:o}=RF(t,n);if(!r){j(o);return}}else if(e===void 0&&i.useUnaggregatedDomain){const{valid:r}=RF(t,n);if(r)return"unaggregated"}return e}function Zde(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=Qde(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:r}),t==="x"&&xt(i.x2)?xt(i.x)?ss(Do(n,r,e,"x"),Do(n,r,e,"x2"),"domain","scale",mx):Do(n,r,e,"x2"):t==="y"&&xt(i.y2)?xt(i.y)?ss(Do(n,r,e,"y"),Do(n,r,e,"y2"),"domain","scale",mx):Do(n,r,e,"y2"):Do(n,r,e,t)}function ehe(e,t,n){return e.map(i=>({signal:`{data: ${j0(i,{timeUnit:n,type:t})}}`}))}function z1(e,t,n){const i=kt(n)?.unit;return t==="temporal"||i?ehe(e,t,i):[e]}function Do(e,t,n,i){const{encoding:r,markDef:o,mark:s,config:a,stack:u}=n,l=xt(r[i]),{type:c}=l,f=l.timeUnit,d=Ple({invalid:Ar("invalid",o,a),isPath:vs(s)});if(oae(t)){const g=Do(e,void 0,n,i),m=z1(t.unionWith,c,f);return or([...m,...g.value])}else{if(Q(t))return or([t]);if(t&&t!=="unaggregated"&&!S6(t))return or(z1(t,c,f))}if(u&&i===u.fieldChannel){if(u.offset==="normalize")return Wn([[0,1]]);const g=n.requestDataName(d);return Wn([{data:g,field:n.vgField(i,{suffix:"start"})},{data:g,field:n.vgField(i,{suffix:"end"})}])}const h=Nr(i)&&q(l)?nhe(n,i,e):void 0;if(Lr(l)){const g=z1([l.datum],c,f);return Wn(g)}const p=l;if(t==="unaggregated"){const{field:g}=l;return Wn([{data:n.requestDataName(d),field:H({field:g,aggregate:"min"})},{data:n.requestDataName(d),field:H({field:g,aggregate:"max"})}])}else if(He(p.bin)){if(Dt(e))return Wn(e==="bin-ordinal"?[]:[{data:uf(h)?n.requestDataName(d):n.requestDataName(it.Raw),field:n.vgField(i,rd(p,i)?{binSuffix:"range"}:{}),sort:h===!0||!Fe(h)?{field:n.vgField(i,{}),op:"min"}:h}]);{const{bin:g}=p;if(He(g)){const m=CA(n,p.field,g);return Wn([new St(()=>{const y=n.getSignalName(m);return`[${y}.start, ${y}.stop]`})])}else return Wn([{data:n.requestDataName(d),field:n.vgField(i,{})}])}}else if(p.timeUnit&&we(["time","utc"],e)){const g=r[Rr(i)];if(B6(p,g,o,a)){const m=n.requestDataName(d),y=os({fieldDef:p,fieldDef2:g,markDef:o,config:a}),b=cf(s)&&y!==.5&&dt(i);return Wn([{data:m,field:n.vgField(i,b?{suffix:Y0}:{})},{data:m,field:n.vgField(i,{suffix:b?X0:"end"})}])}}return Wn(h?[{data:uf(h)?n.requestDataName(d):n.requestDataName(it.Raw),field:n.vgField(i),sort:h}]:[{data:n.requestDataName(d),field:n.vgField(i)}])}function B1(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":I0),...i?{field:bi(i)}:{},...r?{order:r}:{}}}function the(e,t){const n=e.component.scales[t],i=e.specifiedScales[t].domain,r=e.fieldDef(t)?.bin,o=S6(i)?i:void 0,s=za(r)&&D0(r.extent)?r.extent:void 0;(o||s)&&n.set("selectionExtent",o??s,!0)}function nhe(e,t,n){if(!Dt(n))return;const i=e.fieldDef(t),r=i.sort;if(I6(r))return{op:"min",field:tl(i,t),order:"ascending"};const{stack:o}=e,s=o?new Set([...o.groupbyFields,...o.stackBy.map(a=>a.fieldDef.field)]):void 0;if(so(r)){const a=o&&!s.has(r.field);return B1(r,a)}else if(Pae(r)){const{encoding:a,order:u}=r,l=e.fieldDef(a),{aggregate:c,field:f}=l,d=o&&!s.has(f);if(po(c)||xs(c))return B1({field:H(l),order:u},d);if(Sw(c)||!c)return B1({op:c,field:f,order:u},d)}else{if(r==="descending")return{op:"min",field:e.vgField(t),order:"descending"};if(we(["ascending",void 0],r))return!0}}function RF(e,t){const{aggregate:n,type:i}=e;return n?de(n)&&!moe.has(n)?{valid:!1,reason:use(n)}:i==="quantitative"&&t==="log"?{valid:!1,reason:lse(e)}:{valid:!0}:{valid:!1,reason:ase(e)}}function mx(e,t,n,i){return e.explicit&&t.explicit&&j(pse(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function ihe(e){const t=cr(e.map(s=>{if(eo(s)){const{sort:a,...u}=s;return u}return s}),Ae),n=cr(e.map(s=>{if(eo(s)){const a=s.sort;return a!==void 0&&!uf(a)&&("op"in a&&a.op==="count"&&delete a.field,a.order==="ascending"&&delete a.order),a}}).filter(s=>s!==void 0),Ae);if(t.length===0)return;if(t.length===1){const s=e[0];if(eo(s)&&n.length>0){let a=n[0];if(n.length>1){j(L_);const u=n.filter(l=>Fe(l)&&"op"in l&&l.op!=="min");n.every(l=>Fe(l)&&"op"in l)&&u.length===1?a=u[0]:a=!0}else if(Fe(a)&&"field"in a){const u=a.field;s.field===u&&(a=a.order?{order:a.order}:!0)}return{...s,sort:a}}return s}const i=cr(n.map(s=>uf(s)||!("op"in s)||de(s.op)&&pt(doe,s.op)?s:(j(mse(s)),!0)),Ae);let r;i.length===1?r=i[0]:i.length>1&&(j(L_),r=!0);const o=cr(e.map(s=>eo(s)?s.data:null),s=>s);return o.length===1&&o[0]!==null?{data:o[0],fields:t.map(a=>a.field),...r?{sort:r}:{}}:{fields:t,...r?{sort:r}:{}}}function kA(e){if(eo(e)&&de(e.field))return e.field;if(yoe(e)){let t;for(const n of e.fields)if(eo(n)&&de(n.field)){if(!t)t=n.field;else if(t!==n.field)return j(yse),t}return j(bse),t}else if(boe(e)){j(xse);const t=e.fields[0];return de(t)?t:void 0}}function rm(e,t){const i=e.component.scales[t].get("domains").map(r=>(eo(r)&&(r.data=e.lookupDataSource(r.data)),r));return ihe(i)}function zL(e){return Cl(e)||DA(e)?e.children.reduce((t,n)=>t.concat(zL(n)),NF(e)):NF(e)}function NF(e){return B(e.component.scales).reduce((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:s,selectionExtent:a,domains:u,range:l,reverse:c,...f}=r,d=rhe(r.range,o,n,e),h=rm(e,n),p=a?Yle(e,a,i,h):null;return t.push({name:o,type:s,...h?{domain:h}:{},...p?{domainRaw:p}:{},range:d,...c!==void 0?{reverse:c}:{},...f}),t},[])}function rhe(e,t,n,i){if(dt(n)){if(Ba(e))return{step:{signal:`${t}_step`}}}else if(Fe(e)&&eo(e))return{...e,data:i.lookupDataSource(e.data)};return e}class BL extends $o{constructor(t,n){super({},{name:t}),this.merged=!1,this.setWithExplicit("type",n)}domainHasZero(){const t=this.get("type");if(we([Pt.LOG,Pt.TIME,Pt.UTC],t))return"definitely-not";const n=this.get("zero");if(n===!0||n===void 0&&we([Pt.LINEAR,Pt.SQRT,Pt.POW],t))return"definitely";const i=this.get("domains");if(i.length>0){let r=!1,o=!1,s=!1;for(const a of i){if(X(a)){const u=a[0],l=a[a.length-1];if(Ze(u)&&Ze(l))if(u<=0&&l>=0){r=!0;continue}else{o=!0;continue}}s=!0}if(r)return"definitely";if(o&&!s)return"definitely-not"}return"maybe"}}const ohe=["range","scheme"];function she(e){const t=e.component.scales;for(const n of Aw){const i=t[n];if(!i)continue;const r=ahe(n,e);i.setWithExplicit("range",r)}}function LF(e,t){const n=e.fieldDef(t);if(n?.bin){const{bin:i,field:r}=n,o=jn(t),s=e.getName(o);if(Fe(i)&&i.binned&&i.step!==void 0)return new St(()=>{const a=e.scaleName(t),u=`(domain("${a}")[1] - domain("${a}")[0]) / ${i.step}`;return`${e.getSignalName(s)} / (${u})`});if(He(i)){const a=CA(e,r,i);return new St(()=>{const u=e.getSignalName(a),l=`(${u}.stop - ${u}.start) / ${u}.step`;return`${e.getSignalName(s)} / (${l})`})}}}function ahe(e,t){const n=t.specifiedScales[e],{size:i}=t,o=t.getScaleComponent(e).get("type");for(const f of ohe)if(n[f]!==void 0){const d=Yb(o,f),h=C6(e,f);if(!d)j(r6(o,f,e));else if(h)j(h);else switch(f){case"range":{const p=n.range;if(X(p)){if(dt(e))return or(p.map(g=>{if(g==="width"||g==="height"){const m=t.getName(g),y=t.getSignalName.bind(t);return St.fromName(y,m)}return g}))}else if(Fe(p))return or({data:t.requestDataName(it.Main),field:p.field,sort:{op:"min",field:t.vgField(e)}});return or(p)}case"scheme":return or(uhe(n[f]))}}const s=e===et||e==="xOffset"?"width":"height",a=i[s];if(Cr(a)){if(dt(e))if(Dt(o)){const f=jL(a,t,e);if(f)return or({step:f})}else j(o6(s));else if(Jf(e)){const f=e===hs?"x":"y";if(t.getScaleComponent(f).get("type")==="band"){const p=qL(a,o);if(p)return or(p)}}}const{rangeMin:u,rangeMax:l}=n,c=lhe(e,t);return(u!==void 0||l!==void 0)&&Yb(o,"rangeMin")&&X(c)&&c.length===2?or([u??c[0],l??c[1]]):Wn(c)}function uhe(e){return rae(e)?{scheme:e.name,...Rn(e,["name"])}:{scheme:e}}function UL(e,t,n,{center:i}={}){const r=jn(e),o=t.getName(r),s=t.getSignalName.bind(t);return e===Mt&&Bi(n)?i?[St.fromName(a=>`${s(a)}/2`,o),St.fromName(a=>`-${s(a)}/2`,o)]:[St.fromName(s,o),0]:i?[St.fromName(a=>`-${s(a)}/2`,o),St.fromName(a=>`${s(a)}/2`,o)]:[0,St.fromName(s,o)]}function lhe(e,t){const{size:n,config:i,mark:r,encoding:o}=t,{type:s}=xt(o[e]),u=t.getScaleComponent(e).get("type"),{domain:l,domainMid:c}=t.specifiedScales[e];switch(e){case et:case Mt:{if(we(["point","band"],u)){const f=WL(e,n,i.view);if(Cr(f))return{step:jL(f,t,e)}}return UL(e,t,u)}case hs:case xl:return che(e,t,u);case wo:{const f=hhe(r,i),d=phe(r,n,t,i);return Yu(u)?dhe(f,d,fhe(u,i,l,e)):[f,d]}case Ei:return[0,Math.PI*2];case Pa:return[0,360];case Yi:return[0,new St(()=>{const f=t.getSignalName(Zn(t.parent)?"child_width":"width"),d=t.getSignalName(Zn(t.parent)?"child_height":"height");return`min(${f},${d})/2`})];case ps:return{step:1e3/i.scale.framesPerSecond};case ys:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case bs:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Un:return"symbol";case Bn:case Mr:case Or:return u==="ordinal"?s==="nominal"?"category":"ordinal":c!==void 0?"diverging":r==="rect"||r==="geoshape"?"heatmap":"ramp";case Ao:case gs:case ms:return[i.scale.minOpacity,i.scale.maxOpacity]}}function jL(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),o=xw(n),s=i[o];if(b4({step:e,offsetIsDiscrete:fe(s)&&x6(s.type)})==="offset"&&Q6(i,o)){const u=t.getScaleComponent(o);let c=`domain('${t.scaleName(o)}').length`;if(u.get("type")==="band"){const d=u.get("paddingInner")??u.get("padding")??0,h=u.get("paddingOuter")??u.get("padding")??0;c=`bandspace(${c}, ${d}, ${h})`}const f=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${c} / (1-${woe(f)})`}}else return e.step}function qL(e,t){if(b4({step:e,offsetIsDiscrete:Dt(t)})==="offset")return{step:e.step}}function che(e,t,n){const i=e===hs?"x":"y",r=t.getScaleComponent(i);if(!r)return UL(i,t,n,{center:!0});const o=r.get("type"),s=t.scaleName(i),{markDef:a,config:u}=t;if(o==="band"){const l=WL(i,t.size,t.config.view);if(Cr(l)){const c=qL(l,n);if(c)return c}return[0,{signal:`bandwidth('${s}')`}]}else{const l=t.encoding[i];if(q(l)&&l.timeUnit){const c=g6(l.timeUnit,p=>`scale('${s}', ${p})`),f=t.config.scale.bandWithNestedOffsetPaddingInner,d=os({fieldDef:l,markDef:a,config:u})-.5,h=d!==0?` + ${d}`:"";if(f){const p=Q(f)?`${f.signal}/2`+h:`${f/2+d}`,g=Q(f)?`(1 - ${f.signal}/2)`+h:`${1-f/2+d}`;return[{signal:`${p} * (${c})`},{signal:`${g} * (${c})`}]}return[0,{signal:c}]}return $N(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}function WL(e,t,n){const i=e===et?"width":"height",r=t[i];return r||Wp(n,i)}function fhe(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return n!==void 0&&X(n)?n.length+1:(j(Fse(i)),3)}}function dhe(e,t,n){const i=()=>{const r=Mi(t),o=Mi(e),s=`(${r} - ${o}) / (${n} - 1)`;return`sequence(${o}, ${r} + ${s}, ${s})`};return Q(t)?new St(i):{signal:i()}}function hhe(e,t){switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(T0("size",e))}const PF=.95;function phe(e,t,n,i){const r={x:LF(n,"x"),y:LF(n,"y")};switch(e){case"bar":case"tick":{if(i.scale.maxBandSize!==void 0)return i.scale.maxBandSize;const o=IF(t,r,i.view);return Ze(o)?o-1:new St(()=>`${o.signal} - 1`)}case"line":case"trail":case"rule":return i.scale.maxStrokeWidth;case"text":return i.scale.maxFontSize;case"point":case"square":case"circle":{if(i.scale.maxSize)return i.scale.maxSize;const o=IF(t,r,i.view);return Ze(o)?Math.pow(PF*o,2):new St(()=>`pow(${PF} * ${o.signal}, 2)`)}}throw new Error(T0("size",e))}function IF(e,t,n){const i=Cr(e.width)?e.width.step:Qb(n,"width"),r=Cr(e.height)?e.height.step:Qb(n,"height");return t.x||t.y?new St(()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`):Math.min(i,r)}function GL(e,t){nt(e)?ghe(e,t):VL(e,t)}function ghe(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:s}=e;for(const a of B(n)){const u=s[a],l=n[a],c=e.getScaleComponent(a),f=xt(r[a]),d=u[t],h=c.get("type"),p=c.get("padding"),g=c.get("paddingInner"),m=Yb(h,t),y=C6(a,t);if(d!==void 0&&(m?y&&j(y):j(r6(h,t,a))),m&&y===void 0)if(d!==void 0){const b=f.timeUnit,x=f.type;switch(t){case"domainMax":case"domainMin":Ua(u[t])||x==="temporal"||b?l.set(t,{signal:j0(u[t],{type:x,timeUnit:b})},!0):l.set(t,u[t],!0);break;default:l.copyKeyFromObject(t,u)}}else{const b=U(zF,t)?zF[t]({model:e,channel:a,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:g,domain:u.domain,domainMin:u.domainMin,domainMax:u.domainMax,markDef:o,config:i,hasNestedOffsetScale:Z6(r,a),hasSecondaryRangeChannel:!!r[Rr(a)]}):i.scale[t];b!==void 0&&l.set(t,b,!1)}}}const zF={bins:({model:e,fieldOrDatumDef:t})=>q(t)?mhe(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>yhe(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>bhe(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>xhe(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>vhe(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>Ehe(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>{const r=q(e)?e.sort:void 0;return whe(t,r,n,i.scale)},zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:i,scaleType:r,config:o,hasSecondaryRangeChannel:s})=>Ahe(e,t,n,i,r,o.scale,s)};function HL(e){nt(e)?she(e):VL(e,"range")}function VL(e,t){const n=e.component.scales;for(const i of e.children)t==="range"?HL(i):GL(i,t);for(const i of B(n)){let r;for(const o of e.children){const s=o.component.scales[i];if(s){const a=s.getWithExplicit(t);r=ss(r,a,t,"scale",T4((u,l)=>{switch(t){case"range":return u.step&&l.step?u.step-l.step:0}return 0}))}}n[i].setWithExplicit(t,r)}}function mhe(e,t){const n=t.bin;if(He(n)){const i=CA(e,t.field,n);return new St(()=>e.getSignalName(i))}else if(Nt(n)&&za(n)&&n.step!==void 0)return{step:n.step}}function yhe(e,t){if(we([Bn,Mr,Or],e)&&t!=="nominal")return"hcl"}function bhe(e,t,n,i,r,o){if(!(ji(o)?.bin||X(n)||r!=null||i!=null||we([Pt.TIME,Pt.UTC],e)))return dt(t)?!0:void 0}function xhe(e,t,n,i,r,o){if(dt(e)){if(fr(t)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:s,orient:a}=r;if(s==="bar"&&!(q(i)&&(i.bin||i.timeUnit))&&(a==="vertical"&&e==="x"||a==="horizontal"&&e==="y"))return o.continuousBandSize}if(t===Pt.POINT)return n.pointPadding}}function vhe(e,t,n,i,r,o=!1){if(e===void 0){if(dt(t)){const{bandPaddingInner:s,barBandPaddingInner:a,rectBandPaddingInner:u,tickBandPaddingInner:l,bandWithNestedOffsetPaddingInner:c}=r;return o?c:ft(s,n==="bar"?a:n==="tick"?l:u)}else if(Jf(t)&&i===Pt.BAND)return r.offsetBandPaddingInner}}function Ehe(e,t,n,i,r,o=!1){if(e===void 0){if(dt(t)){const{bandPaddingOuter:s,bandWithNestedOffsetPaddingOuter:a}=r;if(o)return a;if(n===Pt.BAND)return ft(s,Q(i)?{signal:`${i.signal}/2`}:i/2)}else if(Jf(t)){if(n===Pt.POINT)return .5;if(n===Pt.BAND)return r.offsetBandPaddingOuter}}}function whe(e,t,n,i){if(n==="x"&&i.xReverse!==void 0)return Bi(e)&&t==="descending"?Q(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(Bi(e)&&t==="descending")return!0}function Ahe(e,t,n,i,r,o,s){if(!!n&&n!=="unaggregated"&&Bi(r)){if(X(n)){const u=n[0],l=n[n.length-1];if(Ze(u)&&u<=0&&Ze(l)&&l>=0)return!0}return!1}if(e==="size"&&t.type==="quantitative"&&!Yu(r))return!0;if(!(q(t)&&t.bin)&&we([...So,...ioe],e)){const{orient:u,type:l}=i;return we(["bar","area","line","trail"],l)&&(u==="horizontal"&&e==="y"||u==="vertical"&&e==="x")?!1:we(["bar","area"],l)&&!s?!0:o?.zero}return!1}function She(e,t,n,i,r=!1){const o=Che(t,n,i,r),{type:s}=e;return Nr(t)?s!==void 0?fae(t,s)?q(n)&&!cae(s,n.type)?(j(dse(s,o)),o):s:(j(fse(t,s,o)),o):o:null}function Che(e,t,n,i){switch(t.type){case"nominal":case"ordinal":{if(Eu(e)||C1(e)==="discrete")return e==="shape"&&t.type==="ordinal"&&j($1(e,"ordinal")),"ordinal";if(S1(e))return"band";if(dt(e)||Jf(e)){if(we(["rect","bar","image","rule","tick"],n.type)||i)return"band"}else if(n.type==="arc"&&e in ww)return"band";const r=n[jn(e)];return Ea(r)||Ku(t)&&t.axis?.tickBand?"band":"point"}case"temporal":return Eu(e)?"time":C1(e)==="discrete"?(j($1(e,"temporal")),"ordinal"):q(t)&&t.timeUnit&&kt(t.timeUnit).utc?"utc":S1(e)?"band":"time";case"quantitative":return Eu(e)?q(t)&&He(t.bin)?"bin-ordinal":"linear":C1(e)==="discrete"?(j($1(e,"quantitative")),"ordinal"):S1(e)?"band":"linear";case"geojson":return}throw new Error(n6(t.type))}function $he(e,{ignoreRange:t}={}){YL(e),IL(e);for(const n of lae)GL(e,n);t||HL(e)}function YL(e){nt(e)?e.component.scales=_he(e):e.component.scales=khe(e)}function _he(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of Aw){const s=xt(t[o]);if(s&&n===F6&&o===Un&&s.type===vl)continue;let a=s&&s.scale;if(s&&a!==null&&a!==!1){a??(a={});const u=Z6(t,o),l=She(a,o,s,i,u);r[o]=new BL(e.scaleName(`${o}`,!0),{value:l,explicit:a.type===l})}}return r}const Fhe=T4((e,t)=>I_(e)-I_(t));function khe(e){var t;const n=e.component.scales={},i={},r=e.component.resolve;for(const o of e.children){YL(o);for(const s of B(o.component.scales))if((t=r.scale)[s]??(t[s]=CL(s,e)),r.scale[s]==="shared"){const a=i[s],u=o.component.scales[s].getWithExplicit("type");a?Zse(a.value,u.value)?i[s]=ss(a,u,"type","scale",Fhe):(r.scale[s]="independent",delete i[s]):i[s]=u}}for(const o of B(i)){const s=e.scaleName(o,!0),a=i[o];n[o]=new BL(s,a);for(const u of e.children){const l=u.component.scales[o];l&&(u.renameScale(l.get("name"),s),l.merged=!0)}}return n}class U1{constructor(){this.nameMap={}}rename(t,n){this.nameMap[t]=n}has(t){return this.nameMap[t]!==void 0}get(t){for(;this.nameMap[t]&&t!==this.nameMap[t];)t=this.nameMap[t];return t}}function nt(e){return e?.type==="unit"}function Zn(e){return e?.type==="facet"}function DA(e){return e?.type==="concat"}function Cl(e){return e?.type==="layer"}class TA{constructor(t,n,i,r,o,s,a){this.type=n,this.parent=i,this.config=o,this.parent=i,this.config=o,this.view=Lt(a),this.name=t.name??r,this.title=Ro(t.title)?{text:t.title}:t.title?Lt(t.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new U1,this.projectionNameMap=i?i.projectionNameMap:new U1,this.signalNameMap=i?i.signalNameMap:new U1,this.data=t.data,this.description=t.description,this.transforms=Cle(t.transform??[]),this.layout=n==="layer"||n==="unit"?{}:kue(t,n,o),this.component={data:{sources:i?i.component.data.sources:[],outputNodes:i?i.component.data.outputNodes:{},outputNodeRefCounts:i?i.component.data.outputNodeRefCounts:{},isFaceted:z0(t)||i?.component.data.isFaceted&&t.data===void 0},layoutSize:new $o,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...s?ce(s):{}},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(){$he(this)}parseProjection(){NL(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){DL(this)}assembleEncodeFromView(t){const{style:n,...i}=t,r={};for(const o of B(i)){const s=i[o];s!==void 0&&(r[o]=Ye(s))}return r}assembleGroupEncodeEntry(t){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!t&&(this.description&&(n.description=Ye(this.description)),this.type==="unit"||this.type==="layer")?{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...n}:Ue(n)?void 0:n}assembleLayout(){if(!this.layout)return;const{spacing:t,...n}=this.layout,{component:i,config:r}=this,o=Xfe(i.layoutHeaders,r);return{padding:t,...this.assembleDefaultLayout(),...n,...o?{titleBand:o}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:t}=this.component;let n=[];for(const i of di)t[i].title&&n.push(qfe(this,i));for(const i of EA)n=n.concat(Wfe(this,i));return n}assembleAxes(){return Dfe(this.component.axes,this.config)}assembleLegends(){return ML(this)}assembleProjections(){return bde(this)}assembleTitle(){const{encoding:t,...n}=this.title??{},i={...VN(this.config.title).nonMarkTitleProperties,...n,...t?{encode:{update:t}}:{}};if(i.text)return we(["unit","layer"],this.type)?we(["middle",void 0],i.anchor)&&(i.frame??(i.frame="group")):i.anchor??(i.anchor="start"),Ue(i)?void 0:i}assembleGroup(t=[]){const n={};t=t.concat(this.assembleSignals()),t.length>0&&(n.signals=t);const i=this.assembleLayout();i&&(n.layout=i),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const r=!this.parent||Zn(this.parent)?zL(this):[];r.length>0&&(n.scales=r);const o=this.assembleAxes();o.length>0&&(n.axes=o);const s=this.assembleLegends();return s.length>0&&(n.legends=s),n}getName(t){return Qe((this.name?`${this.name}_`:"")+t)}getDataName(t){return this.getName(it[t].toLowerCase())}requestDataName(t){const n=this.getDataName(t),i=this.component.data.outputNodeRefCounts;return i[n]=(i[n]||0)+1,n}getSizeSignalRef(t){if(Zn(this.parent)){const n=AL(t),i=F0(n),r=this.component.scales[i];if(r&&!r.merged){const o=r.get("type"),s=r.get("range");if(Dt(o)&&Ba(s)){const a=r.get("name"),u=rm(this,i),l=kA(u);if(l){const c=H({aggregate:"distinct",field:l},{expr:"datum"});return{signal:wL(a,r,c)}}else return j($w(i)),null}}}return{signal:this.signalNameMap.get(this.getName(t))}}lookupDataSource(t){const n=this.component.data.outputNodes[t];return n?n.getSource():t}getSignalName(t){return this.signalNameMap.get(t)}renameSignal(t,n){this.signalNameMap.rename(t,n)}renameScale(t,n){this.scaleNameMap.rename(t,n)}renameProjection(t,n){this.projectionNameMap.rename(t,n)}scaleName(t,n){if(n)return this.getName(t);if(zN(t)&&Nr(t)&&this.component.scales[t]||this.scaleNameMap.has(this.getName(t)))return this.scaleNameMap.get(this.getName(t))}projectionName(t){if(t)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(t){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[t];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(t):void 0}getScaleType(t){const n=this.getScaleComponent(t);return n?n.get("type"):void 0}getSelectionComponent(t,n){let i=this.component.selection[t];if(!i&&this.parent&&(i=this.parent.getSelectionComponent(t,n)),!i)throw new Error(_oe(n));return i}hasAxisOrientSignalRef(){return this.component.axes.x?.some(t=>t.hasOrientSignalRef())||this.component.axes.y?.some(t=>t.hasOrientSignalRef())}}class XL extends TA{vgField(t,n={}){const i=this.fieldDef(t);if(i)return H(i,n)}reduceFieldDef(t,n){return rue(this.getMapping(),(i,r,o)=>{const s=ji(r);return s?t(i,s,o):i},n)}forEachFieldDef(t,n){eA(this.getMapping(),(i,r)=>{const o=ji(i);o&&t(o,r)},n)}}class om extends ze{clone(){return new om(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"value",i[1]??"density"];const r=this.transform.resolve??"shared";this.transform.resolve=r}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Ae(this.transform)}`}assemble(){const{density:t,...n}=this.transform,i={type:"kde",field:t,...n};return i.resolve=this.transform.resolve,i}}class sm extends ze{clone(){return new sm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${Ae(this.transform)}`}assemble(){const{extent:t,param:n}=this.transform;return{type:"extent",field:t,signal:n}}}class am extends ze{clone(){return new am(this.parent,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const{flatten:i,as:r=[]}=this.transform;this.transform.as=i.map((o,s)=>r[s]??o)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ae(this.transform)}`}assemble(){const{flatten:t,as:n}=this.transform;return{type:"flatten",fields:t,as:n}}}class um extends ze{clone(){return new um(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"key",i[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Ae(this.transform)}`}assemble(){const{fold:t,as:n}=this.transform;return{type:"fold",fields:t,as:n}}}class Su extends ze{clone(){return new Su(null,ce(this.fields),this.geojson,this.signal)}static parseAll(t,n){if(n.component.projection&&!n.component.projection.isFit)return t;let i=0;for(const r of[[Ki,Xi],[xi,Ji]]){const o=r.map(s=>{const a=xt(n.encoding[s]);return q(a)?a.field:Lr(a)?{expr:`${a.datum}`}:Ui(a)?{expr:`${a.value}`}:void 0});(o[0]||o[1])&&(t=new Su(t,o,null,n.getName(`geojson_${i++}`)))}if(n.channelHasField(Un)){const r=n.typedFieldDef(Un);r.type===vl&&(t=new Su(t,null,r.field,n.getName(`geojson_${i++}`)))}return t}constructor(t,n,i,r){super(t),this.fields=n,this.geojson=i,this.signal=r}dependentFields(){const t=(this.fields??[]).filter(de);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ae(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class pf extends ze{clone(){return new pf(null,this.projection,ce(this.fields),ce(this.as))}constructor(t,n,i,r){super(t),this.projection=n,this.fields=i,this.as=r}static parseAll(t,n){if(!n.projectionName())return t;for(const i of[[Ki,Xi],[xi,Ji]]){const r=i.map(s=>{const a=xt(n.encoding[s]);return q(a)?a.field:Lr(a)?{expr:`${a.datum}`}:Ui(a)?{expr:`${a.value}`}:void 0}),o=i[0]===xi?"2":"";(r[0]||r[1])&&(t=new pf(t,n.projectionName(),r,[n.getName(`x${o}`),n.getName(`y${o}`)]))}return t}dependentFields(){return new Set(this.fields.filter(de))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ae(this.fields)} ${Ae(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class na extends ze{clone(){return new na(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(t){const{start:n=0,stop:i,step:r}=t;return{signal:`sequence(${[n,i,...r?[r]:[]].join(",")})`}}static makeFromTransform(t,n){return new na(t,n)}static makeFromEncoding(t,n){const i=n.encoding,r=i.x,o=i.y;if(q(r)&&q(o)){const s=r.impute?r:o.impute?o:void 0;if(s===void 0)return;const a=r.impute?o:o.impute?r:void 0,{method:u,value:l,frame:c,keyvals:f}=s.impute,d=n4(n.mark,i);return new na(t,{impute:s.field,key:a.field,...u?{method:u}:{},...l!==void 0?{value:l}:{},...c?{frame:c}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${Ae(this.transform)}`}assemble(){const{impute:t,key:n,keyvals:i,method:r,groupby:o,value:s,frame:a=[null,null]}=this.transform,u={type:"impute",field:t,key:n,...i?{keyvals:sle(i)?this.processSequence(i):i}:{},method:"value",...o?{groupby:o}:{},value:!r||r==="value"?s:null};if(r&&r!=="value"){const l={type:"window",as:[`imputed_${t}_value`],ops:[r],fields:[t],frame:a,ignorePeers:!1,...o?{groupby:o}:{}},c={type:"formula",expr:`datum.${t} === null ? datum.imputed_${t}_value : datum.${t}`,as:t};return[u,l,c]}else return[u]}}class lm extends ze{clone(){return new lm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??n.on,i[1]??n.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Ae(this.transform)}`}assemble(){const{loess:t,on:n,...i}=this.transform;return{type:"loess",x:n,y:t,...i}}}class gf extends ze{clone(){return new gf(null,ce(this.transform),this.secondary)}constructor(t,n,i){super(t),this.transform=n,this.secondary=i}static make(t,n,i,r){const o=n.component.data.sources,{from:s}=i;let a=null;if(ale(s)){let u=QL(s.data,o);u||(u=new _a(s.data),o.push(u));const l=n.getName(`lookup_${r}`);a=new Nn(u,l,it.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=a}else if(ule(s)){const u=s.param;i={as:u,...i};let l;try{l=n.getSelectionComponent(Qe(u),u)}catch{throw new Error(Toe(u))}if(a=l.materialized,!a)throw new Error(Moe(u))}return new gf(t,i,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?ct(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Ae({transform:this.transform,secondary:this.secondary})}`}assemble(){let t;if(this.transform.from.fields)t={values:this.transform.from.fields,...this.transform.as?{as:ct(this.transform.as)}:{}};else{let n=this.transform.as;de(n)||(j(qoe),n="_lookup"),t={as:[n]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...t,...this.transform.default?{default:this.transform.default}:{}}}}class cm extends ze{clone(){return new cm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"prob",i[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Ae(this.transform)}`}assemble(){const{quantile:t,...n}=this.transform;return{type:"quantile",field:t,...n}}}class fm extends ze{clone(){return new fm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??n.on,i[1]??n.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Ae(this.transform)}`}assemble(){const{regression:t,on:n,...i}=this.transform;return{type:"regression",x:n,y:t,...i}}}class dm extends ze{clone(){return new dm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr((this.transform.groupby??[]).concat(t),n=>n)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${Ae(this.transform)}`}assemble(){const{pivot:t,value:n,groupby:i,limit:r,op:o}=this.transform;return{type:"pivot",field:t,value:n,...r!==void 0?{limit:r}:{},...o!==void 0?{op:o}:{},...i!==void 0?{groupby:i}:{}}}}class hm extends ze{clone(){return new hm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ae(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function KL(e){let t=0;function n(i,r){if(i instanceof _a&&!i.isGenerator&&!Qu(i.data)&&(e.push(r),r={name:null,source:r.name,transform:[]}),i instanceof tn&&(i.parent instanceof _a&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof Al){r.name||(r.name=`data_${t++}`),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,e.push(...i.assemble());return}switch((i instanceof cd||i instanceof fd||i instanceof il||i instanceof wl||i instanceof el||i instanceof pf||i instanceof Ni||i instanceof gf||i instanceof Sl||i instanceof Ha||i instanceof um||i instanceof am||i instanceof om||i instanceof lm||i instanceof cm||i instanceof fm||i instanceof as||i instanceof hm||i instanceof dm||i instanceof sm)&&r.transform.push(i.assemble()),(i instanceof mr||i instanceof pr||i instanceof na||i instanceof uo||i instanceof Su)&&r.transform.push(...i.assemble()),i instanceof Nn&&(r.source&&r.transform.length===0?i.setSource(r.source):i.parent instanceof Nn?i.setSource(r.name):(r.name||(r.name=`data_${t++}`),i.setSource(r.name),i.numChildren()===1&&(e.push(r),r={name:null,source:r.name,transform:[]}))),i.numChildren()){case 0:i instanceof Nn&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name=`data_${t++}`);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source;for(const s of i.children)n(s,{name:null,source:o,transform:[]});break}}}return n}function Dhe(e){const t=[],n=KL(t);for(const i of e.children)n(i,{source:e.name,name:null,transform:[]});return t}function The(e,t){const n=[],i=KL(n);let r=0;for(const s of e.sources){s.hasName()||(s.dataName=`source_${r++}`);const a=s.assemble();i(s,a)}for(const s of n)s.transform.length===0&&delete s.transform;let o=0;for(const[s,a]of n.entries())(a.transform??[]).length===0&&!a.source&&n.splice(o++,0,n.splice(s,1)[0]);for(const s of n)for(const a of s.transform??[])a.type==="lookup"&&(a.from=e.outputNodes[a.from].getSource());for(const s of n)s.name in t&&(s.values=t[s.name]);return n}function Mhe(e){return e==="top"||e==="left"||Q(e)?"header":"footer"}function Ohe(e){for(const t of di)Rhe(e,t);BF(e,"x"),BF(e,"y")}function Rhe(e,t){const{facet:n,config:i,child:r,component:o}=e;if(e.channelHasField(t)){const s=n[t],a=nl("title",null,i,t);let u=wu(s,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});r.component.layoutHeaders[t].title&&(u=X(u)?u.join(", "):u,u+=` / ${r.component.layoutHeaders[t].title}`,r.component.layoutHeaders[t].title=null);const l=nl("labelOrient",s.header,i,t),c=s.header!==null?ft(s.header?.labels,i.header.labels,!0):!1,f=we(["bottom","right"],l)?"footer":"header";o.layoutHeaders[t]={title:s.header!==null?u:null,facetFieldDef:s,[f]:t==="facet"?[]:[JL(e,t,c)]}}}function JL(e,t,n){const i=t==="row"?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function BF(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:i,resolve:r}=e.component;if(r.axis[t]=SA(r,t),r.axis[t]==="shared"){const o=t==="x"?"column":"row",s=i[o];for(const a of n.component.axes[t]){const u=Mhe(a.get("orient"));s[u]??(s[u]=[JL(e,o,!1)]);const l=Ec(a,"main",e.config,{header:!0});l&&s[u][0].axes.push(l),a.mainExtracted=!0}}}}function Nhe(e){MA(e),Xp(e,"width"),Xp(e,"height")}function Lhe(e){MA(e);const t=e.layout.columns===1?"width":"childWidth",n=e.layout.columns===void 0?"height":"childHeight";Xp(e,t),Xp(e,n)}function MA(e){for(const t of e.children)t.parseLayoutSize()}function Xp(e,t){const n=AL(t),i=F0(n),r=e.component.resolve,o=e.component.layoutSize;let s;for(const a of e.children){const u=a.component.layoutSize.getWithExplicit(n),l=r.scale[i]??CL(i,e);if(l==="independent"&&u.value==="step"){s=void 0;break}if(s){if(l==="independent"&&s.value!==u.value){s=void 0;break}s=ss(s,u,n,"")}else s=u}if(s){for(const a of e.children)e.renameSignal(a.getName(n),e.getName(t)),a.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,s)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function Phe(e){const{size:t,component:n}=e;for(const i of So){const r=jn(i);if(t[r]){const o=t[r];n.layoutSize.set(r,Cr(o)?"step":o,!0)}else{const o=Ihe(e,r);n.layoutSize.set(r,o,!1)}}}function Ihe(e,t){const n=t==="width"?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const o=r.get("type"),s=r.get("range");if(Dt(o)){const a=Wp(i.view,t);return Ba(s)||Cr(a)?"step":a}else return Jb(i.view,t)}else{if(e.hasProjection||e.mark==="arc")return Jb(i.view,t);{const o=Wp(i.view,t);return Cr(o)?o.step:o}}}function yx(e,t,n){return H(t,{suffix:`by_${H(e)}`,...n})}class Ic extends XL{constructor(t,n,i,r){super(t,"facet",n,i,r,t.resolve),this.child=PA(t.spec,this,this.getName("child"),void 0,r),this.children=[this.child],this.facet=this.initFacet(t.facet)}initFacet(t){if(!td(t))return{facet:this.initFacetFieldDef(t,"facet")};const n=B(t),i={};for(const r of n){if(![ro,oo].includes(r)){j(T0(r,"facet"));break}const o=t[r];if(o.field===void 0){j(Hb(o,r));break}i[r]=this.initFacetFieldDef(o,r)}return i}initFacetFieldDef(t,n){const i=Zw(t,n);return i.header?i.header=Lt(i.header):i.header===null&&(i.header=null),i}channelHasField(t){return U(this.facet,t)}fieldDef(t){return this.facet[t]}parseData(){this.component.data=pm(this),this.child.parseData()}parseLayoutSize(){MA(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),Ohe(this)}assembleSelectionTopLevelSignals(t){return this.child.assembleSelectionTopLevelSignals(t)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(t){return this.child.assembleSelectionData(t)}getHeaderLayoutMixins(){const t={};for(const n of di)for(const i of wA){const r=this.component.layoutHeaders[n],o=r[i],{facetFieldDef:s}=r;if(s){const a=nl("titleOrient",s.header,this.config,n);if(["right","bottom"].includes(a)){const u=nm(n,a);t.titleAnchor??(t.titleAnchor={}),t.titleAnchor[u]="end"}}if(o?.[0]){const a=n==="row"?"height":"width",u=i==="header"?"headerBand":"footerBand";n!=="facet"&&!this.child.component.layoutSize.get(a)&&(t[u]??(t[u]={}),t[u][n]=.5),r.title&&(t.offset??(t.offset={}),t.offset[n==="row"?"rowTitle":"columnTitle"]=10)}}return t}assembleDefaultLayout(){const{column:t,row:n}=this.facet,i=t?this.columnDistinctSignal():n?1:void 0;let r="all";return(!n&&this.component.resolve.scale.x==="independent"||!t&&this.component.resolve.scale.y==="independent")&&(r="none"),{...this.getHeaderLayoutMixins(),...i?{columns:i}:{},bounds:"full",align:r}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Ic))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(t){return this.parent&&this.parent instanceof Ic?{...this.channelHasField("column")?{encode:{update:{columns:{field:H(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(t)}:super.assembleGroup(t)}getCardinalityAggregateForChild(){const t=[],n=[],i=[];if(this.child instanceof Ic){if(this.child.channelHasField("column")){const r=H(this.child.facet.column);t.push(r),n.push("distinct"),i.push(`distinct_${r}`)}}else for(const r of So){const o=this.child.component.scales[r];if(o&&!o.merged){const s=o.get("type"),a=o.get("range");if(Dt(s)&&Ba(a)){const u=rm(this.child,r),l=kA(u);l?(t.push(l),n.push("distinct"),i.push(`distinct_${l}`)):j($w(r))}}}return{fields:t,ops:n,as:i}}assembleFacet(){const{name:t,data:n}=this.component.data.facetRoot,{row:i,column:r}=this.facet,{fields:o,ops:s,as:a}=this.getCardinalityAggregateForChild(),u=[];for(const c of di){const f=this.facet[c];if(f){u.push(H(f));const{bin:d,sort:h}=f;if(He(d)&&u.push(H(f,{binSuffix:"end"})),so(h)){const{field:p,op:g=I0}=h,m=yx(f,h);i&&r?(o.push(m),s.push("max"),a.push(m)):(o.push(p),s.push(g),a.push(m))}else if(X(h)){const p=tl(f,c);o.push(p),s.push("max"),a.push(p)}}}const l=!!i&&!!r;return{name:t,data:n,groupby:u,...l||o.length>0?{aggregate:{...l?{cross:l}:{},...o.length?{fields:o,ops:s,as:a}:{}}}:{}}}facetSortFields(t){const{facet:n}=this,i=n[t];return i?so(i.sort)?[yx(i,i.sort,{expr:"datum"})]:X(i.sort)?[tl(i,t,{expr:"datum"})]:[H(i,{expr:"datum"})]:[]}facetSortOrder(t){const{facet:n}=this,i=n[t];if(i){const{sort:r}=i;return[(so(r)?r.order:!X(r)&&r)||"ascending"]}return[]}assembleLabelTitle(){const{facet:t,config:n}=this;if(t.facet)return cx(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const r of EA)if(t[r]){const o=nl("labelOrient",t[r]?.header,n,r);if(i[r].includes(o))return cx(t[r],r,n)}}assembleMarks(){const{child:t}=this,n=this.component.data.facetRoot,i=Dhe(n),r=t.assembleGroupEncodeEntry(!1),o=this.assembleLabelTitle()||t.assembleTitle(),s=t.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...o?{title:o}:{},...s?{style:s}:{},from:{facet:this.assembleFacet()},sort:{field:di.map(u=>this.facetSortFields(u)).flat(),order:di.map(u=>this.facetSortOrder(u)).flat()},...i.length>0?{data:i}:{},...r?{encode:{update:r}}:{},...t.assembleGroup(Wle(this,[]))}]}getMapping(){return this.facet}}function zhe(e,t){const{row:n,column:i}=t;if(n&&i){let r=null;for(const o of[n,i])if(so(o.sort)){const{field:s,op:a=I0}=o.sort;e=r=new Ha(e,{joinaggregate:[{op:a,field:s,as:yx(o,o.sort,{forAs:!0})}],groupby:[H(o)]})}return r}return null}function QL(e,t){for(const n of t){const i=n.data;if(e.name&&n.hasName()&&e.name!==n.dataName)continue;const r=e.format?.mesh,o=i.format?.feature;if(r&&o)continue;const s=e.format?.feature;if((s||o)&&s!==o)continue;const a=i.format?.mesh;if(!((r||a)&&r!==a)){if(ff(e)&&ff(i)){if(Xn(e.values,i.values))return n}else if(Qu(e)&&Qu(i)){if(e.url===i.url)return n}else if(M4(e)&&e.name===n.dataName)return n}}return null}function Bhe(e,t){if(e.data||!e.parent){if(e.data===null){const i=new _a({values:[]});return t.push(i),i}const n=QL(e.data,t);if(n)return Xo(e.data)||(n.data.format=_N({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const i=new _a(e.data);return t.push(i),i}}else return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}function Uhe(e,t,n){let i=0;for(const r of t.transforms){let o,s;if(ble(r))s=e=new el(e,r),o="derived";else if(fA(r)){const a=Tde(r);s=e=tn.makeWithAncestors(e,{},a,n)??e,e=new wl(e,t,r.filter)}else if(_4(r))s=e=mr.makeFromTransform(e,r,t),o="number";else if(vle(r))o="date",n.getWithExplicit(r.field).value===void 0&&(e=new tn(e,{[r.field]:o}),n.set(r.field,o,!1)),s=e=pr.makeFromTransform(e,r);else if(Ele(r))s=e=Ni.makeFromTransform(e,r),o="number",yA(t)&&(e=new as(e));else if($4(r))s=e=gf.make(e,t,r,i++),o="derived";else if(gle(r))s=e=new Sl(e,r),o="number";else if(mle(r))s=e=new Ha(e,r),o="number";else if(wle(r))s=e=uo.makeFromTransform(e,r),o="derived";else if(Ale(r))s=e=new um(e,r),o="derived";else if(Sle(r))s=e=new sm(e,r),o="derived";else if(yle(r))s=e=new am(e,r),o="derived";else if(lle(r))s=e=new dm(e,r),o="derived";else if(ple(r))e=new hm(e,r);else if(xle(r))s=e=na.makeFromTransform(e,r),o="derived";else if(cle(r))s=e=new om(e,r),o="derived";else if(fle(r))s=e=new cm(e,r),o="derived";else if(dle(r))s=e=new fm(e,r),o="derived";else if(hle(r))s=e=new lm(e,r),o="derived";else{j(joe(r));continue}if(s&&o!==void 0)for(const a of s.producedFields()??[])n.set(a,o,!1)}return e}function pm(e){let t=Bhe(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:i}=e.component.data,r=e.data,s=!(r&&(Xo(r)||Qu(r)||ff(r)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Lle;Xo(r)?(O4(r)?t=new fd(t,r.sequence):dA(r)&&(t=new cd(t,r.graticule)),s.parseNothing=!0):r?.format?.parse===null&&(s.parseNothing=!0),t=tn.makeExplicit(t,e,s)??t,t=new as(t);const a=e.parent&&Cl(e.parent);(nt(e)||Zn(e))&&a&&(t=mr.makeFromEncoding(t,e)??t),e.transforms.length>0&&(t=Uhe(t,e,s));const u=Ode(e),l=Mde(e);t=tn.makeWithAncestors(t,{},{...u,...l},s)??t,nt(e)&&(t=Su.parseAll(t,e),t=pf.parseAll(t,e)),(nt(e)||Zn(e))&&(a||(t=mr.makeFromEncoding(t,e)??t),t=pr.makeFromEncoding(t,e)??t,t=el.parseAllForSortIndex(t,e));const c=t=Wd(it.Raw,e,t);if(nt(e)){const m=Ni.makeFromEncoding(t,e);m&&(t=m,yA(e)&&(t=new as(t))),t=na.makeFromEncoding(t,e)??t,t=uo.makeFromEncoding(t,e)??t}let f,d;if(nt(e)){const{markDef:m,mark:y,config:b}=e,x=Be("invalid",m,b),{marks:v,scales:w}=d=N4({invalid:x,isPath:vs(y)});v!==w&&w==="include-invalid-values"&&(f=t=Wd(it.PreFilterInvalid,e,t)),v==="exclude-invalid-values"&&(t=il.make(t,e,d)??t)}const h=t=Wd(it.Main,e,t);let p;if(nt(e)&&d){const{marks:m,scales:y}=d;m==="include-invalid-values"&&y==="exclude-invalid-values"&&(t=il.make(t,e,d)??t,p=t=Wd(it.PostFilterInvalid,e,t))}nt(e)&&Ffe(e,h);let g=null;if(Zn(e)){const m=e.getName("facet");t=zhe(t,e.facet)??t,g=new Al(t,e,m,h.getSource()),n[m]=g}return{...e.component.data,outputNodes:n,outputNodeRefCounts:i,raw:c,main:h,facetRoot:g,ancestorParse:s,preFilterInvalid:f,postFilterInvalid:p}}function Wd(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),s=new Nn(n,o,e,r);return i[o]=s,s}class jhe extends TA{constructor(t,n,i,r){super(t,"concat",n,i,r,t.resolve),(t.resolve?.axis?.x==="shared"||t.resolve?.axis?.y==="shared")&&j(zoe),this.children=this.getChildren(t).map((o,s)=>PA(o,this,this.getName(`concat_${s}`),void 0,r))}parseData(){this.component.data=pm(this);for(const t of this.children)t.parseData()}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){for(const t of this.children)t.parseAxesAndHeaders()}getChildren(t){return G0(t)?t.vconcat:lA(t)?t.hconcat:t.concat}parseLayoutSize(){Lhe(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,i)=>i.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.forEach(t=>t.assembleSignals()),[]}assembleLayoutSignals(){const t=AA(this);for(const n of this.children)t.push(...n.assembleLayoutSignals());return t}assembleSelectionData(t){return this.children.reduce((n,i)=>i.assembleSelectionData(n),t)}assembleMarks(){return this.children.map(t=>{const n=t.assembleTitle(),i=t.assembleGroupStyle(),r=t.assembleGroupEncodeEntry(!1);return{type:"group",name:t.getName("group"),...n?{title:n}:{},...i?{style:i}:{},...r?{encode:{update:r}}:{},...t.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){const t=this.layout.columns;return{...t!=null?{columns:t}:{},bounds:"full",align:"each"}}}function qhe(e){return e===!1||e===null}const Whe={disable:1,gridScale:1,scale:1,...K6,labelExpr:1,encode:1},ZL=B(Whe);class OA extends $o{constructor(t={},n={},i=!1){super(),this.explicit=t,this.implicit=n,this.mainExtracted=i}clone(){return new OA(ce(this.explicit),ce(this.implicit),this.mainExtracted)}hasAxisPart(t){return t==="axis"?!0:t==="grid"||t==="title"?!!this.get(t):!qhe(this.get(t))}hasOrientSignalRef(){return Q(this.explicit.orient)}}function Ghe(e,t,n){const{encoding:i,config:r}=e,o=xt(i[t])??xt(i[Rr(t)]),s=e.axis(t)||{},{format:a,formatType:u}=s;if(wa(u))return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:u,config:r}),...n};if(a===void 0&&u===void 0&&r.customFormatTypes){if(Xu(o)==="quantitative"){if(Ku(o)&&o.stack==="normalize"&&r.normalizedNumberFormatType)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r}),...n};if(r.numberFormatType)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r}),...n}}if(Xu(o)==="temporal"&&r.timeFormatType&&q(o)&&!o.timeUnit)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r}),...n}}return n}function Hhe(e){return So.reduce((t,n)=>(e.component.scales[n]&&(t[n]=[Zhe(n,e)]),t),{})}const Vhe={bottom:"top",top:"bottom",left:"right",right:"left"};function Yhe(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const r of e.children){r.parseAxesAndHeaders();for(const o of B(r.component.axes))n.axis[o]=SA(e.component.resolve,o),n.axis[o]==="shared"&&(t[o]=Xhe(t[o],r.component.axes[o]),t[o]||(n.axis[o]="independent",delete t[o]))}for(const r of So){for(const o of e.children)if(o.component.axes[r]){if(n.axis[r]==="independent"){t[r]=(t[r]??[]).concat(o.component.axes[r]);for(const s of o.component.axes[r]){const{value:a,explicit:u}=s.getWithExplicit("orient");if(!Q(a)){if(i[a]>0&&!u){const l=Vhe[a];i[a]>i[l]&&s.set("orient",l,!1)}i[a]++}}}delete o.component.axes[r]}if(n.axis[r]==="independent"&&t[r]&&t[r].length>1)for(const[o,s]of(t[r]||[]).entries())o>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}}function Xhe(e,t){if(e){if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const r=e[i],o=t[i];if(!!r!=!!o)return;if(r&&o){const s=r.getWithExplicit("orient"),a=o.getWithExplicit("orient");if(s.explicit&&a.explicit&&s.value!==a.value)return;e[i]=Khe(r,o)}}}else return t.map(n=>n.clone());return e}function Khe(e,t){for(const n of ZL){const i=ss(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(r,o)=>{switch(n){case"title":return e6(r,o);case"gridScale":return{explicit:r.explicit,value:ft(r.value,o.value)}}return V0(r,o,n,"axis")});e.setWithExplicit(n,i)}return e}function Jhe(e,t,n,i,r){if(t==="disable")return n!==void 0;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Q(n.labelAngle)?n.labelAngle:lf(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===bL(i,r))return!0}return e===n[t]}const Qhe=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Zhe(e,t){let n=t.axis(e);const i=new OA,r=xt(t.encoding[e]),{mark:o,config:s}=t,a=n?.orient||s[e==="x"?"axisX":"axisY"]?.orient||s.axis?.orient||Ife(e),u=t.getScaleComponent(e).get("type"),l=Tfe(e,u,a,t.config),c=n!==void 0?!n:ux("disable",s.style,n?.style,l).configValue;if(i.set("disable",c,n!==void 0),c)return i;n=n||{};const f=Nfe(r,n,e,s.style,l),d=L6(n.formatType,r,u),h=N6(r,r.type,n.format,n.formatType,s,!0),p={fieldOrDatumDef:r,axis:n,channel:e,model:t,scaleType:u,orient:a,labelAngle:f,format:h,formatType:d,mark:o,config:s};for(const y of ZL){const b=y in CF?CF[y](p):G_(y)?n[y]:void 0,x=b!==void 0,v=Jhe(b,y,n,t,e);if(x&&v)i.set(y,b,v);else{const{configValue:w=void 0,configFrom:A=void 0}=G_(y)&&y!=="values"?ux(y,s.style,n.style,l):{},E=w!==void 0;x&&!E?i.set(y,b,v):(A!=="vgAxisConfig"||Qhe.has(y)&&E||od(w)||Q(w))&&i.set(y,w,!1)}}const g=n.encoding??{},m=X6.reduce((y,b)=>{if(!i.hasAxisPart(b))return y;const x=SL(g[b]??{},t),v=b==="labels"?Ghe(t,e,x):x;return v!==void 0&&!Ue(v)&&(y[b]={update:v}),y},{});return Ue(m)||i.set("encode",m,!!n.encoding||n.labelAngle!==void 0),i}function epe({encoding:e,size:t}){for(const n of So){const i=jn(n);Cr(t[i])&&Wo(e[n])&&(delete t[i],j(o6(i)))}return t}const tpe={vgMark:"arc",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...go(e,"radius"),...go(e,"theta")})},npe={vgMark:"area",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...Gp("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="horizontal"}),...Gp("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="vertical"}),...mA(e)})},ipe={vgMark:"rect",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y")})},rpe={vgMark:"shape",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&q(n)&&n.type===vl?{field:H(n,{expr:"datum"})}:{}}]}},ope={vgMark:"image",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y"),...pA(e,"url")})},spe={vgMark:"line",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e,{vgChannel:"strokeWidth"}),...mA(e)})},ape={vgMark:"trail",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e),...mA(e)})};function RA(e,t){const{config:n}=e;return{...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e),...It("angle",e),...upe(e,n,t)}}function upe(e,t,n){return n?{shape:{value:n}}:It("shape",e)}const lpe={vgMark:"symbol",encodeEntry:e=>RA(e)},cpe={vgMark:"symbol",encodeEntry:e=>RA(e,"circle")},fpe={vgMark:"symbol",encodeEntry:e=>RA(e,"square")},dpe={vgMark:"rect",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y")})},hpe={vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return!e.encoding.x&&!e.encoding.y&&!e.encoding.latitude&&!e.encoding.longitude?{}:{...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Gp("x",e,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"}),...Gp("y",e,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"}),...It("size",e,{vgChannel:"strokeWidth"})}}},ppe={vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...wi(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...pA(e),...It("size",e,{vgChannel:"fontSize"}),...It("angle",e),...pF("align",gpe(e.markDef,n,t)),...pF("baseline",mpe(e.markDef,n,t)),...bn("radius",e,{defaultPos:null}),...bn("theta",e,{defaultPos:null})}}};function gpe(e,t,n){if(Be("align",e,n)===void 0)return"center"}function mpe(e,t,n){if(Be("baseline",e,n)===void 0)return"middle"}const ype={vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r=i==="horizontal"?"x":"y",o=i==="horizontal"?"y":"x",s=i==="horizontal"?"height":"width";return{...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,r),...bn(o,e,{defaultPos:"mid",vgChannel:o==="y"?"yc":"xc"}),[s]:Ye(Be("thickness",n,t))}}},Gd={arc:tpe,area:npe,bar:ipe,circle:cpe,geoshape:rpe,image:ope,line:spe,point:lpe,rect:dpe,rule:hpe,square:fpe,text:ppe,tick:ype,trail:ape};function bpe(e){if(we([L0,R0,gae],e.mark)){const t=n4(e.mark,e.encoding);if(t.length>0)return xpe(e,t)}else if(e.mark===N0){const t=Wb.some(n=>Be(n,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t)return vpe(e)}return NA(e)}const UF="faceted_path_";function xpe(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:UF+e.requestDataName(it.Main),data:e.requestDataName(it.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:NA(e,{fromPrefix:UF})}]}const jF="stack_group_";function vpe(e){const[t]=NA(e,{fromPrefix:jF}),n=e.scaleName(e.stack.fieldChannel),i=(l={})=>e.vgField(e.stack.fieldChannel,l),r=(l,c)=>{const f=[i({prefix:"min",suffix:"start",expr:c}),i({prefix:"max",suffix:"start",expr:c}),i({prefix:"min",suffix:"end",expr:c}),i({prefix:"max",suffix:"end",expr:c})];return`${l}(${f.map(d=>`scale('${n}',${d})`).join(",")})`};let o,s;e.stack.fieldChannel==="x"?(o={...qu(t.encode.update,["y","yc","y2","height",...Wb]),x:{signal:r("min","datum")},x2:{signal:r("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update={...Rn(t.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(o={...qu(t.encode.update,["x","xc","x2","width"]),y:{signal:r("min","datum")},y2:{signal:r("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update={...Rn(t.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const l of Wb){const c=Ar(l,e.markDef,e.config);t.encode.update[l]?(o[l]=t.encode.update[l],delete t.encode.update[l]):c&&(o[l]=Ye(c)),c&&(t.encode.update[l]={value:0})}const a=[];if(e.stack.groupbyChannels?.length>0)for(const l of e.stack.groupbyChannels){const c=e.fieldDef(l),f=H(c);f&&a.push(f),(c?.bin||c?.timeUnit)&&a.push(H(c,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((l,c)=>{if(t.encode.update[c])return{...l,[c]:t.encode.update[c]};{const f=Ar(c,e.markDef,e.config);return f!==void 0?{...l,[c]:Ye(f)}:l}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(it.Main),name:jF+e.requestDataName(it.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:s},marks:[t]}]}]}function Epe(e){const{encoding:t,stack:n,mark:i,markDef:r,config:o}=e,s=t.order;if(!(!X(s)&&Ui(s)&&jb(s.value)||!s&&jb(Be("order",r,o)))){if((X(s)||q(s))&&!n)return JN(s,{expr:"datum"});if(vs(i)){const a=r.orient==="horizontal"?"y":"x",u=t[a];if(q(u))return{field:a}}}}function NA(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,s=ft(i.clip,wpe(e),Ape(e)),a=XN(i),u=r.key,l=Epe(e),c=Spe(e),f=Be("aria",i,o),d=Gd[n].postEncodingTransform?Gd[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:Gd[n].vgMark,...s?{clip:s}:{},...a?{style:a}:{},...u?{key:u.field}:{},...l?{sort:l}:{},...c||{},...f===!1?{aria:f}:{},from:{data:t.fromPrefix+e.requestDataName(it.Main)},encode:{update:Gd[n].encodeEntry(e)},...d?{transform:d}:{}}]}function wpe(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return t?.get("selectionExtent")||n?.get("selectionExtent")?!0:void 0}function Ape(e){const t=e.component.projection;return t&&!t.isFit?!0:void 0}function Spe(e){if(!e.component.selection)return null;const t=B(e.component.selection).length;let n=t,i=e.parent;for(;i&&n===0;)n=B(i.component.selection).length,i=i.parent;return n?{interactive:t>0||e.mark==="geoshape"||!!e.encoding.tooltip||!!e.markDef.tooltip}:null}class e8 extends XL{constructor(t,n,i,r={},o){super(t,"unit",n,i,o,void 0,V_(t)?t.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=l=>(l.from?.data&&(l.from.data=this.lookupDataSource(l.from.data),"time"in this.encoding&&(l.from.data=l.from.data+P4)),l.from?.facet?.data&&(l.from.facet.data=this.lookupDataSource(l.from.facet.data)),l);const s=Sr(t.mark)?{...t.mark}:{type:t.mark},a=s.type;s.filled===void 0&&(s.filled=Que(s,o,{graticule:t.data&&dA(t.data)}));const u=this.encoding=nue(t.encoding||{},a,s.filled,o);this.markDef=A4(s,u,o),this.size=epe({encoding:u,size:V_(t)?{...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}:r}),this.stack=w4(this.markDef,u),this.specifiedScales=this.initScales(a,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=t.projection,this.selection=(t.params??[]).filter(l=>aA(l))}get hasProjection(){const{encoding:t}=this,n=this.mark===F6,i=t&&Yre.some(r=>fe(t[r]));return n||i}scaleDomain(t){const n=this.specifiedScales[t];return n?n.domain:void 0}axis(t){return this.specifiedAxes[t]}legend(t){return this.specifiedLegends[t]}initScales(t,n){return Aw.reduce((i,r)=>{const o=xt(n[r]);return o&&(i[r]=this.initScale(o.scale??{})),i},{})}initScale(t){const{domain:n,range:i}=t,r=Lt(t);return X(n)&&(r.domain=n.map(Vn)),X(i)&&(r.range=i.map(Vn)),r}initAxes(t){return So.reduce((n,i)=>{const r=t[i];if(fe(r)||i===et&&fe(t.x2)||i===Mt&&fe(t.y2)){const o=fe(r)?r.axis:void 0;n[i]=o&&this.initAxis({...o})}return n},{})}initAxis(t){const n=B(t),i={};for(const r of n){const o=t[r];i[r]=od(o)?YN(o):Vn(o)}return i}initLegends(t){return ooe.reduce((n,i)=>{const r=xt(t[i]);if(r&&aoe(i)){const o=r.legend;n[i]=o&&Lt(o)}return n},{})}parseData(){this.component.data=pm(this)}parseLayoutSize(){Phe(this)}parseSelections(){this.component.selection=_fe(this,this.selection)}parseMarkGroup(){this.component.mark=bpe(this)}parseAxesAndHeaders(){this.component.axes=Hhe(this)}assembleSelectionTopLevelSignals(t){return Gle(this,t)}assembleSignals(){return[...gL(this),...qle(this,[])]}assembleSelectionData(t){return Hle(this,t)}assembleLayout(){return null}assembleLayoutSignals(){return AA(this)}assembleMarks(){let t=this.component.mark??[];return(!this.parent||!Cl(this.parent))&&(t=U4(this,t)),t.map(this.correctDataNames)}assembleGroupStyle(){const{style:t}=this.view||{};return t!==void 0?t:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(t){return ea(this.encoding,t)}fieldDef(t){const n=this.encoding[t];return ji(n)}typedFieldDef(t){const n=this.fieldDef(t);return Cn(n)?n:null}}class LA extends TA{constructor(t,n,i,r,o){super(t,"layer",n,i,o,t.resolve,t.view);const s={...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}};this.children=t.layer.map((a,u)=>{if(H0(a))return new LA(a,this,this.getName(`layer_${u}`),s,o);if(Co(a))return new e8(a,this,this.getName(`layer_${u}`),s,o);throw new Error(Cw(a))})}parseData(){this.component.data=pm(this);for(const t of this.children)t.parseData()}parseLayoutSize(){Nhe(this)}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){Yhe(this)}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,i)=>i.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleSignals()),gL(this))}assembleLayoutSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleLayoutSignals()),AA(this))}assembleSelectionData(t){return this.children.reduce((n,i)=>i.assembleSelectionData(n),t)}assembleGroupStyle(){const t=new Set;for(const i of this.children)for(const r of ct(i.assembleGroupStyle()))t.add(r);const n=Array.from(t);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let t=super.assembleTitle();if(t)return t;for(const n of this.children)if(t=n.assembleTitle(),t)return t}assembleLayout(){return null}assembleMarks(){return Vle(this,this.children.flatMap(t=>t.assembleMarks()))}assembleLegends(){return this.children.reduce((t,n)=>t.concat(n.assembleLegends()),ML(this))}}function PA(e,t,n,i,r){if(z0(e))return new Ic(e,t,n,r);if(H0(e))return new LA(e,t,n,i,r);if(Co(e))return new e8(e,t,n,i,r);if($ue(e))return new jhe(e,t,n,r);throw new Error(Cw(e))}function Cpe(e,t={}){t.logger&&kse(t.logger),t.fieldTitle&&H6(t.fieldTitle);try{const n=E4(CN(t.config,e.config)),i=D4(e,n),r=PA(i,null,"",void 0,n);return r.parse(),Xde(r.component.data,r),{spec:_pe(r,$pe(e,i.autosize,n,r),e.datasets,e.usermeta),normalized:i}}finally{t.logger&&Dse(),t.fieldTitle&&Vae()}}function $pe(e,t,n,i){const r=i.component.layoutSize.get("width"),o=i.component.layoutSize.get("height");if(t===void 0?(t={type:"pad"},i.hasAxisOrientSignalRef()&&(t.resize=!0)):de(t)&&(t={type:t}),r&&o&&Ole(t.type)){if(r==="step"&&o==="step")j(T_()),t.type="pad";else if(r==="step"||o==="step"){const s=r==="step"?"width":"height";j(T_(F0(s)));const a=s==="width"?"height":"width";t.type=Rle(a)}}return{...B(t).length===1&&t.type?t.type==="pad"?{}:{autosize:t.type}:{autosize:t},...oF(n,!1),...oF(e,!0)}}function _pe(e,t,n={},i){const r=e.config?Bue(e.config):void 0,o=The(e.component.data,n),s=e.assembleSelectionData(o),a=e.assembleProjections(),u=e.assembleTitle(),l=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let f=e.assembleLayoutSignals();f=f.filter(p=>(p.name==="width"||p.name==="height")&&p.value!==void 0?(t[p.name]=+p.value,!1):!0);const{params:d,...h}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...h,...u?{title:u}:{},...l?{style:l}:{},...c?{encode:{update:c}}:{},data:s,...a.length>0?{projections:a}:{},...e.assembleGroup([...f,...e.assembleSelectionTopLevelSignals([]),...y4(d)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}const Fpe=Fre.version,kpe=Object.freeze(Object.defineProperty({__proto__:null,accessPathDepth:Gu,accessPathWithDatum:gw,accessWithDatumToUnescapedPath:Le,compile:Cpe,contains:we,deepEqual:Xn,deleteNestedProperty:Np,duplicate:ce,entries:is,every:dw,fieldIntersection:pw,flatAccessWithDatum:kN,getFirstDefined:ft,hasIntersection:hw,hasProperty:U,hash:Ae,internalField:MN,isBoolean:uf,isEmpty:Ue,isEqual:Wre,isInternalField:ON,isNullOrFalse:jb,isNumeric:w0,keys:B,logicalExpr:Nc,mergeDeep:_N,never:$N,normalize:D4,normalizeAngle:lf,omit:Rn,pick:qu,prefixGenerator:qb,removePathFromField:bl,replaceAll:ma,replacePathInField:bi,resetIdCounter:Hre,setEqual:FN,some:Wu,stringify:je,titleCase:Yf,unique:cr,uniqueId:TN,vals:qt,varName:Qe,version:Fpe},Symbol.toStringTag,{value:"Module"}));function t8(e){const[t,n]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:n}}var Dpe="2.15.0",Tpe={version:Dpe};const ou="#fff",qF="#888",Mpe={background:"#333",view:{stroke:qF},title:{color:ou,subtitleColor:ou},style:{"guide-label":{fill:ou},"guide-title":{fill:ou}},axis:{domainColor:ou,gridColor:qF,tickColor:ou}},Fs="#4572a7",Ope={background:"#fff",arc:{fill:Fs},area:{fill:Fs},line:{stroke:Fs,strokeWidth:2},path:{stroke:Fs},rect:{fill:Fs},shape:{stroke:Fs},symbol:{fill:Fs,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},ks="#30a2da",j1="#cbcbcb",Rpe="#999",Npe="#333",WF="#f0f0f0",GF="#333",Lpe={arc:{fill:ks},area:{fill:ks},axis:{domainColor:j1,grid:!0,gridColor:j1,gridWidth:1,labelColor:Rpe,labelFontSize:10,titleColor:Npe,tickColor:j1,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:WF,group:{fill:WF},legend:{labelColor:GF,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:GF,titleFontSize:14,titlePadding:10},line:{stroke:ks,strokeWidth:2},path:{stroke:ks,strokeWidth:.5},rect:{fill:ks},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:ks},bar:{binSpacing:2,fill:ks,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},Ds="#000",Ppe={group:{fill:"#e5e5e5"},arc:{fill:Ds},area:{fill:Ds},line:{stroke:Ds},path:{stroke:Ds},rect:{fill:Ds},shape:{stroke:Ds},symbol:{fill:Ds,size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},Ipe=22,zpe="normal",HF="Benton Gothic, sans-serif",VF=11.5,Bpe="normal",Ts="#82c6df",q1="Benton Gothic Bold, sans-serif",YF="normal",XF=13,Xl={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"]},Upe={background:"#ffffff",title:{anchor:"start",color:"#000000",font:q1,fontSize:Ipe,fontWeight:zpe},arc:{fill:Ts},area:{fill:Ts},line:{stroke:Ts,strokeWidth:2},path:{stroke:Ts},rect:{fill:Ts},shape:{stroke:Ts},symbol:{fill:Ts,size:30},axis:{labelFont:HF,labelFontSize:VF,labelFontWeight:Bpe,titleFont:q1,titleFontSize:XF,titleFontWeight:YF},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:HF,labelFontSize:VF,symbolType:"square",titleFont:q1,titleFontSize:XF,titleFontWeight:YF},range:{category:Xl["category-6"],diverging:Xl["fireandice-6"],heatmap:Xl["fire-7"],ordinal:Xl["fire-7"],ramp:Xl["fire-7"]}},Ms="#ab5787",Hd="#979797",jpe={background:"#f9f9f9",arc:{fill:Ms},area:{fill:Ms},line:{stroke:Ms},path:{stroke:Ms},rect:{fill:Ms},shape:{stroke:Ms},symbol:{fill:Ms,size:30},axis:{domainColor:Hd,domainWidth:.5,gridWidth:.2,labelColor:Hd,tickColor:Hd,tickWidth:.2,titleColor:Hd},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},Os="#3e5c69",qpe={background:"#fff",arc:{fill:Os},area:{fill:Os},line:{stroke:Os},path:{stroke:Os},rect:{fill:Os},shape:{stroke:Os},symbol:{fill:Os},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},si="#1696d2",KF="#000000",Wpe="#FFFFFF",Vd="Lato",W1="Lato",Gpe="Lato",Hpe="#DEDDDD",Vpe=18,Kl={"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},Ype={background:Wpe,title:{anchor:"start",fontSize:Vpe,font:Vd},axisX:{domain:!0,domainColor:KF,domainWidth:1,grid:!1,labelFontSize:12,labelFont:W1,labelAngle:0,tickColor:KF,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:Vd},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:Hpe,gridWidth:1,labelFontSize:12,labelFont:W1,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:Vd,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:W1,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:Vd,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:Kl["six-groups-cat-1"],diverging:Kl["diverging-colors"],heatmap:Kl["diverging-colors"],ordinal:Kl["six-groups-seq"],ramp:Kl["shades-blue"]},area:{fill:si},rect:{fill:si},line:{color:si,stroke:si,strokeWidth:5},trail:{color:si,stroke:si,strokeWidth:0,size:1},path:{stroke:si,strokeWidth:.5},point:{filled:!0},text:{font:Gpe,color:si,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:si,stroke:null}},arc:{fill:si},shape:{stroke:si},symbol:{fill:si,size:30}},Rs="#3366CC",JF="#ccc",Yd="Arial, sans-serif",Xpe={arc:{fill:Rs},area:{fill:Rs},path:{stroke:Rs},rect:{fill:Rs},shape:{stroke:Rs},symbol:{stroke:Rs},circle:{fill:Rs},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:Yd,fontSize:12},"guide-title":{font:Yd,fontSize:12},"group-title":{font:Yd,fontSize:12}},title:{font:Yd,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:JF,tickColor:JF,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},IA=e=>e*(1/3+1),QF=IA(9),ZF=IA(10),ek=IA(12),Jl="Segoe UI",tk="wf_standard-font, helvetica, arial, sans-serif",nk="#252423",Ql="#605E5C",ik="transparent",Kpe="#C8C6C4",Ci="#118DFF",Jpe="#12239E",Qpe="#E66C37",Zpe="#6B007B",ege="#E044A7",tge="#744EC2",nge="#D9B300",ige="#D64550",n8=Ci,i8="#DEEFFF",rk=[i8,n8],rge=[i8,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",n8],oge={view:{stroke:ik},background:ik,font:Jl,header:{titleFont:tk,titleFontSize:ek,titleColor:nk,labelFont:Jl,labelFontSize:ZF,labelColor:Ql},axis:{ticks:!1,grid:!1,domain:!1,labelColor:Ql,labelFontSize:QF,titleFont:tk,titleColor:nk,titleFontSize:ek,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:Kpe,gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:Ci},line:{stroke:Ci,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Jl,fontSize:QF,fill:Ql},arc:{fill:Ci},area:{fill:Ci,line:!0,opacity:.6},path:{stroke:Ci},rect:{fill:Ci},point:{fill:Ci,filled:!0,size:75},shape:{stroke:Ci},symbol:{fill:Ci,strokeWidth:1.5,size:50},legend:{titleFont:Jl,titleFontWeight:"bold",titleColor:Ql,labelFont:Jl,labelFontSize:ZF,labelColor:Ql,symbolType:"circle",symbolSize:75},range:{category:[Ci,Jpe,Qpe,Zpe,ege,tge,nge,ige],diverging:rk,heatmap:rk,ordinal:rge}},G1='IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,".sfnstext-regular",sans-serif',sge='IBM Plex Sans Condensed, system-ui, -apple-system, BlinkMacSystemFont, ".SFNSText-Regular", sans-serif',H1=400,Xd={textPrimary:{g90:"#f4f4f4",g100:"#f4f4f4",white:"#161616",g10:"#161616"},textSecondary:{g90:"#c6c6c6",g100:"#c6c6c6",white:"#525252",g10:"#525252"},layerAccent01:{white:"#e0e0e0",g10:"#e0e0e0",g90:"#525252",g100:"#393939"},gridBg:{white:"#ffffff",g10:"#ffffff",g90:"#161616",g100:"#161616"}},age=["#8a3ffc","#33b1ff","#007d79","#ff7eb6","#fa4d56","#fff1f1","#6fdc8c","#4589ff","#d12771","#d2a106","#08bdba","#bae6ff","#ba4e00","#d4bbff"],uge=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"];function gm({theme:e,background:t}){const n=["white","g10"].includes(e)?"light":"dark",i=Xd.gridBg[e],r=Xd.textPrimary[e],o=Xd.textSecondary[e],s=n==="dark"?age:uge,a=n==="dark"?"#d4bbff":"#6929c4";return{background:t,arc:{fill:a},area:{fill:a},path:{stroke:a},rect:{fill:a},shape:{stroke:a},symbol:{stroke:a},circle:{fill:a},view:{fill:i,stroke:i},group:{fill:i},title:{color:r,anchor:"start",dy:-15,fontSize:16,font:G1,fontWeight:600},axis:{labelColor:o,labelFontSize:12,labelFont:sge,labelFontWeight:H1,titleColor:r,titleFontWeight:600,titleFontSize:12,grid:!0,gridColor:Xd.layerAccent01[e],labelAngle:0},axisX:{titlePadding:10},axisY:{titlePadding:2.5},style:{"guide-label":{font:G1,fill:o,fontWeight:H1},"guide-title":{font:G1,fill:o,fontWeight:H1}},range:{category:s,diverging:["#750e13","#a2191f","#da1e28","#fa4d56","#ff8389","#ffb3b8","#ffd7d9","#fff1f1","#e5f6ff","#bae6ff","#82cfff","#33b1ff","#1192e8","#0072c3","#00539a","#003a6d"],heatmap:["#f6f2ff","#e8daff","#d4bbff","#be95ff","#a56eff","#8a3ffc","#6929c4","#491d8b","#31135e","#1c0f30"]}}}const lge=gm({theme:"white",background:"#ffffff"}),cge=gm({theme:"g10",background:"#f4f4f4"}),fge=gm({theme:"g90",background:"#262626"}),dge=gm({theme:"g100",background:"#161616"}),hge=Tpe.version,pge=Object.freeze(Object.defineProperty({__proto__:null,carbong10:cge,carbong100:dge,carbong90:fge,carbonwhite:lge,dark:Mpe,excel:Ope,fivethirtyeight:Lpe,ggplot2:Ppe,googlecharts:Xpe,latimes:Upe,powerbi:oge,quartz:jpe,urbaninstitute:Ype,version:hge,vox:qpe},Symbol.toStringTag,{value:"Module"}));function $l(e,t,n){return e.fields=t||[],e.fname=n,e}function gge(e){return e.length===1?mge(e[0]):yge(e)}const mge=e=>function(t){return t[e]},yge=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function V1(e){throw Error(e)}function bge(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||V1("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&V1("Access path missing closing bracket: "+e),i&&V1("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function xge(e,t,n){const i=bge(e);return e=i.length===1?i[0]:e,$l(gge(i),[e],e)}xge("id");$l(e=>e,[],"identity");$l(()=>0,[],"zero");$l(()=>1,[],"one");$l(()=>!0,[],"true");$l(()=>!1,[],"false");var vge=Array.isArray;function ok(e){return e===Object(e)}function Ege(e){return typeof e=="string"}function wge(e,t,n,i){if(vge(e))return`[${e.map(r=>t(Ege(r)?r:sk(r,n))).join(", ")}]`;if(ok(e)){let r="";const{title:o,image:s,...a}=e;o&&(r+=`<h2>${t(o)}</h2>`),s&&(r+=`<img src="${new URL(t(s),i||location.href).href}">`);const u=Object.keys(a);if(u.length>0){r+="<table>";for(const l of u){let c=a[l];c!==void 0&&(ok(c)&&(c=sk(c,n)),r+=`<tr><td class="key">${t(l)}</td><td class="value">${t(c)}</td></tr>`)}r+="</table>"}return r||"{}"}return t(e)}function Age(e){const t=[];return function(n,i){if(typeof i!="object"||i===null)return i;const r=t.indexOf(this)+1;return t.length=r,t.length>e?"[Object]":t.indexOf(i)>=0?"[Circular]":(t.push(i),i)}}function sk(e,t){return JSON.stringify(e,Age(t))}var Sge=`#vg-tooltip-element {
17
+ `&&++R;else{if(hf(i.charCodeAt(0)))break;e+=i}return t!==""&&De({},Ft,Ut),{type:ud,value:e,octal:o,start:n,end:R}}function ife(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(i,r)=>{if(parseInt(r,16)<=1114111)return"x";De({},ox)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{De({},ox)}try{return new RegExp(e,t)}catch{return null}}function rfe(){var e,t,n,i,r;for(e=J[R],em(e==="/","Regular expression literal must start with a slash"),t=J[R++],n=!1,i=!1;R<sn;)if(e=J[R++],t+=e,e==="\\")e=J[R++],hf(e.charCodeAt(0))&&De({},N1),t+=e;else if(hf(e.charCodeAt(0)))De({},N1);else if(n)e==="]"&&(n=!1);else if(e==="/"){i=!0;break}else e==="["&&(n=!0);return i||De({},N1),r=t.substr(1,t.length-2),{value:r,literal:t}}function ofe(){var e,t,n;for(t="",n="";R<sn&&(e=J[R],!!Vp(e.charCodeAt(0)));)++R,e==="\\"&&R<sn?De({},Ft,Ut):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&De({},ox,n),{value:n,literal:t}}function sfe(){var e,t,n,i;return Ie=null,sL(),e=R,t=rfe(),n=ofe(),i=ife(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:R}}function afe(e){return e.type===Ca||e.type===Es||e.type===Q0||e.type===Z0}function uL(){if(sL(),R>=sn)return{type:ad,start:R,end:R};const e=J.charCodeAt(R);return ld(e)?Zce():e===40||e===41||e===59?L1():e===39||e===34?nfe():e===46?Gr(J.charCodeAt(R+1))?mF():L1():Gr(e)?mF():L1()}function On(){const e=Ie;return R=e.end,Ie=uL(),R=e.end,e}function lL(){const e=R;Ie=uL(),R=e}function ufe(e){const t=new Qi(Tce);return t.elements=e,t}function yF(e,t,n){const i=new Qi(e==="||"||e==="&&"?Lce:Mce);return i.operator=e,i.left=t,i.right=n,i}function lfe(e,t){const n=new Qi(Oce);return n.callee=e,n.arguments=t,n}function cfe(e,t,n){const i=new Qi(Rce);return i.test=e,i.consequent=t,i.alternate=n,i}function xA(e){const t=new Qi(rL);return t.name=e,t}function vc(e){const t=new Qi(Nce);return t.value=e.value,t.raw=J.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function bF(e,t,n){const i=new Qi(Pce);return i.computed=e==="[",i.object=t,i.property=n,i.computed||(n.member=!0),i}function ffe(e){const t=new Qi(Ice);return t.properties=e,t}function xF(e,t,n){const i=new Qi(zce);return i.key=t,i.value=n,i.kind=e,i}function dfe(e,t){const n=new Qi(Bce);return n.operator=e,n.argument=t,n.prefix=!0,n}function De(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(o,s)=>(em(s<i.length,"Message reference must be in range"),i[s]));throw n=new Error(r),n.index=R,n.description=r,n}function tm(e){e.type===ad&&De(e,Gce),e.type===Wa&&De(e,Uce),e.type===ud&&De(e,jce),e.type===Ca&&De(e,qce),e.type===Es&&De(e,Wce),De(e,Ft,e.value)}function an(e){const t=On();(t.type!==Dn||t.value!==e)&&tm(t)}function Xe(e){return Ie.type===Dn&&Ie.value===e}function P1(e){return Ie.type===Es&&Ie.value===e}function hfe(){const e=[];for(R=Ie.start,an("[");!Xe("]");)Xe(",")?(On(),e.push(null)):(e.push($a()),Xe("]")||an(","));return On(),ufe(e)}function vF(){R=Ie.start;const e=On();return e.type===ud||e.type===Wa?(e.octal&&De(e,oL),vc(e)):xA(e.value)}function pfe(){var e,t,n,i;if(R=Ie.start,e=Ie,e.type===Ca)return n=vF(),an(":"),i=$a(),xF("init",n,i);if(e.type===ad||e.type===Dn)tm(e);else return t=vF(),an(":"),i=$a(),xF("init",t,i)}function gfe(){var e=[],t,n,i,r={},o=String;for(R=Ie.start,an("{");!Xe("}");)t=pfe(),t.key.type===rL?n=t.key.name:n=o(t.key.value),i="$"+n,Object.prototype.hasOwnProperty.call(r,i)?De({},Hce):r[i]=!0,e.push(t),Xe("}")||an(",");return an("}"),ffe(e)}function mfe(){an("(");const e=vA();return an(")"),e}const yfe={if:1};function bfe(){var e,t,n;if(Xe("("))return mfe();if(Xe("["))return hfe();if(Xe("{"))return gfe();if(e=Ie.type,R=Ie.start,e===Ca||yfe[Ie.value])n=xA(On().value);else if(e===ud||e===Wa)Ie.octal&&De(Ie,oL),n=vc(On());else{if(e===Es)throw new Error(df);e===Q0?(t=On(),t.value=t.value==="true",n=vc(t)):e===Z0?(t=On(),t.value=null,n=vc(t)):Xe("/")||Xe("/=")?(n=vc(sfe()),lL()):tm(On())}return n}function xfe(){const e=[];if(an("("),!Xe(")"))for(;R<sn&&(e.push($a()),!Xe(")"));)an(",");return an(")"),e}function vfe(){R=Ie.start;const e=On();return afe(e)||tm(e),xA(e.value)}function Efe(){return an("."),vfe()}function wfe(){an("[");const e=vA();return an("]"),e}function Afe(){var e,t,n;for(e=bfe();;)if(Xe("."))n=Efe(),e=bF(".",e,n);else if(Xe("("))t=xfe(),e=lfe(e,t);else if(Xe("["))n=wfe(),e=bF("[",e,n);else break;return e}function EF(){const e=Afe();if(Ie.type===Dn&&(Xe("++")||Xe("--")))throw new Error(df);return e}function Ah(){var e,t;if(Ie.type!==Dn&&Ie.type!==Es)t=EF();else{if(Xe("++")||Xe("--"))throw new Error(df);if(Xe("+")||Xe("-")||Xe("~")||Xe("!"))e=On(),t=Ah(),t=dfe(e.value,t);else{if(P1("delete")||P1("void")||P1("typeof"))throw new Error(df);t=EF()}}return t}function wF(e){let t=0;if(e.type!==Dn&&e.type!==Es)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function Sfe(){var e,t,n,i,r,o,s,a,u,l;if(e=Ie,u=Ah(),i=Ie,r=wF(i),r===0)return u;for(i.prec=r,On(),t=[e,Ie],s=Ah(),o=[u,i,s];(r=wF(Ie))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)s=o.pop(),a=o.pop().value,u=o.pop(),t.pop(),n=yF(a,u,s),o.push(n);i=On(),i.prec=r,o.push(i),t.push(Ie),n=Ah(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=yF(o[l-1].value,o[l-2],n),l-=2;return n}function $a(){var e,t,n;return e=Sfe(),Xe("?")&&(On(),t=$a(),an(":"),n=$a(),e=cfe(e,t,n)),e}function vA(){const e=$a();if(Xe(","))throw new Error(df);return e}function Cfe(e){J=e,R=0,sn=J.length,Ie=null,lL();const t=vA();if(Ie.type!==ad)throw new Error("Unexpect token after expression.");return t}function ax(e){const t=[];return e.type==="Identifier"?[e.name]:e.type==="Literal"?[e.value]:(e.type==="MemberExpression"&&(t.push(...ax(e.object)),t.push(...ax(e.property))),t)}function cL(e){return e.object.type==="MemberExpression"?cL(e.object):e.object.name==="datum"}function fL(e){const t=Cfe(e),n=new Set;return t.visit(i=>{i.type==="MemberExpression"&&cL(i)&&n.add(ax(i).slice(1).join("."))}),n}class wl extends ze{clone(){return new wl(null,this.model,ce(this.filter))}constructor(t,n,i){super(t),this.model=n,this.filter=i,this.expr=Yp(this.model,this.filter,this),this._dependentFields=fL(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function $fe(e,t){const n={},i=e.config.selection;if(!t||!t.length)return n;let r=0;for(const o of t){const s=Qe(o.name),a=o.select,u=de(a)?a:a.type,l=Fe(a)?ce(a):{type:u},c=i[u];for(const h in c)h==="fields"||h==="encodings"||(h==="mark"&&(l.mark={...c.mark,...l.mark}),(l[h]===void 0||l[h]===!0)&&(l[h]=ce(c[h]??l[h])));const f=n[s]={...l,name:s,type:u,init:o.value,bind:o.bind,events:de(l.on)?ds(l.on,"scope"):ct(ce(l.on))};if(gr(f)&&(r++,r>1)){delete n[s];continue}const d=ce(o);for(const h of J0)h.defined(f)&&h.parse&&h.parse(e,f,d)}return r>1&&j(Noe),n}function dL(e,t,n,i="datum"){const r=de(t)?t:t.param,o=Qe(r),s=_e(o+Sa);let a;try{a=e.getSelectionComponent(o,r)}catch{return`!!${o}`}if(a.project.timeUnit){const d=n??e.component.data.raw,h=a.project.timeUnit.clone();d.parent?h.insertAsParentOf(d):d.parent=h}const u=a.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(",l=a.resolve==="global"?")":`, ${_e(a.resolve)})`,c=`${u}${s}, ${i}${l}`,f=`length(data(${s}))`;return t.empty===!1?`${f} && ${c}`:`!${f} || ${c}`}function hL(e,t,n){const i=Qe(t),r=n.encoding;let o=n.field,s;try{s=e.getSelectionComponent(i,t)}catch{return i}if(!r&&!o)o=s.project.items[0].field,s.project.items.length>1&&j(Loe(o));else if(r&&!o){const a=s.project.items.filter(u=>u.channel===r);!a.length||a.length>1?(o=s.project.items[0].field,j(Poe(a,r,n,o))):o=a[0].field}return`${s.name}[${_e(bi(o))}]`}function _fe(e,t){for(const[n,i]of is(e.component.selection??{})){const r=e.getName(`lookup_${n}`);e.component.data.outputNodes[r]=i.materialized=new Nn(new wl(t,e,{param:n}),r,it.Lookup,e.component.data.outputNodeRefCounts)}}function Yp(e,t,n){return Nc(t,i=>de(i)?i:Hse(i)?dL(e,i,n):y6(i))}function Ffe(e,t){if(e)return X(e)&&!Ro(e)?e.map(n=>Qw(n,t)).join(", "):e}function I1(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function Ec(e,t,n,i={header:!1}){const{disable:r,orient:o,scale:s,labelExpr:a,title:u,zindex:l,...c}=e.combine();if(!r){for(const f in c){const d=f,h=Jae[d],p=c[d];if(h&&h!==t&&h!=="both")delete c[d];else if(od(p)){const{condition:g,...m}=p,y=ct(g),b=q_[d];if(b){const{vgProp:x,part:v}=b,w=[...y.map(A=>{const{test:E,...S}=A;return{test:Yp(null,E),...S}}),m];I1(c,v,x,w),delete c[d]}else if(b===null){const x={signal:y.map(v=>{const{test:w,...A}=v;return`${Yp(null,w)} ? ${__(A)} : `}).join("")+__(m)};c[d]=x}}else if(Q(p)){const g=q_[d];if(g){const{vgProp:m,part:y}=g;I1(c,y,m,p),delete c[d]}}we(["labelAlign","labelBaseline"],d)&&c[d]===null&&delete c[d]}if(t==="grid"){if(!c.grid)return;if(c.encode){const{grid:f}=c.encode;c.encode={...f?{grid:f}:{}},Ue(c.encode)&&delete c.encode}return{scale:s,orient:o,...c,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:ft(l,0)}}else{if(!i.header&&e.mainExtracted)return;if(a!==void 0){let d=a;c.encode?.labels?.update&&Q(c.encode.labels.update.text)&&(d=ma(a,"datum.label",c.encode.labels.update.text.signal)),I1(c,"labels","text",{signal:d})}if(c.labelAlign===null&&delete c.labelAlign,c.encode){for(const d of Y6)e.hasAxisPart(d)||delete c.encode[d];Ue(c.encode)&&delete c.encode}const f=Ffe(u,n);return{scale:s,orient:o,grid:!1,...f?{title:f}:{},...c,...n.aria===!1?{aria:!1}:{},zindex:ft(l,0)}}}}function pL(e){const{axes:t}=e.component,n=[];for(const i of So)if(t[i]){for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const o=i==="x"?"height":"width",s=e.getSizeSignalRef(o).signal;o!==s&&n.push({name:o,update:s})}}return n}function kfe(e,t){const{x:n=[],y:i=[]}=e;return[...n.map(r=>Ec(r,"grid",t)),...i.map(r=>Ec(r,"grid",t)),...n.map(r=>Ec(r,"main",t)),...i.map(r=>Ec(r,"main",t))].filter(r=>r)}function AF(e,t,n,i){return Object.assign.apply(null,[{},...e.map(r=>{if(r==="axisOrient"){const o=n==="x"?"bottom":"left",s=t[n==="x"?"axisBottom":"axisLeft"]||{},a=t[n==="x"?"axisTop":"axisRight"]||{},u=new Set([...B(s),...B(a)]),l={};for(const c of u.values())l[c]={signal:`${i.signal} === "${o}" ? ${Mi(s[c])} : ${Mi(a[c])}`};return l}return t[r]})])}function Dfe(e,t,n,i){const r=t==="band"?["axisDiscrete","axisBand"]:t==="point"?["axisDiscrete","axisPoint"]:E6(t)?["axisQuantitative"]:t==="time"||t==="utc"?["axisTemporal"]:[],o=e==="x"?"axisX":"axisY",s=Q(n)?"axisOrient":`axis${Yf(n)}`,a=[...r,...r.map(l=>o+l.substr(4))],u=["axis",s,o];return{vlOnlyAxisConfig:AF(a,i,e,n),vgAxisConfig:AF(u,i,e,n),axisConfigStyle:Tfe([...u,...a],i)}}function Tfe(e,t){const n=[{}];for(const i of e){let r=t[i]?.style;if(r){r=ct(r);for(const o of r)n.push(t.style[o])}}return Object.assign.apply(null,n)}function ux(e,t,n,i={}){const r=XN(e,n,t);if(r!==void 0)return{configFrom:"style",configValue:r};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(i[o]?.[e]!==void 0)return{configFrom:o,configValue:i[o][e]};return{}}const SF={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??Mfe(n,e),gridScale:({model:e,channel:t})=>Ofe(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||mL(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||gL(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??Nfe(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??Lfe(t.type,n,q(t)&&!!t.timeUnit,q(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{const o=e==="x"?"width":e==="y"?"height":void 0,s=o?t.getSizeSignalRef(o):void 0;return n.tickCount??Ife({fieldOrDatumDef:i,scaleType:r,size:s,values:n.values})},tickMinStep:zfe,title:({axis:e,model:t,channel:n})=>{if(e.title!==void 0)return e.title;const i=yL(t,n);if(i!==void 0)return i;const r=t.typedFieldDef(n),o=n==="x"?"x2":"y2",s=t.fieldDef(o);return JN(r?[U_(r)]:[],q(s)?[U_(s)]:[])},values:({axis:e,fieldOrDatumDef:t})=>Bfe(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??Ufe(n,t)};function Mfe(e,t){return!Dt(e)&&q(t)&&!He(t?.bin)&&!Nt(t?.bin)}function Ofe(e,t){const n=t==="x"?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}function Rfe(e,t,n,i,r){const o=t?.labelAngle;if(o!==void 0)return Q(o)?o:lf(o);{const{configValue:s}=ux("labelAngle",i,t?.style,r);return s!==void 0?lf(s):n===et&&we([Bw,zw],e.type)&&!(q(e)&&e.timeUnit)?270:void 0}}function lx(e){return`(((${e.signal} % 360) + 360) % 360)`}function gL(e,t,n,i){if(e!==void 0)if(n==="x"){if(Q(e)){const r=lx(e),o=Q(t)?`(${t.signal} === "top")`:t==="top";return{signal:`(45 < ${r} && ${r} < 135) || (225 < ${r} && ${r} < 315) ? "middle" :(${r} <= 45 || 315 <= ${r}) === ${o} ? "bottom" : "top"`}}if(45<e&&e<135||225<e&&e<315)return"middle";if(Q(t)){const r=e<=45||315<=e?"===":"!==";return{signal:`${t.signal} ${r} "top" ? "bottom" : "top"`}}return(e<=45||315<=e)==(t==="top")?"bottom":"top"}else{if(Q(e)){const r=lx(e),o=Q(t)?`(${t.signal} === "left")`:t==="left";return{signal:`${r} <= 45 || 315 <= ${r} || (135 <= ${r} && ${r} <= 225) ? ${i?'"middle"':"null"} : (45 <= ${r} && ${r} <= 135) === ${o} ? "top" : "bottom"`}}if(e<=45||315<=e||135<=e&&e<=225)return i?"middle":null;if(Q(t)){const r=45<=e&&e<=135?"===":"!==";return{signal:`${t.signal} ${r} "left" ? "top" : "bottom"`}}return(45<=e&&e<=135)==(t==="left")?"top":"bottom"}}function mL(e,t,n){if(e===void 0)return;const i=n==="x",r=i?0:90,o=i?"bottom":"left";if(Q(e)){const s=lx(e),a=Q(t)?`(${t.signal} === "${o}")`:t===o;return{signal:`(${r?`(${s} + 90)`:s} % 180 === 0) ? ${i?null:'"center"'} :(${r} < ${s} && ${s} < ${180+r}) === ${a} ? "left" : "right"`}}if((e+r)%180===0)return i?null:"center";if(Q(t)){const s=r<e&&e<180+r?"===":"!==";return{signal:`${`${t.signal} ${s} "${o}"`} ? "left" : "right"`}}return(r<e&&e<180+r)==(t===o)?"left":"right"}function Nfe(e,t){if(t==="x"&&we(["quantitative","temporal"],e))return!0}function Lfe(e,t,n,i){if(n&&!Fe(i)||e!=="nominal"&&e!=="ordinal")return t==="log"||t==="symlog"?"greedy":!0}function Pfe(e){return e==="x"?"bottom":"left"}function Ife({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){if(!i&&!Dt(t)&&t!=="log"){if(q(e)){if(He(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&we(["month","hours","day","quarter"],kt(e.timeUnit)?.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function zfe({format:e,fieldOrDatumDef:t}){if(e==="d")return 1;if(q(t)){const{timeUnit:n}=t;if(n){const i=p6(n);if(i)return{signal:i}}}}function yL(e,t){const n=t==="x"?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,s=r?r.title:void 0;if(o&&s)return QN(o,s);if(o)return o;if(s)return s;if(o!==void 0)return o;if(s!==void 0)return s}function Bfe(e,t){const n=e.values;if(X(n))return V6(t,n);if(Q(n))return n}function Ufe(e,t){return e==="rect"&&Bp(t)?1:0}class el extends ze{clone(){return new el(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this._dependentFields=fL(this.transform.calculate)}static parseAllForSortIndex(t,n){return n.forEachFieldDef((i,r)=>{if(qa(i)&&P6(i.sort)){const{field:o,timeUnit:s}=i,a=i.sort,u=a.map((l,c)=>`${y6({field:o,timeUnit:s,equal:l})} ? ${c} : `).join("")+a.length;t=new el(t,{calculate:u,as:tl(i,r,{forAs:!0})})}}),t}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 ${Ae(this.transform)}`}}function tl(e,t,n){return H(e,{prefix:t,suffix:"sort_index",...n})}function nm(e,t){return we(["top","bottom"],t)?"column":we(["left","right"],t)||e==="row"?"row":"column"}function nl(e,t,n,i){const r=i==="row"?n.headerRow:i==="column"?n.headerColumn:n.headerFacet;return ft((t||{})[e],r[e],n.header[e])}function im(e,t,n,i){const r={};for(const o of e){const s=nl(o,t||{},n,i);s!==void 0&&(r[o]=s)}return r}const EA=["row","column"],wA=["header","footer"];function jfe(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:s,titleOrient:a}=im(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),u=nm(t,a),l=lf(s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:{text:n,...t==="row"?{orient:"left"}:{},style:"guide-title",...xL(l,u),...bL(u,l,o),...vL(i,r,t,xue,d4)}}}function bL(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=mL(t,e==="row"?"left":"top",e==="row"?"y":"x");return i?{align:i}:{}}function xL(e,t){const n=gL(e,t==="row"?"left":"top",t==="row"?"y":"x",!0);return n?{baseline:n}:{}}function qfe(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of wA)if(n[r])for(const o of n[r]){const s=Gfe(e,t,r,n,o);s!=null&&i.push(s)}return i}function Wfe(e,t){const{sort:n}=e;return so(n)?{field:H(n,{expr:"datum"}),order:n.order??"ascending"}:X(n)?{field:tl(e,t,{expr:"datum"}),order:"ascending"}:{field:H(e,{expr:"datum"}),order:n??"ascending"}}function cx(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:s,labelOrient:a,labelExpr:u}=im(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),l=Yw({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,c=nm(t,a);return{text:{signal:u?ma(ma(u,"datum.label",l),"datum.value",H(e,{expr:"parent"})):l},...t==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...xL(o,c),...bL(c,o,s),...vL(n,e,t,vue,h4)}}function Gfe(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:s}=i,a=e.config?e.config:void 0;if(s&&r.labels){const{labelOrient:f}=im(["labelOrient"],s.header,a,t);(t==="row"&&!we(["top","bottom"],f)||t==="column"&&!we(["left","right"],f))&&(o=cx(s,t,a))}const u=Zn(e)&&!td(e.facet),l=r.axes,c=l?.length>0;if(o||c){const f=t==="row"?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...i.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:Wfe(s,t)}:{},...c&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[f]:r.sizeSignal}}}:{},...c?{axes:l}:{}}}}return null}const Hfe={column:{start:0,end:1},row:{start:1,end:0}};function Vfe(e,t){return Hfe[t][e]}function Yfe(e,t){const n={};for(const i of di){const r=e[i];if(r?.facetFieldDef){const{titleAnchor:o,titleOrient:s}=im(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=nm(i,s),u=Vfe(o,a);u!==void 0&&(n[a]=u)}}return Ue(n)?void 0:n}function vL(e,t,n,i,r){const o={};for(const s of i){if(!r[s])continue;const a=nl(s,t?.header,e,n);a!==void 0&&(o[r[s]]=a)}return o}function AA(e){return[...jd(e,"width"),...jd(e,"height"),...jd(e,"childWidth"),...jd(e,"childHeight")]}function jd(e,t){const n=t==="width"?"x":"y",i=e.component.layoutSize.get(t);if(!i||i==="merged")return[];const r=e.getSizeSignalRef(t).signal;if(i==="step"){const o=e.getScaleComponent(n);if(o){const s=o.get("type"),a=o.get("range");if(Dt(s)&&Ba(a)){const u=e.scaleName(n);return Zn(e.parent)&&e.parent.component.resolve.scale[n]==="independent"?[CF(u,a)]:[CF(u,a),{name:r,update:EL(u,o,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(i=="container"){const o=r.endsWith("width"),s=o?"containerSize()[0]":"containerSize()[1]",a=Jb(e.config.view,o?"width":"height"),u=`isFinite(${s}) ? ${s} : ${a}`;return[{name:r,init:u,on:[{update:u,events:"window:resize"}]}]}else return[{name:r,value:i}]}function CF(e,t){const n=`${e}_step`;return Q(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function EL(e,t,n){const i=t.get("type"),r=t.get("padding"),o=ft(t.get("paddingOuter"),r);let s=t.get("paddingInner");return s=i==="band"?s!==void 0?s:r:1,`bandspace(${n}, ${Mi(s)}, ${Mi(o)}) * ${e}_step`}function wL(e){return e==="childWidth"?"width":e==="childHeight"?"height":e}function AL(e,t){return B(e).reduce((n,i)=>({...n,...El({model:t,channelDef:e[i],vgChannel:i,mainRefFn:r=>Ye(r.value),invalidValueRef:void 0})}),{})}function SL(e,t){if(Zn(t))return e==="theta"?"independent":"shared";if(Cl(t))return"shared";if(DA(t))return dt(e)||e==="theta"||e==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function SA(e,t){const n=e.scale[t],i=dt(t)?"axis":"legend";return n==="independent"?(e[i][t]==="shared"&&j(pse(t)),"independent"):e[i][t]||"shared"}const Xfe={...Aue,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1},CL=B(Xfe);class Kfe extends $o{}const $F={symbols:Jfe,gradient:Qfe,labels:Zfe,entries:ede};function Jfe(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if(o!=="symbol")return;const{markDef:s,encoding:a,config:u,mark:l}=n,c=s.filled&&l!=="trail";let f={...woe({},n,bae),...G4(n,{filled:c})};const d=r.get("symbolOpacity")??u.legend.symbolOpacity,h=r.get("symbolFillColor")??u.legend.symbolFillColor,p=r.get("symbolStrokeColor")??u.legend.symbolStrokeColor,g=d===void 0?$L(a.opacity)??s.opacity:void 0;if(f.fill){if(i==="fill"||c&&i===Bn)delete f.fill;else if(U(f.fill,"field"))h?delete f.fill:(f.fill=Ye(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=Ye(g??1));else if(X(f.fill)){const m=fx(a.fill??a.color)??s.fill??(c&&s.color);m&&(f.fill=Ye(m))}}if(f.stroke){if(i==="stroke"||!c&&i===Bn)delete f.stroke;else if(U(f.stroke,"field")||p)delete f.stroke;else if(X(f.stroke)){const m=ft(fx(a.stroke||a.color),s.stroke,c?s.color:void 0);m&&(f.stroke={value:m})}}if(i!==Ao){const m=q(t)&&FL(n,r,t);m?f.opacity=[{test:m,...Ye(g??1)},Ye(u.legend.unselectedOpacity)]:g&&(f.opacity=Ye(g))}return f={...f,...e},Ue(f)?void 0:f}function Qfe(e,{model:t,legendType:n,legendCmpt:i}){if(n!=="gradient")return;const{config:r,markDef:o,encoding:s}=t;let a={};const l=(i.get("gradientOpacity")??r.legend.gradientOpacity)===void 0?$L(s.opacity)||o.opacity:void 0;return l&&(a.opacity=Ye(l)),a={...a,...e},Ue(a)?void 0:a}function Zfe(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},s=n.config,a=q(t)?FL(n,r,t):void 0,u=a?[{test:a,value:1},{value:s.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=o;let f;wa(c)?f=Oi({fieldOrDatumDef:t,field:"datum.value",format:l,formatType:c,config:s}):l===void 0&&c===void 0&&s.customFormatTypes&&(t.type==="quantitative"&&s.numberFormatType?f=Oi({fieldOrDatumDef:t,field:"datum.value",format:s.numberFormat,formatType:s.numberFormatType,config:s}):t.type==="temporal"&&s.timeFormatType&&q(t)&&t.timeUnit===void 0&&(f=Oi({fieldOrDatumDef:t,field:"datum.value",format:s.timeFormat,formatType:s.timeFormatType,config:s})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...e};return Ue(d)?void 0:d}function ede(e,{legendCmpt:t}){return t.get("selections")?.length?{...e,fill:{value:"transparent"}}:e}function $L(e){return _L(e,(t,n)=>Math.max(t,n.value))}function fx(e){return _L(e,(t,n)=>ft(t,n.value))}function _L(e,t){if(zae(e))return ct(e.condition).reduce(t,e.value);if(Ui(e))return e.value}function FL(e,t,n){const i=t.get("selections");if(!i?.length)return;const r=_e(n.field);return i.map(o=>`(!length(data(${_e(Qe(o)+Sa)})) || (${o}[${r}] && indexof(${o}[${r}], datum.value) >= 0))`).join(" || ")}const _F={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return R6(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return N6(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??ade(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??ude(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??nde(t.type,n,i.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>wu(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(Eu(n)&&fr(t)){if(e==="gradient")return}else if(e==="symbol")return;return e},values:({fieldOrDatumDef:e,legend:t})=>tde(t,e)};function tde(e,t){const n=e.values;if(X(n))return V6(t,n);if(Q(n))return n}function nde(e,t,n,i){if(t!=="shape"){const r=fx(n)??i;if(r)return r}switch(e){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 ide(e){const{legend:t}=e;return ft(t.type,rde(e))}function rde({channel:e,timeUnit:t,scaleType:n}){if(Eu(e)){if(we(["quarter","month","day"],t))return"symbol";if(fr(n))return"gradient"}return"symbol"}function ode({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??sde(n,t)}function sde(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return t==="gradient"?"horizontal":void 0}}function ade({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:s,gradientVerticalMaxLength:a,gradientVerticalMinLength:u}=e;if(fr(r))return n==="horizontal"?i==="top"||i==="bottom"?FF(t,"width",s,o):s:FF(t,"height",u,a)}function FF(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function ude(e){if(we(["quantile","threshold","log","symlog"],e))return"greedy"}function kL(e){const t=nt(e)?lde(e):hde(e);return e.component.legends=t,t}function lde(e){const{encoding:t}=e,n={};for(const i of[Bn,...g4]){const r=xt(t[i]);!r||!e.getScaleComponent(i)||i===Un&&q(r)&&r.type===vl||(n[i]=dde(e,i))}return n}function cde(e,t){const n=e.scaleName(t);if(e.mark==="trail"){if(t==="color")return{stroke:n};if(t==="size")return{strokeWidth:n}}return t==="color"?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}function fde(e,t,n,i){switch(t){case"disable":return n!==void 0;case"values":return!!n?.values;case"title":if(t==="title"&&e===i?.title)return!0}return e===(n||{})[t]}function dde(e,t){let n=e.legend(t);const{markDef:i,encoding:r,config:o}=e,s=o.legend,a=new Kfe({},cde(e,t));dce(e,t,a);const u=n!==void 0?!n:s.disable;if(a.set("disable",u,n!==void 0),u)return a;n=n||{};const l=e.getScaleComponent(t).get("type"),c=xt(r[t]),f=q(c)?kt(c.timeUnit)?.unit:void 0,d=n.orient||o.legend.orient||"right",h=ide({legend:n,channel:t,timeUnit:f,scaleType:l}),p=ode({legend:n,legendType:h,orient:d,legendConfig:s}),g={legend:n,channel:t,model:e,markDef:i,encoding:r,fieldOrDatumDef:c,legendConfig:s,config:o,scaleType:l,orient:d,legendType:h,direction:p};for(const v of CL){if(h==="gradient"&&v.startsWith("symbol")||h==="symbol"&&v.startsWith("gradient"))continue;const w=v in _F?_F[v](g):n[v];if(w!==void 0){const A=fde(w,v,n,e.fieldDef(t));(A||o.legend[v]===void 0)&&a.set(v,w,A)}}const m=n?.encoding??{},y=a.get("selections"),b={},x={fieldOrDatumDef:c,model:e,channel:t,legendCmpt:a,legendType:h};for(const v of["labels","legend","title","symbols","gradient","entries"]){const w=AL(m[v]??{},e),A=v in $F?$F[v](w,x):w;A!==void 0&&!Ue(A)&&(b[v]={...y?.length&&q(c)?{name:`${Qe(c.field)}_legend_${v}`}:{},...y?.length?{interactive:!!y}:{},update:A})}return Ue(b)||a.set("encode",b,!!n?.encoding),a}function hde(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){kL(i);for(const r of B(i.component.legends))n.legend[r]=SA(e.component.resolve,r),n.legend[r]==="shared"&&(t[r]=DL(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of B(t))for(const r of e.children)r.component.legends[i]&&n.legend[i]==="shared"&&delete r.component.legends[i];return t}function DL(e,t){if(!e)return t.clone();const n=e.getWithExplicit("orient"),i=t.getWithExplicit("orient");if(n.explicit&&i.explicit&&n.value!==i.value)return;let r=!1;for(const o of CL){const s=ss(e.getWithExplicit(o),t.getWithExplicit(o),o,"legend",(a,u)=>{switch(o){case"symbolType":return pde(a,u);case"title":return ZN(a,u);case"type":return r=!0,Wn("symbol")}return V0(a,u,o,"legend")});e.setWithExplicit(o,s)}return r&&(e.implicit?.encode?.gradient&&Np(e.implicit,["encode","gradient"]),e.explicit?.encode?.gradient&&Np(e.explicit,["encode","gradient"])),e}function pde(e,t){return t.value==="circle"?t:e}function gde(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function TL(e){const t=e.component.legends,n={};for(const r of B(t)){const o=e.getScaleComponent(r),s=je(o.get("domains"));if(n[s])for(const a of n[s])DL(a,t[r])||n[s].push(t[r]);else n[s]=[t[r].clone()]}return qt(n).flat().map(r=>mde(r,e.config)).filter(r=>r!==void 0)}function mde(e,t){const{disable:n,labelExpr:i,selections:r,...o}=e.combine();if(!n){if(t.aria===!1&&o.aria==null&&(o.aria=!1),o.encode?.symbols){const s=o.encode.symbols.update;s.fill&&s.fill.value!=="transparent"&&!s.stroke&&!o.stroke&&(s.stroke={value:"transparent"});for(const a of g4)o[a]&&delete s[a]}if(o.title||delete o.title,i!==void 0){let s=i;o.encode?.labels?.update&&Q(o.encode.labels.update.text)&&(s=ma(i,"datum.label",o.encode.labels.update.text.signal)),gde(o,"labels","text",{signal:s})}return o}}function yde(e){return Cl(e)||DA(e)?bde(e):ML(e)}function bde(e){return e.children.reduce((t,n)=>t.concat(n.assembleProjections()),ML(e))}function ML(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n;if(t.data){const r={signal:`[${t.size.map(s=>s.signal).join(", ")}]`},o=t.data.reduce((s,a)=>{const u=Q(a)?a.signal:`data('${e.lookupDataSource(a)}')`;return we(s,u)||s.push(u),s},[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:i,size:r,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]},...n}]}else return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const xde=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class OL extends $o{constructor(t,n,i,r){super({...n},{name:t}),this.specifiedProjection=n,this.size=i,this.data=r,this.merged=!1}get isFit(){return!!this.data}}function RL(e){e.component.projection=nt(e)?vde(e):Ade(e)}function vde(e){if(e.hasProjection){const t=Lt(e.specifiedProjection),n=!(t&&(t.scale!=null||t.translate!=null)),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?Ede(e):void 0,o=new OL(e.projectionName(!0),{...Lt(e.config.projection),...t},i,r);return o.get("type")||o.set("type","equalEarth",!1),o}}function Ede(e){const t=[],{encoding:n}=e;for(const i of[[Ki,Xi],[xi,Ji]])(xt(n[i[0]])||xt(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});return e.channelHasField(Un)&&e.typedFieldDef(Un).type===vl&&t.push({signal:e.getName(`geojson_${t.length}`)}),t.length===0&&t.push(e.requestDataName(it.Main)),t}function wde(e,t){const n=dw(xde,r=>!!(!pt(e.explicit,r)&&!pt(t.explicit,r)||pt(e.explicit,r)&&pt(t.explicit,r)&&Xn(e.get(r),t.get(r))));if(Xn(e.size,t.size)){if(n)return e;if(Xn(e.explicit,{}))return t;if(Xn(t.explicit,{}))return e}return null}function Ade(e){if(e.children.length===0)return;let t;for(const i of e.children)RL(i);const n=dw(e.children,i=>{const r=i.component.projection;if(r)if(t){const o=wde(t,r);return o&&(t=o),!!o}else return t=r,!0;else return!0});if(t&&n){const i=e.projectionName(!0),r=new OL(i,t.specifiedProjection,t.size,ce(t.data));for(const o of e.children){const s=o.component.projection;s&&(s.isFit&&r.data.push(...o.component.projection.data),o.renameProjection(s.get("name"),i),s.merged=!0)}return r}}function Sde(e,t,n,i){if(rd(t,n)){const r=nt(e)?e.axis(n)??e.legend(n)??{}:{},o=H(t,{expr:"datum"}),s=H(t,{expr:"datum",binSuffix:"end"});return{formulaAs:H(t,{binSuffix:"range",forAs:!0}),formula:ed(o,s,r.format,r.formatType,i)}}return{}}function NL(e,t){return`${GN(e)}_${t}`}function Cde(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}function CA(e,t,n){const i=U0(n,void 0)??{},r=NL(i,t);return e.getName(`${r}_bins`)}function $de(e){return"as"in e}function kF(e,t,n){let i,r;$de(e)?i=de(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:i=[H(e,{forAs:!0}),H(e,{binSuffix:"end",forAs:!0})];const o={...U0(t,void 0)},s=NL(o,e.field),{signal:a,extentSignal:u}=Cde(n,s);if(D0(o.extent)){const c=o.extent;r=hL(n,c.param,c),delete o.extent}const l={bin:o,field:e.field,as:[i],...a?{signal:a}:{},...u?{extentSignal:u}:{},...r?{span:r}:{}};return{key:s,binComponent:l}}class mr extends ze{clone(){return new mr(null,ce(this.bins))}constructor(t,n){super(t),this.bins=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,s)=>{if(Cn(o)&&He(o.bin)){const{key:a,binComponent:u}=kF(o,o.bin,n);r[a]={...u,...r[a],...Sde(n,o,s,n.config)}}return r},{});return Ue(i)?null:new mr(t,i)}static makeFromTransform(t,n,i){const{key:r,binComponent:o}=kF(n,n.bin,i);return new mr(t,{[r]:o})}merge(t,n){for(const i of B(t.bins))i in this.bins?(n(t.bins[i].signal,this.bins[i].signal),this.bins[i].as=cr([...this.bins[i].as,...t.bins[i].as],Ae)):this.bins[i]=t.bins[i];for(const i of t.children)t.removeChild(i),i.parent=this;t.remove()}producedFields(){return new Set(qt(this.bins).map(t=>t.as).flat(2))}dependentFields(){return new Set(qt(this.bins).map(t=>t.field))}hash(){return`Bin ${Ae(this.bins)}`}assemble(){return qt(this.bins).flatMap(t=>{const n=[],[i,...r]=t.as,{extent:o,...s}=t.bin,a={type:"bin",field:bi(t.field),as:i,signal:t.signal,...D0(o)?{extent:null}:{extent:o},...t.span?{span:{signal:`span(${t.span})`}}:{},...s};!o&&t.extentSignal&&(n.push({type:"extent",field:bi(t.field),signal:t.extentSignal}),a.extent={signal:t.extentSignal}),n.push(a);for(const u of r)for(let l=0;l<2;l++)n.push({type:"formula",expr:H({field:i[l]},{expr:"datum"}),as:u[l]});return t.formula&&n.push({type:"formula",expr:t.formula,as:t.formulaAs}),n})}}function _de(e,t,n,i){const r=nt(i)?i.encoding[Rr(t)]:void 0;if(Cn(n)&&nt(i)&&z6(n,r,i.markDef,i.config)){e.add(H(n,{})),e.add(H(n,{suffix:"end"}));const{mark:o,markDef:s,config:a}=i,u=os({fieldDef:n,markDef:s,config:a});cf(o)&&u!==.5&&dt(t)&&(e.add(H(n,{suffix:Y0})),e.add(H(n,{suffix:X0}))),n.bin&&rd(n,t)&&e.add(H(n,{binSuffix:"range"}))}else if(LN(t)){const o=NN(t);e.add(i.getName(o))}else e.add(H(n));return qa(n)&&oae(n.scale?.range)&&e.add(n.scale.range.field),e}function Fde(e,t){for(const n of B(t)){const i=t[n];for(const r of B(i))n in e?e[n][r]=new Set([...e[n][r]??[],...i[r]]):e[n]={[r]:i[r]}}}class Ni extends ze{clone(){return new Ni(null,new Set(this.dimensions),ce(this.measures))}constructor(t,n,i){super(t),this.dimensions=n,this.measures=i}get groupBy(){return this.dimensions}static makeFromEncoding(t,n){let i=!1;n.forEachFieldDef(s=>{s.aggregate&&(i=!0)});const r={},o=new Set;return!i||(n.forEachFieldDef((s,a)=>{const{aggregate:u,field:l}=s;if(u)if(u==="count")r["*"]??(r["*"]={}),r["*"].count=new Set([H(s,{forAs:!0})]);else{if(po(u)||xs(u)){const c=po(u)?"argmin":"argmax",f=u[c];r[f]??(r[f]={}),r[f][c]=new Set([H({op:c,field:f},{forAs:!0})])}else r[l]??(r[l]={}),r[l][u]=new Set([H(s,{forAs:!0})]);Nr(a)&&n.scaleDomain(a)==="unaggregated"&&(r[l]??(r[l]={}),r[l].min=new Set([H({field:l,aggregate:"min"},{forAs:!0})]),r[l].max=new Set([H({field:l,aggregate:"max"},{forAs:!0})]))}else _de(o,a,s,n)}),o.size+B(r).length===0)?null:new Ni(t,o,r)}static makeFromTransform(t,n){var i;const r=new Set,o={};for(const s of n.aggregate){const{op:a,field:u,as:l}=s;a&&(a==="count"?(o["*"]??(o["*"]={}),o["*"].count=new Set([l||H(s,{forAs:!0})])):(o[u]??(o[u]={}),(i=o[u])[a]??(i[a]=new Set),o[u][a].add(l||H(s,{forAs:!0}))))}for(const s of n.groupby??[])r.add(s);return r.size+B(o).length===0?null:new Ni(t,r,o)}merge(t){return _N(this.dimensions,t.dimensions)?(Fde(this.measures,t.measures),!0):(Dse("different dimensions, cannot merge"),!1)}addDimensions(t){t.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...B(this.measures)])}producedFields(){const t=new Set;for(const n of B(this.measures))for(const i of B(this.measures[n])){const r=this.measures[n][i];r.size===0?t.add(`${i}_${n}`):r.forEach(t.add,t)}return t}hash(){return`Aggregate ${Ae({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const t=[],n=[],i=[];for(const o of B(this.measures))for(const s of B(this.measures[o]))for(const a of this.measures[o][s])i.push(a),t.push(s),n.push(o==="*"?null:bi(o));return{type:"aggregate",groupby:[...this.dimensions].map(bi),ops:t,fields:n,as:i}}}class Al extends ze{constructor(t,n,i,r){super(t),this.model=n,this.name=i,this.data=r;for(const o of di){const s=n.facet[o];if(s){const{bin:a,sort:u}=s;this[o]={name:n.getName(`${o}_domain`),fields:[H(s),...He(a)?[H(s,{binSuffix:"end"})]:[]],...so(u)?{sortField:u}:X(u)?{sortIndexField:tl(s,o)}:{}}}}this.childModel=n.child}hash(){let t="Facet";for(const n of di)this[n]&&(t+=` ${n.charAt(0)}:${Ae(this[n])}`);return t}get fields(){const t=[];for(const n of di)this[n]?.fields&&t.push(...this[n].fields);return t}dependentFields(){const t=new Set(this.fields);for(const n of di)this[n]&&(this[n].sortField&&t.add(this[n].sortField.field),this[n].sortIndexField&&t.add(this[n].sortIndexField));return t}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const t={};for(const n of So){const i=this.childModel.component.scales[n];if(i&&!i.merged){const r=i.get("type"),o=i.get("range");if(Dt(r)&&Ba(o)){const s=rm(this.childModel,n),a=kA(s);a?t[n]=a:j($w(n))}}}return t}assembleRowColumnHeaderData(t,n,i){const r={row:"y",column:"x",facet:void 0}[t],o=[],s=[],a=[];r&&i&&i[r]&&(n?(o.push(`distinct_${i[r]}`),s.push("max")):(o.push(i[r]),s.push("distinct")),a.push(`distinct_${i[r]}`));const{sortField:u,sortIndexField:l}=this[t];if(u){const{op:c=I0,field:f}=u;o.push(f),s.push(c),a.push(H(u,{forAs:!0}))}else l&&(o.push(l),s.push("max"),a.push(l));return{name:this[t].name,source:n??this.data,transform:[{type:"aggregate",groupby:this[t].fields,...o.length?{fields:o,ops:s,as:a}:{}}]}}assembleFacetHeaderData(t){const{columns:n}=this.model.layout,{layoutHeaders:i}=this.model.component,r=[],o={};for(const u of EA){for(const l of wA){const c=(i[u]&&i[u][l])??[];for(const f of c)if(f.axes?.length>0){o[u]=!0;break}}if(o[u]){const l=`length(data("${this.facet.name}"))`,c=u==="row"?n?{signal:`ceil(${l} / ${n})`}:1:n?{signal:`min(${l}, ${n})`}:{signal:l};r.push({name:`${this.facet.name}_${u}`,transform:[{type:"sequence",start:0,stop:c}]})}}const{row:s,column:a}=o;return(s||a)&&r.unshift(this.assembleRowColumnHeaderData("facet",null,t)),r}assemble(){const t=[];let n=null;const i=this.getChildIndependentFieldsWithStep(),{column:r,row:o,facet:s}=this;if(r&&o&&(i.x||i.y)){n=`cross_${this.column.name}_${this.row.name}`;const a=[].concat(i.x??[],i.y??[]),u=a.map(()=>"distinct");t.push({name:n,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:a,ops:u}]})}for(const a of[oo,ro])this[a]&&t.push(this.assembleRowColumnHeaderData(a,n,i));if(s){const a=this.assembleFacetHeaderData(i);a&&t.push(...a)}return t}}function DF(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function kde(e,t){const n=gw(e);if(t==="number")return`toNumber(${n})`;if(t==="boolean")return`toBoolean(${n})`;if(t==="string")return`toString(${n})`;if(t==="date")return`toDate(${n})`;if(t==="flatten")return n;if(t.startsWith("date:")){const i=DF(t.slice(5,t.length));return`timeParse(${n},'${i}')`}else if(t.startsWith("utc:")){const i=DF(t.slice(4,t.length));return`utcParse(${n},'${i}')`}else return j(zoe(t)),null}function Dde(e){const t={};return Eh(e.filter,n=>{if(m6(n)){let i=null;Mw(n)?i=Vn(n.equal):Rw(n)?i=Vn(n.lte):Ow(n)?i=Vn(n.lt):Nw(n)?i=Vn(n.gt):Lw(n)?i=Vn(n.gte):Pw(n)?i=n.range[0]:Iw(n)&&(i=(n.oneOf??n.in)[0]),i&&(Ua(i)?t[n.field]="date":Ze(i)?t[n.field]="number":de(i)&&(t[n.field]="string")),n.timeUnit&&(t[n.field]="date")}}),t}function Tde(e){const t={};function n(i){Ju(i)?t[i.field]="date":i.type==="quantitative"&&hoe(i.aggregate)?t[i.field]="number":Gu(i.field)>1?i.field in t||(t[i.field]="flatten"):qa(i)&&so(i.sort)&&Gu(i.sort.field)>1&&(i.sort.field in t||(t[i.sort.field]="flatten"))}if((nt(e)||Zn(e))&&e.forEachFieldDef((i,r)=>{if(Cn(i))n(i);else{const o=Ia(r),s=e.fieldDef(o);n({...i,type:s.type})}}),nt(e)){const{mark:i,markDef:r,encoding:o}=e;if(vs(i)&&!e.encoding.order){const s=r.orient==="horizontal"?"y":"x",a=o[s];q(a)&&a.type==="quantitative"&&!(a.field in t)&&(t[a.field]="number")}}return t}function Mde(e){const t={};if(nt(e)&&e.component.selection)for(const n of B(e.component.selection)){const i=e.component.selection[n];for(const r of i.project.items)!r.channel&&Gu(r.field)>1&&(t[r.field]="flatten")}return t}class tn extends ze{clone(){return new tn(null,ce(this._parse))}constructor(t,n){super(t),this._parse=n}hash(){return`Parse ${Ae(this._parse)}`}static makeExplicit(t,n,i){let r={};const o=n.data;return!Xo(o)&&o?.format?.parse&&(r=o.format.parse),this.makeWithAncestors(t,r,{},i)}static makeWithAncestors(t,n,i,r){for(const a of B(i)){const u=r.getWithExplicit(a);u.value!==void 0&&(u.explicit||u.value===i[a]||u.value==="derived"||i[a]==="flatten"?delete i[a]:j(O_(a,i[a],u.value)))}for(const a of B(n)){const u=r.get(a);u!==void 0&&(u===n[a]?delete n[a]:j(O_(a,n[a],u)))}const o=new $o(n,i);r.copyAll(o);const s={};for(const a of B(o.combine())){const u=o.get(a);u!==null&&(s[a]=u)}return B(s).length===0||r.parseNothing?null:new tn(t,s)}get parse(){return this._parse}merge(t){this._parse={...this._parse,...t.parse},t.remove()}assembleFormatParse(){const t={};for(const n of B(this._parse)){const i=this._parse[n];Gu(n)===1&&(t[n]=i)}return t}producedFields(){return new Set(B(this._parse))}dependentFields(){return new Set(B(this._parse))}assembleTransforms(t=!1){return B(this._parse).filter(n=>t?Gu(n)>1:!0).map(n=>{const i=kde(n,this._parse[n]);return i?{type:"formula",expr:i,as:bl(n)}:null}).filter(n=>n!==null)}}class as extends ze{clone(){return new as(null)}constructor(t){super(t)}dependentFields(){return new Set}producedFields(){return new Set([qi])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:qi}}}class cd extends ze{clone(){return new cd(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ae(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class fd extends ze{clone(){return new fd(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${Ae(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class _a extends ze{constructor(t){super(null),t??(t={name:"source"});let n;if(Xo(t)||(n=t.format?{...Rn(t.format,["parse"])}:{}),ff(t))this._data={values:t.values};else if(Qu(t)){if(this._data={url:t.url},!n.type){let i=/(?:\.([^.]+))?$/.exec(t.url)[1];we(["json","csv","tsv","dsv","topojson"],i)||(i="json"),n.type=i}}else O4(t)?this._data={values:[{type:"Sphere"}]}:(T4(t)||Xo(t))&&(this._data={});this._generator=Xo(t),t.name&&(this._name=t.name),n&&!Ue(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(t){this._name=t}set parent(t){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{name:this._name,...this._data,transform:[]}}}var TF=function(e,t,n,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(e,n):r?r.value=n:t.set(e,n),n},Ode=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},wc;function $A(e){return e instanceof _a||e instanceof cd||e instanceof fd}class _A{constructor(){wc.set(this,void 0),TF(this,wc,!1,"f")}setModified(){TF(this,wc,!0,"f")}get modifiedFlag(){return Ode(this,wc,"f")}}wc=new WeakMap;class Ga extends _A{getNodeDepths(t,n,i){i.set(t,n);for(const r of t.children)this.getNodeDepths(r,n+1,i);return i}optimize(t){const i=[...this.getNodeDepths(t,0,new Map).entries()].sort((r,o)=>o[1]-r[1]);for(const r of i)this.run(r[0]);return this.modifiedFlag}}class FA extends _A{optimize(t){this.run(t);for(const n of t.children)this.optimize(n);return this.modifiedFlag}}class Rde extends FA{mergeNodes(t,n){const i=n.shift();for(const r of n)t.removeChild(r),r.parent=i,r.remove()}run(t){const n=t.children.map(r=>r.hash()),i={};for(let r=0;r<n.length;r++)i[n[r]]===void 0?i[n[r]]=[t.children[r]]:i[n[r]].push(t.children[r]);for(const r of B(i))i[r].length>1&&(this.setModified(),this.mergeNodes(t,i[r]))}}class Nde extends FA{constructor(t){super(),this.requiresSelectionId=t&&yA(t)}run(t){t instanceof as&&(this.requiresSelectionId&&($A(t.parent)||t.parent instanceof Ni||t.parent instanceof tn)||(this.setModified(),t.remove()))}}class Lde extends _A{optimize(t){return this.run(t,new Set),this.modifiedFlag}run(t,n){let i=new Set;t instanceof pr&&(i=t.producedFields(),hw(i,n)&&(this.setModified(),t.removeFormulas(n),t.producedFields.length===0&&t.remove()));for(const r of t.children)this.run(r,new Set([...n,...i]))}}class Pde extends FA{constructor(){super()}run(t){t instanceof Nn&&!t.isRequired()&&(this.setModified(),t.remove())}}class Ide extends Ga{run(t){if(!$A(t)&&!(t.numChildren()>1)){for(const n of t.children)if(n instanceof tn)if(t instanceof tn)this.setModified(),t.merge(n);else{if(pw(t.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class zde extends Ga{run(t){const n=[...t.children],i=t.children.filter(r=>r instanceof tn);if(t.numChildren()>1&&i.length>=1){const r={},o=new Set;for(const s of i){const a=s.parse;for(const u of B(a))u in r?r[u]!==a[u]&&o.add(u):r[u]=a[u]}for(const s of o)delete r[s];if(!Ue(r)){this.setModified();const s=new tn(t,r);for(const a of n){if(a instanceof tn)for(const u of B(r))delete a.parse[u];t.removeChild(a),a.parent=s,a instanceof tn&&B(a.parse).length===0&&a.remove()}}}}}class Bde extends Ga{run(t){t instanceof Nn||t.numChildren()>0||t instanceof Al||t instanceof _a||(this.setModified(),t.remove())}}class Ude extends Ga{run(t){const n=t.children.filter(r=>r instanceof pr),i=n.pop();for(const r of n)this.setModified(),i.merge(r)}}class jde extends Ga{run(t){const n=t.children.filter(r=>r instanceof Ni),i={};for(const r of n){const o=Ae(r.groupBy);o in i||(i[o]=[]),i[o].push(r)}for(const r of B(i)){const o=i[r];if(o.length>1){const s=o.pop();for(const a of o)s.merge(a)&&(t.removeChild(a),a.parent=s,a.remove(),this.setModified())}}}}class qde extends Ga{constructor(t){super(),this.model=t}run(t){const n=!($A(t)||t instanceof wl||t instanceof tn||t instanceof as),i=[],r=[];for(const o of t.children)o instanceof mr&&(n&&!pw(t.producedFields(),o.dependentFields())?i.push(o):r.push(o));if(i.length>0){const o=i.pop();for(const s of i)o.merge(s,this.model.renameSignal.bind(this.model));this.setModified(),t instanceof mr?t.merge(o,this.model.renameSignal.bind(this.model)):o.swapWithParent()}if(r.length>1){const o=r.pop();for(const s of r)o.merge(s,this.model.renameSignal.bind(this.model));this.setModified()}}}class Wde extends Ga{run(t){const n=[...t.children];if(!Wu(n,s=>s instanceof Nn)||t.numChildren()<=1)return;const r=[];let o;for(const s of n)if(s instanceof Nn){let a=s;for(;a.numChildren()===1;){const[u]=a.children;if(u instanceof Nn)a=u;else break}r.push(...a.children),o?(t.removeChild(s),s.parent=o.parent,o.parent.removeChild(o),o.parent=a,this.setModified()):o=a}else r.push(s);if(r.length){this.setModified();for(const s of r)s.parent.removeChild(s),s.parent=o}}}class Ha extends ze{clone(){return new Ha(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t.add,t),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(t){return t.as??H(t)}hash(){return`JoinAggregateTransform ${Ae(this.transform)}`}assemble(){const t=[],n=[],i=[];for(const o of this.transform.joinaggregate)n.push(o.op),i.push(this.getDefaultName(o)),t.push(o.field===void 0?null:o.field);const r=this.transform.groupby;return{type:"joinaggregate",as:i,ops:n,fields:t,...r!==void 0?{groupby:r}:{}}}}class il extends ze{clone(){return new il(null,{...this.filter})}constructor(t,n){super(t),this.filter=n}static make(t,n,i){const{config:r,markDef:o}=n,{marks:s,scales:a}=i;if(s==="include-invalid-values"&&a==="include-invalid-values")return null;const u=n.reduceFieldDef((l,c,f)=>{const d=Nr(f)&&n.getScaleComponent(f);if(d){const h=d.get("type"),{aggregate:p}=c,g=Gw({scaleChannel:f,markDef:o,config:r,scaleType:h,isCountAggregate:k0(p)});g!=="show"&&g!=="always-valid"&&(l[c.field]=c)}return l},{});return B(u).length?new il(t,u):null}dependentFields(){return new Set(B(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ae(this.filter)}`}assemble(){const t=B(this.filter).reduce((n,i)=>{const r=this.filter[i],o=H(r,{expr:"datum"});return r!==null&&(r.type==="temporal"?n.push(`(isDate(${o}) || (${dx(o)}))`):r.type==="quantitative"&&n.push(dx(o))),n},[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}function dx(e){return`isValid(${e}) && isFinite(+${e})`}function Gde(e){return e.stack.stackBy.reduce((t,n)=>{const i=n.fieldDef,r=H(i);return r&&t.push(r),t},[])}function Hde(e){return X(e)&&e.every(t=>de(t))&&e.length>1}class uo extends ze{clone(){return new uo(null,ce(this._stack))}constructor(t,n){super(t),this._stack=n}static makeFromTransform(t,n){const{stack:i,groupby:r,as:o,offset:s="zero"}=n,a=[],u=[];if(n.sort!==void 0)for(const f of n.sort)a.push(f.field),u.push(ft(f.order,"ascending"));const l={field:a,order:u};let c;return Hde(o)?c=o:de(o)?c=[o,`${o}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new uo(t,{dimensionFieldDefs:[],stackField:i,groupby:r,offset:s,sort:l,facetby:[],as:c})}static makeFromEncoding(t,n){const i=n.stack,{encoding:r}=n;if(!i)return null;const{groupbyChannels:o,fieldChannel:s,offset:a,impute:u}=i,l=o.map(h=>{const p=r[h];return ji(p)}).filter(h=>!!h),c=Gde(n),f=n.encoding.order;let d;if(X(f)||q(f))d=KN(f);else{const h=B6(f)?f.sort:s==="y"?"descending":"ascending";d=c.reduce((p,g)=>(p.field.includes(g)||(p.field.push(g),p.order.push(h)),p),{field:[],order:[]})}return new uo(t,{dimensionFieldDefs:l,stackField:n.vgField(s),facetby:[],stackby:c,sort:d,offset:a,impute:u,as:[n.vgField(s,{suffix:"start",forAs:!0}),n.vgField(s,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(t){this._stack.facetby.push(...t)}dependentFields(){const t=new Set;return t.add(this._stack.stackField),this.getGroupbyFields().forEach(t.add,t),this._stack.facetby.forEach(t.add,t),this._stack.sort.field.forEach(t.add,t),t}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Ae(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:t,impute:n,groupby:i}=this._stack;return t.length>0?t.map(r=>r.bin?n?[H(r,{binSuffix:"mid"})]:[H(r,{}),H(r,{binSuffix:"end"})]:[H(r)]).flat():i??[]}assemble(){const t=[],{facetby:n,dimensionFieldDefs:i,stackField:r,stackby:o,sort:s,offset:a,impute:u,as:l}=this._stack;if(u)for(const c of i){const{bandPosition:f=.5,bin:d}=c;if(d){const h=H(c,{expr:"datum"}),p=H(c,{expr:"datum",binSuffix:"end"});t.push({type:"formula",expr:`${dx(h)} ? ${f}*${h}+${1-f}*${p} : ${h}`,as:H(c,{binSuffix:"mid",forAs:!0})})}t.push({type:"impute",field:r,groupby:[...o,...n],key:H(c,{binSuffix:"mid"}),method:"value",value:0})}return t.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:r,sort:s,as:l,offset:a}),t}}class Sl extends ze{clone(){return new Sl(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return(this.transform.groupby??[]).forEach(t.add,t),(this.transform.sort??[]).forEach(n=>t.add(n.field)),this.transform.window.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(t){return t.as??H(t)}hash(){return`WindowTransform ${Ae(this.transform)}`}assemble(){const t=[],n=[],i=[],r=[];for(const f of this.transform.window)n.push(f.op),i.push(this.getDefaultName(f)),r.push(f.param===void 0?null:f.param),t.push(f.field===void 0?null:f.field);const o=this.transform.frame,s=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&n.every(f=>Sw(f)))return{type:"joinaggregate",as:i,ops:n,fields:t,...s!==void 0?{groupby:s}:{}};const a=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)a.push(f.field),u.push(f.order??"ascending");const l={field:a,order:u},c=this.transform.ignorePeers;return{type:"window",params:r,as:i,ops:n,fields:t,sort:l,...c!==void 0?{ignorePeers:c}:{},...s!==void 0?{groupby:s}:{},...o!==void 0?{frame:o}:{}}}}function Vde(e){function t(n){if(!(n instanceof Al)){const i=n.clone();if(i instanceof Nn){const r=px+i.getSource();i.setSource(r),e.model.component.data.outputNodes[r]=i}else(i instanceof Ni||i instanceof uo||i instanceof Sl||i instanceof Ha)&&i.addDimensions(e.fields);for(const r of n.children.flatMap(t))r.parent=i;return[i]}return n.children.flatMap(t)}return t}function hx(e){if(e instanceof Al)if(e.numChildren()===1&&!(e.children[0]instanceof Nn)){const t=e.children[0];(t instanceof Ni||t instanceof uo||t instanceof Sl||t instanceof Ha)&&t.addDimensions(e.fields),t.swapWithParent(),hx(e)}else{const t=e.model.component.data.main;LL(t);const n=Vde(e),i=e.children.map(n).flat();for(const r of i)r.parent=t}else e.children.map(hx)}function LL(e){if(e instanceof Nn&&e.type===it.Main&&e.numChildren()===1){const t=e.children[0];t instanceof Al||(t.swapWithParent(),LL(e))}}const px="scale_",qd=5;function gx(e){for(const t of e){for(const n of t.children)if(n.parent!==t)return!1;if(!gx(t.children))return!1}return!0}function Ai(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function MF(e,t,n){let i=e.sources,r=!1;return r=Ai(new Pde,i)||r,r=Ai(new Nde(t),i)||r,i=i.filter(o=>o.numChildren()>0),r=Ai(new Bde,i)||r,i=i.filter(o=>o.numChildren()>0),n||(r=Ai(new Ide,i)||r,r=Ai(new qde(t),i)||r,r=Ai(new Lde,i)||r,r=Ai(new zde,i)||r,r=Ai(new jde,i)||r,r=Ai(new Ude,i)||r,r=Ai(new Rde,i)||r,r=Ai(new Wde,i)||r),e.sources=i,r}function Yde(e,t){gx(e.sources);let n=0,i=0;for(let r=0;r<qd&&MF(e,t,!0);r++)n++;e.sources.map(hx);for(let r=0;r<qd&&MF(e,t,!1);r++)i++;gx(e.sources),Math.max(n,i)===qd&&j(`Maximum optimization runs(${qd}) reached.`)}class St{constructor(t){Object.defineProperty(this,"signal",{enumerable:!0,get:t})}static fromName(t,n){return new St(()=>t(n))}}function PL(e){nt(e)?Xde(e):Kde(e)}function Xde(e){const t=e.component.scales;for(const n of B(t)){const i=Qde(e,n);if(t[n].setWithExplicit("domains",i),ehe(e,n),e.component.data.isFaceted){let o=e;for(;!Zn(o)&&o.parent;)o=o.parent;if(o.component.resolve.scale[n]==="shared")for(const a of i.value)eo(a)&&(a.data=px+a.data.replace(px,""))}}}function Kde(e){for(const n of e.children)PL(n);const t=e.component.scales;for(const n of B(t)){let i,r=null;for(const o of e.children){const s=o.component.scales[n];if(s){i===void 0?i=s.getWithExplicit("domains"):i=ss(i,s.getWithExplicit("domains"),"domains","scale",mx);const a=s.get("selectionExtent");r&&a&&r.param!==a.param&&j(Moe),r=a}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}function Jde(e,t,n,i){if(e==="unaggregated"){const{valid:r,reason:o}=OF(t,n);if(!r){j(o);return}}else if(e===void 0&&i.useUnaggregatedDomain){const{valid:r}=OF(t,n);if(r)return"unaggregated"}return e}function Qde(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=Jde(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:r}),t==="x"&&xt(i.x2)?xt(i.x)?ss(Do(n,r,e,"x"),Do(n,r,e,"x2"),"domain","scale",mx):Do(n,r,e,"x2"):t==="y"&&xt(i.y2)?xt(i.y)?ss(Do(n,r,e,"y"),Do(n,r,e,"y2"),"domain","scale",mx):Do(n,r,e,"y2"):Do(n,r,e,t)}function Zde(e,t,n){return e.map(i=>({signal:`{data: ${j0(i,{timeUnit:n,type:t})}}`}))}function z1(e,t,n){const i=kt(n)?.unit;return t==="temporal"||i?Zde(e,t,i):[e]}function Do(e,t,n,i){const{encoding:r,markDef:o,mark:s,config:a,stack:u}=n,l=xt(r[i]),{type:c}=l,f=l.timeUnit,d=Lle({invalid:Ar("invalid",o,a),isPath:vs(s)});if(rae(t)){const g=Do(e,void 0,n,i),m=z1(t.unionWith,c,f);return or([...m,...g.value])}else{if(Q(t))return or([t]);if(t&&t!=="unaggregated"&&!A6(t))return or(z1(t,c,f))}if(u&&i===u.fieldChannel){if(u.offset==="normalize")return Wn([[0,1]]);const g=n.requestDataName(d);return Wn([{data:g,field:n.vgField(i,{suffix:"start"})},{data:g,field:n.vgField(i,{suffix:"end"})}])}const h=Nr(i)&&q(l)?the(n,i,e):void 0;if(Lr(l)){const g=z1([l.datum],c,f);return Wn(g)}const p=l;if(t==="unaggregated"){const{field:g}=l;return Wn([{data:n.requestDataName(d),field:H({field:g,aggregate:"min"})},{data:n.requestDataName(d),field:H({field:g,aggregate:"max"})}])}else if(He(p.bin)){if(Dt(e))return Wn(e==="bin-ordinal"?[]:[{data:uf(h)?n.requestDataName(d):n.requestDataName(it.Raw),field:n.vgField(i,rd(p,i)?{binSuffix:"range"}:{}),sort:h===!0||!Fe(h)?{field:n.vgField(i,{}),op:"min"}:h}]);{const{bin:g}=p;if(He(g)){const m=CA(n,p.field,g);return Wn([new St(()=>{const y=n.getSignalName(m);return`[${y}.start, ${y}.stop]`})])}else return Wn([{data:n.requestDataName(d),field:n.vgField(i,{})}])}}else if(p.timeUnit&&we(["time","utc"],e)){const g=r[Rr(i)];if(z6(p,g,o,a)){const m=n.requestDataName(d),y=os({fieldDef:p,fieldDef2:g,markDef:o,config:a}),b=cf(s)&&y!==.5&&dt(i);return Wn([{data:m,field:n.vgField(i,b?{suffix:Y0}:{})},{data:m,field:n.vgField(i,{suffix:b?X0:"end"})}])}}return Wn(h?[{data:uf(h)?n.requestDataName(d):n.requestDataName(it.Raw),field:n.vgField(i),sort:h}]:[{data:n.requestDataName(d),field:n.vgField(i)}])}function B1(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":I0),...i?{field:bi(i)}:{},...r?{order:r}:{}}}function ehe(e,t){const n=e.component.scales[t],i=e.specifiedScales[t].domain,r=e.fieldDef(t)?.bin,o=A6(i)?i:void 0,s=za(r)&&D0(r.extent)?r.extent:void 0;(o||s)&&n.set("selectionExtent",o??s,!0)}function the(e,t,n){if(!Dt(n))return;const i=e.fieldDef(t),r=i.sort;if(P6(r))return{op:"min",field:tl(i,t),order:"ascending"};const{stack:o}=e,s=o?new Set([...o.groupbyFields,...o.stackBy.map(a=>a.fieldDef.field)]):void 0;if(so(r)){const a=o&&!s.has(r.field);return B1(r,a)}else if(Lae(r)){const{encoding:a,order:u}=r,l=e.fieldDef(a),{aggregate:c,field:f}=l,d=o&&!s.has(f);if(po(c)||xs(c))return B1({field:H(l),order:u},d);if(Sw(c)||!c)return B1({op:c,field:f,order:u},d)}else{if(r==="descending")return{op:"min",field:e.vgField(t),order:"descending"};if(we(["ascending",void 0],r))return!0}}function OF(e,t){const{aggregate:n,type:i}=e;return n?de(n)&&!goe.has(n)?{valid:!1,reason:ase(n)}:i==="quantitative"&&t==="log"?{valid:!1,reason:use(e)}:{valid:!0}:{valid:!1,reason:sse(e)}}function mx(e,t,n,i){return e.explicit&&t.explicit&&j(hse(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function nhe(e){const t=cr(e.map(s=>{if(eo(s)){const{sort:a,...u}=s;return u}return s}),Ae),n=cr(e.map(s=>{if(eo(s)){const a=s.sort;return a!==void 0&&!uf(a)&&("op"in a&&a.op==="count"&&delete a.field,a.order==="ascending"&&delete a.order),a}}).filter(s=>s!==void 0),Ae);if(t.length===0)return;if(t.length===1){const s=e[0];if(eo(s)&&n.length>0){let a=n[0];if(n.length>1){j(N_);const u=n.filter(l=>Fe(l)&&"op"in l&&l.op!=="min");n.every(l=>Fe(l)&&"op"in l)&&u.length===1?a=u[0]:a=!0}else if(Fe(a)&&"field"in a){const u=a.field;s.field===u&&(a=a.order?{order:a.order}:!0)}return{...s,sort:a}}return s}const i=cr(n.map(s=>uf(s)||!("op"in s)||de(s.op)&&pt(foe,s.op)?s:(j(gse(s)),!0)),Ae);let r;i.length===1?r=i[0]:i.length>1&&(j(N_),r=!0);const o=cr(e.map(s=>eo(s)?s.data:null),s=>s);return o.length===1&&o[0]!==null?{data:o[0],fields:t.map(a=>a.field),...r?{sort:r}:{}}:{fields:t,...r?{sort:r}:{}}}function kA(e){if(eo(e)&&de(e.field))return e.field;if(moe(e)){let t;for(const n of e.fields)if(eo(n)&&de(n.field)){if(!t)t=n.field;else if(t!==n.field)return j(mse),t}return j(yse),t}else if(yoe(e)){j(bse);const t=e.fields[0];return de(t)?t:void 0}}function rm(e,t){const i=e.component.scales[t].get("domains").map(r=>(eo(r)&&(r.data=e.lookupDataSource(r.data)),r));return nhe(i)}function IL(e){return Cl(e)||DA(e)?e.children.reduce((t,n)=>t.concat(IL(n)),RF(e)):RF(e)}function RF(e){return B(e.component.scales).reduce((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:s,selectionExtent:a,domains:u,range:l,reverse:c,...f}=r,d=ihe(r.range,o,n,e),h=rm(e,n),p=a?Vle(e,a,i,h):null;return t.push({name:o,type:s,...h?{domain:h}:{},...p?{domainRaw:p}:{},range:d,...c!==void 0?{reverse:c}:{},...f}),t},[])}function ihe(e,t,n,i){if(dt(n)){if(Ba(e))return{step:{signal:`${t}_step`}}}else if(Fe(e)&&eo(e))return{...e,data:i.lookupDataSource(e.data)};return e}class zL extends $o{constructor(t,n){super({},{name:t}),this.merged=!1,this.setWithExplicit("type",n)}domainHasZero(){const t=this.get("type");if(we([Pt.LOG,Pt.TIME,Pt.UTC],t))return"definitely-not";const n=this.get("zero");if(n===!0||n===void 0&&we([Pt.LINEAR,Pt.SQRT,Pt.POW],t))return"definitely";const i=this.get("domains");if(i.length>0){let r=!1,o=!1,s=!1;for(const a of i){if(X(a)){const u=a[0],l=a[a.length-1];if(Ze(u)&&Ze(l))if(u<=0&&l>=0){r=!0;continue}else{o=!0;continue}}s=!0}if(r)return"definitely";if(o&&!s)return"definitely-not"}return"maybe"}}const rhe=["range","scheme"];function ohe(e){const t=e.component.scales;for(const n of Aw){const i=t[n];if(!i)continue;const r=she(n,e);i.setWithExplicit("range",r)}}function NF(e,t){const n=e.fieldDef(t);if(n?.bin){const{bin:i,field:r}=n,o=jn(t),s=e.getName(o);if(Fe(i)&&i.binned&&i.step!==void 0)return new St(()=>{const a=e.scaleName(t),u=`(domain("${a}")[1] - domain("${a}")[0]) / ${i.step}`;return`${e.getSignalName(s)} / (${u})`});if(He(i)){const a=CA(e,r,i);return new St(()=>{const u=e.getSignalName(a),l=`(${u}.stop - ${u}.start) / ${u}.step`;return`${e.getSignalName(s)} / (${l})`})}}}function she(e,t){const n=t.specifiedScales[e],{size:i}=t,o=t.getScaleComponent(e).get("type");for(const f of rhe)if(n[f]!==void 0){const d=Yb(o,f),h=S6(e,f);if(!d)j(i6(o,f,e));else if(h)j(h);else switch(f){case"range":{const p=n.range;if(X(p)){if(dt(e))return or(p.map(g=>{if(g==="width"||g==="height"){const m=t.getName(g),y=t.getSignalName.bind(t);return St.fromName(y,m)}return g}))}else if(Fe(p))return or({data:t.requestDataName(it.Main),field:p.field,sort:{op:"min",field:t.vgField(e)}});return or(p)}case"scheme":return or(ahe(n[f]))}}const s=e===et||e==="xOffset"?"width":"height",a=i[s];if(Cr(a)){if(dt(e))if(Dt(o)){const f=UL(a,t,e);if(f)return or({step:f})}else j(r6(s));else if(Jf(e)){const f=e===hs?"x":"y";if(t.getScaleComponent(f).get("type")==="band"){const p=jL(a,o);if(p)return or(p)}}}const{rangeMin:u,rangeMax:l}=n,c=uhe(e,t);return(u!==void 0||l!==void 0)&&Yb(o,"rangeMin")&&X(c)&&c.length===2?or([u??c[0],l??c[1]]):Wn(c)}function ahe(e){return iae(e)?{scheme:e.name,...Rn(e,["name"])}:{scheme:e}}function BL(e,t,n,{center:i}={}){const r=jn(e),o=t.getName(r),s=t.getSignalName.bind(t);return e===Mt&&Bi(n)?i?[St.fromName(a=>`${s(a)}/2`,o),St.fromName(a=>`-${s(a)}/2`,o)]:[St.fromName(s,o),0]:i?[St.fromName(a=>`-${s(a)}/2`,o),St.fromName(a=>`${s(a)}/2`,o)]:[0,St.fromName(s,o)]}function uhe(e,t){const{size:n,config:i,mark:r,encoding:o}=t,{type:s}=xt(o[e]),u=t.getScaleComponent(e).get("type"),{domain:l,domainMid:c}=t.specifiedScales[e];switch(e){case et:case Mt:{if(we(["point","band"],u)){const f=qL(e,n,i.view);if(Cr(f))return{step:UL(f,t,e)}}return BL(e,t,u)}case hs:case xl:return lhe(e,t,u);case wo:{const f=dhe(r,i),d=hhe(r,n,t,i);return Yu(u)?fhe(f,d,che(u,i,l,e)):[f,d]}case Ei:return[0,Math.PI*2];case Pa:return[0,360];case Yi:return[0,new St(()=>{const f=t.getSignalName(Zn(t.parent)?"child_width":"width"),d=t.getSignalName(Zn(t.parent)?"child_height":"height");return`min(${f},${d})/2`})];case ps:return{step:1e3/i.scale.framesPerSecond};case ys:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case bs:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Un:return"symbol";case Bn:case Mr:case Or:return u==="ordinal"?s==="nominal"?"category":"ordinal":c!==void 0?"diverging":r==="rect"||r==="geoshape"?"heatmap":"ramp";case Ao:case gs:case ms:return[i.scale.minOpacity,i.scale.maxOpacity]}}function UL(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),o=xw(n),s=i[o];if(y4({step:e,offsetIsDiscrete:fe(s)&&b6(s.type)})==="offset"&&J6(i,o)){const u=t.getScaleComponent(o);let c=`domain('${t.scaleName(o)}').length`;if(u.get("type")==="band"){const d=u.get("paddingInner")??u.get("padding")??0,h=u.get("paddingOuter")??u.get("padding")??0;c=`bandspace(${c}, ${d}, ${h})`}const f=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${c} / (1-${Eoe(f)})`}}else return e.step}function jL(e,t){if(y4({step:e,offsetIsDiscrete:Dt(t)})==="offset")return{step:e.step}}function lhe(e,t,n){const i=e===hs?"x":"y",r=t.getScaleComponent(i);if(!r)return BL(i,t,n,{center:!0});const o=r.get("type"),s=t.scaleName(i),{markDef:a,config:u}=t;if(o==="band"){const l=qL(i,t.size,t.config.view);if(Cr(l)){const c=jL(l,n);if(c)return c}return[0,{signal:`bandwidth('${s}')`}]}else{const l=t.encoding[i];if(q(l)&&l.timeUnit){const c=p6(l.timeUnit,p=>`scale('${s}', ${p})`),f=t.config.scale.bandWithNestedOffsetPaddingInner,d=os({fieldDef:l,markDef:a,config:u})-.5,h=d!==0?` + ${d}`:"";if(f){const p=Q(f)?`${f.signal}/2`+h:`${f/2+d}`,g=Q(f)?`(1 - ${f.signal}/2)`+h:`${1-f/2+d}`;return[{signal:`${p} * (${c})`},{signal:`${g} * (${c})`}]}return[0,{signal:c}]}return CN(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}function qL(e,t,n){const i=e===et?"width":"height",r=t[i];return r||Wp(n,i)}function che(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return n!==void 0&&X(n)?n.length+1:(j(_se(i)),3)}}function fhe(e,t,n){const i=()=>{const r=Mi(t),o=Mi(e),s=`(${r} - ${o}) / (${n} - 1)`;return`sequence(${o}, ${r} + ${s}, ${s})`};return Q(t)?new St(i):{signal:i()}}function dhe(e,t){switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(T0("size",e))}const LF=.95;function hhe(e,t,n,i){const r={x:NF(n,"x"),y:NF(n,"y")};switch(e){case"bar":case"tick":{if(i.scale.maxBandSize!==void 0)return i.scale.maxBandSize;const o=PF(t,r,i.view);return Ze(o)?o-1:new St(()=>`${o.signal} - 1`)}case"line":case"trail":case"rule":return i.scale.maxStrokeWidth;case"text":return i.scale.maxFontSize;case"point":case"square":case"circle":{if(i.scale.maxSize)return i.scale.maxSize;const o=PF(t,r,i.view);return Ze(o)?Math.pow(LF*o,2):new St(()=>`pow(${LF} * ${o.signal}, 2)`)}}throw new Error(T0("size",e))}function PF(e,t,n){const i=Cr(e.width)?e.width.step:Qb(n,"width"),r=Cr(e.height)?e.height.step:Qb(n,"height");return t.x||t.y?new St(()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`):Math.min(i,r)}function WL(e,t){nt(e)?phe(e,t):HL(e,t)}function phe(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:s}=e;for(const a of B(n)){const u=s[a],l=n[a],c=e.getScaleComponent(a),f=xt(r[a]),d=u[t],h=c.get("type"),p=c.get("padding"),g=c.get("paddingInner"),m=Yb(h,t),y=S6(a,t);if(d!==void 0&&(m?y&&j(y):j(i6(h,t,a))),m&&y===void 0)if(d!==void 0){const b=f.timeUnit,x=f.type;switch(t){case"domainMax":case"domainMin":Ua(u[t])||x==="temporal"||b?l.set(t,{signal:j0(u[t],{type:x,timeUnit:b})},!0):l.set(t,u[t],!0);break;default:l.copyKeyFromObject(t,u)}}else{const b=U(IF,t)?IF[t]({model:e,channel:a,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:g,domain:u.domain,domainMin:u.domainMin,domainMax:u.domainMax,markDef:o,config:i,hasNestedOffsetScale:Q6(r,a),hasSecondaryRangeChannel:!!r[Rr(a)]}):i.scale[t];b!==void 0&&l.set(t,b,!1)}}}const IF={bins:({model:e,fieldOrDatumDef:t})=>q(t)?ghe(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>mhe(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>yhe(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>bhe(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>xhe(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>vhe(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>{const r=q(e)?e.sort:void 0;return Ehe(t,r,n,i.scale)},zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:i,scaleType:r,config:o,hasSecondaryRangeChannel:s})=>whe(e,t,n,i,r,o.scale,s)};function GL(e){nt(e)?ohe(e):HL(e,"range")}function HL(e,t){const n=e.component.scales;for(const i of e.children)t==="range"?GL(i):WL(i,t);for(const i of B(n)){let r;for(const o of e.children){const s=o.component.scales[i];if(s){const a=s.getWithExplicit(t);r=ss(r,a,t,"scale",D4((u,l)=>{switch(t){case"range":return u.step&&l.step?u.step-l.step:0}return 0}))}}n[i].setWithExplicit(t,r)}}function ghe(e,t){const n=t.bin;if(He(n)){const i=CA(e,t.field,n);return new St(()=>e.getSignalName(i))}else if(Nt(n)&&za(n)&&n.step!==void 0)return{step:n.step}}function mhe(e,t){if(we([Bn,Mr,Or],e)&&t!=="nominal")return"hcl"}function yhe(e,t,n,i,r,o){if(!(ji(o)?.bin||X(n)||r!=null||i!=null||we([Pt.TIME,Pt.UTC],e)))return dt(t)?!0:void 0}function bhe(e,t,n,i,r,o){if(dt(e)){if(fr(t)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:s,orient:a}=r;if(s==="bar"&&!(q(i)&&(i.bin||i.timeUnit))&&(a==="vertical"&&e==="x"||a==="horizontal"&&e==="y"))return o.continuousBandSize}if(t===Pt.POINT)return n.pointPadding}}function xhe(e,t,n,i,r,o=!1){if(e===void 0){if(dt(t)){const{bandPaddingInner:s,barBandPaddingInner:a,rectBandPaddingInner:u,tickBandPaddingInner:l,bandWithNestedOffsetPaddingInner:c}=r;return o?c:ft(s,n==="bar"?a:n==="tick"?l:u)}else if(Jf(t)&&i===Pt.BAND)return r.offsetBandPaddingInner}}function vhe(e,t,n,i,r,o=!1){if(e===void 0){if(dt(t)){const{bandPaddingOuter:s,bandWithNestedOffsetPaddingOuter:a}=r;if(o)return a;if(n===Pt.BAND)return ft(s,Q(i)?{signal:`${i.signal}/2`}:i/2)}else if(Jf(t)){if(n===Pt.POINT)return .5;if(n===Pt.BAND)return r.offsetBandPaddingOuter}}}function Ehe(e,t,n,i){if(n==="x"&&i.xReverse!==void 0)return Bi(e)&&t==="descending"?Q(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(Bi(e)&&t==="descending")return!0}function whe(e,t,n,i,r,o,s){if(!!n&&n!=="unaggregated"&&Bi(r)){if(X(n)){const u=n[0],l=n[n.length-1];if(Ze(u)&&u<=0&&Ze(l)&&l>=0)return!0}return!1}if(e==="size"&&t.type==="quantitative"&&!Yu(r))return!0;if(!(q(t)&&t.bin)&&we([...So,...noe],e)){const{orient:u,type:l}=i;return we(["bar","area","line","trail"],l)&&(u==="horizontal"&&e==="y"||u==="vertical"&&e==="x")?!1:we(["bar","area"],l)&&!s?!0:o?.zero}return!1}function Ahe(e,t,n,i,r=!1){const o=She(t,n,i,r),{type:s}=e;return Nr(t)?s!==void 0?cae(t,s)?q(n)&&!lae(s,n.type)?(j(fse(s,o)),o):s:(j(cse(t,s,o)),o):o:null}function She(e,t,n,i){switch(t.type){case"nominal":case"ordinal":{if(Eu(e)||C1(e)==="discrete")return e==="shape"&&t.type==="ordinal"&&j($1(e,"ordinal")),"ordinal";if(S1(e))return"band";if(dt(e)||Jf(e)){if(we(["rect","bar","image","rule","tick"],n.type)||i)return"band"}else if(n.type==="arc"&&e in ww)return"band";const r=n[jn(e)];return Ea(r)||Ku(t)&&t.axis?.tickBand?"band":"point"}case"temporal":return Eu(e)?"time":C1(e)==="discrete"?(j($1(e,"temporal")),"ordinal"):q(t)&&t.timeUnit&&kt(t.timeUnit).utc?"utc":S1(e)?"band":"time";case"quantitative":return Eu(e)?q(t)&&He(t.bin)?"bin-ordinal":"linear":C1(e)==="discrete"?(j($1(e,"quantitative")),"ordinal"):S1(e)?"band":"linear";case"geojson":return}throw new Error(t6(t.type))}function Che(e,{ignoreRange:t}={}){VL(e),PL(e);for(const n of uae)WL(e,n);t||GL(e)}function VL(e){nt(e)?e.component.scales=$he(e):e.component.scales=Fhe(e)}function $he(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of Aw){const s=xt(t[o]);if(s&&n===_6&&o===Un&&s.type===vl)continue;let a=s&&s.scale;if(s&&a!==null&&a!==!1){a??(a={});const u=Q6(t,o),l=Ahe(a,o,s,i,u);r[o]=new zL(e.scaleName(`${o}`,!0),{value:l,explicit:a.type===l})}}return r}const _he=D4((e,t)=>P_(e)-P_(t));function Fhe(e){var t;const n=e.component.scales={},i={},r=e.component.resolve;for(const o of e.children){VL(o);for(const s of B(o.component.scales))if((t=r.scale)[s]??(t[s]=SL(s,e)),r.scale[s]==="shared"){const a=i[s],u=o.component.scales[s].getWithExplicit("type");a?Qse(a.value,u.value)?i[s]=ss(a,u,"type","scale",_he):(r.scale[s]="independent",delete i[s]):i[s]=u}}for(const o of B(i)){const s=e.scaleName(o,!0),a=i[o];n[o]=new zL(s,a);for(const u of e.children){const l=u.component.scales[o];l&&(u.renameScale(l.get("name"),s),l.merged=!0)}}return n}class U1{constructor(){this.nameMap={}}rename(t,n){this.nameMap[t]=n}has(t){return this.nameMap[t]!==void 0}get(t){for(;this.nameMap[t]&&t!==this.nameMap[t];)t=this.nameMap[t];return t}}function nt(e){return e?.type==="unit"}function Zn(e){return e?.type==="facet"}function DA(e){return e?.type==="concat"}function Cl(e){return e?.type==="layer"}class TA{constructor(t,n,i,r,o,s,a){this.type=n,this.parent=i,this.config=o,this.parent=i,this.config=o,this.view=Lt(a),this.name=t.name??r,this.title=Ro(t.title)?{text:t.title}:t.title?Lt(t.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new U1,this.projectionNameMap=i?i.projectionNameMap:new U1,this.signalNameMap=i?i.signalNameMap:new U1,this.data=t.data,this.description=t.description,this.transforms=Sle(t.transform??[]),this.layout=n==="layer"||n==="unit"?{}:Fue(t,n,o),this.component={data:{sources:i?i.component.data.sources:[],outputNodes:i?i.component.data.outputNodes:{},outputNodeRefCounts:i?i.component.data.outputNodeRefCounts:{},isFaceted:z0(t)||i?.component.data.isFaceted&&t.data===void 0},layoutSize:new $o,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...s?ce(s):{}},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(){Che(this)}parseProjection(){RL(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){kL(this)}assembleEncodeFromView(t){const{style:n,...i}=t,r={};for(const o of B(i)){const s=i[o];s!==void 0&&(r[o]=Ye(s))}return r}assembleGroupEncodeEntry(t){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!t&&(this.description&&(n.description=Ye(this.description)),this.type==="unit"||this.type==="layer")?{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...n}:Ue(n)?void 0:n}assembleLayout(){if(!this.layout)return;const{spacing:t,...n}=this.layout,{component:i,config:r}=this,o=Yfe(i.layoutHeaders,r);return{padding:t,...this.assembleDefaultLayout(),...n,...o?{titleBand:o}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:t}=this.component;let n=[];for(const i of di)t[i].title&&n.push(jfe(this,i));for(const i of EA)n=n.concat(qfe(this,i));return n}assembleAxes(){return kfe(this.component.axes,this.config)}assembleLegends(){return TL(this)}assembleProjections(){return yde(this)}assembleTitle(){const{encoding:t,...n}=this.title??{},i={...HN(this.config.title).nonMarkTitleProperties,...n,...t?{encode:{update:t}}:{}};if(i.text)return we(["unit","layer"],this.type)?we(["middle",void 0],i.anchor)&&(i.frame??(i.frame="group")):i.anchor??(i.anchor="start"),Ue(i)?void 0:i}assembleGroup(t=[]){const n={};t=t.concat(this.assembleSignals()),t.length>0&&(n.signals=t);const i=this.assembleLayout();i&&(n.layout=i),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const r=!this.parent||Zn(this.parent)?IL(this):[];r.length>0&&(n.scales=r);const o=this.assembleAxes();o.length>0&&(n.axes=o);const s=this.assembleLegends();return s.length>0&&(n.legends=s),n}getName(t){return Qe((this.name?`${this.name}_`:"")+t)}getDataName(t){return this.getName(it[t].toLowerCase())}requestDataName(t){const n=this.getDataName(t),i=this.component.data.outputNodeRefCounts;return i[n]=(i[n]||0)+1,n}getSizeSignalRef(t){if(Zn(this.parent)){const n=wL(t),i=F0(n),r=this.component.scales[i];if(r&&!r.merged){const o=r.get("type"),s=r.get("range");if(Dt(o)&&Ba(s)){const a=r.get("name"),u=rm(this,i),l=kA(u);if(l){const c=H({aggregate:"distinct",field:l},{expr:"datum"});return{signal:EL(a,r,c)}}else return j($w(i)),null}}}return{signal:this.signalNameMap.get(this.getName(t))}}lookupDataSource(t){const n=this.component.data.outputNodes[t];return n?n.getSource():t}getSignalName(t){return this.signalNameMap.get(t)}renameSignal(t,n){this.signalNameMap.rename(t,n)}renameScale(t,n){this.scaleNameMap.rename(t,n)}renameProjection(t,n){this.projectionNameMap.rename(t,n)}scaleName(t,n){if(n)return this.getName(t);if(IN(t)&&Nr(t)&&this.component.scales[t]||this.scaleNameMap.has(this.getName(t)))return this.scaleNameMap.get(this.getName(t))}projectionName(t){if(t)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(t){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[t];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(t):void 0}getScaleType(t){const n=this.getScaleComponent(t);return n?n.get("type"):void 0}getSelectionComponent(t,n){let i=this.component.selection[t];if(!i&&this.parent&&(i=this.parent.getSelectionComponent(t,n)),!i)throw new Error($oe(n));return i}hasAxisOrientSignalRef(){return this.component.axes.x?.some(t=>t.hasOrientSignalRef())||this.component.axes.y?.some(t=>t.hasOrientSignalRef())}}class YL extends TA{vgField(t,n={}){const i=this.fieldDef(t);if(i)return H(i,n)}reduceFieldDef(t,n){return iue(this.getMapping(),(i,r,o)=>{const s=ji(r);return s?t(i,s,o):i},n)}forEachFieldDef(t,n){eA(this.getMapping(),(i,r)=>{const o=ji(i);o&&t(o,r)},n)}}class om extends ze{clone(){return new om(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"value",i[1]??"density"];const r=this.transform.resolve??"shared";this.transform.resolve=r}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Ae(this.transform)}`}assemble(){const{density:t,...n}=this.transform,i={type:"kde",field:t,...n};return i.resolve=this.transform.resolve,i}}class sm extends ze{clone(){return new sm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${Ae(this.transform)}`}assemble(){const{extent:t,param:n}=this.transform;return{type:"extent",field:t,signal:n}}}class am extends ze{clone(){return new am(this.parent,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const{flatten:i,as:r=[]}=this.transform;this.transform.as=i.map((o,s)=>r[s]??o)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ae(this.transform)}`}assemble(){const{flatten:t,as:n}=this.transform;return{type:"flatten",fields:t,as:n}}}class um extends ze{clone(){return new um(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"key",i[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Ae(this.transform)}`}assemble(){const{fold:t,as:n}=this.transform;return{type:"fold",fields:t,as:n}}}class Su extends ze{clone(){return new Su(null,ce(this.fields),this.geojson,this.signal)}static parseAll(t,n){if(n.component.projection&&!n.component.projection.isFit)return t;let i=0;for(const r of[[Ki,Xi],[xi,Ji]]){const o=r.map(s=>{const a=xt(n.encoding[s]);return q(a)?a.field:Lr(a)?{expr:`${a.datum}`}:Ui(a)?{expr:`${a.value}`}:void 0});(o[0]||o[1])&&(t=new Su(t,o,null,n.getName(`geojson_${i++}`)))}if(n.channelHasField(Un)){const r=n.typedFieldDef(Un);r.type===vl&&(t=new Su(t,null,r.field,n.getName(`geojson_${i++}`)))}return t}constructor(t,n,i,r){super(t),this.fields=n,this.geojson=i,this.signal=r}dependentFields(){const t=(this.fields??[]).filter(de);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ae(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class pf extends ze{clone(){return new pf(null,this.projection,ce(this.fields),ce(this.as))}constructor(t,n,i,r){super(t),this.projection=n,this.fields=i,this.as=r}static parseAll(t,n){if(!n.projectionName())return t;for(const i of[[Ki,Xi],[xi,Ji]]){const r=i.map(s=>{const a=xt(n.encoding[s]);return q(a)?a.field:Lr(a)?{expr:`${a.datum}`}:Ui(a)?{expr:`${a.value}`}:void 0}),o=i[0]===xi?"2":"";(r[0]||r[1])&&(t=new pf(t,n.projectionName(),r,[n.getName(`x${o}`),n.getName(`y${o}`)]))}return t}dependentFields(){return new Set(this.fields.filter(de))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ae(this.fields)} ${Ae(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class na extends ze{clone(){return new na(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(t){const{start:n=0,stop:i,step:r}=t;return{signal:`sequence(${[n,i,...r?[r]:[]].join(",")})`}}static makeFromTransform(t,n){return new na(t,n)}static makeFromEncoding(t,n){const i=n.encoding,r=i.x,o=i.y;if(q(r)&&q(o)){const s=r.impute?r:o.impute?o:void 0;if(s===void 0)return;const a=r.impute?o:o.impute?r:void 0,{method:u,value:l,frame:c,keyvals:f}=s.impute,d=t4(n.mark,i);return new na(t,{impute:s.field,key:a.field,...u?{method:u}:{},...l!==void 0?{value:l}:{},...c?{frame:c}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${Ae(this.transform)}`}assemble(){const{impute:t,key:n,keyvals:i,method:r,groupby:o,value:s,frame:a=[null,null]}=this.transform,u={type:"impute",field:t,key:n,...i?{keyvals:ole(i)?this.processSequence(i):i}:{},method:"value",...o?{groupby:o}:{},value:!r||r==="value"?s:null};if(r&&r!=="value"){const l={type:"window",as:[`imputed_${t}_value`],ops:[r],fields:[t],frame:a,ignorePeers:!1,...o?{groupby:o}:{}},c={type:"formula",expr:`datum.${t} === null ? datum.imputed_${t}_value : datum.${t}`,as:t};return[u,l,c]}else return[u]}}class lm extends ze{clone(){return new lm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??n.on,i[1]??n.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Ae(this.transform)}`}assemble(){const{loess:t,on:n,...i}=this.transform;return{type:"loess",x:n,y:t,...i}}}class gf extends ze{clone(){return new gf(null,ce(this.transform),this.secondary)}constructor(t,n,i){super(t),this.transform=n,this.secondary=i}static make(t,n,i,r){const o=n.component.data.sources,{from:s}=i;let a=null;if(sle(s)){let u=JL(s.data,o);u||(u=new _a(s.data),o.push(u));const l=n.getName(`lookup_${r}`);a=new Nn(u,l,it.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=a}else if(ale(s)){const u=s.param;i={as:u,...i};let l;try{l=n.getSelectionComponent(Qe(u),u)}catch{throw new Error(Doe(u))}if(a=l.materialized,!a)throw new Error(Toe(u))}return new gf(t,i,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?ct(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Ae({transform:this.transform,secondary:this.secondary})}`}assemble(){let t;if(this.transform.from.fields)t={values:this.transform.from.fields,...this.transform.as?{as:ct(this.transform.as)}:{}};else{let n=this.transform.as;de(n)||(j(joe),n="_lookup"),t={as:[n]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...t,...this.transform.default?{default:this.transform.default}:{}}}}class cm extends ze{clone(){return new cm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"prob",i[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Ae(this.transform)}`}assemble(){const{quantile:t,...n}=this.transform;return{type:"quantile",field:t,...n}}}class fm extends ze{clone(){return new fm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??n.on,i[1]??n.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Ae(this.transform)}`}assemble(){const{regression:t,on:n,...i}=this.transform;return{type:"regression",x:n,y:t,...i}}}class dm extends ze{clone(){return new dm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr((this.transform.groupby??[]).concat(t),n=>n)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${Ae(this.transform)}`}assemble(){const{pivot:t,value:n,groupby:i,limit:r,op:o}=this.transform;return{type:"pivot",field:t,value:n,...r!==void 0?{limit:r}:{},...o!==void 0?{op:o}:{},...i!==void 0?{groupby:i}:{}}}}class hm extends ze{clone(){return new hm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ae(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function XL(e){let t=0;function n(i,r){if(i instanceof _a&&!i.isGenerator&&!Qu(i.data)&&(e.push(r),r={name:null,source:r.name,transform:[]}),i instanceof tn&&(i.parent instanceof _a&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof Al){r.name||(r.name=`data_${t++}`),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,e.push(...i.assemble());return}switch((i instanceof cd||i instanceof fd||i instanceof il||i instanceof wl||i instanceof el||i instanceof pf||i instanceof Ni||i instanceof gf||i instanceof Sl||i instanceof Ha||i instanceof um||i instanceof am||i instanceof om||i instanceof lm||i instanceof cm||i instanceof fm||i instanceof as||i instanceof hm||i instanceof dm||i instanceof sm)&&r.transform.push(i.assemble()),(i instanceof mr||i instanceof pr||i instanceof na||i instanceof uo||i instanceof Su)&&r.transform.push(...i.assemble()),i instanceof Nn&&(r.source&&r.transform.length===0?i.setSource(r.source):i.parent instanceof Nn?i.setSource(r.name):(r.name||(r.name=`data_${t++}`),i.setSource(r.name),i.numChildren()===1&&(e.push(r),r={name:null,source:r.name,transform:[]}))),i.numChildren()){case 0:i instanceof Nn&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name=`data_${t++}`);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source;for(const s of i.children)n(s,{name:null,source:o,transform:[]});break}}}return n}function khe(e){const t=[],n=XL(t);for(const i of e.children)n(i,{source:e.name,name:null,transform:[]});return t}function Dhe(e,t){const n=[],i=XL(n);let r=0;for(const s of e.sources){s.hasName()||(s.dataName=`source_${r++}`);const a=s.assemble();i(s,a)}for(const s of n)s.transform.length===0&&delete s.transform;let o=0;for(const[s,a]of n.entries())(a.transform??[]).length===0&&!a.source&&n.splice(o++,0,n.splice(s,1)[0]);for(const s of n)for(const a of s.transform??[])a.type==="lookup"&&(a.from=e.outputNodes[a.from].getSource());for(const s of n)s.name in t&&(s.values=t[s.name]);return n}function The(e){return e==="top"||e==="left"||Q(e)?"header":"footer"}function Mhe(e){for(const t of di)Ohe(e,t);zF(e,"x"),zF(e,"y")}function Ohe(e,t){const{facet:n,config:i,child:r,component:o}=e;if(e.channelHasField(t)){const s=n[t],a=nl("title",null,i,t);let u=wu(s,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});r.component.layoutHeaders[t].title&&(u=X(u)?u.join(", "):u,u+=` / ${r.component.layoutHeaders[t].title}`,r.component.layoutHeaders[t].title=null);const l=nl("labelOrient",s.header,i,t),c=s.header!==null?ft(s.header?.labels,i.header.labels,!0):!1,f=we(["bottom","right"],l)?"footer":"header";o.layoutHeaders[t]={title:s.header!==null?u:null,facetFieldDef:s,[f]:t==="facet"?[]:[KL(e,t,c)]}}}function KL(e,t,n){const i=t==="row"?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function zF(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:i,resolve:r}=e.component;if(r.axis[t]=SA(r,t),r.axis[t]==="shared"){const o=t==="x"?"column":"row",s=i[o];for(const a of n.component.axes[t]){const u=The(a.get("orient"));s[u]??(s[u]=[KL(e,o,!1)]);const l=Ec(a,"main",e.config,{header:!0});l&&s[u][0].axes.push(l),a.mainExtracted=!0}}}}function Rhe(e){MA(e),Xp(e,"width"),Xp(e,"height")}function Nhe(e){MA(e);const t=e.layout.columns===1?"width":"childWidth",n=e.layout.columns===void 0?"height":"childHeight";Xp(e,t),Xp(e,n)}function MA(e){for(const t of e.children)t.parseLayoutSize()}function Xp(e,t){const n=wL(t),i=F0(n),r=e.component.resolve,o=e.component.layoutSize;let s;for(const a of e.children){const u=a.component.layoutSize.getWithExplicit(n),l=r.scale[i]??SL(i,e);if(l==="independent"&&u.value==="step"){s=void 0;break}if(s){if(l==="independent"&&s.value!==u.value){s=void 0;break}s=ss(s,u,n,"")}else s=u}if(s){for(const a of e.children)e.renameSignal(a.getName(n),e.getName(t)),a.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,s)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function Lhe(e){const{size:t,component:n}=e;for(const i of So){const r=jn(i);if(t[r]){const o=t[r];n.layoutSize.set(r,Cr(o)?"step":o,!0)}else{const o=Phe(e,r);n.layoutSize.set(r,o,!1)}}}function Phe(e,t){const n=t==="width"?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const o=r.get("type"),s=r.get("range");if(Dt(o)){const a=Wp(i.view,t);return Ba(s)||Cr(a)?"step":a}else return Jb(i.view,t)}else{if(e.hasProjection||e.mark==="arc")return Jb(i.view,t);{const o=Wp(i.view,t);return Cr(o)?o.step:o}}}function yx(e,t,n){return H(t,{suffix:`by_${H(e)}`,...n})}class Ic extends YL{constructor(t,n,i,r){super(t,"facet",n,i,r,t.resolve),this.child=PA(t.spec,this,this.getName("child"),void 0,r),this.children=[this.child],this.facet=this.initFacet(t.facet)}initFacet(t){if(!td(t))return{facet:this.initFacetFieldDef(t,"facet")};const n=B(t),i={};for(const r of n){if(![ro,oo].includes(r)){j(T0(r,"facet"));break}const o=t[r];if(o.field===void 0){j(Hb(o,r));break}i[r]=this.initFacetFieldDef(o,r)}return i}initFacetFieldDef(t,n){const i=Zw(t,n);return i.header?i.header=Lt(i.header):i.header===null&&(i.header=null),i}channelHasField(t){return U(this.facet,t)}fieldDef(t){return this.facet[t]}parseData(){this.component.data=pm(this),this.child.parseData()}parseLayoutSize(){MA(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),Mhe(this)}assembleSelectionTopLevelSignals(t){return this.child.assembleSelectionTopLevelSignals(t)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(t){return this.child.assembleSelectionData(t)}getHeaderLayoutMixins(){const t={};for(const n of di)for(const i of wA){const r=this.component.layoutHeaders[n],o=r[i],{facetFieldDef:s}=r;if(s){const a=nl("titleOrient",s.header,this.config,n);if(["right","bottom"].includes(a)){const u=nm(n,a);t.titleAnchor??(t.titleAnchor={}),t.titleAnchor[u]="end"}}if(o?.[0]){const a=n==="row"?"height":"width",u=i==="header"?"headerBand":"footerBand";n!=="facet"&&!this.child.component.layoutSize.get(a)&&(t[u]??(t[u]={}),t[u][n]=.5),r.title&&(t.offset??(t.offset={}),t.offset[n==="row"?"rowTitle":"columnTitle"]=10)}}return t}assembleDefaultLayout(){const{column:t,row:n}=this.facet,i=t?this.columnDistinctSignal():n?1:void 0;let r="all";return(!n&&this.component.resolve.scale.x==="independent"||!t&&this.component.resolve.scale.y==="independent")&&(r="none"),{...this.getHeaderLayoutMixins(),...i?{columns:i}:{},bounds:"full",align:r}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Ic))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(t){return this.parent&&this.parent instanceof Ic?{...this.channelHasField("column")?{encode:{update:{columns:{field:H(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(t)}:super.assembleGroup(t)}getCardinalityAggregateForChild(){const t=[],n=[],i=[];if(this.child instanceof Ic){if(this.child.channelHasField("column")){const r=H(this.child.facet.column);t.push(r),n.push("distinct"),i.push(`distinct_${r}`)}}else for(const r of So){const o=this.child.component.scales[r];if(o&&!o.merged){const s=o.get("type"),a=o.get("range");if(Dt(s)&&Ba(a)){const u=rm(this.child,r),l=kA(u);l?(t.push(l),n.push("distinct"),i.push(`distinct_${l}`)):j($w(r))}}}return{fields:t,ops:n,as:i}}assembleFacet(){const{name:t,data:n}=this.component.data.facetRoot,{row:i,column:r}=this.facet,{fields:o,ops:s,as:a}=this.getCardinalityAggregateForChild(),u=[];for(const c of di){const f=this.facet[c];if(f){u.push(H(f));const{bin:d,sort:h}=f;if(He(d)&&u.push(H(f,{binSuffix:"end"})),so(h)){const{field:p,op:g=I0}=h,m=yx(f,h);i&&r?(o.push(m),s.push("max"),a.push(m)):(o.push(p),s.push(g),a.push(m))}else if(X(h)){const p=tl(f,c);o.push(p),s.push("max"),a.push(p)}}}const l=!!i&&!!r;return{name:t,data:n,groupby:u,...l||o.length>0?{aggregate:{...l?{cross:l}:{},...o.length?{fields:o,ops:s,as:a}:{}}}:{}}}facetSortFields(t){const{facet:n}=this,i=n[t];return i?so(i.sort)?[yx(i,i.sort,{expr:"datum"})]:X(i.sort)?[tl(i,t,{expr:"datum"})]:[H(i,{expr:"datum"})]:[]}facetSortOrder(t){const{facet:n}=this,i=n[t];if(i){const{sort:r}=i;return[(so(r)?r.order:!X(r)&&r)||"ascending"]}return[]}assembleLabelTitle(){const{facet:t,config:n}=this;if(t.facet)return cx(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const r of EA)if(t[r]){const o=nl("labelOrient",t[r]?.header,n,r);if(i[r].includes(o))return cx(t[r],r,n)}}assembleMarks(){const{child:t}=this,n=this.component.data.facetRoot,i=khe(n),r=t.assembleGroupEncodeEntry(!1),o=this.assembleLabelTitle()||t.assembleTitle(),s=t.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...o?{title:o}:{},...s?{style:s}:{},from:{facet:this.assembleFacet()},sort:{field:di.map(u=>this.facetSortFields(u)).flat(),order:di.map(u=>this.facetSortOrder(u)).flat()},...i.length>0?{data:i}:{},...r?{encode:{update:r}}:{},...t.assembleGroup(qle(this,[]))}]}getMapping(){return this.facet}}function Ihe(e,t){const{row:n,column:i}=t;if(n&&i){let r=null;for(const o of[n,i])if(so(o.sort)){const{field:s,op:a=I0}=o.sort;e=r=new Ha(e,{joinaggregate:[{op:a,field:s,as:yx(o,o.sort,{forAs:!0})}],groupby:[H(o)]})}return r}return null}function JL(e,t){for(const n of t){const i=n.data;if(e.name&&n.hasName()&&e.name!==n.dataName)continue;const r=e.format?.mesh,o=i.format?.feature;if(r&&o)continue;const s=e.format?.feature;if((s||o)&&s!==o)continue;const a=i.format?.mesh;if(!((r||a)&&r!==a)){if(ff(e)&&ff(i)){if(Xn(e.values,i.values))return n}else if(Qu(e)&&Qu(i)){if(e.url===i.url)return n}else if(T4(e)&&e.name===n.dataName)return n}}return null}function zhe(e,t){if(e.data||!e.parent){if(e.data===null){const i=new _a({values:[]});return t.push(i),i}const n=JL(e.data,t);if(n)return Xo(e.data)||(n.data.format=$N({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const i=new _a(e.data);return t.push(i),i}}else return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}function Bhe(e,t,n){let i=0;for(const r of t.transforms){let o,s;if(yle(r))s=e=new el(e,r),o="derived";else if(fA(r)){const a=Dde(r);s=e=tn.makeWithAncestors(e,{},a,n)??e,e=new wl(e,t,r.filter)}else if($4(r))s=e=mr.makeFromTransform(e,r,t),o="number";else if(xle(r))o="date",n.getWithExplicit(r.field).value===void 0&&(e=new tn(e,{[r.field]:o}),n.set(r.field,o,!1)),s=e=pr.makeFromTransform(e,r);else if(vle(r))s=e=Ni.makeFromTransform(e,r),o="number",yA(t)&&(e=new as(e));else if(C4(r))s=e=gf.make(e,t,r,i++),o="derived";else if(ple(r))s=e=new Sl(e,r),o="number";else if(gle(r))s=e=new Ha(e,r),o="number";else if(Ele(r))s=e=uo.makeFromTransform(e,r),o="derived";else if(wle(r))s=e=new um(e,r),o="derived";else if(Ale(r))s=e=new sm(e,r),o="derived";else if(mle(r))s=e=new am(e,r),o="derived";else if(ule(r))s=e=new dm(e,r),o="derived";else if(hle(r))e=new hm(e,r);else if(ble(r))s=e=na.makeFromTransform(e,r),o="derived";else if(lle(r))s=e=new om(e,r),o="derived";else if(cle(r))s=e=new cm(e,r),o="derived";else if(fle(r))s=e=new fm(e,r),o="derived";else if(dle(r))s=e=new lm(e,r),o="derived";else{j(Uoe(r));continue}if(s&&o!==void 0)for(const a of s.producedFields()??[])n.set(a,o,!1)}return e}function pm(e){let t=zhe(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:i}=e.component.data,r=e.data,s=!(r&&(Xo(r)||Qu(r)||ff(r)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Nle;Xo(r)?(M4(r)?t=new fd(t,r.sequence):dA(r)&&(t=new cd(t,r.graticule)),s.parseNothing=!0):r?.format?.parse===null&&(s.parseNothing=!0),t=tn.makeExplicit(t,e,s)??t,t=new as(t);const a=e.parent&&Cl(e.parent);(nt(e)||Zn(e))&&a&&(t=mr.makeFromEncoding(t,e)??t),e.transforms.length>0&&(t=Bhe(t,e,s));const u=Mde(e),l=Tde(e);t=tn.makeWithAncestors(t,{},{...u,...l},s)??t,nt(e)&&(t=Su.parseAll(t,e),t=pf.parseAll(t,e)),(nt(e)||Zn(e))&&(a||(t=mr.makeFromEncoding(t,e)??t),t=pr.makeFromEncoding(t,e)??t,t=el.parseAllForSortIndex(t,e));const c=t=Wd(it.Raw,e,t);if(nt(e)){const m=Ni.makeFromEncoding(t,e);m&&(t=m,yA(e)&&(t=new as(t))),t=na.makeFromEncoding(t,e)??t,t=uo.makeFromEncoding(t,e)??t}let f,d;if(nt(e)){const{markDef:m,mark:y,config:b}=e,x=Be("invalid",m,b),{marks:v,scales:w}=d=R4({invalid:x,isPath:vs(y)});v!==w&&w==="include-invalid-values"&&(f=t=Wd(it.PreFilterInvalid,e,t)),v==="exclude-invalid-values"&&(t=il.make(t,e,d)??t)}const h=t=Wd(it.Main,e,t);let p;if(nt(e)&&d){const{marks:m,scales:y}=d;m==="include-invalid-values"&&y==="exclude-invalid-values"&&(t=il.make(t,e,d)??t,p=t=Wd(it.PostFilterInvalid,e,t))}nt(e)&&_fe(e,h);let g=null;if(Zn(e)){const m=e.getName("facet");t=Ihe(t,e.facet)??t,g=new Al(t,e,m,h.getSource()),n[m]=g}return{...e.component.data,outputNodes:n,outputNodeRefCounts:i,raw:c,main:h,facetRoot:g,ancestorParse:s,preFilterInvalid:f,postFilterInvalid:p}}function Wd(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),s=new Nn(n,o,e,r);return i[o]=s,s}class Uhe extends TA{constructor(t,n,i,r){super(t,"concat",n,i,r,t.resolve),(t.resolve?.axis?.x==="shared"||t.resolve?.axis?.y==="shared")&&j(Ioe),this.children=this.getChildren(t).map((o,s)=>PA(o,this,this.getName(`concat_${s}`),void 0,r))}parseData(){this.component.data=pm(this);for(const t of this.children)t.parseData()}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){for(const t of this.children)t.parseAxesAndHeaders()}getChildren(t){return G0(t)?t.vconcat:lA(t)?t.hconcat:t.concat}parseLayoutSize(){Nhe(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,i)=>i.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.forEach(t=>t.assembleSignals()),[]}assembleLayoutSignals(){const t=AA(this);for(const n of this.children)t.push(...n.assembleLayoutSignals());return t}assembleSelectionData(t){return this.children.reduce((n,i)=>i.assembleSelectionData(n),t)}assembleMarks(){return this.children.map(t=>{const n=t.assembleTitle(),i=t.assembleGroupStyle(),r=t.assembleGroupEncodeEntry(!1);return{type:"group",name:t.getName("group"),...n?{title:n}:{},...i?{style:i}:{},...r?{encode:{update:r}}:{},...t.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){const t=this.layout.columns;return{...t!=null?{columns:t}:{},bounds:"full",align:"each"}}}function jhe(e){return e===!1||e===null}const qhe={disable:1,gridScale:1,scale:1,...X6,labelExpr:1,encode:1},QL=B(qhe);class OA extends $o{constructor(t={},n={},i=!1){super(),this.explicit=t,this.implicit=n,this.mainExtracted=i}clone(){return new OA(ce(this.explicit),ce(this.implicit),this.mainExtracted)}hasAxisPart(t){return t==="axis"?!0:t==="grid"||t==="title"?!!this.get(t):!jhe(this.get(t))}hasOrientSignalRef(){return Q(this.explicit.orient)}}function Whe(e,t,n){const{encoding:i,config:r}=e,o=xt(i[t])??xt(i[Rr(t)]),s=e.axis(t)||{},{format:a,formatType:u}=s;if(wa(u))return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:u,config:r}),...n};if(a===void 0&&u===void 0&&r.customFormatTypes){if(Xu(o)==="quantitative"){if(Ku(o)&&o.stack==="normalize"&&r.normalizedNumberFormatType)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r}),...n};if(r.numberFormatType)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r}),...n}}if(Xu(o)==="temporal"&&r.timeFormatType&&q(o)&&!o.timeUnit)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r}),...n}}return n}function Ghe(e){return So.reduce((t,n)=>(e.component.scales[n]&&(t[n]=[Qhe(n,e)]),t),{})}const Hhe={bottom:"top",top:"bottom",left:"right",right:"left"};function Vhe(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const r of e.children){r.parseAxesAndHeaders();for(const o of B(r.component.axes))n.axis[o]=SA(e.component.resolve,o),n.axis[o]==="shared"&&(t[o]=Yhe(t[o],r.component.axes[o]),t[o]||(n.axis[o]="independent",delete t[o]))}for(const r of So){for(const o of e.children)if(o.component.axes[r]){if(n.axis[r]==="independent"){t[r]=(t[r]??[]).concat(o.component.axes[r]);for(const s of o.component.axes[r]){const{value:a,explicit:u}=s.getWithExplicit("orient");if(!Q(a)){if(i[a]>0&&!u){const l=Hhe[a];i[a]>i[l]&&s.set("orient",l,!1)}i[a]++}}}delete o.component.axes[r]}if(n.axis[r]==="independent"&&t[r]&&t[r].length>1)for(const[o,s]of(t[r]||[]).entries())o>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}}function Yhe(e,t){if(e){if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const r=e[i],o=t[i];if(!!r!=!!o)return;if(r&&o){const s=r.getWithExplicit("orient"),a=o.getWithExplicit("orient");if(s.explicit&&a.explicit&&s.value!==a.value)return;e[i]=Xhe(r,o)}}}else return t.map(n=>n.clone());return e}function Xhe(e,t){for(const n of QL){const i=ss(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(r,o)=>{switch(n){case"title":return ZN(r,o);case"gridScale":return{explicit:r.explicit,value:ft(r.value,o.value)}}return V0(r,o,n,"axis")});e.setWithExplicit(n,i)}return e}function Khe(e,t,n,i,r){if(t==="disable")return n!==void 0;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Q(n.labelAngle)?n.labelAngle:lf(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===yL(i,r))return!0}return e===n[t]}const Jhe=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Qhe(e,t){let n=t.axis(e);const i=new OA,r=xt(t.encoding[e]),{mark:o,config:s}=t,a=n?.orient||s[e==="x"?"axisX":"axisY"]?.orient||s.axis?.orient||Pfe(e),u=t.getScaleComponent(e).get("type"),l=Dfe(e,u,a,t.config),c=n!==void 0?!n:ux("disable",s.style,n?.style,l).configValue;if(i.set("disable",c,n!==void 0),c)return i;n=n||{};const f=Rfe(r,n,e,s.style,l),d=N6(n.formatType,r,u),h=R6(r,r.type,n.format,n.formatType,s,!0),p={fieldOrDatumDef:r,axis:n,channel:e,model:t,scaleType:u,orient:a,labelAngle:f,format:h,formatType:d,mark:o,config:s};for(const y of QL){const b=y in SF?SF[y](p):W_(y)?n[y]:void 0,x=b!==void 0,v=Khe(b,y,n,t,e);if(x&&v)i.set(y,b,v);else{const{configValue:w=void 0,configFrom:A=void 0}=W_(y)&&y!=="values"?ux(y,s.style,n.style,l):{},E=w!==void 0;x&&!E?i.set(y,b,v):(A!=="vgAxisConfig"||Jhe.has(y)&&E||od(w)||Q(w))&&i.set(y,w,!1)}}const g=n.encoding??{},m=Y6.reduce((y,b)=>{if(!i.hasAxisPart(b))return y;const x=AL(g[b]??{},t),v=b==="labels"?Whe(t,e,x):x;return v!==void 0&&!Ue(v)&&(y[b]={update:v}),y},{});return Ue(m)||i.set("encode",m,!!n.encoding||n.labelAngle!==void 0),i}function Zhe({encoding:e,size:t}){for(const n of So){const i=jn(n);Cr(t[i])&&Wo(e[n])&&(delete t[i],j(r6(i)))}return t}const epe={vgMark:"arc",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...go(e,"radius"),...go(e,"theta")})},tpe={vgMark:"area",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...Gp("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="horizontal"}),...Gp("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="vertical"}),...mA(e)})},npe={vgMark:"rect",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y")})},ipe={vgMark:"shape",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&q(n)&&n.type===vl?{field:H(n,{expr:"datum"})}:{}}]}},rpe={vgMark:"image",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y"),...pA(e,"url")})},ope={vgMark:"line",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e,{vgChannel:"strokeWidth"}),...mA(e)})},spe={vgMark:"trail",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e),...mA(e)})};function RA(e,t){const{config:n}=e;return{...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e),...It("angle",e),...ape(e,n,t)}}function ape(e,t,n){return n?{shape:{value:n}}:It("shape",e)}const upe={vgMark:"symbol",encodeEntry:e=>RA(e)},lpe={vgMark:"symbol",encodeEntry:e=>RA(e,"circle")},cpe={vgMark:"symbol",encodeEntry:e=>RA(e,"square")},fpe={vgMark:"rect",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y")})},dpe={vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return!e.encoding.x&&!e.encoding.y&&!e.encoding.latitude&&!e.encoding.longitude?{}:{...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Gp("x",e,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"}),...Gp("y",e,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"}),...It("size",e,{vgChannel:"strokeWidth"})}}},hpe={vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...wi(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...pA(e),...It("size",e,{vgChannel:"fontSize"}),...It("angle",e),...hF("align",ppe(e.markDef,n,t)),...hF("baseline",gpe(e.markDef,n,t)),...bn("radius",e,{defaultPos:null}),...bn("theta",e,{defaultPos:null})}}};function ppe(e,t,n){if(Be("align",e,n)===void 0)return"center"}function gpe(e,t,n){if(Be("baseline",e,n)===void 0)return"middle"}const mpe={vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r=i==="horizontal"?"x":"y",o=i==="horizontal"?"y":"x",s=i==="horizontal"?"height":"width";return{...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,r),...bn(o,e,{defaultPos:"mid",vgChannel:o==="y"?"yc":"xc"}),[s]:Ye(Be("thickness",n,t))}}},Gd={arc:epe,area:tpe,bar:npe,circle:lpe,geoshape:ipe,image:rpe,line:ope,point:upe,rect:fpe,rule:dpe,square:cpe,text:hpe,tick:mpe,trail:spe};function ype(e){if(we([L0,R0,pae],e.mark)){const t=t4(e.mark,e.encoding);if(t.length>0)return bpe(e,t)}else if(e.mark===N0){const t=Wb.some(n=>Be(n,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t)return xpe(e)}return NA(e)}const BF="faceted_path_";function bpe(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:BF+e.requestDataName(it.Main),data:e.requestDataName(it.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:NA(e,{fromPrefix:BF})}]}const UF="stack_group_";function xpe(e){const[t]=NA(e,{fromPrefix:UF}),n=e.scaleName(e.stack.fieldChannel),i=(l={})=>e.vgField(e.stack.fieldChannel,l),r=(l,c)=>{const f=[i({prefix:"min",suffix:"start",expr:c}),i({prefix:"max",suffix:"start",expr:c}),i({prefix:"min",suffix:"end",expr:c}),i({prefix:"max",suffix:"end",expr:c})];return`${l}(${f.map(d=>`scale('${n}',${d})`).join(",")})`};let o,s;e.stack.fieldChannel==="x"?(o={...qu(t.encode.update,["y","yc","y2","height",...Wb]),x:{signal:r("min","datum")},x2:{signal:r("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update={...Rn(t.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(o={...qu(t.encode.update,["x","xc","x2","width"]),y:{signal:r("min","datum")},y2:{signal:r("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update={...Rn(t.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const l of Wb){const c=Ar(l,e.markDef,e.config);t.encode.update[l]?(o[l]=t.encode.update[l],delete t.encode.update[l]):c&&(o[l]=Ye(c)),c&&(t.encode.update[l]={value:0})}const a=[];if(e.stack.groupbyChannels?.length>0)for(const l of e.stack.groupbyChannels){const c=e.fieldDef(l),f=H(c);f&&a.push(f),(c?.bin||c?.timeUnit)&&a.push(H(c,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((l,c)=>{if(t.encode.update[c])return{...l,[c]:t.encode.update[c]};{const f=Ar(c,e.markDef,e.config);return f!==void 0?{...l,[c]:Ye(f)}:l}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(it.Main),name:UF+e.requestDataName(it.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:s},marks:[t]}]}]}function vpe(e){const{encoding:t,stack:n,mark:i,markDef:r,config:o}=e,s=t.order;if(!(!X(s)&&Ui(s)&&jb(s.value)||!s&&jb(Be("order",r,o)))){if((X(s)||q(s))&&!n)return KN(s,{expr:"datum"});if(vs(i)){const a=r.orient==="horizontal"?"y":"x",u=t[a];if(q(u))return{field:a}}}}function NA(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,s=ft(i.clip,Epe(e),wpe(e)),a=YN(i),u=r.key,l=vpe(e),c=Ape(e),f=Be("aria",i,o),d=Gd[n].postEncodingTransform?Gd[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:Gd[n].vgMark,...s?{clip:s}:{},...a?{style:a}:{},...u?{key:u.field}:{},...l?{sort:l}:{},...c||{},...f===!1?{aria:f}:{},from:{data:t.fromPrefix+e.requestDataName(it.Main)},encode:{update:Gd[n].encodeEntry(e)},...d?{transform:d}:{}}]}function Epe(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return t?.get("selectionExtent")||n?.get("selectionExtent")?!0:void 0}function wpe(e){const t=e.component.projection;return t&&!t.isFit?!0:void 0}function Ape(e){if(!e.component.selection)return null;const t=B(e.component.selection).length;let n=t,i=e.parent;for(;i&&n===0;)n=B(i.component.selection).length,i=i.parent;return n?{interactive:t>0||e.mark==="geoshape"||!!e.encoding.tooltip||!!e.markDef.tooltip}:null}class ZL extends YL{constructor(t,n,i,r={},o){super(t,"unit",n,i,o,void 0,H_(t)?t.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=l=>(l.from?.data&&(l.from.data=this.lookupDataSource(l.from.data),"time"in this.encoding&&(l.from.data=l.from.data+L4)),l.from?.facet?.data&&(l.from.facet.data=this.lookupDataSource(l.from.facet.data)),l);const s=Sr(t.mark)?{...t.mark}:{type:t.mark},a=s.type;s.filled===void 0&&(s.filled=Jue(s,o,{graticule:t.data&&dA(t.data)}));const u=this.encoding=tue(t.encoding||{},a,s.filled,o);this.markDef=w4(s,u,o),this.size=Zhe({encoding:u,size:H_(t)?{...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}:r}),this.stack=E4(this.markDef,u),this.specifiedScales=this.initScales(a,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=t.projection,this.selection=(t.params??[]).filter(l=>aA(l))}get hasProjection(){const{encoding:t}=this,n=this.mark===_6,i=t&&Vre.some(r=>fe(t[r]));return n||i}scaleDomain(t){const n=this.specifiedScales[t];return n?n.domain:void 0}axis(t){return this.specifiedAxes[t]}legend(t){return this.specifiedLegends[t]}initScales(t,n){return Aw.reduce((i,r)=>{const o=xt(n[r]);return o&&(i[r]=this.initScale(o.scale??{})),i},{})}initScale(t){const{domain:n,range:i}=t,r=Lt(t);return X(n)&&(r.domain=n.map(Vn)),X(i)&&(r.range=i.map(Vn)),r}initAxes(t){return So.reduce((n,i)=>{const r=t[i];if(fe(r)||i===et&&fe(t.x2)||i===Mt&&fe(t.y2)){const o=fe(r)?r.axis:void 0;n[i]=o&&this.initAxis({...o})}return n},{})}initAxis(t){const n=B(t),i={};for(const r of n){const o=t[r];i[r]=od(o)?VN(o):Vn(o)}return i}initLegends(t){return roe.reduce((n,i)=>{const r=xt(t[i]);if(r&&soe(i)){const o=r.legend;n[i]=o&&Lt(o)}return n},{})}parseData(){this.component.data=pm(this)}parseLayoutSize(){Lhe(this)}parseSelections(){this.component.selection=$fe(this,this.selection)}parseMarkGroup(){this.component.mark=ype(this)}parseAxesAndHeaders(){this.component.axes=Ghe(this)}assembleSelectionTopLevelSignals(t){return Wle(this,t)}assembleSignals(){return[...pL(this),...jle(this,[])]}assembleSelectionData(t){return Gle(this,t)}assembleLayout(){return null}assembleLayoutSignals(){return AA(this)}assembleMarks(){let t=this.component.mark??[];return(!this.parent||!Cl(this.parent))&&(t=B4(this,t)),t.map(this.correctDataNames)}assembleGroupStyle(){const{style:t}=this.view||{};return t!==void 0?t:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(t){return ea(this.encoding,t)}fieldDef(t){const n=this.encoding[t];return ji(n)}typedFieldDef(t){const n=this.fieldDef(t);return Cn(n)?n:null}}class LA extends TA{constructor(t,n,i,r,o){super(t,"layer",n,i,o,t.resolve,t.view);const s={...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}};this.children=t.layer.map((a,u)=>{if(H0(a))return new LA(a,this,this.getName(`layer_${u}`),s,o);if(Co(a))return new ZL(a,this,this.getName(`layer_${u}`),s,o);throw new Error(Cw(a))})}parseData(){this.component.data=pm(this);for(const t of this.children)t.parseData()}parseLayoutSize(){Rhe(this)}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){Vhe(this)}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,i)=>i.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleSignals()),pL(this))}assembleLayoutSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleLayoutSignals()),AA(this))}assembleSelectionData(t){return this.children.reduce((n,i)=>i.assembleSelectionData(n),t)}assembleGroupStyle(){const t=new Set;for(const i of this.children)for(const r of ct(i.assembleGroupStyle()))t.add(r);const n=Array.from(t);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let t=super.assembleTitle();if(t)return t;for(const n of this.children)if(t=n.assembleTitle(),t)return t}assembleLayout(){return null}assembleMarks(){return Hle(this,this.children.flatMap(t=>t.assembleMarks()))}assembleLegends(){return this.children.reduce((t,n)=>t.concat(n.assembleLegends()),TL(this))}}function PA(e,t,n,i,r){if(z0(e))return new Ic(e,t,n,r);if(H0(e))return new LA(e,t,n,i,r);if(Co(e))return new ZL(e,t,n,i,r);if(Cue(e))return new Uhe(e,t,n,r);throw new Error(Cw(e))}function Spe(e,t={}){t.logger&&Fse(t.logger),t.fieldTitle&&G6(t.fieldTitle);try{const n=v4(SN(t.config,e.config)),i=k4(e,n),r=PA(i,null,"",void 0,n);return r.parse(),Yde(r.component.data,r),{spec:$pe(r,Cpe(e,i.autosize,n,r),e.datasets,e.usermeta),normalized:i}}finally{t.logger&&kse(),t.fieldTitle&&Hae()}}function Cpe(e,t,n,i){const r=i.component.layoutSize.get("width"),o=i.component.layoutSize.get("height");if(t===void 0?(t={type:"pad"},i.hasAxisOrientSignalRef()&&(t.resize=!0)):de(t)&&(t={type:t}),r&&o&&Mle(t.type)){if(r==="step"&&o==="step")j(D_()),t.type="pad";else if(r==="step"||o==="step"){const s=r==="step"?"width":"height";j(D_(F0(s)));const a=s==="width"?"height":"width";t.type=Ole(a)}}return{...B(t).length===1&&t.type?t.type==="pad"?{}:{autosize:t.type}:{autosize:t},...rF(n,!1),...rF(e,!0)}}function $pe(e,t,n={},i){const r=e.config?zue(e.config):void 0,o=Dhe(e.component.data,n),s=e.assembleSelectionData(o),a=e.assembleProjections(),u=e.assembleTitle(),l=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let f=e.assembleLayoutSignals();f=f.filter(p=>(p.name==="width"||p.name==="height")&&p.value!==void 0?(t[p.name]=+p.value,!1):!0);const{params:d,...h}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...h,...u?{title:u}:{},...l?{style:l}:{},...c?{encode:{update:c}}:{},data:s,...a.length>0?{projections:a}:{},...e.assembleGroup([...f,...e.assembleSelectionTopLevelSignals([]),...m4(d)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}const _pe=_re.version,Fpe=Object.freeze(Object.defineProperty({__proto__:null,accessPathDepth:Gu,accessPathWithDatum:gw,accessWithDatumToUnescapedPath:Le,compile:Spe,contains:we,deepEqual:Xn,deleteNestedProperty:Np,duplicate:ce,entries:is,every:dw,fieldIntersection:pw,flatAccessWithDatum:FN,getFirstDefined:ft,hasIntersection:hw,hasProperty:U,hash:Ae,internalField:TN,isBoolean:uf,isEmpty:Ue,isEqual:qre,isInternalField:MN,isNullOrFalse:jb,isNumeric:w0,keys:B,logicalExpr:Nc,mergeDeep:$N,never:CN,normalize:k4,normalizeAngle:lf,omit:Rn,pick:qu,prefixGenerator:qb,removePathFromField:bl,replaceAll:ma,replacePathInField:bi,resetIdCounter:Gre,setEqual:_N,some:Wu,stringify:je,titleCase:Yf,unique:cr,uniqueId:DN,vals:qt,varName:Qe,version:_pe},Symbol.toStringTag,{value:"Module"}));function e8(e){const[t,n]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:n}}var kpe="2.15.0",Dpe={version:kpe};const ou="#fff",jF="#888",Tpe={background:"#333",view:{stroke:jF},title:{color:ou,subtitleColor:ou},style:{"guide-label":{fill:ou},"guide-title":{fill:ou}},axis:{domainColor:ou,gridColor:jF,tickColor:ou}},Fs="#4572a7",Mpe={background:"#fff",arc:{fill:Fs},area:{fill:Fs},line:{stroke:Fs,strokeWidth:2},path:{stroke:Fs},rect:{fill:Fs},shape:{stroke:Fs},symbol:{fill:Fs,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},ks="#30a2da",j1="#cbcbcb",Ope="#999",Rpe="#333",qF="#f0f0f0",WF="#333",Npe={arc:{fill:ks},area:{fill:ks},axis:{domainColor:j1,grid:!0,gridColor:j1,gridWidth:1,labelColor:Ope,labelFontSize:10,titleColor:Rpe,tickColor:j1,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:qF,group:{fill:qF},legend:{labelColor:WF,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:WF,titleFontSize:14,titlePadding:10},line:{stroke:ks,strokeWidth:2},path:{stroke:ks,strokeWidth:.5},rect:{fill:ks},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:ks},bar:{binSpacing:2,fill:ks,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},Ds="#000",Lpe={group:{fill:"#e5e5e5"},arc:{fill:Ds},area:{fill:Ds},line:{stroke:Ds},path:{stroke:Ds},rect:{fill:Ds},shape:{stroke:Ds},symbol:{fill:Ds,size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},Ppe=22,Ipe="normal",GF="Benton Gothic, sans-serif",HF=11.5,zpe="normal",Ts="#82c6df",q1="Benton Gothic Bold, sans-serif",VF="normal",YF=13,Xl={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"]},Bpe={background:"#ffffff",title:{anchor:"start",color:"#000000",font:q1,fontSize:Ppe,fontWeight:Ipe},arc:{fill:Ts},area:{fill:Ts},line:{stroke:Ts,strokeWidth:2},path:{stroke:Ts},rect:{fill:Ts},shape:{stroke:Ts},symbol:{fill:Ts,size:30},axis:{labelFont:GF,labelFontSize:HF,labelFontWeight:zpe,titleFont:q1,titleFontSize:YF,titleFontWeight:VF},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:GF,labelFontSize:HF,symbolType:"square",titleFont:q1,titleFontSize:YF,titleFontWeight:VF},range:{category:Xl["category-6"],diverging:Xl["fireandice-6"],heatmap:Xl["fire-7"],ordinal:Xl["fire-7"],ramp:Xl["fire-7"]}},Ms="#ab5787",Hd="#979797",Upe={background:"#f9f9f9",arc:{fill:Ms},area:{fill:Ms},line:{stroke:Ms},path:{stroke:Ms},rect:{fill:Ms},shape:{stroke:Ms},symbol:{fill:Ms,size:30},axis:{domainColor:Hd,domainWidth:.5,gridWidth:.2,labelColor:Hd,tickColor:Hd,tickWidth:.2,titleColor:Hd},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},Os="#3e5c69",jpe={background:"#fff",arc:{fill:Os},area:{fill:Os},line:{stroke:Os},path:{stroke:Os},rect:{fill:Os},shape:{stroke:Os},symbol:{fill:Os},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},si="#1696d2",XF="#000000",qpe="#FFFFFF",Vd="Lato",W1="Lato",Wpe="Lato",Gpe="#DEDDDD",Hpe=18,Kl={"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},Vpe={background:qpe,title:{anchor:"start",fontSize:Hpe,font:Vd},axisX:{domain:!0,domainColor:XF,domainWidth:1,grid:!1,labelFontSize:12,labelFont:W1,labelAngle:0,tickColor:XF,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:Vd},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:Gpe,gridWidth:1,labelFontSize:12,labelFont:W1,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:Vd,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:W1,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:Vd,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:Kl["six-groups-cat-1"],diverging:Kl["diverging-colors"],heatmap:Kl["diverging-colors"],ordinal:Kl["six-groups-seq"],ramp:Kl["shades-blue"]},area:{fill:si},rect:{fill:si},line:{color:si,stroke:si,strokeWidth:5},trail:{color:si,stroke:si,strokeWidth:0,size:1},path:{stroke:si,strokeWidth:.5},point:{filled:!0},text:{font:Wpe,color:si,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:si,stroke:null}},arc:{fill:si},shape:{stroke:si},symbol:{fill:si,size:30}},Rs="#3366CC",KF="#ccc",Yd="Arial, sans-serif",Ype={arc:{fill:Rs},area:{fill:Rs},path:{stroke:Rs},rect:{fill:Rs},shape:{stroke:Rs},symbol:{stroke:Rs},circle:{fill:Rs},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:Yd,fontSize:12},"guide-title":{font:Yd,fontSize:12},"group-title":{font:Yd,fontSize:12}},title:{font:Yd,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:KF,tickColor:KF,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},IA=e=>e*(1/3+1),JF=IA(9),QF=IA(10),ZF=IA(12),Jl="Segoe UI",ek="wf_standard-font, helvetica, arial, sans-serif",tk="#252423",Ql="#605E5C",nk="transparent",Xpe="#C8C6C4",Ci="#118DFF",Kpe="#12239E",Jpe="#E66C37",Qpe="#6B007B",Zpe="#E044A7",ege="#744EC2",tge="#D9B300",nge="#D64550",t8=Ci,n8="#DEEFFF",ik=[n8,t8],ige=[n8,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",t8],rge={view:{stroke:nk},background:nk,font:Jl,header:{titleFont:ek,titleFontSize:ZF,titleColor:tk,labelFont:Jl,labelFontSize:QF,labelColor:Ql},axis:{ticks:!1,grid:!1,domain:!1,labelColor:Ql,labelFontSize:JF,titleFont:ek,titleColor:tk,titleFontSize:ZF,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:Xpe,gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:Ci},line:{stroke:Ci,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Jl,fontSize:JF,fill:Ql},arc:{fill:Ci},area:{fill:Ci,line:!0,opacity:.6},path:{stroke:Ci},rect:{fill:Ci},point:{fill:Ci,filled:!0,size:75},shape:{stroke:Ci},symbol:{fill:Ci,strokeWidth:1.5,size:50},legend:{titleFont:Jl,titleFontWeight:"bold",titleColor:Ql,labelFont:Jl,labelFontSize:QF,labelColor:Ql,symbolType:"circle",symbolSize:75},range:{category:[Ci,Kpe,Jpe,Qpe,Zpe,ege,tge,nge],diverging:ik,heatmap:ik,ordinal:ige}},G1='IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,".sfnstext-regular",sans-serif',oge='IBM Plex Sans Condensed, system-ui, -apple-system, BlinkMacSystemFont, ".SFNSText-Regular", sans-serif',H1=400,Xd={textPrimary:{g90:"#f4f4f4",g100:"#f4f4f4",white:"#161616",g10:"#161616"},textSecondary:{g90:"#c6c6c6",g100:"#c6c6c6",white:"#525252",g10:"#525252"},layerAccent01:{white:"#e0e0e0",g10:"#e0e0e0",g90:"#525252",g100:"#393939"},gridBg:{white:"#ffffff",g10:"#ffffff",g90:"#161616",g100:"#161616"}},sge=["#8a3ffc","#33b1ff","#007d79","#ff7eb6","#fa4d56","#fff1f1","#6fdc8c","#4589ff","#d12771","#d2a106","#08bdba","#bae6ff","#ba4e00","#d4bbff"],age=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"];function gm({theme:e,background:t}){const n=["white","g10"].includes(e)?"light":"dark",i=Xd.gridBg[e],r=Xd.textPrimary[e],o=Xd.textSecondary[e],s=n==="dark"?sge:age,a=n==="dark"?"#d4bbff":"#6929c4";return{background:t,arc:{fill:a},area:{fill:a},path:{stroke:a},rect:{fill:a},shape:{stroke:a},symbol:{stroke:a},circle:{fill:a},view:{fill:i,stroke:i},group:{fill:i},title:{color:r,anchor:"start",dy:-15,fontSize:16,font:G1,fontWeight:600},axis:{labelColor:o,labelFontSize:12,labelFont:oge,labelFontWeight:H1,titleColor:r,titleFontWeight:600,titleFontSize:12,grid:!0,gridColor:Xd.layerAccent01[e],labelAngle:0},axisX:{titlePadding:10},axisY:{titlePadding:2.5},style:{"guide-label":{font:G1,fill:o,fontWeight:H1},"guide-title":{font:G1,fill:o,fontWeight:H1}},range:{category:s,diverging:["#750e13","#a2191f","#da1e28","#fa4d56","#ff8389","#ffb3b8","#ffd7d9","#fff1f1","#e5f6ff","#bae6ff","#82cfff","#33b1ff","#1192e8","#0072c3","#00539a","#003a6d"],heatmap:["#f6f2ff","#e8daff","#d4bbff","#be95ff","#a56eff","#8a3ffc","#6929c4","#491d8b","#31135e","#1c0f30"]}}}const uge=gm({theme:"white",background:"#ffffff"}),lge=gm({theme:"g10",background:"#f4f4f4"}),cge=gm({theme:"g90",background:"#262626"}),fge=gm({theme:"g100",background:"#161616"}),dge=Dpe.version,hge=Object.freeze(Object.defineProperty({__proto__:null,carbong10:lge,carbong100:fge,carbong90:cge,carbonwhite:uge,dark:Tpe,excel:Mpe,fivethirtyeight:Npe,ggplot2:Lpe,googlecharts:Ype,latimes:Bpe,powerbi:rge,quartz:Upe,urbaninstitute:Vpe,version:dge,vox:jpe},Symbol.toStringTag,{value:"Module"}));function $l(e,t,n){return e.fields=t||[],e.fname=n,e}function pge(e){return e.length===1?gge(e[0]):mge(e)}const gge=e=>function(t){return t[e]},mge=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function V1(e){throw Error(e)}function yge(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||V1("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&V1("Access path missing closing bracket: "+e),i&&V1("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function bge(e,t,n){const i=yge(e);return e=i.length===1?i[0]:e,$l(pge(i),[e],e)}bge("id");$l(e=>e,[],"identity");$l(()=>0,[],"zero");$l(()=>1,[],"one");$l(()=>!0,[],"true");$l(()=>!1,[],"false");var xge=Array.isArray;function rk(e){return e===Object(e)}function vge(e){return typeof e=="string"}function Ege(e,t,n,i){if(xge(e))return`[${e.map(r=>t(vge(r)?r:ok(r,n))).join(", ")}]`;if(rk(e)){let r="";const{title:o,image:s,...a}=e;o&&(r+=`<h2>${t(o)}</h2>`),s&&(r+=`<img src="${new URL(t(s),i||location.href).href}">`);const u=Object.keys(a);if(u.length>0){r+="<table>";for(const l of u){let c=a[l];c!==void 0&&(rk(c)&&(c=ok(c,n)),r+=`<tr><td class="key">${t(l)}</td><td class="value">${t(c)}</td></tr>`)}r+="</table>"}return r||"{}"}return t(e)}function wge(e){const t=[];return function(n,i){if(typeof i!="object"||i===null)return i;const r=t.indexOf(this)+1;return t.length=r,t.length>e?"[Object]":t.indexOf(i)>=0?"[Circular]":(t.push(i),i)}}function ok(e,t){return JSON.stringify(e,wge(t))}var Age=`#vg-tooltip-element {
18
18
  visibility: hidden;
19
19
  padding: 8px;
20
20
  position: fixed;
@@ -68,16 +68,16 @@ ${a}`)}return l}(e,"",0)}function yre(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e
68
68
  #vg-tooltip-element.dark-theme td.key {
69
69
  color: #bfbfbf;
70
70
  }
71
- `;const r8="vg-tooltip-element",Cge={offsetX:10,offsetY:10,id:r8,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:$ge,maxDepth:2,formatTooltip:wge,baseURL:"",anchor:"cursor",position:["top","bottom","left","right","top-left","top-right","bottom-left","bottom-right"]};function $ge(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;")}function _ge(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return Sge.toString().replace(r8,e)}function o8(e,t,{offsetX:n,offsetY:i}){const r=s8({x1:e.clientX,x2:e.clientX,y1:e.clientY,y2:e.clientY},t,n,i),o=["bottom-right","bottom-left","top-right","top-left"];for(const s of o)if(a8(r[s],t))return r[s];return r["top-left"]}function Fge(e,t,n,i,r){const{position:o,offsetX:s,offsetY:a}=r,u=e._el.getBoundingClientRect(),l=e._origin,c=kge(u,l,n),f=s8(c,i,s,a),d=Array.isArray(o)?o:[o];for(const h of d)if(a8(f[h],i)&&!Dge(t,f[h],i))return f[h];return o8(t,i,r)}function kge(e,t,n){const i=n.isVoronoi?n.datum.bounds:n.bounds;let r=e.left+t[0]+i.x1,o=e.top+t[1]+i.y1,s=n;for(;s.mark.group;)s=s.mark.group,r+=s.x??0,o+=s.y??0;const a=i.x2-i.x1,u=i.y2-i.y1;return{x1:r,x2:r+a,y1:o,y2:o+u}}function s8(e,t,n,i){const r=(e.x1+e.x2)/2,o=(e.y1+e.y2)/2,s=e.x1-t.width-n,a=r-t.width/2,u=e.x2+n,l=e.y1-t.height-i,c=o-t.height/2,f=e.y2+i;return{top:{x:a,y:l},bottom:{x:a,y:f},left:{x:s,y:c},right:{x:u,y:c},"top-left":{x:s,y:l},"top-right":{x:u,y:l},"bottom-left":{x:s,y:f},"bottom-right":{x:u,y:f}}}function a8(e,t){return e.x>=0&&e.y>=0&&e.x+t.width<=window.innerWidth&&e.y+t.height<=window.innerHeight}function Dge(e,t,n){return e.clientX>=t.x&&e.clientX<=t.x+n.width&&e.clientY>=t.y&&e.clientY<=t.y+n.height}class Tge{constructor(t){this.options={...Cge,...t};const n=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const i=document.createElement("style");i.setAttribute("id",this.options.styleId),i.innerHTML=_ge(n);const r=document.head;r.childNodes.length>0?r.insertBefore(i,r.childNodes[0]):r.appendChild(i)}}tooltipHandler(t,n,i,r){if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),(document.fullscreenElement??document.body).appendChild(this.el)),r==null||r===""){this.el.classList.remove("visible",`${this.options.theme}-theme`);return}this.el.innerHTML=this.options.formatTooltip(r,this.options.sanitize,this.options.maxDepth,this.options.baseURL),this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:o,y:s}=this.options.anchor==="mark"?Fge(t,n,i,this.el.getBoundingClientRect(),this.options):o8(n,this.el.getBoundingClientRect(),this.options);this.el.style.top=`${s}px`,this.el.style.left=`${o}px`}}var Y1={};/*!
71
+ `;const i8="vg-tooltip-element",Sge={offsetX:10,offsetY:10,id:i8,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:Cge,maxDepth:2,formatTooltip:Ege,baseURL:"",anchor:"cursor",position:["top","bottom","left","right","top-left","top-right","bottom-left","bottom-right"]};function Cge(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;")}function $ge(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return Age.toString().replace(i8,e)}function r8(e,t,{offsetX:n,offsetY:i}){const r=o8({x1:e.clientX,x2:e.clientX,y1:e.clientY,y2:e.clientY},t,n,i),o=["bottom-right","bottom-left","top-right","top-left"];for(const s of o)if(s8(r[s],t))return r[s];return r["top-left"]}function _ge(e,t,n,i,r){const{position:o,offsetX:s,offsetY:a}=r,u=e._el.getBoundingClientRect(),l=e._origin,c=Fge(u,l,n),f=o8(c,i,s,a),d=Array.isArray(o)?o:[o];for(const h of d)if(s8(f[h],i)&&!kge(t,f[h],i))return f[h];return r8(t,i,r)}function Fge(e,t,n){const i=n.isVoronoi?n.datum.bounds:n.bounds;let r=e.left+t[0]+i.x1,o=e.top+t[1]+i.y1,s=n;for(;s.mark.group;)s=s.mark.group,r+=s.x??0,o+=s.y??0;const a=i.x2-i.x1,u=i.y2-i.y1;return{x1:r,x2:r+a,y1:o,y2:o+u}}function o8(e,t,n,i){const r=(e.x1+e.x2)/2,o=(e.y1+e.y2)/2,s=e.x1-t.width-n,a=r-t.width/2,u=e.x2+n,l=e.y1-t.height-i,c=o-t.height/2,f=e.y2+i;return{top:{x:a,y:l},bottom:{x:a,y:f},left:{x:s,y:c},right:{x:u,y:c},"top-left":{x:s,y:l},"top-right":{x:u,y:l},"bottom-left":{x:s,y:f},"bottom-right":{x:u,y:f}}}function s8(e,t){return e.x>=0&&e.y>=0&&e.x+t.width<=window.innerWidth&&e.y+t.height<=window.innerHeight}function kge(e,t,n){return e.clientX>=t.x&&e.clientX<=t.x+n.width&&e.clientY>=t.y&&e.clientY<=t.y+n.height}class Dge{constructor(t){this.options={...Sge,...t};const n=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const i=document.createElement("style");i.setAttribute("id",this.options.styleId),i.innerHTML=$ge(n);const r=document.head;r.childNodes.length>0?r.insertBefore(i,r.childNodes[0]):r.appendChild(i)}}tooltipHandler(t,n,i,r){if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),(document.fullscreenElement??document.body).appendChild(this.el)),r==null||r===""){this.el.classList.remove("visible",`${this.options.theme}-theme`);return}this.el.innerHTML=this.options.formatTooltip(r,this.options.sanitize,this.options.maxDepth,this.options.baseURL),this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:o,y:s}=this.options.anchor==="mark"?_ge(t,n,i,this.el.getBoundingClientRect(),this.options):r8(n,this.el.getBoundingClientRect(),this.options);this.el.style.top=`${s}px`,this.el.style.left=`${o}px`}}var Y1={};/*!
72
72
  * https://github.com/Starcounter-Jack/JSON-Patch
73
73
  * (c) 2017-2022 Joachim Wester
74
74
  * MIT licensed
75
- */var Mge=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,r){i.__proto__=r}||function(i,r){for(var o in r)r.hasOwnProperty(o)&&(i[o]=r[o])},e(t,n)};return function(t,n){e(t,n);function i(){this.constructor=t}t.prototype=n===null?Object.create(n):(i.prototype=n.prototype,new i)}}(),Oge=Object.prototype.hasOwnProperty;function bx(e,t){return Oge.call(e,t)}function xx(e){if(Array.isArray(e)){for(var t=new Array(e.length),n=0;n<t.length;n++)t[n]=""+n;return t}if(Object.keys)return Object.keys(e);var i=[];for(var r in e)bx(e,r)&&i.push(r);return i}function Kn(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}}function vx(e){for(var t=0,n=e.length,i;t<n;){if(i=e.charCodeAt(t),i>=48&&i<=57){t++;continue}return!1}return!0}function Is(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function u8(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Ex(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,n=e.length;t<n;t++)if(Ex(e[t]))return!0}else if(typeof e=="object"){for(var i=xx(e),r=i.length,o=0;o<r;o++)if(Ex(e[i[o]]))return!0}}return!1}function ak(e,t){var n=[e];for(var i in t){var r=typeof t[i]=="object"?JSON.stringify(t[i],null,2):t[i];typeof r<"u"&&n.push(i+": "+r)}return n.join(`
76
- `)}var l8=function(e){Mge(t,e);function t(n,i,r,o,s){var a=this.constructor,u=e.call(this,ak(n,{name:i,index:r,operation:o,tree:s}))||this;return u.name=i,u.index=r,u.operation=o,u.tree=s,Object.setPrototypeOf(u,a.prototype),u.message=ak(n,{name:i,index:r,operation:o,tree:s}),u}return t}(Error),ot=l8,Rge=Kn,pu={add:function(e,t,n){return e[t]=this.value,{newDocument:n}},remove:function(e,t,n){var i=e[t];return delete e[t],{newDocument:n,removed:i}},replace:function(e,t,n){var i=e[t];return e[t]=this.value,{newDocument:n,removed:i}},move:function(e,t,n){var i=Kp(n,this.path);i&&(i=Kn(i));var r=ia(n,{op:"remove",path:this.from}).removed;return ia(n,{op:"add",path:this.path,value:r}),{newDocument:n,removed:i}},copy:function(e,t,n){var i=Kp(n,this.from);return ia(n,{op:"add",path:this.path,value:Kn(i)}),{newDocument:n}},test:function(e,t,n){return{newDocument:n,test:mf(e[t],this.value)}},_get:function(e,t,n){return this.value=e[t],{newDocument:n}}},Nge={add:function(e,t,n){return vx(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:n,index:t}},remove:function(e,t,n){var i=e.splice(t,1);return{newDocument:n,removed:i[0]}},replace:function(e,t,n){var i=e[t];return e[t]=this.value,{newDocument:n,removed:i}},move:pu.move,copy:pu.copy,test:pu.test,_get:pu._get};function Kp(e,t){if(t=="")return e;var n={op:"_get",path:t};return ia(e,n),n.value}function ia(e,t,n,i,r,o){if(n===void 0&&(n=!1),i===void 0&&(i=!0),r===void 0&&(r=!0),o===void 0&&(o=0),n&&(typeof n=="function"?n(t,0,e,t.path):Jp(t,0)),t.path===""){var s={newDocument:e};if(t.op==="add")return s.newDocument=t.value,s;if(t.op==="replace")return s.newDocument=t.value,s.removed=e,s;if(t.op==="move"||t.op==="copy")return s.newDocument=Kp(e,t.from),t.op==="move"&&(s.removed=e),s;if(t.op==="test"){if(s.test=mf(e,t.value),s.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return s.newDocument=e,s}else{if(t.op==="remove")return s.removed=e,s.newDocument=null,s;if(t.op==="_get")return t.value=e,s;if(n)throw new ot("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",o,t,e);return s}}else{i||(e=Kn(e));var a=t.path||"",u=a.split("/"),l=e,c=1,f=u.length,d=void 0,h=void 0,p=void 0;for(typeof n=="function"?p=n:p=Jp;;){if(h=u[c],h&&h.indexOf("~")!=-1&&(h=u8(h)),r&&(h=="__proto__"||h=="prototype"&&c>0&&u[c-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(n&&d===void 0&&(l[h]===void 0?d=u.slice(0,c).join("/"):c==f-1&&(d=t.path),d!==void 0&&p(t,0,e,d)),c++,Array.isArray(l)){if(h==="-")h=l.length;else{if(n&&!vx(h))throw new ot("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",o,t,e);vx(h)&&(h=~~h)}if(c>=f){if(n&&t.op==="add"&&h>l.length)throw new ot("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",o,t,e);var s=Nge[t.op].call(t,l,h,e);if(s.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return s}}else if(c>=f){var s=pu[t.op].call(t,l,h,e);if(s.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return s}if(l=l[h],n&&c<f&&(!l||typeof l!="object"))throw new ot("Cannot perform operation at the desired path","OPERATION_PATH_UNRESOLVABLE",o,t,e)}}}function mm(e,t,n,i,r){if(i===void 0&&(i=!0),r===void 0&&(r=!0),n&&!Array.isArray(t))throw new ot("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");i||(e=Kn(e));for(var o=new Array(t.length),s=0,a=t.length;s<a;s++)o[s]=ia(e,t[s],n,!0,r,s),e=o[s].newDocument;return o.newDocument=e,o}function Lge(e,t,n){var i=ia(e,t);if(i.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",n,t,e);return i.newDocument}function Jp(e,t,n,i){if(typeof e!="object"||e===null||Array.isArray(e))throw new ot("Operation is not an object","OPERATION_NOT_AN_OBJECT",t,e,n);if(pu[e.op]){if(typeof e.path!="string")throw new ot("Operation `path` property is not a string","OPERATION_PATH_INVALID",t,e,n);if(e.path.indexOf("/")!==0&&e.path.length>0)throw new ot('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,n);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new ot("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,n);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,n);if((e.op==="add"||e.op==="replace"||e.op==="test")&&Ex(e.value))throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,n);if(n){if(e.op=="add"){var r=e.path.split("/").length,o=i.split("/").length;if(r!==o+1&&r!==o)throw new ot("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,n)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==i)throw new ot("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,n)}else if(e.op==="move"||e.op==="copy"){var s={op:"_get",path:e.from,value:void 0},a=c8([s],n);if(a&&a.name==="OPERATION_PATH_UNRESOLVABLE")throw new ot("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,n)}}}else throw new ot("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,n)}function c8(e,t,n){try{if(!Array.isArray(e))throw new ot("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)mm(Kn(t),Kn(e),n||!0);else{n=n||Jp;for(var i=0;i<e.length;i++)n(e[i],i,t,void 0)}}catch(r){if(r instanceof ot)return r;throw r}}function mf(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var n=Array.isArray(e),i=Array.isArray(t),r,o,s;if(n&&i){if(o=e.length,o!=t.length)return!1;for(r=o;r--!==0;)if(!mf(e[r],t[r]))return!1;return!0}if(n!=i)return!1;var a=Object.keys(e);if(o=a.length,o!==Object.keys(t).length)return!1;for(r=o;r--!==0;)if(!t.hasOwnProperty(a[r]))return!1;for(r=o;r--!==0;)if(s=a[r],!mf(e[s],t[s]))return!1;return!0}return e!==e&&t!==t}var Pge=Object.freeze({__proto__:null,JsonPatchError:ot,_areEquals:mf,applyOperation:ia,applyPatch:mm,applyReducer:Lge,deepClone:Rge,getValueByPointer:Kp,validate:c8,validator:Jp});/*!
75
+ */var Tge=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,r){i.__proto__=r}||function(i,r){for(var o in r)r.hasOwnProperty(o)&&(i[o]=r[o])},e(t,n)};return function(t,n){e(t,n);function i(){this.constructor=t}t.prototype=n===null?Object.create(n):(i.prototype=n.prototype,new i)}}(),Mge=Object.prototype.hasOwnProperty;function bx(e,t){return Mge.call(e,t)}function xx(e){if(Array.isArray(e)){for(var t=new Array(e.length),n=0;n<t.length;n++)t[n]=""+n;return t}if(Object.keys)return Object.keys(e);var i=[];for(var r in e)bx(e,r)&&i.push(r);return i}function Kn(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}}function vx(e){for(var t=0,n=e.length,i;t<n;){if(i=e.charCodeAt(t),i>=48&&i<=57){t++;continue}return!1}return!0}function Is(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function a8(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Ex(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,n=e.length;t<n;t++)if(Ex(e[t]))return!0}else if(typeof e=="object"){for(var i=xx(e),r=i.length,o=0;o<r;o++)if(Ex(e[i[o]]))return!0}}return!1}function sk(e,t){var n=[e];for(var i in t){var r=typeof t[i]=="object"?JSON.stringify(t[i],null,2):t[i];typeof r<"u"&&n.push(i+": "+r)}return n.join(`
76
+ `)}var u8=function(e){Tge(t,e);function t(n,i,r,o,s){var a=this.constructor,u=e.call(this,sk(n,{name:i,index:r,operation:o,tree:s}))||this;return u.name=i,u.index=r,u.operation=o,u.tree=s,Object.setPrototypeOf(u,a.prototype),u.message=sk(n,{name:i,index:r,operation:o,tree:s}),u}return t}(Error),ot=u8,Oge=Kn,pu={add:function(e,t,n){return e[t]=this.value,{newDocument:n}},remove:function(e,t,n){var i=e[t];return delete e[t],{newDocument:n,removed:i}},replace:function(e,t,n){var i=e[t];return e[t]=this.value,{newDocument:n,removed:i}},move:function(e,t,n){var i=Kp(n,this.path);i&&(i=Kn(i));var r=ia(n,{op:"remove",path:this.from}).removed;return ia(n,{op:"add",path:this.path,value:r}),{newDocument:n,removed:i}},copy:function(e,t,n){var i=Kp(n,this.from);return ia(n,{op:"add",path:this.path,value:Kn(i)}),{newDocument:n}},test:function(e,t,n){return{newDocument:n,test:mf(e[t],this.value)}},_get:function(e,t,n){return this.value=e[t],{newDocument:n}}},Rge={add:function(e,t,n){return vx(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:n,index:t}},remove:function(e,t,n){var i=e.splice(t,1);return{newDocument:n,removed:i[0]}},replace:function(e,t,n){var i=e[t];return e[t]=this.value,{newDocument:n,removed:i}},move:pu.move,copy:pu.copy,test:pu.test,_get:pu._get};function Kp(e,t){if(t=="")return e;var n={op:"_get",path:t};return ia(e,n),n.value}function ia(e,t,n,i,r,o){if(n===void 0&&(n=!1),i===void 0&&(i=!0),r===void 0&&(r=!0),o===void 0&&(o=0),n&&(typeof n=="function"?n(t,0,e,t.path):Jp(t,0)),t.path===""){var s={newDocument:e};if(t.op==="add")return s.newDocument=t.value,s;if(t.op==="replace")return s.newDocument=t.value,s.removed=e,s;if(t.op==="move"||t.op==="copy")return s.newDocument=Kp(e,t.from),t.op==="move"&&(s.removed=e),s;if(t.op==="test"){if(s.test=mf(e,t.value),s.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return s.newDocument=e,s}else{if(t.op==="remove")return s.removed=e,s.newDocument=null,s;if(t.op==="_get")return t.value=e,s;if(n)throw new ot("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",o,t,e);return s}}else{i||(e=Kn(e));var a=t.path||"",u=a.split("/"),l=e,c=1,f=u.length,d=void 0,h=void 0,p=void 0;for(typeof n=="function"?p=n:p=Jp;;){if(h=u[c],h&&h.indexOf("~")!=-1&&(h=a8(h)),r&&(h=="__proto__"||h=="prototype"&&c>0&&u[c-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(n&&d===void 0&&(l[h]===void 0?d=u.slice(0,c).join("/"):c==f-1&&(d=t.path),d!==void 0&&p(t,0,e,d)),c++,Array.isArray(l)){if(h==="-")h=l.length;else{if(n&&!vx(h))throw new ot("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",o,t,e);vx(h)&&(h=~~h)}if(c>=f){if(n&&t.op==="add"&&h>l.length)throw new ot("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",o,t,e);var s=Rge[t.op].call(t,l,h,e);if(s.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return s}}else if(c>=f){var s=pu[t.op].call(t,l,h,e);if(s.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return s}if(l=l[h],n&&c<f&&(!l||typeof l!="object"))throw new ot("Cannot perform operation at the desired path","OPERATION_PATH_UNRESOLVABLE",o,t,e)}}}function mm(e,t,n,i,r){if(i===void 0&&(i=!0),r===void 0&&(r=!0),n&&!Array.isArray(t))throw new ot("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");i||(e=Kn(e));for(var o=new Array(t.length),s=0,a=t.length;s<a;s++)o[s]=ia(e,t[s],n,!0,r,s),e=o[s].newDocument;return o.newDocument=e,o}function Nge(e,t,n){var i=ia(e,t);if(i.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",n,t,e);return i.newDocument}function Jp(e,t,n,i){if(typeof e!="object"||e===null||Array.isArray(e))throw new ot("Operation is not an object","OPERATION_NOT_AN_OBJECT",t,e,n);if(pu[e.op]){if(typeof e.path!="string")throw new ot("Operation `path` property is not a string","OPERATION_PATH_INVALID",t,e,n);if(e.path.indexOf("/")!==0&&e.path.length>0)throw new ot('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,n);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new ot("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,n);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,n);if((e.op==="add"||e.op==="replace"||e.op==="test")&&Ex(e.value))throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,n);if(n){if(e.op=="add"){var r=e.path.split("/").length,o=i.split("/").length;if(r!==o+1&&r!==o)throw new ot("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,n)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==i)throw new ot("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,n)}else if(e.op==="move"||e.op==="copy"){var s={op:"_get",path:e.from,value:void 0},a=l8([s],n);if(a&&a.name==="OPERATION_PATH_UNRESOLVABLE")throw new ot("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,n)}}}else throw new ot("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,n)}function l8(e,t,n){try{if(!Array.isArray(e))throw new ot("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)mm(Kn(t),Kn(e),n||!0);else{n=n||Jp;for(var i=0;i<e.length;i++)n(e[i],i,t,void 0)}}catch(r){if(r instanceof ot)return r;throw r}}function mf(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var n=Array.isArray(e),i=Array.isArray(t),r,o,s;if(n&&i){if(o=e.length,o!=t.length)return!1;for(r=o;r--!==0;)if(!mf(e[r],t[r]))return!1;return!0}if(n!=i)return!1;var a=Object.keys(e);if(o=a.length,o!==Object.keys(t).length)return!1;for(r=o;r--!==0;)if(!t.hasOwnProperty(a[r]))return!1;for(r=o;r--!==0;)if(s=a[r],!mf(e[s],t[s]))return!1;return!0}return e!==e&&t!==t}var Lge=Object.freeze({__proto__:null,JsonPatchError:ot,_areEquals:mf,applyOperation:ia,applyPatch:mm,applyReducer:Nge,deepClone:Oge,getValueByPointer:Kp,validate:l8,validator:Jp});/*!
77
77
  * https://github.com/Starcounter-Jack/JSON-Patch
78
78
  * (c) 2017-2021 Joachim Wester
79
79
  * MIT license
80
- */var zA=new WeakMap,Ige=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),zge=function(){function e(t,n){this.callback=t,this.observer=n}return e}();function Bge(e){return zA.get(e)}function Uge(e,t){return e.observers.get(t)}function jge(e,t){e.observers.delete(t.callback)}function qge(e,t){t.unobserve()}function Wge(e,t){var n=[],i,r=Bge(e);if(!r)r=new Ige(e),zA.set(e,r);else{var o=Uge(r,t);i=o&&o.observer}if(i)return i;if(i={},r.value=Kn(e),t){i.callback=t,i.next=null;var s=function(){wx(i)},a=function(){clearTimeout(i.next),i.next=setTimeout(s)};typeof window<"u"&&(window.addEventListener("mouseup",a),window.addEventListener("keyup",a),window.addEventListener("mousedown",a),window.addEventListener("keydown",a),window.addEventListener("change",a))}return i.patches=n,i.object=e,i.unobserve=function(){wx(i),clearTimeout(i.next),jge(r,i),typeof window<"u"&&(window.removeEventListener("mouseup",a),window.removeEventListener("keyup",a),window.removeEventListener("mousedown",a),window.removeEventListener("keydown",a),window.removeEventListener("change",a))},r.observers.set(t,new zge(t,i)),i}function wx(e,t){t===void 0&&(t=!1);var n=zA.get(e.object);BA(n.value,e.object,e.patches,"",t),e.patches.length&&mm(n.value,e.patches);var i=e.patches;return i.length>0&&(e.patches=[],e.callback&&e.callback(i)),i}function BA(e,t,n,i,r){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var o=xx(t),s=xx(e),a=!1,u=s.length-1;u>=0;u--){var l=s[u],c=e[l];if(bx(t,l)&&!(t[l]===void 0&&c!==void 0&&Array.isArray(t)===!1)){var f=t[l];typeof c=="object"&&c!=null&&typeof f=="object"&&f!=null&&Array.isArray(c)===Array.isArray(f)?BA(c,f,n,i+"/"+Is(l),r):c!==f&&(r&&n.push({op:"test",path:i+"/"+Is(l),value:Kn(c)}),n.push({op:"replace",path:i+"/"+Is(l),value:Kn(f)}))}else Array.isArray(e)===Array.isArray(t)?(r&&n.push({op:"test",path:i+"/"+Is(l),value:Kn(c)}),n.push({op:"remove",path:i+"/"+Is(l)}),a=!0):(r&&n.push({op:"test",path:i,value:e}),n.push({op:"replace",path:i,value:t}))}if(!(!a&&o.length==s.length))for(var u=0;u<o.length;u++){var l=o[u];!bx(e,l)&&t[l]!==void 0&&n.push({op:"add",path:i+"/"+Is(l),value:Kn(t[l])})}}}function Gge(e,t,n){n===void 0&&(n=!1);var i=[];return BA(e,t,i,"",n),i}var Hge=Object.freeze({__proto__:null,compare:Gge,generate:wx,observe:Wge,unobserve:qge});Object.assign({},Pge,Hge,{JsonPatchError:l8,deepClone:Kn,escapePathComponent:Is,unescapePathComponent:u8});function Vge(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var X1,uk;function Yge(){if(uk)return X1;uk=1;class e{constructor(){this.max=1e3,this.map=new Map}get(n){const i=this.map.get(n);if(i!==void 0)return this.map.delete(n),this.map.set(n,i),i}delete(n){return this.map.delete(n)}set(n,i){if(!this.delete(n)&&i!==void 0){if(this.map.size>=this.max){const o=this.map.keys().next().value;this.delete(o)}this.map.set(n,i)}return this}}return X1=e,X1}var K1,lk;function UA(){if(lk)return K1;lk=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return K1=i=>i?typeof i!="object"?e:i:t,K1}var Kd={exports:{}},J1,ck;function jA(){if(ck)return J1;ck=1;const e="2.0.0",t=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,r=t-6;return J1={MAX_LENGTH:t,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:r,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},J1}var Q1,fk;function ym(){return fk||(fk=1,Q1=typeof process=="object"&&Y1&&Y1.NODE_DEBUG&&/\bsemver\b/i.test(Y1.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{}),Q1}var dk;function qA(){return dk||(dk=1,function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:r}=jA(),o=ym();t=e.exports={};const s=t.re=[],a=t.safeRe=[],u=t.src=[],l=t.t={};let c=0;const f="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",r],[f,i]],h=g=>{for(const[m,y]of d)g=g.split(`${m}*`).join(`${m}{0,${y}}`).split(`${m}+`).join(`${m}{1,${y}}`);return g},p=(g,m,y)=>{const b=h(m),x=c++;o(g,x,m),l[g]=x,u[x]=m,s[x]=new RegExp(m,y?"g":void 0),a[x]=new RegExp(b,y?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),p("MAINVERSION",`(${u[l.NUMERICIDENTIFIER]})\\.(${u[l.NUMERICIDENTIFIER]})\\.(${u[l.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${u[l.NUMERICIDENTIFIERLOOSE]})\\.(${u[l.NUMERICIDENTIFIERLOOSE]})\\.(${u[l.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${u[l.NUMERICIDENTIFIER]}|${u[l.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${u[l.NUMERICIDENTIFIERLOOSE]}|${u[l.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${u[l.PRERELEASEIDENTIFIER]}(?:\\.${u[l.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${u[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[l.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${f}+`),p("BUILD",`(?:\\+(${u[l.BUILDIDENTIFIER]}(?:\\.${u[l.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${u[l.MAINVERSION]}${u[l.PRERELEASE]}?${u[l.BUILD]}?`),p("FULL",`^${u[l.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${u[l.MAINVERSIONLOOSE]}${u[l.PRERELEASELOOSE]}?${u[l.BUILD]}?`),p("LOOSE",`^${u[l.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${u[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${u[l.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${u[l.XRANGEIDENTIFIER]})(?:\\.(${u[l.XRANGEIDENTIFIER]})(?:\\.(${u[l.XRANGEIDENTIFIER]})(?:${u[l.PRERELEASE]})?${u[l.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${u[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[l.XRANGEIDENTIFIERLOOSE]})(?:${u[l.PRERELEASELOOSE]})?${u[l.BUILD]}?)?)?`),p("XRANGE",`^${u[l.GTLT]}\\s*${u[l.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${u[l.GTLT]}\\s*${u[l.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),p("COERCE",`${u[l.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",u[l.COERCEPLAIN]+`(?:${u[l.PRERELEASE]})?(?:${u[l.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",u[l.COERCE],!0),p("COERCERTLFULL",u[l.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${u[l.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",p("TILDE",`^${u[l.LONETILDE]}${u[l.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${u[l.LONETILDE]}${u[l.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${u[l.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",p("CARET",`^${u[l.LONECARET]}${u[l.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${u[l.LONECARET]}${u[l.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${u[l.GTLT]}\\s*(${u[l.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${u[l.GTLT]}\\s*(${u[l.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${u[l.GTLT]}\\s*(${u[l.LOOSEPLAIN]}|${u[l.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${u[l.XRANGEPLAIN]})\\s+-\\s+(${u[l.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${u[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[l.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Kd,Kd.exports)),Kd.exports}var Z1,hk;function Xge(){if(hk)return Z1;hk=1;const e=/^[0-9]+$/,t=(i,r)=>{const o=e.test(i),s=e.test(r);return o&&s&&(i=+i,r=+r),i===r?0:o&&!s?-1:s&&!o?1:i<r?-1:1};return Z1={compareIdentifiers:t,rcompareIdentifiers:(i,r)=>t(r,i)},Z1}var ey,pk;function WA(){if(pk)return ey;pk=1;const e=ym(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:n}=jA(),{safeRe:i,t:r}=qA(),o=UA(),{compareIdentifiers:s}=Xge();class a{constructor(l,c){if(c=o(c),l instanceof a){if(l.loose===!!c.loose&&l.includePrerelease===!!c.includePrerelease)return l;l=l.version}else if(typeof l!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof l}".`);if(l.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",l,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;const f=l.trim().match(c.loose?i[r.LOOSE]:i[r.FULL]);if(!f)throw new TypeError(`Invalid Version: ${l}`);if(this.raw=l,this.major=+f[1],this.minor=+f[2],this.patch=+f[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");f[4]?this.prerelease=f[4].split(".").map(d=>{if(/^[0-9]+$/.test(d)){const h=+d;if(h>=0&&h<n)return h}return d}):this.prerelease=[],this.build=f[5]?f[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(l){if(e("SemVer.compare",this.version,this.options,l),!(l instanceof a)){if(typeof l=="string"&&l===this.version)return 0;l=new a(l,this.options)}return l.version===this.version?0:this.compareMain(l)||this.comparePre(l)}compareMain(l){return l instanceof a||(l=new a(l,this.options)),s(this.major,l.major)||s(this.minor,l.minor)||s(this.patch,l.patch)}comparePre(l){if(l instanceof a||(l=new a(l,this.options)),this.prerelease.length&&!l.prerelease.length)return-1;if(!this.prerelease.length&&l.prerelease.length)return 1;if(!this.prerelease.length&&!l.prerelease.length)return 0;let c=0;do{const f=this.prerelease[c],d=l.prerelease[c];if(e("prerelease compare",c,f,d),f===void 0&&d===void 0)return 0;if(d===void 0)return 1;if(f===void 0)return-1;if(f===d)continue;return s(f,d)}while(++c)}compareBuild(l){l instanceof a||(l=new a(l,this.options));let c=0;do{const f=this.build[c],d=l.build[c];if(e("build compare",c,f,d),f===void 0&&d===void 0)return 0;if(d===void 0)return 1;if(f===void 0)return-1;if(f===d)continue;return s(f,d)}while(++c)}inc(l,c,f){switch(l){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",c,f);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",c,f);break;case"prepatch":this.prerelease.length=0,this.inc("patch",c,f),this.inc("pre",c,f);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",c,f),this.inc("pre",c,f);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const d=Number(f)?1:0;if(!c&&f===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[d];else{let h=this.prerelease.length;for(;--h>=0;)typeof this.prerelease[h]=="number"&&(this.prerelease[h]++,h=-2);if(h===-1){if(c===this.prerelease.join(".")&&f===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(d)}}if(c){let h=[c,d];f===!1&&(h=[c]),s(this.prerelease[0],c)===0?isNaN(this.prerelease[1])&&(this.prerelease=h):this.prerelease=h}break}default:throw new Error(`invalid increment argument: ${l}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return ey=a,ey}var ty,gk;function _l(){if(gk)return ty;gk=1;const e=WA();return ty=(n,i,r)=>new e(n,r).compare(new e(i,r)),ty}var ny,mk;function Kge(){if(mk)return ny;mk=1;const e=_l();return ny=(n,i,r)=>e(n,i,r)===0,ny}var iy,yk;function Jge(){if(yk)return iy;yk=1;const e=_l();return iy=(n,i,r)=>e(n,i,r)!==0,iy}var ry,bk;function Qge(){if(bk)return ry;bk=1;const e=_l();return ry=(n,i,r)=>e(n,i,r)>0,ry}var oy,xk;function Zge(){if(xk)return oy;xk=1;const e=_l();return oy=(n,i,r)=>e(n,i,r)>=0,oy}var sy,vk;function e0e(){if(vk)return sy;vk=1;const e=_l();return sy=(n,i,r)=>e(n,i,r)<0,sy}var ay,Ek;function t0e(){if(Ek)return ay;Ek=1;const e=_l();return ay=(n,i,r)=>e(n,i,r)<=0,ay}var uy,wk;function n0e(){if(wk)return uy;wk=1;const e=Kge(),t=Jge(),n=Qge(),i=Zge(),r=e0e(),o=t0e();return uy=(a,u,l,c)=>{switch(u){case"===":return typeof a=="object"&&(a=a.version),typeof l=="object"&&(l=l.version),a===l;case"!==":return typeof a=="object"&&(a=a.version),typeof l=="object"&&(l=l.version),a!==l;case"":case"=":case"==":return e(a,l,c);case"!=":return t(a,l,c);case">":return n(a,l,c);case">=":return i(a,l,c);case"<":return r(a,l,c);case"<=":return o(a,l,c);default:throw new TypeError(`Invalid operator: ${u}`)}},uy}var ly,Ak;function i0e(){if(Ak)return ly;Ak=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(c,f){if(f=n(f),c instanceof t){if(c.loose===!!f.loose)return c;c=c.value}c=c.trim().split(/\s+/).join(" "),s("comparator",c,f),this.options=f,this.loose=!!f.loose,this.parse(c),this.semver===e?this.value="":this.value=this.operator+this.semver.version,s("comp",this)}parse(c){const f=this.options.loose?i[r.COMPARATORLOOSE]:i[r.COMPARATOR],d=c.match(f);if(!d)throw new TypeError(`Invalid comparator: ${c}`);this.operator=d[1]!==void 0?d[1]:"",this.operator==="="&&(this.operator=""),d[2]?this.semver=new a(d[2],this.options.loose):this.semver=e}toString(){return this.value}test(c){if(s("Comparator.test",c,this.options.loose),this.semver===e||c===e)return!0;if(typeof c=="string")try{c=new a(c,this.options)}catch{return!1}return o(c,this.operator,this.semver,this.options)}intersects(c,f){if(!(c instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new u(c.value,f).test(this.value):c.operator===""?c.value===""?!0:new u(this.value,f).test(c.semver):(f=n(f),f.includePrerelease&&(this.value==="<0.0.0-0"||c.value==="<0.0.0-0")||!f.includePrerelease&&(this.value.startsWith("<0.0.0")||c.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&c.operator.startsWith(">")||this.operator.startsWith("<")&&c.operator.startsWith("<")||this.semver.version===c.semver.version&&this.operator.includes("=")&&c.operator.includes("=")||o(this.semver,"<",c.semver,f)&&this.operator.startsWith(">")&&c.operator.startsWith("<")||o(this.semver,">",c.semver,f)&&this.operator.startsWith("<")&&c.operator.startsWith(">")))}}ly=t;const n=UA(),{safeRe:i,t:r}=qA(),o=n0e(),s=ym(),a=WA(),u=f8();return ly}var cy,Sk;function f8(){if(Sk)return cy;Sk=1;const e=/\s+/g;class t{constructor($,D){if(D=r(D),$ instanceof t)return $.loose===!!D.loose&&$.includePrerelease===!!D.includePrerelease?$:new t($.raw,D);if($ instanceof o)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=D,this.loose=!!D.loose,this.includePrerelease=!!D.includePrerelease,this.raw=$.trim().replace(e," "),this.set=this.raw.split("||").map(P=>this.parseRange(P.trim())).filter(P=>P.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const P=this.set[0];if(this.set=this.set.filter(z=>!g(z[0])),this.set.length===0)this.set=[P];else if(this.set.length>1){for(const z of this.set)if(z.length===1&&m(z[0])){this.set=[z];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){$>0&&(this.formatted+="||");const D=this.set[$];for(let P=0;P<D.length;P++)P>0&&(this.formatted+=" "),this.formatted+=D[P].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){const P=((this.options.includePrerelease&&h)|(this.options.loose&&p))+":"+$,z=i.get(P);if(z)return z;const I=this.options.loose,V=I?u[l.HYPHENRANGELOOSE]:u[l.HYPHENRANGE];$=$.replace(V,N(this.options.includePrerelease)),s("hyphen replace",$),$=$.replace(u[l.COMPARATORTRIM],c),s("comparator trim",$),$=$.replace(u[l.TILDETRIM],f),s("tilde trim",$),$=$.replace(u[l.CARETTRIM],d),s("caret trim",$);let ue=$.split(" ").map(pe=>b(pe,this.options)).join(" ").split(/\s+/).map(pe=>k(pe,this.options));I&&(ue=ue.filter(pe=>(s("loose invalid filter",pe,this.options),!!pe.match(u[l.COMPARATORLOOSE])))),s("range list",ue);const ie=new Map,he=ue.map(pe=>new o(pe,this.options));for(const pe of he){if(g(pe))return[pe];ie.set(pe.value,pe)}ie.size>1&&ie.has("")&&ie.delete("");const We=[...ie.values()];return i.set(P,We),We}intersects($,D){if(!($ instanceof t))throw new TypeError("a Range is required");return this.set.some(P=>y(P,D)&&$.set.some(z=>y(z,D)&&P.every(I=>z.every(V=>I.intersects(V,D)))))}test($){if(!$)return!1;if(typeof $=="string")try{$=new a($,this.options)}catch{return!1}for(let D=0;D<this.set.length;D++)if(T(this.set[D],$,this.options))return!0;return!1}}cy=t;const n=Yge(),i=new n,r=UA(),o=i0e(),s=ym(),a=WA(),{safeRe:u,t:l,comparatorTrimReplace:c,tildeTrimReplace:f,caretTrimReplace:d}=qA(),{FLAG_INCLUDE_PRERELEASE:h,FLAG_LOOSE:p}=jA(),g=F=>F.value==="<0.0.0-0",m=F=>F.value==="",y=(F,$)=>{let D=!0;const P=F.slice();let z=P.pop();for(;D&&P.length;)D=P.every(I=>z.intersects(I,$)),z=P.pop();return D},b=(F,$)=>(s("comp",F,$),F=A(F,$),s("caret",F),F=v(F,$),s("tildes",F),F=S(F,$),s("xrange",F),F=_(F,$),s("stars",F),F),x=F=>!F||F.toLowerCase()==="x"||F==="*",v=(F,$)=>F.trim().split(/\s+/).map(D=>w(D,$)).join(" "),w=(F,$)=>{const D=$.loose?u[l.TILDELOOSE]:u[l.TILDE];return F.replace(D,(P,z,I,V,ue)=>{s("tilde",F,P,z,I,V,ue);let ie;return x(z)?ie="":x(I)?ie=`>=${z}.0.0 <${+z+1}.0.0-0`:x(V)?ie=`>=${z}.${I}.0 <${z}.${+I+1}.0-0`:ue?(s("replaceTilde pr",ue),ie=`>=${z}.${I}.${V}-${ue} <${z}.${+I+1}.0-0`):ie=`>=${z}.${I}.${V} <${z}.${+I+1}.0-0`,s("tilde return",ie),ie})},A=(F,$)=>F.trim().split(/\s+/).map(D=>E(D,$)).join(" "),E=(F,$)=>{s("caret",F,$);const D=$.loose?u[l.CARETLOOSE]:u[l.CARET],P=$.includePrerelease?"-0":"";return F.replace(D,(z,I,V,ue,ie)=>{s("caret",F,z,I,V,ue,ie);let he;return x(I)?he="":x(V)?he=`>=${I}.0.0${P} <${+I+1}.0.0-0`:x(ue)?I==="0"?he=`>=${I}.${V}.0${P} <${I}.${+V+1}.0-0`:he=`>=${I}.${V}.0${P} <${+I+1}.0.0-0`:ie?(s("replaceCaret pr",ie),I==="0"?V==="0"?he=`>=${I}.${V}.${ue}-${ie} <${I}.${V}.${+ue+1}-0`:he=`>=${I}.${V}.${ue}-${ie} <${I}.${+V+1}.0-0`:he=`>=${I}.${V}.${ue}-${ie} <${+I+1}.0.0-0`):(s("no pr"),I==="0"?V==="0"?he=`>=${I}.${V}.${ue}${P} <${I}.${V}.${+ue+1}-0`:he=`>=${I}.${V}.${ue}${P} <${I}.${+V+1}.0-0`:he=`>=${I}.${V}.${ue} <${+I+1}.0.0-0`),s("caret return",he),he})},S=(F,$)=>(s("replaceXRanges",F,$),F.split(/\s+/).map(D=>C(D,$)).join(" ")),C=(F,$)=>{F=F.trim();const D=$.loose?u[l.XRANGELOOSE]:u[l.XRANGE];return F.replace(D,(P,z,I,V,ue,ie)=>{s("xRange",F,P,z,I,V,ue,ie);const he=x(I),We=he||x(V),pe=We||x(ue),Ht=pe;return z==="="&&Ht&&(z=""),ie=$.includePrerelease?"-0":"",he?z===">"||z==="<"?P="<0.0.0-0":P="*":z&&Ht?(We&&(V=0),ue=0,z===">"?(z=">=",We?(I=+I+1,V=0,ue=0):(V=+V+1,ue=0)):z==="<="&&(z="<",We?I=+I+1:V=+V+1),z==="<"&&(ie="-0"),P=`${z+I}.${V}.${ue}${ie}`):We?P=`>=${I}.0.0${ie} <${+I+1}.0.0-0`:pe&&(P=`>=${I}.${V}.0${ie} <${I}.${+V+1}.0-0`),s("xRange return",P),P})},_=(F,$)=>(s("replaceStars",F,$),F.trim().replace(u[l.STAR],"")),k=(F,$)=>(s("replaceGTE0",F,$),F.trim().replace(u[$.includePrerelease?l.GTE0PRE:l.GTE0],"")),N=F=>($,D,P,z,I,V,ue,ie,he,We,pe,Ht)=>(x(P)?D="":x(z)?D=`>=${P}.0.0${F?"-0":""}`:x(I)?D=`>=${P}.${z}.0${F?"-0":""}`:V?D=`>=${D}`:D=`>=${D}${F?"-0":""}`,x(he)?ie="":x(We)?ie=`<${+he+1}.0.0-0`:x(pe)?ie=`<${he}.${+We+1}.0-0`:Ht?ie=`<=${he}.${We}.${pe}-${Ht}`:F?ie=`<${he}.${We}.${+pe+1}-0`:ie=`<=${ie}`,`${D} ${ie}`.trim()),T=(F,$,D)=>{for(let P=0;P<F.length;P++)if(!F[P].test($))return!1;if($.prerelease.length&&!D.includePrerelease){for(let P=0;P<F.length;P++)if(s(F[P].semver),F[P].semver!==o.ANY&&F[P].semver.prerelease.length>0){const z=F[P].semver;if(z.major===$.major&&z.minor===$.minor&&z.patch===$.patch)return!0}return!1}return!0};return cy}var fy,Ck;function r0e(){if(Ck)return fy;Ck=1;const e=f8();return fy=(n,i,r)=>{try{i=new e(i,r)}catch{return!1}return i.test(n)},fy}var o0e=r0e(),d8=Vge(o0e);function s0e(e,t,n){const i=e.open(t),r=250,{origin:o}=new URL(t);let s=40;function a(l){l.source===i&&(s=0,e.removeEventListener("message",a,!1))}e.addEventListener("message",a,!1);function u(){s<=0||(i.postMessage(n,o),setTimeout(u,r),s-=1)}setTimeout(u,r)}var a0e=`.vega-embed {
80
+ */var zA=new WeakMap,Pge=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),Ige=function(){function e(t,n){this.callback=t,this.observer=n}return e}();function zge(e){return zA.get(e)}function Bge(e,t){return e.observers.get(t)}function Uge(e,t){e.observers.delete(t.callback)}function jge(e,t){t.unobserve()}function qge(e,t){var n=[],i,r=zge(e);if(!r)r=new Pge(e),zA.set(e,r);else{var o=Bge(r,t);i=o&&o.observer}if(i)return i;if(i={},r.value=Kn(e),t){i.callback=t,i.next=null;var s=function(){wx(i)},a=function(){clearTimeout(i.next),i.next=setTimeout(s)};typeof window<"u"&&(window.addEventListener("mouseup",a),window.addEventListener("keyup",a),window.addEventListener("mousedown",a),window.addEventListener("keydown",a),window.addEventListener("change",a))}return i.patches=n,i.object=e,i.unobserve=function(){wx(i),clearTimeout(i.next),Uge(r,i),typeof window<"u"&&(window.removeEventListener("mouseup",a),window.removeEventListener("keyup",a),window.removeEventListener("mousedown",a),window.removeEventListener("keydown",a),window.removeEventListener("change",a))},r.observers.set(t,new Ige(t,i)),i}function wx(e,t){t===void 0&&(t=!1);var n=zA.get(e.object);BA(n.value,e.object,e.patches,"",t),e.patches.length&&mm(n.value,e.patches);var i=e.patches;return i.length>0&&(e.patches=[],e.callback&&e.callback(i)),i}function BA(e,t,n,i,r){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var o=xx(t),s=xx(e),a=!1,u=s.length-1;u>=0;u--){var l=s[u],c=e[l];if(bx(t,l)&&!(t[l]===void 0&&c!==void 0&&Array.isArray(t)===!1)){var f=t[l];typeof c=="object"&&c!=null&&typeof f=="object"&&f!=null&&Array.isArray(c)===Array.isArray(f)?BA(c,f,n,i+"/"+Is(l),r):c!==f&&(r&&n.push({op:"test",path:i+"/"+Is(l),value:Kn(c)}),n.push({op:"replace",path:i+"/"+Is(l),value:Kn(f)}))}else Array.isArray(e)===Array.isArray(t)?(r&&n.push({op:"test",path:i+"/"+Is(l),value:Kn(c)}),n.push({op:"remove",path:i+"/"+Is(l)}),a=!0):(r&&n.push({op:"test",path:i,value:e}),n.push({op:"replace",path:i,value:t}))}if(!(!a&&o.length==s.length))for(var u=0;u<o.length;u++){var l=o[u];!bx(e,l)&&t[l]!==void 0&&n.push({op:"add",path:i+"/"+Is(l),value:Kn(t[l])})}}}function Wge(e,t,n){n===void 0&&(n=!1);var i=[];return BA(e,t,i,"",n),i}var Gge=Object.freeze({__proto__:null,compare:Wge,generate:wx,observe:qge,unobserve:jge});Object.assign({},Lge,Gge,{JsonPatchError:u8,deepClone:Kn,escapePathComponent:Is,unescapePathComponent:a8});function Hge(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var X1,ak;function Vge(){if(ak)return X1;ak=1;class e{constructor(){this.max=1e3,this.map=new Map}get(n){const i=this.map.get(n);if(i!==void 0)return this.map.delete(n),this.map.set(n,i),i}delete(n){return this.map.delete(n)}set(n,i){if(!this.delete(n)&&i!==void 0){if(this.map.size>=this.max){const o=this.map.keys().next().value;this.delete(o)}this.map.set(n,i)}return this}}return X1=e,X1}var K1,uk;function UA(){if(uk)return K1;uk=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return K1=i=>i?typeof i!="object"?e:i:t,K1}var Kd={exports:{}},J1,lk;function jA(){if(lk)return J1;lk=1;const e="2.0.0",t=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,r=t-6;return J1={MAX_LENGTH:t,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:r,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},J1}var Q1,ck;function ym(){return ck||(ck=1,Q1=typeof process=="object"&&Y1&&Y1.NODE_DEBUG&&/\bsemver\b/i.test(Y1.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{}),Q1}var fk;function qA(){return fk||(fk=1,function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:r}=jA(),o=ym();t=e.exports={};const s=t.re=[],a=t.safeRe=[],u=t.src=[],l=t.t={};let c=0;const f="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",r],[f,i]],h=g=>{for(const[m,y]of d)g=g.split(`${m}*`).join(`${m}{0,${y}}`).split(`${m}+`).join(`${m}{1,${y}}`);return g},p=(g,m,y)=>{const b=h(m),x=c++;o(g,x,m),l[g]=x,u[x]=m,s[x]=new RegExp(m,y?"g":void 0),a[x]=new RegExp(b,y?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),p("MAINVERSION",`(${u[l.NUMERICIDENTIFIER]})\\.(${u[l.NUMERICIDENTIFIER]})\\.(${u[l.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${u[l.NUMERICIDENTIFIERLOOSE]})\\.(${u[l.NUMERICIDENTIFIERLOOSE]})\\.(${u[l.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${u[l.NUMERICIDENTIFIER]}|${u[l.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${u[l.NUMERICIDENTIFIERLOOSE]}|${u[l.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${u[l.PRERELEASEIDENTIFIER]}(?:\\.${u[l.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${u[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[l.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${f}+`),p("BUILD",`(?:\\+(${u[l.BUILDIDENTIFIER]}(?:\\.${u[l.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${u[l.MAINVERSION]}${u[l.PRERELEASE]}?${u[l.BUILD]}?`),p("FULL",`^${u[l.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${u[l.MAINVERSIONLOOSE]}${u[l.PRERELEASELOOSE]}?${u[l.BUILD]}?`),p("LOOSE",`^${u[l.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${u[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${u[l.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${u[l.XRANGEIDENTIFIER]})(?:\\.(${u[l.XRANGEIDENTIFIER]})(?:\\.(${u[l.XRANGEIDENTIFIER]})(?:${u[l.PRERELEASE]})?${u[l.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${u[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[l.XRANGEIDENTIFIERLOOSE]})(?:${u[l.PRERELEASELOOSE]})?${u[l.BUILD]}?)?)?`),p("XRANGE",`^${u[l.GTLT]}\\s*${u[l.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${u[l.GTLT]}\\s*${u[l.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),p("COERCE",`${u[l.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",u[l.COERCEPLAIN]+`(?:${u[l.PRERELEASE]})?(?:${u[l.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",u[l.COERCE],!0),p("COERCERTLFULL",u[l.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${u[l.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",p("TILDE",`^${u[l.LONETILDE]}${u[l.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${u[l.LONETILDE]}${u[l.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${u[l.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",p("CARET",`^${u[l.LONECARET]}${u[l.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${u[l.LONECARET]}${u[l.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${u[l.GTLT]}\\s*(${u[l.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${u[l.GTLT]}\\s*(${u[l.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${u[l.GTLT]}\\s*(${u[l.LOOSEPLAIN]}|${u[l.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${u[l.XRANGEPLAIN]})\\s+-\\s+(${u[l.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${u[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[l.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Kd,Kd.exports)),Kd.exports}var Z1,dk;function Yge(){if(dk)return Z1;dk=1;const e=/^[0-9]+$/,t=(i,r)=>{const o=e.test(i),s=e.test(r);return o&&s&&(i=+i,r=+r),i===r?0:o&&!s?-1:s&&!o?1:i<r?-1:1};return Z1={compareIdentifiers:t,rcompareIdentifiers:(i,r)=>t(r,i)},Z1}var ey,hk;function WA(){if(hk)return ey;hk=1;const e=ym(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:n}=jA(),{safeRe:i,t:r}=qA(),o=UA(),{compareIdentifiers:s}=Yge();class a{constructor(l,c){if(c=o(c),l instanceof a){if(l.loose===!!c.loose&&l.includePrerelease===!!c.includePrerelease)return l;l=l.version}else if(typeof l!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof l}".`);if(l.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",l,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;const f=l.trim().match(c.loose?i[r.LOOSE]:i[r.FULL]);if(!f)throw new TypeError(`Invalid Version: ${l}`);if(this.raw=l,this.major=+f[1],this.minor=+f[2],this.patch=+f[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");f[4]?this.prerelease=f[4].split(".").map(d=>{if(/^[0-9]+$/.test(d)){const h=+d;if(h>=0&&h<n)return h}return d}):this.prerelease=[],this.build=f[5]?f[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(l){if(e("SemVer.compare",this.version,this.options,l),!(l instanceof a)){if(typeof l=="string"&&l===this.version)return 0;l=new a(l,this.options)}return l.version===this.version?0:this.compareMain(l)||this.comparePre(l)}compareMain(l){return l instanceof a||(l=new a(l,this.options)),s(this.major,l.major)||s(this.minor,l.minor)||s(this.patch,l.patch)}comparePre(l){if(l instanceof a||(l=new a(l,this.options)),this.prerelease.length&&!l.prerelease.length)return-1;if(!this.prerelease.length&&l.prerelease.length)return 1;if(!this.prerelease.length&&!l.prerelease.length)return 0;let c=0;do{const f=this.prerelease[c],d=l.prerelease[c];if(e("prerelease compare",c,f,d),f===void 0&&d===void 0)return 0;if(d===void 0)return 1;if(f===void 0)return-1;if(f===d)continue;return s(f,d)}while(++c)}compareBuild(l){l instanceof a||(l=new a(l,this.options));let c=0;do{const f=this.build[c],d=l.build[c];if(e("build compare",c,f,d),f===void 0&&d===void 0)return 0;if(d===void 0)return 1;if(f===void 0)return-1;if(f===d)continue;return s(f,d)}while(++c)}inc(l,c,f){switch(l){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",c,f);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",c,f);break;case"prepatch":this.prerelease.length=0,this.inc("patch",c,f),this.inc("pre",c,f);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",c,f),this.inc("pre",c,f);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const d=Number(f)?1:0;if(!c&&f===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[d];else{let h=this.prerelease.length;for(;--h>=0;)typeof this.prerelease[h]=="number"&&(this.prerelease[h]++,h=-2);if(h===-1){if(c===this.prerelease.join(".")&&f===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(d)}}if(c){let h=[c,d];f===!1&&(h=[c]),s(this.prerelease[0],c)===0?isNaN(this.prerelease[1])&&(this.prerelease=h):this.prerelease=h}break}default:throw new Error(`invalid increment argument: ${l}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return ey=a,ey}var ty,pk;function _l(){if(pk)return ty;pk=1;const e=WA();return ty=(n,i,r)=>new e(n,r).compare(new e(i,r)),ty}var ny,gk;function Xge(){if(gk)return ny;gk=1;const e=_l();return ny=(n,i,r)=>e(n,i,r)===0,ny}var iy,mk;function Kge(){if(mk)return iy;mk=1;const e=_l();return iy=(n,i,r)=>e(n,i,r)!==0,iy}var ry,yk;function Jge(){if(yk)return ry;yk=1;const e=_l();return ry=(n,i,r)=>e(n,i,r)>0,ry}var oy,bk;function Qge(){if(bk)return oy;bk=1;const e=_l();return oy=(n,i,r)=>e(n,i,r)>=0,oy}var sy,xk;function Zge(){if(xk)return sy;xk=1;const e=_l();return sy=(n,i,r)=>e(n,i,r)<0,sy}var ay,vk;function e0e(){if(vk)return ay;vk=1;const e=_l();return ay=(n,i,r)=>e(n,i,r)<=0,ay}var uy,Ek;function t0e(){if(Ek)return uy;Ek=1;const e=Xge(),t=Kge(),n=Jge(),i=Qge(),r=Zge(),o=e0e();return uy=(a,u,l,c)=>{switch(u){case"===":return typeof a=="object"&&(a=a.version),typeof l=="object"&&(l=l.version),a===l;case"!==":return typeof a=="object"&&(a=a.version),typeof l=="object"&&(l=l.version),a!==l;case"":case"=":case"==":return e(a,l,c);case"!=":return t(a,l,c);case">":return n(a,l,c);case">=":return i(a,l,c);case"<":return r(a,l,c);case"<=":return o(a,l,c);default:throw new TypeError(`Invalid operator: ${u}`)}},uy}var ly,wk;function n0e(){if(wk)return ly;wk=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(c,f){if(f=n(f),c instanceof t){if(c.loose===!!f.loose)return c;c=c.value}c=c.trim().split(/\s+/).join(" "),s("comparator",c,f),this.options=f,this.loose=!!f.loose,this.parse(c),this.semver===e?this.value="":this.value=this.operator+this.semver.version,s("comp",this)}parse(c){const f=this.options.loose?i[r.COMPARATORLOOSE]:i[r.COMPARATOR],d=c.match(f);if(!d)throw new TypeError(`Invalid comparator: ${c}`);this.operator=d[1]!==void 0?d[1]:"",this.operator==="="&&(this.operator=""),d[2]?this.semver=new a(d[2],this.options.loose):this.semver=e}toString(){return this.value}test(c){if(s("Comparator.test",c,this.options.loose),this.semver===e||c===e)return!0;if(typeof c=="string")try{c=new a(c,this.options)}catch{return!1}return o(c,this.operator,this.semver,this.options)}intersects(c,f){if(!(c instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new u(c.value,f).test(this.value):c.operator===""?c.value===""?!0:new u(this.value,f).test(c.semver):(f=n(f),f.includePrerelease&&(this.value==="<0.0.0-0"||c.value==="<0.0.0-0")||!f.includePrerelease&&(this.value.startsWith("<0.0.0")||c.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&c.operator.startsWith(">")||this.operator.startsWith("<")&&c.operator.startsWith("<")||this.semver.version===c.semver.version&&this.operator.includes("=")&&c.operator.includes("=")||o(this.semver,"<",c.semver,f)&&this.operator.startsWith(">")&&c.operator.startsWith("<")||o(this.semver,">",c.semver,f)&&this.operator.startsWith("<")&&c.operator.startsWith(">")))}}ly=t;const n=UA(),{safeRe:i,t:r}=qA(),o=t0e(),s=ym(),a=WA(),u=c8();return ly}var cy,Ak;function c8(){if(Ak)return cy;Ak=1;const e=/\s+/g;class t{constructor($,D){if(D=r(D),$ instanceof t)return $.loose===!!D.loose&&$.includePrerelease===!!D.includePrerelease?$:new t($.raw,D);if($ instanceof o)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=D,this.loose=!!D.loose,this.includePrerelease=!!D.includePrerelease,this.raw=$.trim().replace(e," "),this.set=this.raw.split("||").map(P=>this.parseRange(P.trim())).filter(P=>P.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const P=this.set[0];if(this.set=this.set.filter(z=>!g(z[0])),this.set.length===0)this.set=[P];else if(this.set.length>1){for(const z of this.set)if(z.length===1&&m(z[0])){this.set=[z];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){$>0&&(this.formatted+="||");const D=this.set[$];for(let P=0;P<D.length;P++)P>0&&(this.formatted+=" "),this.formatted+=D[P].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){const P=((this.options.includePrerelease&&h)|(this.options.loose&&p))+":"+$,z=i.get(P);if(z)return z;const I=this.options.loose,V=I?u[l.HYPHENRANGELOOSE]:u[l.HYPHENRANGE];$=$.replace(V,N(this.options.includePrerelease)),s("hyphen replace",$),$=$.replace(u[l.COMPARATORTRIM],c),s("comparator trim",$),$=$.replace(u[l.TILDETRIM],f),s("tilde trim",$),$=$.replace(u[l.CARETTRIM],d),s("caret trim",$);let ue=$.split(" ").map(pe=>b(pe,this.options)).join(" ").split(/\s+/).map(pe=>k(pe,this.options));I&&(ue=ue.filter(pe=>(s("loose invalid filter",pe,this.options),!!pe.match(u[l.COMPARATORLOOSE])))),s("range list",ue);const ie=new Map,he=ue.map(pe=>new o(pe,this.options));for(const pe of he){if(g(pe))return[pe];ie.set(pe.value,pe)}ie.size>1&&ie.has("")&&ie.delete("");const We=[...ie.values()];return i.set(P,We),We}intersects($,D){if(!($ instanceof t))throw new TypeError("a Range is required");return this.set.some(P=>y(P,D)&&$.set.some(z=>y(z,D)&&P.every(I=>z.every(V=>I.intersects(V,D)))))}test($){if(!$)return!1;if(typeof $=="string")try{$=new a($,this.options)}catch{return!1}for(let D=0;D<this.set.length;D++)if(T(this.set[D],$,this.options))return!0;return!1}}cy=t;const n=Vge(),i=new n,r=UA(),o=n0e(),s=ym(),a=WA(),{safeRe:u,t:l,comparatorTrimReplace:c,tildeTrimReplace:f,caretTrimReplace:d}=qA(),{FLAG_INCLUDE_PRERELEASE:h,FLAG_LOOSE:p}=jA(),g=F=>F.value==="<0.0.0-0",m=F=>F.value==="",y=(F,$)=>{let D=!0;const P=F.slice();let z=P.pop();for(;D&&P.length;)D=P.every(I=>z.intersects(I,$)),z=P.pop();return D},b=(F,$)=>(s("comp",F,$),F=A(F,$),s("caret",F),F=v(F,$),s("tildes",F),F=S(F,$),s("xrange",F),F=_(F,$),s("stars",F),F),x=F=>!F||F.toLowerCase()==="x"||F==="*",v=(F,$)=>F.trim().split(/\s+/).map(D=>w(D,$)).join(" "),w=(F,$)=>{const D=$.loose?u[l.TILDELOOSE]:u[l.TILDE];return F.replace(D,(P,z,I,V,ue)=>{s("tilde",F,P,z,I,V,ue);let ie;return x(z)?ie="":x(I)?ie=`>=${z}.0.0 <${+z+1}.0.0-0`:x(V)?ie=`>=${z}.${I}.0 <${z}.${+I+1}.0-0`:ue?(s("replaceTilde pr",ue),ie=`>=${z}.${I}.${V}-${ue} <${z}.${+I+1}.0-0`):ie=`>=${z}.${I}.${V} <${z}.${+I+1}.0-0`,s("tilde return",ie),ie})},A=(F,$)=>F.trim().split(/\s+/).map(D=>E(D,$)).join(" "),E=(F,$)=>{s("caret",F,$);const D=$.loose?u[l.CARETLOOSE]:u[l.CARET],P=$.includePrerelease?"-0":"";return F.replace(D,(z,I,V,ue,ie)=>{s("caret",F,z,I,V,ue,ie);let he;return x(I)?he="":x(V)?he=`>=${I}.0.0${P} <${+I+1}.0.0-0`:x(ue)?I==="0"?he=`>=${I}.${V}.0${P} <${I}.${+V+1}.0-0`:he=`>=${I}.${V}.0${P} <${+I+1}.0.0-0`:ie?(s("replaceCaret pr",ie),I==="0"?V==="0"?he=`>=${I}.${V}.${ue}-${ie} <${I}.${V}.${+ue+1}-0`:he=`>=${I}.${V}.${ue}-${ie} <${I}.${+V+1}.0-0`:he=`>=${I}.${V}.${ue}-${ie} <${+I+1}.0.0-0`):(s("no pr"),I==="0"?V==="0"?he=`>=${I}.${V}.${ue}${P} <${I}.${V}.${+ue+1}-0`:he=`>=${I}.${V}.${ue}${P} <${I}.${+V+1}.0-0`:he=`>=${I}.${V}.${ue} <${+I+1}.0.0-0`),s("caret return",he),he})},S=(F,$)=>(s("replaceXRanges",F,$),F.split(/\s+/).map(D=>C(D,$)).join(" ")),C=(F,$)=>{F=F.trim();const D=$.loose?u[l.XRANGELOOSE]:u[l.XRANGE];return F.replace(D,(P,z,I,V,ue,ie)=>{s("xRange",F,P,z,I,V,ue,ie);const he=x(I),We=he||x(V),pe=We||x(ue),Ht=pe;return z==="="&&Ht&&(z=""),ie=$.includePrerelease?"-0":"",he?z===">"||z==="<"?P="<0.0.0-0":P="*":z&&Ht?(We&&(V=0),ue=0,z===">"?(z=">=",We?(I=+I+1,V=0,ue=0):(V=+V+1,ue=0)):z==="<="&&(z="<",We?I=+I+1:V=+V+1),z==="<"&&(ie="-0"),P=`${z+I}.${V}.${ue}${ie}`):We?P=`>=${I}.0.0${ie} <${+I+1}.0.0-0`:pe&&(P=`>=${I}.${V}.0${ie} <${I}.${+V+1}.0-0`),s("xRange return",P),P})},_=(F,$)=>(s("replaceStars",F,$),F.trim().replace(u[l.STAR],"")),k=(F,$)=>(s("replaceGTE0",F,$),F.trim().replace(u[$.includePrerelease?l.GTE0PRE:l.GTE0],"")),N=F=>($,D,P,z,I,V,ue,ie,he,We,pe,Ht)=>(x(P)?D="":x(z)?D=`>=${P}.0.0${F?"-0":""}`:x(I)?D=`>=${P}.${z}.0${F?"-0":""}`:V?D=`>=${D}`:D=`>=${D}${F?"-0":""}`,x(he)?ie="":x(We)?ie=`<${+he+1}.0.0-0`:x(pe)?ie=`<${he}.${+We+1}.0-0`:Ht?ie=`<=${he}.${We}.${pe}-${Ht}`:F?ie=`<${he}.${We}.${+pe+1}-0`:ie=`<=${ie}`,`${D} ${ie}`.trim()),T=(F,$,D)=>{for(let P=0;P<F.length;P++)if(!F[P].test($))return!1;if($.prerelease.length&&!D.includePrerelease){for(let P=0;P<F.length;P++)if(s(F[P].semver),F[P].semver!==o.ANY&&F[P].semver.prerelease.length>0){const z=F[P].semver;if(z.major===$.major&&z.minor===$.minor&&z.patch===$.patch)return!0}return!1}return!0};return cy}var fy,Sk;function i0e(){if(Sk)return fy;Sk=1;const e=c8();return fy=(n,i,r)=>{try{i=new e(i,r)}catch{return!1}return i.test(n)},fy}var r0e=i0e(),f8=Hge(r0e);function o0e(e,t,n){const i=e.open(t),r=250,{origin:o}=new URL(t);let s=40;function a(l){l.source===i&&(s=0,e.removeEventListener("message",a,!1))}e.addEventListener("message",a,!1);function u(){s<=0||(i.postMessage(n,o),setTimeout(u,r),s-=1)}setTimeout(u,r)}var s0e=`.vega-embed {
81
81
  position: relative;
82
82
  display: inline-block;
83
83
  box-sizing: border-box;
@@ -195,9 +195,9 @@ ${a}`)}return l}(e,"",0)}function yre(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e
195
195
  transform: scale(1);
196
196
  }
197
197
  }
198
- `;function h8(e,...t){for(const n of t)u0e(e,n);return e}function u0e(e,t){for(const n of Object.keys(t))sg(e,n,t[n],!0)}const ir=gre;let yf=kpe;const $k=typeof window<"u"?window:void 0;yf===void 0&&$k?.vl?.compile&&(yf=$k.vl);const l0e={export:{svg:!0,png:!0},source:!0,compiled:!0,editor:!0},c0e={CLICK_TO_VIEW_ACTIONS:"Click to view actions",COMPILED_ACTION:"View Compiled Vega",EDITOR_ACTION:"Open in Vega Editor",PNG_ACTION:"Save as PNG",SOURCE_ACTION:"View Source",SVG_ACTION:"Save as SVG"},Ac={vega:"Vega","vega-lite":"Vega-Lite"},Qp={vega:ir.version,"vega-lite":yf?yf.version:"not available"},f0e={vega:e=>e,"vega-lite":(e,t)=>yf.compile(e,{config:t}).spec},d0e=`
198
+ `;function d8(e,...t){for(const n of t)a0e(e,n);return e}function a0e(e,t){for(const n of Object.keys(t))sg(e,n,t[n],!0)}const ir=pre;let yf=Fpe;const Ck=typeof window<"u"?window:void 0;yf===void 0&&Ck?.vl?.compile&&(yf=Ck.vl);const u0e={export:{svg:!0,png:!0},source:!0,compiled:!0,editor:!0},l0e={CLICK_TO_VIEW_ACTIONS:"Click to view actions",COMPILED_ACTION:"View Compiled Vega",EDITOR_ACTION:"Open in Vega Editor",PNG_ACTION:"Save as PNG",SOURCE_ACTION:"View Source",SVG_ACTION:"Save as SVG"},Ac={vega:"Vega","vega-lite":"Vega-Lite"},Qp={vega:ir.version,"vega-lite":yf?yf.version:"not available"},c0e={vega:e=>e,"vega-lite":(e,t)=>yf.compile(e,{config:t}).spec},f0e=`
199
199
  <svg viewBox="0 0 16 16" fill="currentColor" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round">
200
200
  <circle r="2" cy="8" cx="2"></circle>
201
201
  <circle r="2" cy="8" cx="8"></circle>
202
202
  <circle r="2" cy="8" cx="14"></circle>
203
- </svg>`,h0e="chart-wrapper";function p0e(e){return typeof e=="function"}function _k(e,t,n,i){const r=`<html><head>${t}</head><body><pre><code class="json">`,o=`</code></pre>${n}</body></html>`,s=window.open("");s.document.write(r+e+o),s.document.title=`${Ac[i]} JSON Source`}function g0e(e,t){if(e.$schema){const n=t8(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Ac[n.library]}, but mode argument sets ${Ac[t]??t}.`);const i=n.library;return d8(Qp[i],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Ac[i]} ${n.version}, but the current version of ${Ac[i]} is v${Qp[i]}.`),i}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}function p8(e){return!!(e&&"load"in e)}function Fk(e){return p8(e)?e:ir.loader(e)}function m0e(e){const t=e.usermeta?.embedOptions??{};return to(t.defaultStyle)&&(t.defaultStyle=!1),t}async function y0e(e,t,n={}){let i,r;to(t)?(r=Fk(n.loader),i=JSON.parse(await r.load(t))):i=t;const o=m0e(i),s=o.loader;(!r||s)&&(r=Fk(n.loader??s));const a=await kk(o,r),u=await kk(n,r),l={...h8(u,a),config:Rx(u.config??{},a.config??{})};return await x0e(e,i,l,r)}async function kk(e,t){const n=to(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=to(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return{...e,...i?{patch:i}:{},...n?{config:n}:{}}}function b0e(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}async function x0e(e,t,n={},i){const r=n.theme?Rx(pge[n.theme],n.config??{}):n.config,o=Hk(n.actions)?n.actions:h8({},l0e,n.actions??{}),s={...c0e,...n.i18n},a=n.renderer??"canvas",u=n.logLevel??ir.Warn,l=n.downloadFileName??"visualization",c=typeof e=="string"?document.querySelector(e):e;if(!c)throw new Error(`${e} does not exist`);if(n.defaultStyle!==!1){const w="vega-embed-style",{root:A,rootContainer:E}=b0e(c);if(!A.getElementById(w)){const S=document.createElement("style");S.id=w,S.innerHTML=n.defaultStyle===void 0||n.defaultStyle===!0?a0e.toString():n.defaultStyle,E.appendChild(S)}}const f=g0e(t,n.mode);let d=f0e[f](t,r);if(f==="vega-lite"&&d.$schema){const w=t8(d.$schema);d8(Qp.vega,`^${w.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${w.version}, but current version is v${Qp.vega}.`)}c.classList.add("vega-embed"),o&&c.classList.add("has-actions"),c.innerHTML="";let h=c;if(o){const w=document.createElement("div");w.classList.add(h0e),c.appendChild(w),h=w}const p=n.patch;if(p&&(d=p instanceof Function?p(d):mm(d,p,!0,!1).newDocument),n.formatLocale&&ir.formatLocale(n.formatLocale),n.timeFormatLocale&&ir.timeFormatLocale(n.timeFormatLocale),n.expressionFunctions)for(const w in n.expressionFunctions){const A=n.expressionFunctions[w];"fn"in A?ir.expressionFunction(w,A.fn,A.visitor):A instanceof Function&&ir.expressionFunction(w,A)}const{ast:g}=n,m=ir.parse(d,f==="vega-lite"?{}:r,{ast:g}),y=new(n.viewClass||ir.View)(m,{loader:i,logLevel:u,renderer:a,...g?{expr:ir.expressionInterpreter??n.expr??$re}:{}});if(y.addSignalListener("autosize",(w,A)=>{const{type:E}=A;E=="fit-x"?(h.classList.add("fit-x"),h.classList.remove("fit-y")):E=="fit-y"?(h.classList.remove("fit-x"),h.classList.add("fit-y")):E=="fit"?h.classList.add("fit-x","fit-y"):h.classList.remove("fit-x","fit-y")}),n.tooltip!==!1){const{loader:w,tooltip:A}=n,E=w&&!p8(w)?w?.baseURL:void 0,S=p0e(A)?A:new Tge({baseURL:E,...A===!0?{}:A}).call;y.tooltip(S)}let{hover:b}=n;if(b===void 0&&(b=f==="vega"),b){const{hoverSet:w,updateSet:A}=typeof b=="boolean"?{}:b;y.hover(w,A)}n&&(n.width!=null&&y.width(n.width),n.height!=null&&y.height(n.height),n.padding!=null&&y.padding(n.padding)),await y.initialize(h,n.bind).runAsync();let x;if(o!==!1){let w=c;if(n.defaultStyle!==!1||n.forceActionsMenu){const E=document.createElement("details");E.title=s.CLICK_TO_VIEW_ACTIONS,c.append(E),w=E;const S=document.createElement("summary");S.innerHTML=d0e,E.append(S),x=C=>{E.contains(C.target)||E.removeAttribute("open")},document.addEventListener("click",x)}const A=document.createElement("div");if(w.append(A),A.classList.add("vega-actions"),o===!0||o.export!==!1){for(const E of["svg","png"])if(o===!0||o.export===!0||o.export[E]){const S=s[`${E.toUpperCase()}_ACTION`],C=document.createElement("a"),_=oa(n.scaleFactor)?n.scaleFactor[E]:n.scaleFactor;C.text=S,C.href="#",C.target="_blank",C.download=`${l}.${E}`,C.addEventListener("mousedown",async function(k){k.preventDefault();const N=await y.toImageURL(E,_);this.href=N}),A.append(C)}}if(o===!0||o.source!==!1){const E=document.createElement("a");E.text=s.SOURCE_ACTION,E.href="#",E.addEventListener("click",function(S){_k(w1(t),n.sourceHeader??"",n.sourceFooter??"",f),S.preventDefault()}),A.append(E)}if(f==="vega-lite"&&(o===!0||o.compiled!==!1)){const E=document.createElement("a");E.text=s.COMPILED_ACTION,E.href="#",E.addEventListener("click",function(S){_k(w1(d),n.sourceHeader??"",n.sourceFooter??"","vega"),S.preventDefault()}),A.append(E)}if(o===!0||o.editor!==!1){const E=n.editorUrl??"https://vega.github.io/editor/",S=document.createElement("a");S.text=s.EDITOR_ACTION,S.href="#",S.addEventListener("click",function(C){s0e(window,E,{config:r,mode:p?"vega":f,renderer:a,spec:w1(p?d:t)}),C.preventDefault()}),A.append(S)}}function v(){x&&document.removeEventListener("click",x),y.finalize()}return{view:y,spec:t,vgSpec:d,finalize:v,embedOptions:n}}function Fl(e,t,n){return e.fields=t||[],e.fname=n,e}function v0e(e){return e.length===1?E0e(e[0]):w0e(e)}const E0e=e=>function(t){return t[e]},w0e=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function dy(e){throw Error(e)}function A0e(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||dy("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&dy("Access path missing closing bracket: "+e),i&&dy("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function S0e(e,t,n){const i=A0e(e);return e=i.length===1?i[0]:e,Fl(v0e(i),[e],e)}S0e("id");Fl(e=>e,[],"identity");Fl(()=>0,[],"zero");Fl(()=>1,[],"one");Fl(()=>!0,[],"true");Fl(()=>!1,[],"false");const C0e=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0);function $0e(e){return typeof e=="string"}function _0e(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var F0e={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},k0e={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},D0e={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const T0e=Array.prototype.slice,Ns=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,T0e.call(t,1))},M0e=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0;return $0e(e)?new Date(e):new Date(e,t,n,i,r,o,s)};var O0e={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:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:M0e,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return Ns("join",arguments)},indexof:function(){return Ns("indexOf",arguments)},lastindexof:function(){return Ns("lastIndexOf",arguments)},slice:function(){return Ns("slice",arguments)},reverse:e=>e.slice().reverse(),sort:e=>e.slice().sort(C0e),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return Ns("substring",arguments,String)},split:function(){return Ns("split",arguments,String)},replace:function(){return Ns("replace",arguments,String)},trim:e=>String(e).trim(),btoa:e=>btoa(e),atob:e=>atob(e),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const R0e=["view","item","group","xy","x","y"],Ax=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ax.add(setImmediate);const N0e={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:F0e[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ax.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||O0e[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>k0e[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>D0e[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ax.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Zl(e,t,n,i,r,o){const s=a=>N0e[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,R0e.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var L0e={operator(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Zl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Zl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Zl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&_0e(s,i,o),l}}};const P0e={DATAFRAME_INDEX:"(index)"};function I0e(e){return!e||e.dimensions.numDataRows===0?null:Zp(e)}function z0e(e){const t=Sx(e);if(Cx(t))return null;const n={};for(const[i,r]of Object.entries(t))n[i]=Zp(r);return n}function Sx(e){if(e?.length===0)return null;const t={};return e.forEach(n=>{if(!n)return;const i=n.hasName?n.name:null;t[i]=n.data}),t}function Zp(e,t=0){if(e.dimensions.numDataRows===0)return[];const n=[],{numDataRows:i,numDataColumns:r,numIndexColumns:o}=e.dimensions,s=e.columnTypes[0]??void 0,a=s&&s.type===E8.INDEX&&(w8(s)||HA(s)||VA(s));for(let u=t;u<i;u++){const l={};if(a){const{content:c}=e.getCell(u,0);l[P0e.DATAFRAME_INDEX]=typeof c=="bigint"?Number(c):c}for(let c=0;c<r;c++){const f=c+o,{content:d,contentType:h}=e.getCell(u,f);if((d instanceof Date||typeof d=="number"&&Number.isFinite(d))&&(HA(h)||VA(h))&&!A8(h)){const p=new Date(d).getTimezoneOffset()*60*1e3;l[e.columnNames[0][f]]=d.valueOf()+p}else l[e.columnNames[0][f]]=typeof d=="bigint"?Number(d):d}n.push(l)}return n}const B0e=150,U0e=Tk.getLogger("useVegaLiteSelections"),j0e=(e,t,n)=>{const{id:i,formId:r,selectionMode:o}=e,s=Rt.useCallback(u=>{o.forEach(c=>{u.addSignalListener(c,S8(B0e,(f,d)=>{const h=u.getState({data:(b,x)=>o.some(v=>`${v}_store`===b),recurse:!1});YA(h)&&t.setElementState(i,"viewState",h);let p=d;"vlPoint"in d&&"or"in d.vlPoint&&(p=d.vlPoint.or);const g={id:i,formId:r},m=JSON.parse(t.getStringValue(g)||"{}"),y={selection:{...m?.selection||{},[f]:p||{}}};XA(m,y)||t.setStringValue(g,JSON.stringify(y),{fromUi:!0},n)}))});const l=t.getElementState(i,"viewState");if(YA(l))try{return u.setState(l)}catch(c){U0e.warn("Failed to restore view state",c)}return u},[i,o,t,r,n]),a=Rt.useCallback(()=>{const u={selection:{}};o.forEach(d=>{u.selection[d]={}});const l={id:i,formId:r},c=t.getStringValue(l),f=c?JSON.parse(c):u;XA(f,u)||t.setStringValue(l,JSON.stringify(u),{fromUi:!0},n)},[i,r,n,o,t]);return{maybeConfigureSelections:s,onFormCleared:a}},Dk="source",q0e=Tk.getLogger("useVegaEmbed");function W0e(e,t,n){const i=Rt.useRef(null),r=Rt.useRef(null),o=Rt.useRef(Dk),s=Rt.useRef(null),a=Rt.useRef([]),{maybeConfigureSelections:u,onFormCleared:l}=j0e(e,t,n);c9({widgetMgr:t,element:e,onFormCleared:l});const{data:c,datasets:f}=e;Rt.useEffect(()=>{i.current===null&&(s.current=c,a.current=f)},[c,f]);const d=Rt.useCallback(()=>{r.current&&r.current(),r.current=null,i.current=null},[]),h=Rt.useCallback(async(m,y)=>{if(m.current===null)throw new Error("Element missing.");d();const b={ast:!0,expr:L0e,tooltip:{disableDefaultStyle:!0},defaultStyle:!1,forceActionsMenu:!0},{vgSpec:x,view:v,finalize:w}=await y0e(m.current,y,b);i.current=u(v),r.current=w;const A=z0e(a.current),E=A?Object.keys(A):[];if(E.length===1){const[C]=E;o.current=C}else E.length===0&&x.data&&(o.current=Dk);const S=I0e(s.current);if(S&&i.current.insert(o.current,S),A)for(const[C,_]of Object.entries(A))i.current.insert(C,_);return await i.current.runAsync(),await i.current.resize().runAsync(),i.current},[d,u]),p=Rt.useCallback((m,y,b,x)=>{if(!x||x.dimensions.numDataRows===0){try{m.remove(y,Lk)}finally{}return}if(!b||b.dimensions.numDataRows===0){m.insert(y,Zp(x));return}x.hash!==b.hash&&(m.data(y,Zp(x)),q0e.info(`Had to clear the ${y} dataset before inserting data through Vega view.`))},[]),g=Rt.useCallback(async(m,y)=>{if(i.current===null)return null;const b=s.current,x=a.current;(b||m)&&p(i.current,o.current,b,m);const v=Sx(x)??{},w=Sx(y)??{};for(const[A,E]of Object.entries(w)){const S=A||o.current,C=v[S];p(i.current,S,C,E)}for(const A of Object.keys(v))!Object.hasOwn(w,A)&&A!==o.current&&p(i.current,A,null,null);return await i.current?.resize().runAsync(),s.current=m,a.current=y,i.current},[p]);return{createView:h,updateView:g,finalizeView:d}}const G0e=({disableFullscreenMode:e,element:t,fragmentId:n,widgetMgr:i})=>{const{expanded:r,height:o,expand:s,collapse:a}=C8(T8),[u,l]=$8(),c=y9(t,r,u,o??0),{createView:f,updateView:d,finalizeView:h}=W0e(c,i,n),{data:p,datasets:g,spec:m}=c;return Rt.useLayoutEffect(()=>(l.current!==null&&f(l,m),h),[f,h,m,u,o,l]),Rt.useEffect(()=>{d(p,g)},[p,g,d]),_8(KA,{height:o,useContainerWidth:c.useContainerWidth,children:[bm(k8,{target:KA,isFullScreen:r,onExpand:s,onCollapse:a,disableFullscreenMode:e}),bm(F8,{styles:[f9]}),bm(d9,{"data-testid":"stVegaLiteChart",className:"stVegaLiteChart",useContainerWidth:c.useContainerWidth,isFullScreen:r,ref:l})]})},H0e=D8(G0e),Ime=Rt.memo(H0e);export{Ime as default};
203
+ </svg>`,d0e="chart-wrapper";function h0e(e){return typeof e=="function"}function $k(e,t,n,i){const r=`<html><head>${t}</head><body><pre><code class="json">`,o=`</code></pre>${n}</body></html>`,s=window.open("");s.document.write(r+e+o),s.document.title=`${Ac[i]} JSON Source`}function p0e(e,t){if(e.$schema){const n=e8(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Ac[n.library]}, but mode argument sets ${Ac[t]??t}.`);const i=n.library;return f8(Qp[i],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Ac[i]} ${n.version}, but the current version of ${Ac[i]} is v${Qp[i]}.`),i}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}function h8(e){return!!(e&&"load"in e)}function _k(e){return h8(e)?e:ir.loader(e)}function g0e(e){const t=e.usermeta?.embedOptions??{};return to(t.defaultStyle)&&(t.defaultStyle=!1),t}async function m0e(e,t,n={}){let i,r;to(t)?(r=_k(n.loader),i=JSON.parse(await r.load(t))):i=t;const o=g0e(i),s=o.loader;(!r||s)&&(r=_k(n.loader??s));const a=await Fk(o,r),u=await Fk(n,r),l={...d8(u,a),config:Rx(u.config??{},a.config??{})};return await b0e(e,i,l,r)}async function Fk(e,t){const n=to(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=to(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return{...e,...i?{patch:i}:{},...n?{config:n}:{}}}function y0e(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}async function b0e(e,t,n={},i){const r=n.theme?Rx(hge[n.theme],n.config??{}):n.config,o=Gk(n.actions)?n.actions:d8({},u0e,n.actions??{}),s={...l0e,...n.i18n},a=n.renderer??"canvas",u=n.logLevel??ir.Warn,l=n.downloadFileName??"visualization",c=typeof e=="string"?document.querySelector(e):e;if(!c)throw new Error(`${e} does not exist`);if(n.defaultStyle!==!1){const w="vega-embed-style",{root:A,rootContainer:E}=y0e(c);if(!A.getElementById(w)){const S=document.createElement("style");S.id=w,S.innerHTML=n.defaultStyle===void 0||n.defaultStyle===!0?s0e.toString():n.defaultStyle,E.appendChild(S)}}const f=p0e(t,n.mode);let d=c0e[f](t,r);if(f==="vega-lite"&&d.$schema){const w=e8(d.$schema);f8(Qp.vega,`^${w.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${w.version}, but current version is v${Qp.vega}.`)}c.classList.add("vega-embed"),o&&c.classList.add("has-actions"),c.innerHTML="";let h=c;if(o){const w=document.createElement("div");w.classList.add(d0e),c.appendChild(w),h=w}const p=n.patch;if(p&&(d=p instanceof Function?p(d):mm(d,p,!0,!1).newDocument),n.formatLocale&&ir.formatLocale(n.formatLocale),n.timeFormatLocale&&ir.timeFormatLocale(n.timeFormatLocale),n.expressionFunctions)for(const w in n.expressionFunctions){const A=n.expressionFunctions[w];"fn"in A?ir.expressionFunction(w,A.fn,A.visitor):A instanceof Function&&ir.expressionFunction(w,A)}const{ast:g}=n,m=ir.parse(d,f==="vega-lite"?{}:r,{ast:g}),y=new(n.viewClass||ir.View)(m,{loader:i,logLevel:u,renderer:a,...g?{expr:ir.expressionInterpreter??n.expr??Cre}:{}});if(y.addSignalListener("autosize",(w,A)=>{const{type:E}=A;E=="fit-x"?(h.classList.add("fit-x"),h.classList.remove("fit-y")):E=="fit-y"?(h.classList.remove("fit-x"),h.classList.add("fit-y")):E=="fit"?h.classList.add("fit-x","fit-y"):h.classList.remove("fit-x","fit-y")}),n.tooltip!==!1){const{loader:w,tooltip:A}=n,E=w&&!h8(w)?w?.baseURL:void 0,S=h0e(A)?A:new Dge({baseURL:E,...A===!0?{}:A}).call;y.tooltip(S)}let{hover:b}=n;if(b===void 0&&(b=f==="vega"),b){const{hoverSet:w,updateSet:A}=typeof b=="boolean"?{}:b;y.hover(w,A)}n&&(n.width!=null&&y.width(n.width),n.height!=null&&y.height(n.height),n.padding!=null&&y.padding(n.padding)),await y.initialize(h,n.bind).runAsync();let x;if(o!==!1){let w=c;if(n.defaultStyle!==!1||n.forceActionsMenu){const E=document.createElement("details");E.title=s.CLICK_TO_VIEW_ACTIONS,c.append(E),w=E;const S=document.createElement("summary");S.innerHTML=f0e,E.append(S),x=C=>{E.contains(C.target)||E.removeAttribute("open")},document.addEventListener("click",x)}const A=document.createElement("div");if(w.append(A),A.classList.add("vega-actions"),o===!0||o.export!==!1){for(const E of["svg","png"])if(o===!0||o.export===!0||o.export[E]){const S=s[`${E.toUpperCase()}_ACTION`],C=document.createElement("a"),_=oa(n.scaleFactor)?n.scaleFactor[E]:n.scaleFactor;C.text=S,C.href="#",C.target="_blank",C.download=`${l}.${E}`,C.addEventListener("mousedown",async function(k){k.preventDefault();const N=await y.toImageURL(E,_);this.href=N}),A.append(C)}}if(o===!0||o.source!==!1){const E=document.createElement("a");E.text=s.SOURCE_ACTION,E.href="#",E.addEventListener("click",function(S){$k(w1(t),n.sourceHeader??"",n.sourceFooter??"",f),S.preventDefault()}),A.append(E)}if(f==="vega-lite"&&(o===!0||o.compiled!==!1)){const E=document.createElement("a");E.text=s.COMPILED_ACTION,E.href="#",E.addEventListener("click",function(S){$k(w1(d),n.sourceHeader??"",n.sourceFooter??"","vega"),S.preventDefault()}),A.append(E)}if(o===!0||o.editor!==!1){const E=n.editorUrl??"https://vega.github.io/editor/",S=document.createElement("a");S.text=s.EDITOR_ACTION,S.href="#",S.addEventListener("click",function(C){o0e(window,E,{config:r,mode:p?"vega":f,renderer:a,spec:w1(p?d:t)}),C.preventDefault()}),A.append(S)}}function v(){x&&document.removeEventListener("click",x),y.finalize()}return{view:y,spec:t,vgSpec:d,finalize:v,embedOptions:n}}function Fl(e,t,n){return e.fields=t||[],e.fname=n,e}function x0e(e){return e.length===1?v0e(e[0]):E0e(e)}const v0e=e=>function(t){return t[e]},E0e=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function dy(e){throw Error(e)}function w0e(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||dy("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&dy("Access path missing closing bracket: "+e),i&&dy("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function A0e(e,t,n){const i=w0e(e);return e=i.length===1?i[0]:e,Fl(x0e(i),[e],e)}A0e("id");Fl(e=>e,[],"identity");Fl(()=>0,[],"zero");Fl(()=>1,[],"one");Fl(()=>!0,[],"true");Fl(()=>!1,[],"false");const S0e=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0);function C0e(e){return typeof e=="string"}function $0e(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var _0e={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},F0e={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},k0e={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const D0e=Array.prototype.slice,Ns=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,D0e.call(t,1))},T0e=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0;return C0e(e)?new Date(e):new Date(e,t,n,i,r,o,s)};var M0e={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:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:T0e,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return Ns("join",arguments)},indexof:function(){return Ns("indexOf",arguments)},lastindexof:function(){return Ns("lastIndexOf",arguments)},slice:function(){return Ns("slice",arguments)},reverse:e=>e.slice().reverse(),sort:e=>e.slice().sort(S0e),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return Ns("substring",arguments,String)},split:function(){return Ns("split",arguments,String)},replace:function(){return Ns("replace",arguments,String)},trim:e=>String(e).trim(),btoa:e=>btoa(e),atob:e=>atob(e),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const O0e=["view","item","group","xy","x","y"],Ax=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ax.add(setImmediate);const R0e={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:_0e[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ax.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||M0e[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>F0e[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>k0e[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ax.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Zl(e,t,n,i,r,o){const s=a=>R0e[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,O0e.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var N0e={operator(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Zl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Zl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Zl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&$0e(s,i,o),l}}};const L0e={DATAFRAME_INDEX:"(index)"};function P0e(e){return!e||e.dimensions.numDataRows===0?null:Zp(e)}function I0e(e){const t=Sx(e);if(Cx(t))return null;const n={};for(const[i,r]of Object.entries(t))n[i]=Zp(r);return n}function Sx(e){if(e?.length===0)return null;const t={};return e.forEach(n=>{if(!n)return;const i=n.hasName?n.name:null;t[i]=n.data}),t}function Zp(e,t=0){if(e.dimensions.numDataRows===0)return[];const n=[],{numDataRows:i,numDataColumns:r,numIndexColumns:o}=e.dimensions,s=e.columnTypes[0]??void 0,a=s&&s.type===v8.INDEX&&(E8(s)||GA(s)||HA(s));for(let u=t;u<i;u++){const l={};if(a){const{content:c}=e.getCell(u,0);l[L0e.DATAFRAME_INDEX]=typeof c=="bigint"?Number(c):c}for(let c=0;c<r;c++){const f=c+o,{content:d,contentType:h}=e.getCell(u,f);if((d instanceof Date||typeof d=="number"&&Number.isFinite(d))&&(GA(h)||HA(h))&&!w8(h)){const p=new Date(d).getTimezoneOffset()*60*1e3;l[e.columnNames[0][f]]=d.valueOf()+p}else l[e.columnNames[0][f]]=typeof d=="bigint"?Number(d):d}n.push(l)}return n}const z0e=150,B0e=Dk.getLogger("useVegaLiteSelections"),U0e=(e,t,n)=>{const{id:i,formId:r,selectionMode:o}=e,s=Rt.useCallback(u=>{o.forEach(c=>{u.addSignalListener(c,A8(z0e,(f,d)=>{const h=u.getState({data:(b,x)=>o.some(v=>`${v}_store`===b),recurse:!1});VA(h)&&t.setElementState(i,"viewState",h);let p=d;"vlPoint"in d&&"or"in d.vlPoint&&(p=d.vlPoint.or);const g={id:i,formId:r},m=JSON.parse(t.getStringValue(g)||"{}"),y={selection:{...m?.selection||{},[f]:p||{}}};YA(m,y)||t.setStringValue(g,JSON.stringify(y),{fromUi:!0},n)}))});const l=t.getElementState(i,"viewState");if(VA(l))try{return u.setState(l)}catch(c){B0e.warn("Failed to restore view state",c)}return u},[i,o,t,r,n]),a=Rt.useCallback(()=>{const u={selection:{}};o.forEach(d=>{u.selection[d]={}});const l={id:i,formId:r},c=t.getStringValue(l),f=c?JSON.parse(c):u;YA(f,u)||t.setStringValue(l,JSON.stringify(u),{fromUi:!0},n)},[i,r,n,o,t]);return{maybeConfigureSelections:s,onFormCleared:a}},kk="source",j0e=Dk.getLogger("useVegaEmbed");function q0e(e,t,n){const i=Rt.useRef(null),r=Rt.useRef(null),o=Rt.useRef(kk),s=Rt.useRef(null),a=Rt.useRef([]),{maybeConfigureSelections:u,onFormCleared:l}=U0e(e,t,n);l9({widgetMgr:t,element:e,onFormCleared:l});const{data:c,datasets:f}=e;Rt.useEffect(()=>{i.current===null&&(s.current=c,a.current=f)},[c,f]);const d=Rt.useCallback(()=>{r.current&&r.current(),r.current=null,i.current=null},[]),h=Rt.useCallback(async(m,y)=>{if(m.current===null)throw new Error("Element missing.");d();const b={ast:!0,expr:N0e,tooltip:{disableDefaultStyle:!0},defaultStyle:!1,forceActionsMenu:!0},{vgSpec:x,view:v,finalize:w}=await m0e(m.current,y,b);i.current=u(v),r.current=w;const A=I0e(a.current),E=A?Object.keys(A):[];if(E.length===1){const[C]=E;o.current=C}else E.length===0&&x.data&&(o.current=kk);const S=P0e(s.current);if(S&&i.current.insert(o.current,S),A)for(const[C,_]of Object.entries(A))i.current.insert(C,_);return await i.current.runAsync(),await i.current.resize().runAsync(),i.current},[d,u]),p=Rt.useCallback((m,y,b,x)=>{if(!x||x.dimensions.numDataRows===0){try{m.remove(y,Nk)}finally{}return}if(!b||b.dimensions.numDataRows===0){m.insert(y,Zp(x));return}x.hash!==b.hash&&(m.data(y,Zp(x)),j0e.info(`Had to clear the ${y} dataset before inserting data through Vega view.`))},[]),g=Rt.useCallback(async(m,y)=>{if(i.current===null)return null;const b=s.current,x=a.current;(b||m)&&p(i.current,o.current,b,m);const v=Sx(x)??{},w=Sx(y)??{};for(const[A,E]of Object.entries(w)){const S=A||o.current,C=v[S];p(i.current,S,C,E)}for(const A of Object.keys(v))!Object.hasOwn(w,A)&&A!==o.current&&p(i.current,A,null,null);return await i.current?.resize().runAsync(),s.current=m,a.current=y,i.current},[p]);return{createView:h,updateView:g,finalizeView:d}}const W0e=({disableFullscreenMode:e,element:t,fragmentId:n,widgetMgr:i})=>{const{expanded:r,height:o,expand:s,collapse:a}=S8(D8),[u,l]=C8(),c=m9(t,r,u,o??0),{createView:f,updateView:d,finalizeView:h}=q0e(c,i,n),{data:p,datasets:g,spec:m}=c;return Rt.useLayoutEffect(()=>(l.current!==null&&f(l,m),h),[f,h,m,u,o,l]),Rt.useEffect(()=>{d(p,g)},[p,g,d]),$8(XA,{height:o,useContainerWidth:c.useContainerWidth,children:[bm(F8,{target:XA,isFullScreen:r,onExpand:s,onCollapse:a,disableFullscreenMode:e}),bm(_8,{styles:[c9]}),bm(f9,{"data-testid":"stVegaLiteChart",className:"stVegaLiteChart",useContainerWidth:c.useContainerWidth,isFullScreen:r,ref:l})]})},G0e=k8(W0e),Pme=Rt.memo(G0e);export{Pme as default};