Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save joverlee521/57d4de4599db3e03a081fb987fe0c1a1 to your computer and use it in GitHub Desktop.
Save joverlee521/57d4de4599db3e03a081fb987fe0c1a1 to your computer and use it in GitHub Desktop.
Snakemake report generated from AWS Batch job
This file has been truncated, but you can view the full file.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Snakemake Report</title>
<script>(()=>{var Hb=Object.create;var wi=Object.defineProperty;var Yb=Object.getOwnPropertyDescriptor;var Qb=Object.getOwnPropertyNames;var Jb=Object.getPrototypeOf,Kb=Object.prototype.hasOwnProperty;var Iu=t=>wi(t,"__esModule",{value:!0});var ps=t=>{if(typeof require!="undefined")return require(t);throw new Error('Dynamic require of "'+t+'" is not supported')};var C=(t,e)=>()=>(t&&(e=t(t=0)),e);var x=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),he=(t,e)=>{Iu(t);for(var r in e)wi(t,r,{get:e[r],enumerable:!0})},Xb=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Qb(e))!Kb.call(t,i)&&i!=="default"&&wi(t,i,{get:()=>e[i],enumerable:!(r=Yb(e,i))||r.enumerable});return t},G=t=>Xb(Iu(wi(t!=null?Hb(Jb(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var h,l=C(()=>{h={platform:"",env:{},versions:{node:"14.17.6"}}});var Zb,ve,Ct=C(()=>{l();Zb=0,ve={readFileSync:t=>self[t]||"",statSync:()=>({mtimeMs:Zb++}),promises:{readFile:t=>Promise.resolve(self[t]||"")}}});var zu={};he(zu,{default:()=>se});var se,at=C(()=>{l();se={resolve:t=>t,extname:t=>"."+t.split(".").pop()}});var Lu,Fu=C(()=>{l();Lu={sync:t=>[].concat(t),generateTasks:t=>[{dynamic:!1,base:".",negative:[],positive:[].concat(t),patterns:[].concat(t)}],escapePath:t=>t}});var ds=x((oO,Nu)=>{l();"use strict";var Mu=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};Nu.exports=Mu});var $u,ju=C(()=>{l();$u=t=>t});var Uu,Wu=C(()=>{l();Uu=t=>t&&t._hash});function xi(t){return Uu(t,{ignoreUnknown:!0})}var Vu=C(()=>{l();Wu()});var vi,hs=C(()=>{l();vi={}});function Gu(t){let e=ve.readFileSync(t,"utf-8"),r=vi(e);return{file:t,requires:r}}function ms(t){let r=[Gu(t)];for(let i of r)i.requires.filter(n=>n.startsWith("./")||n.startsWith("../")).forEach(n=>{try{let s=se.dirname(i.file),o=vi.sync(n,{basedir:s}),a=Gu(o);r.push(a)}catch(s){}});return r}var Hu=C(()=>{l();Ct();at();hs();hs()});function lt(t){if(t=`${t}`,t==="0")return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(t))return t.replace(/^[+-]?/,e=>e==="-"?"":"-");if(t.includes("var(")||t.includes("calc("))return`calc(${t} * -1)`}var ki=C(()=>{l()});var Yu,Qu=C(()=>{l();Yu=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","display","aspectRatio","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","borderCollapse","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","whitespace","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","content"]});function Ju(t,e){return t===void 0?e:Array.isArray(t)?t:[...new Set(e.filter(i=>t!==!1&&t[i]!==!1).concat(Object.keys(t).filter(i=>t[i]!==!1)))]}var Ku=C(()=>{l()});var gs=x((xO,Xu)=>{l();Xu.exports={content:[],presets:[],darkMode:"media",theme:{screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},colors:({colors:t})=>({inherit:t.inherit,current:t.current,transparent:t.transparent,black:t.black,white:t.white,slate:t.slate,gray:t.gray,zinc:t.zinc,neutral:t.neutral,stone:t.stone,red:t.red,orange:t.orange,amber:t.amber,yellow:t.yellow,lime:t.lime,green:t.green,emerald:t.emerald,teal:t.teal,cyan:t.cyan,sky:t.sky,blue:t.blue,indigo:t.indigo,violet:t.violet,purple:t.purple,fuchsia:t.fuchsia,pink:t.pink,rose:t.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:t})=>t("blur"),backdropBrightness:({theme:t})=>t("brightness"),backdropContrast:({theme:t})=>t("contrast"),backdropGrayscale:({theme:t})=>t("grayscale"),backdropHueRotate:({theme:t})=>t("hueRotate"),backdropInvert:({theme:t})=>t("invert"),backdropOpacity:({theme:t})=>t("opacity"),backdropSaturate:({theme:t})=>t("saturate"),backdropSepia:({theme:t})=>t("sepia"),backgroundColor:({theme:t})=>t("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:t})=>t("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"0",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},borderColor:({theme:t})=>({...t("colors"),DEFAULT:t("colors.gray.200","currentColor")}),borderOpacity:({theme:t})=>t("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:t})=>t("colors"),caretColor:({theme:t})=>t("colors"),accentColor:({theme:t})=>({...t("colors"),auto:"auto"}),contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},container:{},content:{none:"none"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:t})=>t("borderColor"),divideOpacity:({theme:t})=>t("borderOpacity"),divideWidth:({theme:t})=>t("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:t})=>t("colors"),grayscale:{0:"0",DEFAULT:"100%"},hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},invert:{0:"0",DEFAULT:"100%"},flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","-apple-system","BlinkMacSystemFont",'"Segoe UI"',"Roboto",'"Helvetica Neue"',"Arial",'"Noto Sans"',"sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:t})=>t("spacing"),gradientColorStops:({theme:t})=>t("colors"),gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-full":"1 / -1"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7"},gridTemplateColumns:{none:"none",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))"},height:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",min:"min-content",max:"max-content",fit:"fit-content"}),inset:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},margin:({theme:t})=>({auto:"auto",...t("spacing")}),maxHeight:({theme:t})=>({...t("spacing"),full:"100%",screen:"100vh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:t,breakpoints:e})=>({none:"none",0:"0rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(t("screens"))}),minHeight:{0:"0px",full:"100%",screen:"100vh",min:"min-content",max:"max-content",fit:"fit-content"},minWidth:{0:"0px",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"},objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",20:"0.2",25:"0.25",30:"0.3",40:"0.4",50:"0.5",60:"0.6",70:"0.7",75:"0.75",80:"0.8",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},padding:({theme:t})=>t("spacing"),placeholderColor:({theme:t})=>t("colors"),placeholderOpacity:({theme:t})=>t("opacity"),outlineColor:({theme:t})=>t("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringColor:({theme:t})=>({DEFAULT:t("colors.blue.500","#3b82f6"),...t("colors")}),ringOffsetColor:({theme:t})=>t("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:t})=>({DEFAULT:"0.5",...t("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},scrollMargin:({theme:t})=>({...t("spacing")}),scrollPadding:({theme:t})=>t("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:t})=>({...t("spacing")}),stroke:({theme:t})=>t("colors"),strokeWidth:{0:"0",1:"1",2:"2"},textColor:({theme:t})=>t("colors"),textDecorationColor:({theme:t})=>t("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:t})=>({...t("spacing")}),textOpacity:({theme:t})=>t("opacity"),transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:t})=>({...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),width:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},variantOrder:["first","last","odd","even","visited","checked","empty","read-only","group-hover","group-focus","focus-within","hover","focus","focus-visible","active","disabled"],plugins:[]}});var Si,ut,ys=C(()=>{l();Si=t=>t,ut={yellow:Si,bold:{yellow:Si,magenta:Si,cyan:Si}}});function bs(t,e,r){h.env.JEST_WORKER_ID===void 0&&(r&&Zu.has(r)||(r&&Zu.add(r),console.warn(""),e.forEach(i=>console.warn(t,"-",i))))}function ws(t){return ut.dim(t)}var Zu,Q,Re=C(()=>{l();ys();Zu=new Set;Q={info(t,e){bs(ut.bold.cyan("info"),...Array.isArray(t)?[t]:[e,t])},warn(t,e){["content-problems"].includes(t)||bs(ut.bold.yellow("warn"),...Array.isArray(t)?[t]:[e,t])},risk(t,e){bs(ut.bold.magenta("risk"),...Array.isArray(t)?[t]:[e,t])}}});function lr({version:t,from:e,to:r}){Q.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${t}, \`${e}\` has been renamed to \`${r}\`.`,"Update your configuration file to silence this warning."])}var ef,tf=C(()=>{l();Re();ef={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337"},get lightBlue(){return lr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return lr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return lr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return lr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return lr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}});function xs(t,...e){for(let r of e){for(let i in r)t?.hasOwnProperty?.(i)||(t[i]=r[i]);for(let i of Object.getOwnPropertySymbols(r))t?.hasOwnProperty?.(i)||(t[i]=r[i])}return t}var rf=C(()=>{l()});function ft(t){if(Array.isArray(t))return t;let e=t.split("[").length-1,r=t.split("]").length-1;if(e!==r)throw new Error(`Path is invalid. Has unbalanced brackets: ${t}`);return t.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var Ci=C(()=>{l()});function nf(t){(()=>{if(t.purge||!t.content||!Array.isArray(t.content)&&!(typeof t.content=="object"&&t.content!==null))return!1;if(Array.isArray(t.content))return t.content.every(r=>typeof r=="string"?!0:!(typeof r?.raw!="string"||r?.extension&&typeof r?.extension!="string"));if(typeof t.content=="object"&&t.content!==null){if(Object.keys(t.content).some(r=>!["files","extract","transform"].includes(r)))return!1;if(Array.isArray(t.content.files)){if(!t.content.files.every(r=>typeof r=="string"?!0:!(typeof r?.raw!="string"||r?.extension&&typeof r?.extension!="string")))return!1;if(typeof t.content.extract=="object"){for(let r of Object.values(t.content.extract))if(typeof r!="function")return!1}else if(!(t.content.extract===void 0||typeof t.content.extract=="function"))return!1;if(typeof t.content.transform=="object"){for(let r of Object.values(t.content.transform))if(typeof r!="function")return!1}else if(!(t.content.transform===void 0||typeof t.content.transform=="function"))return!1}return!0}return!1})()||Q.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),t.safelist=(()=>{let{content:r,purge:i,safelist:n}=t;return Array.isArray(n)?n:Array.isArray(r?.safelist)?r.safelist:Array.isArray(i?.safelist)?i.safelist:Array.isArray(i?.options?.safelist)?i.options.safelist:[]})(),typeof t.prefix=="function"?(Q.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),t.prefix=""):t.prefix=t.prefix??"",t.content={files:(()=>{let{content:r,purge:i}=t;return Array.isArray(i)?i:Array.isArray(i?.content)?i.content:Array.isArray(r)?r:Array.isArray(r?.content)?r.content:Array.isArray(r?.files)?r.files:[]})(),extract:(()=>{let r=(()=>t.purge?.extract?t.purge.extract:t.content?.extract?t.content.extract:t.purge?.extract?.DEFAULT?t.purge.extract.DEFAULT:t.content?.extract?.DEFAULT?t.content.extract.DEFAULT:t.purge?.options?.extractors?t.purge.options.extractors:t.content?.options?.extractors?t.content.options.extractors:{})(),i={},n=(()=>{if(t.purge?.options?.defaultExtractor)return t.purge.options.defaultExtractor;if(t.content?.options?.defaultExtractor)return t.content.options.defaultExtractor})();if(n!==void 0&&(i.DEFAULT=n),typeof r=="function")i.DEFAULT=r;else if(Array.isArray(r))for(let{extensions:s,extractor:o}of r??[])for(let a of s)i[a]=o;else typeof r=="object"&&r!==null&&Object.assign(i,r);return i})(),transform:(()=>{let r=(()=>t.purge?.transform?t.purge.transform:t.content?.transform?t.content.transform:t.purge?.transform?.DEFAULT?t.purge.transform.DEFAULT:t.content?.transform?.DEFAULT?t.content.transform.DEFAULT:{})(),i={};return typeof r=="function"&&(i.DEFAULT=r),typeof r=="object"&&r!==null&&Object.assign(i,r),i})()};for(let r of t.content.files)if(typeof r=="string"&&/{([^,]*?)}/g.test(r)){Q.warn("invalid-glob-braces",[`The glob pattern ${ws(r)} in your Tailwind CSS configuration is invalid.`,`Update it to ${ws(r.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return t.content.files.length===0&&Q.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]),t}var sf=C(()=>{l();Re()});function Ie(t){if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}var ur=C(()=>{l()});function Ti(t){return Array.isArray(t)?t.map(e=>Ti(e)):typeof t=="object"&&t!==null?Object.fromEntries(Object.entries(t).map(([e,r])=>[e,Ti(r)])):t}var of=C(()=>{l()});function Tt(t){return typeof t=="function"}function fr(t){return typeof t=="object"&&t!==null}function cr(t,...e){let r=e.pop();for(let i of e)for(let n in i){let s=r(t[n],i[n]);s===void 0?fr(t[n])&&fr(i[n])?t[n]=cr(t[n],i[n],r):t[n]=i[n]:t[n]=s}return t}function ew(t,...e){return Tt(t)?t(...e):t}function tw(t){return t.reduce((e,{extend:r})=>cr(e,r,(i,n)=>i===void 0?[n]:Array.isArray(i)?[n,...i]:[n,i]),{})}function rw(t){return{...t.reduce((e,r)=>xs(e,r),{}),extend:tw(t)}}function lf(t,e){if(Array.isArray(t)&&fr(t[0]))return t.concat(e);if(Array.isArray(e)&&fr(e[0])&&fr(t))return[t,...e];if(Array.isArray(e))return e}function iw({extend:t,...e}){return cr(e,t,(r,i)=>!Tt(r)&&!i.some(Tt)?cr({},r,...i,lf):(n,s)=>cr({},...[r,...i].map(o=>ew(o,n,s)),lf))}function nw(t){let e=(r,i)=>{let n=ft(r),s=0,o=t;for(;o!=null&&s<n.length;)o=o[n[s++]],o=Tt(o)?o(e,_i):o;return o===void 0?i:Ie(o)?Ti(o):o};e.theme=e;for(let r in _i)e[r]=_i[r];return Object.keys(t).reduce((r,i)=>({...r,[i]:Tt(t[i])?t[i](e,_i):t[i]}),{})}function uf(t){let e=[];return t.forEach(r=>{e=[...e,r];let i=r?.plugins??[];i.length!==0&&i.forEach(n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...uf([n?.config??{}])]})}),e}function sw(t){return[...t].reduceRight((r,i)=>Tt(i)?i({corePlugins:r}):Ju(i,r),Yu)}function ow(t){return[...t].reduceRight((r,i)=>[...r,...i],[])}function vs(t){let e=[...uf(t),{prefix:"",important:!1,separator:":",variantOrder:af.default.variantOrder}];return nf(xs({theme:nw(iw(rw(e.map(r=>r?.theme??{})))),corePlugins:sw(e.map(r=>r.corePlugins)),plugins:ow(t.map(r=>r?.plugins??[]))},...e))}var af,_i,ff=C(()=>{l();ki();Qu();Ku();af=G(gs());tf();rf();Ci();sf();ur();of();_i={colors:ef,negative(t){return Object.keys(t).filter(e=>t[e]!=="0").reduce((e,r)=>{let i=lt(t[r]);return i!==void 0&&(e[`-${r}`]=i),e},{})},breakpoints(t){return Object.keys(t).filter(e=>typeof t[e]=="string").reduce((e,r)=>({...e,[`screen-${r}`]:t[r]}),{})}}});function Oi(t,e){return Ai.future.includes(e)?t.future==="all"||(t?.future?.[e]??cf[e]??!1):Ai.experimental.includes(e)?t.experimental==="all"||(t?.experimental?.[e]??cf[e]??!1):!1}function pf(t){return t.experimental==="all"?Ai.experimental:Object.keys(t?.experimental??{}).filter(e=>Ai.experimental.includes(e)&&t.experimental[e])}function df(t){if(h.env.JEST_WORKER_ID===void 0&&pf(t).length>0){let e=pf(t).map(r=>ut.yellow(r)).join(", ");Q.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}}var cf,Ai,Ei=C(()=>{l();ys();Re();cf={optimizeUniversalDefaults:!1},Ai={future:[],experimental:["optimizeUniversalDefaults"]}});function Pi(t){let e=(t?.presets??[hf.default]).slice().reverse().flatMap(n=>Pi(n instanceof Function?n():n)),r={},i=Object.keys(r).filter(n=>Oi(t,n)).map(n=>r[n]);return[t,...i,...e]}var hf,mf=C(()=>{l();hf=G(gs());Ei()});function Di(...t){let[,...e]=Pi(t[0]);return vs([...t,...e])}var gf=C(()=>{l();ff();mf()});function qi(t){return typeof t=="object"&&t!==null}function aw(t){return Object.keys(t).length===0}function yf(t){return typeof t=="string"||t instanceof String}function ks(t){if(qi(t)&&t.config===void 0&&!aw(t))return null;if(qi(t)&&t.config!==void 0&&yf(t.config))return se.resolve(t.config);if(qi(t)&&t.config!==void 0&&qi(t.config))return null;if(yf(t))return se.resolve(t);for(let e of["./tailwind.config.js","./tailwind.config.cjs"])try{let r=se.resolve(e);return ve.accessSync(r),r}catch(r){}return null}var bf=C(()=>{l();Ct();at()});function lw(t){if(t===void 0)return!1;if(t==="true"||t==="1")return!0;if(t==="false"||t==="0")return!1;if(t==="*")return!0;let e=t.split(",").map(r=>r.split(":")[0]);return e.includes("-tailwindcss")?!1:!!e.includes("tailwindcss")}var me,wf,xf,Bi,ze,ct=C(()=>{l();me={NODE_ENV:"production",DEBUG:lw(h.env.DEBUG)},wf=new Map,xf=new Map,Bi=new Map,ze=new String("*")});var vf={};he(vf,{default:()=>Ss});var Ss,Cs=C(()=>{l();Ss={parse:t=>({href:t})}});var kf={};he(kf,{default:()=>ke});var ke,Ri=C(()=>{l();ke=new Proxy({},{get:()=>String})});var Ts=x(()=>{l()});var Ii=x((rE,Tf)=>{l();"use strict";var Sf=(Ri(),kf),Cf=Ts(),_t=class extends Error{constructor(e,r,i,n,s,o){super(e);this.name="CssSyntaxError",this.reason=e,s&&(this.file=s),n&&(this.source=n),o&&(this.plugin=o),typeof r!="undefined"&&typeof i!="undefined"&&(typeof r=="number"?(this.line=r,this.column=i):(this.line=r.line,this.column=r.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,_t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line!="undefined"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let r=this.source;e==null&&(e=Sf.isColorSupported),Cf&&e&&(r=Cf(r));let i=r.split(/\r?\n/),n=Math.max(this.line-3,0),s=Math.min(this.line+2,i.length),o=String(s).length,a,u;if(e){let{bold:c,red:f,gray:d}=Sf.createColors(!0);a=g=>c(f(g)),u=g=>d(g)}else a=u=c=>c;return i.slice(n,s).map((c,f)=>{let d=n+1+f,g=" "+(" "+d).slice(-o)+" | ";if(d===this.line){let y=u(g.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return a(">")+u(g)+c+`
`+y+a("^")}return" "+u(g)+c}).join(`
`)}toString(){let e=this.showSourceCode();return e&&(e=`
`+e+`
`),this.name+": "+this.message+e}};Tf.exports=_t;_t.default=_t});var zi=x((iE,_s)=>{l();"use strict";_s.exports.isClean=Symbol("isClean");_s.exports.my=Symbol("my")});var As=x((nE,Af)=>{l();"use strict";var _f={colon:": ",indent:" ",beforeDecl:`
`,beforeRule:`
`,beforeOpen:" ",beforeClose:`
`,beforeComment:`
`,after:`
`,emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};function uw(t){return t[0].toUpperCase()+t.slice(1)}var Li=class{constructor(e){this.builder=e}stringify(e,r){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,r)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let r=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+r+e.text+i+"*/",e)}decl(e,r){let i=this.raw(e,"between","colon"),n=e.prop+i+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),r&&(n+=";"),this.builder(n,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,r){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!="undefined"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let s=(e.raws.between||"")+(r?";":"");this.builder(i+n+s,e)}}body(e){let r=e.nodes.length-1;for(;r>0&&e.nodes[r].type==="comment";)r-=1;let i=this.raw(e,"semicolon");for(let n=0;n<e.nodes.length;n++){let s=e.nodes[n],o=this.raw(s,"before");o&&this.builder(o),this.stringify(s,r!==n||i)}}block(e,r){let i=this.raw(e,"between","beforeOpen");this.builder(r+i+"{",e,"start");let n;e.nodes&&e.nodes.length?(this.body(e),n=this.raw(e,"after")):n=this.raw(e,"after","emptyBody"),n&&this.builder(n),this.builder("}",e,"end")}raw(e,r,i){let n;if(i||(i=r),r&&(n=e.raws[r],typeof n!="undefined"))return n;let s=e.parent;if(i==="before"&&(!s||s.type==="root"&&s.first===e||s&&s.type==="document"))return"";if(!s)return _f[i];let o=e.root();if(o.rawCache||(o.rawCache={}),typeof o.rawCache[i]!="undefined")return o.rawCache[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+uw(i);this[a]?n=this[a](o,e):o.walk(u=>{if(n=u.raws[r],typeof n!="undefined")return!1})}return typeof n=="undefined"&&(n=_f[i]),o.rawCache[i]=n,n}rawSemicolon(e){let r;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(r=i.raws.semicolon,typeof r!="undefined"))return!1}),r}rawEmptyBody(e){let r;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(r=i.raws.after,typeof r!="undefined"))return!1}),r}rawIndent(e){if(e.raws.indent)return e.raws.indent;let r;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before!="undefined"){let s=i.raws.before.split(`
`);return r=s[s.length-1],r=r.replace(/\S/g,""),!1}}),r}rawBeforeComment(e,r){let i;return e.walkComments(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(`
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(r,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,r){let i;return e.walkDecls(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(`
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(r,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeRule(e){let r;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before!="undefined")return r=i.raws.before,r.includes(`
`)&&(r=r.replace(/[^\n]+$/,"")),!1}),r&&(r=r.replace(/\S/g,"")),r}rawBeforeClose(e){let r;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after!="undefined")return r=i.raws.after,r.includes(`
`)&&(r=r.replace(/[^\n]+$/,"")),!1}),r&&(r=r.replace(/\S/g,"")),r}rawBeforeOpen(e){let r;return e.walk(i=>{if(i.type!=="decl"&&(r=i.raws.between,typeof r!="undefined"))return!1}),r}rawColon(e){let r;return e.walkDecls(i=>{if(typeof i.raws.between!="undefined")return r=i.raws.between.replace(/[^\s:]/g,""),!1}),r}beforeAfter(e,r){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):r==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&n.type!=="root";)s+=1,n=n.parent;if(i.includes(`
`)){let o=this.raw(e,null,"indent");if(o.length)for(let a=0;a<s;a++)i+=o}return i}rawValue(e,r){let i=e[r],n=e.raws[r];return n&&n.value===i?n.raw:i}};Af.exports=Li;Li.default=Li});var pr=x((sE,Of)=>{l();"use strict";var fw=As();function Os(t,e){new fw(e).stringify(t)}Of.exports=Os;Os.default=Os});var dr=x((oE,Ef)=>{l();"use strict";var{isClean:Fi,my:cw}=zi(),pw=Ii(),dw=As(),hw=pr();function Es(t,e){let r=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let n=t[i],s=typeof n;i==="parent"&&s==="object"?e&&(r[i]=e):i==="source"?r[i]=n:Array.isArray(n)?r[i]=n.map(o=>Es(o,r)):(s==="object"&&n!==null&&(n=Es(n)),r[i]=n)}return r}var Mi=class{constructor(e={}){this.raws={},this[Fi]=!1,this[cw]=!0;for(let r in e)if(r==="nodes"){this.nodes=[];for(let i of e[r])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[r]=e[r]}error(e,r={}){if(this.source){let{start:i,end:n}=this.rangeBy(r);return this.source.input.error(e,{line:i.line,column:i.column},{line:n.line,column:n.column},r)}return new pw(e)}warn(e,r,i){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(r,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=hw){e.stringify&&(e=e.stringify);let r="";return e(this,i=>{r+=i}),r}assign(e={}){for(let r in e)this[r]=e[r];return this}clone(e={}){let r=Es(this);for(let i in e)r[i]=e[i];return r}cloneBefore(e={}){let r=this.clone(e);return this.parent.insertBefore(this,r),r}cloneAfter(e={}){let r=this.clone(e);return this.parent.insertAfter(this,r),r}replaceWith(...e){if(this.parent){let r=this,i=!1;for(let n of e)n===this?i=!0:i?(this.parent.insertAfter(r,n),r=n):this.parent.insertBefore(r,n);i||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}raw(e,r){return new dw().raw(this,e,r)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,r){let i={},n=r==null;r=r||new Map;let s=0;for(let o in this){if(!Object.prototype.hasOwnProperty.call(this,o)||o==="parent"||o==="proxyCache")continue;let a=this[o];if(Array.isArray(a))i[o]=a.map(u=>typeof u=="object"&&u.toJSON?u.toJSON(null,r):u);else if(typeof a=="object"&&a.toJSON)i[o]=a.toJSON(null,r);else if(o==="source"){let u=r.get(a.input);u==null&&(u=s,r.set(a.input,s),s++),i[o]={inputId:u,start:a.start,end:a.end}}else i[o]=a}return n&&(i.inputs=[...r.keys()].map(o=>o.toJSON())),i}positionInside(e){let r=this.toString(),i=this.source.start.column,n=this.source.start.line;for(let s=0;s<e;s++)r[s]===`
`?(i=1,n+=1):i+=1;return{line:n,column:i}}positionBy(e){let r=this.source.start;if(e.index)r=this.positionInside(e.index);else if(e.word){let i=this.toString().indexOf(e.word);i!==-1&&(r=this.positionInside(i))}return r}rangeBy(e){let r={line:this.source.start.line,column:this.source.start.column},i=this.source.end?{line:this.source.end.line,column:this.source.end.column+1}:{line:r.line,column:r.column+1};if(e.word){let n=this.toString().indexOf(e.word);n!==-1&&(r=this.positionInside(n),i=this.positionInside(n+e.word.length))}else e.start?r={line:e.start.line,column:e.start.column}:e.index&&(r=this.positionInside(e.index)),e.end?i={line:e.end.line,column:e.end.column}:e.endIndex?i=this.positionInside(e.endIndex):e.index&&(i=this.positionInside(e.index+1));return(i.line<r.line||i.line===r.line&&i.column<=r.column)&&(i={line:r.line,column:r.column+1}),{start:r,end:i}}getProxyProcessor(){return{set(e,r,i){return e[r]===i||(e[r]=i,(r==="prop"||r==="value"||r==="name"||r==="params"||r==="important"||r==="text")&&e.markDirty()),!0},get(e,r){return r==="proxyOf"?e:r==="root"?()=>e.root().toProxy():e[r]}}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let r=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${r.input.from}:${r.start.line}:${r.start.column}$&`)}return e}markDirty(){if(this[Fi]){this[Fi]=!1;let e=this;for(;e=e.parent;)e[Fi]=!1}}get proxyOf(){return this}};Ef.exports=Mi;Mi.default=Mi});var hr=x((aE,Pf)=>{l();"use strict";var mw=dr(),Ni=class extends mw{constructor(e){e&&typeof e.value!="undefined"&&typeof e.value!="string"&&(e={...e,value:String(e.value)});super(e);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};Pf.exports=Ni;Ni.default=Ni});var Ps=x((lE,Df)=>{l();Df.exports=function(t,e){return{generate:()=>{let r="";return t(e,i=>{r+=i}),[r]}}}});var mr=x((uE,qf)=>{l();"use strict";var gw=dr(),$i=class extends gw{constructor(e){super(e);this.type="comment"}};qf.exports=$i;$i.default=$i});var Ge=x((fE,$f)=>{l();"use strict";var{isClean:Bf,my:Rf}=zi(),If=hr(),zf=mr(),yw=dr(),Lf,Ds,qs,Ff;function Mf(t){return t.map(e=>(e.nodes&&(e.nodes=Mf(e.nodes)),delete e.source,e))}function Nf(t){if(t[Bf]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)Nf(e)}var oe=class extends yw{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let r=this.getIterator(),i,n;for(;this.indexes[r]<this.proxyOf.nodes.length&&(i=this.indexes[r],n=e(this.proxyOf.nodes[i],i),n!==!1);)this.indexes[r]+=1;return delete this.indexes[r],n}walk(e){return this.each((r,i)=>{let n;try{n=e(r,i)}catch(s){throw r.addToError(s)}return n!==!1&&r.walk&&(n=r.walk(e)),n})}walkDecls(e,r){return r?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="decl"&&e.test(i.prop))return r(i,n)}):this.walk((i,n)=>{if(i.type==="decl"&&i.prop===e)return r(i,n)}):(r=e,this.walk((i,n)=>{if(i.type==="decl")return r(i,n)}))}walkRules(e,r){return r?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="rule"&&e.test(i.selector))return r(i,n)}):this.walk((i,n)=>{if(i.type==="rule"&&i.selector===e)return r(i,n)}):(r=e,this.walk((i,n)=>{if(i.type==="rule")return r(i,n)}))}walkAtRules(e,r){return r?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="atrule"&&e.test(i.name))return r(i,n)}):this.walk((i,n)=>{if(i.type==="atrule"&&i.name===e)return r(i,n)}):(r=e,this.walk((i,n)=>{if(i.type==="atrule")return r(i,n)}))}walkComments(e){return this.walk((r,i)=>{if(r.type==="comment")return e(r,i)})}append(...e){for(let r of e){let i=this.normalize(r,this.last);for(let n of i)this.proxyOf.nodes.push(n)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let r of e){let i=this.normalize(r,this.first,"prepend").reverse();for(let n of i)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+i.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let r of this.nodes)r.cleanRaws(e)}insertBefore(e,r){let i=this.index(e),n=i===0?"prepend":!1,s=this.normalize(r,this.proxyOf.nodes[i],n).reverse();i=this.index(e);for(let a of s)this.proxyOf.nodes.splice(i,0,a);let o;for(let a in this.indexes)o=this.indexes[a],i<=o&&(this.indexes[a]=o+s.length);return this.markDirty(),this}insertAfter(e,r){let i=this.index(e),n=this.normalize(r,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let o of n)this.proxyOf.nodes.splice(i+1,0,o);let s;for(let o in this.indexes)s=this.indexes[o],i<s&&(this.indexes[o]=s+n.length);return this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let r;for(let i in this.indexes)r=this.indexes[i],r>=e&&(this.indexes[i]=r-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,r,i){return i||(i=r,r={}),this.walkDecls(n=>{r.props&&!r.props.includes(n.prop)||r.fast&&!n.value.includes(r.fast)||(n.value=n.value.replace(e,i))}),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,r){if(typeof e=="string")e=Mf(Lf(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value=="undefined")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new If(e)]}else if(e.selector)e=[new Ds(e)];else if(e.name)e=[new qs(e)];else if(e.text)e=[new zf(e)];else throw new Error("Unknown node type in node creation");return e.map(n=>(n[Rf]||oe.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[Bf]&&Nf(n),typeof n.raws.before=="undefined"&&r&&typeof r.raws.before!="undefined"&&(n.raws.before=r.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}getProxyProcessor(){return{set(e,r,i){return e[r]===i||(e[r]=i,(r==="name"||r==="params"||r==="selector")&&e.markDirty()),!0},get(e,r){return r==="proxyOf"?e:e[r]?r==="each"||typeof r=="string"&&r.startsWith("walk")?(...i)=>e[r](...i.map(n=>typeof n=="function"?(s,o)=>n(s.toProxy(),o):n)):r==="every"||r==="some"?i=>e[r]((n,...s)=>i(n.toProxy(),...s)):r==="root"?()=>e.root().toProxy():r==="nodes"?e.nodes.map(i=>i.toProxy()):r==="first"||r==="last"?e[r].toProxy():e[r]:e[r]}}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}};oe.registerParse=t=>{Lf=t};oe.registerRule=t=>{Ds=t};oe.registerAtRule=t=>{qs=t};oe.registerRoot=t=>{Ff=t};$f.exports=oe;oe.default=oe;oe.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,qs.prototype):t.type==="rule"?Object.setPrototypeOf(t,Ds.prototype):t.type==="decl"?Object.setPrototypeOf(t,If.prototype):t.type==="comment"?Object.setPrototypeOf(t,zf.prototype):t.type==="root"&&Object.setPrototypeOf(t,Ff.prototype),t[Rf]=!0,t.nodes&&t.nodes.forEach(e=>{oe.rebuild(e)})}});var ji=x((cE,Wf)=>{l();"use strict";var bw=Ge(),jf,Uf,At=class extends bw{constructor(e){super({type:"document",...e});this.nodes||(this.nodes=[])}toResult(e={}){return new jf(new Uf,this,e).stringify()}};At.registerLazyResult=t=>{jf=t};At.registerProcessor=t=>{Uf=t};Wf.exports=At;At.default=At});var Bs=x((pE,Gf)=>{l();"use strict";var Vf={};Gf.exports=function(e){Vf[e]||(Vf[e]=!0,typeof console!="undefined"&&console.warn&&console.warn(e))}});var Rs=x((dE,Hf)=>{l();"use strict";var Ui=class{constructor(e,r={}){if(this.type="warning",this.text=e,r.node&&r.node.source){let i=r.node.rangeBy(r);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in r)this[i]=r[i]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};Hf.exports=Ui;Ui.default=Ui});var Vi=x((hE,Yf)=>{l();"use strict";var ww=Rs(),Wi=class{constructor(e,r,i){this.processor=e,this.messages=[],this.root=r,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,r={}){r.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(r.plugin=this.lastPlugin.postcssPlugin);let i=new ww(e,r);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};Yf.exports=Wi;Wi.default=Wi});var Zf=x((mE,Xf)=>{l();"use strict";var Is="'".charCodeAt(0),Qf='"'.charCodeAt(0),Gi="\\".charCodeAt(0),Jf="/".charCodeAt(0),Hi=`
`.charCodeAt(0),gr=" ".charCodeAt(0),Yi="\f".charCodeAt(0),Qi=" ".charCodeAt(0),Ji="\r".charCodeAt(0),xw="[".charCodeAt(0),vw="]".charCodeAt(0),kw="(".charCodeAt(0),Sw=")".charCodeAt(0),Cw="{".charCodeAt(0),Tw="}".charCodeAt(0),_w=";".charCodeAt(0),Aw="*".charCodeAt(0),Ow=":".charCodeAt(0),Ew="@".charCodeAt(0),Ki=/[\t\n\f\r "#'()/;[\\\]{}]/g,Xi=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Pw=/.[\n"'(/\\]/,Kf=/[\da-f]/i;Xf.exports=function(e,r={}){let i=e.css.valueOf(),n=r.ignoreErrors,s,o,a,u,c,f,d,g,y,b,S=i.length,v=0,k=[],_=[];function D(){return v}function B(K){throw e.error("Unclosed "+K,v)}function z(){return _.length===0&&v>=S}function J(K){if(_.length)return _.pop();if(v>=S)return;let ar=K?K.ignoreUnclosed:!1;switch(s=i.charCodeAt(v),s){case Hi:case gr:case Qi:case Ji:case Yi:{o=v;do o+=1,s=i.charCodeAt(o);while(s===gr||s===Hi||s===Qi||s===Ji||s===Yi);b=["space",i.slice(v,o)],v=o-1;break}case xw:case vw:case Cw:case Tw:case Ow:case _w:case Sw:{let bi=String.fromCharCode(s);b=[bi,bi,v];break}case kw:{if(g=k.length?k.pop()[1]:"",y=i.charCodeAt(v+1),g==="url"&&y!==Is&&y!==Qf&&y!==gr&&y!==Hi&&y!==Qi&&y!==Yi&&y!==Ji){o=v;do{if(f=!1,o=i.indexOf(")",o+1),o===-1)if(n||ar){o=v;break}else B("bracket");for(d=o;i.charCodeAt(d-1)===Gi;)d-=1,f=!f}while(f);b=["brackets",i.slice(v,o+1),v,o],v=o}else o=i.indexOf(")",v+1),u=i.slice(v,o+1),o===-1||Pw.test(u)?b=["(","(",v]:(b=["brackets",u,v,o],v=o);break}case Is:case Qf:{a=s===Is?"'":'"',o=v;do{if(f=!1,o=i.indexOf(a,o+1),o===-1)if(n||ar){o=v+1;break}else B("string");for(d=o;i.charCodeAt(d-1)===Gi;)d-=1,f=!f}while(f);b=["string",i.slice(v,o+1),v,o],v=o;break}case Ew:{Ki.lastIndex=v+1,Ki.test(i),Ki.lastIndex===0?o=i.length-1:o=Ki.lastIndex-2,b=["at-word",i.slice(v,o+1),v,o],v=o;break}case Gi:{for(o=v,c=!0;i.charCodeAt(o+1)===Gi;)o+=1,c=!c;if(s=i.charCodeAt(o+1),c&&s!==Jf&&s!==gr&&s!==Hi&&s!==Qi&&s!==Ji&&s!==Yi&&(o+=1,Kf.test(i.charAt(o)))){for(;Kf.test(i.charAt(o+1));)o+=1;i.charCodeAt(o+1)===gr&&(o+=1)}b=["word",i.slice(v,o+1),v,o],v=o;break}default:{s===Jf&&i.charCodeAt(v+1)===Aw?(o=i.indexOf("*/",v+2)+1,o===0&&(n||ar?o=i.length:B("comment")),b=["comment",i.slice(v,o+1),v,o],v=o):(Xi.lastIndex=v+1,Xi.test(i),Xi.lastIndex===0?o=i.length-1:o=Xi.lastIndex-2,b=["word",i.slice(v,o+1),v,o],k.push(b),v=o);break}}return v++,b}function xe(K){_.push(K)}return{back:xe,nextToken:J,endOfFile:z,position:D}}});var Zi=x((gE,tc)=>{l();"use strict";var ec=Ge(),yr=class extends ec{constructor(e){super(e);this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};tc.exports=yr;yr.default=yr;ec.registerAtRule(yr)});var Ot=x((yE,sc)=>{l();"use strict";var rc=Ge(),ic,nc,pt=class extends rc{constructor(e){super(e);this.type="root",this.nodes||(this.nodes=[])}removeChild(e,r){let i=this.index(e);return!r&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}normalize(e,r,i){let n=super.normalize(e);if(r){if(i==="prepend")this.nodes.length>1?r.raws.before=this.nodes[1].raws.before:delete r.raws.before;else if(this.first!==r)for(let s of n)s.raws.before=r.raws.before}return n}toResult(e={}){return new ic(new nc,this,e).stringify()}};pt.registerLazyResult=t=>{ic=t};pt.registerProcessor=t=>{nc=t};sc.exports=pt;pt.default=pt;rc.registerRoot(pt)});var zs=x((bE,oc)=>{l();"use strict";var br={split(t,e,r){let i=[],n="",s=!1,o=0,a=!1,u="",c=!1;for(let f of t)c?c=!1:f==="\\"?c=!0:a?f===u&&(a=!1):f==='"'||f==="'"?(a=!0,u=f):f==="("?o+=1:f===")"?o>0&&(o-=1):o===0&&e.includes(f)&&(s=!0),s?(n!==""&&i.push(n.trim()),n="",s=!1):n+=f;return(r||n!=="")&&i.push(n.trim()),i},space(t){let e=[" ",`
`," "];return br.split(t,e)},comma(t){return br.split(t,[","],!0)}};oc.exports=br;br.default=br});var en=x((wE,lc)=>{l();"use strict";var ac=Ge(),Dw=zs(),wr=class extends ac{constructor(e){super(e);this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Dw.comma(this.selector)}set selectors(e){let r=this.selector?this.selector.match(/,\s*/):null,i=r?r[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};lc.exports=wr;wr.default=wr;ac.registerRule(wr)});var dc=x((xE,pc)=>{l();"use strict";var qw=hr(),Bw=Zf(),Rw=mr(),Iw=Zi(),zw=Ot(),uc=en(),fc={empty:!0,space:!0};function Lw(t){for(let e=t.length-1;e>=0;e--){let r=t[e],i=r[3]||r[2];if(i)return i}}var cc=class{constructor(e){this.input=e,this.root=new zw,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=Bw(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}comment(e){let r=new Rw;this.init(r,e[2]),r.source.end=this.getPosition(e[3]||e[2]);let i=e[1].slice(2,-2);if(/^\s*$/.test(i))r.text="",r.raws.left=i,r.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);r.text=n[2],r.raws.left=n[1],r.raws.right=n[3]}}emptyRule(e){let r=new uc;this.init(r,e[2]),r.selector="",r.raws.between="",this.current=r}other(e){let r=!1,i=null,n=!1,s=null,o=[],a=e[1].startsWith("--"),u=[],c=e;for(;c;){if(i=c[0],u.push(c),i==="("||i==="[")s||(s=c),o.push(i==="("?")":"]");else if(a&&n&&i==="{")s||(s=c),o.push("}");else if(o.length===0)if(i===";")if(n){this.decl(u,a);return}else break;else if(i==="{"){this.rule(u);return}else if(i==="}"){this.tokenizer.back(u.pop()),r=!0;break}else i===":"&&(n=!0);else i===o[o.length-1]&&(o.pop(),o.length===0&&(s=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(r=!0),o.length>0&&this.unclosedBracket(s),r&&n){if(!a)for(;u.length&&(c=u[u.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,a)}else this.unknownWord(u)}rule(e){e.pop();let r=new uc;this.init(r,e[0][2]),r.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(r,"selector",e),this.current=r}decl(e,r){let i=new qw;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||Lw(e));e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let o=[],a;for(;e.length&&(a=e[0][0],!(a!=="space"&&a!=="comment"));)o.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(s=e[c],s[1].toLowerCase()==="!important"){i.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==" !important"&&(i.raws.important=f);break}else if(s[1].toLowerCase()==="important"){let f=e.slice(0),d="";for(let g=c;g>0;g--){let y=f[g][0];if(d.trim().indexOf("!")===0&&y!=="space")break;d=f.pop()[1]+d}d.trim().indexOf("!")===0&&(i.important=!0,i.raws.important=d,e=f)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=o.map(c=>c[1]).join(""),o=[]),this.raw(i,"value",o.concat(e),r),i.value.includes(":")&&!r&&this.checkMissedSemicolon(e)}atrule(e){let r=new Iw;r.name=e[1].slice(1),r.name===""&&this.unnamedAtrule(r,e),this.init(r,e[2]);let i,n,s,o=!1,a=!1,u=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){r.source.end=this.getPosition(e[2]),this.semicolon=!0;break}else if(i==="{"){a=!0;break}else if(i==="}"){if(u.length>0){for(s=u.length-1,n=u[s];n&&n[0]==="space";)n=u[--s];n&&(r.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}else u.push(e);else u.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}r.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(r.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(r,"params",u),o&&(e=u[u.length-1],r.source.end=this.getPosition(e[3]||e[2]),this.spaces=r.raws.between,r.raws.between="")):(r.raws.afterName="",r.params=""),a&&(r.nodes=[],this.current=r)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let r=this.current.nodes[this.current.nodes.length-1];r&&r.type==="rule"&&!r.raws.ownSemicolon&&(r.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let r=this.input.fromOffset(e);return{offset:e,line:r.line,column:r.col}}init(e,r){this.current.push(e),e.source={start:this.getPosition(r),input:this.input},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}raw(e,r,i,n){let s,o,a=i.length,u="",c=!0,f,d;for(let g=0;g<a;g+=1)s=i[g],o=s[0],o==="space"&&g===a-1&&!n?c=!1:o==="comment"?(d=i[g-1]?i[g-1][0]:"empty",f=i[g+1]?i[g+1][0]:"empty",!fc[d]&&!fc[f]?u.slice(-1)===","?c=!1:u+=s[1]:c=!1):u+=s[1];if(!c){let g=i.reduce((y,b)=>y+b[1],"");e.raws[r]={value:u,raw:g}}e[r]=u}spacesAndCommentsFromEnd(e){let r,i="";for(;e.length&&(r=e[e.length-1][0],!(r!=="space"&&r!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let r,i="";for(;e.length&&(r=e[0][0],!(r!=="space"&&r!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let r,i="";for(;e.length&&(r=e[e.length-1][0],r==="space");)i=e.pop()[1]+i;return i}stringFrom(e,r){let i="";for(let n=r;n<e.length;n++)i+=e[n][1];return e.splice(r,e.length-r),i}colon(e){let r=0,i,n,s;for(let[o,a]of e.entries()){if(i=a,n=i[0],n==="("&&(r+=1),n===")"&&(r-=1),r===0&&n===":")if(!s)this.doubleColon(i);else{if(s[0]==="word"&&s[1]==="progid")continue;return o}s=i}return!1}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word",{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}unnamedAtrule(e,r){throw this.input.error("At-rule without name",{offset:r[2]},{offset:r[2]+r[1].length})}precheckMissedSemicolon(){}checkMissedSemicolon(e){let r=this.colon(e);if(r===!1)return;let i=0,n;for(let s=r-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}};pc.exports=cc});var hc=x(()=>{l()});var gc=x((SE,mc)=>{l();var Fw="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Mw=(t,e=21)=>(r=e)=>{let i="",n=r;for(;n--;)i+=t[Math.random()*t.length|0];return i},Nw=(t=21)=>{let e="",r=t;for(;r--;)e+=Fw[Math.random()*64|0];return e};mc.exports={nanoid:Nw,customAlphabet:Mw}});var Ls=x((CE,yc)=>{l();yc.exports={}});var rn=x((TE,vc)=>{l();"use strict";var{SourceMapConsumer:$w,SourceMapGenerator:jw}=hc(),{fileURLToPath:bc,pathToFileURL:tn}=(Cs(),vf),{resolve:Fs,isAbsolute:Ms}=(at(),zu),{nanoid:Uw}=gc(),Ns=Ts(),wc=Ii(),Ww=Ls(),$s=Symbol("fromOffsetCache"),Vw=Boolean($w&&jw),xc=Boolean(Fs&&Ms),xr=class{constructor(e,r={}){if(e===null||typeof e=="undefined"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,r.from&&(!xc||/^\w+:\/\//.test(r.from)||Ms(r.from)?this.file=r.from:this.file=Fs(r.from)),xc&&Vw){let i=new Ww(this.css,r);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id="<input css "+Uw(6)+">"),this.map&&(this.map.file=this.from)}fromOffset(e){let r,i;if(this[$s])i=this[$s];else{let s=this.css.split(`
`);i=new Array(s.length);let o=0;for(let a=0,u=s.length;a<u;a++)i[a]=o,o+=s[a].length+1;this[$s]=i}r=i[i.length-1];let n=0;if(e>=r)n=i.length-1;else{let s=i.length-2,o;for(;n<s;)if(o=n+(s-n>>1),e<i[o])s=o-1;else if(e>=i[o+1])n=o+1;else{n=o;break}}return{line:n+1,col:e-i[n]+1}}error(e,r,i,n={}){let s,o,a;if(r&&typeof r=="object"){let c=r,f=i;if(typeof c.offset=="number"){let d=this.fromOffset(c.offset);r=d.line,i=d.col}else r=c.line,i=c.column;if(typeof f.offset=="number"){let d=this.fromOffset(f.offset);o=d.line,a=d.col}else o=f.line,a=f.column}else if(!i){let c=this.fromOffset(r);r=c.line,i=c.col}let u=this.origin(r,i,o,a);return u?s=new wc(e,u.endLine===void 0?u.line:{line:u.line,column:u.column},u.endLine===void 0?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,n.plugin):s=new wc(e,o===void 0?r:{line:r,column:i},o===void 0?i:{line:o,column:a},this.css,this.file,n.plugin),s.input={line:r,column:i,endLine:o,endColumn:a,source:this.css},this.file&&(tn&&(s.input.url=tn(this.file).toString()),s.input.file=this.file),s}origin(e,r,i,n){if(!this.map)return!1;let s=this.map.consumer(),o=s.originalPositionFor({line:e,column:r});if(!o.source)return!1;let a;typeof i=="number"&&(a=s.originalPositionFor({line:i,column:n}));let u;Ms(o.source)?u=tn(o.source):u=new URL(o.source,this.map.consumer().sourceRoot||tn(this.map.mapFile));let c={url:u.toString(),line:o.line,column:o.column,endLine:a&&a.line,endColumn:a&&a.column};if(u.protocol==="file:")if(bc)c.file=bc(u);else throw new Error("file: protocol is not available in this PostCSS build");let f=s.sourceContentFor(o.source);return f&&(c.source=f),c}mapResolve(e){return/^\w+:\/\//.test(e)?e:Fs(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let r of["hasBOM","css","file","id"])this[r]!=null&&(e[r]=this[r]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};vc.exports=xr;xr.default=xr;Ns&&Ns.registerInput&&Ns.registerInput(xr)});var sn=x((_E,kc)=>{l();"use strict";var Gw=Ge(),Hw=dc(),Yw=rn();function nn(t,e){let r=new Yw(t,e),i=new Hw(r);try{i.parse()}catch(n){throw n}return i.root}kc.exports=nn;nn.default=nn;Gw.registerParse(nn)});var Ws=x((OE,_c)=>{l();"use strict";var{isClean:Se,my:Qw}=zi(),Jw=Ps(),Kw=pr(),Xw=Ge(),Zw=ji(),AE=Bs(),Sc=Vi(),ex=sn(),tx=Ot(),rx={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},ix={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},nx={postcssPlugin:!0,prepare:!0,Once:!0},Et=0;function vr(t){return typeof t=="object"&&typeof t.then=="function"}function Cc(t){let e=!1,r=rx[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[r,r+"-"+e,Et,r+"Exit",r+"Exit-"+e]:e?[r,r+"-"+e,r+"Exit",r+"Exit-"+e]:t.append?[r,Et,r+"Exit"]:[r,r+"Exit"]}function Tc(t){let e;return t.type==="document"?e=["Document",Et,"DocumentExit"]:t.type==="root"?e=["Root",Et,"RootExit"]:e=Cc(t),{node:t,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function js(t){return t[Se]=!1,t.nodes&&t.nodes.forEach(e=>js(e)),t}var Us={},Le=class{constructor(e,r,i){this.stringified=!1,this.processed=!1;let n;if(typeof r=="object"&&r!==null&&(r.type==="root"||r.type==="document"))n=js(r);else if(r instanceof Le||r instanceof Sc)n=js(r.root),r.map&&(typeof i.map=="undefined"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=r.map);else{let s=ex;i.syntax&&(s=i.syntax.parse),i.parser&&(s=i.parser),s.parse&&(s=s.parse);try{n=s(r,i)}catch(o){this.processed=!0,this.error=o}n&&!n[Qw]&&Xw.rebuild(n)}this.result=new Sc(e,n,i),this.helpers={...Us,result:this.result,postcss:Us},this.plugins=this.processor.plugins.map(s=>typeof s=="object"&&s.prepare?{...s,...s.prepare(this.result)}:s)}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,r){return this.async().then(e,r)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let r=this.runOnRoot(e);if(vr(r))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Se];)e[Se]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let r of e.nodes)this.visitSync(this.listeners.OnceExit,r);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,r=Kw;e.syntax&&(r=e.syntax.stringify),e.stringifier&&(r=e.stringifier),r.stringify&&(r=r.stringify);let n=new Jw(r,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(e){e[Se]=!0;let r=Cc(e);for(let i of r)if(i===Et)e.nodes&&e.each(n=>{n[Se]||this.walkSync(n)});else{let n=this.listeners[i];if(n&&this.visitSync(n,e.toProxy()))return}}visitSync(e,r){for(let[i,n]of e){this.result.lastPlugin=i;let s;try{s=n(r,this.helpers)}catch(o){throw this.handleError(o,r.proxyOf)}if(r.type!=="root"&&r.type!=="document"&&!r.parent)return!0;if(vr(s))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let r=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return vr(r[0])?Promise.all(r):r}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(r){throw this.handleError(r)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,r){let i=this.result.lastPlugin;try{r&&r.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let r=this.plugins[e],i=this.runOnRoot(r);if(vr(i))try{await i}catch(n){throw this.handleError(n)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Se];){e[Se]=!0;let r=[Tc(e)];for(;r.length>0;){let i=this.visitTick(r);if(vr(i))try{await i}catch(n){let s=r[r.length-1].node;throw this.handleError(n,s)}}}if(this.listeners.OnceExit)for(let[r,i]of this.listeners.OnceExit){this.result.lastPlugin=r;try{if(e.type==="document"){let n=e.nodes.map(s=>i(s,this.helpers));await Promise.all(n)}else await i(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(r,i,n)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([r,n])};for(let r of this.plugins)if(typeof r=="object")for(let i in r){if(!ix[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${r.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!nx[i])if(typeof r[i]=="object")for(let n in r[i])n==="*"?e(r,i,r[i][n]):e(r,i+"-"+n.toLowerCase(),r[i][n]);else typeof r[i]=="function"&&e(r,i,r[i])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let r=e[e.length-1],{node:i,visitors:n}=r;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(n.length>0&&r.visitorIndex<n.length){let[o,a]=n[r.visitorIndex];r.visitorIndex+=1,r.visitorIndex===n.length&&(r.visitors=[],r.visitorIndex=0),this.result.lastPlugin=o;try{return a(i.toProxy(),this.helpers)}catch(u){throw this.handleError(u,i)}}if(r.iterator!==0){let o=r.iterator,a;for(;a=i.nodes[i.indexes[o]];)if(i.indexes[o]+=1,!a[Se]){a[Se]=!0,e.push(Tc(a));return}r.iterator=0,delete i.indexes[o]}let s=r.events;for(;r.eventIndex<s.length;){let o=s[r.eventIndex];if(r.eventIndex+=1,o===Et){i.nodes&&i.nodes.length&&(i[Se]=!0,r.iterator=i.getIterator());return}else if(this.listeners[o]){r.visitors=this.listeners[o];return}}e.pop()}};Le.registerPostcss=t=>{Us=t};_c.exports=Le;Le.default=Le;tx.registerLazyResult(Le);Zw.registerLazyResult(Le)});var Oc=x((PE,Ac)=>{l();"use strict";var sx=Ps(),ox=pr(),EE=Bs(),ax=sn(),lx=Vi(),on=class{constructor(e,r,i){r=r.toString(),this.stringified=!1,this._processor=e,this._css=r,this._opts=i,this._map=void 0;let n,s=ox;this.result=new lx(this._processor,n,this._opts),this.result.css=r;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new sx(s,n,this._opts,r);if(a.isMap()){let[u,c]=a.generate();u&&(this.result.css=u),c&&(this.result.map=c)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,r=ax;try{e=r(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,r){return this.async().then(e,r)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}};Ac.exports=on;on.default=on});var Pc=x((DE,Ec)=>{l();"use strict";var ux=Oc(),fx=Ws(),cx=ji(),px=Ot(),Pt=class{constructor(e=[]){this.version="8.4.24",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,r={}){return this.plugins.length===0&&typeof r.parser=="undefined"&&typeof r.stringifier=="undefined"&&typeof r.syntax=="undefined"?new ux(this,e,r):new fx(this,e,r)}normalize(e){let r=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))r=r.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)r.push(i);else if(typeof i=="function")r.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return r}};Ec.exports=Pt;Pt.default=Pt;px.registerProcessor(Pt);cx.registerProcessor(Pt)});var qc=x((qE,Dc)=>{l();"use strict";var dx=hr(),hx=Ls(),mx=mr(),gx=Zi(),yx=rn(),bx=Ot(),wx=en();function kr(t,e){if(Array.isArray(t))return t.map(n=>kr(n));let{inputs:r,...i}=t;if(r){e=[];for(let n of r){let s={...n,__proto__:yx.prototype};s.map&&(s.map={...s.map,__proto__:hx.prototype}),e.push(s)}}if(i.nodes&&(i.nodes=t.nodes.map(n=>kr(n,e))),i.source){let{inputId:n,...s}=i.source;i.source=s,n!=null&&(i.source.input=e[n])}if(i.type==="root")return new bx(i);if(i.type==="decl")return new dx(i);if(i.type==="rule")return new wx(i);if(i.type==="comment")return new mx(i);if(i.type==="atrule")return new gx(i);throw new Error("Unknown node type: "+t.type)}Dc.exports=kr;kr.default=kr});var ae=x((BE,Mc)=>{l();"use strict";var xx=Ii(),Bc=hr(),vx=Ws(),kx=Ge(),Vs=Pc(),Sx=pr(),Cx=qc(),Rc=ji(),Tx=Rs(),Ic=mr(),zc=Zi(),_x=Vi(),Ax=rn(),Ox=sn(),Ex=zs(),Lc=en(),Fc=Ot(),Px=dr();function F(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Vs(t)}F.plugin=function(e,r){let i=!1;function n(...o){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
https://evilmartians.com/chronicles/postcss-8-plugin-migration`),h.env.LANG&&h.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357:
https://www.w3ctech.com/topic/2226`));let a=r(...o);return a.postcssPlugin=e,a.postcssVersion=new Vs().version,a}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(o,a,u){return F([n(u)]).process(o,a)},n};F.stringify=Sx;F.parse=Ox;F.fromJSON=Cx;F.list=Ex;F.comment=t=>new Ic(t);F.atRule=t=>new zc(t);F.decl=t=>new Bc(t);F.rule=t=>new Lc(t);F.root=t=>new Fc(t);F.document=t=>new Rc(t);F.CssSyntaxError=xx;F.Declaration=Bc;F.Container=kx;F.Processor=Vs;F.Document=Rc;F.Comment=Ic;F.Warning=Tx;F.AtRule=zc;F.Result=_x;F.Input=Ax;F.Rule=Lc;F.Root=Fc;F.Node=Px;vx.registerPostcss(F);Mc.exports=F;F.default=F});var N,$,RE,IE,zE,LE,FE,ME,NE,$E,jE,UE,WE,VE,GE,HE,YE,QE,JE,KE,XE,ZE,e8,t8,r8,i8,He=C(()=>{l();N=G(ae()),$=N.default,RE=N.default.stringify,IE=N.default.fromJSON,zE=N.default.plugin,LE=N.default.parse,FE=N.default.list,ME=N.default.document,NE=N.default.comment,$E=N.default.atRule,jE=N.default.rule,UE=N.default.decl,WE=N.default.root,VE=N.default.CssSyntaxError,GE=N.default.Declaration,HE=N.default.Container,YE=N.default.Processor,QE=N.default.Document,JE=N.default.Comment,KE=N.default.Warning,XE=N.default.AtRule,ZE=N.default.Result,e8=N.default.Input,t8=N.default.Rule,r8=N.default.Root,i8=N.default.Node});var Gs=x((s8,Nc)=>{l();Nc.exports=function(t,e,r,i,n){for(e=e.split?e.split("."):e,i=0;i<e.length;i++)t=t?t[e[i]]:n;return t===n?r:t}});var ln=x((an,$c)=>{l();"use strict";an.__esModule=!0;an.default=Bx;function Dx(t){for(var e=t.toLowerCase(),r="",i=!1,n=0;n<6&&e[n]!==void 0;n++){var s=e.charCodeAt(n),o=s>=97&&s<=102||s>=48&&s<=57;if(i=s===32,!o)break;r+=e[n]}if(r.length!==0){var a=parseInt(r,16),u=a>=55296&&a<=57343;return u||a===0||a>1114111?["\uFFFD",r.length+(i?1:0)]:[String.fromCodePoint(a),r.length+(i?1:0)]}}var qx=/\\/;function Bx(t){var e=qx.test(t);if(!e)return t;for(var r="",i=0;i<t.length;i++){if(t[i]==="\\"){var n=Dx(t.slice(i+1,i+7));if(n!==void 0){r+=n[0],i+=n[1];continue}if(t[i+1]==="\\"){r+="\\",i++;continue}t.length===i+1&&(r+=t[i]);continue}r+=t[i]}return r}$c.exports=an.default});var Uc=x((un,jc)=>{l();"use strict";un.__esModule=!0;un.default=Rx;function Rx(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];for(;r.length>0;){var n=r.shift();if(!t[n])return;t=t[n]}return t}jc.exports=un.default});var Vc=x((fn,Wc)=>{l();"use strict";fn.__esModule=!0;fn.default=Ix;function Ix(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];for(;r.length>0;){var n=r.shift();t[n]||(t[n]={}),t=t[n]}}Wc.exports=fn.default});var Hc=x((cn,Gc)=>{l();"use strict";cn.__esModule=!0;cn.default=zx;function zx(t){for(var e="",r=t.indexOf("/*"),i=0;r>=0;){e=e+t.slice(i,r);var n=t.indexOf("*/",r+2);if(n<0)return e;i=n+2,r=t.indexOf("/*",i)}return e=e+t.slice(i),e}Gc.exports=cn.default});var Sr=x(Ce=>{l();"use strict";Ce.__esModule=!0;Ce.stripComments=Ce.ensureObject=Ce.getProp=Ce.unesc=void 0;var Lx=pn(ln());Ce.unesc=Lx.default;var Fx=pn(Uc());Ce.getProp=Fx.default;var Mx=pn(Vc());Ce.ensureObject=Mx.default;var Nx=pn(Hc());Ce.stripComments=Nx.default;function pn(t){return t&&t.__esModule?t:{default:t}}});var Fe=x((Cr,Jc)=>{l();"use strict";Cr.__esModule=!0;Cr.default=void 0;var Yc=Sr();function Qc(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function $x(t,e,r){return e&&Qc(t.prototype,e),r&&Qc(t,r),t}var jx=function t(e,r){if(typeof e!="object"||e===null)return e;var i=new e.constructor;for(var n in e)if(!!e.hasOwnProperty(n)){var s=e[n],o=typeof s;n==="parent"&&o==="object"?r&&(i[n]=r):s instanceof Array?i[n]=s.map(function(a){return t(a,i)}):i[n]=t(s,i)}return i},Ux=function(){function t(r){r===void 0&&(r={}),Object.assign(this,r),this.spaces=this.spaces||{},this.spaces.before=this.spaces.before||"",this.spaces.after=this.spaces.after||""}var e=t.prototype;return e.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},e.replaceWith=function(){if(this.parent){for(var i in arguments)this.parent.insertBefore(this,arguments[i]);this.remove()}return this},e.next=function(){return this.parent.at(this.parent.index(this)+1)},e.prev=function(){return this.parent.at(this.parent.index(this)-1)},e.clone=function(i){i===void 0&&(i={});var n=jx(this);for(var s in i)n[s]=i[s];return n},e.appendToPropertyAndEscape=function(i,n,s){this.raws||(this.raws={});var o=this[i],a=this.raws[i];this[i]=o+n,a||s!==n?this.raws[i]=(a||o)+s:delete this.raws[i]},e.setPropertyAndEscape=function(i,n,s){this.raws||(this.raws={}),this[i]=n,this.raws[i]=s},e.setPropertyWithoutEscape=function(i,n){this[i]=n,this.raws&&delete this.raws[i]},e.isAtPosition=function(i,n){if(this.source&&this.source.start&&this.source.end)return!(this.source.start.line>i||this.source.end.line<i||this.source.start.line===i&&this.source.start.column>n||this.source.end.line===i&&this.source.end.column<n)},e.stringifyProperty=function(i){return this.raws&&this.raws[i]||this[i]},e.valueToString=function(){return String(this.stringifyProperty("value"))},e.toString=function(){return[this.rawSpaceBefore,this.valueToString(),this.rawSpaceAfter].join("")},$x(t,[{key:"rawSpaceBefore",get:function(){var i=this.raws&&this.raws.spaces&&this.raws.spaces.before;return i===void 0&&(i=this.spaces&&this.spaces.before),i||""},set:function(i){(0,Yc.ensureObject)(this,"raws","spaces"),this.raws.spaces.before=i}},{key:"rawSpaceAfter",get:function(){var i=this.raws&&this.raws.spaces&&this.raws.spaces.after;return i===void 0&&(i=this.spaces.after),i||""},set:function(i){(0,Yc.ensureObject)(this,"raws","spaces"),this.raws.spaces.after=i}}]),t}();Cr.default=Ux;Jc.exports=Cr.default});var Z=x(j=>{l();"use strict";j.__esModule=!0;j.UNIVERSAL=j.ATTRIBUTE=j.CLASS=j.COMBINATOR=j.COMMENT=j.ID=j.NESTING=j.PSEUDO=j.ROOT=j.SELECTOR=j.STRING=j.TAG=void 0;var Wx="tag";j.TAG=Wx;var Vx="string";j.STRING=Vx;var Gx="selector";j.SELECTOR=Gx;var Hx="root";j.ROOT=Hx;var Yx="pseudo";j.PSEUDO=Yx;var Qx="nesting";j.NESTING=Qx;var Jx="id";j.ID=Jx;var Kx="comment";j.COMMENT=Kx;var Xx="combinator";j.COMBINATOR=Xx;var Zx="class";j.CLASS=Zx;var ev="attribute";j.ATTRIBUTE=ev;var tv="universal";j.UNIVERSAL=tv});var dn=x((Tr,ep)=>{l();"use strict";Tr.__esModule=!0;Tr.default=void 0;var rv=nv(Fe()),Me=iv(Z());function Kc(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Kc=function(){return t},t}function iv(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Kc();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}function nv(t){return t&&t.__esModule?t:{default:t}}function sv(t,e){var r;if(typeof Symbol=="undefined"||t[Symbol.iterator]==null){if(Array.isArray(t)||(r=ov(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var i=0;return function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return r=t[Symbol.iterator](),r.next.bind(r)}function ov(t,e){if(!!t){if(typeof t=="string")return Xc(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Xc(t,e)}}function Xc(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r<e;r++)i[r]=t[r];return i}function Zc(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function av(t,e,r){return e&&Zc(t.prototype,e),r&&Zc(t,r),t}function lv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,Hs(t,e)}function Hs(t,e){return Hs=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Hs(t,e)}var uv=function(t){lv(e,t);function e(i){var n;return n=t.call(this,i)||this,n.nodes||(n.nodes=[]),n}var r=e.prototype;return r.append=function(n){return n.parent=this,this.nodes.push(n),this},r.prepend=function(n){return n.parent=this,this.nodes.unshift(n),this},r.at=function(n){return this.nodes[n]},r.index=function(n){return typeof n=="number"?n:this.nodes.indexOf(n)},r.removeChild=function(n){n=this.index(n),this.at(n).parent=void 0,this.nodes.splice(n,1);var s;for(var o in this.indexes)s=this.indexes[o],s>=n&&(this.indexes[o]=s-1);return this},r.removeAll=function(){for(var n=sv(this.nodes),s;!(s=n()).done;){var o=s.value;o.parent=void 0}return this.nodes=[],this},r.empty=function(){return this.removeAll()},r.insertAfter=function(n,s){s.parent=this;var o=this.index(n);this.nodes.splice(o+1,0,s),s.parent=this;var a;for(var u in this.indexes)a=this.indexes[u],o<=a&&(this.indexes[u]=a+1);return this},r.insertBefore=function(n,s){s.parent=this;var o=this.index(n);this.nodes.splice(o,0,s),s.parent=this;var a;for(var u in this.indexes)a=this.indexes[u],a<=o&&(this.indexes[u]=a+1);return this},r._findChildAtPosition=function(n,s){var o=void 0;return this.each(function(a){if(a.atPosition){var u=a.atPosition(n,s);if(u)return o=u,!1}else if(a.isAtPosition(n,s))return o=a,!1}),o},r.atPosition=function(n,s){if(this.isAtPosition(n,s))return this._findChildAtPosition(n,s)||this},r._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},r.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var s=this.lastEach;if(this.indexes[s]=0,!!this.length){for(var o,a;this.indexes[s]<this.length&&(o=this.indexes[s],a=n(this.at(o),o),a!==!1);)this.indexes[s]+=1;if(delete this.indexes[s],a===!1)return!1}},r.walk=function(n){return this.each(function(s,o){var a=n(s,o);if(a!==!1&&s.length&&(a=s.walk(n)),a===!1)return!1})},r.walkAttributes=function(n){var s=this;return this.walk(function(o){if(o.type===Me.ATTRIBUTE)return n.call(s,o)})},r.walkClasses=function(n){var s=this;return this.walk(function(o){if(o.type===Me.CLASS)return n.call(s,o)})},r.walkCombinators=function(n){var s=this;return this.walk(function(o){if(o.type===Me.COMBINATOR)return n.call(s,o)})},r.walkComments=function(n){var s=this;return this.walk(function(o){if(o.type===Me.COMMENT)return n.call(s,o)})},r.walkIds=function(n){var s=this;return this.walk(function(o){if(o.type===Me.ID)return n.call(s,o)})},r.walkNesting=function(n){var s=this;return this.walk(function(o){if(o.type===Me.NESTING)return n.call(s,o)})},r.walkPseudos=function(n){var s=this;return this.walk(function(o){if(o.type===Me.PSEUDO)return n.call(s,o)})},r.walkTags=function(n){var s=this;return this.walk(function(o){if(o.type===Me.TAG)return n.call(s,o)})},r.walkUniversals=function(n){var s=this;return this.walk(function(o){if(o.type===Me.UNIVERSAL)return n.call(s,o)})},r.split=function(n){var s=this,o=[];return this.reduce(function(a,u,c){var f=n.call(s,u);return o.push(u),f?(a.push(o),o=[]):c===s.length-1&&a.push(o),a},[])},r.map=function(n){return this.nodes.map(n)},r.reduce=function(n,s){return this.nodes.reduce(n,s)},r.every=function(n){return this.nodes.every(n)},r.some=function(n){return this.nodes.some(n)},r.filter=function(n){return this.nodes.filter(n)},r.sort=function(n){return this.nodes.sort(n)},r.toString=function(){return this.map(String).join("")},av(e,[{key:"first",get:function(){return this.at(0)}},{key:"last",get:function(){return this.at(this.length-1)}},{key:"length",get:function(){return this.nodes.length}}]),e}(rv.default);Tr.default=uv;ep.exports=Tr.default});var Qs=x((_r,rp)=>{l();"use strict";_r.__esModule=!0;_r.default=void 0;var fv=pv(dn()),cv=Z();function pv(t){return t&&t.__esModule?t:{default:t}}function tp(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function dv(t,e,r){return e&&tp(t.prototype,e),r&&tp(t,r),t}function hv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,Ys(t,e)}function Ys(t,e){return Ys=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ys(t,e)}var mv=function(t){hv(e,t);function e(i){var n;return n=t.call(this,i)||this,n.type=cv.ROOT,n}var r=e.prototype;return r.toString=function(){var n=this.reduce(function(s,o){return s.push(String(o)),s},[]).join(",");return this.trailingComma?n+",":n},r.error=function(n,s){return this._error?this._error(n,s):new Error(n)},dv(e,[{key:"errorGenerator",set:function(n){this._error=n}}]),e}(fv.default);_r.default=mv;rp.exports=_r.default});var Ks=x((Ar,ip)=>{l();"use strict";Ar.__esModule=!0;Ar.default=void 0;var gv=bv(dn()),yv=Z();function bv(t){return t&&t.__esModule?t:{default:t}}function wv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,Js(t,e)}function Js(t,e){return Js=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Js(t,e)}var xv=function(t){wv(e,t);function e(r){var i;return i=t.call(this,r)||this,i.type=yv.SELECTOR,i}return e}(gv.default);Ar.default=xv;ip.exports=Ar.default});var hn=x((l8,np)=>{l();"use strict";var vv={},kv=vv.hasOwnProperty,Sv=function(e,r){if(!e)return r;var i={};for(var n in r)i[n]=kv.call(e,n)?e[n]:r[n];return i},Cv=/[ -,\.\/:-@\[-\^`\{-~]/,Tv=/[ -,\.\/:-@\[\]\^`\{-~]/,_v=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,Xs=function t(e,r){r=Sv(r,t.options),r.quotes!="single"&&r.quotes!="double"&&(r.quotes="single");for(var i=r.quotes=="double"?'"':"'",n=r.isIdentifier,s=e.charAt(0),o="",a=0,u=e.length;a<u;){var c=e.charAt(a++),f=c.charCodeAt(),d=void 0;if(f<32||f>126){if(f>=55296&&f<=56319&&a<u){var g=e.charCodeAt(a++);(g&64512)==56320?f=((f&1023)<<10)+(g&1023)+65536:a--}d="\\"+f.toString(16).toUpperCase()+" "}else r.escapeEverything?Cv.test(c)?d="\\"+c:d="\\"+f.toString(16).toUpperCase()+" ":/[\t\n\f\r\x0B]/.test(c)?d="\\"+f.toString(16).toUpperCase()+" ":c=="\\"||!n&&(c=='"'&&i==c||c=="'"&&i==c)||n&&Tv.test(c)?d="\\"+c:d=c;o+=d}return n&&(/^-[-\d]/.test(o)?o="\\-"+o.slice(1):/\d/.test(s)&&(o="\\3"+s+" "+o.slice(1))),o=o.replace(_v,function(y,b,S){return b&&b.length%2?y:(b||"")+S}),!n&&r.wrap?i+o+i:o};Xs.options={escapeEverything:!1,isIdentifier:!1,quotes:"single",wrap:!1};Xs.version="3.0.0";np.exports=Xs});var eo=x((Or,ap)=>{l();"use strict";Or.__esModule=!0;Or.default=void 0;var Av=sp(hn()),Ov=Sr(),Ev=sp(Fe()),Pv=Z();function sp(t){return t&&t.__esModule?t:{default:t}}function op(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function Dv(t,e,r){return e&&op(t.prototype,e),r&&op(t,r),t}function qv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,Zs(t,e)}function Zs(t,e){return Zs=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Zs(t,e)}var Bv=function(t){qv(e,t);function e(i){var n;return n=t.call(this,i)||this,n.type=Pv.CLASS,n._constructed=!0,n}var r=e.prototype;return r.valueToString=function(){return"."+t.prototype.valueToString.call(this)},Dv(e,[{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var s=(0,Av.default)(n,{isIdentifier:!0});s!==n?((0,Ov.ensureObject)(this,"raws"),this.raws.value=s):this.raws&&delete this.raws.value}this._value=n}}]),e}(Ev.default);Or.default=Bv;ap.exports=Or.default});var ro=x((Er,lp)=>{l();"use strict";Er.__esModule=!0;Er.default=void 0;var Rv=zv(Fe()),Iv=Z();function zv(t){return t&&t.__esModule?t:{default:t}}function Lv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,to(t,e)}function to(t,e){return to=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},to(t,e)}var Fv=function(t){Lv(e,t);function e(r){var i;return i=t.call(this,r)||this,i.type=Iv.COMMENT,i}return e}(Rv.default);Er.default=Fv;lp.exports=Er.default});var no=x((Pr,up)=>{l();"use strict";Pr.__esModule=!0;Pr.default=void 0;var Mv=$v(Fe()),Nv=Z();function $v(t){return t&&t.__esModule?t:{default:t}}function jv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,io(t,e)}function io(t,e){return io=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},io(t,e)}var Uv=function(t){jv(e,t);function e(i){var n;return n=t.call(this,i)||this,n.type=Nv.ID,n}var r=e.prototype;return r.valueToString=function(){return"#"+t.prototype.valueToString.call(this)},e}(Mv.default);Pr.default=Uv;up.exports=Pr.default});var mn=x((Dr,pp)=>{l();"use strict";Dr.__esModule=!0;Dr.default=void 0;var Wv=fp(hn()),Vv=Sr(),Gv=fp(Fe());function fp(t){return t&&t.__esModule?t:{default:t}}function cp(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function Hv(t,e,r){return e&&cp(t.prototype,e),r&&cp(t,r),t}function Yv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,so(t,e)}function so(t,e){return so=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},so(t,e)}var Qv=function(t){Yv(e,t);function e(){return t.apply(this,arguments)||this}var r=e.prototype;return r.qualifiedName=function(n){return this.namespace?this.namespaceString+"|"+n:n},r.valueToString=function(){return this.qualifiedName(t.prototype.valueToString.call(this))},Hv(e,[{key:"namespace",get:function(){return this._namespace},set:function(n){if(n===!0||n==="*"||n==="&"){this._namespace=n,this.raws&&delete this.raws.namespace;return}var s=(0,Wv.default)(n,{isIdentifier:!0});this._namespace=n,s!==n?((0,Vv.ensureObject)(this,"raws"),this.raws.namespace=s):this.raws&&delete this.raws.namespace}},{key:"ns",get:function(){return this._namespace},set:function(n){this.namespace=n}},{key:"namespaceString",get:function(){if(this.namespace){var n=this.stringifyProperty("namespace");return n===!0?"":n}else return""}}]),e}(Gv.default);Dr.default=Qv;pp.exports=Dr.default});var ao=x((qr,dp)=>{l();"use strict";qr.__esModule=!0;qr.default=void 0;var Jv=Xv(mn()),Kv=Z();function Xv(t){return t&&t.__esModule?t:{default:t}}function Zv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,oo(t,e)}function oo(t,e){return oo=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},oo(t,e)}var e2=function(t){Zv(e,t);function e(r){var i;return i=t.call(this,r)||this,i.type=Kv.TAG,i}return e}(Jv.default);qr.default=e2;dp.exports=qr.default});var uo=x((Br,hp)=>{l();"use strict";Br.__esModule=!0;Br.default=void 0;var t2=i2(Fe()),r2=Z();function i2(t){return t&&t.__esModule?t:{default:t}}function n2(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,lo(t,e)}function lo(t,e){return lo=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},lo(t,e)}var s2=function(t){n2(e,t);function e(r){var i;return i=t.call(this,r)||this,i.type=r2.STRING,i}return e}(t2.default);Br.default=s2;hp.exports=Br.default});var co=x((Rr,mp)=>{l();"use strict";Rr.__esModule=!0;Rr.default=void 0;var o2=l2(dn()),a2=Z();function l2(t){return t&&t.__esModule?t:{default:t}}function u2(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,fo(t,e)}function fo(t,e){return fo=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},fo(t,e)}var f2=function(t){u2(e,t);function e(i){var n;return n=t.call(this,i)||this,n.type=a2.PSEUDO,n}var r=e.prototype;return r.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(o2.default);Rr.default=f2;mp.exports=Rr.default});var gp={};he(gp,{deprecate:()=>c2});function c2(t){return t}var yp=C(()=>{l()});var wp=x((u8,bp)=>{l();bp.exports=(yp(),gp).deprecate});var bo=x(Lr=>{l();"use strict";Lr.__esModule=!0;Lr.unescapeValue=go;Lr.default=void 0;var Ir=ho(hn()),p2=ho(ln()),d2=ho(mn()),h2=Z(),po;function ho(t){return t&&t.__esModule?t:{default:t}}function xp(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function m2(t,e,r){return e&&xp(t.prototype,e),r&&xp(t,r),t}function g2(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,mo(t,e)}function mo(t,e){return mo=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},mo(t,e)}var zr=wp(),y2=/^('|")([^]*)\1$/,b2=zr(function(){},"Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead."),w2=zr(function(){},"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."),x2=zr(function(){},"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.");function go(t){var e=!1,r=null,i=t,n=i.match(y2);return n&&(r=n[1],i=n[2]),i=(0,p2.default)(i),i!==t&&(e=!0),{deprecatedUsage:e,unescaped:i,quoteMark:r}}function v2(t){if(t.quoteMark!==void 0||t.value===void 0)return t;x2();var e=go(t.value),r=e.quoteMark,i=e.unescaped;return t.raws||(t.raws={}),t.raws.value===void 0&&(t.raws.value=t.value),t.value=i,t.quoteMark=r,t}var gn=function(t){g2(e,t);function e(i){var n;return i===void 0&&(i={}),n=t.call(this,v2(i))||this,n.type=h2.ATTRIBUTE,n.raws=n.raws||{},Object.defineProperty(n.raws,"unquoted",{get:zr(function(){return n.value},"attr.raws.unquoted is deprecated. Call attr.value instead."),set:zr(function(){return n.value},"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.")}),n._constructed=!0,n}var r=e.prototype;return r.getQuotedValue=function(n){n===void 0&&(n={});var s=this._determineQuoteMark(n),o=yo[s],a=(0,Ir.default)(this._value,o);return a},r._determineQuoteMark=function(n){return n.smart?this.smartQuoteMark(n):this.preferredQuoteMark(n)},r.setValue=function(n,s){s===void 0&&(s={}),this._value=n,this._quoteMark=this._determineQuoteMark(s),this._syncRawValue()},r.smartQuoteMark=function(n){var s=this.value,o=s.replace(/[^']/g,"").length,a=s.replace(/[^"]/g,"").length;if(o+a===0){var u=(0,Ir.default)(s,{isIdentifier:!0});if(u===s)return e.NO_QUOTE;var c=this.preferredQuoteMark(n);if(c===e.NO_QUOTE){var f=this.quoteMark||n.quoteMark||e.DOUBLE_QUOTE,d=yo[f],g=(0,Ir.default)(s,d);if(g.length<u.length)return f}return c}else return a===o?this.preferredQuoteMark(n):a<o?e.DOUBLE_QUOTE:e.SINGLE_QUOTE},r.preferredQuoteMark=function(n){var s=n.preferCurrentQuoteMark?this.quoteMark:n.quoteMark;return s===void 0&&(s=n.preferCurrentQuoteMark?n.quoteMark:this.quoteMark),s===void 0&&(s=e.DOUBLE_QUOTE),s},r._syncRawValue=function(){var n=(0,Ir.default)(this._value,yo[this.quoteMark]);n===this._value?this.raws&&delete this.raws.value:this.raws.value=n},r._handleEscapes=function(n,s){if(this._constructed){var o=(0,Ir.default)(s,{isIdentifier:!0});o!==s?this.raws[n]=o:delete this.raws[n]}},r._spacesFor=function(n){var s={before:"",after:""},o=this.spaces[n]||{},a=this.raws.spaces&&this.raws.spaces[n]||{};return Object.assign(s,o,a)},r._stringFor=function(n,s,o){s===void 0&&(s=n),o===void 0&&(o=vp);var a=this._spacesFor(s);return o(this.stringifyProperty(n),a)},r.offsetOf=function(n){var s=1,o=this._spacesFor("attribute");if(s+=o.before.length,n==="namespace"||n==="ns")return this.namespace?s:-1;if(n==="attributeNS"||(s+=this.namespaceString.length,this.namespace&&(s+=1),n==="attribute"))return s;s+=this.stringifyProperty("attribute").length,s+=o.after.length;var a=this._spacesFor("operator");s+=a.before.length;var u=this.stringifyProperty("operator");if(n==="operator")return u?s:-1;s+=u.length,s+=a.after.length;var c=this._spacesFor("value");s+=c.before.length;var f=this.stringifyProperty("value");if(n==="value")return f?s:-1;s+=f.length,s+=c.after.length;var d=this._spacesFor("insensitive");return s+=d.before.length,n==="insensitive"&&this.insensitive?s:-1},r.toString=function(){var n=this,s=[this.rawSpaceBefore,"["];return s.push(this._stringFor("qualifiedAttribute","attribute")),this.operator&&(this.value||this.value==="")&&(s.push(this._stringFor("operator")),s.push(this._stringFor("value")),s.push(this._stringFor("insensitiveFlag","insensitive",function(o,a){return o.length>0&&!n.quoted&&a.before.length===0&&!(n.spaces.value&&n.spaces.value.after)&&(a.before=" "),vp(o,a)}))),s.push("]"),s.push(this.rawSpaceAfter),s.join("")},m2(e,[{key:"quoted",get:function(){var n=this.quoteMark;return n==="'"||n==='"'},set:function(n){w2()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){if(!this._constructed){this._quoteMark=n;return}this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var s=go(n),o=s.deprecatedUsage,a=s.unescaped,u=s.quoteMark;if(o&&b2(),a===this._value&&u===this._quoteMark)return;this._value=a,this._quoteMark=u,this._syncRawValue()}else this._value=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(d2.default);Lr.default=gn;gn.NO_QUOTE=null;gn.SINGLE_QUOTE="'";gn.DOUBLE_QUOTE='"';var yo=(po={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},po[null]={isIdentifier:!0},po);function vp(t,e){return""+e.before+t+e.after}});var xo=x((Fr,kp)=>{l();"use strict";Fr.__esModule=!0;Fr.default=void 0;var k2=C2(mn()),S2=Z();function C2(t){return t&&t.__esModule?t:{default:t}}function T2(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,wo(t,e)}function wo(t,e){return wo=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},wo(t,e)}var _2=function(t){T2(e,t);function e(r){var i;return i=t.call(this,r)||this,i.type=S2.UNIVERSAL,i.value="*",i}return e}(k2.default);Fr.default=_2;kp.exports=Fr.default});var ko=x((Mr,Sp)=>{l();"use strict";Mr.__esModule=!0;Mr.default=void 0;var A2=E2(Fe()),O2=Z();function E2(t){return t&&t.__esModule?t:{default:t}}function P2(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,vo(t,e)}function vo(t,e){return vo=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},vo(t,e)}var D2=function(t){P2(e,t);function e(r){var i;return i=t.call(this,r)||this,i.type=O2.COMBINATOR,i}return e}(A2.default);Mr.default=D2;Sp.exports=Mr.default});var Co=x((Nr,Cp)=>{l();"use strict";Nr.__esModule=!0;Nr.default=void 0;var q2=R2(Fe()),B2=Z();function R2(t){return t&&t.__esModule?t:{default:t}}function I2(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,So(t,e)}function So(t,e){return So=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},So(t,e)}var z2=function(t){I2(e,t);function e(r){var i;return i=t.call(this,r)||this,i.type=B2.NESTING,i.value="&",i}return e}(q2.default);Nr.default=z2;Cp.exports=Nr.default});var _p=x((yn,Tp)=>{l();"use strict";yn.__esModule=!0;yn.default=L2;function L2(t){return t.sort(function(e,r){return e-r})}Tp.exports=yn.default});var To=x(P=>{l();"use strict";P.__esModule=!0;P.combinator=P.word=P.comment=P.str=P.tab=P.newline=P.feed=P.cr=P.backslash=P.bang=P.slash=P.doubleQuote=P.singleQuote=P.space=P.greaterThan=P.pipe=P.equals=P.plus=P.caret=P.tilde=P.dollar=P.closeSquare=P.openSquare=P.closeParenthesis=P.openParenthesis=P.semicolon=P.colon=P.comma=P.at=P.asterisk=P.ampersand=void 0;var F2=38;P.ampersand=F2;var M2=42;P.asterisk=M2;var N2=64;P.at=N2;var $2=44;P.comma=$2;var j2=58;P.colon=j2;var U2=59;P.semicolon=U2;var W2=40;P.openParenthesis=W2;var V2=41;P.closeParenthesis=V2;var G2=91;P.openSquare=G2;var H2=93;P.closeSquare=H2;var Y2=36;P.dollar=Y2;var Q2=126;P.tilde=Q2;var J2=94;P.caret=J2;var K2=43;P.plus=K2;var X2=61;P.equals=X2;var Z2=124;P.pipe=Z2;var ek=62;P.greaterThan=ek;var tk=32;P.space=tk;var Ap=39;P.singleQuote=Ap;var rk=34;P.doubleQuote=rk;var ik=47;P.slash=ik;var nk=33;P.bang=nk;var sk=92;P.backslash=sk;var ok=13;P.cr=ok;var ak=12;P.feed=ak;var lk=10;P.newline=lk;var uk=9;P.tab=uk;var fk=Ap;P.str=fk;var ck=-1;P.comment=ck;var pk=-2;P.word=pk;var dk=-3;P.combinator=dk});var Pp=x($r=>{l();"use strict";$r.__esModule=!0;$r.default=xk;$r.FIELDS=void 0;var A=hk(To()),Dt,M;function Op(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Op=function(){return t},t}function hk(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Op();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}var mk=(Dt={},Dt[A.tab]=!0,Dt[A.newline]=!0,Dt[A.cr]=!0,Dt[A.feed]=!0,Dt),gk=(M={},M[A.space]=!0,M[A.tab]=!0,M[A.newline]=!0,M[A.cr]=!0,M[A.feed]=!0,M[A.ampersand]=!0,M[A.asterisk]=!0,M[A.bang]=!0,M[A.comma]=!0,M[A.colon]=!0,M[A.semicolon]=!0,M[A.openParenthesis]=!0,M[A.closeParenthesis]=!0,M[A.openSquare]=!0,M[A.closeSquare]=!0,M[A.singleQuote]=!0,M[A.doubleQuote]=!0,M[A.plus]=!0,M[A.pipe]=!0,M[A.tilde]=!0,M[A.greaterThan]=!0,M[A.equals]=!0,M[A.dollar]=!0,M[A.caret]=!0,M[A.slash]=!0,M),_o={},Ep="0123456789abcdefABCDEF";for(bn=0;bn<Ep.length;bn++)_o[Ep.charCodeAt(bn)]=!0;var bn;function yk(t,e){var r=e,i;do{if(i=t.charCodeAt(r),gk[i])return r-1;i===A.backslash?r=bk(t,r)+1:r++}while(r<t.length);return r-1}function bk(t,e){var r=e,i=t.charCodeAt(r+1);if(!mk[i])if(_o[i]){var n=0;do r++,n++,i=t.charCodeAt(r+1);while(_o[i]&&n<6);n<6&&i===A.space&&r++}else r++;return r}var wk={TYPE:0,START_LINE:1,START_COL:2,END_LINE:3,END_COL:4,START_POS:5,END_POS:6};$r.FIELDS=wk;function xk(t){var e=[],r=t.css.valueOf(),i=r,n=i.length,s=-1,o=1,a=0,u=0,c,f,d,g,y,b,S,v,k,_,D,B,z;function J(xe,K){if(t.safe)r+=K,k=r.length-1;else throw t.error("Unclosed "+xe,o,a-s,a)}for(;a<n;){switch(c=r.charCodeAt(a),c===A.newline&&(s=a,o+=1),c){case A.space:case A.tab:case A.newline:case A.cr:case A.feed:k=a;do k+=1,c=r.charCodeAt(k),c===A.newline&&(s=k,o+=1);while(c===A.space||c===A.newline||c===A.tab||c===A.cr||c===A.feed);z=A.space,g=o,d=k-s-1,u=k;break;case A.plus:case A.greaterThan:case A.tilde:case A.pipe:k=a;do k+=1,c=r.charCodeAt(k);while(c===A.plus||c===A.greaterThan||c===A.tilde||c===A.pipe);z=A.combinator,g=o,d=a-s,u=k;break;case A.asterisk:case A.ampersand:case A.bang:case A.comma:case A.equals:case A.dollar:case A.caret:case A.openSquare:case A.closeSquare:case A.colon:case A.semicolon:case A.openParenthesis:case A.closeParenthesis:k=a,z=c,g=o,d=a-s,u=k+1;break;case A.singleQuote:case A.doubleQuote:B=c===A.singleQuote?"'":'"',k=a;do for(y=!1,k=r.indexOf(B,k+1),k===-1&&J("quote",B),b=k;r.charCodeAt(b-1)===A.backslash;)b-=1,y=!y;while(y);z=A.str,g=o,d=a-s,u=k+1;break;default:c===A.slash&&r.charCodeAt(a+1)===A.asterisk?(k=r.indexOf("*/",a+2)+1,k===0&&J("comment","*/"),f=r.slice(a,k+1),v=f.split(`
`),S=v.length-1,S>0?(_=o+S,D=k-v[S].length):(_=o,D=s),z=A.comment,o=_,g=_,d=k-D):c===A.slash?(k=a,z=c,g=o,d=a-s,u=k+1):(k=yk(r,a),z=A.word,g=o,d=k-s),u=k+1;break}e.push([z,o,a-s,g,d,a,u]),D&&(s=D,D=null),a=u}return e}});var Fp=x((jr,Lp)=>{l();"use strict";jr.__esModule=!0;jr.default=void 0;var vk=le(Qs()),Ao=le(Ks()),kk=le(eo()),Dp=le(ro()),Sk=le(no()),Ck=le(ao()),Oo=le(uo()),Tk=le(co()),qp=wn(bo()),_k=le(xo()),Eo=le(ko()),Ak=le(Co()),Ok=le(_p()),T=wn(Pp()),O=wn(To()),Ek=wn(Z()),H=Sr(),dt,Po;function Bp(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Bp=function(){return t},t}function wn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Bp();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}function le(t){return t&&t.__esModule?t:{default:t}}function Rp(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function Pk(t,e,r){return e&&Rp(t.prototype,e),r&&Rp(t,r),t}var Do=(dt={},dt[O.space]=!0,dt[O.cr]=!0,dt[O.feed]=!0,dt[O.newline]=!0,dt[O.tab]=!0,dt),Dk=Object.assign({},Do,(Po={},Po[O.comment]=!0,Po));function Ip(t){return{line:t[T.FIELDS.START_LINE],column:t[T.FIELDS.START_COL]}}function zp(t){return{line:t[T.FIELDS.END_LINE],column:t[T.FIELDS.END_COL]}}function ht(t,e,r,i){return{start:{line:t,column:e},end:{line:r,column:i}}}function qt(t){return ht(t[T.FIELDS.START_LINE],t[T.FIELDS.START_COL],t[T.FIELDS.END_LINE],t[T.FIELDS.END_COL])}function qo(t,e){if(!!t)return ht(t[T.FIELDS.START_LINE],t[T.FIELDS.START_COL],e[T.FIELDS.END_LINE],e[T.FIELDS.END_COL])}function Bt(t,e){var r=t[e];if(typeof r=="string")return r.indexOf("\\")!==-1&&((0,H.ensureObject)(t,"raws"),t[e]=(0,H.unesc)(r),t.raws[e]===void 0&&(t.raws[e]=r)),t}function Bo(t,e){for(var r=-1,i=[];(r=t.indexOf(e,r+1))!==-1;)i.push(r);return i}function qk(){var t=Array.prototype.concat.apply([],arguments);return t.filter(function(e,r){return r===t.indexOf(e)})}var Bk=function(){function t(r,i){i===void 0&&(i={}),this.rule=r,this.options=Object.assign({lossy:!1,safe:!1},i),this.position=0,this.css=typeof this.rule=="string"?this.rule:this.rule.selector,this.tokens=(0,T.default)({css:this.css,error:this._errorGenerator(),safe:this.options.safe});var n=qo(this.tokens[0],this.tokens[this.tokens.length-1]);this.root=new vk.default({source:n}),this.root.errorGenerator=this._errorGenerator();var s=new Ao.default({source:{start:{line:1,column:1}}});this.root.append(s),this.current=s,this.loop()}var e=t.prototype;return e._errorGenerator=function(){var i=this;return function(n,s){return typeof i.rule=="string"?new Error(n):i.rule.error(n,s)}},e.attribute=function(){var i=[],n=this.currToken;for(this.position++;this.position<this.tokens.length&&this.currToken[T.FIELDS.TYPE]!==O.closeSquare;)i.push(this.currToken),this.position++;if(this.currToken[T.FIELDS.TYPE]!==O.closeSquare)return this.expected("closing square bracket",this.currToken[T.FIELDS.START_POS]);var s=i.length,o={source:ht(n[1],n[2],this.currToken[3],this.currToken[4]),sourceIndex:n[T.FIELDS.START_POS]};if(s===1&&!~[O.word].indexOf(i[0][T.FIELDS.TYPE]))return this.expected("attribute",i[0][T.FIELDS.START_POS]);for(var a=0,u="",c="",f=null,d=!1;a<s;){var g=i[a],y=this.content(g),b=i[a+1];switch(g[T.FIELDS.TYPE]){case O.space:if(d=!0,this.options.lossy)break;if(f){(0,H.ensureObject)(o,"spaces",f);var S=o.spaces[f].after||"";o.spaces[f].after=S+y;var v=(0,H.getProp)(o,"raws","spaces",f,"after")||null;v&&(o.raws.spaces[f].after=v+y)}else u=u+y,c=c+y;break;case O.asterisk:if(b[T.FIELDS.TYPE]===O.equals)o.operator=y,f="operator";else if((!o.namespace||f==="namespace"&&!d)&&b){u&&((0,H.ensureObject)(o,"spaces","attribute"),o.spaces.attribute.before=u,u=""),c&&((0,H.ensureObject)(o,"raws","spaces","attribute"),o.raws.spaces.attribute.before=u,c=""),o.namespace=(o.namespace||"")+y;var k=(0,H.getProp)(o,"raws","namespace")||null;k&&(o.raws.namespace+=y),f="namespace"}d=!1;break;case O.dollar:if(f==="value"){var _=(0,H.getProp)(o,"raws","value");o.value+="$",_&&(o.raws.value=_+"$");break}case O.caret:b[T.FIELDS.TYPE]===O.equals&&(o.operator=y,f="operator"),d=!1;break;case O.combinator:if(y==="~"&&b[T.FIELDS.TYPE]===O.equals&&(o.operator=y,f="operator"),y!=="|"){d=!1;break}b[T.FIELDS.TYPE]===O.equals?(o.operator=y,f="operator"):!o.namespace&&!o.attribute&&(o.namespace=!0),d=!1;break;case O.word:if(b&&this.content(b)==="|"&&i[a+2]&&i[a+2][T.FIELDS.TYPE]!==O.equals&&!o.operator&&!o.namespace)o.namespace=y,f="namespace";else if(!o.attribute||f==="attribute"&&!d){u&&((0,H.ensureObject)(o,"spaces","attribute"),o.spaces.attribute.before=u,u=""),c&&((0,H.ensureObject)(o,"raws","spaces","attribute"),o.raws.spaces.attribute.before=c,c=""),o.attribute=(o.attribute||"")+y;var D=(0,H.getProp)(o,"raws","attribute")||null;D&&(o.raws.attribute+=y),f="attribute"}else if(!o.value&&o.value!==""||f==="value"&&!d){var B=(0,H.unesc)(y),z=(0,H.getProp)(o,"raws","value")||"",J=o.value||"";o.value=J+B,o.quoteMark=null,(B!==y||z)&&((0,H.ensureObject)(o,"raws"),o.raws.value=(z||J)+y),f="value"}else{var xe=y==="i"||y==="I";(o.value||o.value==="")&&(o.quoteMark||d)?(o.insensitive=xe,(!xe||y==="I")&&((0,H.ensureObject)(o,"raws"),o.raws.insensitiveFlag=y),f="insensitive",u&&((0,H.ensureObject)(o,"spaces","insensitive"),o.spaces.insensitive.before=u,u=""),c&&((0,H.ensureObject)(o,"raws","spaces","insensitive"),o.raws.spaces.insensitive.before=c,c="")):(o.value||o.value==="")&&(f="value",o.value+=y,o.raws.value&&(o.raws.value+=y))}d=!1;break;case O.str:if(!o.attribute||!o.operator)return this.error("Expected an attribute followed by an operator preceding the string.",{index:g[T.FIELDS.START_POS]});var K=(0,qp.unescapeValue)(y),ar=K.unescaped,bi=K.quoteMark;o.value=ar,o.quoteMark=bi,f="value",(0,H.ensureObject)(o,"raws"),o.raws.value=y,d=!1;break;case O.equals:if(!o.attribute)return this.expected("attribute",g[T.FIELDS.START_POS],y);if(o.value)return this.error('Unexpected "=" found; an operator was already defined.',{index:g[T.FIELDS.START_POS]});o.operator=o.operator?o.operator+y:y,f="operator",d=!1;break;case O.comment:if(f)if(d||b&&b[T.FIELDS.TYPE]===O.space||f==="insensitive"){var Ub=(0,H.getProp)(o,"spaces",f,"after")||"",Wb=(0,H.getProp)(o,"raws","spaces",f,"after")||Ub;(0,H.ensureObject)(o,"raws","spaces",f),o.raws.spaces[f].after=Wb+y}else{var Vb=o[f]||"",Gb=(0,H.getProp)(o,"raws",f)||Vb;(0,H.ensureObject)(o,"raws"),o.raws[f]=Gb+y}else c=c+y;break;default:return this.error('Unexpected "'+y+'" found.',{index:g[T.FIELDS.START_POS]})}a++}Bt(o,"attribute"),Bt(o,"namespace"),this.newNode(new qp.default(o)),this.position++},e.parseWhitespaceEquivalentTokens=function(i){i<0&&(i=this.tokens.length);var n=this.position,s=[],o="",a=void 0;do if(Do[this.currToken[T.FIELDS.TYPE]])this.options.lossy||(o+=this.content());else if(this.currToken[T.FIELDS.TYPE]===O.comment){var u={};o&&(u.before=o,o=""),a=new Dp.default({value:this.content(),source:qt(this.currToken),sourceIndex:this.currToken[T.FIELDS.START_POS],spaces:u}),s.push(a)}while(++this.position<i);if(o){if(a)a.spaces.after=o;else if(!this.options.lossy){var c=this.tokens[n],f=this.tokens[this.position-1];s.push(new Oo.default({value:"",source:ht(c[T.FIELDS.START_LINE],c[T.FIELDS.START_COL],f[T.FIELDS.END_LINE],f[T.FIELDS.END_COL]),sourceIndex:c[T.FIELDS.START_POS],spaces:{before:o,after:""}}))}}return s},e.convertWhitespaceNodesToSpace=function(i,n){var s=this;n===void 0&&(n=!1);var o="",a="";i.forEach(function(c){var f=s.lossySpace(c.spaces.before,n),d=s.lossySpace(c.rawSpaceBefore,n);o+=f+s.lossySpace(c.spaces.after,n&&f.length===0),a+=f+c.value+s.lossySpace(c.rawSpaceAfter,n&&d.length===0)}),a===o&&(a=void 0);var u={space:o,rawSpace:a};return u},e.isNamedCombinator=function(i){return i===void 0&&(i=this.position),this.tokens[i+0]&&this.tokens[i+0][T.FIELDS.TYPE]===O.slash&&this.tokens[i+1]&&this.tokens[i+1][T.FIELDS.TYPE]===O.word&&this.tokens[i+2]&&this.tokens[i+2][T.FIELDS.TYPE]===O.slash},e.namedCombinator=function(){if(this.isNamedCombinator()){var i=this.content(this.tokens[this.position+1]),n=(0,H.unesc)(i).toLowerCase(),s={};n!==i&&(s.value="/"+i+"/");var o=new Eo.default({value:"/"+n+"/",source:ht(this.currToken[T.FIELDS.START_LINE],this.currToken[T.FIELDS.START_COL],this.tokens[this.position+2][T.FIELDS.END_LINE],this.tokens[this.position+2][T.FIELDS.END_COL]),sourceIndex:this.currToken[T.FIELDS.START_POS],raws:s});return this.position=this.position+3,o}else this.unexpected()},e.combinator=function(){var i=this;if(this.content()==="|")return this.namespace();var n=this.locateNextMeaningfulToken(this.position);if(n<0||this.tokens[n][T.FIELDS.TYPE]===O.comma){var s=this.parseWhitespaceEquivalentTokens(n);if(s.length>0){var o=this.current.last;if(o){var a=this.convertWhitespaceNodesToSpace(s),u=a.space,c=a.rawSpace;c!==void 0&&(o.rawSpaceAfter+=c),o.spaces.after+=u}else s.forEach(function(z){return i.newNode(z)})}return}var f=this.currToken,d=void 0;n>this.position&&(d=this.parseWhitespaceEquivalentTokens(n));var g;if(this.isNamedCombinator()?g=this.namedCombinator():this.currToken[T.FIELDS.TYPE]===O.combinator?(g=new Eo.default({value:this.content(),source:qt(this.currToken),sourceIndex:this.currToken[T.FIELDS.START_POS]}),this.position++):Do[this.currToken[T.FIELDS.TYPE]]||d||this.unexpected(),g){if(d){var y=this.convertWhitespaceNodesToSpace(d),b=y.space,S=y.rawSpace;g.spaces.before=b,g.rawSpaceBefore=S}}else{var v=this.convertWhitespaceNodesToSpace(d,!0),k=v.space,_=v.rawSpace;_||(_=k);var D={},B={spaces:{}};k.endsWith(" ")&&_.endsWith(" ")?(D.before=k.slice(0,k.length-1),B.spaces.before=_.slice(0,_.length-1)):k.startsWith(" ")&&_.startsWith(" ")?(D.after=k.slice(1),B.spaces.after=_.slice(1)):B.value=_,g=new Eo.default({value:" ",source:qo(f,this.tokens[this.position-1]),sourceIndex:f[T.FIELDS.START_POS],spaces:D,raws:B})}return this.currToken&&this.currToken[T.FIELDS.TYPE]===O.space&&(g.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(g)},e.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var i=new Ao.default({source:{start:Ip(this.tokens[this.position+1])}});this.current.parent.append(i),this.current=i,this.position++},e.comment=function(){var i=this.currToken;this.newNode(new Dp.default({value:this.content(),source:qt(i),sourceIndex:i[T.FIELDS.START_POS]})),this.position++},e.error=function(i,n){throw this.root.error(i,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[T.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[T.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[T.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[T.FIELDS.START_POS])},e.namespace=function(){var i=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[T.FIELDS.TYPE]===O.word)return this.position++,this.word(i);if(this.nextToken[T.FIELDS.TYPE]===O.asterisk)return this.position++,this.universal(i)},e.nesting=function(){if(this.nextToken){var i=this.content(this.nextToken);if(i==="|"){this.position++;return}}var n=this.currToken;this.newNode(new Ak.default({value:this.content(),source:qt(n),sourceIndex:n[T.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var i=this.current.last,n=1;if(this.position++,i&&i.type===Ek.PSEUDO){var s=new Ao.default({source:{start:Ip(this.tokens[this.position-1])}}),o=this.current;for(i.append(s),this.current=s;this.position<this.tokens.length&&n;)this.currToken[T.FIELDS.TYPE]===O.openParenthesis&&n++,this.currToken[T.FIELDS.TYPE]===O.closeParenthesis&&n--,n?this.parse():(this.current.source.end=zp(this.currToken),this.current.parent.source.end=zp(this.currToken),this.position++);this.current=o}else{for(var a=this.currToken,u="(",c;this.position<this.tokens.length&&n;)this.currToken[T.FIELDS.TYPE]===O.openParenthesis&&n++,this.currToken[T.FIELDS.TYPE]===O.closeParenthesis&&n--,c=this.currToken,u+=this.parseParenthesisToken(this.currToken),this.position++;i?i.appendToPropertyAndEscape("value",u,u):this.newNode(new Oo.default({value:u,source:ht(a[T.FIELDS.START_LINE],a[T.FIELDS.START_COL],c[T.FIELDS.END_LINE],c[T.FIELDS.END_COL]),sourceIndex:a[T.FIELDS.START_POS]}))}if(n)return this.expected("closing parenthesis",this.currToken[T.FIELDS.START_POS])},e.pseudo=function(){for(var i=this,n="",s=this.currToken;this.currToken&&this.currToken[T.FIELDS.TYPE]===O.colon;)n+=this.content(),this.position++;if(!this.currToken)return this.expected(["pseudo-class","pseudo-element"],this.position-1);if(this.currToken[T.FIELDS.TYPE]===O.word)this.splitWord(!1,function(o,a){n+=o,i.newNode(new Tk.default({value:n,source:qo(s,i.currToken),sourceIndex:s[T.FIELDS.START_POS]})),a>1&&i.nextToken&&i.nextToken[T.FIELDS.TYPE]===O.openParenthesis&&i.error("Misplaced parenthesis.",{index:i.nextToken[T.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[T.FIELDS.START_POS])},e.space=function(){var i=this.content();this.position===0||this.prevToken[T.FIELDS.TYPE]===O.comma||this.prevToken[T.FIELDS.TYPE]===O.openParenthesis||this.current.nodes.every(function(n){return n.type==="comment"})?(this.spaces=this.optionalSpace(i),this.position++):this.position===this.tokens.length-1||this.nextToken[T.FIELDS.TYPE]===O.comma||this.nextToken[T.FIELDS.TYPE]===O.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(i),this.position++):this.combinator()},e.string=function(){var i=this.currToken;this.newNode(new Oo.default({value:this.content(),source:qt(i),sourceIndex:i[T.FIELDS.START_POS]})),this.position++},e.universal=function(i){var n=this.nextToken;if(n&&this.content(n)==="|")return this.position++,this.namespace();var s=this.currToken;this.newNode(new _k.default({value:this.content(),source:qt(s),sourceIndex:s[T.FIELDS.START_POS]}),i),this.position++},e.splitWord=function(i,n){for(var s=this,o=this.nextToken,a=this.content();o&&~[O.dollar,O.caret,O.equals,O.word].indexOf(o[T.FIELDS.TYPE]);){this.position++;var u=this.content();if(a+=u,u.lastIndexOf("\\")===u.length-1){var c=this.nextToken;c&&c[T.FIELDS.TYPE]===O.space&&(a+=this.requiredSpace(this.content(c)),this.position++)}o=this.nextToken}var f=Bo(a,".").filter(function(b){var S=a[b-1]==="\\",v=/^\d+\.\d+%$/.test(a);return!S&&!v}),d=Bo(a,"#").filter(function(b){return a[b-1]!=="\\"}),g=Bo(a,"#{");g.length&&(d=d.filter(function(b){return!~g.indexOf(b)}));var y=(0,Ok.default)(qk([0].concat(f,d)));y.forEach(function(b,S){var v=y[S+1]||a.length,k=a.slice(b,v);if(S===0&&n)return n.call(s,k,y.length);var _,D=s.currToken,B=D[T.FIELDS.START_POS]+y[S],z=ht(D[1],D[2]+b,D[3],D[2]+(v-1));if(~f.indexOf(b)){var J={value:k.slice(1),source:z,sourceIndex:B};_=new kk.default(Bt(J,"value"))}else if(~d.indexOf(b)){var xe={value:k.slice(1),source:z,sourceIndex:B};_=new Sk.default(Bt(xe,"value"))}else{var K={value:k,source:z,sourceIndex:B};Bt(K,"value"),_=new Ck.default(K)}s.newNode(_,i),i=null}),this.position++},e.word=function(i){var n=this.nextToken;return n&&this.content(n)==="|"?(this.position++,this.namespace()):this.splitWord(i)},e.loop=function(){for(;this.position<this.tokens.length;)this.parse(!0);return this.current._inferEndPosition(),this.root},e.parse=function(i){switch(this.currToken[T.FIELDS.TYPE]){case O.space:this.space();break;case O.comment:this.comment();break;case O.openParenthesis:this.parentheses();break;case O.closeParenthesis:i&&this.missingParenthesis();break;case O.openSquare:this.attribute();break;case O.dollar:case O.caret:case O.equals:case O.word:this.word();break;case O.colon:this.pseudo();break;case O.comma:this.comma();break;case O.asterisk:this.universal();break;case O.ampersand:this.nesting();break;case O.slash:case O.combinator:this.combinator();break;case O.str:this.string();break;case O.closeSquare:this.missingSquareBracket();case O.semicolon:this.missingBackslash();default:this.unexpected()}},e.expected=function(i,n,s){if(Array.isArray(i)){var o=i.pop();i=i.join(", ")+" or "+o}var a=/^[aeiou]/.test(i[0])?"an":"a";return s?this.error("Expected "+a+" "+i+', found "'+s+'" instead.',{index:n}):this.error("Expected "+a+" "+i+".",{index:n})},e.requiredSpace=function(i){return this.options.lossy?" ":i},e.optionalSpace=function(i){return this.options.lossy?"":i},e.lossySpace=function(i,n){return this.options.lossy?n?" ":"":i},e.parseParenthesisToken=function(i){var n=this.content(i);return i[T.FIELDS.TYPE]===O.space?this.requiredSpace(n):n},e.newNode=function(i,n){return n&&(/^ +$/.test(n)&&(this.options.lossy||(this.spaces=(this.spaces||"")+n),n=!0),i.namespace=n,Bt(i,"namespace")),this.spaces&&(i.spaces.before=this.spaces,this.spaces=""),this.current.append(i)},e.content=function(i){return i===void 0&&(i=this.currToken),this.css.slice(i[T.FIELDS.START_POS],i[T.FIELDS.END_POS])},e.locateNextMeaningfulToken=function(i){i===void 0&&(i=this.position+1);for(var n=i;n<this.tokens.length;)if(Dk[this.tokens[n][T.FIELDS.TYPE]]){n++;continue}else return n;return-1},Pk(t,[{key:"currToken",get:function(){return this.tokens[this.position]}},{key:"nextToken",get:function(){return this.tokens[this.position+1]}},{key:"prevToken",get:function(){return this.tokens[this.position-1]}}]),t}();jr.default=Bk;Lp.exports=jr.default});var Np=x((Ur,Mp)=>{l();"use strict";Ur.__esModule=!0;Ur.default=void 0;var Rk=Ik(Fp());function Ik(t){return t&&t.__esModule?t:{default:t}}var zk=function(){function t(r,i){this.func=r||function(){},this.funcRes=null,this.options=i}var e=t.prototype;return e._shouldUpdateSelector=function(i,n){n===void 0&&(n={});var s=Object.assign({},this.options,n);return s.updateSelector===!1?!1:typeof i!="string"},e._isLossy=function(i){i===void 0&&(i={});var n=Object.assign({},this.options,i);return n.lossless===!1},e._root=function(i,n){n===void 0&&(n={});var s=new Rk.default(i,this._parseOptions(n));return s.root},e._parseOptions=function(i){return{lossy:this._isLossy(i)}},e._run=function(i,n){var s=this;return n===void 0&&(n={}),new Promise(function(o,a){try{var u=s._root(i,n);Promise.resolve(s.func(u)).then(function(c){var f=void 0;return s._shouldUpdateSelector(i,n)&&(f=u.toString(),i.selector=f),{transform:c,root:u,string:f}}).then(o,a)}catch(c){a(c);return}})},e._runSync=function(i,n){n===void 0&&(n={});var s=this._root(i,n),o=this.func(s);if(o&&typeof o.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var a=void 0;return n.updateSelector&&typeof i!="string"&&(a=s.toString(),i.selector=a),{transform:o,root:s,string:a}},e.ast=function(i,n){return this._run(i,n).then(function(s){return s.root})},e.astSync=function(i,n){return this._runSync(i,n).root},e.transform=function(i,n){return this._run(i,n).then(function(s){return s.transform})},e.transformSync=function(i,n){return this._runSync(i,n).transform},e.process=function(i,n){return this._run(i,n).then(function(s){return s.string||s.root.toString()})},e.processSync=function(i,n){var s=this._runSync(i,n);return s.string||s.root.toString()},t}();Ur.default=zk;Mp.exports=Ur.default});var $p=x(U=>{l();"use strict";U.__esModule=!0;U.universal=U.tag=U.string=U.selector=U.root=U.pseudo=U.nesting=U.id=U.comment=U.combinator=U.className=U.attribute=void 0;var Lk=ue(bo()),Fk=ue(eo()),Mk=ue(ko()),Nk=ue(ro()),$k=ue(no()),jk=ue(Co()),Uk=ue(co()),Wk=ue(Qs()),Vk=ue(Ks()),Gk=ue(uo()),Hk=ue(ao()),Yk=ue(xo());function ue(t){return t&&t.__esModule?t:{default:t}}var Qk=function(e){return new Lk.default(e)};U.attribute=Qk;var Jk=function(e){return new Fk.default(e)};U.className=Jk;var Kk=function(e){return new Mk.default(e)};U.combinator=Kk;var Xk=function(e){return new Nk.default(e)};U.comment=Xk;var Zk=function(e){return new $k.default(e)};U.id=Zk;var e5=function(e){return new jk.default(e)};U.nesting=e5;var t5=function(e){return new Uk.default(e)};U.pseudo=t5;var r5=function(e){return new Wk.default(e)};U.root=r5;var i5=function(e){return new Vk.default(e)};U.selector=i5;var n5=function(e){return new Gk.default(e)};U.string=n5;var s5=function(e){return new Hk.default(e)};U.tag=s5;var o5=function(e){return new Yk.default(e)};U.universal=o5});var Vp=x(L=>{l();"use strict";L.__esModule=!0;L.isNode=Ro;L.isPseudoElement=Wp;L.isPseudoClass=y5;L.isContainer=b5;L.isNamespace=w5;L.isUniversal=L.isTag=L.isString=L.isSelector=L.isRoot=L.isPseudo=L.isNesting=L.isIdentifier=L.isComment=L.isCombinator=L.isClassName=L.isAttribute=void 0;var Y=Z(),te,a5=(te={},te[Y.ATTRIBUTE]=!0,te[Y.CLASS]=!0,te[Y.COMBINATOR]=!0,te[Y.COMMENT]=!0,te[Y.ID]=!0,te[Y.NESTING]=!0,te[Y.PSEUDO]=!0,te[Y.ROOT]=!0,te[Y.SELECTOR]=!0,te[Y.STRING]=!0,te[Y.TAG]=!0,te[Y.UNIVERSAL]=!0,te);function Ro(t){return typeof t=="object"&&a5[t.type]}function fe(t,e){return Ro(e)&&e.type===t}var jp=fe.bind(null,Y.ATTRIBUTE);L.isAttribute=jp;var l5=fe.bind(null,Y.CLASS);L.isClassName=l5;var u5=fe.bind(null,Y.COMBINATOR);L.isCombinator=u5;var f5=fe.bind(null,Y.COMMENT);L.isComment=f5;var c5=fe.bind(null,Y.ID);L.isIdentifier=c5;var p5=fe.bind(null,Y.NESTING);L.isNesting=p5;var Io=fe.bind(null,Y.PSEUDO);L.isPseudo=Io;var d5=fe.bind(null,Y.ROOT);L.isRoot=d5;var h5=fe.bind(null,Y.SELECTOR);L.isSelector=h5;var m5=fe.bind(null,Y.STRING);L.isString=m5;var Up=fe.bind(null,Y.TAG);L.isTag=Up;var g5=fe.bind(null,Y.UNIVERSAL);L.isUniversal=g5;function Wp(t){return Io(t)&&t.value&&(t.value.startsWith("::")||t.value.toLowerCase()===":before"||t.value.toLowerCase()===":after"||t.value.toLowerCase()===":first-letter"||t.value.toLowerCase()===":first-line")}function y5(t){return Io(t)&&!Wp(t)}function b5(t){return!!(Ro(t)&&t.walk)}function w5(t){return jp(t)||Up(t)}});var Gp=x(ge=>{l();"use strict";ge.__esModule=!0;var zo=Z();Object.keys(zo).forEach(function(t){t==="default"||t==="__esModule"||t in ge&&ge[t]===zo[t]||(ge[t]=zo[t])});var Lo=$p();Object.keys(Lo).forEach(function(t){t==="default"||t==="__esModule"||t in ge&&ge[t]===Lo[t]||(ge[t]=Lo[t])});var Fo=Vp();Object.keys(Fo).forEach(function(t){t==="default"||t==="__esModule"||t in ge&&ge[t]===Fo[t]||(ge[t]=Fo[t])})});var Te=x((Wr,Yp)=>{l();"use strict";Wr.__esModule=!0;Wr.default=void 0;var x5=S5(Np()),v5=k5(Gp());function Hp(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Hp=function(){return t},t}function k5(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Hp();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}function S5(t){return t&&t.__esModule?t:{default:t}}var Mo=function(e){return new x5.default(e)};Object.assign(Mo,v5);delete Mo.__esModule;var C5=Mo;Wr.default=C5;Yp.exports=Wr.default});function Ne(t){return["fontSize","outline"].includes(t)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):["fontFamily","boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(t)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(t)?e=>(typeof e=="function"&&(e=e({})),typeof e=="string"&&(e=$.list.comma(e).join(" ")),e):e=>(typeof e=="function"&&(e=e({})),e)}var Vr=C(()=>{l();He()});var Zp=x((b8,Uo)=>{l();var Qp=Te();function No(t,e){let r,i=Qp(n=>{r=n});try{i.processSync(t)}catch(n){throw t.includes(":")?e?e.error("Missed semicolon"):n:e?e.error(n.message):n}return r.at(0)}function Jp(t,e){let r=!1;return t.each(i=>{if(i.type==="nesting"){let n=e.clone();i.value!=="&"?i.replaceWith(No(i.value.replace("&",n.toString()))):i.replaceWith(n),r=!0}else i.nodes&&Jp(i,e)&&(r=!0)}),r}function Kp(t,e){let r=[];return t.selectors.forEach(i=>{let n=No(i,t);e.selectors.forEach(s=>{if(s.length){let o=No(s,e);Jp(o,n)||(o.prepend(Qp.combinator({value:" "})),o.prepend(n.clone())),r.push(o.toString())}})}),r}function $o(t,e){return t&&t.type==="comment"?(e.after(t),t):e}function T5(t){return function e(r,i,n){let s=[];if(i.each(o=>{o.type==="comment"||o.type==="decl"?s.push(o):o.type==="rule"&&n?o.selectors=Kp(r,o):o.type==="atrule"&&(o.nodes&&t[o.name]?e(r,o,!0):s.push(o))}),n&&s.length){let o=r.clone({nodes:[]});for(let a of s)o.append(a);i.prepend(o)}}}function jo(t,e,r,i){let n=new i({selector:t,nodes:[]});for(let s of e)n.append(s);return r.after(n),n}function Xp(t,e){let r={};for(let i of t)r[i]=!0;if(e)for(let i of e){let n=i.replace(/^@/,"");r[n]=!0}return r}Uo.exports=(t={})=>{let e=Xp(["media","supports"],t.bubble),r=T5(e),i=Xp(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],t.unwrap),n=t.preserveEmpty;return{postcssPlugin:"postcss-nested",Rule(s,{Rule:o}){let a=!1,u=s,c=!1,f=[];s.each(d=>{if(d.type==="rule")f.length&&(u=jo(s.selector,f,u,o),f=[]),c=!0,a=!0,d.selectors=Kp(s,d),u=$o(d.prev(),u),u.after(d),u=d;else if(d.type==="atrule")if(f.length&&(u=jo(s.selector,f,u,o),f=[]),d.name==="at-root"){a=!0,r(s,d,!1);let g=d.nodes;d.params&&(g=new o({selector:d.params,nodes:g})),u.after(g),u=g,d.remove()}else e[d.name]?(c=!0,a=!0,r(s,d,!0),u=$o(d.prev(),u),u.after(d),u=d):i[d.name]?(c=!0,a=!0,r(s,d,!1),u=$o(d.prev(),u),u.after(d),u=d):c&&f.push(d);else d.type==="decl"&&c&&f.push(d)}),f.length&&(u=jo(s.selector,f,u,o)),a&&n!==!0&&(s.raws.semicolon=!0,s.nodes.length===0&&s.remove())}}};Uo.exports.postcss=!0});var id=x((w8,rd)=>{l();"use strict";var ed=/-(\w|$)/g,td=(t,e)=>e.toUpperCase(),_5=t=>(t=t.toLowerCase(),t==="float"?"cssFloat":t.startsWith("-ms-")?t.substr(1).replace(ed,td):t.replace(ed,td));rd.exports=_5});var Go=x((x8,nd)=>{l();var A5=id(),O5={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function Wo(t){return typeof t.nodes=="undefined"?!0:Vo(t)}function Vo(t){let e,r={};return t.each(i=>{if(i.type==="atrule")e="@"+i.name,i.params&&(e+=" "+i.params),typeof r[e]=="undefined"?r[e]=Wo(i):Array.isArray(r[e])?r[e].push(Wo(i)):r[e]=[r[e],Wo(i)];else if(i.type==="rule"){let n=Vo(i);if(r[i.selector])for(let s in n)r[i.selector][s]=n[s];else r[i.selector]=n}else if(i.type==="decl"){i.prop[0]==="-"&&i.prop[1]==="-"?e=i.prop:e=A5(i.prop);let n=i.value;!isNaN(i.value)&&O5[e]&&(n=parseFloat(i.value)),i.important&&(n+=" !important"),typeof r[e]=="undefined"?r[e]=n:Array.isArray(r[e])?r[e].push(n):r[e]=[r[e],n]}}),r}nd.exports=Vo});var xn=x((v8,ld)=>{l();var Gr=ae(),sd=/\s*!important\s*$/i,E5={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function P5(t){return t.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}function od(t,e,r){r===!1||r===null||(e.startsWith("--")||(e=P5(e)),typeof r=="number"&&(r===0||E5[e]?r=r.toString():r+="px"),e==="css-float"&&(e="float"),sd.test(r)?(r=r.replace(sd,""),t.push(Gr.decl({prop:e,value:r,important:!0}))):t.push(Gr.decl({prop:e,value:r})))}function ad(t,e,r){let i=Gr.atRule({name:e[1],params:e[3]||""});typeof r=="object"&&(i.nodes=[],Ho(r,i)),t.push(i)}function Ho(t,e){let r,i,n;for(r in t)if(i=t[r],!(i===null||typeof i=="undefined"))if(r[0]==="@"){let s=r.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(i))for(let o of i)ad(e,s,o);else ad(e,s,i)}else if(Array.isArray(i))for(let s of i)od(e,r,s);else typeof i=="object"?(n=Gr.rule({selector:r}),Ho(i,n),e.push(n)):od(e,r,i)}ld.exports=function(t){let e=Gr.root();return Ho(t,e),e}});var Yo=x((k8,ud)=>{l();var D5=Go();ud.exports=function(e){return console&&console.warn&&e.warnings().forEach(r=>{let i=r.plugin||"PostCSS";console.warn(i+": "+r.text)}),D5(e.root)}});var cd=x((S8,fd)=>{l();var q5=ae(),B5=Yo(),R5=xn();fd.exports=function(e){let r=q5(e);return async i=>{let n=await r.process(i,{parser:R5,from:void 0});return B5(n)}}});var dd=x((C8,pd)=>{l();var I5=ae(),z5=Yo(),L5=xn();pd.exports=function(t){let e=I5(t);return r=>{let i=e.process(r,{parser:L5,from:void 0});return z5(i)}}});var md=x((T8,hd)=>{l();var F5=Go(),M5=xn(),N5=cd(),$5=dd();hd.exports={objectify:F5,parse:M5,async:N5,sync:$5}});var Rt,gd,_8,A8,O8,E8,yd=C(()=>{l();Rt=G(md()),gd=Rt.default,_8=Rt.default.objectify,A8=Rt.default.parse,O8=Rt.default.async,E8=Rt.default.sync});function It(t){return Array.isArray(t)?t.flatMap(e=>$([(0,bd.default)({bubble:["screen"]})]).process(e,{parser:gd}).root.nodes):It([t])}var bd,Qo=C(()=>{l();He();bd=G(Zp());yd()});function zt(t,e,r=!1){return(0,wd.default)(i=>{i.walkClasses(n=>{let s=n.value,o=r&&s.startsWith("-");n.value=o?`-${t}${s.slice(1)}`:`${t}${s}`})}).processSync(e)}var wd,vn=C(()=>{l();wd=G(Te())});function mt(t){return t.replace(/\\,/g,"\\2c ")}var kn=C(()=>{l()});function ye(t){let e=xd.default.className();return e.value=t,mt(e?.raws?.value??e.value)}var xd,Hr=C(()=>{l();xd=G(Te());kn()});function Jo(t){return mt(`.${ye(t)}`)}function Sn(t,e){return Jo(Yr(t,e))}function Yr(t,e){return e==="DEFAULT"?t:e==="-"||e==="-DEFAULT"?`-${t}`:e.startsWith("-")?`-${t}${e}`:`${t}-${e}`}var Ko=C(()=>{l();Hr();kn()});var kd=x(($8,vd)=>{l();"use strict";vd.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});function Qr(t){if(typeof t!="string")return null;if(t=t.trim(),t==="transparent")return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(t in Xo.default)return{mode:"rgb",color:Xo.default[t].map(n=>n.toString())};let e=t.replace(U5,(n,s,o,a,u)=>["#",s,s,o,o,a,a,u?u+u:""].join("")).match(j5);if(e!==null)return{mode:"rgb",color:[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)].map(n=>n.toString()),alpha:e[4]?(parseInt(e[4],16)/255).toString():void 0};let r=t.match(W5);if(r!==null)return{mode:"rgb",color:[r[1],r[2],r[3]].map(n=>n.toString()),alpha:r[4]?.toString?.()};let i=t.match(V5);return i!==null?{mode:"hsl",color:[i[1],i[2],i[3]].map(n=>n.toString()),alpha:i[4]?.toString?.()}:null}function Zo({mode:t,color:e,alpha:r}){let i=r!==void 0;return`${t}(${e.join(" ")}${i?` / ${r}`:""})`}var Xo,j5,U5,Ye,Cn,Sd,W5,V5,ea=C(()=>{l();Xo=G(kd()),j5=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,U5=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,Ye="(?:\\d+|\\d*\\.\\d+)%?",Cn="(?:\\s*,\\s*|\\s+)",Sd="\\s*[,/]\\s*",W5=new RegExp(`^rgba?\\(\\s*(${Ye})${Cn}(${Ye})${Cn}(${Ye})(?:${Sd}(${Ye}))?\\s*\\)$`),V5=new RegExp(`^hsla?\\(\\s*((?:${Ye})(?:deg|rad|grad|turn)?)${Cn}(${Ye})${Cn}(${Ye})(?:${Sd}(${Ye}))?\\s*\\)$`)});function Lt(t,e,r){if(typeof t=="function")return t({opacityValue:e});let i=Qr(t);return i===null?r:Zo({...i,alpha:e})}function re({color:t,property:e,variable:r}){let i=[].concat(e);if(typeof t=="function")return{[r]:"1",...Object.fromEntries(i.map(s=>[s,t({opacityVariable:r,opacityValue:`var(${r})`})]))};let n=Qr(t);return n===null?Object.fromEntries(i.map(s=>[s,t])):n.alpha!==void 0?Object.fromEntries(i.map(s=>[s,t])):{[r]:"1",...Object.fromEntries(i.map(s=>[s,Zo({...n,alpha:`var(${r})`})]))}}var ta=C(()=>{l();ea()});function Tn(t){return t.split(H5).map(r=>{let i=r.trim(),n={raw:i},s=i.split(Y5),o=new Set;for(let a of s)Cd.lastIndex=0,!o.has("KEYWORD")&&G5.has(a)?(n.keyword=a,o.add("KEYWORD")):Cd.test(a)?o.has("X")?o.has("Y")?o.has("BLUR")?o.has("SPREAD")||(n.spread=a,o.add("SPREAD")):(n.blur=a,o.add("BLUR")):(n.y=a,o.add("Y")):(n.x=a,o.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(a)):n.color=a;return n.valid=n.x!==void 0&&n.y!==void 0,n})}function Td(t){return t.map(e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw).join(", ")}var G5,H5,Y5,Cd,ra=C(()=>{l();G5=new Set(["inset","inherit","initial","revert","unset"]),H5=/\,(?![^(]*\))/g,Y5=/\ +(?![^(]*\))/g,Cd=/^-?(\d+|\.\d+)(.*?)$/g});function be(t,e=!0){return t.includes("url(")?t.split(/(url\(.*?\))/g).filter(Boolean).map(r=>/^url\(.*?\)$/.test(r)?r:be(r,!1)).join(""):(t=t.replace(/([^\\])_+/g,(r,i)=>i+" ".repeat(r.length-1)).replace(/^_/g," ").replace(/\\_/g,"_"),e&&(t=t.trim()),t.replace(/(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g,"$1 $2 "))}function sa(t){return t.startsWith("url(")}function Ad(t){return!isNaN(Number(t))||ia.some(e=>new RegExp(`^${e}\\(.+?`).test(t))}function oa(t){return/%$/g.test(t)||ia.some(e=>new RegExp(`^${e}\\(.+?%`).test(t))}function aa(t){return t.split(na).every(e=>e==="0"||new RegExp(`${Od}$`).test(e)||ia.some(r=>new RegExp(`^${r}\\(.+?${Od}`).test(e)))}function Ed(t){return J5.has(t)}function Pd(t){let e=Tn(be(t));for(let r of e)if(!r.valid)return!1;return!0}function Dd(t){let e=0;return t.split(na).every(i=>(i=be(i),i.startsWith("var(")?!0:Qr(i)!==null?(e++,!0):!1))?e>0:!1}function qd(t){let e=0;return t.split(_d).every(i=>(i=be(i),i.startsWith("var(")?!0:sa(i)||X5(i)||["element(","image(","cross-fade(","image-set("].some(n=>i.startsWith(n))?(e++,!0):!1))?e>0:!1}function X5(t){t=be(t);for(let e of K5)if(t.startsWith(`${e}(`))return!0;return!1}function Bd(t){let e=0;return t.split(na).every(i=>(i=be(i),i.startsWith("var(")?!0:Z5.has(i)||aa(i)||oa(i)?(e++,!0):!1))?e>0:!1}function Rd(t){let e=0;return t.split(_d).every(i=>(i=be(i),i.startsWith("var(")?!0:i.includes(" ")&&!/(['"])([^"']+)\1/g.test(i)||/^\d/g.test(i)?!1:(e++,!0)))?e>0:!1}function Id(t){return e3.has(t)}function zd(t){return t3.has(t)}function Ld(t){return r3.has(t)}var ia,_d,na,Q5,Od,J5,K5,Z5,e3,t3,r3,la=C(()=>{l();ea();ra();ia=["min","max","clamp","calc"],_d=/,(?![^(]*\))/g,na=/_(?![^(]*\))/g;Q5=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","vw","vh","vmin","vmax"],Od=`(?:${Q5.join("|")})`;J5=new Set(["thin","medium","thick"]);K5=new Set(["linear-gradient","radial-gradient","repeating-linear-gradient","repeating-radial-gradient","conic-gradient"]);Z5=new Set(["center","top","right","bottom","left"]);e3=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]);t3=new Set(["xx-small","x-small","small","medium","large","x-large","x-large","xxx-large"]);r3=new Set(["larger","smaller"])});function Md(t,e){return(0,Fd.default)(n=>{n.walkClasses(s=>{let o=e(s.value);s.value=o,s.raws&&s.raws.value&&(s.raws.value=mt(s.raws.value))})}).processSync(t)}function Nd(t,e){if(!Jr(t))return;let r=t.slice(1,-1);if(!!e(r))return be(r)}function i3(t,e={},r){let i=e[t];if(i!==void 0)return lt(i);if(Jr(t)){let n=Nd(t,r);return n===void 0?void 0:lt(n)}}function _n(t,e={},{validate:r=()=>!0}={}){let i=e.values?.[t];return i!==void 0?i:e.supportsNegativeValues&&t.startsWith("-")?i3(t.slice(1),e.values,r):Nd(t,r)}function Jr(t){return t.startsWith("[")&&t.endsWith("]")}function n3(t){let e=t.lastIndexOf("/");return e===-1||e===t.length-1?[t]:[t.slice(0,e),t.slice(e+1)]}function s3(t,e={},{tailwindConfig:r={}}={}){if(e.values?.[t]!==void 0)return e.values?.[t];let[i,n]=n3(t);if(n!==void 0){let s=e.values?.[i]??(Jr(i)?i.slice(1,-1):void 0);return s===void 0?void 0:Jr(n)?Lt(s,n.slice(1,-1)):r.theme?.opacity?.[n]===void 0?void 0:Lt(s,r.theme.opacity[n])}return _n(t,e,{validate:Dd})}function o3(t,e={}){return e.values?.[t]}function ce(t){return(e,r)=>_n(e,r,{validate:t})}function a3(t,e){let r=t.indexOf(e);return r===-1?[void 0,t]:[t.slice(0,r),t.slice(r+1)]}function ua(t,e,r,i){if(Jr(e)){let n=e.slice(1,-1),[s,o]=a3(n,":");if(!/^[\w-_]+$/g.test(s))o=n;else if(s!==void 0&&!jd.includes(s))return[];if(o.length>0&&jd.includes(s))return[_n(`[${o}]`,r),s]}for(let n of[].concat(t)){let s=$d[n](e,r,{tailwindConfig:i});if(s!==void 0)return[s,n]}return[]}var Fd,$d,jd,fa=C(()=>{l();Fd=G(Te());kn();ta();la();ki();$d={any:_n,color:s3,url:ce(sa),image:ce(qd),length:ce(aa),percentage:ce(oa),position:ce(Bd),lookup:o3,"generic-name":ce(Id),"family-name":ce(Rd),number:ce(Ad),"line-width":ce(Ed),"absolute-size":ce(zd),"relative-size":ce(Ld),shadow:ce(Pd)},jd=Object.keys($d)});function gt(t){return(t>0n)-(t<0n)}var An=C(()=>{l()});function E(t,e=[[t,[t]]],{filterDefault:r=!1,...i}={}){let n=Ne(t);return function({matchUtilities:s,theme:o}){for(let a of e){let u=Array.isArray(a[0])?a:[a];s(u.reduce((c,[f,d])=>Object.assign(c,{[f]:g=>d.reduce((y,b)=>Array.isArray(b)?Object.assign(y,{[b[0]]:b[1]}):Object.assign(y,{[b]:n(g)}),{})}),{}),{...i,values:r?Object.fromEntries(Object.entries(o(t)??{}).filter(([c])=>c!=="DEFAULT")):o(t)})}}}var Ud=C(()=>{l();Vr()});function yt(t){return t=Array.isArray(t)?t:[t],t.map(e=>e.values.map(r=>r.raw!==void 0?r.raw:[r.min&&`(min-width: ${r.min})`,r.max&&`(max-width: ${r.max})`].filter(Boolean).join(" and "))).join(", ")}var On=C(()=>{l()});function ca(t){return t.split(h3).map(r=>{let i=r.trim(),n={value:i},s=i.split(m3),o=new Set;for(let a of s)!o.has("DIRECTIONS")&&l3.has(a)?(n.direction=a,o.add("DIRECTIONS")):!o.has("PLAY_STATES")&&u3.has(a)?(n.playState=a,o.add("PLAY_STATES")):!o.has("FILL_MODES")&&f3.has(a)?(n.fillMode=a,o.add("FILL_MODES")):!o.has("ITERATION_COUNTS")&&(c3.has(a)||g3.test(a))?(n.iterationCount=a,o.add("ITERATION_COUNTS")):!o.has("TIMING_FUNCTION")&&p3.has(a)||!o.has("TIMING_FUNCTION")&&d3.some(u=>a.startsWith(`${u}(`))?(n.timingFunction=a,o.add("TIMING_FUNCTION")):!o.has("DURATION")&&Wd.test(a)?(n.duration=a,o.add("DURATION")):!o.has("DELAY")&&Wd.test(a)?(n.delay=a,o.add("DELAY")):o.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(a)):(n.name=a,o.add("NAME"));return n})}var l3,u3,f3,c3,p3,d3,h3,m3,Wd,g3,Vd=C(()=>{l();l3=new Set(["normal","reverse","alternate","alternate-reverse"]),u3=new Set(["running","paused"]),f3=new Set(["none","forwards","backwards","both"]),c3=new Set(["infinite"]),p3=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),d3=["cubic-bezier","steps"],h3=/\,(?![^(]*\))/g,m3=/\ +(?![^(]*\))/g,Wd=/^(-?[\d.]+m?s)$/,g3=/^(\d+)$/});var Gd,X,Hd=C(()=>{l();Gd=t=>Object.assign({},...Object.entries(t??{}).flatMap(([e,r])=>typeof r=="object"?Object.entries(Gd(r)).map(([i,n])=>({[e+(i==="DEFAULT"?"":`-${i}`)]:n})):[{[`${e}`]:r}])),X=Gd});function W(t){return typeof t=="function"?t({}):t}var Yd=C(()=>{l()});var Jd,Qd=C(()=>{Jd="3.0.23"});function Qe(t,e=!0){return Array.isArray(t)?t.map(r=>{if(e&&Array.isArray(r))throw new Error("The tuple syntax is not supported for `screens`.");if(typeof r=="string")return{name:r.toString(),values:[{min:r,max:void 0}]};let[i,n]=r;return i=i.toString(),typeof n=="string"?{name:i,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:i,values:n.map(s=>Kd(s))}:{name:i,values:[Kd(n)]}}):Qe(Object.entries(t??{}),!1)}function Kd({"min-width":t,min:e=t,max:r,raw:i}={}){return{min:e,max:r,raw:i}}var En=C(()=>{l()});var _e,we,Ae,Oe,Xd,Zd=C(()=>{l();Ct();at();He();Ud();On();Vd();Hd();ta();Yd();ur();Vr();Qd();Re();En();ra();_e={pseudoElementVariants:({addVariant:t})=>{t("first-letter","&::first-letter"),t("first-line","&::first-line"),t("marker",["& *::marker","&::marker"]),t("selection",["& *::selection","&::selection"]),t("file","&::file-selector-button"),t("placeholder","&::placeholder"),t("before",({container:e})=>(e.walkRules(r=>{let i=!1;r.walkDecls("content",()=>{i=!0}),i||r.prepend($.decl({prop:"content",value:"var(--tw-content)"}))}),"&::before")),t("after",({container:e})=>(e.walkRules(r=>{let i=!1;r.walkDecls("content",()=>{i=!0}),i||r.prepend($.decl({prop:"content",value:"var(--tw-content)"}))}),"&::after"))},pseudoClassVariants:({addVariant:t})=>{let e=[["first",":first-child"],["last",":last-child"],["only",":only-child"],["odd",":nth-child(odd)"],["even",":nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:r})=>{let i=["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"];return r.walkDecls(n=>{if(i.includes(n.prop)){n.remove();return}for(let s of i)n.value.includes(`/ var(${s})`)&&(n.value=n.value.replace(`/ var(${s})`,""))}),":visited"}],"target",["open","[open]"],"default","checked","indeterminate","placeholder-shown","autofill","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within","hover","focus","focus-visible","active","disabled"].map(r=>Array.isArray(r)?r:[r,`:${r}`]);for(let[r,i]of e)t(r,n=>`&${typeof i=="function"?i(n):i}`);for(let[r,i]of e)t(`group-${r}`,n=>`:merge(.group)${typeof i=="function"?i(n):i} &`);for(let[r,i]of e)t(`peer-${r}`,n=>`:merge(.peer)${typeof i=="function"?i(n):i} ~ &`)},directionVariants:({addVariant:t})=>{t("ltr",()=>(Q.warn("rtl-experimental",["The RTL features in Tailwind CSS are currently in preview.","Preview features are not covered by semver, and may be improved in breaking ways at any time."]),'[dir="ltr"] &')),t("rtl",()=>(Q.warn("rtl-experimental",["The RTL features in Tailwind CSS are currently in preview.","Preview features are not covered by semver, and may be improved in breaking ways at any time."]),'[dir="rtl"] &'))},reducedMotionVariants:({addVariant:t})=>{t("motion-safe","@media (prefers-reduced-motion: no-preference)"),t("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:t,addVariant:e})=>{let r=t("darkMode","media");r===!1&&(r="media",Q.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),r==="class"?e("dark",".dark &"):r==="media"&&e("dark","@media (prefers-color-scheme: dark)")},printVariant:({addVariant:t})=>{t("print","@media print")},screenVariants:({theme:t,addVariant:e})=>{for(let r of Qe(t("screens"))){let i=yt(r);e(r.name,`@media ${i}`)}},orientationVariants:({addVariant:t})=>{t("portrait","@media (orientation: portrait)"),t("landscape","@media (orientation: landscape)")}},we=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),Ae=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),Oe=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),Xd={preflight:({addBase:t})=>{let e=$.parse(`*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}`);t([$.comment({text:`! tailwindcss v${Jd} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:(()=>{function t(r=[]){return r.flatMap(i=>i.values.map(n=>n.min)).filter(i=>i!==void 0)}function e(r,i,n){if(typeof n=="undefined")return[];if(!(typeof n=="object"&&n!==null))return[{screen:"DEFAULT",minWidth:0,padding:n}];let s=[];n.DEFAULT&&s.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let o of r)for(let a of i)for(let{min:u}of a.values)u===o&&s.push({minWidth:o,padding:n[a.name]});return s}return function({addComponents:r,theme:i}){let n=Qe(i("container.screens",i("screens"))),s=t(n),o=e(s,n,i("container.padding")),a=c=>{let f=o.find(d=>d.minWidth===c);return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},u=Array.from(new Set(s.slice().sort((c,f)=>parseInt(c)-parseInt(f)))).map(c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...a(c)}}}));r([{".container":Object.assign({width:"100%"},i("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},a(0))},...u])}})(),accessibility:({addUtilities:t})=>{t({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:t})=>{t({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:t})=>{t({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"}})},position:({addUtilities:t})=>{t({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:E("inset",[["inset",["top","right","bottom","left"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:t})=>{t({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:E("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:E("order",void 0,{supportsNegativeValues:!0}),gridColumn:E("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:E("gridColumnStart",[["col-start",["gridColumnStart"]]]),gridColumnEnd:E("gridColumnEnd",[["col-end",["gridColumnEnd"]]]),gridRow:E("gridRow",[["row",["gridRow"]]]),gridRowStart:E("gridRowStart",[["row-start",["gridRowStart"]]]),gridRowEnd:E("gridRowEnd",[["row-end",["gridRowEnd"]]]),float:({addUtilities:t})=>{t({".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:t})=>{t({".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:E("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:t})=>{t({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},display:({addUtilities:t})=>{t({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:E("aspectRatio",[["aspect",["aspect-ratio"]]]),height:E("height",[["h",["height"]]]),maxHeight:E("maxHeight",[["max-h",["maxHeight"]]]),minHeight:E("minHeight",[["min-h",["minHeight"]]]),width:E("width",[["w",["width"]]]),minWidth:E("minWidth",[["min-w",["minWidth"]]]),maxWidth:E("maxWidth",[["max-w",["maxWidth"]]]),flex:E("flex"),flexShrink:E("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:E("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:E("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:t})=>{t({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},borderCollapse:({addUtilities:t})=>{t({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},transformOrigin:E("transformOrigin",[["origin",["transformOrigin"]]]),translate:E("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",we]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",we]]]]],{supportsNegativeValues:!0}),rotate:E("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",we]]]],{supportsNegativeValues:!0}),skew:E("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",we]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",we]]]]],{supportsNegativeValues:!0}),scale:E("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",we]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",we]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",we]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:t,addUtilities:e})=>{t("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:we},".transform-cpu":{transform:we},".transform-gpu":{transform:we.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:t,theme:e,prefix:r})=>{let i=s=>r(`.${s}`).slice(1),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map(([s,o])=>[s,{[`@keyframes ${i(s)}`]:o}]));t({animate:s=>{let o=ca(s);return[...o.flatMap(a=>n[a.name]),{animation:o.map(({name:a,value:u})=>a===void 0||n[a]===void 0?u:u.replace(a,i(a))).join(", ")}]}},{values:e("animation")})},cursor:E("cursor"),touchAction:({addDefaults:t,addUtilities:e})=>{t("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let r="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":r},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":r},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":r},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":r},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":r},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":r},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":r},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:t})=>{t({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:t})=>{t({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:t,addUtilities:e})=>{t("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:t})=>{t({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:t})=>{t({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:E("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:E("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:t})=>{t({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:E("listStyleType",[["list",["listStyleType"]]]),appearance:({addUtilities:t})=>{t({".appearance-none":{appearance:"none"}})},columns:E("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:t})=>{t({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:t})=>{t({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:t})=>{t({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:E("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:t})=>{t({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:E("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:E("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:E("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:t})=>{t({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:t})=>{t({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:t})=>{t({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:t})=>{t({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:t})=>{t({".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"}})},alignItems:({addUtilities:t})=>{t({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:t})=>{t({".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"}})},justifyItems:({addUtilities:t})=>{t({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:E("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:t,addUtilities:e,theme:r})=>{t({"space-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${i} * var(--tw-space-x-reverse))`,"margin-left":`calc(${i} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${i} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${i} * var(--tw-space-y-reverse))`}})},{values:r("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:t,addUtilities:e,theme:r})=>{t({"divide-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${i} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${i} * var(--tw-divide-y-reverse))`}})},{values:r("divideWidth"),type:["line-width","length"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:t})=>{t({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:t,theme:e,corePlugins:r})=>{t({divide:i=>r("divideOpacity")?{["& > :not([hidden]) ~ :not([hidden])"]:re({color:i,property:"border-color",variable:"--tw-divide-opacity"})}:{["& > :not([hidden]) ~ :not([hidden])"]:{"border-color":W(i)}}},{values:(({DEFAULT:i,...n})=>n)(X(e("divideColor"))),type:"color"})},divideOpacity:({matchUtilities:t,theme:e})=>{t({"divide-opacity":r=>({["& > :not([hidden]) ~ :not([hidden])"]:{"--tw-divide-opacity":r}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:t})=>{t({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:t})=>{t({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:t})=>{t({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:t})=>{t({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:t})=>{t({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:t})=>{t({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:t})=>{t({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},whitespace:({addUtilities:t})=>{t({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"}})},wordBreak:({addUtilities:t})=>{t({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"}})},borderRadius:E("borderRadius",[["rounded",["border-radius"]],[["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:E("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:t})=>{t({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:t,theme:e,corePlugins:r})=>{t({border:i=>r("borderOpacity")?re({color:i,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":W(i)}},{values:(({DEFAULT:i,...n})=>n)(X(e("borderColor"))),type:["color"]}),t({"border-x":i=>r("borderOpacity")?re({color:i,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":W(i),"border-right-color":W(i)},"border-y":i=>r("borderOpacity")?re({color:i,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":W(i),"border-bottom-color":W(i)}},{values:(({DEFAULT:i,...n})=>n)(X(e("borderColor"))),type:"color"}),t({"border-t":i=>r("borderOpacity")?re({color:i,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":W(i)},"border-r":i=>r("borderOpacity")?re({color:i,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":W(i)},"border-b":i=>r("borderOpacity")?re({color:i,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":W(i)},"border-l":i=>r("borderOpacity")?re({color:i,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":W(i)}},{values:(({DEFAULT:i,...n})=>n)(X(e("borderColor"))),type:"color"})},borderOpacity:E("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:t,theme:e,corePlugins:r})=>{t({bg:i=>r("backgroundOpacity")?re({color:i,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":W(i)}},{values:X(e("backgroundColor")),type:"color"})},backgroundOpacity:E("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:E("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function t(e){return Lt(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:r}){let i={values:X(r("gradientColorStops")),type:["color","any"]};e({from:n=>{let s=t(n);return{"--tw-gradient-from":W(n,"from"),"--tw-gradient-stops":`var(--tw-gradient-from), var(--tw-gradient-to, ${s})`}}},i),e({via:n=>{let s=t(n);return{"--tw-gradient-stops":`var(--tw-gradient-from), ${W(n,"via")}, var(--tw-gradient-to, ${s})`}}},i),e({to:n=>({"--tw-gradient-to":W(n,"to")})},i)}})(),boxDecorationBreak:({addUtilities:t})=>{t({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:E("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage"]}),backgroundAttachment:({addUtilities:t})=>{t({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:t})=>{t({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:E("backgroundPosition",[["bg",["background-position"]]],{type:["lookup","position"]}),backgroundRepeat:({addUtilities:t})=>{t({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:t})=>{t({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:t,theme:e})=>{t({fill:r=>({fill:W(r)})},{values:X(e("fill")),type:["color","any"]})},stroke:({matchUtilities:t,theme:e})=>{t({stroke:r=>({stroke:W(r)})},{values:X(e("stroke")),type:["color","url"]})},strokeWidth:E("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:t})=>{t({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:E("objectPosition",[["object",["object-position"]]]),padding:E("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:t})=>{t({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"}})},textIndent:E("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:t,matchUtilities:e})=>{t({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:r=>({"vertical-align":r})})},fontFamily:E("fontFamily",[["font",["fontFamily"]]],{type:["lookup","generic-name","family-name"]}),fontSize:({matchUtilities:t,theme:e})=>{t({text:r=>{let[i,n]=Array.isArray(r)?r:[r],{lineHeight:s,letterSpacing:o}=Ie(n)?n:{lineHeight:n};return{"font-size":i,...s===void 0?{}:{"line-height":s},...o===void 0?{}:{"letter-spacing":o}}}},{values:e("fontSize"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:E("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number"]}),textTransform:({addUtilities:t})=>{t({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:t})=>{t({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:t,addUtilities:e})=>{let r="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";t("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":r},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":r},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":r},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":r},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":r},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":r},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":r},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":r}})},lineHeight:E("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:E("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:t,theme:e,corePlugins:r})=>{t({text:i=>r("textOpacity")?re({color:i,property:"color",variable:"--tw-text-opacity"}):{color:W(i)}},{values:X(e("textColor")),type:"color"})},textOpacity:E("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:t})=>{t({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:t,theme:e})=>{t({decoration:r=>({"text-decoration-color":W(r)})},{values:X(e("textDecorationColor")),type:["color"]})},textDecorationStyle:({addUtilities:t})=>{t({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:E("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:E("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage"]}),fontSmoothing:({addUtilities:t})=>{t({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:t,theme:e,corePlugins:r})=>{t({placeholder:i=>r("placeholderOpacity")?{"&::placeholder":re({color:i,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:W(i)}}},{values:X(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:t,theme:e})=>{t({"placeholder-opacity":r=>({["&::placeholder"]:{"--tw-placeholder-opacity":r}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:t,theme:e})=>{t({caret:r=>({"caret-color":W(r)})},{values:X(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:t,theme:e})=>{t({accent:r=>({"accent-color":W(r)})},{values:X(e("accentColor")),type:["color","any"]})},opacity:E("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:t})=>{t({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:t})=>{t({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"}})},boxShadow:(()=>{let t=Ne("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:r,addDefaults:i,theme:n}){i(" box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),r({shadow:s=>{s=t(s);let o=Tn(s);for(let a of o)!a.valid||(a.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":s==="none"?"0 0 #0000":s,"--tw-shadow-colored":s==="none"?"0 0 #0000":Td(o),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:t,theme:e})=>{t({shadow:r=>({"--tw-shadow-color":W(r),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:X(e("boxShadowColor")),type:["color"]})},outlineStyle:({addUtilities:t})=>{t({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"},".outline-hidden":{"outline-style":"hidden"}})},outlineWidth:E("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:E("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage"]}),outlineColor:({matchUtilities:t,theme:e})=>{t({outline:r=>({"outline-color":W(r)})},{values:X(e("outlineColor")),type:["color"]})},ringWidth:({matchUtilities:t,addDefaults:e,addUtilities:r,theme:i})=>{let n=i("ringOpacity.DEFAULT","0.5"),s=Lt(i("ringColor.DEFAULT"),n,`rgb(147 197 253 / ${n})`);e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":i("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":i("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":s,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({ring:o=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${o} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:i("ringWidth"),type:"length"}),r({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:t,theme:e})=>{t({ring:r=>re({color:r,property:"--tw-ring-color",variable:"--tw-ring-opacity"})},{values:Object.fromEntries(Object.entries(X(e("ringColor"))).filter(([r])=>r!=="DEFAULT")),type:"color"})},ringOpacity:E("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!0}),ringOffsetWidth:E("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:t,theme:e})=>{t({"ring-offset":r=>({"--tw-ring-offset-color":W(r)})},{values:X(e("ringOffsetColor")),type:"color"})},blur:({matchUtilities:t,theme:e})=>{t({blur:r=>({"--tw-blur":`blur(${r})`,"@defaults filter":{},filter:Ae})},{values:e("blur")})},brightness:({matchUtilities:t,theme:e})=>{t({brightness:r=>({"--tw-brightness":`brightness(${r})`,"@defaults filter":{},filter:Ae})},{values:e("brightness")})},contrast:({matchUtilities:t,theme:e})=>{t({contrast:r=>({"--tw-contrast":`contrast(${r})`,"@defaults filter":{},filter:Ae})},{values:e("contrast")})},dropShadow:({matchUtilities:t,theme:e})=>{t({"drop-shadow":r=>({"--tw-drop-shadow":Array.isArray(r)?r.map(i=>`drop-shadow(${i})`).join(" "):`drop-shadow(${r})`,"@defaults filter":{},filter:Ae})},{values:e("dropShadow")})},grayscale:({matchUtilities:t,theme:e})=>{t({grayscale:r=>({"--tw-grayscale":`grayscale(${r})`,"@defaults filter":{},filter:Ae})},{values:e("grayscale")})},hueRotate:({matchUtilities:t,theme:e})=>{t({"hue-rotate":r=>({"--tw-hue-rotate":`hue-rotate(${r})`,"@defaults filter":{},filter:Ae})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:t,theme:e})=>{t({invert:r=>({"--tw-invert":`invert(${r})`,"@defaults filter":{},filter:Ae})},{values:e("invert")})},saturate:({matchUtilities:t,theme:e})=>{t({saturate:r=>({"--tw-saturate":`saturate(${r})`,"@defaults filter":{},filter:Ae})},{values:e("saturate")})},sepia:({matchUtilities:t,theme:e})=>{t({sepia:r=>({"--tw-sepia":`sepia(${r})`,"@defaults filter":{},filter:Ae})},{values:e("sepia")})},filter:({addDefaults:t,addUtilities:e})=>{t("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:Ae},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:t,theme:e})=>{t({"backdrop-blur":r=>({"--tw-backdrop-blur":`blur(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:t,theme:e})=>{t({"backdrop-brightness":r=>({"--tw-backdrop-brightness":`brightness(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:t,theme:e})=>{t({"backdrop-contrast":r=>({"--tw-backdrop-contrast":`contrast(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:t,theme:e})=>{t({"backdrop-grayscale":r=>({"--tw-backdrop-grayscale":`grayscale(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:t,theme:e})=>{t({"backdrop-hue-rotate":r=>({"--tw-backdrop-hue-rotate":`hue-rotate(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:t,theme:e})=>{t({"backdrop-invert":r=>({"--tw-backdrop-invert":`invert(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:t,theme:e})=>{t({"backdrop-opacity":r=>({"--tw-backdrop-opacity":`opacity(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:t,theme:e})=>{t({"backdrop-saturate":r=>({"--tw-backdrop-saturate":`saturate(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:t,theme:e})=>{t({"backdrop-sepia":r=>({"--tw-backdrop-sepia":`sepia(${r})`,"@defaults backdrop-filter":{},"backdrop-filter":Oe})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:t,addUtilities:e})=>{t("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"backdrop-filter":Oe},".backdrop-filter-none":{"backdrop-filter":"none"}})},transitionProperty:({matchUtilities:t,theme:e})=>{let r=e("transitionTimingFunction.DEFAULT"),i=e("transitionDuration.DEFAULT");t({transition:n=>({"transition-property":n,...n==="none"?{}:{"transition-timing-function":r,"transition-duration":i}})},{values:e("transitionProperty")})},transitionDelay:E("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:E("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:E("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:E("willChange",[["will-change",["will-change"]]]),content:E("content",[["content",["--tw-content",["content","var(--tw-content)"]]]])}});function Ft(t){let e=[],r=!1;for(let i=0;i<t.length;i++){let n=t[i];if(n===":"&&!r&&e.length===0)return!1;if(b3.has(n)&&t[i-1]!=="\\"&&(r=!r),!r&&t[i-1]!=="\\"){if(eh.has(n))e.push(n);else if(th.has(n)){let s=th.get(n);if(e.length<=0||e.pop()!==s)return!1}}}return!(e.length>0)}var eh,th,b3,pa=C(()=>{l();eh=new Map([["{","}"],["[","]"],["(",")"]]),th=new Map(Array.from(eh.entries()).map(([t,e])=>[e,t])),b3=new Set(['"',"'","`"])});function nh(t,...e){for(let r of e){let i=oh(r,Pn);if(i!==null&&oh(t,Pn,i)!==null){let s=`${Pn}(${i})`,o=r.indexOf(s),a=r.slice(o+s.length).split(" ")[0];t=t.replace(s,s+a);continue}t=r.replace(ih,t)}return t}function sh(t,{selector:e,candidate:r,context:i}){let n=i?.tailwindConfig?.separator??":",s=new RegExp(`\\${n}(?![^[]*\\])`),o=r.split(s).pop();return i?.tailwindConfig?.prefix&&(t=zt(i.tailwindConfig.prefix,t)),t=t.replace(ih,`.${ye(r)}`),e=(0,da.default)(a=>a.walkClasses(u=>(u.raws&&u.value.includes(o)&&(u.raws.value=ye((0,rh.default)(u.raws.value))),u))).processSync(e),e=e.replace(`.${ye(o)}`,t),(0,da.default)(a=>a.map(u=>{u.walkPseudos(d=>(w3.has(d.value)&&d.replaceWith(d.nodes),d));function c(d){let g=[];for(let y of d.nodes)ha(y)&&(g.push(y),d.removeChild(y)),y?.nodes&&g.push(...c(y));return g}let f=c(u);return f.length>0&&u.nodes.push(f.sort(k3)),u})).processSync(e)}function k3(t,e){return t.type!=="pseudo"&&e.type!=="pseudo"||t.type==="combinator"^e.type==="combinator"?0:t.type==="pseudo"^e.type==="pseudo"?(t.type==="pseudo")-(e.type==="pseudo"):ha(t)-ha(e)}function ha(t){return t.type!=="pseudo"||v3.includes(t.value)?!1:t.value.startsWith("::")||x3.includes(t.value)}function oh(t,e,r){let i=t.indexOf(r?`${e}(${r})`:e);if(i===-1)return null;i+=e.length+1;let n="",s=0;for(let o of t.slice(i))if(o!=="("&&o!==")")n+=o;else if(o==="(")n+=o,s++;else if(o===")"){if(--s<0)break;n+=o}return n}var da,rh,Pn,ih,w3,x3,v3,ah=C(()=>{l();da=G(Te()),rh=G(ln());Hr();vn();Pn=":merge",ih="&",w3=new Set([Pn]);x3=[":before",":after",":first-line",":first-letter"],v3=["::file-selector-button"]});function C3(t){return S3.transformSync(t)}function*T3(t){let e=1/0;for(;e>=0;){let r;if(e===1/0&&t.endsWith("]")){let s=t.indexOf("[");r=["-","/"].includes(t[s-1])?s-1:-1}else r=t.lastIndexOf("-",e);if(r<0)break;let i=t.slice(0,r),n=t.slice(r+1);yield[i,n],e=r-1}}function _3(t,e){if(t.length===0||e.tailwindConfig.prefix==="")return t;for(let r of t){let[i]=r;if(i.options.respectPrefix){let n=$.root({nodes:[r[1].clone()]}),s=r[1].raws.tailwind.classCandidate;n.walkRules(o=>{let a=s.startsWith("-");o.selector=zt(e.tailwindConfig.prefix,o.selector,a)}),r[1]=n.nodes[0]}}return t}function A3(t){if(t.length===0)return t;let e=[];for(let[r,i]of t){let n=$.root({nodes:[i.clone()]});n.walkRules(s=>{s.selector=Md(s.selector,o=>`!${o}`),s.walkDecls(o=>o.important=!0)}),e.push([{...r,important:!0},n.nodes[0]])}return e}function O3(t,e,r){if(e.length===0)return e;if(r.variantMap.has(t)){let i=r.variantMap.get(t),n=[];for(let[s,o]of e){if(s.layer==="user")continue;let a=$.root({nodes:[o.clone()]});for(let[u,c]of i){let y=function(){g.size>0||f.walkRules(k=>g.set(k,k.selector))},b=function(k){return y(),f.each(_=>{_.type==="rule"&&(_.selectors=_.selectors.map(D=>k({get className(){return C3(D)},selector:D})))}),f},f=a.clone(),d=[],g=new Map,S=c({get container(){return y(),f},separator:r.tailwindConfig.separator,modifySelectors:b,wrap(k){let _=f.nodes;f.removeAll(),k.append(_),f.append(k)},format(k){d.push(k)}});if(typeof S=="string"&&d.push(S),S===null)continue;g.size>0&&f.walkRules(k=>{if(!g.has(k))return;let _=g.get(k);if(_===k.selector)return;let D=k.selector,B=(0,ma.default)(z=>{z.walkClasses(J=>{J.value=`${t}${r.tailwindConfig.separator}${J.value}`})}).processSync(_);d.push(D.replace(B,"&")),k.selector=_}),f.nodes[0].raws.tailwind={...f.nodes[0].raws.tailwind,parentLayer:s.layer};let v=[{...s,sort:u|s.sort,collectedFormats:(s.collectedFormats??[]).concat(d)},f.nodes[0]];n.push(v)}}return n}return[]}function ga(t,e,r={}){return!Ie(t)&&!Array.isArray(t)?[[t],r]:Array.isArray(t)?ga(t[0],e,t[1]):(e.has(t)||e.set(t,It(t)),[e.get(t),r])}function P3(t){return E3.test(t)}function D3(t){if(!t.includes("://"))return!1;try{let e=new URL(t);return e.scheme!==""&&e.host!==""}catch(e){return!1}}function q3(t,e){if(D3(`${t}:${e}`))return!1;try{return $.parse(`a{${t}:${e}}`).toResult(),!0}catch(r){return!1}}function B3(t,e){let[,r,i]=t.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(i===void 0||!P3(r)||!Ft(i))return null;let n=be(i);return q3(r,n)?[[{sort:e.arbitraryPropertiesSort,layer:"utilities"},()=>({[Jo(t)]:{[r]:n}})]]:null}function*R3(t,e){e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"DEFAULT"]),yield*function*(o){o!==null&&(yield[o,"DEFAULT"])}(B3(t,e));let r=t,i=!1,n=e.tailwindConfig.prefix,s=n.length;r[s]==="-"&&(i=!0,r=n+r.slice(s+1)),i&&e.candidateRuleMap.has(r)&&(yield[e.candidateRuleMap.get(r),"-DEFAULT"]);for(let[o,a]of T3(r))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),i?`-${a}`:a])}function I3(t,e){return t===ze?[ze]:t.split(new RegExp(`\\${e}(?![^[]*\\])`,"g"))}function*z3(t,e){for(let r of t)r[1].raws.tailwind={...r[1].raws.tailwind,classCandidate:e},yield r}function*ya(t,e){let r=e.tailwindConfig.separator,[i,...n]=I3(t,r).reverse(),s=!1;i.startsWith("!")&&(s=!0,i=i.slice(1));for(let o of R3(i,e)){let a=[],u=new Map,[c,f]=o,d=c.length===1;for(let[g,y]of c){let b=[];if(typeof y=="function")for(let S of[].concat(y(f,{isOnlyPlugin:d}))){let[v,k]=ga(S,e.postCssNodeCache);for(let _ of v)b.push([{...g,options:{...g.options,...k}},_])}else if(f==="DEFAULT"||f==="-DEFAULT"){let S=y,[v,k]=ga(S,e.postCssNodeCache);for(let _ of v)b.push([{...g,options:{...g.options,...k}},_])}b.length>0&&(u.set(b,g.options?.type),a.push(b))}if(L3(f)&&a.length>1){let g=a.map(b=>new Set([...u.get(b)??[]]));for(let b of g)for(let S of b){let v=!1;for(let k of g)b!==k&&k.has(S)&&(k.delete(S),v=!0);v&&b.delete(S)}let y=[];for(let[b,S]of g.entries())for(let v of S){let k=a[b].map(([,_])=>_).flat().map(_=>_.toString().split(`
`).slice(1,-1).map(D=>D.trim()).map(D=>` ${D}`).join(`
`)).join(`
`);y.push(` Use \`${t.replace("[",`[${v}:`)}\` for \`${k.trim()}\``);break}Q.warn([`The class \`${t}\` is ambiguous and matches multiple utilities.`,...y,`If this is content and not a class, replace it with \`${t.replace("[","&lsqb;").replace("]","&rsqb;")}\` to silence this warning.`]);continue}a=a.flat(),a=Array.from(z3(a,i)),a=_3(a,e),s&&(a=A3(a,e));for(let g of n)a=O3(g,a,e);for(let g of a){if(g[1].raws.tailwind={...g[1].raws.tailwind,candidate:t},g[0].collectedFormats){let y=nh("&",...g[0].collectedFormats),b=$.root({nodes:[g[1].clone()]});b.walkRules(S=>{ba(S)||(S.selector=sh(y,{selector:S.selector,candidate:t,context:e}))}),g[1]=b.nodes[0]}yield g}}}function ba(t){return t.parent&&t.parent.type==="atrule"&&t.parent.name==="keyframes"}function Dn(t,e){let r=[];for(let n of t){if(e.notClassCache.has(n))continue;if(e.classCache.has(n)){r.push(e.classCache.get(n));continue}let s=Array.from(ya(n,e));if(s.length===0){e.notClassCache.add(n);continue}e.classCache.set(n,s),r.push(s)}let i=(n=>{if(n===!0)return s=>{s.walkDecls(o=>{o.parent.type==="rule"&&!ba(o.parent)&&(o.important=!0)})};if(typeof n=="string")return s=>{s.selectors=s.selectors.map(o=>`${n} ${o}`)}})(e.tailwindConfig.important);return r.flat(1).map(([{sort:n,layer:s,options:o},a])=>{if(o.respectImportant&&i){let u=$.root({nodes:[a.clone()]});u.walkRules(c=>{ba(c)||i(c)}),a=u.nodes[0]}return[n|e.layerOrder[s],a]})}function L3(t){return t.startsWith("[")&&t.endsWith("]")}var ma,S3,E3,qn=C(()=>{l();He();ma=G(Te());Qo();ur();vn();fa();Re();ct();ah();Ko();la();pa();S3=(0,ma.default)(t=>t.first.filter(({type:e})=>e==="class").pop().value);E3=/^[a-z_-]/});function fh(t,e){let r=t.tailwindConfig.prefix;return typeof r=="function"?r(e):r+e}function ch(t){if(t.includes("{")){if(!F3(t))throw new Error("Your { and } are unbalanced.");return t.split(/{(.*)}/gim).flatMap(e=>ch(e)).filter(Boolean)}return[t.trim()]}function F3(t){let e=0;for(let r of t)if(r==="{")e++;else if(r==="}"&&--e<0)return!1;return e===0}function M3(t,e,{before:r=[]}={}){if(r=[].concat(r),r.length<=0){t.push(e);return}let i=t.length-1;for(let n of r){let s=t.indexOf(n);s!==-1&&(i=Math.min(i,s))}t.splice(i,0,e)}function ph(t){return Array.isArray(t)?t.flatMap(e=>!Array.isArray(e)&&!Ie(e)?e:It(e)):ph([t])}function dh(t){return(0,uh.default)(r=>{let i=[];return r.walkClasses(n=>{i.push(n.value)}),i}).transformSync(t)}function N3(t,e={containsNonOnDemandable:!1},r=0){let i=[];if(t.type==="rule")for(let n of t.selectors){let s=dh(n);s.length===0&&(e.containsNonOnDemandable=!0);for(let o of s)i.push(o)}else t.type==="atrule"&&t.walkRules(n=>{for(let s of n.selectors.flatMap(o=>dh(o,e,r+1)))i.push(s)});return r===0?[e.containsNonOnDemandable||i.length===0,i]:i}function Kr(t){return ph(t).flatMap(e=>{let r=new Map,[i,n]=N3(e);return i&&n.unshift(ze),n.map(s=>(r.has(e)||r.set(e,e),[s,r.get(e)]))})}function $3(t,e,{variantList:r,variantMap:i,offsets:n,classList:s}){function o(c,f){return c?(0,lh.default)(t,c,f):t}function a(c){return zt(t.prefix,c)}function u(c,f){return c===ze?ze:f.respectPrefix?e.tailwindConfig.prefix+c:c}return{addVariant(c,f,d={}){f=[].concat(f).map(g=>{if(typeof g!="string")return({modifySelectors:b,container:S,separator:v})=>g({modifySelectors:b,container:S,separator:v});g=g.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim();let y=ch(g).map(b=>{if(!b.startsWith("@"))return({format:k})=>k(b);let[,S,v]=/@(.*?) (.*)/g.exec(b);return({wrap:k})=>k($.atRule({name:S,params:v}))}).reverse();return b=>{for(let S of y)S(b)}}),M3(r,c,d),i.set(c,f)},postcss:$,prefix:a,e:ye,config:o,theme(c,f){let[d,...g]=ft(c),y=o(["theme",d,...g],f);return Ne(d)(y)},corePlugins:c=>Array.isArray(t.corePlugins)?t.corePlugins.includes(c):o(["corePlugins",c],!0),variants:()=>[],addUserCss(c){for(let[f,d]of Kr(c)){let g=n.user++;e.candidateRuleMap.has(f)||e.candidateRuleMap.set(f,[]),e.candidateRuleMap.get(f).push([{sort:g,layer:"user"},d])}},addBase(c){for(let[f,d]of Kr(c)){let g=u(f,{}),y=n.base++;e.candidateRuleMap.has(g)||e.candidateRuleMap.set(g,[]),e.candidateRuleMap.get(g).push([{sort:y,layer:"base"},d])}},addDefaults(c,f){let d={[`@defaults ${c}`]:f};for(let[g,y]of Kr(d)){let b=u(g,{});e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.base++,layer:"defaults"},y])}},addComponents(c,f){f=Object.assign({},{respectPrefix:!0,respectImportant:!1},Array.isArray(f)?{}:f);for(let[g,y]of Kr(c)){let b=u(g,f);s.add(b),e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.components++,layer:"components",options:f},y])}},addUtilities(c,f){f=Object.assign({},{respectPrefix:!0,respectImportant:!0},Array.isArray(f)?{}:f);for(let[g,y]of Kr(c)){let b=u(g,f);s.add(b),e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.utilities++,layer:"utilities",options:f},y])}},matchUtilities:function(c,f){f={...{respectPrefix:!0,respectImportant:!0},...f};let g=n.utilities++;for(let y in c){let v=function(_,{isOnlyPlugin:D}){let{type:B="any"}=f;B=[].concat(B);let[z,J]=ua(B,_,f,t);return z===void 0?[]:!B.includes(J)&&!D?[]:Ft(z)?[].concat(S(z)).filter(Boolean).map(K=>({[Sn(y,_)]:K})):[]},b=u(y,f),S=c[y];s.add([b,f]);let k=[{sort:g,layer:"utilities",options:f},v];e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push(k)}},matchComponents:function(c,f){f={...{respectPrefix:!0,respectImportant:!1},...f};let g=n.components++;for(let y in c){let v=function(_,{isOnlyPlugin:D}){let{type:B="any"}=f;B=[].concat(B);let[z,J]=ua(B,_,f,t);if(z===void 0)return[];if(!B.includes(J))if(D)Q.warn([`Unnecessary typehint \`${J}\` in \`${y}-${_}\`.`,`You can safely update it to \`${y}-${_.replace(J+":","")}\`.`]);else return[];return Ft(z)?[].concat(S(z)).filter(Boolean).map(K=>({[Sn(y,_)]:K})):[]},b=u(y,f),S=c[y];s.add([b,f]);let k=[{sort:g,layer:"components",options:f},v];e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push(k)}}}}function Bn(t){return wa.has(t)||wa.set(t,new Map),wa.get(t)}function hh(t,e){let r=!1;for(let i of t){if(!i)continue;let n=Ss.parse(i),s=n.hash?n.href.replace(n.hash,""):n.href;s=n.search?s.replace(n.search,""):s;let o=ve.statSync(decodeURIComponent(s),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(i)||o>e.get(i))&&(r=!0),e.set(i,o))}return r}function mh(t){t.walkAtRules(e=>{["responsive","variants"].includes(e.name)&&(mh(e),e.before(e.nodes),e.remove())})}function j3(t){let e=[];return t.each(r=>{r.type==="atrule"&&["responsive","variants"].includes(r.name)&&(r.name="layer",r.params="utilities")}),t.walkAtRules("layer",r=>{if(mh(r),r.params==="base"){for(let i of r.nodes)e.push(function({addBase:n}){n(i,{respectPrefix:!1})});r.remove()}else if(r.params==="components"){for(let i of r.nodes)e.push(function({addComponents:n}){n(i,{respectPrefix:!1})});r.remove()}else if(r.params==="utilities"){for(let i of r.nodes)e.push(function({addUtilities:n}){n(i,{respectPrefix:!1})});r.remove()}}),t.walkRules(r=>{e.push(function({addUserCss:i}){i(r,{respectPrefix:!1})})}),e}function U3(t,e){let r=Object.entries({..._e,...Xd}).map(([a,u])=>t.tailwindConfig.corePlugins.includes(a)?u:null).filter(Boolean),i=t.tailwindConfig.plugins.map(a=>(a.__isOptionsFunction&&(a=a()),typeof a=="function"?a:a.handler)),n=j3(e),s=[_e.pseudoElementVariants,_e.pseudoClassVariants],o=[_e.directionVariants,_e.reducedMotionVariants,_e.darkVariants,_e.printVariant,_e.screenVariants,_e.orientationVariants];return[...r,...s,...i,...o,...n]}function W3(t,e){let r=[],i=new Map,n={defaults:0n,base:0n,components:0n,utilities:0n,user:0n},s=new Set,o=$3(e.tailwindConfig,e,{variantList:r,variantMap:i,offsets:n,classList:s});for(let g of t)if(Array.isArray(g))for(let y of g)y(o);else g?.(o);let a=(g=>g.reduce((y,b)=>b>y?b:y))([n.base,n.defaults,n.components,n.utilities,n.user]),u=BigInt(a.toString(2).length);e.arbitraryPropertiesSort=(1n<<u<<0n)-1n,e.layerOrder={defaults:1n<<u<<0n,base:1n<<u<<1n,components:1n<<u<<2n,utilities:1n<<u<<3n,user:1n<<u<<4n},u+=5n;let c=0;e.variantOrder=new Map(r.map((g,y)=>{let b=i.get(g).length,S=1n<<BigInt(y+c)<<u;return c+=b-1,[g,S]}).sort(([,g],[,y])=>gt(g-y))),e.minimumScreen=[...e.variantOrder.values()].shift();for(let[g,y]of i.entries()){let b=e.variantOrder.get(g);e.variantMap.set(g,y.map((S,v)=>[b<<BigInt(v),S]))}let f=(e.tailwindConfig.safelist??[]).filter(Boolean);if(f.length>0){let g=[];for(let y of f){if(typeof y=="string"){e.changedContent.push({content:y,extension:"html"});continue}if(y instanceof RegExp){Q.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]);continue}g.push(y)}if(g.length>0){let y=new Map,b=e.tailwindConfig.prefix.length;for(let S of s){let v=Array.isArray(S)?(()=>{let[k,_]=S,B=Object.keys(_?.values??{}).map(z=>Yr(k,z));return _?.supportsNegativeValues&&(B=[...B,...B.map(z=>"-"+z)],B=[...B,...B.map(z=>z.slice(0,b)+"-"+z.slice(b))]),B})():[S];for(let k of v)for(let{pattern:_,variants:D=[]}of g)if(_.lastIndex=0,y.has(_)||y.set(_,0),!!_.test(k)){y.set(_,y.get(_)+1),e.changedContent.push({content:k,extension:"html"});for(let B of D)e.changedContent.push({content:B+e.tailwindConfig.separator+k,extension:"html"})}}for(let[S,v]of y.entries())v===0&&Q.warn([`The safelist pattern \`${S}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let d=new Set([fh(e,"group"),fh(e,"peer")]);e.getClassOrder=function(y){let b=new Map;for(let[S,v]of Dn(new Set(y),e))b.has(v.raws.tailwind.candidate)||b.set(v.raws.tailwind.candidate,S);return y.map(S=>{let v=b.get(S)??null;return v===null&&d.has(S)&&(v=e.layerOrder.components),[S,v]})},e.getClassList=function(){let y=[];for(let b of s)if(Array.isArray(b)){let[S,v]=b,k=[];for(let[_,D]of Object.entries(v?.values??{}))y.push(Yr(S,_)),v?.supportsNegativeValues&&lt(D)&&k.push(Yr(S,`-${_}`));y.push(...k)}else y.push(b);return y}}function xa(t,e=[],r=$.root()){let i={disposables:[],ruleCache:new Set,classCache:new Map,applyClassCache:new Map,notClassCache:new Set,postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:t,changedContent:e,variantMap:new Map,stylesheetCache:null},n=U3(i,r);return W3(n,i),i}function gh(t,e,r,i,n,s){let o=e.opts.from,a=i!==null;me.DEBUG&&console.log("Source path:",o);let u;if(a&&Mt.has(o))u=Mt.get(o);else if(Xr.has(n)){let f=Xr.get(n);Je.get(f).add(o),Mt.set(o,f),u=f}if(u&&!hh([...s],Bn(u)))return[u,!1];if(Mt.has(o)){let f=Mt.get(o);if(Je.has(f)&&(Je.get(f).delete(o),Je.get(f).size===0)){Je.delete(f);for(let[d,g]of Xr)g===f&&Xr.delete(d);for(let d of f.disposables.splice(0))d(f)}}me.DEBUG&&console.log("Setting up new context...");let c=xa(r,[],t);return hh([...s],Bn(c)),Xr.set(n,c),Mt.set(o,c),Je.has(c)||Je.set(c,new Set),Je.get(c).add(o),[c,!0]}var lh,uh,wa,Mt,Xr,Je,va=C(()=>{l();Ct();Cs();He();lh=G(Gs()),uh=G(Te());Vr();Qo();vn();ur();Hr();Ko();fa();An();Zd();ct();ct();Ci();Re();ki();pa();qn();wa=new WeakMap;Mt=wf,Xr=xf,Je=Bi});var yh,bh=C(()=>{l();yh=()=>!1});var wh,xh=C(()=>{l();wh=()=>""});function V3(t){let e=t,r=wh(t);return r!=="."&&(e=t.substr(r.length),e.charAt(0)==="/"&&(e=e.substr(1))),e.substr(0,2)==="./"&&(e=e.substr(2)),e.charAt(0)==="/"&&(e=e.substr(1)),{base:r,glob:e}}function ka(t){if(t.startsWith("!"))return null;let e;if(yh(t)){let{base:r,glob:i}=V3(t);e={type:"dir-dependency",dir:se.resolve(r),glob:i}}else e={type:"dependency",file:se.resolve(t)};return e.type==="dir-dependency"&&h.env.ROLLUP_WATCH==="true"&&(e={type:"dependency",file:e.dir}),e}var vh=C(()=>{l();bh();xh();at()});function G3(t,e){if(Sa.has(t))return Sa.get(t);let r=e.content.files.filter(i=>typeof i=="string").map(i=>$u(i));return Sa.set(t,r).get(t)}function H3(t){let e=ks(t);if(e!==null){let[i,n,s,o]=Sh.get(e)||[],a=ms(e).map(g=>g.file),u=!1,c=new Map;for(let g of a){let y=ve.statSync(g).mtimeMs;c.set(g,y),(!o||!o.has(g)||y>o.get(g))&&(u=!0)}if(!u)return[i,e,n,s];for(let g of a)delete ps.cache[g];let f=Di(ps(e)),d=xi(f);return Sh.set(e,[f,d,a,c]),[f,e,d,a]}let r=Di(t.config===void 0?t:t.config);return[r,null,xi(r),[]]}function Y3(t,e,r){let i=t.tailwindConfig.content.files.filter(n=>typeof n.raw=="string").map(({raw:n,extension:s="html"})=>({content:n,extension:s}));for(let n of Q3(e,r)){let s=ve.readFileSync(n,"utf8"),o=se.extname(n).slice(1);i.push({content:s,extension:o})}return i}function Q3(t,e){let r=new Set;me.DEBUG&&console.time("Finding changed files");let i=Lu.sync(t);for(let n of i){let s=e.has(n)?e.get(n):-1/0,o=ve.statSync(n).mtimeMs;o>s&&(r.add(n),e.set(n,o))}return me.DEBUG&&console.timeEnd("Finding changed files"),r}function Ca(t){return({tailwindDirectives:e,registerDependency:r,applyDirectives:i})=>(n,s)=>{let[o,a,u,c]=H3(t),f=new Set(c);if(e.size>0||i.size>0){f.add(s.opts.from);for(let y of s.messages)y.type==="dependency"&&f.add(y.file)}let[d]=gh(n,s,o,a,u,f),g=G3(d,o);if(e.size>0||i.size>0){let y=Bn(d);for(let b of g){let S=ka(b);S&&r(S)}for(let b of Y3(d,g,y))d.changedContent.push(b)}for(let y of c)r({type:"dependency",file:y});return d}}var kh,Sh,Sa,Ch=C(()=>{l();Ct();at();Fu();kh=G(ds());ju();Vu();Hu();gf();bf();ct();va();vh();Sh=new kh.default({maxSize:100}),Sa=new WeakMap});function Ta(t){let e=new Set,r=new Set,i=new Set;if(t.walkAtRules(n=>{n.name==="apply"&&i.add(n),n.name==="import"&&(n.params==='"tailwindcss/base"'||n.params==="'tailwindcss/base'"?(n.name="tailwind",n.params="base"):n.params==='"tailwindcss/components"'||n.params==="'tailwindcss/components'"?(n.name="tailwind",n.params="components"):n.params==='"tailwindcss/utilities"'||n.params==="'tailwindcss/utilities'"?(n.name="tailwind",n.params="utilities"):(n.params==='"tailwindcss/screens"'||n.params==="'tailwindcss/screens'"||n.params==='"tailwindcss/variants"'||n.params==="'tailwindcss/variants'")&&(n.name="tailwind",n.params="variants")),n.name==="tailwind"&&(n.params==="screens"&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&Q.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),r.add(n))}),!e.has("base")||!e.has("components")||!e.has("utilities")){for(let n of r)if(n.name==="layer"&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if(n.name==="responsive"){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if(n.name==="variants"&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.")}return{tailwindDirectives:e,applyDirectives:i}}var Th=C(()=>{l();Re()});function bt(t,e){return t.map(r=>{let i=r.clone();return e!==void 0&&(i.source=e),i})}var _h=C(()=>{l()});function Ah(t){let e=t.matchAll(K3),r=t.match(X3)||[];return[...e,...r].flat().filter(n=>n!==void 0)}var J3,K3,X3,Oh=C(()=>{l();J3=[/(?:\['([^'\s]+[^<>"'`\s:\\])')/.source,/(?:\["([^"\s]+[^<>"'`\s:\\])")/.source,/(?:\[`([^`\s]+[^<>"'`\s:\\])`)/.source,/([^<>"'`\s]*\[\w*'[^"`\s]*'?\])/.source,/([^<>"'`\s]*\[\w*"[^'`\s]*"?\])/.source,/([^<>"'`\s]*\[\w*\('[^"'`\s]*'\)\])/.source,/([^<>"'`\s]*\[\w*\("[^"'`\s]*"\)\])/.source,/([^<>"'`\s]*\[\w*\('[^"`\s]*'\)\])/.source,/([^<>"'`\s]*\[\w*\("[^'`\s]*"\)\])/.source,/([^<>"'`\s]*\[[^<>"'`\s]*\('[^"`\s]*'\)+\])/.source,/([^<>"'`\s]*\[[^<>"'`\s]*\("[^'`\s]*"\)+\])/.source,/([^<>"'`\s]*\['[^"'`\s]*'\])/.source,/([^<>"'`\s]*\["[^"'`\s]*"\])/.source,/([^<>"'`\s]*\[[^<>"'`\s]*:[^\]\s]*\])/.source,/([^<>"'`\s]*\[[^<>"'`\s]*:'[^"'`\s]*'\])/.source,/([^<>"'`\s]*\[[^<>"'`\s]*:"[^"'`\s]*"\])/.source,/([^<>"'`\s]*\[[^"'`\s]+\][^<>"'`\s]*)/.source,/([^"'`\s]*[^<>"'`\s:\\])/.source,/([^<>"'`\s]*[^"'`\s:\\])/.source].join("|"),K3=new RegExp(J3,"g"),X3=/[^<>"'`\s.(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g});function Z3(t,e){let r=t.content.extract;return r[e]||r.DEFAULT||Ph[e]||Ph.DEFAULT}function eS(t,e){let r=t.content.transform;return r[e]||r.DEFAULT||Dh[e]||Dh.DEFAULT}function tS(t,e,r,i){Zr.has(e)||Zr.set(e,new Eh.default({maxSize:25e3}));for(let n of t.split(`
`))if(n=n.trim(),!i.has(n))if(i.add(n),Zr.get(e).has(n))for(let s of Zr.get(e).get(n))r.add(s);else{let s=e(n).filter(a=>a!=="!*"),o=new Set(s);for(let a of o)r.add(a);Zr.get(e).set(n,o)}}function rS(t,e){let r=t.sort(([n],[s])=>gt(n-s)),i={base:new Set,defaults:new Set,components:new Set,utilities:new Set,variants:new Set,user:new Set};for(let[n,s]of r){if(n>=e.minimumScreen){i.variants.add(s);continue}if(n&e.layerOrder.base){i.base.add(s);continue}if(n&e.layerOrder.defaults){i.defaults.add(s);continue}if(n&e.layerOrder.components){i.components.add(s);continue}if(n&e.layerOrder.utilities){i.utilities.add(s);continue}if(n&e.layerOrder.user){i.user.add(s);continue}}return i}function _a(t){return e=>{let r={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules(b=>{b.name==="tailwind"&&Object.keys(r).includes(b.params)&&(r[b.params]=b)}),Object.values(r).every(b=>b===null))return e;let i=new Set([ze]),n=new Set;wt.DEBUG&&console.time("Reading changed files");for(let{content:b,extension:S}of t.changedContent){let v=eS(t.tailwindConfig,S),k=Z3(t.tailwindConfig,S);tS(v(b),k,i,n)}wt.DEBUG&&console.timeEnd("Reading changed files");let s=t.classCache.size;wt.DEBUG&&console.time("Generate rules");let o=Dn(i,t);if(wt.DEBUG&&console.timeEnd("Generate rules"),wt.DEBUG&&console.time("Build stylesheet"),t.stylesheetCache===null||t.classCache.size!==s){for(let b of o)t.ruleCache.add(b);t.stylesheetCache=rS([...t.ruleCache],t)}wt.DEBUG&&console.timeEnd("Build stylesheet");let{defaults:a,base:u,components:c,utilities:f,variants:d}=t.stylesheetCache;r.base&&(r.base.before(bt([...u,...a],r.base.source)),r.base.remove()),r.components&&(r.components.before(bt([...c],r.components.source)),r.components.remove()),r.utilities&&(r.utilities.before(bt([...f],r.utilities.source)),r.utilities.remove());let g=Array.from(d).filter(b=>{let S=b.raws.tailwind?.parentLayer;return S==="components"?r.components!==null:S==="utilities"?r.utilities!==null:!0});r.variants?(r.variants.before(bt(g,r.variants.source)),r.variants.remove()):g.length>0&&e.append(bt(g,e.source));let y=g.some(b=>b.raws.tailwind?.parentLayer==="utilities");r.utilities&&f.size===0&&!y&&Q.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),wt.DEBUG&&(console.log("Potential classes: ",i.size),console.log("Active contexts: ",Bi.size)),t.changedContent=[],e.walkAtRules("layer",b=>{Object.keys(r).includes(b.params)&&b.remove()})}}var Eh,wt,Ph,Dh,Zr,qh=C(()=>{l();Eh=G(ds());ct();qn();An();Re();_h();Oh();wt=me,Ph={DEFAULT:Ah},Dh={DEFAULT:t=>t,svelte:t=>t.replace(/(?:^|\s)class:/g," ")};Zr=new WeakMap});function Aa(t){let e=new Set;return $.root({nodes:[t.clone()]}).walkRules(i=>{(0,Bh.default)(n=>{n.walkClasses(s=>{e.add(s.value)})}).processSync(i.selector)}),Array.from(e)}function iS(t,e){let r=new Set;for(let i of t)r.add(i.split(e).pop());return Array.from(r)}function Rh(t,e){let r=t.tailwindConfig.prefix;return typeof r=="function"?r(e):r+e}function nS(t,e){for(let r of t){if(e.notClassCache.has(r)||e.applyClassCache.has(r))continue;if(e.classCache.has(r)){e.applyClassCache.set(r,e.classCache.get(r).map(([n,s])=>[n,s.clone()]));continue}let i=Array.from(ya(r,e));if(i.length===0){e.notClassCache.add(r);continue}e.applyClassCache.set(r,i)}return e.applyClassCache}function Ih(t){let e=t.split(/[\s\t\n]+/g);return e[e.length-1]==="!important"?[e.slice(0,-1),!0]:[e,!1]}function zh(t,e){let r=new Set,i=[];if(t.walkAtRules("apply",n=>{let[s]=Ih(n.params);for(let o of s)r.add(o);i.push(n)}),i.length>0){let s=function(a,u,c){let f=`.${ye(c)}`,d=u.split(/\s*\,(?![^(]*\))\s*/g);return a.split(/\s*\,(?![^(]*\))\s*/g).map(g=>{let y=[];for(let b of d){let S=b.replace(f,g);S!==b&&y.push(S)}return y.join(", ")}).join(", ")},n=nS(r,e),o=new Map;for(let a of i){let u=o.get(a.parent)||[];o.set(a.parent,u);let[c,f]=Ih(a.params);if(a.parent.type==="atrule"){if(a.parent.name==="screen"){let d=a.parent.params;throw a.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${c.map(g=>`${d}:${g}`).join(" ")} instead.`)}throw a.error(`@apply is not supported within nested at-rules like @${a.parent.name}. You can fix this by un-nesting @${a.parent.name}.`)}for(let d of c){if([Rh(e,"group"),Rh(e,"peer")].includes(d))throw a.error(`@apply should not be used with the '${d}' utility`);if(!n.has(d))throw a.error(`The \`${d}\` class does not exist. If \`${d}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let g=n.get(d);u.push([d,f,g])}}for(let[a,u]of o){let c=[];for(let[d,g,y]of u)for(let[b,S]of y){let v=Aa(a),k=Aa(S);if(k=k.concat(iS(k,e.tailwindConfig.separator)),v.some(z=>k.includes(z)))throw S.error(`You cannot \`@apply\` the \`${d}\` utility here because it creates a circular dependency.`);let D=$.root({nodes:[S.clone()]});(S.type!=="atrule"||S.type==="atrule"&&S.name!=="keyframes")&&D.walkRules(z=>{if(!Aa(z).some(J=>J===d)){z.remove();return}z.selector=s(a.selector,z.selector,d),z.walkDecls(J=>{J.important=b.important||g})}),c.push([{...b,sort:b.sort|e.layerOrder[b.layer]},D.nodes[0]])}let f=c.sort(([d],[g])=>gt(d.sort-g.sort)).map(d=>d[1]);a.after(f)}for(let a of i)a.parent.nodes.length>1?a.remove():a.parent.remove();zh(t,e)}}function Oa(t){return e=>{zh(e,t)}}var Bh,Lh=C(()=>{l();He();Bh=G(Te());qn();An();Hr()});var Fh=x((j9,Rn)=>{l();(function(){"use strict";function t(i,n,s){if(!i)return null;t.caseSensitive||(i=i.toLowerCase());var o=t.threshold===null?null:t.threshold*i.length,a=t.thresholdAbsolute,u;o!==null&&a!==null?u=Math.min(o,a):o!==null?u=o:a!==null?u=a:u=null;var c,f,d,g,y,b=n.length;for(y=0;y<b;y++)if(f=n[y],s&&(f=f[s]),!!f&&(t.caseSensitive?d=f:d=f.toLowerCase(),g=r(i,d,u),(u===null||g<u)&&(u=g,s&&t.returnWinningObject?c=n[y]:c=f,t.returnFirstMatch)))return c;return c||t.nullResultValue}t.threshold=.4,t.thresholdAbsolute=20,t.caseSensitive=!1,t.nullResultValue=null,t.returnWinningObject=null,t.returnFirstMatch=!1,typeof Rn!="undefined"&&Rn.exports?Rn.exports=t:window.didYouMean=t;var e=Math.pow(2,32)-1;function r(i,n,s){s=s||s===0?s:e;var o=i.length,a=n.length;if(o===0)return Math.min(s+1,a);if(a===0)return Math.min(s+1,o);if(Math.abs(o-a)>s)return s+1;var u=[],c,f,d,g,y;for(c=0;c<=a;c++)u[c]=[c];for(f=0;f<=o;f++)u[0][f]=f;for(c=1;c<=a;c++){for(d=e,g=1,c>s&&(g=c-s),y=a+1,y>s+c&&(y=s+c),f=1;f<=o;f++)f<g||f>y?u[c][f]=s+1:n.charAt(c-1)===i.charAt(f-1)?u[c][f]=u[c-1][f-1]:u[c][f]=Math.min(u[c-1][f-1]+1,Math.min(u[c][f-1]+1,u[c-1][f]+1)),u[c][f]<d&&(d=u[c][f]);if(d>s)return s+1}return u[a][o]}})()});var Nh=x((U9,Mh)=>{l();var Ea="(".charCodeAt(0),Pa=")".charCodeAt(0),In="'".charCodeAt(0),Da='"'.charCodeAt(0),qa="\\".charCodeAt(0),Nt="/".charCodeAt(0),Ba=",".charCodeAt(0),Ra=":".charCodeAt(0),zn="*".charCodeAt(0),sS="u".charCodeAt(0),oS="U".charCodeAt(0),aS="+".charCodeAt(0),lS=/^[a-f0-9?-]+$/i;Mh.exports=function(t){for(var e=[],r=t,i,n,s,o,a,u,c,f,d=0,g=r.charCodeAt(d),y=r.length,b=[{nodes:e}],S=0,v,k="",_="",D="";d<y;)if(g<=32){i=d;do i+=1,g=r.charCodeAt(i);while(g<=32);o=r.slice(d,i),s=e[e.length-1],g===Pa&&S?D=o:s&&s.type==="div"?(s.after=o,s.sourceEndIndex+=o.length):g===Ba||g===Ra||g===Nt&&r.charCodeAt(i+1)!==zn&&(!v||v&&v.type==="function"&&v.value!=="calc")?_=o:e.push({type:"space",sourceIndex:d,sourceEndIndex:i,value:o}),d=i}else if(g===In||g===Da){i=d,n=g===In?"'":'"',o={type:"string",sourceIndex:d,quote:n};do if(a=!1,i=r.indexOf(n,i+1),~i)for(u=i;r.charCodeAt(u-1)===qa;)u-=1,a=!a;else r+=n,i=r.length-1,o.unclosed=!0;while(a);o.value=r.slice(d+1,i),o.sourceEndIndex=o.unclosed?i:i+1,e.push(o),d=i+1,g=r.charCodeAt(d)}else if(g===Nt&&r.charCodeAt(d+1)===zn)i=r.indexOf("*/",d),o={type:"comment",sourceIndex:d,sourceEndIndex:i+2},i===-1&&(o.unclosed=!0,i=r.length,o.sourceEndIndex=i),o.value=r.slice(d+2,i),e.push(o),d=i+2,g=r.charCodeAt(d);else if((g===Nt||g===zn)&&v&&v.type==="function"&&v.value==="calc")o=r[d],e.push({type:"word",sourceIndex:d-_.length,sourceEndIndex:d+o.length,value:o}),d+=1,g=r.charCodeAt(d);else if(g===Nt||g===Ba||g===Ra)o=r[d],e.push({type:"div",sourceIndex:d-_.length,sourceEndIndex:d+o.length,value:o,before:_,after:""}),_="",d+=1,g=r.charCodeAt(d);else if(Ea===g){i=d;do i+=1,g=r.charCodeAt(i);while(g<=32);if(f=d,o={type:"function",sourceIndex:d-k.length,value:k,before:r.slice(f+1,i)},d=i,k==="url"&&g!==In&&g!==Da){i-=1;do if(a=!1,i=r.indexOf(")",i+1),~i)for(u=i;r.charCodeAt(u-1)===qa;)u-=1,a=!a;else r+=")",i=r.length-1,o.unclosed=!0;while(a);c=i;do c-=1,g=r.charCodeAt(c);while(g<=32);f<c?(d!==c+1?o.nodes=[{type:"word",sourceIndex:d,sourceEndIndex:c+1,value:r.slice(d,c+1)}]:o.nodes=[],o.unclosed&&c+1!==i?(o.after="",o.nodes.push({type:"space",sourceIndex:c+1,sourceEndIndex:i,value:r.slice(c+1,i)})):(o.after=r.slice(c+1,i),o.sourceEndIndex=i)):(o.after="",o.nodes=[]),d=i+1,o.sourceEndIndex=o.unclosed?i:d,g=r.charCodeAt(d),e.push(o)}else S+=1,o.after="",o.sourceEndIndex=d+1,e.push(o),b.push(o),e=o.nodes=[],v=o;k=""}else if(Pa===g&&S)d+=1,g=r.charCodeAt(d),v.after=D,v.sourceEndIndex+=D.length,D="",S-=1,b[b.length-1].sourceEndIndex=d,b.pop(),v=b[S],e=v.nodes;else{i=d;do g===qa&&(i+=1),i+=1,g=r.charCodeAt(i);while(i<y&&!(g<=32||g===In||g===Da||g===Ba||g===Ra||g===Nt||g===Ea||g===zn&&v&&v.type==="function"&&v.value==="calc"||g===Nt&&v.type==="function"&&v.value==="calc"||g===Pa&&S));o=r.slice(d,i),Ea===g?k=o:(sS===o.charCodeAt(0)||oS===o.charCodeAt(0))&&aS===o.charCodeAt(1)&&lS.test(o.slice(2))?e.push({type:"unicode-range",sourceIndex:d,sourceEndIndex:i,value:o}):e.push({type:"word",sourceIndex:d,sourceEndIndex:i,value:o}),d=i}for(d=b.length-1;d;d-=1)b[d].unclosed=!0,b[d].sourceEndIndex=r.length;return b[0].nodes}});var jh=x((W9,$h)=>{l();$h.exports=function t(e,r,i){var n,s,o,a;for(n=0,s=e.length;n<s;n+=1)o=e[n],i||(a=r(o,n,e)),a!==!1&&o.type==="function"&&Array.isArray(o.nodes)&&t(o.nodes,r,i),i&&r(o,n,e)}});var Gh=x((V9,Vh)=>{l();function Uh(t,e){var r=t.type,i=t.value,n,s;return e&&(s=e(t))!==void 0?s:r==="word"||r==="space"?i:r==="string"?(n=t.quote||"",n+i+(t.unclosed?"":n)):r==="comment"?"/*"+i+(t.unclosed?"":"*/"):r==="div"?(t.before||"")+i+(t.after||""):Array.isArray(t.nodes)?(n=Wh(t.nodes,e),r!=="function"?n:i+"("+(t.before||"")+n+(t.after||"")+(t.unclosed?"":")")):i}function Wh(t,e){var r,i;if(Array.isArray(t)){for(r="",i=t.length-1;~i;i-=1)r=Uh(t[i],e)+r;return r}return Uh(t,e)}Vh.exports=Wh});var Yh=x((G9,Hh)=>{l();var Ln="-".charCodeAt(0),Fn="+".charCodeAt(0),Ia=".".charCodeAt(0),uS="e".charCodeAt(0),fS="E".charCodeAt(0);function cS(t){var e=t.charCodeAt(0),r;if(e===Fn||e===Ln){if(r=t.charCodeAt(1),r>=48&&r<=57)return!0;var i=t.charCodeAt(2);return r===Ia&&i>=48&&i<=57}return e===Ia?(r=t.charCodeAt(1),r>=48&&r<=57):e>=48&&e<=57}Hh.exports=function(t){var e=0,r=t.length,i,n,s;if(r===0||!cS(t))return!1;for(i=t.charCodeAt(e),(i===Fn||i===Ln)&&e++;e<r&&(i=t.charCodeAt(e),!(i<48||i>57));)e+=1;if(i=t.charCodeAt(e),n=t.charCodeAt(e+1),i===Ia&&n>=48&&n<=57)for(e+=2;e<r&&(i=t.charCodeAt(e),!(i<48||i>57));)e+=1;if(i=t.charCodeAt(e),n=t.charCodeAt(e+1),s=t.charCodeAt(e+2),(i===uS||i===fS)&&(n>=48&&n<=57||(n===Fn||n===Ln)&&s>=48&&s<=57))for(e+=n===Fn||n===Ln?3:2;e<r&&(i=t.charCodeAt(e),!(i<48||i>57));)e+=1;return{number:t.slice(0,e),unit:t.slice(e)}}});var ei=x((H9,Kh)=>{l();var pS=Nh(),Qh=jh(),Jh=Gh();function Ke(t){return this instanceof Ke?(this.nodes=pS(t),this):new Ke(t)}Ke.prototype.toString=function(){return Array.isArray(this.nodes)?Jh(this.nodes):""};Ke.prototype.walk=function(t,e){return Qh(this.nodes,t,e),this};Ke.unit=Yh();Ke.walk=Qh;Ke.stringify=Jh;Kh.exports=Ke});function La(t){return typeof t=="object"&&t!==null}function dS(t,e){let r=ft(e);do if(r.pop(),(0,ti.default)(t,r)!==void 0)break;while(r.length);return r.length?r:void 0}function $t(t){return typeof t=="string"?t:t.reduce((e,r,i)=>r.includes(".")?`${e}[${r}]`:i===0?r:`${e}.${r}`,"")}function Zh(t){return t.map(e=>`'${e}'`).join(", ")}function em(t){return Zh(Object.keys(t))}function Fa(t,e,r){let i=Array.isArray(e)?$t(e):e.replace(/^['"]+/g,"").replace(/['"]+$/g,""),n=Array.isArray(e)?e:ft(i),s=(0,ti.default)(t.theme,n,r);if(s===void 0){let a=`'${i}' does not exist in your theme config.`,u=n.slice(0,-1),c=(0,ti.default)(t.theme,u);if(La(c)){let f=Object.keys(c).filter(g=>Fa(t,[...u,g]).isValid),d=(0,Xh.default)(n[n.length-1],f);d?a+=` Did you mean '${$t([...u,d])}'?`:f.length>0&&(a+=` '${$t(u)}' has the following valid keys: ${Zh(f)}`)}else{let f=dS(t.theme,i);if(f){let d=(0,ti.default)(t.theme,f);La(d)?a+=` '${$t(f)}' has the following keys: ${em(d)}`:a+=` '${$t(f)}' is not an object.`}else a+=` Your theme has the following top-level keys: ${em(t.theme)}`}return{isValid:!1,error:a}}if(!(typeof s=="string"||typeof s=="number"||typeof s=="function"||s instanceof String||s instanceof Number||Array.isArray(s))){let a=`'${i}' was found but does not resolve to a string.`;if(La(s)){let u=Object.keys(s).filter(c=>Fa(t,[...n,c]).isValid);u.length&&(a+=` Did you mean something like '${$t([...n,u[0]])}'?`)}return{isValid:!1,error:a}}let[o]=n;return{isValid:!0,value:Ne(o)(s)}}function hS(t,e,r){e=e.map(n=>tm(t,n,r));let i=[""];for(let n of e)n.type==="div"&&n.value===","?i.push(""):i[i.length-1]+=za.default.stringify(n);return i}function tm(t,e,r){if(e.type==="function"&&r[e.value]!==void 0){let i=hS(t,e.nodes,r);e.type="word",e.value=r[e.value](t,...i)}return e}function mS(t,e,r){return(0,za.default)(e).walk(i=>{tm(t,i,r)}).toString()}function rm({tailwindConfig:t}){let e={theme:(r,i,...n)=>{let{isValid:s,value:o,error:a}=Fa(t,i,n.length?n:void 0);if(!s)throw r.error(a);return o},screen:(r,i)=>{i=i.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let s=Qe(t.theme.screens).find(({name:o})=>o===i);if(!s)throw r.error(`The '${i}' screen does not exist in your theme.`);return yt(s)}};return r=>{r.walk(i=>{let n=gS[i.type];n!==void 0&&(i[n]=mS(i,i[n],e))})}}var ti,Xh,za,gS,im=C(()=>{l();ti=G(Gs()),Xh=G(Fh());Vr();za=G(ei());En();On();Ci();gS={atrule:"params",decl:"value"}});function nm({tailwindConfig:{theme:t}}){return function(e){e.walkAtRules("screen",r=>{let i=r.params,s=Qe(t.screens).find(({name:o})=>o===i);if(!s)throw r.error(`No \`${i}\` screen found.`);r.name="media",r.params=yt(s)})}}var sm=C(()=>{l();En();On()});function yS(t){let e=t.filter(a=>a.type!=="pseudo"||a.nodes.length>0?!0:a.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(a.value)).reverse(),r=new Set(["tag","class","id","attribute"]),i=e.findIndex(a=>r.has(a.type));if(i===-1)return e.reverse().join("").trim();let n=e[i],s=om[n.type]?om[n.type](n):n;e=e.slice(0,i);let o=e.findIndex(a=>a.type==="combinator"&&a.value===">");return o!==-1&&(e.splice(0,o),e.unshift(Mn.default.universal())),[s,...e.reverse()].join("").trim()}function wS(t){return Ma.has(t)||Ma.set(t,bS.transformSync(t)),Ma.get(t)}function Na({tailwindConfig:t}){return e=>{let r=new Map,i=new Set;e.walkAtRules("defaults",n=>{if(n.nodes&&n.nodes.length>0){i.add(n);return}let s=n.params;r.has(s)||r.set(s,new Set),r.get(s).add(n.parent),n.remove()});for(let n of i){let s=new Map,o=r.get(n.params)??[];for(let a of o)for(let u of wS(a.selector)){let c=u.includes(":-")||u.includes("::-")?u:"__DEFAULT__",f=s.get(c)??new Set;s.set(c,f),f.add(u)}if(Oi(t,"optimizeUniversalDefaults")){if(s.size===0){n.remove();continue}for(let[,a]of s){let u=$.rule();u.selectors=[...a],u.append(n.nodes.map(c=>c.clone())),n.before(u)}}else{let a=$.rule();a.selectors=["*","::before","::after"],a.append(n.nodes),n.before(a)}n.remove()}}}var Mn,om,bS,Ma,am=C(()=>{l();He();Mn=G(Te());Ei();om={id(t){return Mn.default.attribute({attribute:"id",operator:"=",value:t.value,quoteMark:'"'})}};bS=(0,Mn.default)(t=>t.map(e=>{let r=e.split(i=>i.type==="combinator"&&i.value===" ").pop();return yS(r)})),Ma=new Map});function $a(){return t=>{let e=null;t.each(r=>{if(!xS.has(r.type)){e=null;return}if(e===null){e=r;return}let i=lm[r.type];r.type==="atrule"&&r.name==="font-face"?e=r:i.every(n=>(r[n]??"").replace(/\s+/g," ")===(e[n]??"").replace(/\s+/g," "))?(e.append(r.nodes),r.remove()):e=r})}}var lm,xS,um=C(()=>{l();lm={atrule:["name","params"],rule:["selector"]},xS=new Set(Object.keys(lm))});function ja(){return t=>{t.walkRules(e=>{let r=new Map,i=new Set([]),n=new Map;e.walkDecls(s=>{if(s.parent===e){if(r.has(s.prop)){if(r.get(s.prop).value===s.value){i.add(r.get(s.prop)),r.set(s.prop,s);return}n.has(s.prop)||n.set(s.prop,new Set),n.get(s.prop).add(r.get(s.prop)),n.get(s.prop).add(s)}r.set(s.prop,s)}});for(let s of i)s.remove();for(let s of n.values()){let o=new Map;for(let a of s){let u=kS(a.value);u!==null&&(o.has(u)||o.set(u,new Set),o.get(u).add(a))}for(let a of o.values()){let u=Array.from(a).slice(0,-1);for(let c of u)c.remove()}}})}}function kS(t){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(t);return e?e[1]??vS:null}var vS,fm=C(()=>{l();vS=Symbol("unitless-number")});function SS(t){if(!t.walkAtRules)return;let e=new Set;if(t.walkAtRules("apply",r=>{e.add(r.parent)}),e.size!==0)for(let r of e){let i=[],n=[];for(let s of r.nodes)s.type==="atrule"&&s.name==="apply"?(n.length>0&&(i.push(n),n=[]),i.push([s])):n.push(s);if(n.length>0&&i.push(n),i.length!==1){for(let s of[...i].reverse()){let o=r.clone({nodes:[]});o.append(s),r.after(o)}r.remove()}}}function Nn(){return t=>{SS(t)}}var cm=C(()=>{l()});function pm(t){return(e,r)=>{let i=!1;e.walkAtRules("tailwind",n=>{if(i)return!1;if(n.parent&&n.parent.type!=="root")return i=!0,n.warn(r,["Nested @tailwind rules were detected, but are not supported.","Consider using a prefix to scope Tailwind's classes: https://tailwindcss.com/docs/configuration#prefix","Alternatively, use the important selector strategy: https://tailwindcss.com/docs/configuration#selector-strategy"].join(`
`)),!1}),e.walkRules(n=>{if(i)return!1;n.walkRules(s=>(i=!0,s.warn(r,["Nested CSS was detected, but CSS nesting has not been configured correctly.","Please enable a CSS nesting plugin *before* Tailwind in your configuration.","See how here: https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join(`
`)),!1))})}}var dm=C(()=>{l()});function Ua(t){return function(e,r){let{tailwindDirectives:i,applyDirectives:n}=Ta(e);pm()(e,r),Nn()(e,r);let s=t({tailwindDirectives:i,applyDirectives:n,registerDependency(o){r.messages.push({plugin:"tailwindcss",parent:r.opts.from,...o})},createContext(o,a){return xa(o,a,e)}})(e,r);if(s.tailwindConfig.separator==="-")throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");df(s.tailwindConfig),_a(s)(e,r),Nn()(e,r),Oa(s)(e,r),rm(s)(e,r),nm(s)(e,r),Na(s)(e,r),$a(s)(e,r),ja(s)(e,r)}}var hm=C(()=>{l();Th();qh();Lh();im();sm();am();um();fm();cm();dm();va();Ei()});var mm=x((TD,Wa)=>{l();Ch();hm();ct();Wa.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[me.DEBUG&&function(r){return console.log(`
`),console.time("JIT TOTAL"),r},function(r,i){Ua(Ca(e))(r,i)},me.DEBUG&&function(r){return console.timeEnd("JIT TOTAL"),console.log(`
`),r}].filter(Boolean)}};Wa.exports.postcss=!0});var Va=x((_D,gm)=>{l();gm.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]});var $n={};he($n,{agents:()=>CS,feature:()=>TS});function TS(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{"6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","5.5":"n"},edge:{"12":"y","13":"y","14":"y","15":"y","16":"y","17":"y","18":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y"},firefox:{"2":"n","3":"n","4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y","3.5":"n","3.6":"n"},chrome:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"n","23":"n","24":"n","25":"n","26":"n","27":"n","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y"},safari:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"y","10":"y","11":"y","12":"y","13":"y","14":"y","15":"y","17":"y","9.1":"y","10.1":"y","11.1":"y","12.1":"y","13.1":"y","14.1":"y","15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y",TP:"y","3.1":"n","3.2":"n","5.1":"n","6.1":"n","7.1":"n"},opera:{"9":"n","11":"n","12":"n","15":"y","16":"y","17":"y","18":"y","19":"y","20":"y","21":"y","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","60":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","12.1":"y","9.5-9.6":"n","10.0-10.1":"n","10.5":"n","10.6":"n","11.1":"n","11.5":"n","11.6":"n"},ios_saf:{"8":"n","17":"y","9.0-9.2":"y","9.3":"y","10.0-10.2":"y","10.3":"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y","13.2":"y","13.3":"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y","3.2":"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{"3":"n","4":"n","114":"y","4.4":"y","4.4.3-4.4.4":"y","2.1":"n","2.2":"n","2.3":"n","4.1":"n","4.2-4.3":"n"},bb:{"7":"n","10":"n"},op_mob:{"10":"n","11":"n","12":"n","73":"y","11.1":"n","11.5":"n","12.1":"n"},and_chr:{"114":"y"},and_ff:{"115":"y"},ie_mob:{"10":"n","11":"n"},and_uc:{"15.5":"y"},samsung:{"4":"y","20":"y","21":"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y","8.2":"y","9.2":"y","10.1":"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{"13.1":"y"},baidu:{"13.18":"y"},kaios:{"2.5":"y","3.0-3.1":"y"}}}}var CS,jn=C(()=>{l();CS={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{"12":"ms","13":"ms","14":"ms","15":"ms","16":"ms","17":"ms","18":"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{"9":"o","11":"o","12":"o","9.5-9.6":"o","10.0-10.1":"o","10.5":"o","10.6":"o","11.1":"o","11.5":"o","11.6":"o","12.1":"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{"73":"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{"15.5":"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}});var ym=x(()=>{l()});var ee=x((ED,Xe)=>{l();var{list:Ga}=ae();Xe.exports.error=function(t){let e=new Error(t);throw e.autoprefixer=!0,e};Xe.exports.uniq=function(t){return[...new Set(t)]};Xe.exports.removeNote=function(t){return t.includes(" ")?t.split(" ")[0]:t};Xe.exports.escapeRegexp=function(t){return t.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")};Xe.exports.regexp=function(t,e=!0){return e&&(t=this.escapeRegexp(t)),new RegExp(`(^|[\\s,(])(${t}($|[\\s(,]))`,"gi")};Xe.exports.editList=function(t,e){let r=Ga.comma(t),i=e(r,[]);if(r===i)return t;let n=t.match(/,\s*/);return n=n?n[0]:", ",i.join(n)};Xe.exports.splitSelector=function(t){return Ga.comma(t).map(e=>Ga.space(e).map(r=>r.split(/(?=\.|#)/g)))}});var Ze=x((PD,xm)=>{l();var _S=Va(),bm=(jn(),$n).agents,AS=ee(),wm=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in bm)this.prefixesCache.push(`-${bm[e].prefix}-`);return this.prefixesCache=AS.uniq(this.prefixesCache).sort((e,r)=>r.length-e.length),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,r,i,n){this.data=e,this.options=i||{},this.browserslistOpts=n||{},this.selected=this.parse(r)}parse(e){let r={};for(let i in this.browserslistOpts)r[i]=this.browserslistOpts[i];return r.path=this.options.from,_S(e,r)}prefix(e){let[r,i]=e.split(" "),n=this.data[r],s=n.prefix_exceptions&&n.prefix_exceptions[i];return s||(s=n.prefix),`-${s}-`}isSelected(e){return this.selected.includes(e)}};xm.exports=wm});var ri=x((DD,vm)=>{l();vm.exports={prefix(t){let e=t.match(/^(-\w+-)/);return e?e[0]:""},unprefixed(t){return t.replace(/^-\w+-/,"")}}});var jt=x((qD,Sm)=>{l();var OS=Ze(),km=ri(),ES=ee();function Ha(t,e){let r=new t.constructor;for(let i of Object.keys(t||{})){let n=t[i];i==="parent"&&typeof n=="object"?e&&(r[i]=e):i==="source"||i===null?r[i]=n:Array.isArray(n)?r[i]=n.map(s=>Ha(s,r)):i!=="_autoprefixerPrefix"&&i!=="_autoprefixerValues"&&i!=="proxyCache"&&(typeof n=="object"&&n!==null&&(n=Ha(n,r)),r[i]=n)}return r}var Un=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map(r=>(this.hacks[r]=e,this.hacks[r]))}static load(e,r,i){let n=this.hacks&&this.hacks[e];return n?new n(e,r,i):new this(e,r,i)}static clone(e,r){let i=Ha(e);for(let n in r)i[n]=r[n];return i}constructor(e,r,i){this.prefixes=r,this.name=e,this.all=i}parentPrefix(e){let r;return typeof e._autoprefixerPrefix!="undefined"?r=e._autoprefixerPrefix:e.type==="decl"&&e.prop[0]==="-"?r=km.prefix(e.prop):e.type==="root"?r=!1:e.type==="rule"&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?r=e.selector.match(/:(-\w+-)/)[1]:e.type==="atrule"&&e.name[0]==="-"?r=km.prefix(e.name):r=this.parentPrefix(e.parent),OS.prefixes().includes(r)||(r=!1),e._autoprefixerPrefix=r,e._autoprefixerPrefix}process(e,r){if(!this.check(e))return;let i=this.parentPrefix(e),n=this.prefixes.filter(o=>!i||i===ES.removeNote(o)),s=[];for(let o of n)this.add(e,o,s.concat([o]),r)&&s.push(o);return s}clone(e,r){return Un.clone(e,r)}};Sm.exports=Un});var R=x((BD,_m)=>{l();var PS=jt(),DS=Ze(),Cm=ee(),Tm=class extends PS{check(){return!0}prefixed(e,r){return r+e}normalize(e){return e}otherPrefixes(e,r){for(let i of DS.prefixes())if(i!==r&&e.includes(i))return!0;return!1}set(e,r){return e.prop=this.prefixed(e.prop,r),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=this.all.options.cascade!==!1&&e.raw("before").includes(`
`)),e._autoprefixerCascade}maxPrefixed(e,r){if(r._autoprefixerMax)return r._autoprefixerMax;let i=0;for(let n of e)n=Cm.removeNote(n),n.length>i&&(i=n.length);return r._autoprefixerMax=i,r._autoprefixerMax}calcBefore(e,r,i=""){let s=this.maxPrefixed(e,r)-Cm.removeNote(i).length,o=r.raw("before");return s>0&&(o+=Array(s).fill(" ").join("")),o}restoreBefore(e){let r=e.raw("before").split(`
`),i=r[r.length-1];this.all.group(e).up(n=>{let s=n.raw("before").split(`
`),o=s[s.length-1];o.length<i.length&&(i=o)}),r[r.length-1]=i,e.raws.before=r.join(`
`)}insert(e,r,i){let n=this.set(this.clone(e),r);if(!(!n||e.parent.some(o=>o.prop===n.prop&&o.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,n)}isAlready(e,r){let i=this.all.group(e).up(n=>n.prop===r);return i||(i=this.all.group(e).down(n=>n.prop===r)),i}add(e,r,i,n){let s=this.prefixed(e.prop,r);if(!(this.isAlready(e,s)||this.otherPrefixes(e.value,r)))return this.insert(e,r,i,n)}process(e,r){if(!this.needCascade(e)){super.process(e,r);return}let i=super.process(e,r);!i||!i.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(i,e))}old(e,r){return[this.prefixed(e,r)]}};_m.exports=Tm});var Om=x((RD,Am)=>{l();Am.exports=function t(e){return{mul:r=>new t(e*r),div:r=>new t(e/r),simplify:()=>new t(e),toString:()=>e.toString()}}});var Dm=x((ID,Pm)=>{l();var qS=Om(),BS=jt(),Ya=ee(),RS=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,IS=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i,Em=class extends BS{prefixName(e,r){return e==="-moz-"?r+"--moz-device-pixel-ratio":e+r+"-device-pixel-ratio"}prefixQuery(e,r,i,n,s){return n=new qS(n),s==="dpi"?n=n.div(96):s==="dpcm"&&(n=n.mul(2.54).div(96)),n=n.simplify(),e==="-o-"&&(n=n.n+"/"+n.d),this.prefixName(e,r)+i+n}clean(e){if(!this.bad){this.bad=[];for(let r of this.prefixes)this.bad.push(this.prefixName(r,"min")),this.bad.push(this.prefixName(r,"max"))}e.params=Ya.editList(e.params,r=>r.filter(i=>this.bad.every(n=>!i.includes(n))))}process(e){let r=this.parentPrefix(e),i=r?[r]:this.prefixes;e.params=Ya.editList(e.params,(n,s)=>{for(let o of n){if(!o.includes("min-resolution")&&!o.includes("max-resolution")){s.push(o);continue}for(let a of i){let u=o.replace(RS,c=>{let f=c.match(IS);return this.prefixQuery(a,f[1],f[2],f[3],f[4])});s.push(u)}s.push(o)}return Ya.uniq(s)})}};Pm.exports=Em});var zm=x((zD,Im)=>{l();var{list:zS}=ae(),qm=ei(),LS=Ze(),Bm=ri(),Rm=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,r){let i,n,s=this.prefixes.add[e.prop],o=this.ruleVendorPrefixes(e),a=o||s&&s.prefixes||[],u=this.parse(e.value),c=u.map(y=>this.findProp(y)),f=[];if(c.some(y=>y[0]==="-"))return;for(let y of u){if(n=this.findProp(y),n[0]==="-")continue;let b=this.prefixes.add[n];if(!(!b||!b.prefixes))for(i of b.prefixes){if(o&&!o.some(v=>i.includes(v)))continue;let S=this.prefixes.prefixed(n,i);S!=="-ms-transform"&&!c.includes(S)&&(this.disabled(n,i)||f.push(this.clone(n,S,y)))}}u=u.concat(f);let d=this.stringify(u),g=this.stringify(this.cleanFromUnprefixed(u,"-webkit-"));if(a.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,g),this.cloneBefore(e,e.prop,g),a.includes("-o-")){let y=this.stringify(this.cleanFromUnprefixed(u,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,y)}for(i of a)if(i!=="-webkit-"&&i!=="-o-"){let y=this.stringify(this.cleanOtherPrefixes(u,i));this.cloneBefore(e,i+e.prop,y)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(r,e),e.cloneBefore(),e.value=d)}findProp(e){let r=e[0].value;if(/^\d/.test(r)){for(let[i,n]of e.entries())if(i!==0&&n.type==="word")return n.value}return r}already(e,r,i){return e.parent.some(n=>n.prop===r&&n.value===i)}cloneBefore(e,r,i){this.already(e,r,i)||e.cloneBefore({prop:r,value:i})}checkForWarning(e,r){if(r.prop!=="transition-property")return;let i=!1,n=!1;r.parent.each(s=>{if(s.type!=="decl"||s.prop.indexOf("transition-")!==0)return;let o=zS.comma(s.value);if(s.prop==="transition-property"){o.forEach(a=>{let u=this.prefixes.add[a];u&&u.prefixes&&u.prefixes.length>0&&(i=!0)});return}return n=n||o.length>1,!1}),i&&n&&r.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let r=this.parse(e.value);r=r.filter(o=>{let a=this.prefixes.remove[this.findProp(o)];return!a||!a.remove});let i=this.stringify(r);if(e.value===i)return;if(r.length===0){e.remove();return}let n=e.parent.some(o=>o.prop===e.prop&&o.value===i),s=e.parent.some(o=>o!==e&&o.prop===e.prop&&o.value.length>i.length);if(n||s){e.remove();return}e.value=i}parse(e){let r=qm(e),i=[],n=[];for(let s of r.nodes)n.push(s),s.type==="div"&&s.value===","&&(i.push(n),n=[]);return i.push(n),i.filter(s=>s.length>0)}stringify(e){if(e.length===0)return"";let r=[];for(let i of e)i[i.length-1].type!=="div"&&i.push(this.div(e)),r=r.concat(i);return r[0].type==="div"&&(r=r.slice(1)),r[r.length-1].type==="div"&&(r=r.slice(0,-2+1||void 0)),qm.stringify({nodes:r})}clone(e,r,i){let n=[],s=!1;for(let o of i)!s&&o.type==="word"&&o.value===e?(n.push({type:"word",value:r}),s=!0):n.push(o);return n}div(e){for(let r of e)for(let i of r)if(i.type==="div"&&i.value===",")return i;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,r){return e.filter(i=>{let n=Bm.prefix(this.findProp(i));return n===""||n===r})}cleanFromUnprefixed(e,r){let i=e.map(s=>this.findProp(s)).filter(s=>s.slice(0,r.length)===r).map(s=>this.prefixes.unprefixed(s)),n=[];for(let s of e){let o=this.findProp(s),a=Bm.prefix(o);!i.includes(o)&&(a===r||a==="")&&n.push(s)}return n}disabled(e,r){let i=["order","justify-content","align-self","align-content"];if(e.includes("flex")||i.includes(e)){if(this.prefixes.options.flexbox===!1)return!0;if(this.prefixes.options.flexbox==="no-2009")return r.includes("2009")}}ruleVendorPrefixes(e){let{parent:r}=e;if(r.type!=="rule")return!1;if(!r.selector.includes(":-"))return!1;let i=LS.prefixes().filter(n=>r.selector.includes(":"+n));return i.length>0?i:!1}};Im.exports=Rm});var Ut=x((LD,Fm)=>{l();var FS=ee(),Lm=class{constructor(e,r,i,n){this.unprefixed=e,this.prefixed=r,this.string=i||r,this.regexp=n||FS.regexp(r)}check(e){return e.includes(this.string)?!!e.match(this.regexp):!1}};Fm.exports=Lm});var pe=x((FD,Nm)=>{l();var MS=jt(),NS=Ut(),$S=ri(),jS=ee(),Mm=class extends MS{static save(e,r){let i=r.prop,n=[];for(let s in r._autoprefixerValues){let o=r._autoprefixerValues[s];if(o===r.value)continue;let a,u=$S.prefix(i);if(u==="-pie-")continue;if(u===s){a=r.value=o,n.push(a);continue}let c=e.prefixed(i,s),f=r.parent;if(!f.every(b=>b.prop!==c)){n.push(a);continue}let d=o.replace(/\s+/," ");if(f.some(b=>b.prop===r.prop&&b.value.replace(/\s+/," ")===d)){n.push(a);continue}let y=this.clone(r,{value:o});a=r.parent.insertBefore(r,y),n.push(a)}return n}check(e){let r=e.value;return r.includes(this.name)?!!r.match(this.regexp()):!1}regexp(){return this.regexpCache||(this.regexpCache=jS.regexp(this.name))}replace(e,r){return e.replace(this.regexp(),`$1${r}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,r){e._autoprefixerValues||(e._autoprefixerValues={});let i=e._autoprefixerValues[r]||this.value(e),n;do if(n=i,i=this.replace(i,r),i===!1)return;while(i!==n);e._autoprefixerValues[r]=i}old(e){return new NS(this.name,e+this.name)}};Nm.exports=Mm});var et=x((MD,$m)=>{l();$m.exports={}});var Ja=x((ND,Wm)=>{l();var jm=ei(),US=pe(),WS=et().insertAreas,VS=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,GS=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,HS=/(!\s*)?autoprefixer:\s*ignore\s+next/i,YS=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,QS=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function Qa(t){return t.parent.some(e=>e.prop==="grid-template"||e.prop==="grid-template-areas")}function JS(t){let e=t.parent.some(i=>i.prop==="grid-template-rows"),r=t.parent.some(i=>i.prop==="grid-template-columns");return e&&r}var Um=class{constructor(e){this.prefixes=e}add(e,r){let i=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],s=this.prefixes.add["@viewport"],o=this.prefixes.add["@supports"];e.walkAtRules(f=>{if(f.name==="keyframes"){if(!this.disabled(f,r))return n&&n.process(f)}else if(f.name==="viewport"){if(!this.disabled(f,r))return s&&s.process(f)}else if(f.name==="supports"){if(this.prefixes.options.supports!==!1&&!this.disabled(f,r))return o.process(f)}else if(f.name==="media"&&f.params.includes("-resolution")&&!this.disabled(f,r))return i&&i.process(f)}),e.walkRules(f=>{if(!this.disabled(f,r))return this.prefixes.add.selectors.map(d=>d.process(f,r))});function a(f){return f.parent.nodes.some(d=>{if(d.type!=="decl")return!1;let g=d.prop==="display"&&/(inline-)?grid/.test(d.value),y=d.prop.startsWith("grid-template"),b=/^grid-([A-z]+-)?gap/.test(d.prop);return g||y||b})}function u(f){return f.parent.some(d=>d.prop==="display"&&/(inline-)?flex/.test(d.value))}let c=this.gridStatus(e,r)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls(f=>{if(this.disabledDecl(f,r))return;let d=f.parent,g=f.prop,y=f.value;if(g==="grid-row-span"){r.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f});return}else if(g==="grid-column-span"){r.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});return}else if(g==="display"&&y==="box"){r.warn("You should write display: flex by final spec instead of display: box",{node:f});return}else if(g==="text-emphasis-position")(y==="under"||y==="over")&&r.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(g)&&u(f))(y==="start"||y==="end")&&r.warn(`${y} value has mixed support, consider using flex-${y} instead`,{node:f});else if(g==="text-decoration-skip"&&y==="ink")r.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,r))if(f.value==="subgrid"&&r.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(g)&&a(f)){let S=g.replace("-items","-self");r.warn(`IE does not support ${g} on grid containers. Try using ${S} on child elements instead: ${f.parent.selector} > * { ${S}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(g)&&a(f))r.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else if(g==="display"&&f.value==="contents"){r.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});return}else if(f.prop==="grid-gap"){let S=this.gridStatus(f,r);S==="autoplace"&&!JS(f)&&!Qa(f)?r.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f}):(S===!0||S==="no-autoplace")&&!Qa(f)&&r.warn("grid-gap only works if grid-template(-areas) is being used",{node:f})}else if(g==="grid-auto-columns"){r.warn("grid-auto-columns is not supported by IE",{node:f});return}else if(g==="grid-auto-rows"){r.warn("grid-auto-rows is not supported by IE",{node:f});return}else if(g==="grid-auto-flow"){let S=d.some(k=>k.prop==="grid-template-rows"),v=d.some(k=>k.prop==="grid-template-columns");Qa(f)?r.warn("grid-auto-flow is not supported by IE",{node:f}):y.includes("dense")?r.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!S&&!v&&r.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f});return}else if(y.includes("auto-fit")){r.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});return}else if(y.includes("auto-fill")){r.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});return}else g.startsWith("grid-template")&&y.includes("[")&&r.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["});if(y.includes("radial-gradient"))if(GS.test(f.value))r.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let S=jm(y);for(let v of S.nodes)if(v.type==="function"&&v.value==="radial-gradient")for(let k of v.nodes)k.type==="word"&&(k.value==="cover"?r.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):k.value==="contain"&&r.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}y.includes("linear-gradient")&&VS.test(y)&&r.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}QS.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?r.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&jm(y).nodes.some(v=>v.type==="word"&&v.value==="fill")&&r.warn("Replace fill to stretch, because spec had been changed",{node:f})));let b;if(f.prop==="transition"||f.prop==="transition-property")return this.prefixes.transition.add(f,r);if(f.prop==="align-self"){if(this.displayType(f)!=="grid"&&this.prefixes.options.flexbox!==!1&&(b=this.prefixes.add["align-self"],b&&b.prefixes&&b.process(f)),this.gridStatus(f,r)!==!1&&(b=this.prefixes.add["grid-row-align"],b&&b.prefixes))return b.process(f,r)}else if(f.prop==="justify-self"){if(this.gridStatus(f,r)!==!1&&(b=this.prefixes.add["grid-column-align"],b&&b.prefixes))return b.process(f,r)}else if(f.prop==="place-self"){if(b=this.prefixes.add["place-self"],b&&b.prefixes&&this.gridStatus(f,r)!==!1)return b.process(f,r)}else if(b=this.prefixes.add[f.prop],b&&b.prefixes)return b.process(f,r)}),this.gridStatus(e,r)&&WS(e,this.disabled),e.walkDecls(f=>{if(this.disabledValue(f,r))return;let d=this.prefixes.unprefixed(f.prop),g=this.prefixes.values("add",d);if(Array.isArray(g))for(let y of g)y.process&&y.process(f,r);US.save(this.prefixes,f)})}remove(e,r){let i=this.prefixes.remove["@resolution"];e.walkAtRules((n,s)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,r)||n.parent.removeChild(s):n.name==="media"&&n.params.includes("-resolution")&&i&&i.clean(n)});for(let n of this.prefixes.remove.selectors)e.walkRules((s,o)=>{n.check(s)&&(this.disabled(s,r)||s.parent.removeChild(o))});return e.walkDecls((n,s)=>{if(this.disabled(n,r))return;let o=n.parent,a=this.prefixes.unprefixed(n.prop);if((n.prop==="transition"||n.prop==="transition-property")&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let u=this.prefixes.group(n).down(c=>this.prefixes.normalize(c.prop)===a);if(a==="flex-flow"&&(u=!0),n.prop==="-webkit-box-orient"){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some(f=>c[f.prop]))return}if(u&&!this.withHackValue(n)){n.raw("before").includes(`
`)&&this.reduceSpaces(n),o.removeChild(s);return}}for(let u of this.prefixes.values("remove",a)){if(!u.check||!u.check(n.value))continue;if(a=u.unprefixed,this.prefixes.group(n).down(f=>f.value.includes(a))){o.removeChild(s);return}}})}withHackValue(e){return e.prop==="-webkit-background-clip"&&e.value==="text"}disabledValue(e,r){return this.gridStatus(e,r)===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("grid")||this.prefixes.options.flexbox===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("flex")||e.type==="decl"&&e.prop==="content"?!0:this.disabled(e,r)}disabledDecl(e,r){if(this.gridStatus(e,r)===!1&&e.type==="decl"&&(e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.prefixes.options.flexbox===!1&&e.type==="decl"){let i=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||i.includes(e.prop))return!0}return this.disabled(e,r)}disabled(e,r){if(!e)return!1;if(e._autoprefixerDisabled!==void 0)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&n.type==="comment"&&HS.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let i=null;if(e.nodes){let n;e.each(s=>{s.type==="comment"&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(s.text)&&(typeof n!="undefined"?r.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:s}):n=/on/i.test(s.text))}),n!==void 0&&(i=!n)}if(!e.nodes||i===null)if(e.parent){let n=this.disabled(e.parent,r);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else i=!1;return e._autoprefixerDisabled=i,i}reduceSpaces(e){let r=!1;if(this.prefixes.group(e).up(()=>(r=!0,!0)),r)return;let i=e.raw("before").split(`
`),n=i[i.length-1].length,s=!1;this.prefixes.group(e).down(o=>{i=o.raw("before").split(`
`);let a=i.length-1;i[a].length>n&&(s===!1&&(s=i[a].length-n),i[a]=i[a].slice(0,-s),o.raws.before=i.join(`
`))})}displayType(e){for(let r of e.parent.nodes)if(r.prop==="display"){if(r.value.includes("flex"))return"flex";if(r.value.includes("grid"))return"grid"}return!1}gridStatus(e,r){if(!e)return!1;if(e._autoprefixerGridStatus!==void 0)return e._autoprefixerGridStatus;let i=null;if(e.nodes){let n;e.each(s=>{if(s.type==="comment"&&YS.test(s.text)){let o=/:\s*autoplace/i.test(s.text),a=/no-autoplace/i.test(s.text);typeof n!="undefined"?r.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:s}):o?n="autoplace":a?n=!0:n=/on/i.test(s.text)}}),n!==void 0&&(i=n)}if(e.type==="atrule"&&e.name==="supports"){let n=e.params;n.includes("grid")&&n.includes("auto")&&(i=!1)}if(!e.nodes||i===null)if(e.parent){let n=this.gridStatus(e.parent,r);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else typeof this.prefixes.options.grid!="undefined"?i=this.prefixes.options.grid:typeof h.env.AUTOPREFIXER_GRID!="undefined"?h.env.AUTOPREFIXER_GRID==="autoplace"?i="autoplace":i=!0:i=!1;return e._autoprefixerGridStatus=i,i}};Wm.exports=Um});var Gm=x(($D,Vm)=>{l();Vm.exports={A:{A:{"2":"K E F G A B JC"},B:{"1":"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{"1":"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC","2":"0 J K E F NC 5B OC PC QC"},F:{"1":"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB","2":"G B C VC WC XC YC vB HC ZC"},G:{"1":"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC","2":"F 5B aC IC bC cC dC eC"},H:{"1":"uC"},I:{"1":"I zC 0C","2":"zB J vC wC xC yC IC"},J:{"2":"E A"},K:{"1":"m","2":"A B C vB HC wB"},L:{"1":"I"},M:{"1":"uB"},N:{"2":"A B"},O:{"1":"xB"},P:{"1":"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{"1":"7B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Feature Queries"}});var Jm=x((jD,Qm)=>{l();function Hm(t){return t[t.length-1]}var Ym={parse(t){let e=[""],r=[e];for(let i of t){if(i==="("){e=[""],Hm(r).push(e),r.push(e);continue}if(i===")"){r.pop(),e=Hm(r),e.push("");continue}e[e.length-1]+=i}return r[0]},stringify(t){let e="";for(let r of t){if(typeof r=="object"){e+=`(${Ym.stringify(r)})`;continue}e+=r}return e}};Qm.exports=Ym});var tg=x((UD,eg)=>{l();var KS=Gm(),{feature:XS}=(jn(),$n),{parse:ZS}=ae(),e4=Ze(),Ka=Jm(),t4=pe(),r4=ee(),Km=XS(KS),Xm=[];for(let t in Km.stats){let e=Km.stats[t];for(let r in e){let i=e[r];/y/.test(i)&&Xm.push(t+" "+r)}}var Zm=class{constructor(e,r){this.Prefixes=e,this.all=r}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter(i=>Xm.includes(i)),r=new e4(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,r,this.all.options),this.prefixerCache}parse(e){let r=e.split(":"),i=r[0],n=r[1];return n||(n=""),[i.trim(),n.trim()]}virtual(e){let[r,i]=this.parse(e),n=ZS("a{}").first;return n.append({prop:r,value:i,raws:{before:""}}),n}prefixed(e){let r=this.virtual(e);if(this.disabled(r.first))return r.nodes;let i={warn:()=>null},n=this.prefixer().add[r.first.prop];n&&n.process&&n.process(r.first,i);for(let s of r.nodes){for(let o of this.prefixer().values("add",r.first.prop))o.process(s);t4.save(this.all,s)}return r.nodes}isNot(e){return typeof e=="string"&&/not\s*/i.test(e)}isOr(e){return typeof e=="string"&&/\s*or\s*/i.test(e)}isProp(e){return typeof e=="object"&&e.length===1&&typeof e[0]=="string"}isHack(e,r){return!new RegExp(`(\\(|\\s)${r4.escapeRegexp(r)}:`).test(e)}toRemove(e,r){let[i,n]=this.parse(e),s=this.all.unprefixed(i),o=this.all.cleaner();if(o.remove[i]&&o.remove[i].remove&&!this.isHack(r,s))return!0;for(let a of o.values("remove",s))if(a.check(n))return!0;return!1}remove(e,r){let i=0;for(;i<e.length;){if(!this.isNot(e[i-1])&&this.isProp(e[i])&&this.isOr(e[i+1])){if(this.toRemove(e[i][0],r)){e.splice(i,2);continue}i+=2;continue}typeof e[i]=="object"&&(e[i]=this.remove(e[i],r)),i+=1}return e}cleanBrackets(e){return e.map(r=>typeof r!="object"?r:r.length===1&&typeof r[0]=="object"?this.cleanBrackets(r[0]):this.cleanBrackets(r))}convert(e){let r=[""];for(let i of e)r.push([`${i.prop}: ${i.value}`]),r.push(" or ");return r[r.length-1]="",r}normalize(e){if(typeof e!="object")return e;if(e=e.filter(r=>r!==""),typeof e[0]=="string"){let r=e[0].trim();if(r.includes(":")||r==="selector"||r==="not selector")return[Ka.stringify(e)]}return e.map(r=>this.normalize(r))}add(e,r){return e.map(i=>{if(this.isProp(i)){let n=this.prefixed(i[0]);return n.length>1?this.convert(n):i}return typeof i=="object"?this.add(i,r):i})}process(e){let r=Ka.parse(e.params);r=this.normalize(r),r=this.remove(r,e.params),r=this.add(r,e.params),r=this.cleanBrackets(r),e.params=Ka.stringify(r)}disabled(e){if(!this.all.options.grid&&(e.prop==="display"&&e.value.includes("grid")||e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.all.options.flexbox===!1){if(e.prop==="display"&&e.value.includes("flex"))return!0;let r=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||r.includes(e.prop))return!0}return!1}};eg.exports=Zm});var ng=x((WD,ig)=>{l();var rg=class{constructor(e,r){this.prefix=r,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map(i=>[e.prefixed(i),e.regexp(i)]),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let r=e.parent.index(e)+1,i=e.parent.nodes;for(;r<i.length;){let n=i[r].selector;if(!n)return!0;if(n.includes(this.unprefixed)&&n.match(this.nameRegexp))return!1;let s=!1;for(let[o,a]of this.prefixeds)if(n.includes(o)&&n.match(a)){s=!0;break}if(!s)return!0;r+=1}return!0}check(e){return!(!e.selector.includes(this.prefixed)||!e.selector.match(this.regexp)||this.isHack(e))}};ig.exports=rg});var Wt=x((VD,og)=>{l();var{list:i4}=ae(),n4=ng(),s4=jt(),o4=Ze(),a4=ee(),sg=class extends s4{constructor(e,r,i){super(e,r,i);this.regexpCache=new Map}check(e){return e.selector.includes(this.name)?!!e.selector.match(this.regexp()):!1}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let r=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${a4.escapeRegexp(r)}`,"gi"))}return this.regexpCache.get(e)}possible(){return o4.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let r={};if(e.selector.includes(",")){let n=i4.comma(e.selector).filter(s=>s.includes(this.name));for(let s of this.possible())r[s]=n.map(o=>this.replace(o,s)).join(", ")}else for(let i of this.possible())r[i]=this.replace(e.selector,i);return e._autoprefixerPrefixeds[this.name]=r,e._autoprefixerPrefixeds}already(e,r,i){let n=e.parent.index(e)-1;for(;n>=0;){let s=e.parent.nodes[n];if(s.type!=="rule")return!1;let o=!1;for(let a in r[this.name]){let u=r[this.name][a];if(s.selector===u){if(i===a)return!0;o=!0;break}}if(!o)return!1;n-=1}return!1}replace(e,r){return e.replace(this.regexp(),`$1${this.prefixed(r)}`)}add(e,r){let i=this.prefixeds(e);if(this.already(e,i,r))return;let n=this.clone(e,{selector:i[this.name][r]});e.parent.insertBefore(e,n)}old(e){return new n4(this,e)}};og.exports=sg});var ug=x((GD,lg)=>{l();var l4=jt(),ag=class extends l4{add(e,r){let i=r+e.name;if(e.parent.some(o=>o.name===i&&o.params===e.params))return;let s=this.clone(e,{name:i});return e.parent.insertBefore(e,s)}process(e){let r=this.parentPrefix(e);for(let i of this.prefixes)(!r||r===i)&&this.add(e,i)}};lg.exports=ag});var cg=x((HD,fg)=>{l();var u4=Wt(),Xa=class extends u4{prefixed(e){return e==="-webkit-"?":-webkit-full-screen":e==="-moz-"?":-moz-full-screen":`:${e}fullscreen`}};Xa.names=[":fullscreen"];fg.exports=Xa});var dg=x((YD,pg)=>{l();var f4=Wt(),Za=class extends f4{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return e==="-webkit-"?"::-webkit-input-placeholder":e==="-ms-"?"::-ms-input-placeholder":e==="-ms- old"?":-ms-input-placeholder":e==="-moz- old"?":-moz-placeholder":`::${e}placeholder`}};Za.names=["::placeholder"];pg.exports=Za});var mg=x((QD,hg)=>{l();var c4=Wt(),el=class extends c4{prefixed(e){return e==="-ms-"?":-ms-input-placeholder":`:${e}placeholder-shown`}};el.names=[":placeholder-shown"];hg.exports=el});var yg=x((JD,gg)=>{l();var p4=Wt(),d4=ee(),tl=class extends p4{constructor(e,r,i){super(e,r,i);this.prefixes&&(this.prefixes=d4.uniq(this.prefixes.map(n=>"-webkit-")))}prefixed(e){return e==="-webkit-"?"::-webkit-file-upload-button":`::${e}file-selector-button`}};tl.names=["::file-selector-button"];gg.exports=tl});var ie=x((KD,bg)=>{l();bg.exports=function(t){let e;return t==="-webkit- 2009"||t==="-moz-"?e=2009:t==="-ms-"?e=2012:t==="-webkit-"&&(e="final"),t==="-webkit- 2009"&&(t="-webkit-"),[e,t]}});var kg=x((XD,vg)=>{l();var wg=ae().list,xg=ie(),h4=R(),Vt=class extends h4{prefixed(e,r){let i;return[i,r]=xg(r),i===2009?r+"box-flex":super.prefixed(e,r)}normalize(){return"flex"}set(e,r){let i=xg(r)[0];if(i===2009)return e.value=wg.space(e.value)[0],e.value=Vt.oldValues[e.value]||e.value,super.set(e,r);if(i===2012){let n=wg.space(e.value);n.length===3&&n[2]==="0"&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,r)}};Vt.names=["flex","box-flex"];Vt.oldValues={auto:"1",none:"0"};vg.exports=Vt});var Tg=x((ZD,Cg)=>{l();var Sg=ie(),m4=R(),rl=class extends m4{prefixed(e,r){let i;return[i,r]=Sg(r),i===2009?r+"box-ordinal-group":i===2012?r+"flex-order":super.prefixed(e,r)}normalize(){return"order"}set(e,r){return Sg(r)[0]===2009&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,r)):super.set(e,r)}};rl.names=["order","flex-order","box-ordinal-group"];Cg.exports=rl});var Ag=x((e7,_g)=>{l();var g4=R(),il=class extends g4{check(e){let r=e.value;return!r.toLowerCase().includes("alpha(")&&!r.includes("DXImageTransform.Microsoft")&&!r.includes("data:image/svg+xml")}};il.names=["filter"];_g.exports=il});var Eg=x((t7,Og)=>{l();var y4=R(),nl=class extends y4{insert(e,r,i,n){if(r!=="-ms-")return super.insert(e,r,i);let s=this.clone(e),o=e.prop.replace(/end$/,"start"),a=r+e.prop.replace(/end$/,"span");if(!e.parent.some(u=>u.prop===a)){if(s.prop=a,e.value.includes("span"))s.value=e.value.replace(/span\s/i,"");else{let u;if(e.parent.walkDecls(o,c=>{u=c}),u){let c=Number(e.value)-Number(u.value)+"";s.value=c}else e.warn(n,`Can not prefix ${e.prop} (${o} is not found)`)}e.cloneBefore(s)}}};nl.names=["grid-row-end","grid-column-end"];Og.exports=nl});var Dg=x((r7,Pg)=>{l();var b4=R(),sl=class extends b4{check(e){return!e.value.split(/\s+/).some(r=>{let i=r.toLowerCase();return i==="reverse"||i==="alternate-reverse"})}};sl.names=["animation","animation-direction"];Pg.exports=sl});var Bg=x((i7,qg)=>{l();var w4=ie(),x4=R(),ol=class extends x4{insert(e,r,i){let n;if([n,r]=w4(r),n!==2009)return super.insert(e,r,i);let s=e.value.split(/\s+/).filter(d=>d!=="wrap"&&d!=="nowrap"&&"wrap-reverse");if(s.length===0||e.parent.some(d=>d.prop===r+"box-orient"||d.prop===r+"box-direction"))return;let a=s[0],u=a.includes("row")?"horizontal":"vertical",c=a.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=r+"box-orient",f.value=u,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=r+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,f)}};ol.names=["flex-flow","box-direction","box-orient"];qg.exports=ol});var Ig=x((n7,Rg)=>{l();var v4=ie(),k4=R(),al=class extends k4{normalize(){return"flex"}prefixed(e,r){let i;return[i,r]=v4(r),i===2009?r+"box-flex":i===2012?r+"flex-positive":super.prefixed(e,r)}};al.names=["flex-grow","flex-positive"];Rg.exports=al});var Lg=x((s7,zg)=>{l();var S4=ie(),C4=R(),ll=class extends C4{set(e,r){if(S4(r)[0]!==2009)return super.set(e,r)}};ll.names=["flex-wrap"];zg.exports=ll});var Mg=x((o7,Fg)=>{l();var T4=R(),Gt=et(),ul=class extends T4{insert(e,r,i,n){if(r!=="-ms-")return super.insert(e,r,i);let s=Gt.parse(e),[o,a]=Gt.translate(s,0,2),[u,c]=Gt.translate(s,1,3);[["grid-row",o],["grid-row-span",a],["grid-column",u],["grid-column-span",c]].forEach(([f,d])=>{Gt.insertDecl(e,f,d)}),Gt.warnTemplateSelectorNotFound(e,n),Gt.warnIfGridRowColumnExists(e,n)}};ul.names=["grid-area"];Fg.exports=ul});var $g=x((a7,Ng)=>{l();var _4=R(),ii=et(),fl=class extends _4{insert(e,r,i){if(r!=="-ms-")return super.insert(e,r,i);if(e.parent.some(o=>o.prop==="-ms-grid-row-align"))return;let[[n,s]]=ii.parse(e);s?(ii.insertDecl(e,"grid-row-align",n),ii.insertDecl(e,"grid-column-align",s)):(ii.insertDecl(e,"grid-row-align",n),ii.insertDecl(e,"grid-column-align",n))}};fl.names=["place-self"];Ng.exports=fl});var Ug=x((l7,jg)=>{l();var A4=R(),cl=class extends A4{check(e){let r=e.value;return!r.includes("/")||r.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,r){let i=super.prefixed(e,r);return r==="-ms-"&&(i=i.replace("-start","")),i}};cl.names=["grid-row-start","grid-column-start"];jg.exports=cl});var Gg=x((u7,Vg)=>{l();var Wg=ie(),O4=R(),Ht=class extends O4{check(e){return e.parent&&!e.parent.some(r=>r.prop&&r.prop.startsWith("grid-"))}prefixed(e,r){let i;return[i,r]=Wg(r),i===2012?r+"flex-item-align":super.prefixed(e,r)}normalize(){return"align-self"}set(e,r){let i=Wg(r)[0];if(i===2012)return e.value=Ht.oldValues[e.value]||e.value,super.set(e,r);if(i==="final")return super.set(e,r)}};Ht.names=["align-self","flex-item-align"];Ht.oldValues={"flex-end":"end","flex-start":"start"};Vg.exports=Ht});var Yg=x((f7,Hg)=>{l();var E4=R(),P4=ee(),pl=class extends E4{constructor(e,r,i){super(e,r,i);this.prefixes&&(this.prefixes=P4.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};pl.names=["appearance"];Hg.exports=pl});var Kg=x((c7,Jg)=>{l();var Qg=ie(),D4=R(),dl=class extends D4{normalize(){return"flex-basis"}prefixed(e,r){let i;return[i,r]=Qg(r),i===2012?r+"flex-preferred-size":super.prefixed(e,r)}set(e,r){let i;if([i,r]=Qg(r),i===2012||i==="final")return super.set(e,r)}};dl.names=["flex-basis","flex-preferred-size"];Jg.exports=dl});var Zg=x((p7,Xg)=>{l();var q4=R(),hl=class extends q4{normalize(){return this.name.replace("box-image","border")}prefixed(e,r){let i=super.prefixed(e,r);return r==="-webkit-"&&(i=i.replace("border","box-image")),i}};hl.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"];Xg.exports=hl});var t0=x((d7,e0)=>{l();var B4=R(),Ee=class extends B4{insert(e,r,i){let n=e.prop==="mask-composite",s;n?s=e.value.split(","):s=e.value.match(Ee.regexp)||[],s=s.map(c=>c.trim()).filter(c=>c);let o=s.length,a;if(o&&(a=this.clone(e),a.value=s.map(c=>Ee.oldValues[c]||c).join(", "),s.includes("intersect")&&(a.value+=", xor"),a.prop=r+"mask-composite"),n)return o?(this.needCascade(e)&&(a.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,a)):void 0;let u=this.clone(e);return u.prop=r+u.prop,o&&(u.value=u.value.replace(Ee.regexp,"")),this.needCascade(e)&&(u.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,u),o?(this.needCascade(e)&&(a.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,a)):e}};Ee.names=["mask","mask-composite"];Ee.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"};Ee.regexp=new RegExp(`\\s+(${Object.keys(Ee.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig");e0.exports=Ee});var n0=x((h7,i0)=>{l();var r0=ie(),R4=R(),Yt=class extends R4{prefixed(e,r){let i;return[i,r]=r0(r),i===2009?r+"box-align":i===2012?r+"flex-align":super.prefixed(e,r)}normalize(){return"align-items"}set(e,r){let i=r0(r)[0];return(i===2009||i===2012)&&(e.value=Yt.oldValues[e.value]||e.value),super.set(e,r)}};Yt.names=["align-items","flex-align","box-align"];Yt.oldValues={"flex-end":"end","flex-start":"start"};i0.exports=Yt});var o0=x((m7,s0)=>{l();var I4=R(),ml=class extends I4{set(e,r){return r==="-ms-"&&e.value==="contain"&&(e.value="element"),super.set(e,r)}insert(e,r,i){if(!(e.value==="all"&&r==="-ms-"))return super.insert(e,r,i)}};ml.names=["user-select"];s0.exports=ml});var u0=x((g7,l0)=>{l();var a0=ie(),z4=R(),gl=class extends z4{normalize(){return"flex-shrink"}prefixed(e,r){let i;return[i,r]=a0(r),i===2012?r+"flex-negative":super.prefixed(e,r)}set(e,r){let i;if([i,r]=a0(r),i===2012||i==="final")return super.set(e,r)}};gl.names=["flex-shrink","flex-negative"];l0.exports=gl});var c0=x((y7,f0)=>{l();var L4=R(),yl=class extends L4{prefixed(e,r){return`${r}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,r){return(e.prop==="break-inside"&&e.value==="avoid-column"||e.value==="avoid-page")&&(e.value="avoid"),super.set(e,r)}insert(e,r,i){if(e.prop!=="break-inside")return super.insert(e,r,i);if(!(/region/i.test(e.value)||/page/i.test(e.value)))return super.insert(e,r,i)}};yl.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"];f0.exports=yl});var d0=x((b7,p0)=>{l();var F4=R(),bl=class extends F4{prefixed(e,r){return r+"print-color-adjust"}normalize(){return"color-adjust"}};bl.names=["color-adjust","print-color-adjust"];p0.exports=bl});var m0=x((w7,h0)=>{l();var M4=R(),Qt=class extends M4{insert(e,r,i){if(r==="-ms-"){let n=this.set(this.clone(e),r);this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,r));let s="ltr";return e.parent.nodes.forEach(o=>{o.prop==="direction"&&(o.value==="rtl"||o.value==="ltr")&&(s=o.value)}),n.value=Qt.msValues[s][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,r,i)}};Qt.names=["writing-mode"];Qt.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}};h0.exports=Qt});var y0=x((x7,g0)=>{l();var N4=R(),wl=class extends N4{set(e,r){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,r)}};wl.names=["border-image"];g0.exports=wl});var x0=x((v7,w0)=>{l();var b0=ie(),$4=R(),Jt=class extends $4{prefixed(e,r){let i;return[i,r]=b0(r),i===2012?r+"flex-line-pack":super.prefixed(e,r)}normalize(){return"align-content"}set(e,r){let i=b0(r)[0];if(i===2012)return e.value=Jt.oldValues[e.value]||e.value,super.set(e,r);if(i==="final")return super.set(e,r)}};Jt.names=["align-content","flex-line-pack"];Jt.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};w0.exports=Jt});var k0=x((k7,v0)=>{l();var j4=R(),de=class extends j4{prefixed(e,r){return r==="-moz-"?r+(de.toMozilla[e]||e):super.prefixed(e,r)}normalize(e){return de.toNormal[e]||e}};de.names=["border-radius"];de.toMozilla={};de.toNormal={};for(let t of["top","bottom"])for(let e of["left","right"]){let r=`border-${t}-${e}-radius`,i=`border-radius-${t}${e}`;de.names.push(r),de.names.push(i),de.toMozilla[r]=i,de.toNormal[i]=r}v0.exports=de});var C0=x((S7,S0)=>{l();var U4=R(),xl=class extends U4{prefixed(e,r){return e.includes("-start")?r+e.replace("-block-start","-before"):r+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};xl.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"];S0.exports=xl});var _0=x((C7,T0)=>{l();var W4=R(),{parseTemplate:V4,warnMissedAreas:G4,getGridGap:H4,warnGridGap:Y4,inheritGridGap:Q4}=et(),vl=class extends W4{insert(e,r,i,n){if(r!=="-ms-")return super.insert(e,r,i);if(e.parent.some(y=>y.prop==="-ms-grid-rows"))return;let s=H4(e),o=Q4(e,s),{rows:a,columns:u,areas:c}=V4({decl:e,gap:o||s}),f=Object.keys(c).length>0,d=Boolean(a),g=Boolean(u);return Y4({gap:s,hasColumns:g,decl:e,result:n}),G4(c,e,n),(d&&g||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:a,raws:{}}),g&&e.cloneBefore({prop:"-ms-grid-columns",value:u,raws:{}}),e}};vl.names=["grid-template"];T0.exports=vl});var O0=x((T7,A0)=>{l();var J4=R(),kl=class extends J4{prefixed(e,r){return r+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};kl.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"];A0.exports=kl});var P0=x((_7,E0)=>{l();var K4=R(),Sl=class extends K4{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,r){return r+"grid-row-align"}normalize(){return"align-self"}};Sl.names=["grid-row-align"];E0.exports=Sl});var q0=x((A7,D0)=>{l();var X4=R(),Kt=class extends X4{keyframeParents(e){let{parent:r}=e;for(;r;){if(r.type==="atrule"&&r.name==="keyframes")return!0;({parent:r}=r)}return!1}contain3d(e){if(e.prop==="transform-origin")return!1;for(let r of Kt.functions3d)if(e.value.includes(`${r}(`))return!0;return!1}set(e,r){return e=super.set(e,r),r==="-ms-"&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,r,i){if(r==="-ms-"){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,r,i)}else if(r==="-o-"){if(!this.contain3d(e))return super.insert(e,r,i)}else return super.insert(e,r,i)}};Kt.names=["transform","transform-origin"];Kt.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"];D0.exports=Kt});var I0=x((O7,R0)=>{l();var B0=ie(),Z4=R(),Cl=class extends Z4{normalize(){return"flex-direction"}insert(e,r,i){let n;if([n,r]=B0(r),n!==2009)return super.insert(e,r,i);if(e.parent.some(f=>f.prop===r+"box-orient"||f.prop===r+"box-direction"))return;let o=e.value,a,u;o==="inherit"||o==="initial"||o==="unset"?(a=o,u=o):(a=o.includes("row")?"horizontal":"vertical",u=o.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=r+"box-orient",c.value=a,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=r+"box-direction",c.value=u,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,r)),e.parent.insertBefore(e,c)}old(e,r){let i;return[i,r]=B0(r),i===2009?[r+"box-orient",r+"box-direction"]:super.old(e,r)}};Cl.names=["flex-direction","box-direction","box-orient"];R0.exports=Cl});var L0=x((E7,z0)=>{l();var e6=R(),Tl=class extends e6{check(e){return e.value==="pixelated"}prefixed(e,r){return r==="-ms-"?"-ms-interpolation-mode":super.prefixed(e,r)}set(e,r){return r!=="-ms-"?super.set(e,r):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,r){return super.process(e,r)}};Tl.names=["image-rendering","interpolation-mode"];z0.exports=Tl});var M0=x((P7,F0)=>{l();var t6=R(),r6=ee(),_l=class extends t6{constructor(e,r,i){super(e,r,i);this.prefixes&&(this.prefixes=r6.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};_l.names=["backdrop-filter"];F0.exports=_l});var $0=x((D7,N0)=>{l();var i6=R(),n6=ee(),Al=class extends i6{constructor(e,r,i){super(e,r,i);this.prefixes&&(this.prefixes=n6.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}check(e){return e.value.toLowerCase()==="text"}};Al.names=["background-clip"];N0.exports=Al});var U0=x((q7,j0)=>{l();var s6=R(),o6=["none","underline","overline","line-through","blink","inherit","initial","unset"],Ol=class extends s6{check(e){return e.value.split(/\s+/).some(r=>!o6.includes(r))}};Ol.names=["text-decoration"];j0.exports=Ol});var G0=x((B7,V0)=>{l();var W0=ie(),a6=R(),Xt=class extends a6{prefixed(e,r){let i;return[i,r]=W0(r),i===2009?r+"box-pack":i===2012?r+"flex-pack":super.prefixed(e,r)}normalize(){return"justify-content"}set(e,r){let i=W0(r)[0];if(i===2009||i===2012){let n=Xt.oldValues[e.value]||e.value;if(e.value=n,i!==2009||n!=="distribute")return super.set(e,r)}else if(i==="final")return super.set(e,r)}};Xt.names=["justify-content","flex-pack","box-pack"];Xt.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};V0.exports=Xt});var Y0=x((R7,H0)=>{l();var l6=R(),El=class extends l6{set(e,r){let i=e.value.toLowerCase();return r==="-webkit-"&&!i.includes(" ")&&i!=="contain"&&i!=="cover"&&(e.value=e.value+" "+e.value),super.set(e,r)}};El.names=["background-size"];H0.exports=El});var J0=x((I7,Q0)=>{l();var u6=R(),Pl=et(),Dl=class extends u6{insert(e,r,i){if(r!=="-ms-")return super.insert(e,r,i);let n=Pl.parse(e),[s,o]=Pl.translate(n,0,1);n[0]&&n[0].includes("span")&&(o=n[0].join("").replace(/\D/g,"")),[[e.prop,s],[`${e.prop}-span`,o]].forEach(([u,c])=>{Pl.insertDecl(e,u,c)})}};Dl.names=["grid-row","grid-column"];Q0.exports=Dl});var Z0=x((z7,X0)=>{l();var f6=R(),{prefixTrackProp:K0,prefixTrackValue:c6,autoplaceGridItems:p6,getGridGap:d6,inheritGridGap:h6}=et(),m6=Ja(),ql=class extends f6{prefixed(e,r){return r==="-ms-"?K0({prop:e,prefix:r}):super.prefixed(e,r)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,r,i,n){if(r!=="-ms-")return super.insert(e,r,i);let{parent:s,prop:o,value:a}=e,u=o.includes("rows"),c=o.includes("columns"),f=s.some(_=>_.prop==="grid-template"||_.prop==="grid-template-areas");if(f&&u)return!1;let d=new m6({options:{}}),g=d.gridStatus(s,n),y=d6(e);y=h6(e,y)||y;let b=u?y.row:y.column;(g==="no-autoplace"||g===!0)&&!f&&(b=null);let S=c6({value:a,gap:b});e.cloneBefore({prop:K0({prop:o,prefix:r}),value:S});let v=s.nodes.find(_=>_.prop==="grid-auto-flow"),k="row";if(v&&!d.disabled(v,n)&&(k=v.value.trim()),g==="autoplace"){let _=s.nodes.find(B=>B.prop==="grid-template-rows");if(!_&&f)return;if(!_&&!f){e.warn(n,"Autoplacement does not work without grid-template-rows property");return}!s.nodes.find(B=>B.prop==="grid-template-columns")&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&p6(e,n,y,k)}}};ql.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"];X0.exports=ql});var t1=x((L7,e1)=>{l();var g6=R(),Bl=class extends g6{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,r){return r+"grid-column-align"}normalize(){return"justify-self"}};Bl.names=["grid-column-align"];e1.exports=Bl});var i1=x((F7,r1)=>{l();var y6=R(),Rl=class extends y6{prefixed(e,r){return r+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,r){return e.value==="auto"?e.value="chained":(e.value==="none"||e.value==="contain")&&(e.value="none"),super.set(e,r)}};Rl.names=["overscroll-behavior","scroll-chaining"];r1.exports=Rl});var o1=x((M7,s1)=>{l();var b6=R(),{parseGridAreas:w6,warnMissedAreas:x6,prefixTrackProp:v6,prefixTrackValue:n1,getGridGap:k6,warnGridGap:S6,inheritGridGap:C6}=et();function T6(t){return t.trim().slice(1,-1).split(/["']\s*["']?/g)}var Il=class extends b6{insert(e,r,i,n){if(r!=="-ms-")return super.insert(e,r,i);let s=!1,o=!1,a=e.parent,u=k6(e);u=C6(e,u)||u,a.walkDecls(/-ms-grid-rows/,d=>d.remove()),a.walkDecls(/grid-template-(rows|columns)/,d=>{if(d.prop==="grid-template-rows"){o=!0;let{prop:g,value:y}=d;d.cloneBefore({prop:v6({prop:g,prefix:r}),value:n1({value:y,gap:u.row})})}else s=!0});let c=T6(e.value);s&&!o&&u.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:n1({value:`repeat(${c.length}, auto)`,gap:u.row}),raws:{}}),S6({gap:u,hasColumns:s,decl:e,result:n});let f=w6({rows:c,gap:u});return x6(f,e,n),e}};Il.names=["grid-template-areas"];s1.exports=Il});var l1=x((N7,a1)=>{l();var _6=R(),zl=class extends _6{set(e,r){return r==="-webkit-"&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,r)}};zl.names=["text-emphasis-position"];a1.exports=zl});var f1=x(($7,u1)=>{l();var A6=R(),Ll=class extends A6{set(e,r){return e.prop==="text-decoration-skip-ink"&&e.value==="auto"?(e.prop=r+"text-decoration-skip",e.value="ink",e):super.set(e,r)}};Ll.names=["text-decoration-skip-ink","text-decoration-skip"];u1.exports=Ll});var g1=x((j7,m1)=>{l();"use strict";m1.exports={wrap:c1,limit:p1,validate:d1,test:Fl,curry:O6,name:h1};function c1(t,e,r){var i=e-t;return((r-t)%i+i)%i+t}function p1(t,e,r){return Math.max(t,Math.min(e,r))}function d1(t,e,r,i,n){if(!Fl(t,e,r,i,n))throw new Error(r+" is outside of range ["+t+","+e+")");return r}function Fl(t,e,r,i,n){return!(r<t||r>e||n&&r===e||i&&r===t)}function h1(t,e,r,i){return(r?"(":"[")+t+","+e+(i?")":"]")}function O6(t,e,r,i){var n=h1.bind(null,t,e,r,i);return{wrap:c1.bind(null,t,e),limit:p1.bind(null,t,e),validate:function(s){return d1(t,e,s,r,i)},test:function(s){return Fl(t,e,s,r,i)},toString:n,name:n}}});var w1=x((U7,b1)=>{l();var Ml=ei(),E6=g1(),P6=Ut(),D6=pe(),q6=ee(),y1=/top|left|right|bottom/gi,$e=class extends D6{replace(e,r){let i=Ml(e);for(let n of i.nodes)if(n.type==="function"&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),r==="-webkit- old"){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=r+n.value;return i.toString()}replaceFirst(e,...r){return r.map(n=>n===" "?{type:"space",value:n}:{type:"word",value:n}).concat(e.slice(1))}normalizeUnit(e,r){return`${parseFloat(e)/r*360}deg`}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let r=parseFloat(e[0].value);r=E6.wrap(0,360,r),e[0].value=`${r}deg`}return e[0].value==="0deg"?e=this.replaceFirst(e,"to"," ","top"):e[0].value==="90deg"?e=this.replaceFirst(e,"to"," ","right"):e[0].value==="180deg"?e=this.replaceFirst(e,"to"," ","bottom"):e[0].value==="270deg"&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if(e[0].value==="to"||(y1.lastIndex=0,!y1.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let r=2;r<e.length&&e[r].type!=="div";r++)e[r].type==="word"&&(e[r].value=this.revertDirection(e[r].value));return e}isRadial(e){let r="before";for(let i of e)if(r==="before"&&i.type==="space")r="at";else if(r==="at"&&i.value==="at")r="after";else{if(r==="after"&&i.type==="space")return!0;if(i.type==="div")break;r="before"}return!1}convertDirection(e){return e.length>0&&(e[0].value==="to"?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let r of e){if(r.type==="div")break;r.type==="word"&&(r.value=this.revertDirection(r.value))}}fixAngle(e){let r=e[0].value;r=parseFloat(r),r=Math.abs(450-r)%360,r=this.roundFloat(r,3),e[0].value=`${r}deg`}fixRadial(e){let r=[],i=[],n,s,o,a,u;for(a=0;a<e.length-2;a++)if(n=e[a],s=e[a+1],o=e[a+2],n.type==="space"&&s.value==="at"&&o.type==="space"){u=a+3;break}else r.push(n);let c;for(a=u;a<e.length;a++)if(e[a].type==="div"){c=e[a];break}else i.push(e[a]);e.splice(0,a,...i,c,...r)}revertDirection(e){return $e.directions[e.toLowerCase()]||e}roundFloat(e,r){return parseFloat(e.toFixed(r))}oldWebkit(e){let{nodes:r}=e,i=Ml.stringify(e.nodes);if(this.name!=="linear-gradient"||r[0]&&r[0].value.includes("deg")||i.includes("px")||i.includes("-corner")||i.includes("-side"))return!1;let n=[[]];for(let s of r)n[n.length-1].push(s),s.type==="div"&&s.value===","&&n.push([]);this.oldDirection(n),this.colorStops(n),e.nodes=[];for(let s of n)e.nodes=e.nodes.concat(s);return e.nodes.unshift({type:"word",value:"linear"},this.cloneDiv(e.nodes)),e.value="-webkit-gradient",!0}oldDirection(e){let r=this.cloneDiv(e[0]);if(e[0][0].value!=="to")return e.unshift([{type:"word",value:$e.oldDirections.bottom},r]);{let i=[];for(let s of e[0].slice(2))s.type==="word"&&i.push(s.value.toLowerCase());i=i.join(" ");let n=$e.oldDirections[i]||i;return e[0]=[{type:"word",value:n},r],e[0]}}cloneDiv(e){for(let r of e)if(r.type==="div"&&r.value===",")return r;return{type:"div",value:",",after:" "}}colorStops(e){let r=[];for(let i=0;i<e.length;i++){let n,s=e[i],o;if(i===0)continue;let a=Ml.stringify(s[0]);s[1]&&s[1].type==="word"?n=s[1].value:s[2]&&s[2].type==="word"&&(n=s[2].value);let u;i===1&&(!n||n==="0%")?u=`from(${a})`:i===e.length-1&&(!n||n==="100%")?u=`to(${a})`:n?u=`color-stop(${n}, ${a})`:u=`color-stop(${a})`;let c=s[s.length-1];e[i]=[{type:"word",value:u}],c.type==="div"&&c.value===","&&(o=e[i].push(c)),r.push(o)}return r}old(e){if(e==="-webkit-"){let r=this.name==="linear-gradient"?"linear":"radial",i="-gradient",n=q6.regexp(`-webkit-(${r}-gradient|gradient\\(\\s*${r})`,!1);return new P6(this.name,e+this.name,i,n)}else return super.old(e)}add(e,r){let i=e.prop;if(i.includes("mask")){if(r==="-webkit-"||r==="-webkit- old")return super.add(e,r)}else if(i==="list-style"||i==="list-style-image"||i==="content"){if(r==="-webkit-"||r==="-webkit- old")return super.add(e,r)}else return super.add(e,r)}};$e.names=["linear-gradient","repeating-linear-gradient","radial-gradient","repeating-radial-gradient"];$e.directions={top:"bottom",left:"right",bottom:"top",right:"left"};$e.oldDirections={top:"left bottom, left top",left:"right top, left top",bottom:"left top, left bottom",right:"left top, right top","top right":"left bottom, right top","top left":"right bottom, left top","right top":"left bottom, right top","right bottom":"left top, right bottom","bottom right":"left top, right bottom","bottom left":"right top, left bottom","left top":"right bottom, left top","left bottom":"right top, left bottom"};b1.exports=$e});var k1=x((W7,v1)=>{l();var B6=Ut(),R6=pe();function x1(t){return new RegExp(`(^|[\\s,(])(${t}($|[\\s),]))`,"gi")}var Nl=class extends R6{regexp(){return this.regexpCache||(this.regexpCache=x1(this.name)),this.regexpCache}isStretch(){return this.name==="stretch"||this.name==="fill"||this.name==="fill-available"}replace(e,r){return r==="-moz-"&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):r==="-webkit-"&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,r)}old(e){let r=e+this.name;return this.isStretch()&&(e==="-moz-"?r="-moz-available":e==="-webkit-"&&(r="-webkit-fill-available")),new B6(this.name,r,r,x1(r))}add(e,r){if(!(e.prop.includes("grid")&&r!=="-webkit-"))return super.add(e,r)}};Nl.names=["max-content","min-content","fit-content","fill","fill-available","stretch"];v1.exports=Nl});var T1=x((V7,C1)=>{l();var S1=Ut(),I6=pe(),$l=class extends I6{replace(e,r){return r==="-webkit-"?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):r==="-moz-"?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,r)}old(e){return e==="-webkit-"?new S1(this.name,"-webkit-optimize-contrast"):e==="-moz-"?new S1(this.name,"-moz-crisp-edges"):super.old(e)}};$l.names=["pixelated"];C1.exports=$l});var A1=x((G7,_1)=>{l();var z6=pe(),jl=class extends z6{replace(e,r){let i=super.replace(e,r);return r==="-webkit-"&&(i=i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),i}};jl.names=["image-set"];_1.exports=jl});var E1=x((H7,O1)=>{l();var L6=ae().list,F6=pe(),Ul=class extends F6{replace(e,r){return L6.space(e).map(i=>{if(i.slice(0,+this.name.length+1)!==this.name+"(")return i;let n=i.lastIndexOf(")"),s=i.slice(n+1),o=i.slice(this.name.length+1,n);if(r==="-webkit-"){let a=o.match(/\d*.?\d+%?/);a?(o=o.slice(a[0].length).trim(),o+=`, ${a[0]}`):o+=", 0.5"}return r+this.name+"("+o+")"+s}).join(" ")}};Ul.names=["cross-fade"];O1.exports=Ul});var D1=x((Y7,P1)=>{l();var M6=ie(),N6=Ut(),$6=pe(),Wl=class extends $6{constructor(e,r){super(e,r);e==="display-flex"&&(this.name="flex")}check(e){return e.prop==="display"&&e.value===this.name}prefixed(e){let r,i;return[r,e]=M6(e),r===2009?this.name==="flex"?i="box":i="inline-box":r===2012?this.name==="flex"?i="flexbox":i="inline-flexbox":r==="final"&&(i=this.name),e+i}replace(e,r){return this.prefixed(r)}old(e){let r=this.prefixed(e);if(!!r)return new N6(this.name,r)}};Wl.names=["display-flex","inline-flex"];P1.exports=Wl});var B1=x((Q7,q1)=>{l();var j6=pe(),Vl=class extends j6{constructor(e,r){super(e,r);e==="display-grid"&&(this.name="grid")}check(e){return e.prop==="display"&&e.value===this.name}};Vl.names=["display-grid","inline-grid"];q1.exports=Vl});var I1=x((J7,R1)=>{l();var U6=pe(),Gl=class extends U6{constructor(e,r){super(e,r);e==="filter-function"&&(this.name="filter")}};Gl.names=["filter","filter-function"];R1.exports=Gl});var M1=x((K7,F1)=>{l();var z1=ri(),I=R(),L1=Dm(),W6=zm(),V6=Ja(),G6=tg(),Hl=Ze(),Zt=Wt(),H6=ug(),Pe=pe(),er=ee(),Y6=cg(),Q6=dg(),J6=mg(),K6=yg(),X6=kg(),Z6=Tg(),eC=Ag(),tC=Eg(),rC=Dg(),iC=Bg(),nC=Ig(),sC=Lg(),oC=Mg(),aC=$g(),lC=Ug(),uC=Gg(),fC=Yg(),cC=Kg(),pC=Zg(),dC=t0(),hC=n0(),mC=o0(),gC=u0(),yC=c0(),bC=d0(),wC=m0(),xC=y0(),vC=x0(),kC=k0(),SC=C0(),CC=_0(),TC=O0(),_C=P0(),AC=q0(),OC=I0(),EC=L0(),PC=M0(),DC=$0(),qC=U0(),BC=G0(),RC=Y0(),IC=J0(),zC=Z0(),LC=t1(),FC=i1(),MC=o1(),NC=l1(),$C=f1(),jC=w1(),UC=k1(),WC=T1(),VC=A1(),GC=E1(),HC=D1(),YC=B1(),QC=I1();Zt.hack(Y6);Zt.hack(Q6);Zt.hack(J6);Zt.hack(K6);I.hack(X6);I.hack(Z6);I.hack(eC);I.hack(tC);I.hack(rC);I.hack(iC);I.hack(nC);I.hack(sC);I.hack(oC);I.hack(aC);I.hack(lC);I.hack(uC);I.hack(fC);I.hack(cC);I.hack(pC);I.hack(dC);I.hack(hC);I.hack(mC);I.hack(gC);I.hack(yC);I.hack(bC);I.hack(wC);I.hack(xC);I.hack(vC);I.hack(kC);I.hack(SC);I.hack(CC);I.hack(TC);I.hack(_C);I.hack(AC);I.hack(OC);I.hack(EC);I.hack(PC);I.hack(DC);I.hack(qC);I.hack(BC);I.hack(RC);I.hack(IC);I.hack(zC);I.hack(LC);I.hack(FC);I.hack(MC);I.hack(NC);I.hack($C);Pe.hack(jC);Pe.hack(UC);Pe.hack(WC);Pe.hack(VC);Pe.hack(GC);Pe.hack(HC);Pe.hack(YC);Pe.hack(QC);var Yl=new Map,ni=class{constructor(e,r,i={}){this.data=e,this.browsers=r,this.options=i,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new W6(this),this.processor=new V6(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(this.browsers.selected.length){let e=new Hl(this.browsers.data,[]);this.cleanerCache=new ni(this.data,e,this.options)}else return this;return this.cleanerCache}select(e){let r={add:{},remove:{}};for(let i in e){let n=e[i],s=n.browsers.map(u=>{let c=u.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}}),o=s.filter(u=>u.note).map(u=>`${this.browsers.prefix(u.browser)} ${u.note}`);o=er.uniq(o),s=s.filter(u=>this.browsers.isSelected(u.browser)).map(u=>{let c=this.browsers.prefix(u.browser);return u.note?`${c} ${u.note}`:c}),s=this.sort(er.uniq(s)),this.options.flexbox==="no-2009"&&(s=s.filter(u=>!u.includes("2009")));let a=n.browsers.map(u=>this.browsers.prefix(u));n.mistakes&&(a=a.concat(n.mistakes)),a=a.concat(o),a=er.uniq(a),s.length?(r.add[i]=s,s.length<a.length&&(r.remove[i]=a.filter(u=>!s.includes(u)))):r.remove[i]=a}return r}sort(e){return e.sort((r,i)=>{let n=er.removeNote(r).length,s=er.removeNote(i).length;return n===s?i.length-r.length:s-n})}preprocess(e){let r={selectors:[],"@supports":new G6(ni,this)};for(let n in e.add){let s=e.add[n];if(n==="@keyframes"||n==="@viewport")r[n]=new H6(n,s,this);else if(n==="@resolution")r[n]=new L1(n,s,this);else if(this.data[n].selector)r.selectors.push(Zt.load(n,s,this));else{let o=this.data[n].props;if(o){let a=Pe.load(n,s,this);for(let u of o)r[u]||(r[u]={values:[]}),r[u].values.push(a)}else{let a=r[n]&&r[n].values||[];r[n]=I.load(n,s,this),r[n].values=a}}}let i={selectors:[]};for(let n in e.remove){let s=e.remove[n];if(this.data[n].selector){let o=Zt.load(n,s);for(let a of s)i.selectors.push(o.old(a))}else if(n==="@keyframes"||n==="@viewport")for(let o of s){let a=`@${o}${n.slice(1)}`;i[a]={remove:!0}}else if(n==="@resolution")i[n]=new L1(n,s,this);else{let o=this.data[n].props;if(o){let a=Pe.load(n,[],this);for(let u of s){let c=a.old(u);if(c)for(let f of o)i[f]||(i[f]={}),i[f].values||(i[f].values=[]),i[f].values.push(c)}}else for(let a of s){let u=this.decl(n).old(n,a);if(n==="align-self"){let c=r[n]&&r[n].prefixes;if(c){if(a==="-webkit- 2009"&&c.includes("-webkit-"))continue;if(a==="-webkit-"&&c.includes("-webkit- 2009"))continue}}for(let c of u)i[c]||(i[c]={}),i[c].remove=!0}}}return[r,i]}decl(e){return Yl.has(e)||Yl.set(e,I.load(e)),Yl.get(e)}unprefixed(e){let r=this.normalize(z1.unprefixed(e));return r==="flex-direction"&&(r="flex-flow"),r}normalize(e){return this.decl(e).normalize(e)}prefixed(e,r){return e=z1.unprefixed(e),this.decl(e).prefixed(e,r)}values(e,r){let i=this[e],n=i["*"]&&i["*"].values,s=i[r]&&i[r].values;return n&&s?er.uniq(n.concat(s)):n||s||[]}group(e){let r=e.parent,i=r.index(e),{length:n}=r.nodes,s=this.unprefixed(e.prop),o=(a,u)=>{for(i+=a;i>=0&&i<n;){let c=r.nodes[i];if(c.type==="decl"){if(a===-1&&c.prop===s&&!Hl.withPrefix(c.value)||this.unprefixed(c.prop)!==s)break;if(u(c)===!0)return!0;if(a===1&&c.prop===s&&!Hl.withPrefix(c.value))break}i+=a}return!1};return{up(a){return o(-1,a)},down(a){return o(1,a)}}}};F1.exports=ni});var $1=x((X7,N1)=>{l();N1.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}});var U1=x((Z7,j1)=>{l();j1.exports={}});var H1=x((eq,G1)=>{l();var JC=Va(),{agents:KC}=(jn(),$n),Ql=ym(),XC=Ze(),ZC=M1(),eT=$1(),tT=U1(),W1={browsers:KC,prefixes:eT},V1=`
Replace Autoprefixer \`browsers\` option to Browserslist config.
Use \`browserslist\` key in \`package.json\` or \`.browserslistrc\` file.
Using \`browsers\` option can cause errors. Browserslist config can
be used for Babel, Autoprefixer, postcss-normalize and other tools.
If you really need to use option, rename it to \`overrideBrowserslist\`.
Learn more at:
https://github.com/browserslist/browserslist#readme
https://twitter.com/browserslist
`;function rT(t){return Object.prototype.toString.apply(t)==="[object Object]"}var Jl=new Map;function iT(t,e){e.browsers.selected.length!==0&&(e.add.selectors.length>0||Object.keys(e.add).length>2||t.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore.
Check your Browserslist config to be sure that your targets are set up correctly.
Learn more at:
https://github.com/postcss/autoprefixer#readme
https://github.com/browserslist/browserslist#readme
`))}G1.exports=tr;function tr(...t){let e;if(t.length===1&&rT(t[0])?(e=t[0],t=void 0):t.length===0||t.length===1&&!t[0]?t=void 0:t.length<=2&&(Array.isArray(t[0])||!t[0])?(e=t[1],t=t[0]):typeof t[t.length-1]=="object"&&(e=t.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?t=e.overrideBrowserslist:e.browsers&&(typeof console!="undefined"&&console.warn&&(Ql.red?console.warn(Ql.red(V1.replace(/`[^`]+`/g,n=>Ql.yellow(n.slice(1,-1))))):console.warn(V1)),t=e.browsers);let r={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function i(n){let s=W1,o=new XC(s.browsers,t,n,r),a=o.selected.join(", ")+JSON.stringify(e);return Jl.has(a)||Jl.set(a,new ZC(s.prefixes,o,e)),Jl.get(a)}return{postcssPlugin:"autoprefixer",prepare(n){let s=i({from:n.opts.from,env:e.env});return{OnceExit(o){iT(n,s),e.remove!==!1&&s.processor.remove(o,n),e.add!==!1&&s.processor.add(o,n)}}},info(n){return n=n||{},n.from=n.from||h.cwd(),tT(i(n))},options:e,browsers:t}}tr.postcss=!0;tr.data=W1;tr.defaults=JC.defaults;tr.info=()=>tr().info()});var Q1=x((tq,Y1)=>{l();Y1.exports={aqua:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,azure:/#f0ffff(ff)?(?!\w)/gi,beige:/#f5f5dc(ff)?(?!\w)/gi,bisque:/#ffe4c4(ff)?(?!\w)/gi,black:/#000000(ff)?(?!\w)|#000(f)?(?!\w)/gi,blue:/#0000ff(ff)?(?!\w)|#00f(f)?(?!\w)/gi,brown:/#a52a2a(ff)?(?!\w)/gi,coral:/#ff7f50(ff)?(?!\w)/gi,cornsilk:/#fff8dc(ff)?(?!\w)/gi,crimson:/#dc143c(ff)?(?!\w)/gi,cyan:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,darkblue:/#00008b(ff)?(?!\w)/gi,darkcyan:/#008b8b(ff)?(?!\w)/gi,darkgrey:/#a9a9a9(ff)?(?!\w)/gi,darkred:/#8b0000(ff)?(?!\w)/gi,deeppink:/#ff1493(ff)?(?!\w)/gi,dimgrey:/#696969(ff)?(?!\w)/gi,gold:/#ffd700(ff)?(?!\w)/gi,green:/#008000(ff)?(?!\w)/gi,grey:/#808080(ff)?(?!\w)/gi,honeydew:/#f0fff0(ff)?(?!\w)/gi,hotpink:/#ff69b4(ff)?(?!\w)/gi,indigo:/#4b0082(ff)?(?!\w)/gi,ivory:/#fffff0(ff)?(?!\w)/gi,khaki:/#f0e68c(ff)?(?!\w)/gi,lavender:/#e6e6fa(ff)?(?!\w)/gi,lime:/#00ff00(ff)?(?!\w)|#0f0(f)?(?!\w)/gi,linen:/#faf0e6(ff)?(?!\w)/gi,maroon:/#800000(ff)?(?!\w)/gi,moccasin:/#ffe4b5(ff)?(?!\w)/gi,navy:/#000080(ff)?(?!\w)/gi,oldlace:/#fdf5e6(ff)?(?!\w)/gi,olive:/#808000(ff)?(?!\w)/gi,orange:/#ffa500(ff)?(?!\w)/gi,orchid:/#da70d6(ff)?(?!\w)/gi,peru:/#cd853f(ff)?(?!\w)/gi,pink:/#ffc0cb(ff)?(?!\w)/gi,plum:/#dda0dd(ff)?(?!\w)/gi,purple:/#800080(ff)?(?!\w)/gi,red:/#ff0000(ff)?(?!\w)|#f00(f)?(?!\w)/gi,salmon:/#fa8072(ff)?(?!\w)/gi,seagreen:/#2e8b57(ff)?(?!\w)/gi,seashell:/#fff5ee(ff)?(?!\w)/gi,sienna:/#a0522d(ff)?(?!\w)/gi,silver:/#c0c0c0(ff)?(?!\w)/gi,skyblue:/#87ceeb(ff)?(?!\w)/gi,snow:/#fffafa(ff)?(?!\w)/gi,tan:/#d2b48c(ff)?(?!\w)/gi,teal:/#008080(ff)?(?!\w)/gi,thistle:/#d8bfd8(ff)?(?!\w)/gi,tomato:/#ff6347(ff)?(?!\w)/gi,violet:/#ee82ee(ff)?(?!\w)/gi,wheat:/#f5deb3(ff)?(?!\w)/gi,white:/#ffffff(ff)?(?!\w)|#fff(f)?(?!\w)/gi}});var K1=x((rq,J1)=>{l();var Kl=Q1(),Xl={whitespace:/\s+/g,urlHexPairs:/%[\dA-F]{2}/g,quotes:/"/g};function nT(t){return t.trim().replace(Xl.whitespace," ")}function sT(t){return encodeURIComponent(t).replace(Xl.urlHexPairs,aT)}function oT(t){return Object.keys(Kl).forEach(function(e){Kl[e].test(t)&&(t=t.replace(Kl[e],e))}),t}function aT(t){switch(t){case"%20":return" ";case"%3D":return"=";case"%3A":return":";case"%2F":return"/";default:return t.toLowerCase()}}function Zl(t){if(typeof t!="string")throw new TypeError("Expected a string, but received "+typeof t);t.charCodeAt(0)===65279&&(t=t.slice(1));var e=oT(nT(t)).replace(Xl.quotes,"'");return"data:image/svg+xml,"+sT(e)}Zl.toSrcset=function(e){return Zl(e).replace(/ /g,"%20")};J1.exports=Zl});function X1(t,e){return{handler:t,config:e}}var Z1,ey=C(()=>{l();X1.withOptions=function(t,e=()=>({})){let r=function(i){return{__options:i,handler:t(i),config:e(i)}};return r.__isOptionsFunction=!0,r.__pluginFunction=t,r.__configFunction=e,r};Z1=X1});var Wn={};he(Wn,{default:()=>lT});var lT,Vn=C(()=>{l();ey();lT=Z1});function tt(t){return Array.isArray(t)?t.map(e=>tt(e)):typeof t=="object"&&t!==null?Object.fromEntries(Object.entries(t).map(([e,r])=>[e,tt(r)])):t}var Gn=C(()=>{l()});var Hn=x((oq,ty)=>{l();ty.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:t})=>({...t("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:t})=>t("blur"),backdropBrightness:({theme:t})=>t("brightness"),backdropContrast:({theme:t})=>t("contrast"),backdropGrayscale:({theme:t})=>t("grayscale"),backdropHueRotate:({theme:t})=>t("hueRotate"),backdropInvert:({theme:t})=>t("invert"),backdropOpacity:({theme:t})=>t("opacity"),backdropSaturate:({theme:t})=>t("saturate"),backdropSepia:({theme:t})=>t("sepia"),backgroundColor:({theme:t})=>t("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:t})=>t("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"0",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:t})=>({...t("colors"),DEFAULT:t("colors.gray.200","currentColor")}),borderOpacity:({theme:t})=>t("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:t})=>({...t("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:t})=>t("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:t})=>t("colors"),colors:({colors:t})=>({inherit:t.inherit,current:t.current,transparent:t.transparent,black:t.black,white:t.white,slate:t.slate,gray:t.gray,zinc:t.zinc,neutral:t.neutral,stone:t.stone,red:t.red,orange:t.orange,amber:t.amber,yellow:t.yellow,lime:t.lime,green:t.green,emerald:t.emerald,teal:t.teal,cyan:t.cyan,sky:t.sky,blue:t.blue,indigo:t.indigo,violet:t.violet,purple:t.purple,fuchsia:t.fuchsia,pink:t.pink,rose:t.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:t})=>t("borderColor"),divideOpacity:({theme:t})=>t("borderOpacity"),divideWidth:({theme:t})=>t("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:t})=>({none:"none",...t("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:t})=>t("spacing"),gradientColorStops:({theme:t})=>t("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:t})=>({auto:"auto",...t("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:t})=>({...t("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:t,breakpoints:e})=>({...t("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(t("screens"))}),minHeight:({theme:t})=>({...t("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:t})=>({...t("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},outlineColor:({theme:t})=>t("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:t})=>t("spacing"),placeholderColor:({theme:t})=>t("colors"),placeholderOpacity:({theme:t})=>t("opacity"),ringColor:({theme:t})=>({DEFAULT:t("colors.blue.500","#3b82f6"),...t("colors")}),ringOffsetColor:({theme:t})=>t("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:t})=>({DEFAULT:"0.5",...t("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:t})=>({...t("spacing")}),scrollPadding:({theme:t})=>t("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:t})=>({...t("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:t})=>({none:"none",...t("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:t})=>t("colors"),textDecorationColor:({theme:t})=>t("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:t})=>({...t("spacing")}),textOpacity:({theme:t})=>t("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:t})=>({...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:t})=>({auto:"auto",...t("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}});var eu={};he(eu,{default:()=>uT});var ry,uT,tu=C(()=>{l();Gn();ry=G(Hn()),uT=tt(ry.default.theme)});function ru(t,e,r){typeof h!="undefined"&&h.env.JEST_WORKER_ID||r&&iy.has(r)||(r&&iy.add(r),console.warn(""),e.forEach(i=>console.warn(t,"-",i)))}function iu(t){return ke.dim(t)}var iy,rt,Yn=C(()=>{l();Ri();iy=new Set;rt={info(t,e){ru(ke.bold(ke.cyan("info")),...Array.isArray(t)?[t]:[e,t])},warn(t,e){["content-problems"].includes(t)||ru(ke.bold(ke.yellow("warn")),...Array.isArray(t)?[t]:[e,t])},risk(t,e){ru(ke.bold(ke.magenta("risk")),...Array.isArray(t)?[t]:[e,t])}}});var Qn={};he(Qn,{default:()=>nu});function si({version:t,from:e,to:r}){rt.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${t}, \`${e}\` has been renamed to \`${r}\`.`,"Update your configuration file to silence this warning."])}var nu,oi=C(()=>{l();Yn();nu={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return si({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return si({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return si({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return si({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return si({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}});var ly=x((cq,ay)=>{l();var Jn=K1(),fT=(Vn(),Wn).default,ny=(tu(),eu).default,it=(oi(),Qn).default,[cT,{lineHeight:pT}]=ny.fontSize.base,{spacing:je,borderWidth:sy,borderRadius:oy}=ny,dT=fT.withOptions(function(t={strategy:"base"}){return function({addBase:e,theme:r}){let i=t.strategy,n=[{base:["[type='text']","[type='email']","[type='url']","[type='password']","[type='number']","[type='date']","[type='datetime-local']","[type='month']","[type='search']","[type='tel']","[type='time']","[type='week']","[multiple]","textarea","select"],class:[".form-input",".form-textarea",".form-select",".form-multiselect"],styles:{appearance:"none","background-color":"#fff","border-color":r("colors.gray.500",it.gray[500]),"border-width":sy.DEFAULT,"border-radius":oy.none,"padding-top":je[2],"padding-right":je[3],"padding-bottom":je[2],"padding-left":je[3],"font-size":cT,"line-height":pT,"--tw-shadow":"0 0 #0000","&:focus":{outline:"2px solid transparent","outline-offset":"2px","--tw-ring-inset":"var(--tw-empty,/*!*/ /*!*/)","--tw-ring-offset-width":"0px","--tw-ring-offset-color":"#fff","--tw-ring-color":r("colors.blue.600",it.blue[600]),"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":"var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)","box-shadow":"var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)","border-color":r("colors.blue.600",it.blue[600])}}},{base:["input::placeholder","textarea::placeholder"],class:[".form-input::placeholder",".form-textarea::placeholder"],styles:{color:r("colors.gray.500",it.gray[500]),opacity:"1"}},{base:["::-webkit-datetime-edit-fields-wrapper"],class:[".form-input::-webkit-datetime-edit-fields-wrapper"],styles:{padding:"0"}},{base:["::-webkit-date-and-time-value"],class:[".form-input::-webkit-date-and-time-value"],styles:{"min-height":"1.5em"}},{base:["select"],class:[".form-select"],styles:{"background-image":`url("${Jn(`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20"><path stroke="${r("colors.gray.500",it.gray[500])}" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6 8l4 4 4-4"/></svg>`)}")`,"background-position":`right ${je[2]} center`,"background-repeat":"no-repeat","background-size":"1.5em 1.5em","padding-right":je[10],"color-adjust":"exact"}},{base:["[multiple]"],class:null,styles:{"background-image":"initial","background-position":"initial","background-repeat":"unset","background-size":"initial","padding-right":je[3],"color-adjust":"unset"}},{base:["[type='checkbox']","[type='radio']"],class:[".form-checkbox",".form-radio"],styles:{appearance:"none",padding:"0","color-adjust":"exact",display:"inline-block","vertical-align":"middle","background-origin":"border-box","user-select":"none","flex-shrink":"0",height:je[4],width:je[4],color:r("colors.blue.600",it.blue[600]),"background-color":"#fff","border-color":r("colors.gray.500",it.gray[500]),"border-width":sy.DEFAULT,"--tw-shadow":"0 0 #0000"}},{base:["[type='checkbox']"],class:[".form-checkbox"],styles:{"border-radius":oy.none}},{base:["[type='radio']"],class:[".form-radio"],styles:{"border-radius":"100%"}},{base:["[type='checkbox']:focus","[type='radio']:focus"],class:[".form-checkbox:focus",".form-radio:focus"],styles:{outline:"2px solid transparent","outline-offset":"2px","--tw-ring-inset":"var(--tw-empty,/*!*/ /*!*/)","--tw-ring-offset-width":"2px","--tw-ring-offset-color":"#fff","--tw-ring-color":r("colors.blue.600",it.blue[600]),"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":"var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)","box-shadow":"var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)"}},{base:["[type='checkbox']:checked","[type='radio']:checked"],class:[".form-checkbox:checked",".form-radio:checked"],styles:{"border-color":"transparent","background-color":"currentColor","background-size":"100% 100%","background-position":"center","background-repeat":"no-repeat"}},{base:["[type='checkbox']:checked"],class:[".form-checkbox:checked"],styles:{"background-image":`url("${Jn('<svg viewBox="0 0 16 16" fill="white" xmlns="http://www.w3.org/2000/svg"><path d="M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z"/></svg>')}")`}},{base:["[type='radio']:checked"],class:[".form-radio:checked"],styles:{"background-image":`url("${Jn('<svg viewBox="0 0 16 16" fill="white" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" r="3"/></svg>')}")`}},{base:["[type='checkbox']:checked:hover","[type='checkbox']:checked:focus","[type='radio']:checked:hover","[type='radio']:checked:focus"],class:[".form-checkbox:checked:hover",".form-checkbox:checked:focus",".form-radio:checked:hover",".form-radio:checked:focus"],styles:{"border-color":"transparent","background-color":"currentColor"}},{base:["[type='checkbox']:indeterminate"],class:[".form-checkbox:indeterminate"],styles:{"background-image":`url("${Jn('<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16"><path stroke="white" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 8h8"/></svg>')}")`,"border-color":"transparent","background-color":"currentColor","background-size":"100% 100%","background-position":"center","background-repeat":"no-repeat"}},{base:["[type='checkbox']:indeterminate:hover","[type='checkbox']:indeterminate:focus"],class:[".form-checkbox:indeterminate:hover",".form-checkbox:indeterminate:focus"],styles:{"border-color":"transparent","background-color":"currentColor"}},{base:["[type='file']"],class:null,styles:{background:"unset","border-color":"inherit","border-width":"0","border-radius":"0",padding:"0","font-size":"unset","line-height":"inherit"}},{base:["[type='file']:focus"],class:null,styles:{outline:"1px solid ButtonText",outline:"1px auto -webkit-focus-ring-color"}}];e(n.map(s=>s[i]===null?null:{[s[i]]:s.styles}).filter(Boolean))}});ay.exports=dT});var Ly=x((ci,nr)=>{l();var hT=200,uy="__lodash_hash_undefined__",mT=800,gT=16,fy=9007199254740991,cy="[object Arguments]",yT="[object Array]",bT="[object AsyncFunction]",wT="[object Boolean]",xT="[object Date]",vT="[object Error]",py="[object Function]",kT="[object GeneratorFunction]",ST="[object Map]",CT="[object Number]",TT="[object Null]",dy="[object Object]",_T="[object Proxy]",AT="[object RegExp]",OT="[object Set]",ET="[object String]",PT="[object Undefined]",DT="[object WeakMap]",qT="[object ArrayBuffer]",BT="[object DataView]",RT="[object Float32Array]",IT="[object Float64Array]",zT="[object Int8Array]",LT="[object Int16Array]",FT="[object Int32Array]",MT="[object Uint8Array]",NT="[object Uint8ClampedArray]",$T="[object Uint16Array]",jT="[object Uint32Array]",UT=/[\\^$.*+?()[\]{}|]/g,WT=/^\[object .+?Constructor\]$/,VT=/^(?:0|[1-9]\d*)$/,V={};V[RT]=V[IT]=V[zT]=V[LT]=V[FT]=V[MT]=V[NT]=V[$T]=V[jT]=!0;V[cy]=V[yT]=V[qT]=V[wT]=V[BT]=V[xT]=V[vT]=V[py]=V[ST]=V[CT]=V[dy]=V[AT]=V[OT]=V[ET]=V[DT]=!1;var hy=typeof global=="object"&&global&&global.Object===Object&&global,GT=typeof self=="object"&&self&&self.Object===Object&&self,ai=hy||GT||Function("return this")(),my=typeof ci=="object"&&ci&&!ci.nodeType&&ci,li=my&&typeof nr=="object"&&nr&&!nr.nodeType&&nr,gy=li&&li.exports===my,su=gy&&hy.process,yy=function(){try{var t=li&&li.require&&li.require("util").types;return t||su&&su.binding&&su.binding("util")}catch(e){}}(),by=yy&&yy.isTypedArray;function HT(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}function YT(t,e){for(var r=-1,i=Array(t);++r<t;)i[r]=e(r);return i}function QT(t){return function(e){return t(e)}}function JT(t,e){return t==null?void 0:t[e]}function KT(t,e){return function(r){return t(e(r))}}var XT=Array.prototype,ZT=Function.prototype,Kn=Object.prototype,ou=ai["__core-js_shared__"],Xn=ZT.toString,Ue=Kn.hasOwnProperty,wy=function(){var t=/[^.]+$/.exec(ou&&ou.keys&&ou.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),xy=Kn.toString,e_=Xn.call(Object),t_=RegExp("^"+Xn.call(Ue).replace(UT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Zn=gy?ai.Buffer:void 0,vy=ai.Symbol,ky=ai.Uint8Array,Sy=Zn?Zn.allocUnsafe:void 0,Cy=KT(Object.getPrototypeOf,Object),Ty=Object.create,r_=Kn.propertyIsEnumerable,i_=XT.splice,xt=vy?vy.toStringTag:void 0,es=function(){try{var t=uu(Object,"defineProperty");return t({},"",{}),t}catch(e){}}(),n_=Zn?Zn.isBuffer:void 0,_y=Math.max,s_=Date.now,Ay=uu(ai,"Map"),ui=uu(Object,"create"),o_=function(){function t(){}return function(e){if(!kt(e))return{};if(Ty)return Ty(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();function vt(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var i=t[e];this.set(i[0],i[1])}}function a_(){this.__data__=ui?ui(null):{},this.size=0}function l_(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function u_(t){var e=this.__data__;if(ui){var r=e[t];return r===uy?void 0:r}return Ue.call(e,t)?e[t]:void 0}function f_(t){var e=this.__data__;return ui?e[t]!==void 0:Ue.call(e,t)}function c_(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=ui&&e===void 0?uy:e,this}vt.prototype.clear=a_;vt.prototype.delete=l_;vt.prototype.get=u_;vt.prototype.has=f_;vt.prototype.set=c_;function We(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var i=t[e];this.set(i[0],i[1])}}function p_(){this.__data__=[],this.size=0}function d_(t){var e=this.__data__,r=ts(e,t);if(r<0)return!1;var i=e.length-1;return r==i?e.pop():i_.call(e,r,1),--this.size,!0}function h_(t){var e=this.__data__,r=ts(e,t);return r<0?void 0:e[r][1]}function m_(t){return ts(this.__data__,t)>-1}function g_(t,e){var r=this.__data__,i=ts(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}We.prototype.clear=p_;We.prototype.delete=d_;We.prototype.get=h_;We.prototype.has=m_;We.prototype.set=g_;function rr(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var i=t[e];this.set(i[0],i[1])}}function y_(){this.size=0,this.__data__={hash:new vt,map:new(Ay||We),string:new vt}}function b_(t){var e=is(this,t).delete(t);return this.size-=e?1:0,e}function w_(t){return is(this,t).get(t)}function x_(t){return is(this,t).has(t)}function v_(t,e){var r=is(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}rr.prototype.clear=y_;rr.prototype.delete=b_;rr.prototype.get=w_;rr.prototype.has=x_;rr.prototype.set=v_;function ir(t){var e=this.__data__=new We(t);this.size=e.size}function k_(){this.__data__=new We,this.size=0}function S_(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}function C_(t){return this.__data__.get(t)}function T_(t){return this.__data__.has(t)}function __(t,e){var r=this.__data__;if(r instanceof We){var i=r.__data__;if(!Ay||i.length<hT-1)return i.push([t,e]),this.size=++r.size,this;r=this.__data__=new rr(i)}return r.set(t,e),this.size=r.size,this}ir.prototype.clear=k_;ir.prototype.delete=S_;ir.prototype.get=C_;ir.prototype.has=T_;ir.prototype.set=__;function A_(t,e){var r=pu(t),i=!r&&cu(t),n=!r&&!i&&qy(t),s=!r&&!i&&!n&&Ry(t),o=r||i||n||s,a=o?YT(t.length,String):[],u=a.length;for(var c in t)(e||Ue.call(t,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||Py(c,u)))&&a.push(c);return a}function au(t,e,r){(r!==void 0&&!ns(t[e],r)||r===void 0&&!(e in t))&&lu(t,e,r)}function O_(t,e,r){var i=t[e];(!(Ue.call(t,e)&&ns(i,r))||r===void 0&&!(e in t))&&lu(t,e,r)}function ts(t,e){for(var r=t.length;r--;)if(ns(t[r][0],e))return r;return-1}function lu(t,e,r){e=="__proto__"&&es?es(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var E_=j_();function rs(t){return t==null?t===void 0?PT:TT:xt&&xt in Object(t)?U_(t):Q_(t)}function Oy(t){return fi(t)&&rs(t)==cy}function P_(t){if(!kt(t)||H_(t))return!1;var e=hu(t)?t_:WT;return e.test(Z_(t))}function D_(t){return fi(t)&&By(t.length)&&!!V[rs(t)]}function q_(t){if(!kt(t))return Y_(t);var e=Dy(t),r=[];for(var i in t)i=="constructor"&&(e||!Ue.call(t,i))||r.push(i);return r}function Ey(t,e,r,i,n){t!==e&&E_(e,function(s,o){if(n||(n=new ir),kt(s))B_(t,e,o,r,Ey,i,n);else{var a=i?i(fu(t,o),s,o+"",t,e,n):void 0;a===void 0&&(a=s),au(t,o,a)}},Iy)}function B_(t,e,r,i,n,s,o){var a=fu(t,r),u=fu(e,r),c=o.get(u);if(c){au(t,r,c);return}var f=s?s(a,u,r+"",t,e,o):void 0,d=f===void 0;if(d){var g=pu(u),y=!g&&qy(u),b=!g&&!y&&Ry(u);f=u,g||y||b?pu(a)?f=a:eA(a)?f=M_(a):y?(d=!1,f=z_(u,!0)):b?(d=!1,f=F_(u,!0)):f=[]:tA(u)||cu(u)?(f=a,cu(a)?f=rA(a):(!kt(a)||hu(a))&&(f=W_(u))):d=!1}d&&(o.set(u,f),n(f,u,i,s,o),o.delete(u)),au(t,r,f)}function R_(t,e){return K_(J_(t,e,zy),t+"")}var I_=es?function(t,e){return es(t,"toString",{configurable:!0,enumerable:!1,value:nA(e),writable:!0})}:zy;function z_(t,e){if(e)return t.slice();var r=t.length,i=Sy?Sy(r):new t.constructor(r);return t.copy(i),i}function L_(t){var e=new t.constructor(t.byteLength);return new ky(e).set(new ky(t)),e}function F_(t,e){var r=e?L_(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function M_(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r<i;)e[r]=t[r];return e}function N_(t,e,r,i){var n=!r;r||(r={});for(var s=-1,o=e.length;++s<o;){var a=e[s],u=i?i(r[a],t[a],a,r,t):void 0;u===void 0&&(u=t[a]),n?lu(r,a,u):O_(r,a,u)}return r}function $_(t){return R_(function(e,r){var i=-1,n=r.length,s=n>1?r[n-1]:void 0,o=n>2?r[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&V_(r[0],r[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var a=r[i];a&&t(e,a,i,s)}return e})}function j_(t){return function(e,r,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var u=o[t?a:++n];if(r(s[u],u,s)===!1)break}return e}}function is(t,e){var r=t.__data__;return G_(e)?r[typeof e=="string"?"string":"hash"]:r.map}function uu(t,e){var r=JT(t,e);return P_(r)?r:void 0}function U_(t){var e=Ue.call(t,xt),r=t[xt];try{t[xt]=void 0;var i=!0}catch(s){}var n=xy.call(t);return i&&(e?t[xt]=r:delete t[xt]),n}function W_(t){return typeof t.constructor=="function"&&!Dy(t)?o_(Cy(t)):{}}function Py(t,e){var r=typeof t;return e=e??fy,!!e&&(r=="number"||r!="symbol"&&VT.test(t))&&t>-1&&t%1==0&&t<e}function V_(t,e,r){if(!kt(r))return!1;var i=typeof e;return(i=="number"?du(r)&&Py(e,r.length):i=="string"&&e in r)?ns(r[e],t):!1}function G_(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function H_(t){return!!wy&&wy in t}function Dy(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||Kn;return t===r}function Y_(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}function Q_(t){return xy.call(t)}function J_(t,e,r){return e=_y(e===void 0?t.length-1:e,0),function(){for(var i=arguments,n=-1,s=_y(i.length-e,0),o=Array(s);++n<s;)o[n]=i[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=i[n];return a[e]=r(o),HT(t,this,a)}}function fu(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var K_=X_(I_);function X_(t){var e=0,r=0;return function(){var i=s_(),n=gT-(i-r);if(r=i,n>0){if(++e>=mT)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Z_(t){if(t!=null){try{return Xn.call(t)}catch(e){}try{return t+""}catch(e){}}return""}function ns(t,e){return t===e||t!==t&&e!==e}var cu=Oy(function(){return arguments}())?Oy:function(t){return fi(t)&&Ue.call(t,"callee")&&!r_.call(t,"callee")},pu=Array.isArray;function du(t){return t!=null&&By(t.length)&&!hu(t)}function eA(t){return fi(t)&&du(t)}var qy=n_||sA;function hu(t){if(!kt(t))return!1;var e=rs(t);return e==py||e==kT||e==bT||e==_T}function By(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=fy}function kt(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function fi(t){return t!=null&&typeof t=="object"}function tA(t){if(!fi(t)||rs(t)!=dy)return!1;var e=Cy(t);if(e===null)return!0;var r=Ue.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&Xn.call(r)==e_}var Ry=by?QT(by):D_;function rA(t){return N_(t,Iy(t))}function Iy(t){return du(t)?A_(t,!0):q_(t)}var iA=$_(function(t,e,r){Ey(t,e,r)});function nA(t){return function(){return t}}function zy(t){return t}function sA(){return!1}nr.exports=iA});var My=x((pq,Fy)=>{l();function oA(){if(!arguments.length)return[];var t=arguments[0];return aA(t)?t:[t]}var aA=Array.isArray;Fy.exports=oA});var $y=x((dq,Ny)=>{l();var w=(oi(),Qn).default,q=t=>t.toFixed(7).replace(/(\.[0-9]+?)0+$/,"$1").replace(/\.0$/,""),De=t=>`${q(t/16)}rem`,p=(t,e)=>`${q(t/e)}em`,mu={sm:{css:[{fontSize:De(14),lineHeight:q(24/14),p:{marginTop:p(16,14),marginBottom:p(16,14)},'[class~="lead"]':{fontSize:p(18,14),lineHeight:q(28/18),marginTop:p(16,18),marginBottom:p(16,18)},blockquote:{marginTop:p(24,18),marginBottom:p(24,18),paddingLeft:p(20,18)},h1:{fontSize:p(30,14),marginTop:"0",marginBottom:p(24,30),lineHeight:q(36/30)},h2:{fontSize:p(20,14),marginTop:p(32,20),marginBottom:p(16,20),lineHeight:q(28/20)},h3:{fontSize:p(18,14),marginTop:p(28,18),marginBottom:p(8,18),lineHeight:q(28/18)},h4:{marginTop:p(20,14),marginBottom:p(8,14),lineHeight:q(20/14)},img:{marginTop:p(24,14),marginBottom:p(24,14)},video:{marginTop:p(24,14),marginBottom:p(24,14)},figure:{marginTop:p(24,14),marginBottom:p(24,14)},"figure > *":{marginTop:"0",marginBottom:"0"},figcaption:{fontSize:p(12,14),lineHeight:q(16/12),marginTop:p(8,12)},code:{fontSize:p(12,14)},"h2 code":{fontSize:p(18,20)},"h3 code":{fontSize:p(16,18)},pre:{fontSize:p(12,14),lineHeight:q(20/12),marginTop:p(20,12),marginBottom:p(20,12),borderRadius:De(4),paddingTop:p(8,12),paddingRight:p(12,12),paddingBottom:p(8,12),paddingLeft:p(12,12)},ol:{marginTop:p(16,14),marginBottom:p(16,14)},ul:{marginTop:p(16,14),marginBottom:p(16,14)},li:{marginTop:p(4,14),marginBottom:p(4,14)},ol:{paddingLeft:p(22,14)},"ol > li":{paddingLeft:p(6,14)},ul:{paddingLeft:p(22,14)},"ul > li":{paddingLeft:p(6,14)},"> ul > li p":{marginTop:p(8,14),marginBottom:p(8,14)},"> ul > li > *:first-child":{marginTop:p(16,14)},"> ul > li > *:last-child":{marginBottom:p(16,14)},"> ol > li > *:first-child":{marginTop:p(16,14)},"> ol > li > *:last-child":{marginBottom:p(16,14)},"ul ul, ul ol, ol ul, ol ol":{marginTop:p(8,14),marginBottom:p(8,14)},hr:{marginTop:p(40,14),marginBottom:p(40,14)},"hr + *":{marginTop:"0"},"h2 + *":{marginTop:"0"},"h3 + *":{marginTop:"0"},"h4 + *":{marginTop:"0"},table:{fontSize:p(12,14),lineHeight:q(18/12)},"thead th":{paddingRight:p(12,12),paddingBottom:p(8,12),paddingLeft:p(12,12)},"thead th:first-child":{paddingLeft:"0"},"thead th:last-child":{paddingRight:"0"},"tbody td":{paddingTop:p(8,12),paddingRight:p(12,12),paddingBottom:p(8,12),paddingLeft:p(12,12)},"tbody td:first-child":{paddingLeft:"0"},"tbody td:last-child":{paddingRight:"0"}},{"> :first-child":{marginTop:"0"},"> :last-child":{marginBottom:"0"}}]},base:{css:[{fontSize:De(16),lineHeight:q(28/16),p:{marginTop:p(20,16),marginBottom:p(20,16)},'[class~="lead"]':{fontSize:p(20,16),lineHeight:q(32/20),marginTop:p(24,20),marginBottom:p(24,20)},blockquote:{marginTop:p(32,20),marginBottom:p(32,20),paddingLeft:p(20,20)},h1:{fontSize:p(36,16),marginTop:"0",marginBottom:p(32,36),lineHeight:q(40/36)},h2:{fontSize:p(24,16),marginTop:p(48,24),marginBottom:p(24,24),lineHeight:q(32/24)},h3:{fontSize:p(20,16),marginTop:p(32,20),marginBottom:p(12,20),lineHeight:q(32/20)},h4:{marginTop:p(24,16),marginBottom:p(8,16),lineHeight:q(24/16)},img:{marginTop:p(32,16),marginBottom:p(32,16)},video:{marginTop:p(32,16),marginBottom:p(32,16)},figure:{marginTop:p(32,16),marginBottom:p(32,16)},"figure > *":{marginTop:"0",marginBottom:"0"},figcaption:{fontSize:p(14,16),lineHeight:q(20/14),marginTop:p(12,14)},code:{fontSize:p(14,16)},"h2 code":{fontSize:p(21,24)},"h3 code":{fontSize:p(18,20)},pre:{fontSize:p(14,16),lineHeight:q(24/14),marginTop:p(24,14),marginBottom:p(24,14),borderRadius:De(6),paddingTop:p(12,14),paddingRight:p(16,14),paddingBottom:p(12,14),paddingLeft:p(16,14)},ol:{marginTop:p(20,16),marginBottom:p(20,16)},ul:{marginTop:p(20,16),marginBottom:p(20,16)},li:{marginTop:p(8,16),marginBottom:p(8,16)},ol:{paddingLeft:p(26,16)},"ol > li":{paddingLeft:p(6,16)},ul:{paddingLeft:p(26,16)},"ul > li":{paddingLeft:p(6,16)},"> ul > li p":{marginTop:p(12,16),marginBottom:p(12,16)},"> ul > li > *:first-child":{marginTop:p(20,16)},"> ul > li > *:last-child":{marginBottom:p(20,16)},"> ol > li > *:first-child":{marginTop:p(20,16)},"> ol > li > *:last-child":{marginBottom:p(20,16)},"ul ul, ul ol, ol ul, ol ol":{marginTop:p(12,16),marginBottom:p(12,16)},hr:{marginTop:p(48,16),marginBottom:p(48,16)},"hr + *":{marginTop:"0"},"h2 + *":{marginTop:"0"},"h3 + *":{marginTop:"0"},"h4 + *":{marginTop:"0"},table:{fontSize:p(14,16),lineHeight:q(24/14)},"thead th":{paddingRight:p(8,14),paddingBottom:p(8,14),paddingLeft:p(8,14)},"thead th:first-child":{paddingLeft:"0"},"thead th:last-child":{paddingRight:"0"},"tbody td":{paddingTop:p(8,14),paddingRight:p(8,14),paddingBottom:p(8,14),paddingLeft:p(8,14)},"tbody td:first-child":{paddingLeft:"0"},"tbody td:last-child":{paddingRight:"0"}},{"> :first-child":{marginTop:"0"},"> :last-child":{marginBottom:"0"}}]},lg:{css:[{fontSize:De(18),lineHeight:q(32/18),p:{marginTop:p(24,18),marginBottom:p(24,18)},'[class~="lead"]':{fontSize:p(22,18),lineHeight:q(32/22),marginTop:p(24,22),marginBottom:p(24,22)},blockquote:{marginTop:p(40,24),marginBottom:p(40,24),paddingLeft:p(24,24)},h1:{fontSize:p(48,18),marginTop:"0",marginBottom:p(40,48),lineHeight:q(48/48)},h2:{fontSize:p(30,18),marginTop:p(56,30),marginBottom:p(32,30),lineHeight:q(40/30)},h3:{fontSize:p(24,18),marginTop:p(40,24),marginBottom:p(16,24),lineHeight:q(36/24)},h4:{marginTop:p(32,18),marginBottom:p(8,18),lineHeight:q(28/18)},img:{marginTop:p(32,18),marginBottom:p(32,18)},video:{marginTop:p(32,18),marginBottom:p(32,18)},figure:{marginTop:p(32,18),marginBottom:p(32,18)},"figure > *":{marginTop:"0",marginBottom:"0"},figcaption:{fontSize:p(16,18),lineHeight:q(24/16),marginTop:p(16,16)},code:{fontSize:p(16,18)},"h2 code":{fontSize:p(26,30)},"h3 code":{fontSize:p(21,24)},pre:{fontSize:p(16,18),lineHeight:q(28/16),marginTop:p(32,16),marginBottom:p(32,16),borderRadius:De(6),paddingTop:p(16,16),paddingRight:p(24,16),paddingBottom:p(16,16),paddingLeft:p(24,16)},ol:{marginTop:p(24,18),marginBottom:p(24,18)},ul:{marginTop:p(24,18),marginBottom:p(24,18)},li:{marginTop:p(12,18),marginBottom:p(12,18)},ol:{paddingLeft:p(28,18)},"ol > li":{paddingLeft:p(8,18)},ul:{paddingLeft:p(28,18)},"ul > li":{paddingLeft:p(8,18)},"> ul > li p":{marginTop:p(16,18),marginBottom:p(16,18)},"> ul > li > *:first-child":{marginTop:p(24,18)},"> ul > li > *:last-child":{marginBottom:p(24,18)},"> ol > li > *:first-child":{marginTop:p(24,18)},"> ol > li > *:last-child":{marginBottom:p(24,18)},"ul ul, ul ol, ol ul, ol ol":{marginTop:p(16,18),marginBottom:p(16,18)},hr:{marginTop:p(56,18),marginBottom:p(56,18)},"hr + *":{marginTop:"0"},"h2 + *":{marginTop:"0"},"h3 + *":{marginTop:"0"},"h4 + *":{marginTop:"0"},table:{fontSize:p(16,18),lineHeight:q(24/16)},"thead th":{paddingRight:p(12,16),paddingBottom:p(12,16),paddingLeft:p(12,16)},"thead th:first-child":{paddingLeft:"0"},"thead th:last-child":{paddingRight:"0"},"tbody td":{paddingTop:p(12,16),paddingRight:p(12,16),paddingBottom:p(12,16),paddingLeft:p(12,16)},"tbody td:first-child":{paddingLeft:"0"},"tbody td:last-child":{paddingRight:"0"}},{"> :first-child":{marginTop:"0"},"> :last-child":{marginBottom:"0"}}]},xl:{css:[{fontSize:De(20),lineHeight:q(36/20),p:{marginTop:p(24,20),marginBottom:p(24,20)},'[class~="lead"]':{fontSize:p(24,20),lineHeight:q(36/24),marginTop:p(24,24),marginBottom:p(24,24)},blockquote:{marginTop:p(48,30),marginBottom:p(48,30),paddingLeft:p(32,30)},h1:{fontSize:p(56,20),marginTop:"0",marginBottom:p(48,56),lineHeight:q(56/56)},h2:{fontSize:p(36,20),marginTop:p(56,36),marginBottom:p(32,36),lineHeight:q(40/36)},h3:{fontSize:p(30,20),marginTop:p(48,30),marginBottom:p(20,30),lineHeight:q(40/30)},h4:{marginTop:p(36,20),marginBottom:p(12,20),lineHeight:q(32/20)},img:{marginTop:p(40,20),marginBottom:p(40,20)},video:{marginTop:p(40,20),marginBottom:p(40,20)},figure:{marginTop:p(40,20),marginBottom:p(40,20)},"figure > *":{marginTop:"0",marginBottom:"0"},figcaption:{fontSize:p(18,20),lineHeight:q(28/18),marginTop:p(18,18)},code:{fontSize:p(18,20)},"h2 code":{fontSize:p(31,36)},"h3 code":{fontSize:p(27,30)},pre:{fontSize:p(18,20),lineHeight:q(32/18),marginTop:p(36,18),marginBottom:p(36,18),borderRadius:De(8),paddingTop:p(20,18),paddingRight:p(24,18),paddingBottom:p(20,18),paddingLeft:p(24,18)},ol:{marginTop:p(24,20),marginBottom:p(24,20)},ul:{marginTop:p(24,20),marginBottom:p(24,20)},li:{marginTop:p(12,20),marginBottom:p(12,20)},ol:{paddingLeft:p(32,20)},"ol > li":{paddingLeft:p(8,20)},ul:{paddingLeft:p(32,20)},"ul > li":{paddingLeft:p(8,20)},"> ul > li p":{marginTop:p(16,20),marginBottom:p(16,20)},"> ul > li > *:first-child":{marginTop:p(24,20)},"> ul > li > *:last-child":{marginBottom:p(24,20)},"> ol > li > *:first-child":{marginTop:p(24,20)},"> ol > li > *:last-child":{marginBottom:p(24,20)},"ul ul, ul ol, ol ul, ol ol":{marginTop:p(16,20),marginBottom:p(16,20)},hr:{marginTop:p(56,20),marginBottom:p(56,20)},"hr + *":{marginTop:"0"},"h2 + *":{marginTop:"0"},"h3 + *":{marginTop:"0"},"h4 + *":{marginTop:"0"},table:{fontSize:p(18,20),lineHeight:q(28/18)},"thead th":{paddingRight:p(12,18),paddingBottom:p(16,18),paddingLeft:p(12,18)},"thead th:first-child":{paddingLeft:"0"},"thead th:last-child":{paddingRight:"0"},"tbody td":{paddingTop:p(16,18),paddingRight:p(12,18),paddingBottom:p(16,18),paddingLeft:p(12,18)},"tbody td:first-child":{paddingLeft:"0"},"tbody td:last-child":{paddingRight:"0"}},{"> :first-child":{marginTop:"0"},"> :last-child":{marginBottom:"0"}}]},"2xl":{css:[{fontSize:De(24),lineHeight:q(40/24),p:{marginTop:p(32,24),marginBottom:p(32,24)},'[class~="lead"]':{fontSize:p(30,24),lineHeight:q(44/30),marginTop:p(32,30),marginBottom:p(32,30)},blockquote:{marginTop:p(64,36),marginBottom:p(64,36),paddingLeft:p(40,36)},h1:{fontSize:p(64,24),marginTop:"0",marginBottom:p(56,64),lineHeight:q(64/64)},h2:{fontSize:p(48,24),marginTop:p(72,48),marginBottom:p(40,48),lineHeight:q(52/48)},h3:{fontSize:p(36,24),marginTop:p(56,36),marginBottom:p(24,36),lineHeight:q(44/36)},h4:{marginTop:p(40,24),marginBottom:p(16,24),lineHeight:q(36/24)},img:{marginTop:p(48,24),marginBottom:p(48,24)},video:{marginTop:p(48,24),marginBottom:p(48,24)},figure:{marginTop:p(48,24),marginBottom:p(48,24)},"figure > *":{marginTop:"0",marginBottom:"0"},figcaption:{fontSize:p(20,24),lineHeight:q(32/20),marginTop:p(20,20)},code:{fontSize:p(20,24)},"h2 code":{fontSize:p(42,48)},"h3 code":{fontSize:p(32,36)},pre:{fontSize:p(20,24),lineHeight:q(36/20),marginTop:p(40,20),marginBottom:p(40,20),borderRadius:De(8),paddingTop:p(24,20),paddingRight:p(32,20),paddingBottom:p(24,20),paddingLeft:p(32,20)},ol:{marginTop:p(32,24),marginBottom:p(32,24)},ul:{marginTop:p(32,24),marginBottom:p(32,24)},li:{marginTop:p(12,24),marginBottom:p(12,24)},ol:{paddingLeft:p(38,24)},"ol > li":{paddingLeft:p(10,24)},ul:{paddingLeft:p(38,24)},"ul > li":{paddingLeft:p(10,24)},"> ul > li p":{marginTop:p(20,24),marginBottom:p(20,24)},"> ul > li > *:first-child":{marginTop:p(32,24)},"> ul > li > *:last-child":{marginBottom:p(32,24)},"> ol > li > *:first-child":{marginTop:p(32,24)},"> ol > li > *:last-child":{marginBottom:p(32,24)},"ul ul, ul ol, ol ul, ol ol":{marginTop:p(16,24),marginBottom:p(16,24)},hr:{marginTop:p(72,24),marginBottom:p(72,24)},"hr + *":{marginTop:"0"},"h2 + *":{marginTop:"0"},"h3 + *":{marginTop:"0"},"h4 + *":{marginTop:"0"},table:{fontSize:p(20,24),lineHeight:q(28/20)},"thead th":{paddingRight:p(12,20),paddingBottom:p(16,20),paddingLeft:p(12,20)},"thead th:first-child":{paddingLeft:"0"},"thead th:last-child":{paddingRight:"0"},"tbody td":{paddingTop:p(16,20),paddingRight:p(12,20),paddingBottom:p(16,20),paddingLeft:p(12,20)},"tbody td:first-child":{paddingLeft:"0"},"tbody td:last-child":{paddingRight:"0"}},{"> :first-child":{marginTop:"0"},"> :last-child":{marginBottom:"0"}}]},invert:{css:{"--tw-prose-body":"var(--tw-prose-invert-body)","--tw-prose-headings":"var(--tw-prose-invert-headings)","--tw-prose-lead":"var(--tw-prose-invert-lead)","--tw-prose-links":"var(--tw-prose-invert-links)","--tw-prose-bold":"var(--tw-prose-invert-bold)","--tw-prose-counters":"var(--tw-prose-invert-counters)","--tw-prose-bullets":"var(--tw-prose-invert-bullets)","--tw-prose-hr":"var(--tw-prose-invert-hr)","--tw-prose-quotes":"var(--tw-prose-invert-quotes)","--tw-prose-quote-borders":"var(--tw-prose-invert-quote-borders)","--tw-prose-captions":"var(--tw-prose-invert-captions)","--tw-prose-code":"var(--tw-prose-invert-code)","--tw-prose-pre-code":"var(--tw-prose-invert-pre-code)","--tw-prose-pre-bg":"var(--tw-prose-invert-pre-bg)","--tw-prose-th-borders":"var(--tw-prose-invert-th-borders)","--tw-prose-td-borders":"var(--tw-prose-invert-td-borders)"}},slate:{css:{"--tw-prose-body":w.slate[700],"--tw-prose-headings":w.slate[900],"--tw-prose-lead":w.slate[600],"--tw-prose-links":w.slate[900],"--tw-prose-bold":w.slate[900],"--tw-prose-counters":w.slate[500],"--tw-prose-bullets":w.slate[300],"--tw-prose-hr":w.slate[200],"--tw-prose-quotes":w.slate[900],"--tw-prose-quote-borders":w.slate[200],"--tw-prose-captions":w.slate[500],"--tw-prose-code":w.slate[900],"--tw-prose-pre-code":w.slate[200],"--tw-prose-pre-bg":w.slate[800],"--tw-prose-th-borders":w.slate[300],"--tw-prose-td-borders":w.slate[200],"--tw-prose-invert-body":w.slate[300],"--tw-prose-invert-headings":w.white,"--tw-prose-invert-lead":w.slate[400],"--tw-prose-invert-links":w.white,"--tw-prose-invert-bold":w.white,"--tw-prose-invert-counters":w.slate[400],"--tw-prose-invert-bullets":w.slate[600],"--tw-prose-invert-hr":w.slate[700],"--tw-prose-invert-quotes":w.slate[100],"--tw-prose-invert-quote-borders":w.slate[700],"--tw-prose-invert-captions":w.slate[400],"--tw-prose-invert-code":w.white,"--tw-prose-invert-pre-code":w.slate[300],"--tw-prose-invert-pre-bg":"rgb(0 0 0 / 50%)","--tw-prose-invert-th-borders":w.slate[600],"--tw-prose-invert-td-borders":w.slate[700]}},gray:{css:{"--tw-prose-body":w.gray[700],"--tw-prose-headings":w.gray[900],"--tw-prose-lead":w.gray[600],"--tw-prose-links":w.gray[900],"--tw-prose-bold":w.gray[900],"--tw-prose-counters":w.gray[500],"--tw-prose-bullets":w.gray[300],"--tw-prose-hr":w.gray[200],"--tw-prose-quotes":w.gray[900],"--tw-prose-quote-borders":w.gray[200],"--tw-prose-captions":w.gray[500],"--tw-prose-code":w.gray[900],"--tw-prose-pre-code":w.gray[200],"--tw-prose-pre-bg":w.gray[800],"--tw-prose-th-borders":w.gray[300],"--tw-prose-td-borders":w.gray[200],"--tw-prose-invert-body":w.gray[300],"--tw-prose-invert-headings":w.white,"--tw-prose-invert-lead":w.gray[400],"--tw-prose-invert-links":w.white,"--tw-prose-invert-bold":w.white,"--tw-prose-invert-counters":w.gray[400],"--tw-prose-invert-bullets":w.gray[600],"--tw-prose-invert-hr":w.gray[700],"--tw-prose-invert-quotes":w.gray[100],"--tw-prose-invert-quote-borders":w.gray[700],"--tw-prose-invert-captions":w.gray[400],"--tw-prose-invert-code":w.white,"--tw-prose-invert-pre-code":w.gray[300],"--tw-prose-invert-pre-bg":"rgb(0 0 0 / 50%)","--tw-prose-invert-th-borders":w.gray[600],"--tw-prose-invert-td-borders":w.gray[700]}},zinc:{css:{"--tw-prose-body":w.zinc[700],"--tw-prose-headings":w.zinc[900],"--tw-prose-lead":w.zinc[600],"--tw-prose-links":w.zinc[900],"--tw-prose-bold":w.zinc[900],"--tw-prose-counters":w.zinc[500],"--tw-prose-bullets":w.zinc[300],"--tw-prose-hr":w.zinc[200],"--tw-prose-quotes":w.zinc[900],"--tw-prose-quote-borders":w.zinc[200],"--tw-prose-captions":w.zinc[500],"--tw-prose-code":w.zinc[900],"--tw-prose-pre-code":w.zinc[200],"--tw-prose-pre-bg":w.zinc[800],"--tw-prose-th-borders":w.zinc[300],"--tw-prose-td-borders":w.zinc[200],"--tw-prose-invert-body":w.zinc[300],"--tw-prose-invert-headings":w.white,"--tw-prose-invert-lead":w.zinc[400],"--tw-prose-invert-links":w.white,"--tw-prose-invert-bold":w.white,"--tw-prose-invert-counters":w.zinc[400],"--tw-prose-invert-bullets":w.zinc[600],"--tw-prose-invert-hr":w.zinc[700],"--tw-prose-invert-quotes":w.zinc[100],"--tw-prose-invert-quote-borders":w.zinc[700],"--tw-prose-invert-captions":w.zinc[400],"--tw-prose-invert-code":w.white,"--tw-prose-invert-pre-code":w.zinc[300],"--tw-prose-invert-pre-bg":"rgb(0 0 0 / 50%)","--tw-prose-invert-th-borders":w.zinc[600],"--tw-prose-invert-td-borders":w.zinc[700]}},neutral:{css:{"--tw-prose-body":w.neutral[700],"--tw-prose-headings":w.neutral[900],"--tw-prose-lead":w.neutral[600],"--tw-prose-links":w.neutral[900],"--tw-prose-bold":w.neutral[900],"--tw-prose-counters":w.neutral[500],"--tw-prose-bullets":w.neutral[300],"--tw-prose-hr":w.neutral[200],"--tw-prose-quotes":w.neutral[900],"--tw-prose-quote-borders":w.neutral[200],"--tw-prose-captions":w.neutral[500],"--tw-prose-code":w.neutral[900],"--tw-prose-pre-code":w.neutral[200],"--tw-prose-pre-bg":w.neutral[800],"--tw-prose-th-borders":w.neutral[300],"--tw-prose-td-borders":w.neutral[200],"--tw-prose-invert-body":w.neutral[300],"--tw-prose-invert-headings":w.white,"--tw-prose-invert-lead":w.neutral[400],"--tw-prose-invert-links":w.white,"--tw-prose-invert-bold":w.white,"--tw-prose-invert-counters":w.neutral[400],"--tw-prose-invert-bullets":w.neutral[600],"--tw-prose-invert-hr":w.neutral[700],"--tw-prose-invert-quotes":w.neutral[100],"--tw-prose-invert-quote-borders":w.neutral[700],"--tw-prose-invert-captions":w.neutral[400],"--tw-prose-invert-code":w.white,"--tw-prose-invert-pre-code":w.neutral[300],"--tw-prose-invert-pre-bg":"rgb(0 0 0 / 50%)","--tw-prose-invert-th-borders":w.neutral[600],"--tw-prose-invert-td-borders":w.neutral[700]}},stone:{css:{"--tw-prose-body":w.stone[700],"--tw-prose-headings":w.stone[900],"--tw-prose-lead":w.stone[600],"--tw-prose-links":w.stone[900],"--tw-prose-bold":w.stone[900],"--tw-prose-counters":w.stone[500],"--tw-prose-bullets":w.stone[300],"--tw-prose-hr":w.stone[200],"--tw-prose-quotes":w.stone[900],"--tw-prose-quote-borders":w.stone[200],"--tw-prose-captions":w.stone[500],"--tw-prose-code":w.stone[900],"--tw-prose-pre-code":w.stone[200],"--tw-prose-pre-bg":w.stone[800],"--tw-prose-th-borders":w.stone[300],"--tw-prose-td-borders":w.stone[200],"--tw-prose-invert-body":w.stone[300],"--tw-prose-invert-headings":w.white,"--tw-prose-invert-lead":w.stone[400],"--tw-prose-invert-links":w.white,"--tw-prose-invert-bold":w.white,"--tw-prose-invert-counters":w.stone[400],"--tw-prose-invert-bullets":w.stone[600],"--tw-prose-invert-hr":w.stone[700],"--tw-prose-invert-quotes":w.stone[100],"--tw-prose-invert-quote-borders":w.stone[700],"--tw-prose-invert-captions":w.stone[400],"--tw-prose-invert-code":w.white,"--tw-prose-invert-pre-code":w.stone[300],"--tw-prose-invert-pre-bg":"rgb(0 0 0 / 50%)","--tw-prose-invert-th-borders":w.stone[600],"--tw-prose-invert-td-borders":w.stone[700]}},red:{css:{"--tw-prose-links":w.red[600],"--tw-prose-invert-links":w.red[500]}},orange:{css:{"--tw-prose-links":w.orange[600],"--tw-prose-invert-links":w.orange[500]}},amber:{css:{"--tw-prose-links":w.amber[600],"--tw-prose-invert-links":w.amber[500]}},yellow:{css:{"--tw-prose-links":w.yellow[600],"--tw-prose-invert-links":w.yellow[500]}},lime:{css:{"--tw-prose-links":w.lime[600],"--tw-prose-invert-links":w.lime[500]}},green:{css:{"--tw-prose-links":w.green[600],"--tw-prose-invert-links":w.green[500]}},emerald:{css:{"--tw-prose-links":w.emerald[600],"--tw-prose-invert-links":w.emerald[500]}},teal:{css:{"--tw-prose-links":w.teal[600],"--tw-prose-invert-links":w.teal[500]}},cyan:{css:{"--tw-prose-links":w.cyan[600],"--tw-prose-invert-links":w.cyan[500]}},sky:{css:{"--tw-prose-links":w.sky[600],"--tw-prose-invert-links":w.sky[500]}},blue:{css:{"--tw-prose-links":w.blue[600],"--tw-prose-invert-links":w.blue[500]}},indigo:{css:{"--tw-prose-links":w.indigo[600],"--tw-prose-invert-links":w.indigo[500]}},violet:{css:{"--tw-prose-links":w.violet[600],"--tw-prose-invert-links":w.violet[500]}},purple:{css:{"--tw-prose-links":w.purple[600],"--tw-prose-invert-links":w.purple[500]}},fuchsia:{css:{"--tw-prose-links":w.fuchsia[600],"--tw-prose-invert-links":w.fuchsia[500]}},pink:{css:{"--tw-prose-links":w.pink[600],"--tw-prose-invert-links":w.pink[500]}},rose:{css:{"--tw-prose-links":w.rose[600],"--tw-prose-invert-links":w.rose[500]}}};Ny.exports={DEFAULT:{css:[{color:"var(--tw-prose-body)",maxWidth:"65ch",'[class~="lead"]':{color:"var(--tw-prose-lead)"},a:{color:"var(--tw-prose-links)",textDecoration:"underline",fontWeight:"500"},strong:{color:"var(--tw-prose-bold)",fontWeight:"600"},ol:{listStyleType:"decimal"},'ol[type="A"]':{listStyleType:"upper-alpha"},'ol[type="a"]':{listStyleType:"lower-alpha"},'ol[type="A" s]':{listStyleType:"upper-alpha"},'ol[type="a" s]':{listStyleType:"lower-alpha"},'ol[type="I"]':{listStyleType:"upper-roman"},'ol[type="i"]':{listStyleType:"lower-roman"},'ol[type="I" s]':{listStyleType:"upper-roman"},'ol[type="i" s]':{listStyleType:"lower-roman"},'ol[type="1"]':{listStyleType:"decimal"},ul:{listStyleType:"disc"},"ol > li::marker":{fontWeight:"400",color:"var(--tw-prose-counters)"},"ul > li::marker":{color:"var(--tw-prose-bullets)"},hr:{borderColor:"var(--tw-prose-hr)",borderTopWidth:1},blockquote:{fontWeight:"500",fontStyle:"italic",color:"var(--tw-prose-quotes)",borderLeftWidth:"0.25rem",borderLeftColor:"var(--tw-prose-quote-borders)",quotes:'"\\201C""\\201D""\\2018""\\2019"'},"blockquote p:first-of-type::before":{content:"open-quote"},"blockquote p:last-of-type::after":{content:"close-quote"},h1:{color:"var(--tw-prose-headings)",fontWeight:"800"},"h1 strong":{fontWeight:"900"},h2:{color:"var(--tw-prose-headings)",fontWeight:"700"},"h2 strong":{fontWeight:"800"},h3:{color:"var(--tw-prose-headings)",fontWeight:"600"},"h3 strong":{fontWeight:"700"},h4:{color:"var(--tw-prose-headings)",fontWeight:"600"},"h4 strong":{fontWeight:"700"},"figure > *":{},figcaption:{color:"var(--tw-prose-captions)"},code:{color:"var(--tw-prose-code)",fontWeight:"600"},"code::before":{content:'"`"'},"code::after":{content:'"`"'},"a code":{color:"var(--tw-prose-links)"},pre:{color:"var(--tw-prose-pre-code)",backgroundColor:"var(--tw-prose-pre-bg)",overflowX:"auto",fontWeight:"400"},"pre code":{backgroundColor:"transparent",borderWidth:"0",borderRadius:"0",padding:"0",fontWeight:"inherit",color:"inherit",fontSize:"inherit",fontFamily:"inherit",lineHeight:"inherit"},"pre code::before":{content:"none"},"pre code::after":{content:"none"},table:{width:"100%",tableLayout:"auto",textAlign:"left",marginTop:p(32,16),marginBottom:p(32,16)},thead:{borderBottomWidth:"1px",borderBottomColor:"var(--tw-prose-th-borders)"},"thead th":{color:"var(--tw-prose-headings)",fontWeight:"600",verticalAlign:"bottom"},"tbody tr":{borderBottomWidth:"1px",borderBottomColor:"var(--tw-prose-td-borders)"},"tbody tr:last-child":{borderBottomWidth:"0"},"tbody td":{verticalAlign:"baseline"}},mu.gray.css,...mu.base.css]},...mu}});var Vy=x((hq,Wy)=>{l();var lA=(Vn(),Wn).default,uA=Ly(),fA=My(),cA=$y(),jy={};function gu(t,{className:e,prefix:r}){let i=r(`.not-${e}`).slice(1);return t.endsWith("::before")?t.startsWith(">")?`> :where(${t.slice(2,-8)}):not(:where([class~="${i}"] *))::before`:`:where(${t.slice(0,-8)}):not(:where([class~="${i}"] *))::before`:t.endsWith("::after")?t.startsWith(">")?`> :where(${t.slice(2,-7)}):not(:where([class~="${i}"] *))::after`:`:where(${t.slice(0,-7)}):not(:where([class~="${i}"] *))::after`:t.endsWith("::marker")?t.startsWith(">")?`> :where(${t.slice(2,-8)}):not(:where([class~="${i}"] *))::marker`:`:where(${t.slice(0,-8)}):not(:where([class~="${i}"] *))::marker`:t.startsWith(">")?`> :where(${t.slice(2)}):not(:where([class~="${i}"] *))`:`:where(${t}):not(:where([class~="${i}"] *))`}function Uy(t){return typeof t=="object"&&t!==null}function pA(t={},{target:e,className:r,prefix:i}){function n(s,o){return e==="legacy"?[s,o]:Array.isArray(o)?[s,o]:Uy(o)?Object.values(o).some(Uy)?[gu(s,{className:r,prefix:i}),o,Object.fromEntries(Object.entries(o).map(([u,c])=>n(u,c)))]:[gu(s,{className:r,prefix:i}),o]:[s,o]}return Object.fromEntries(Object.entries(uA({},...Object.keys(t).filter(s=>jy[s]).map(s=>jy[s](t[s])),...fA(t.css||{}))).map(([s,o])=>n(s,o)))}Wy.exports=lA.withOptions(({className:t="prose",target:e="modern"}={})=>function({addVariant:r,addComponents:i,theme:n,prefix:s}){let o=n("typography"),a={className:t,prefix:s};for(let[u,c=u]of[["headings","h1, h2, h3, h4, th"],["lead",'[class~="lead"]'],["h1"],["h2"],["h3"],["h4"],["p"],["a"],["blockquote"],["figure"],["figcaption"],["strong"],["em"],["code"],["pre"],["ol"],["ul"],["li"],["table"],["thead"],["tr"],["th"],["td"],["img"],["video"],["hr"]])r(`${t}-${u}`,`& :is(${gu(c,a)})`);i(Object.keys(o).map(u=>({[u==="DEFAULT"?`.${t}`:`.${t}-${u}`]:pA(o[u],{target:e,className:t,prefix:s})})))},()=>({theme:{typography:cA}}))});var Gy={};he(Gy,{default:()=>dA});var dA,Hy=C(()=>{l();dA=[ly(),Vy()]});var Qy={};he(Qy,{default:()=>hA});var Yy,hA,Jy=C(()=>{l();Gn();Yy=G(Hn()),hA=tt(Yy.default)});function sr(t){if(t=`${t}`,t==="0")return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(t))return t.replace(/^[+-]?/,r=>r==="-"?"":"-");let e=["var","calc","min","max","clamp"];for(let r of e)if(t.includes(`${r}(`))return`calc(${t} * -1)`}var yu=C(()=>{l()});var Ky,Xy=C(()=>{l();Ky=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","contain","content","forcedColorAdjust"]});function Zy(t,e){return t===void 0?e:Array.isArray(t)?t:[...new Set(e.filter(i=>t!==!1&&t[i]!==!1).concat(Object.keys(t).filter(i=>t[i]!==!1)))]}var eb=C(()=>{l()});function bu(t,...e){for(let r of e){for(let i in r)t?.hasOwnProperty?.(i)||(t[i]=r[i]);for(let i of Object.getOwnPropertySymbols(r))t?.hasOwnProperty?.(i)||(t[i]=r[i])}return t}var tb=C(()=>{l()});function wu(t){if(Array.isArray(t))return t;let e=t.split("[").length-1,r=t.split("]").length-1;if(e!==r)throw new Error(`Path is invalid. Has unbalanced brackets: ${t}`);return t.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var rb=C(()=>{l()});function pi(t,e){return nb.future.includes(e)?t.future==="all"||(t?.future?.[e]??ib[e]??!1):nb.experimental.includes(e)?t.experimental==="all"||(t?.experimental?.[e]??ib[e]??!1):!1}var ib,nb,ss=C(()=>{l();Ri();Yn();ib={optimizeUniversalDefaults:!1,generalizedModifiers:!0,disableColorOpacityUtilitiesByDefault:!1,relativeContentPathsByDefault:!1},nb={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}});function sb(t){(()=>{if(t.purge||!t.content||!Array.isArray(t.content)&&!(typeof t.content=="object"&&t.content!==null))return!1;if(Array.isArray(t.content))return t.content.every(r=>typeof r=="string"?!0:!(typeof r?.raw!="string"||r?.extension&&typeof r?.extension!="string"));if(typeof t.content=="object"&&t.content!==null){if(Object.keys(t.content).some(r=>!["files","relative","extract","transform"].includes(r)))return!1;if(Array.isArray(t.content.files)){if(!t.content.files.every(r=>typeof r=="string"?!0:!(typeof r?.raw!="string"||r?.extension&&typeof r?.extension!="string")))return!1;if(typeof t.content.extract=="object"){for(let r of Object.values(t.content.extract))if(typeof r!="function")return!1}else if(!(t.content.extract===void 0||typeof t.content.extract=="function"))return!1;if(typeof t.content.transform=="object"){for(let r of Object.values(t.content.transform))if(typeof r!="function")return!1}else if(!(t.content.transform===void 0||typeof t.content.transform=="function"))return!1;if(typeof t.content.relative!="boolean"&&typeof t.content.relative!="undefined")return!1}return!0}return!1})()||rt.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),t.safelist=(()=>{let{content:r,purge:i,safelist:n}=t;return Array.isArray(n)?n:Array.isArray(r?.safelist)?r.safelist:Array.isArray(i?.safelist)?i.safelist:Array.isArray(i?.options?.safelist)?i.options.safelist:[]})(),t.blocklist=(()=>{let{blocklist:r}=t;if(Array.isArray(r)){if(r.every(i=>typeof i=="string"))return r;rt.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),typeof t.prefix=="function"?(rt.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),t.prefix=""):t.prefix=t.prefix??"",t.content={relative:(()=>{let{content:r}=t;return r?.relative?r.relative:pi(t,"relativeContentPathsByDefault")})(),files:(()=>{let{content:r,purge:i}=t;return Array.isArray(i)?i:Array.isArray(i?.content)?i.content:Array.isArray(r)?r:Array.isArray(r?.content)?r.content:Array.isArray(r?.files)?r.files:[]})(),extract:(()=>{let r=(()=>t.purge?.extract?t.purge.extract:t.content?.extract?t.content.extract:t.purge?.extract?.DEFAULT?t.purge.extract.DEFAULT:t.content?.extract?.DEFAULT?t.content.extract.DEFAULT:t.purge?.options?.extractors?t.purge.options.extractors:t.content?.options?.extractors?t.content.options.extractors:{})(),i={},n=(()=>{if(t.purge?.options?.defaultExtractor)return t.purge.options.defaultExtractor;if(t.content?.options?.defaultExtractor)return t.content.options.defaultExtractor})();if(n!==void 0&&(i.DEFAULT=n),typeof r=="function")i.DEFAULT=r;else if(Array.isArray(r))for(let{extensions:s,extractor:o}of r??[])for(let a of s)i[a]=o;else typeof r=="object"&&r!==null&&Object.assign(i,r);return i})(),transform:(()=>{let r=(()=>t.purge?.transform?t.purge.transform:t.content?.transform?t.content.transform:t.purge?.transform?.DEFAULT?t.purge.transform.DEFAULT:t.content?.transform?.DEFAULT?t.content.transform.DEFAULT:{})(),i={};return typeof r=="function"&&(i.DEFAULT=r),typeof r=="object"&&r!==null&&Object.assign(i,r),i})()};for(let r of t.content.files)if(typeof r=="string"&&/{([^,]*?)}/g.test(r)){rt.warn("invalid-glob-braces",[`The glob pattern ${iu(r)} in your Tailwind CSS configuration is invalid.`,`Update it to ${iu(r.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return t}var ob=C(()=>{l();ss();Yn()});function nt(t){if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||Object.getPrototypeOf(e)===null}var ab=C(()=>{l()});var lb=C(()=>{l()});var xu,ub=C(()=>{l();xu={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});function as(t,{loose:e=!1}={}){if(typeof t!="string")return null;if(t=t.trim(),t==="transparent")return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(t in xu)return{mode:"rgb",color:xu[t].map(s=>s.toString())};let r=t.replace(gA,(s,o,a,u,c)=>["#",o,o,a,a,u,u,c?c+c:""].join("")).match(mA);if(r!==null)return{mode:"rgb",color:[parseInt(r[1],16),parseInt(r[2],16),parseInt(r[3],16)].map(s=>s.toString()),alpha:r[4]?(parseInt(r[4],16)/255).toString():void 0};let i=t.match(yA)??t.match(bA);if(i===null)return null;let n=[i[2],i[3],i[4]].filter(Boolean).map(s=>s.toString());return n.length===2&&n[0].startsWith("var(")?{mode:i[1],color:[n[0]],alpha:n[1]}:!e&&n.length!==3||n.length<3&&!n.some(s=>/^var\(.*?\)$/.test(s))?null:{mode:i[1],color:n,alpha:i[5]?.toString?.()}}function cb({mode:t,color:e,alpha:r}){let i=r!==void 0;return t==="rgba"||t==="hsla"?`${t}(${e.join(", ")}${i?`, ${r}`:""})`:`${t}(${e.join(" ")}${i?` / ${r}`:""})`}var mA,gA,st,os,fb,ot,yA,bA,vu=C(()=>{l();ub();mA=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,gA=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,st=/(?:\d+|\d*\.\d+)%?/,os=/(?:\s*,\s*|\s+)/,fb=/\s*[,/]\s*/,ot=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,yA=new RegExp(`^(rgba?)\\(\\s*(${st.source}|${ot.source})(?:${os.source}(${st.source}|${ot.source}))?(?:${os.source}(${st.source}|${ot.source}))?(?:${fb.source}(${st.source}|${ot.source}))?\\s*\\)$`),bA=new RegExp(`^(hsla?)\\(\\s*((?:${st.source})(?:deg|rad|grad|turn)?|${ot.source})(?:${os.source}(${st.source}|${ot.source}))?(?:${os.source}(${st.source}|${ot.source}))?(?:${fb.source}(${st.source}|${ot.source}))?\\s*\\)$`)});function di(t,e,r){if(typeof t=="function")return t({opacityValue:e});let i=as(t,{loose:!0});return i===null?r:cb({...i,alpha:e})}var ku=C(()=>{l();vu()});function qe(t,e){let r=[],i=[],n=0,s=!1;for(let o=0;o<t.length;o++){let a=t[o];r.length===0&&a===e[0]&&!s&&(e.length===1||t.slice(o,o+e.length)===e)&&(i.push(t.slice(n,o)),n=o+e.length),s?s=!1:a==="\\"&&(s=!0),a==="("||a==="["||a==="{"?r.push(a):(a===")"&&r[r.length-1]==="("||a==="]"&&r[r.length-1]==="["||a==="}"&&r[r.length-1]==="{")&&r.pop()}return i.push(t.slice(n)),i}var ls=C(()=>{l()});function db(t){return qe(t,",").map(r=>{let i=r.trim(),n={raw:i},s=i.split(xA),o=new Set;for(let a of s)pb.lastIndex=0,!o.has("KEYWORD")&&wA.has(a)?(n.keyword=a,o.add("KEYWORD")):pb.test(a)?o.has("X")?o.has("Y")?o.has("BLUR")?o.has("SPREAD")||(n.spread=a,o.add("SPREAD")):(n.blur=a,o.add("BLUR")):(n.y=a,o.add("Y")):(n.x=a,o.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(a)):n.color=a;return n.valid=n.x!==void 0&&n.y!==void 0,n})}var wA,xA,pb,hb=C(()=>{l();ls();wA=new Set(["inset","inherit","initial","revert","unset"]),xA=/\ +(?![^(]*\))/g,pb=/^-?(\d+|\.\d+)(.*?)$/g});function Su(t){return vA.some(e=>new RegExp(`^${e}\\(.*\\)`).test(t))}function Be(t,e=null,r=!0){let i=e&&kA.has(e.property);return t.startsWith("--")&&!i?`var(${t})`:t.includes("url(")?t.split(/(url\(.*?\))/g).filter(Boolean).map(n=>/^url\(.*?\)$/.test(n)?n:Be(n,e,!1)).join(""):(t=t.replace(/([^\\])_+/g,(n,s)=>s+" ".repeat(n.length-1)).replace(/^_/g," ").replace(/\\_/g,"_"),r&&(t=t.trim()),t=SA(t),t)}function SA(t){let e=["theme"],r=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient"];return t.replace(/(calc|min|max|clamp)\(.+\)/g,i=>{let n="";function s(){let o=n.trimEnd();return o[o.length-1]}for(let o=0;o<i.length;o++){let a=function(f){return f.split("").every((d,g)=>i[o+g]===d)},u=function(f){let d=1/0;for(let y of f){let b=i.indexOf(y,o);b!==-1&&b<d&&(d=b)}let g=i.slice(o,d);return o+=g.length-1,g},c=i[o];if(a("var"))n+=u([")",","]);else if(r.some(f=>a(f))){let f=r.find(d=>a(d));n+=f,o+=f.length-1}else e.some(f=>a(f))?n+=u([")"]):a("[")?n+=u(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(s())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")})}function Cu(t){return t.startsWith("url(")}function Tu(t){return!isNaN(Number(t))||Su(t)}function hi(t){return t.endsWith("%")&&Tu(t.slice(0,-1))||Su(t)}function mi(t){return t==="0"||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${TA}$`).test(t)||Su(t)}function mb(t){return _A.has(t)}function gb(t){let e=db(Be(t));for(let r of e)if(!r.valid)return!1;return!0}function yb(t){let e=0;return qe(t,"_").every(i=>(i=Be(i),i.startsWith("var(")?!0:as(i,{loose:!0})!==null?(e++,!0):!1))?e>0:!1}function bb(t){let e=0;return qe(t,",").every(i=>(i=Be(i),i.startsWith("var(")?!0:Cu(i)||OA(i)||["element(","image(","cross-fade(","image-set("].some(n=>i.startsWith(n))?(e++,!0):!1))?e>0:!1}function OA(t){t=Be(t);for(let e of AA)if(t.startsWith(`${e}(`))return!0;return!1}function wb(t){let e=0;return qe(t,"_").every(i=>(i=Be(i),i.startsWith("var(")?!0:EA.has(i)||mi(i)||hi(i)?(e++,!0):!1))?e>0:!1}function xb(t){let e=0;return qe(t,",").every(i=>(i=Be(i),i.startsWith("var(")?!0:i.includes(" ")&&!/(['"])([^"']+)\1/g.test(i)||/^\d/g.test(i)?!1:(e++,!0)))?e>0:!1}function vb(t){return PA.has(t)}function kb(t){return DA.has(t)}function Sb(t){return qA.has(t)}var vA,kA,CA,TA,_A,AA,EA,PA,DA,qA,_u=C(()=>{l();vu();hb();ls();vA=["min","max","clamp","calc"];kA=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","scroll-timeline","animation-timeline","view-timeline"]);CA=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],TA=`(?:${CA.join("|")})`;_A=new Set(["thin","medium","thick"]);AA=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]);EA=new Set(["center","top","right","bottom","left"]);PA=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]);DA=new Set(["xx-small","x-small","small","medium","large","x-large","xx-large","xxx-large"]);qA=new Set(["larger","smaller"])});function Cb(t){let e=["cover","contain"];return qe(t,",").every(r=>{let i=qe(r,"_").filter(Boolean);return i.length===1&&e.includes(i[0])?!0:i.length!==1&&i.length!==2?!1:i.every(n=>mi(n)||hi(n)||n==="auto")})}var Tb=C(()=>{l();_u();ls()});function _b(t,e){if(!gi(t))return;let r=t.slice(1,-1);if(!!e(r))return Be(r)}function BA(t,e={},r){let i=e[t];if(i!==void 0)return sr(i);if(gi(t)){let n=_b(t,r);return n===void 0?void 0:sr(n)}}function Au(t,e={},{validate:r=()=>!0}={}){let i=e.values?.[t];return i!==void 0?i:e.supportsNegativeValues&&t.startsWith("-")?BA(t.slice(1),e.values,r):_b(t,r)}function gi(t){return t.startsWith("[")&&t.endsWith("]")}function RA(t){let e=t.lastIndexOf("/"),r=t.lastIndexOf("[",e),i=t.indexOf("]",e);return t[e-1]==="]"||t[e+1]==="["||r!==-1&&i!==-1&&r<e&&e<i&&(e=t.lastIndexOf("/",r)),e===-1||e===t.length-1?[t,void 0]:gi(t)&&!t.includes("]/[")?[t,void 0]:[t.slice(0,e),t.slice(e+1)]}function us(t){if(typeof t=="string"&&t.includes("<alpha-value>")){let e=t;return({opacityValue:r=1})=>e.replace("<alpha-value>",r)}return t}function IA(t){return Be(t.slice(1,-1))}function zA(t,e={},{tailwindConfig:r={}}={}){if(e.values?.[t]!==void 0)return us(e.values?.[t]);let[i,n]=RA(t);if(n!==void 0){let s=e.values?.[i]??(gi(i)?i.slice(1,-1):void 0);return s===void 0?void 0:(s=us(s),gi(n)?di(s,IA(n)):r.theme?.opacity?.[n]===void 0?void 0:di(s,r.theme.opacity[n]))}return Au(t,e,{validate:yb})}function LA(t,e={}){return e.values?.[t]}function ne(t){return(e,r)=>Au(e,r,{validate:t})}var FA,Kq,Ab=C(()=>{l();lb();ku();_u();yu();Tb();ss();FA={any:Au,color:zA,url:ne(Cu),image:ne(bb),length:ne(mi),percentage:ne(hi),position:ne(wb),lookup:LA,"generic-name":ne(vb),"family-name":ne(xb),number:ne(Tu),"line-width":ne(mb),"absolute-size":ne(kb),"relative-size":ne(Sb),shadow:ne(gb),size:ne(Cb)},Kq=Object.keys(FA)});function Ou(t){return typeof t=="function"?t({}):t}var Ob=C(()=>{l()});function or(t){return typeof t=="function"}function yi(t,...e){let r=e.pop();for(let i of e)for(let n in i){let s=r(t[n],i[n]);s===void 0?nt(t[n])&&nt(i[n])?t[n]=yi({},t[n],i[n],r):t[n]=i[n]:t[n]=s}return t}function MA(t,...e){return or(t)?t(...e):t}function NA(t){return t.reduce((e,{extend:r})=>yi(e,r,(i,n)=>i===void 0?[n]:Array.isArray(i)?[n,...i]:[n,i]),{})}function $A(t){return{...t.reduce((e,r)=>bu(e,r),{}),extend:NA(t)}}function Eb(t,e){if(Array.isArray(t)&&nt(t[0]))return t.concat(e);if(Array.isArray(e)&&nt(e[0])&&nt(t))return[t,...e];if(Array.isArray(e))return e}function jA({extend:t,...e}){return yi(e,t,(r,i)=>!or(r)&&!i.some(or)?yi({},r,...i,Eb):(n,s)=>yi({},...[r,...i].map(o=>MA(o,n,s)),Eb))}function*UA(t){let e=wu(t);if(e.length===0||(yield e,Array.isArray(t)))return;let r=/^(.*?)\s*\/\s*([^/]+)$/,i=t.match(r);if(i!==null){let[,n,s]=i,o=wu(n);o.alpha=s,yield o}}function WA(t){let e=(r,i)=>{for(let n of UA(r)){let s=0,o=t;for(;o!=null&&s<n.length;)o=o[n[s++]],o=or(o)&&(n.alpha===void 0||s<=n.length-1)?o(e,Eu):o;if(o!==void 0){if(n.alpha!==void 0){let a=us(o);return di(a,n.alpha,Ou(a))}return nt(o)?tt(o):o}}return i};return Object.assign(e,{theme:e,...Eu}),Object.keys(t).reduce((r,i)=>(r[i]=or(t[i])?t[i](e,Eu):t[i],r),{})}function Pb(t){let e=[];return t.forEach(r=>{e=[...e,r];let i=r?.plugins??[];i.length!==0&&i.forEach(n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...Pb([n?.config??{}])]})}),e}function VA(t){return[...t].reduceRight((r,i)=>or(i)?i({corePlugins:r}):Zy(i,r),Ky)}function GA(t){return[...t].reduceRight((r,i)=>[...r,...i],[])}function Pu(t){let e=[...Pb(t),{prefix:"",important:!1,separator:":"}];return sb(bu({theme:WA(jA($A(e.map(r=>r?.theme??{})))),corePlugins:VA(e.map(r=>r.corePlugins)),plugins:GA(t.map(r=>r?.plugins??[]))},...e))}var Eu,Db=C(()=>{l();yu();Xy();eb();oi();tb();rb();ob();ab();Gn();Ab();ku();Ob();Eu={colors:nu,negative(t){return Object.keys(t).filter(e=>t[e]!=="0").reduce((e,r)=>{let i=sr(t[r]);return i!==void 0&&(e[`-${r}`]=i),e},{})},breakpoints(t){return Object.keys(t).filter(e=>typeof t[e]=="string").reduce((e,r)=>({...e,[`screen-${r}`]:t[r]}),{})}}});function fs(t){let e=(t?.presets??[qb.default]).slice().reverse().flatMap(n=>fs(n instanceof Function?n():n)),r={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},i=Object.keys(r).filter(n=>pi(t,n)).map(n=>r[n]);return[t,...i,...e]}var qb,Bb=C(()=>{l();qb=G(Hn());ss()});var Ib={};he(Ib,{default:()=>Rb});function Rb(...t){let[,...e]=fs(t[0]);return Pu([...t,...e])}var zb=C(()=>{l();Db();Bb()});l();"use strict";var HA=Ve(mm()),YA=Ve(ae()),QA=Ve(H1()),JA=Ve((Hy(),Gy)),KA=Ve((tu(),eu)),XA=Ve((Jy(),Qy)),ZA=Ve((oi(),Qn)),eO=Ve((Vn(),Wn)),tO=Ve((zb(),Ib));function Ve(t){return t&&t.__esModule?t:{default:t}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var cs="tailwind",Du="text/tailwindcss",Lb="/template.html",St,Fb=!0,Mb=0,qu=new Set,Bu,Nb="",$b=(t=!1)=>({get(e,r){return(!t||r==="config")&&typeof e[r]=="object"&&e[r]!==null?new Proxy(e[r],$b()):e[r]},set(e,r,i){return e[r]=i,(!t||r==="config")&&Ru(!0),!0}});window[cs]=new Proxy({config:{},defaultTheme:KA.default,defaultConfig:XA.default,colors:ZA.default,plugin:eO.default,resolveConfig:tO.default},$b(!0));function jb(t){Bu.observe(t,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}new MutationObserver(async t=>{let e=!1;if(!Bu){Bu=new MutationObserver(async()=>await Ru(!0));for(let r of document.querySelectorAll(`style[type="${Du}"]`))jb(r)}for(let r of t)for(let i of r.addedNodes)i.nodeType===1&&i.tagName==="STYLE"&&i.getAttribute("type")===Du&&(jb(i),e=!0);await Ru(e)}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0});async function Ru(t=!1){t&&(Mb++,qu.clear());let e="";for(let i of document.querySelectorAll(`style[type="${Du}"]`))e+=i.textContent;let r=new Set;for(let i of document.querySelectorAll("[class]"))for(let n of i.classList)qu.has(n)||r.add(n);if(document.body&&(Fb||r.size>0||e!==Nb||!St||!St.isConnected)){for(let n of r)qu.add(n);Fb=!1,Nb=e,self[Lb]=Array.from(r).join(" ");let{css:i}=await(0,YA.default)([(0,HA.default)({...window[cs].config,_hash:Mb,content:[Lb],plugins:[...JA.default,...Array.isArray(window[cs].config.plugins)?window[cs].config.plugins:[]]}),(0,QA.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!St||!St.isConnected)&&(St=document.createElement("style"),document.head.append(St)),St.textContent=i}}})();
/*! https://mths.be/cssesc v3.0.0 by @mathias */
</script>
<style>pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.source .hll { background-color: #49483e }
.source { background: #232629; color: #cccccc }
.source .c { color: #777777; font-style: italic } /* Comment */
.source .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.source .esc { color: #cccccc } /* Escape */
.source .g { color: #cccccc } /* Generic */
.source .k { color: #7686bb; font-weight: bold } /* Keyword */
.source .l { color: #cccccc } /* Literal */
.source .n { color: #cccccc } /* Name */
.source .o { color: #cccccc } /* Operator */
.source .x { color: #cccccc } /* Other */
.source .p { color: #cccccc } /* Punctuation */
.source .ch { color: #777777; font-style: italic } /* Comment.Hashbang */
.source .cm { color: #777777; font-style: italic } /* Comment.Multiline */
.source .cp { color: #777777; font-style: italic } /* Comment.Preproc */
.source .cpf { color: #777777; font-style: italic } /* Comment.PreprocFile */
.source .c1 { color: #777777; font-style: italic } /* Comment.Single */
.source .cs { color: #777777; font-style: italic } /* Comment.Special */
.source .gd { color: #cccccc } /* Generic.Deleted */
.source .ge { color: #cccccc } /* Generic.Emph */
.source .ges { color: #cccccc } /* Generic.EmphStrong */
.source .gr { color: #cccccc } /* Generic.Error */
.source .gh { color: #cccccc } /* Generic.Heading */
.source .gi { color: #cccccc } /* Generic.Inserted */
.source .go { color: #cccccc } /* Generic.Output */
.source .gp { color: #ffffff } /* Generic.Prompt */
.source .gs { color: #cccccc } /* Generic.Strong */
.source .gu { color: #cccccc } /* Generic.Subheading */
.source .gt { color: #cccccc } /* Generic.Traceback */
.source .kc { color: #7686bb; font-weight: bold } /* Keyword.Constant */
.source .kd { color: #7686bb; font-weight: bold } /* Keyword.Declaration */
.source .kn { color: #7686bb; font-weight: bold } /* Keyword.Namespace */
.source .kp { color: #7686bb; font-weight: bold } /* Keyword.Pseudo */
.source .kr { color: #7686bb; font-weight: bold } /* Keyword.Reserved */
.source .kt { color: #7686bb; font-weight: bold } /* Keyword.Type */
.source .ld { color: #cccccc } /* Literal.Date */
.source .m { color: #4FB8CC } /* Literal.Number */
.source .s { color: #51cc99 } /* Literal.String */
.source .na { color: #cccccc } /* Name.Attribute */
.source .nb { color: #cccccc } /* Name.Builtin */
.source .nc { color: #cccccc } /* Name.Class */
.source .no { color: #cccccc } /* Name.Constant */
.source .nd { color: #cccccc } /* Name.Decorator */
.source .ni { color: #cccccc } /* Name.Entity */
.source .ne { color: #cccccc } /* Name.Exception */
.source .nf { color: #6a6aff } /* Name.Function */
.source .nl { color: #cccccc } /* Name.Label */
.source .nn { color: #cccccc } /* Name.Namespace */
.source .nx { color: #e2828e } /* Name.Other */
.source .py { color: #cccccc } /* Name.Property */
.source .nt { color: #cccccc } /* Name.Tag */
.source .nv { color: #7AB4DB; font-weight: bold } /* Name.Variable */
.source .ow { color: #cccccc } /* Operator.Word */
.source .pm { color: #cccccc } /* Punctuation.Marker */
.source .w { color: #bbbbbb } /* Text.Whitespace */
.source .mb { color: #4FB8CC } /* Literal.Number.Bin */
.source .mf { color: #4FB8CC } /* Literal.Number.Float */
.source .mh { color: #4FB8CC } /* Literal.Number.Hex */
.source .mi { color: #4FB8CC } /* Literal.Number.Integer */
.source .mo { color: #4FB8CC } /* Literal.Number.Oct */
.source .sa { color: #51cc99 } /* Literal.String.Affix */
.source .sb { color: #51cc99 } /* Literal.String.Backtick */
.source .sc { color: #51cc99 } /* Literal.String.Char */
.source .dl { color: #51cc99 } /* Literal.String.Delimiter */
.source .sd { color: #51cc99 } /* Literal.String.Doc */
.source .s2 { color: #51cc99 } /* Literal.String.Double */
.source .se { color: #51cc99 } /* Literal.String.Escape */
.source .sh { color: #51cc99 } /* Literal.String.Heredoc */
.source .si { color: #51cc99 } /* Literal.String.Interpol */
.source .sx { color: #51cc99 } /* Literal.String.Other */
.source .sr { color: #51cc99 } /* Literal.String.Regex */
.source .s1 { color: #51cc99 } /* Literal.String.Single */
.source .ss { color: #51cc99 } /* Literal.String.Symbol */
.source .bp { color: #cccccc } /* Name.Builtin.Pseudo */
.source .fm { color: #6a6aff } /* Name.Function.Magic */
.source .vc { color: #7AB4DB; font-weight: bold } /* Name.Variable.Class */
.source .vg { color: #BE646C; font-weight: bold } /* Name.Variable.Global */
.source .vi { color: #7AB4DB; font-weight: bold } /* Name.Variable.Instance */
.source .vm { color: #7AB4DB; font-weight: bold } /* Name.Variable.Magic */
.source .il { color: #4FB8CC } /* Literal.Number.Integer.Long */</style>
<style>.vega-embed summary {
z-index: 49 !important;
/* ensure that menu is always below navbar*/
}
.source {
background-color: transparent!important;
}
#loading-screen {
background-color: white;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 2000;
padding-top: 50vh;
}
@keyframes fadeinout {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
#loading-animation {
animation: fadeinout 2.5s infinite;
text-align: center;
font-size: 200%;
}
#jswarning {
text-align: center;
color: red;
}</style>
</head>
<body>
<div id="loading-screen">
<p id="loading-animation">Loading Snakemake Report...</p>
<p id="jswarning">Please enable Javascript in your browser to see this report.</p>
</div>
<script>
document.querySelector('#loading-screen #jswarning').style.display = "none";
</script>
<div id="app">
</div>
<script>/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
(function(){'use strict';(function(c,x){"object"===typeof exports&&"undefined"!==typeof module?x(exports):"function"===typeof define&&define.amd?define(["exports"],x):(c=c||self,x(c.React={}))})(this,function(c){function x(a){if(null===a||"object"!==typeof a)return null;a=V&&a[V]||a["@@iterator"];return"function"===typeof a?a:null}function w(a,b,e){this.props=a;this.context=b;this.refs=W;this.updater=e||X}function Y(){}function K(a,b,e){this.props=a;this.context=b;this.refs=W;this.updater=e||X}function Z(a,b,
e){var m,d={},c=null,h=null;if(null!=b)for(m in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(c=""+b.key),b)aa.call(b,m)&&!ba.hasOwnProperty(m)&&(d[m]=b[m]);var l=arguments.length-2;if(1===l)d.children=e;else if(1<l){for(var f=Array(l),k=0;k<l;k++)f[k]=arguments[k+2];d.children=f}if(a&&a.defaultProps)for(m in l=a.defaultProps,l)void 0===d[m]&&(d[m]=l[m]);return{$$typeof:y,type:a,key:c,ref:h,props:d,_owner:L.current}}function na(a,b){return{$$typeof:y,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}
function M(a){return"object"===typeof a&&null!==a&&a.$$typeof===y}function oa(a){var b={"=":"=0",":":"=2"};return"$"+a.replace(/[=:]/g,function(a){return b[a]})}function N(a,b){return"object"===typeof a&&null!==a&&null!=a.key?oa(""+a.key):b.toString(36)}function B(a,b,e,m,d){var c=typeof a;if("undefined"===c||"boolean"===c)a=null;var h=!1;if(null===a)h=!0;else switch(c){case "string":case "number":h=!0;break;case "object":switch(a.$$typeof){case y:case pa:h=!0}}if(h)return h=a,d=d(h),a=""===m?"."+
N(h,0):m,ca(d)?(e="",null!=a&&(e=a.replace(da,"$&/")+"/"),B(d,b,e,"",function(a){return a})):null!=d&&(M(d)&&(d=na(d,e+(!d.key||h&&h.key===d.key?"":(""+d.key).replace(da,"$&/")+"/")+a)),b.push(d)),1;h=0;m=""===m?".":m+":";if(ca(a))for(var l=0;l<a.length;l++){c=a[l];var f=m+N(c,l);h+=B(c,b,e,f,d)}else if(f=x(a),"function"===typeof f)for(a=f.call(a),l=0;!(c=a.next()).done;)c=c.value,f=m+N(c,l++),h+=B(c,b,e,f,d);else if("object"===c)throw b=String(a),Error("Objects are not valid as a React child (found: "+
("[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.");return h}function C(a,b,e){if(null==a)return a;var c=[],d=0;B(a,c,"","",function(a){return b.call(e,a,d++)});return c}function qa(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=
0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}function O(a,b){var e=a.length;a.push(b);a:for(;0<e;){var c=e-1>>>1,d=a[c];if(0<D(d,b))a[c]=b,a[e]=d,e=c;else break a}}function p(a){return 0===a.length?null:a[0]}function E(a){if(0===a.length)return null;var b=a[0],e=a.pop();if(e!==b){a[0]=e;a:for(var c=0,d=a.length,k=d>>>1;c<k;){var h=2*(c+1)-1,l=a[h],f=h+1,g=a[f];if(0>D(l,e))f<d&&0>D(g,l)?(a[c]=g,a[f]=e,c=f):(a[c]=l,a[h]=e,c=h);else if(f<d&&0>D(g,e))a[c]=g,a[f]=e,c=f;else break a}}return b}
function D(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}function P(a){for(var b=p(r);null!==b;){if(null===b.callback)E(r);else if(b.startTime<=a)E(r),b.sortIndex=b.expirationTime,O(q,b);else break;b=p(r)}}function Q(a){z=!1;P(a);if(!u)if(null!==p(q))u=!0,R(S);else{var b=p(r);null!==b&&T(Q,b.startTime-a)}}function S(a,b){u=!1;z&&(z=!1,ea(A),A=-1);F=!0;var c=k;try{P(b);for(n=p(q);null!==n&&(!(n.expirationTime>b)||a&&!fa());){var m=n.callback;if("function"===typeof m){n.callback=null;
k=n.priorityLevel;var d=m(n.expirationTime<=b);b=v();"function"===typeof d?n.callback=d:n===p(q)&&E(q);P(b)}else E(q);n=p(q)}if(null!==n)var g=!0;else{var h=p(r);null!==h&&T(Q,h.startTime-b);g=!1}return g}finally{n=null,k=c,F=!1}}function fa(){return v()-ha<ia?!1:!0}function R(a){G=a;H||(H=!0,I())}function T(a,b){A=ja(function(){a(v())},b)}var y=Symbol.for("react.element"),pa=Symbol.for("react.portal"),ra=Symbol.for("react.fragment"),sa=Symbol.for("react.strict_mode"),ta=Symbol.for("react.profiler"),
ua=Symbol.for("react.provider"),va=Symbol.for("react.context"),wa=Symbol.for("react.forward_ref"),xa=Symbol.for("react.suspense"),ya=Symbol.for("react.memo"),za=Symbol.for("react.lazy"),V=Symbol.iterator,X={isMounted:function(a){return!1},enqueueForceUpdate:function(a,b,c){},enqueueReplaceState:function(a,b,c,m){},enqueueSetState:function(a,b,c,m){}},ka=Object.assign,W={};w.prototype.isReactComponent={};w.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
this.updater.enqueueSetState(this,a,b,"setState")};w.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};Y.prototype=w.prototype;var t=K.prototype=new Y;t.constructor=K;ka(t,w.prototype);t.isPureReactComponent=!0;var ca=Array.isArray,aa=Object.prototype.hasOwnProperty,L={current:null},ba={key:!0,ref:!0,__self:!0,__source:!0},da=/\/+/g,g={current:null},J={transition:null};if("object"===typeof performance&&"function"===typeof performance.now){var Aa=performance;
var v=function(){return Aa.now()}}else{var la=Date,Ba=la.now();v=function(){return la.now()-Ba}}var q=[],r=[],Ca=1,n=null,k=3,F=!1,u=!1,z=!1,ja="function"===typeof setTimeout?setTimeout:null,ea="function"===typeof clearTimeout?clearTimeout:null,ma="undefined"!==typeof setImmediate?setImmediate:null;"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var H=!1,G=null,A=-1,ia=5,ha=
-1,U=function(){if(null!==G){var a=v();ha=a;var b=!0;try{b=G(!0,a)}finally{b?I():(H=!1,G=null)}}else H=!1};if("function"===typeof ma)var I=function(){ma(U)};else if("undefined"!==typeof MessageChannel){t=new MessageChannel;var Da=t.port2;t.port1.onmessage=U;I=function(){Da.postMessage(null)}}else I=function(){ja(U,0)};t={ReactCurrentDispatcher:g,ReactCurrentOwner:L,ReactCurrentBatchConfig:J,Scheduler:{__proto__:null,unstable_ImmediatePriority:1,unstable_UserBlockingPriority:2,unstable_NormalPriority:3,
unstable_IdlePriority:5,unstable_LowPriority:4,unstable_runWithPriority:function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=k;k=a;try{return b()}finally{k=c}},unstable_next:function(a){switch(k){case 1:case 2:case 3:var b=3;break;default:b=k}var c=k;k=b;try{return a()}finally{k=c}},unstable_scheduleCallback:function(a,b,c){var e=v();"object"===typeof c&&null!==c?(c=c.delay,c="number"===typeof c&&0<c?e+c:e):c=e;switch(a){case 1:var d=-1;break;case 2:d=250;break;case 5:d=
1073741823;break;case 4:d=1E4;break;default:d=5E3}d=c+d;a={id:Ca++,callback:b,priorityLevel:a,startTime:c,expirationTime:d,sortIndex:-1};c>e?(a.sortIndex=c,O(r,a),null===p(q)&&a===p(r)&&(z?(ea(A),A=-1):z=!0,T(Q,c-e))):(a.sortIndex=d,O(q,a),u||F||(u=!0,R(S)));return a},unstable_cancelCallback:function(a){a.callback=null},unstable_wrapCallback:function(a){var b=k;return function(){var c=k;k=b;try{return a.apply(this,arguments)}finally{k=c}}},unstable_getCurrentPriorityLevel:function(){return k},unstable_shouldYield:fa,
unstable_requestPaint:function(){},unstable_continueExecution:function(){u||F||(u=!0,R(S))},unstable_pauseExecution:function(){},unstable_getFirstCallbackNode:function(){return p(q)},get unstable_now(){return v},unstable_forceFrameRate:function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):ia=0<a?Math.floor(1E3/a):5},unstable_Profiling:null}};c.Children={map:C,forEach:function(a,b,c){C(a,function(){b.apply(this,
arguments)},c)},count:function(a){var b=0;C(a,function(){b++});return b},toArray:function(a){return C(a,function(a){return a})||[]},only:function(a){if(!M(a))throw Error("React.Children.only expected to receive a single React element child.");return a}};c.Component=w;c.Fragment=ra;c.Profiler=ta;c.PureComponent=K;c.StrictMode=sa;c.Suspense=xa;c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=t;c.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+
a+".");var e=ka({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=L.current);void 0!==b.key&&(d=""+b.key);if(a.type&&a.type.defaultProps)var l=a.type.defaultProps;for(f in b)aa.call(b,f)&&!ba.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==l?l[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){l=Array(f);for(var g=0;g<f;g++)l[g]=arguments[g+2];e.children=l}return{$$typeof:y,type:a.type,key:d,ref:k,props:e,_owner:h}};c.createContext=function(a){a={$$typeof:va,
_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:ua,_context:a};return a.Consumer=a};c.createElement=Z;c.createFactory=function(a){var b=Z.bind(null,a);b.type=a;return b};c.createRef=function(){return{current:null}};c.forwardRef=function(a){return{$$typeof:wa,render:a}};c.isValidElement=M;c.lazy=function(a){return{$$typeof:za,_payload:{_status:-1,_result:a},_init:qa}};c.memo=function(a,b){return{$$typeof:ya,type:a,
compare:void 0===b?null:b}};c.startTransition=function(a,b){b=J.transition;J.transition={};try{a()}finally{J.transition=b}};c.unstable_act=function(a){throw Error("act(...) is not supported in production builds of React.");};c.useCallback=function(a,b){return g.current.useCallback(a,b)};c.useContext=function(a){return g.current.useContext(a)};c.useDebugValue=function(a,b){};c.useDeferredValue=function(a){return g.current.useDeferredValue(a)};c.useEffect=function(a,b){return g.current.useEffect(a,
b)};c.useId=function(){return g.current.useId()};c.useImperativeHandle=function(a,b,c){return g.current.useImperativeHandle(a,b,c)};c.useInsertionEffect=function(a,b){return g.current.useInsertionEffect(a,b)};c.useLayoutEffect=function(a,b){return g.current.useLayoutEffect(a,b)};c.useMemo=function(a,b){return g.current.useMemo(a,b)};c.useReducer=function(a,b,c){return g.current.useReducer(a,b,c)};c.useRef=function(a){return g.current.useRef(a)};c.useState=function(a){return g.current.useState(a)};
c.useSyncExternalStore=function(a,b,c){return g.current.useSyncExternalStore(a,b,c)};c.useTransition=function(){return g.current.useTransition()};c.version="18.2.0"});
})();
</script>
<script>/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
(function(){/*
Modernizr 3.0.0pre (Custom Build) | MIT
*/
'use strict';(function(Q,mb){"object"===typeof exports&&"undefined"!==typeof module?mb(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],mb):(Q=Q||self,mb(Q.ReactDOM={},Q.React))})(this,function(Q,mb){function n(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}
function nb(a,b){Ab(a,b);Ab(a+"Capture",b)}function Ab(a,b){$b[a]=b;for(a=0;a<b.length;a++)cg.add(b[a])}function cj(a){if(Zd.call(dg,a))return!0;if(Zd.call(eg,a))return!1;if(dj.test(a))return dg[a]=!0;eg[a]=!0;return!1}function ej(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}}function fj(a,b,c,d){if(null===
b||"undefined"===typeof b||ej(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function Y(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}function $d(a,b,c,d){var e=R.hasOwnProperty(b)?R[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||"o"!==
b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1])fj(b,c,e,d)&&(c=null),d||null===e?cj(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}function ac(a){if(null===a||"object"!==typeof a)return null;a=fg&&a[fg]||a["@@iterator"];return"function"===typeof a?a:null}function bc(a,b,
c){if(void 0===ae)try{throw Error();}catch(d){ae=(b=d.stack.trim().match(/\n( *(at )?)/))&&b[1]||""}return"\n"+ae+a}function be(a,b){if(!a||ce)return"";ce=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,"props",{set:function(){throw Error();}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(m){var d=m}Reflect.construct(a,[],b)}else{try{b.call()}catch(m){d=m}a.call(b.prototype)}else{try{throw Error();
}catch(m){d=m}a()}}catch(m){if(m&&d&&"string"===typeof m.stack){for(var e=m.stack.split("\n"),f=d.stack.split("\n"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k="\n"+e[g].replace(" at new "," at ");a.displayName&&k.includes("<anonymous>")&&(k=k.replace("<anonymous>",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{ce=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?bc(a):
""}function gj(a){switch(a.tag){case 5:return bc(a.type);case 16:return bc("Lazy");case 13:return bc("Suspense");case 19:return bc("SuspenseList");case 0:case 2:case 15:return a=be(a.type,!1),a;case 11:return a=be(a.type.render,!1),a;case 1:return a=be(a.type,!0),a;default:return""}}function de(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case Bb:return"Fragment";case Cb:return"Portal";case ee:return"Profiler";case fe:return"StrictMode";
case ge:return"Suspense";case he:return"SuspenseList"}if("object"===typeof a)switch(a.$$typeof){case gg:return(a.displayName||"Context")+".Consumer";case hg:return(a._context.displayName||"Context")+".Provider";case ie:var b=a.render;a=a.displayName;a||(a=b.displayName||b.name||"",a=""!==a?"ForwardRef("+a+")":"ForwardRef");return a;case je:return b=a.displayName||null,null!==b?b:de(a.type)||"Memo";case Ta:b=a._payload;a=a._init;try{return de(a(b))}catch(c){}}return null}function hj(a){var b=a.type;
switch(a.tag){case 24:return"Cache";case 9:return(b.displayName||"Context")+".Consumer";case 10:return(b._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return a=b.render,a=a.displayName||a.name||"",b.displayName||(""!==a?"ForwardRef("+a+")":"ForwardRef");case 7:return"Fragment";case 5:return b;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return de(b);case 8:return b===fe?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";
case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof b)return b.displayName||b.name||null;if("string"===typeof b)return b}return null}function Ua(a){switch(typeof a){case "boolean":case "number":case "string":case "undefined":return a;case "object":return a;default:return""}}function ig(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===
b)}function ij(a){var b=ig(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=
null;delete a[b]}}}}function Pc(a){a._valueTracker||(a._valueTracker=ij(a))}function jg(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=ig(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Qc(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function ke(a,b){var c=b.checked;return E({},b,{defaultChecked:void 0,defaultValue:void 0,
value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function kg(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Ua(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function lg(a,b){b=b.checked;null!=b&&$d(a,"checked",b,!1)}function le(a,b){lg(a,b);var c=Ua(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=
c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?me(a,b.type,c):b.hasOwnProperty("defaultValue")&&me(a,b.type,Ua(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function mg(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;
c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}function me(a,b,c){if("number"!==b||Qc(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function Db(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=
!0)}else{c=""+Ua(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}function ne(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(n(91));return E({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function ng(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(n(92));if(cc(c)){if(1<c.length)throw Error(n(93));
c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:Ua(c)}}function og(a,b){var c=Ua(b.value),d=Ua(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function pg(a,b){b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}function qg(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}
function oe(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?qg(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function rg(a,b,c){return null==b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||dc.hasOwnProperty(a)&&dc[a]?(""+b).trim():b+"px"}function sg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=rg(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}function pe(a,b){if(b){if(jj[a]&&
(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(n(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(n(60));if("object"!==typeof b.dangerouslySetInnerHTML||!("__html"in b.dangerouslySetInnerHTML))throw Error(n(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(n(62));}}function qe(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;
default:return!0}}function re(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function tg(a){if(a=ec(a)){if("function"!==typeof se)throw Error(n(280));var b=a.stateNode;b&&(b=Rc(b),se(a.stateNode,a.type,b))}}function ug(a){Eb?Fb?Fb.push(a):Fb=[a]:Eb=a}function vg(){if(Eb){var a=Eb,b=Fb;Fb=Eb=null;tg(a);if(b)for(a=0;a<b.length;a++)tg(b[a])}}function wg(a,b,c){if(te)return a(b,c);te=!0;try{return xg(a,b,c)}finally{if(te=
!1,null!==Eb||null!==Fb)yg(),vg()}}function fc(a,b){var c=a.stateNode;if(null===c)return null;var d=Rc(c);if(null===d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":case "onMouseEnter":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;
if(c&&"function"!==typeof c)throw Error(n(231,b,typeof c));return c}function kj(a,b,c,d,e,f,g,h,k){gc=!1;Sc=null;lj.apply(mj,arguments)}function nj(a,b,c,d,e,f,g,h,k){kj.apply(this,arguments);if(gc){if(gc){var m=Sc;gc=!1;Sc=null}else throw Error(n(198));Tc||(Tc=!0,ue=m)}}function ob(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function zg(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,
null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Ag(a){if(ob(a)!==a)throw Error(n(188));}function oj(a){var b=a.alternate;if(!b){b=ob(a);if(null===b)throw Error(n(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Ag(e),a;if(f===d)return Ag(e),b;f=f.sibling}throw Error(n(188));}if(c.return!==d.return)c=e,d=f;
else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(n(189));}}if(c.alternate!==d)throw Error(n(190));}if(3!==c.tag)throw Error(n(188));return c.stateNode.current===c?a:b}function Bg(a){a=oj(a);return null!==a?Cg(a):null}function Cg(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=Cg(a);if(null!==b)return b;a=a.sibling}return null}
function pj(a,b){if(Ca&&"function"===typeof Ca.onCommitFiberRoot)try{Ca.onCommitFiberRoot(Uc,a,void 0,128===(a.current.flags&128))}catch(c){}}function qj(a){a>>>=0;return 0===a?32:31-(rj(a)/sj|0)|0}function hc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&
4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return a}}function Vc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=hc(h):(f&=g,0!==f&&(d=hc(f)))}else g=c&~e,0!==g?d=hc(g):0!==f&&(d=hc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&
(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-ta(b),e=1<<c,d|=a[c],b&=~e;return d}function tj(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;
case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function uj(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-ta(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=tj(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function ve(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Dg(){var a=Wc;Wc<<=1;0===(Wc&4194240)&&(Wc=64);return a}function we(a){for(var b=[],c=0;31>c;c++)b.push(a);
return b}function ic(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-ta(b);a[b]=c}function vj(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-ta(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}function xe(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-ta(c),e=1<<d;e&b|a[d]&
b&&(a[d]|=b);c&=~e}}function Eg(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}function Fg(a,b){switch(a){case "focusin":case "focusout":Va=null;break;case "dragenter":case "dragleave":Wa=null;break;case "mouseover":case "mouseout":Xa=null;break;case "pointerover":case "pointerout":jc.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":kc.delete(b.pointerId)}}function lc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,
nativeEvent:f,targetContainers:[e]},null!==b&&(b=ec(b),null!==b&&Gg(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}function wj(a,b,c,d,e){switch(b){case "focusin":return Va=lc(Va,a,b,c,d,e),!0;case "dragenter":return Wa=lc(Wa,a,b,c,d,e),!0;case "mouseover":return Xa=lc(Xa,a,b,c,d,e),!0;case "pointerover":var f=e.pointerId;jc.set(f,lc(jc.get(f)||null,a,b,c,d,e));return!0;case "gotpointercapture":return f=e.pointerId,kc.set(f,lc(kc.get(f)||null,a,b,
c,d,e)),!0}return!1}function Hg(a){var b=pb(a.target);if(null!==b){var c=ob(b);if(null!==c)if(b=c.tag,13===b){if(b=zg(c),null!==b){a.blockedOn=b;xj(a.priority,function(){yj(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=ye(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;
var d=new c.constructor(c.type,c);ze=d;c.target.dispatchEvent(d);ze=null}else return b=ec(c),null!==b&&Gg(b),a.blockedOn=c,!1;b.shift()}return!0}function Ig(a,b,c){Xc(a)&&c.delete(b)}function zj(){Ae=!1;null!==Va&&Xc(Va)&&(Va=null);null!==Wa&&Xc(Wa)&&(Wa=null);null!==Xa&&Xc(Xa)&&(Xa=null);jc.forEach(Ig);kc.forEach(Ig)}function mc(a,b){a.blockedOn===b&&(a.blockedOn=null,Ae||(Ae=!0,Jg(Kg,zj)))}function nc(a){if(0<Yc.length){mc(Yc[0],a);for(var b=1;b<Yc.length;b++){var c=Yc[b];c.blockedOn===a&&(c.blockedOn=
null)}}null!==Va&&mc(Va,a);null!==Wa&&mc(Wa,a);null!==Xa&&mc(Xa,a);b=function(b){return mc(b,a)};jc.forEach(b);kc.forEach(b);for(b=0;b<Ya.length;b++)c=Ya[b],c.blockedOn===a&&(c.blockedOn=null);for(;0<Ya.length&&(b=Ya[0],null===b.blockedOn);)Hg(b),null===b.blockedOn&&Ya.shift()}function Aj(a,b,c,d){var e=z,f=Gb.transition;Gb.transition=null;try{z=1,Be(a,b,c,d)}finally{z=e,Gb.transition=f}}function Bj(a,b,c,d){var e=z,f=Gb.transition;Gb.transition=null;try{z=4,Be(a,b,c,d)}finally{z=e,Gb.transition=
f}}function Be(a,b,c,d){if(Zc){var e=ye(a,b,c,d);if(null===e)Ce(a,b,d,$c,c),Fg(a,d);else if(wj(e,a,b,c,d))d.stopPropagation();else if(Fg(a,d),b&4&&-1<Cj.indexOf(a)){for(;null!==e;){var f=ec(e);null!==f&&Dj(f);f=ye(a,b,c,d);null===f&&Ce(a,b,d,$c,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else Ce(a,b,d,null,c)}}function ye(a,b,c,d){$c=null;a=re(d);a=pb(a);if(null!==a)if(b=ob(a),null===b)a=null;else if(c=b.tag,13===c){a=zg(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===
b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);$c=a;return null}function Lg(a){switch(a){case "cancel":case "click":case "close":case "contextmenu":case "copy":case "cut":case "auxclick":case "dblclick":case "dragend":case "dragstart":case "drop":case "focusin":case "focusout":case "input":case "invalid":case "keydown":case "keypress":case "keyup":case "mousedown":case "mouseup":case "paste":case "pause":case "play":case "pointercancel":case "pointerdown":case "pointerup":case "ratechange":case "reset":case "resize":case "seeked":case "submit":case "touchcancel":case "touchend":case "touchstart":case "volumechange":case "change":case "selectionchange":case "textInput":case "compositionstart":case "compositionend":case "compositionupdate":case "beforeblur":case "afterblur":case "beforeinput":case "blur":case "fullscreenchange":case "focus":case "hashchange":case "popstate":case "select":case "selectstart":return 1;
case "drag":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "mousemove":case "mouseout":case "mouseover":case "pointermove":case "pointerout":case "pointerover":case "scroll":case "toggle":case "touchmove":case "wheel":case "mouseenter":case "mouseleave":case "pointerenter":case "pointerleave":return 4;case "message":switch(Ej()){case De:return 1;case Mg:return 4;case ad:case Fj:return 16;case Ng:return 536870912;default:return 16}default:return 16}}function Og(){if(bd)return bd;
var a,b=Ee,c=b.length,d,e="value"in Za?Za.value:Za.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return bd=e.slice(a,1<d?1-d:void 0)}function cd(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function dd(){return!0}function Pg(){return!1}function ka(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;
for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?dd:Pg;this.isPropagationStopped=Pg;return this}E(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=dd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():
"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=dd)},persist:function(){},isPersistent:dd});return b}function Gj(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Hj[a])?!!b[a]:!1}function Fe(a){return Gj}function Qg(a,b){switch(a){case "keyup":return-1!==Ij.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "focusout":return!0;default:return!1}}function Rg(a){a=a.detail;return"object"===typeof a&&
"data"in a?a.data:null}function Jj(a,b){switch(a){case "compositionend":return Rg(b);case "keypress":if(32!==b.which)return null;Sg=!0;return Tg;case "textInput":return a=b.data,a===Tg&&Sg?null:a;default:return null}}function Kj(a,b){if(Hb)return"compositionend"===a||!Ge&&Qg(a,b)?(a=Og(),bd=Ee=Za=null,Hb=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;
case "compositionend":return Ug&&"ko"!==b.locale?null:b.data;default:return null}}function Vg(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!Lj[a.type]:"textarea"===b?!0:!1}function Mj(a){if(!Ia)return!1;a="on"+a;var b=a in document;b||(b=document.createElement("div"),b.setAttribute(a,"return;"),b="function"===typeof b[a]);return b}function Wg(a,b,c,d){ug(d);b=ed(b,"onChange");0<b.length&&(c=new He("onChange","change",null,c,d),a.push({event:c,listeners:b}))}function Nj(a){Xg(a,
0)}function fd(a){var b=Ib(a);if(jg(b))return a}function Oj(a,b){if("change"===a)return b}function Yg(){oc&&(oc.detachEvent("onpropertychange",Zg),pc=oc=null)}function Zg(a){if("value"===a.propertyName&&fd(pc)){var b=[];Wg(b,pc,a,re(a));wg(Nj,b)}}function Pj(a,b,c){"focusin"===a?(Yg(),oc=b,pc=c,oc.attachEvent("onpropertychange",Zg)):"focusout"===a&&Yg()}function Qj(a,b){if("selectionchange"===a||"keyup"===a||"keydown"===a)return fd(pc)}function Rj(a,b){if("click"===a)return fd(b)}function Sj(a,b){if("input"===
a||"change"===a)return fd(b)}function Tj(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}function qc(a,b){if(ua(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!Zd.call(b,e)||!ua(a[e],b[e]))return!1}return!0}function $g(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function ah(a,b){var c=$g(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;
if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=$g(c)}}function bh(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?bh(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function ch(){for(var a=window,b=Qc();b instanceof a.HTMLIFrameElement;){try{var c="string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;
b=Qc(a.document)}return b}function Ie(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function Uj(a){var b=ch(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&bh(c.ownerDocument.documentElement,c)){if(null!==d&&Ie(c))if(b=d.start,a=d.end,void 0===a&&(a=b),"selectionStart"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);
else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=ah(c,f);var g=ah(c,d);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),
a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});"function"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}function dh(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Je||null==Jb||Jb!==Qc(d)||(d=Jb,"selectionStart"in d&&Ie(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d=
{anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),rc&&qc(rc,d)||(rc=d,d=ed(Ke,"onSelect"),0<d.length&&(b=new He("onSelect","select",null,b,c),a.push({event:b,listeners:d}),b.target=Jb)))}function gd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}function hd(a){if(Le[a])return Le[a];if(!Kb[a])return a;var b=Kb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in eh)return Le[a]=b[c];return a}function $a(a,
b){fh.set(a,b);nb(b,[a])}function gh(a,b,c){var d=a.type||"unknown-event";a.currentTarget=c;nj(d,b,void 0,a);a.currentTarget=null}function Xg(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,m=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;gh(e,h,m);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;m=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;
gh(e,h,m);f=k}}}if(Tc)throw a=ue,Tc=!1,ue=null,a;}function B(a,b){var c=b[Me];void 0===c&&(c=b[Me]=new Set);var d=a+"__bubble";c.has(d)||(hh(b,a,2,!1),c.add(d))}function Ne(a,b,c){var d=0;b&&(d|=4);hh(c,a,d,b)}function sc(a){if(!a[id]){a[id]=!0;cg.forEach(function(b){"selectionchange"!==b&&(Vj.has(b)||Ne(b,!1,a),Ne(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[id]||(b[id]=!0,Ne("selectionchange",!1,b))}}function hh(a,b,c,d,e){switch(Lg(b)){case 1:e=Aj;break;case 4:e=Bj;break;default:e=
Be}c=e.bind(null,b,c,a);e=void 0;!Oe||"touchstart"!==b&&"touchmove"!==b&&"wheel"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}function Ce(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;
if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=pb(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}wg(function(){var d=f,e=re(c),g=[];a:{var h=fh.get(a);if(void 0!==h){var k=He,n=a;switch(a){case "keypress":if(0===cd(c))break a;case "keydown":case "keyup":k=Wj;break;case "focusin":n="focus";k=Pe;break;case "focusout":n="blur";k=Pe;break;case "beforeblur":case "afterblur":k=Pe;break;
case "click":if(2===c.button)break a;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":k=ih;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":k=Xj;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":k=Yj;break;case jh:case kh:case lh:k=Zj;break;case mh:k=ak;break;case "scroll":k=bk;break;case "wheel":k=ck;break;case "copy":case "cut":case "paste":k=
dk;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":k=nh}var l=0!==(b&4),p=!l&&"scroll"===a,A=l?null!==h?h+"Capture":null:h;l=[];for(var v=d,q;null!==v;){q=v;var M=q.stateNode;5===q.tag&&null!==M&&(q=M,null!==A&&(M=fc(v,A),null!=M&&l.push(tc(v,M,q))));if(p)break;v=v.return}0<l.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:l}))}}if(0===(b&7)){a:{h="mouseover"===a||"pointerover"===
a;k="mouseout"===a||"pointerout"===a;if(h&&c!==ze&&(n=c.relatedTarget||c.fromElement)&&(pb(n)||n[Ja]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?pb(n):null,null!==n&&(p=ob(n),n!==p||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){l=ih;M="onMouseLeave";A="onMouseEnter";v="mouse";if("pointerout"===a||"pointerover"===a)l=nh,M="onPointerLeave",A="onPointerEnter",v="pointer";p=null==k?h:Ib(k);q=null==
n?h:Ib(n);h=new l(M,v+"leave",k,c,e);h.target=p;h.relatedTarget=q;M=null;pb(e)===d&&(l=new l(A,v+"enter",n,c,e),l.target=q,l.relatedTarget=p,M=l);p=M;if(k&&n)b:{l=k;A=n;v=0;for(q=l;q;q=Lb(q))v++;q=0;for(M=A;M;M=Lb(M))q++;for(;0<v-q;)l=Lb(l),v--;for(;0<q-v;)A=Lb(A),q--;for(;v--;){if(l===A||null!==A&&l===A.alternate)break b;l=Lb(l);A=Lb(A)}l=null}else l=null;null!==k&&oh(g,h,k,l,!1);null!==n&&null!==p&&oh(g,p,n,l,!0)}}}a:{h=d?Ib(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if("select"===k||"input"===
k&&"file"===h.type)var ma=Oj;else if(Vg(h))if(ph)ma=Sj;else{ma=Qj;var va=Pj}else(k=h.nodeName)&&"input"===k.toLowerCase()&&("checkbox"===h.type||"radio"===h.type)&&(ma=Rj);if(ma&&(ma=ma(a,d))){Wg(g,ma,c,e);break a}va&&va(a,h,d);"focusout"===a&&(va=h._wrapperState)&&va.controlled&&"number"===h.type&&me(h,"number",h.value)}va=d?Ib(d):window;switch(a){case "focusin":if(Vg(va)||"true"===va.contentEditable)Jb=va,Ke=d,rc=null;break;case "focusout":rc=Ke=Jb=null;break;case "mousedown":Je=!0;break;case "contextmenu":case "mouseup":case "dragend":Je=
!1;dh(g,c,e);break;case "selectionchange":if(ek)break;case "keydown":case "keyup":dh(g,c,e)}var ab;if(Ge)b:{switch(a){case "compositionstart":var da="onCompositionStart";break b;case "compositionend":da="onCompositionEnd";break b;case "compositionupdate":da="onCompositionUpdate";break b}da=void 0}else Hb?Qg(a,c)&&(da="onCompositionEnd"):"keydown"===a&&229===c.keyCode&&(da="onCompositionStart");da&&(Ug&&"ko"!==c.locale&&(Hb||"onCompositionStart"!==da?"onCompositionEnd"===da&&Hb&&(ab=Og()):(Za=e,Ee=
"value"in Za?Za.value:Za.textContent,Hb=!0)),va=ed(d,da),0<va.length&&(da=new qh(da,a,null,c,e),g.push({event:da,listeners:va}),ab?da.data=ab:(ab=Rg(c),null!==ab&&(da.data=ab))));if(ab=fk?Jj(a,c):Kj(a,c))d=ed(d,"onBeforeInput"),0<d.length&&(e=new gk("onBeforeInput","beforeinput",null,c,e),g.push({event:e,listeners:d}),e.data=ab)}Xg(g,b)})}function tc(a,b,c){return{instance:a,listener:b,currentTarget:c}}function ed(a,b){for(var c=b+"Capture",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==
f&&(e=f,f=fc(a,c),null!=f&&d.unshift(tc(a,f,e)),f=fc(a,b),null!=f&&d.push(tc(a,f,e)));a=a.return}return d}function Lb(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}function oh(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,m=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==m&&(h=m,e?(k=fc(c,f),null!=k&&g.unshift(tc(c,k,h))):e||(k=fc(c,f),null!=k&&g.push(tc(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function rh(a){return("string"===
typeof a?a:""+a).replace(hk,"\n").replace(ik,"")}function jd(a,b,c,d){b=rh(b);if(rh(a)!==b&&c)throw Error(n(425));}function kd(){}function Qe(a,b){return"textarea"===a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}function jk(a){setTimeout(function(){throw a;})}function Re(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=
e.data,"/$"===c){if(0===d){a.removeChild(e);nc(b);return}d--}else"$"!==c&&"$?"!==c&&"$!"!==c||d++;c=e}while(c);nc(b)}function Ka(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if("$"===b||"$!"===b||"$?"===b)break;if("/$"===b)return null}}return a}function sh(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if("$"===c||"$!"===c||"$?"===c){if(0===b)return a;b--}else"/$"===c&&b++}a=a.previousSibling}return null}function pb(a){var b=a[Da];
if(b)return b;for(var c=a.parentNode;c;){if(b=c[Ja]||c[Da]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sh(a);null!==a;){if(c=a[Da])return c;a=sh(a)}return b}a=c;c=a.parentNode}return null}function ec(a){a=a[Da]||a[Ja];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Ib(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(n(33));}function Rc(a){return a[uc]||null}function bb(a){return{current:a}}function w(a,b){0>Mb||(a.current=Se[Mb],Se[Mb]=null,Mb--)}
function y(a,b,c){Mb++;Se[Mb]=a.current;a.current=b}function Nb(a,b){var c=a.type.contextTypes;if(!c)return cb;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function ea(a){a=a.childContextTypes;return null!==a&&void 0!==a}function th(a,b,c){if(J.current!==cb)throw Error(n(168));
y(J,b);y(S,c)}function uh(a,b,c){var d=a.stateNode;b=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(n(108,hj(a)||"Unknown",e));return E({},c,d)}function ld(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||cb;qb=J.current;y(J,a);y(S,S.current);return!0}function vh(a,b,c){var d=a.stateNode;if(!d)throw Error(n(169));c?(a=uh(a,b,qb),d.__reactInternalMemoizedMergedChildContext=a,w(S),w(J),y(J,a)):w(S);
y(S,c)}function wh(a){null===La?La=[a]:La.push(a)}function kk(a){md=!0;wh(a)}function db(){if(!Te&&null!==La){Te=!0;var a=0,b=z;try{var c=La;for(z=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}La=null;md=!1}catch(e){throw null!==La&&(La=La.slice(a+1)),xh(De,db),e;}finally{z=b,Te=!1}}return null}function rb(a,b){Ob[Pb++]=nd;Ob[Pb++]=od;od=a;nd=b}function yh(a,b,c){na[oa++]=Ma;na[oa++]=Na;na[oa++]=sb;sb=a;var d=Ma;a=Na;var e=32-ta(d)-1;d&=~(1<<e);c+=1;var f=32-ta(b)+e;if(30<f){var g=e-e%5;
f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;Ma=1<<32-ta(b)+e|c<<e|d;Na=f+a}else Ma=1<<f|c<<e|d,Na=a}function Ue(a){null!==a.return&&(rb(a,1),yh(a,1,0))}function Ve(a){for(;a===od;)od=Ob[--Pb],Ob[Pb]=null,nd=Ob[--Pb],Ob[Pb]=null;for(;a===sb;)sb=na[--oa],na[oa]=null,Na=na[--oa],na[oa]=null,Ma=na[--oa],na[oa]=null}function zh(a,b){var c=pa(5,null,null,0);c.elementType="DELETED";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}function Ah(a,b){switch(a.tag){case 5:var c=
a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,la=a,fa=Ka(b.firstChild),!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,la=a,fa=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==sb?{id:Ma,overflow:Na}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=pa(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,la=a,fa=null,!0):!1;default:return!1}}function We(a){return 0!==
(a.mode&1)&&0===(a.flags&128)}function Xe(a){if(D){var b=fa;if(b){var c=b;if(!Ah(a,b)){if(We(a))throw Error(n(418));b=Ka(c.nextSibling);var d=la;b&&Ah(a,b)?zh(d,c):(a.flags=a.flags&-4097|2,D=!1,la=a)}}else{if(We(a))throw Error(n(418));a.flags=a.flags&-4097|2;D=!1;la=a}}}function Bh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;la=a}function pd(a){if(a!==la)return!1;if(!D)return Bh(a),D=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b="head"!==b&&"body"!==b&&!Qe(a.type,
a.memoizedProps));if(b&&(b=fa)){if(We(a)){for(a=fa;a;)a=Ka(a.nextSibling);throw Error(n(418));}for(;b;)zh(a,b),b=Ka(b.nextSibling)}Bh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(n(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){fa=Ka(a.nextSibling);break a}b--}else"$"!==c&&"$!"!==c&&"$?"!==c||b++}a=a.nextSibling}fa=null}}else fa=la?Ka(a.stateNode.nextSibling):null;return!0}function Qb(){fa=la=null;D=!1}function Ye(a){null===
wa?wa=[a]:wa.push(a)}function xa(a,b){if(a&&a.defaultProps){b=E({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Ze(){$e=Rb=qd=null}function af(a,b){b=rd.current;w(rd);a._currentValue=b}function bf(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Sb(a,b){qd=a;$e=Rb=null;a=a.dependencies;null!==a&&null!==a.firstContext&&
(0!==(a.lanes&b)&&(ha=!0),a.firstContext=null)}function qa(a){var b=a._currentValue;if($e!==a)if(a={context:a,memoizedValue:b,next:null},null===Rb){if(null===qd)throw Error(n(308));Rb=a;qd.dependencies={lanes:0,firstContext:a}}else Rb=Rb.next=a;return b}function cf(a){null===tb?tb=[a]:tb.push(a)}function Ch(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,cf(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Oa(a,d)}function Oa(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==
a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}function df(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Dh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function Pa(a,b){return{eventTime:a,lane:b,
tag:0,payload:null,callback:null,next:null}}function eb(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(p&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return lk(a,c)}e=d.interleaved;null===e?(b.next=b,cf(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Oa(a,c)}function sd(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;xe(a,c)}}function Eh(a,b){var c=a.updateQueue,d=a.alternate;
if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=b;c.lastBaseUpdate=b}function td(a,b,c,d){var e=
a.updateQueue;fb=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,m=k.next;k.next=null;null===g?f=m:g.next=m;g=k;var n=a.alternate;null!==n&&(n=n.updateQueue,h=n.lastBaseUpdate,h!==g&&(null===h?n.firstBaseUpdate=m:h.next=m,n.lastBaseUpdate=k))}if(null!==f){var l=e.baseState;g=0;n=m=k=null;h=f;do{var r=h.lane,p=h.eventTime;if((d&r)===r){null!==n&&(n=n.next={eventTime:p,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,next:null});a:{var x=
a,F=h;r=b;p=c;switch(F.tag){case 1:x=F.payload;if("function"===typeof x){l=x.call(p,l,r);break a}l=x;break a;case 3:x.flags=x.flags&-65537|128;case 0:x=F.payload;r="function"===typeof x?x.call(p,l,r):x;if(null===r||void 0===r)break a;l=E({},l,r);break a;case 2:fb=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else p={eventTime:p,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===n?(m=n=p,k=l):n=n.next=p,g|=r;h=h.next;if(null===h)if(h=
e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===n&&(k=l);e.baseState=k;e.firstBaseUpdate=m;e.lastBaseUpdate=n;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);ra|=g;a.lanes=g;a.memoizedState=l}}function Fh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if("function"!==typeof e)throw Error(n(191,
e));e.call(d)}}}function ef(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:E({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}function Gh(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!qc(c,d)||!qc(e,f):!0}function Hh(a,b,c){var d=!1,e=cb;var f=b.contextType;"object"===typeof f&&null!==f?f=qa(f):(e=ea(b)?qb:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==
d)?Nb(a,e):cb);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=ud;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}function Ih(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&ud.enqueueReplaceState(b,
b.state,null)}function ff(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Jh;df(a);var f=b.contextType;"object"===typeof f&&null!==f?e.context=qa(f):(f=ea(b)?qb:J.current,e.context=Nb(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;"function"===typeof f&&(ef(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==typeof e.componentWillMount||
(b=e.state,"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&ud.enqueueReplaceState(e,e.state,null),td(a,c,e,d),e.state=a.memoizedState);"function"===typeof e.componentDidMount&&(a.flags|=4194308)}function vc(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(n(309));var d=c.stateNode}if(!d)throw Error(n(147,a));var e=
d,f=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===Jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if("string"!==typeof a)throw Error(n(284));if(!c._owner)throw Error(n(290,a));}return a}function vd(a,b){a=Object.prototype.toString.call(b);throw Error(n(31,"[object Object]"===a?"object with keys {"+Object.keys(b).join(", ")+"}":a));}function Kh(a){var b=a._init;return b(a._payload)}function Lh(a){function b(b,
c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=gb(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&null===b.alternate&&
(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=gf(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===Bb)return l(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||"object"===typeof f&&null!==f&&f.$$typeof===Ta&&Kh(f)===b.type))return d=e(b,c.props),d.ref=vc(a,b,c),d.return=a,d;d=wd(c.type,c.key,c.props,null,a.mode,d);d.ref=vc(a,b,c);d.return=a;return d}function m(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==
c.containerInfo||b.stateNode.implementation!==c.implementation)return b=hf(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function l(a,b,c,d,f){if(null===b||7!==b.tag)return b=ub(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function u(a,b,c){if("string"===typeof b&&""!==b||"number"===typeof b)return b=gf(""+b,a.mode,c),b.return=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case xd:return c=wd(b.type,b.key,b.props,null,a.mode,c),c.ref=vc(a,null,b),c.return=
a,c;case Cb:return b=hf(b,a.mode,c),b.return=a,b;case Ta:var d=b._init;return u(a,d(b._payload),c)}if(cc(b)||ac(b))return b=ub(b,a.mode,c,null),b.return=a,b;vd(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c&&""!==c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&null!==c){switch(c.$$typeof){case xd:return c.key===e?k(a,b,c,d):null;case Cb:return c.key===e?m(a,b,c,d):null;case Ta:return e=c._init,r(a,b,e(c._payload),d)}if(cc(c)||
ac(c))return null!==e?null:l(a,b,c,d,null);vd(a,c)}return null}function p(a,b,c,d,e){if("string"===typeof d&&""!==d||"number"===typeof d)return a=a.get(c)||null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case xd:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case Cb:return a=a.get(null===d.key?c:d.key)||null,m(b,a,d,e);case Ta:var f=d._init;return p(a,b,c,f(d._payload),e)}if(cc(d)||ac(d))return a=a.get(c)||null,l(b,a,d,e,null);vd(b,d)}return null}function x(e,g,h,k){for(var n=
null,m=null,l=g,q=g=0,v=null;null!==l&&q<h.length;q++){l.index>q?(v=l,l=null):v=l.sibling;var A=r(e,l,h[q],k);if(null===A){null===l&&(l=v);break}a&&l&&null===A.alternate&&b(e,l);g=f(A,g,q);null===m?n=A:m.sibling=A;m=A;l=v}if(q===h.length)return c(e,l),D&&rb(e,q),n;if(null===l){for(;q<h.length;q++)l=u(e,h[q],k),null!==l&&(g=f(l,g,q),null===m?n=l:m.sibling=l,m=l);D&&rb(e,q);return n}for(l=d(e,l);q<h.length;q++)v=p(l,e,q,h[q],k),null!==v&&(a&&null!==v.alternate&&l.delete(null===v.key?q:v.key),g=f(v,
g,q),null===m?n=v:m.sibling=v,m=v);a&&l.forEach(function(a){return b(e,a)});D&&rb(e,q);return n}function F(e,g,h,k){var m=ac(h);if("function"!==typeof m)throw Error(n(150));h=m.call(h);if(null==h)throw Error(n(151));for(var l=m=null,q=g,v=g=0,A=null,t=h.next();null!==q&&!t.done;v++,t=h.next()){q.index>v?(A=q,q=null):A=q.sibling;var x=r(e,q,t.value,k);if(null===x){null===q&&(q=A);break}a&&q&&null===x.alternate&&b(e,q);g=f(x,g,v);null===l?m=x:l.sibling=x;l=x;q=A}if(t.done)return c(e,q),D&&rb(e,v),m;
if(null===q){for(;!t.done;v++,t=h.next())t=u(e,t.value,k),null!==t&&(g=f(t,g,v),null===l?m=t:l.sibling=t,l=t);D&&rb(e,v);return m}for(q=d(e,q);!t.done;v++,t=h.next())t=p(q,e,v,t.value,k),null!==t&&(a&&null!==t.alternate&&q.delete(null===t.key?v:t.key),g=f(t,g,v),null===l?m=t:l.sibling=t,l=t);a&&q.forEach(function(a){return b(e,a)});D&&rb(e,v);return m}function w(a,d,f,h){"object"===typeof f&&null!==f&&f.type===Bb&&null===f.key&&(f=f.props.children);if("object"===typeof f&&null!==f){switch(f.$$typeof){case xd:a:{for(var k=
f.key,m=d;null!==m;){if(m.key===k){k=f.type;if(k===Bb){if(7===m.tag){c(a,m.sibling);d=e(m,f.props.children);d.return=a;a=d;break a}}else if(m.elementType===k||"object"===typeof k&&null!==k&&k.$$typeof===Ta&&Kh(k)===m.type){c(a,m.sibling);d=e(m,f.props);d.ref=vc(a,m,f);d.return=a;a=d;break a}c(a,m);break}else b(a,m);m=m.sibling}f.type===Bb?(d=ub(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=wd(f.type,f.key,f.props,null,a.mode,h),h.ref=vc(a,d,f),h.return=a,a=h)}return g(a);case Cb:a:{for(m=f.key;null!==
d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=hf(f,a.mode,h);d.return=a;a=d}return g(a);case Ta:return m=f._init,w(a,d,m(f._payload),h)}if(cc(f))return x(a,d,f,h);if(ac(f))return F(a,d,f,h);vd(a,f)}return"string"===typeof f&&""!==f||"number"===typeof f?(f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):
(c(a,d),d=gf(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return w}function vb(a){if(a===wc)throw Error(n(174));return a}function jf(a,b){y(xc,b);y(yc,a);y(Ea,wc);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:oe(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=oe(b,a)}w(Ea);y(Ea,b)}function Tb(a){w(Ea);w(yc);w(xc)}function Mh(a){vb(xc.current);var b=vb(Ea.current);var c=oe(b,a.type);b!==c&&(y(yc,a),y(Ea,c))}function kf(a){yc.current===a&&
(w(Ea),w(yc))}function yd(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function lf(){for(var a=0;a<mf.length;a++)mf[a]._workInProgressVersionPrimary=
null;mf.length=0}function V(){throw Error(n(321));}function nf(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!ua(a[c],b[c]))return!1;return!0}function of(a,b,c,d,e,f){wb=f;C=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;zd.current=null===a||null===a.memoizedState?mk:nk;a=c(d,e);if(zc){f=0;do{zc=!1;Ac=0;if(25<=f)throw Error(n(301));f+=1;N=K=null;b.updateQueue=null;zd.current=ok;a=c(d,e)}while(zc)}zd.current=Ad;b=null!==K&&null!==K.next;wb=0;N=K=C=null;Bd=!1;if(b)throw Error(n(300));
return a}function pf(){var a=0!==Ac;Ac=0;return a}function Fa(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===N?C.memoizedState=N=a:N=N.next=a;return N}function sa(){if(null===K){var a=C.alternate;a=null!==a?a.memoizedState:null}else a=K.next;var b=null===N?C.memoizedState:N.next;if(null!==b)N=b,K=a;else{if(null===a)throw Error(n(310));K=a;a={memoizedState:K.memoizedState,baseState:K.baseState,baseQueue:K.baseQueue,queue:K.queue,next:null};null===N?C.memoizedState=
N=a:N=N.next=a}return N}function Bc(a,b){return"function"===typeof b?b(a):b}function qf(a,b,c){b=sa();c=b.queue;if(null===c)throw Error(n(311));c.lastRenderedReducer=a;var d=K,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,m=f;do{var l=m.lane;if((wb&l)===l)null!==k&&(k=k.next={lane:0,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null}),d=m.hasEagerState?
m.eagerState:a(d,m.action);else{var u={lane:l,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null};null===k?(h=k=u,g=d):k=k.next=u;C.lanes|=l;ra|=l}m=m.next}while(null!==m&&m!==f);null===k?g=d:k.next=h;ua(d,b.memoizedState)||(ha=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,C.lanes|=f,ra|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}function rf(a,b,c){b=sa();
c=b.queue;if(null===c)throw Error(n(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);ua(f,b.memoizedState)||(ha=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Nh(a,b,c){}function Oh(a,b,c){c=C;var d=sa(),e=b(),f=!ua(d.memoizedState,e);f&&(d.memoizedState=e,ha=!0);d=d.queue;sf(Ph.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==N&&
N.memoizedState.tag&1){c.flags|=2048;Cc(9,Qh.bind(null,c,d,e,b),void 0,null);if(null===O)throw Error(n(349));0!==(wb&30)||Rh(c,b,e)}return e}function Rh(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=C.updateQueue;null===b?(b={lastEffect:null,stores:null},C.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}function Qh(a,b,c,d){b.value=c;b.getSnapshot=d;Sh(b)&&Th(a)}function Ph(a,b,c){return c(function(){Sh(b)&&Th(a)})}function Sh(a){var b=a.getSnapshot;a=a.value;try{var c=
b();return!ua(a,c)}catch(d){return!0}}function Th(a){var b=Oa(a,1);null!==b&&ya(b,a,1,-1)}function Uh(a){var b=Fa();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Bc,lastRenderedState:a};b.queue=a;a=a.dispatch=pk.bind(null,C,a);return[b.memoizedState,a]}function Cc(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=C.updateQueue;null===b?(b={lastEffect:null,stores:null},C.updateQueue=b,b.lastEffect=a.next=
a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Vh(a){return sa().memoizedState}function Cd(a,b,c,d){var e=Fa();C.flags|=a;e.memoizedState=Cc(1|b,c,void 0,void 0===d?null:d)}function Dd(a,b,c,d){var e=sa();d=void 0===d?null:d;var f=void 0;if(null!==K){var g=K.memoizedState;f=g.destroy;if(null!==d&&nf(d,g.deps)){e.memoizedState=Cc(b,c,f,d);return}}C.flags|=a;e.memoizedState=Cc(1|b,c,f,d)}function Wh(a,b){return Cd(8390656,8,a,b)}function sf(a,
b){return Dd(2048,8,a,b)}function Xh(a,b){return Dd(4,2,a,b)}function Yh(a,b){return Dd(4,4,a,b)}function Zh(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dd(4,4,Zh.bind(null,b,a),c)}function tf(a,b){}function ai(a,b){var c=sa();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nf(b,d[1]))return d[0];c.memoizedState=[a,
b];return a}function bi(a,b){var c=sa();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nf(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ci(a,b,c){if(0===(wb&21))return a.baseState&&(a.baseState=!1,ha=!0),a.memoizedState=c;ua(c,b)||(c=Dg(),C.lanes|=c,ra|=c,a.baseState=!0);return b}function qk(a,b,c){c=z;z=0!==c&&4>c?c:4;a(!0);var d=uf.transition;uf.transition={};try{a(!1),b()}finally{z=c,uf.transition=d}}function di(){return sa().memoizedState}function rk(a,b,
c){var d=hb(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(ei(a))fi(b,c);else if(c=Ch(a,b,c,d),null!==c){var e=Z();ya(c,a,d,e);gi(c,b,d)}}function pk(a,b,c){var d=hb(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(ei(a))fi(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(ua(h,g)){var k=b.interleaved;null===k?(e.next=e,cf(b)):
(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(m){}finally{}c=Ch(a,b,e,d);null!==c&&(e=Z(),ya(c,a,d,e),gi(c,b,d))}}function ei(a){var b=a.alternate;return a===C||null!==b&&b===C}function fi(a,b){zc=Bd=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function gi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;xe(a,c)}}function Ub(a,b){try{var c="",d=b;do c+=gj(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+
"\n"+f.stack}return{value:a,source:b,stack:e,digest:null}}function vf(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function wf(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}function hi(a,b,c){c=Pa(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Ed||(Ed=!0,xf=d);wf(a,b)};return c}function ii(a,b,c){c=Pa(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){return d(e)};
c.callback=function(){wf(a,b)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){wf(a,b);"function"!==typeof d&&(null===ib?ib=new Set([this]):ib.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}function ji(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new sk;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=tk.bind(null,a,b,c),b.then(a,a))}function ki(a){do{var b;
if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}function li(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=Pa(-1,1),b.tag=2,eb(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}function aa(a,b,c,d){b.child=null===a?mi(b,null,c,d):Vb(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;Sb(b,e);d=of(a,b,c,d,f,
e);c=pf();if(null!==a&&!ha)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Qa(a,b,e);D&&c&&Ue(b);b.flags|=1;aa(a,b,d,e);return b.child}function oi(a,b,c,d,e){if(null===a){var f=c.type;if("function"===typeof f&&!yf(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,pi(a,b,f,d,e);a=wd(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:qc;if(c(g,d)&&a.ref===
b.ref)return Qa(a,b,e)}b.flags|=1;a=gb(f,d);a.ref=b.ref;a.return=b;return b.child=a}function pi(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(qc(f,d)&&a.ref===b.ref)if(ha=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(ha=!0);else return b.lanes=a.lanes,Qa(a,b,e)}return zf(a,b,c,d,e)}function qi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if("hidden"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},y(Ga,ba),ba|=c;
else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,y(Ga,ba),ba|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;y(Ga,ba);ba|=d}else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,y(Ga,ba),ba|=d;aa(a,b,e,c);return b.child}function ri(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function zf(a,
b,c,d,e){var f=ea(c)?qb:J.current;f=Nb(b,f);Sb(b,e);c=of(a,b,c,d,f,e);d=pf();if(null!==a&&!ha)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Qa(a,b,e);D&&d&&Ue(b);b.flags|=1;aa(a,b,c,e);return b.child}function si(a,b,c,d,e){if(ea(c)){var f=!0;ld(b)}else f=!1;Sb(b,e);if(null===b.stateNode)Fd(a,b),Hh(b,c,d),ff(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,m=c.contextType;"object"===typeof m&&null!==m?m=qa(m):(m=ea(c)?qb:J.current,m=Nb(b,
m));var l=c.getDerivedStateFromProps,n="function"===typeof l||"function"===typeof g.getSnapshotBeforeUpdate;n||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==m)&&Ih(b,g,d,m);fb=!1;var r=b.memoizedState;g.state=r;td(b,d,g,e);k=b.memoizedState;h!==d||r!==k||S.current||fb?("function"===typeof l&&(ef(b,c,l,d),k=b.memoizedState),(h=fb||Gh(b,c,h,d,r,k,m))?(n||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount||
("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.flags|=4194308)):("function"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=m,d=h):("function"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;Dh(a,b);h=b.memoizedProps;m=b.type===b.elementType?h:xa(b.type,h);g.props=
m;n=b.pendingProps;r=g.context;k=c.contextType;"object"===typeof k&&null!==k?k=qa(k):(k=ea(c)?qb:J.current,k=Nb(b,k));var p=c.getDerivedStateFromProps;(l="function"===typeof p||"function"===typeof g.getSnapshotBeforeUpdate)||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==n||r!==k)&&Ih(b,g,d,k);fb=!1;r=b.memoizedState;g.state=r;td(b,d,g,e);var x=b.memoizedState;h!==n||r!==x||S.current||fb?("function"===typeof p&&(ef(b,c,p,d),x=b.memoizedState),
(m=fb||Gh(b,c,m,d,r,x,k)||!1)?(l||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,x,k),"function"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),"function"===typeof g.componentDidUpdate&&(b.flags|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=
4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=m):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return Af(a,b,c,d,f,e)}function Af(a,b,c,d,e,f){ri(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&vh(b,c,!1),
Qa(a,b,f);d=b.stateNode;uk.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Vb(b,a.child,null,f),b.child=Vb(b,null,h,f)):aa(a,b,h,f);b.memoizedState=d.state;e&&vh(b,c,!0);return b.child}function ti(a){var b=a.stateNode;b.pendingContext?th(a,b.pendingContext,b.pendingContext!==b.context):b.context&&th(a,b.context,!1);jf(a,b.containerInfo)}function ui(a,b,c,d,e){Qb();Ye(e);b.flags|=256;aa(a,b,c,d);return b.child}function Bf(a){return{baseLanes:a,
cachePool:null,transitions:null}}function vi(a,b,c){var d=b.pendingProps,e=G.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;y(G,e&1);if(null===a){Xe(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:"$!"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:"hidden",children:g},0===(d&1)&&null!==
f?(f.childLanes=0,f.pendingProps=g):f=Gd(g,d,0,null),a=ub(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=Bf(c),b.memoizedState=Cf,a):Df(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return vk(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:"hidden",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=gb(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=gb(h,f):(f=
ub(f,g,c,null),f.flags|=2);f.return=b;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?Bf(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=Cf;return d}f=a.child;a=f.sibling;d=gb(f,{mode:"visible",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}
function Df(a,b,c){b=Gd({mode:"visible",children:b},a.mode,0,null);b.return=a;return a.child=b}function Hd(a,b,c,d){null!==d&&Ye(d);Vb(b,a.child,null,c);a=Df(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}function vk(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=vf(Error(n(422))),Hd(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=Gd({mode:"visible",children:d.children},e,0,null);f=ub(f,e,g,null);f.flags|=2;d.return=
b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Vb(b,a.child,null,g);b.child.memoizedState=Bf(g);b.memoizedState=Cf;return f}if(0===(b.mode&1))return Hd(a,b,g,null);if("$!"===e.data){d=e.nextSibling&&e.nextSibling.dataset;if(d)var h=d.dgst;d=h;f=Error(n(419));d=vf(f,d,void 0);return Hd(a,b,g,d)}h=0!==(g&a.childLanes);if(ha||h){d=O;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=
32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;0!==e&&e!==f.retryLane&&(f.retryLane=e,Oa(a,e),ya(d,a,e,-1))}Ef();d=vf(Error(n(421)));return Hd(a,b,g,d)}if("$?"===e.data)return b.flags|=128,b.child=a.child,b=wk.bind(null,a),e._reactRetry=b,null;a=f.treeContext;fa=Ka(e.nextSibling);la=b;D=!0;wa=null;null!==a&&(na[oa++]=Ma,na[oa++]=Na,na[oa++]=sb,Ma=a.id,Na=a.overflow,sb=b);b=Df(b,d.children);b.flags|=4096;return b}function wi(a,b,c){a.lanes|=b;var d=a.alternate;
null!==d&&(d.lanes|=b);bf(a.return,b,c)}function Ff(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}function xi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;aa(a,b,d.children,c);d=G.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&
wi(a,c,b);else if(19===a.tag)wi(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}y(G,d);if(0===(b.mode&1))b.memoizedState=null;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===yd(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Ff(b,!1,e,c,f);break;case "backwards":c=
null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===yd(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Ff(b,!0,c,null,f);break;case "together":Ff(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}function Fd(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Qa(a,b,c){null!==a&&(b.dependencies=a.dependencies);ra|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(n(153));if(null!==
b.child){a=b.child;c=gb(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=gb(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}function xk(a,b,c){switch(b.tag){case 3:ti(b);Qb();break;case 5:Mh(b);break;case 1:ea(b.type)&&ld(b);break;case 4:jf(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;y(rd,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return y(G,G.current&
1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return vi(a,b,c);y(G,G.current&1);a=Qa(a,b,c);return null!==a?a.sibling:null}y(G,G.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&128)){if(d)return xi(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);y(G,G.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,qi(a,b,c)}return Qa(a,b,c)}function Dc(a,b){if(!D)switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!==
b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}function W(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,
d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}function yk(a,b,c){var d=b.pendingProps;Ve(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return W(b),null;case 1:return ea(b.type)&&(w(S),w(J)),W(b),null;case 3:d=b.stateNode;Tb();w(S);w(J);lf();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)pd(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&
256)||(b.flags|=1024,null!==wa&&(Gf(wa),wa=null));yi(a,b);W(b);return null;case 5:kf(b);var e=vb(xc.current);c=b.type;if(null!==a&&null!=b.stateNode)zk(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(n(166));W(b);return null}a=vb(Ea.current);if(pd(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Da]=b;d[uc]=f;a=0!==(b.mode&1);switch(c){case "dialog":B("cancel",d);B("close",d);break;case "iframe":case "object":case "embed":B("load",d);break;
case "video":case "audio":for(e=0;e<Ec.length;e++)B(Ec[e],d);break;case "source":B("error",d);break;case "img":case "image":case "link":B("error",d);B("load",d);break;case "details":B("toggle",d);break;case "input":kg(d,f);B("invalid",d);break;case "select":d._wrapperState={wasMultiple:!!f.multiple};B("invalid",d);break;case "textarea":ng(d,f),B("invalid",d)}pe(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];"children"===g?"string"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&
jd(d.textContent,h,a),e=["children",h]):"number"===typeof h&&d.textContent!==""+h&&(!0!==f.suppressHydrationWarning&&jd(d.textContent,h,a),e=["children",""+h]):$b.hasOwnProperty(g)&&null!=h&&"onScroll"===g&&B("scroll",d)}switch(c){case "input":Pc(d);mg(d,f,!0);break;case "textarea":Pc(d);pg(d);break;case "select":case "option":break;default:"function"===typeof f.onClick&&(d.onclick=kd)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;"http://www.w3.org/1999/xhtml"===
a&&(a=qg(c));"http://www.w3.org/1999/xhtml"===a?"script"===c?(a=g.createElement("div"),a.innerHTML="<script>\x3c/script>",a=a.removeChild(a.firstChild)):"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Da]=b;a[uc]=d;Ak(a,b,!1,!1);b.stateNode=a;a:{g=qe(c,d);switch(c){case "dialog":B("cancel",a);B("close",a);e=d;break;case "iframe":case "object":case "embed":B("load",a);e=d;break;
case "video":case "audio":for(e=0;e<Ec.length;e++)B(Ec[e],a);e=d;break;case "source":B("error",a);e=d;break;case "img":case "image":case "link":B("error",a);B("load",a);e=d;break;case "details":B("toggle",a);e=d;break;case "input":kg(a,d);e=ke(a,d);B("invalid",a);break;case "option":e=d;break;case "select":a._wrapperState={wasMultiple:!!d.multiple};e=E({},d,{value:void 0});B("invalid",a);break;case "textarea":ng(a,d);e=ne(a,d);B("invalid",a);break;default:e=d}pe(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=
h[f];"style"===f?sg(a,k):"dangerouslySetInnerHTML"===f?(k=k?k.__html:void 0,null!=k&&zi(a,k)):"children"===f?"string"===typeof k?("textarea"!==c||""!==k)&&Fc(a,k):"number"===typeof k&&Fc(a,""+k):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&($b.hasOwnProperty(f)?null!=k&&"onScroll"===f&&B("scroll",a):null!=k&&$d(a,f,k,g))}switch(c){case "input":Pc(a);mg(a,d,!1);break;case "textarea":Pc(a);pg(a);break;case "option":null!=d.value&&a.setAttribute("value",""+Ua(d.value));
break;case "select":a.multiple=!!d.multiple;f=d.value;null!=f?Db(a,!!d.multiple,f,!1):null!=d.defaultValue&&Db(a,!!d.multiple,d.defaultValue,!0);break;default:"function"===typeof e.onClick&&(a.onclick=kd)}switch(c){case "button":case "input":case "select":case "textarea":d=!!d.autoFocus;break a;case "img":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}W(b);return null;case 6:if(a&&null!=b.stateNode)Bk(a,b,a.memoizedProps,d);else{if("string"!==typeof d&&null===
b.stateNode)throw Error(n(166));c=vb(xc.current);vb(Ea.current);if(pd(b)){d=b.stateNode;c=b.memoizedProps;d[Da]=b;if(f=d.nodeValue!==c)if(a=la,null!==a)switch(a.tag){case 3:jd(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&jd(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Da]=b,b.stateNode=d}W(b);return null;case 13:w(G);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(D&&
null!==fa&&0!==(b.mode&1)&&0===(b.flags&128)){for(f=fa;f;)f=Ka(f.nextSibling);Qb();b.flags|=98560;f=!1}else if(f=pd(b),null!==d&&null!==d.dehydrated){if(null===a){if(!f)throw Error(n(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(n(317));f[Da]=b}else Qb(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;W(b);f=!1}else null!==wa&&(Gf(wa),wa=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&
d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(G.current&1)?0===L&&(L=3):Ef()));null!==b.updateQueue&&(b.flags|=4);W(b);return null;case 4:return Tb(),yi(a,b),null===a&&sc(b.stateNode.containerInfo),W(b),null;case 10:return af(b.type._context),W(b),null;case 17:return ea(b.type)&&(w(S),w(J)),W(b),null;case 19:w(G);f=b.memoizedState;if(null===f)return W(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dc(f,!1);else{if(0!==L||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=
yd(a);if(null!==g){b.flags|=128;Dc(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,
f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;y(G,G.current&1|2);return b.child}a=a.sibling}null!==f.tail&&P()>Hf&&(b.flags|=128,d=!0,Dc(f,!1),b.lanes=4194304)}else{if(!d)if(a=yd(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dc(f,!0),null===f.tail&&"hidden"===f.tailMode&&!g.alternate&&!D)return W(b),null}else 2*P()-f.renderingStartTime>Hf&&1073741824!==c&&(b.flags|=
128,d=!0,Dc(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=P(),b.sibling=null,c=G.current,y(G,d?c&1|2:c&1),b;W(b);return null;case 22:case 23:return ba=Ga.current,w(Ga),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(ba&1073741824)&&(W(b),b.subtreeFlags&6&&(b.flags|=8192)):W(b),null;case 24:return null;
case 25:return null}throw Error(n(156,b.tag));}function Ck(a,b,c){Ve(b);switch(b.tag){case 1:return ea(b.type)&&(w(S),w(J)),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Tb(),w(S),w(J),lf(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return kf(b),null;case 13:w(G);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(n(340));Qb()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return w(G),null;case 4:return Tb(),
null;case 10:return af(b.type._context),null;case 22:case 23:return ba=Ga.current,w(Ga),null;case 24:return null;default:return null}}function Wb(a,b){var c=a.ref;if(null!==c)if("function"===typeof c)try{c(null)}catch(d){H(a,b,d)}else c.current=null}function If(a,b,c){try{c()}catch(d){H(a,b,d)}}function Dk(a,b){Jf=Zc;a=ch();if(Ie(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();
if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(M){c=null;break a}var g=0,h=-1,k=-1,m=0,t=0,u=a,r=null;b:for(;;){for(var p;;){u!==c||0!==e&&3!==u.nodeType||(h=g+e);u!==f||0!==d&&3!==u.nodeType||(k=g+d);3===u.nodeType&&(g+=u.nodeValue.length);if(null===(p=u.firstChild))break;r=u;u=p}for(;;){if(u===a)break b;r===c&&++m===e&&(h=g);r===f&&++t===d&&(k=g);if(null!==(p=u.nextSibling))break;u=r;r=u.parentNode}u=p}c=-1===h||-1===k?null:
{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Kf={focusedElem:a,selectionRange:c};Zc=!1;for(l=b;null!==l;)if(b=l,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,l=a;else for(;null!==l;){b=l;try{var x=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;case 1:if(null!==x){var w=x.memoizedProps,z=x.memoizedState,A=b.stateNode,v=A.getSnapshotBeforeUpdate(b.elementType===b.type?w:xa(b.type,w),z);A.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var q=
b.stateNode.containerInfo;1===q.nodeType?q.textContent="":9===q.nodeType&&q.documentElement&&q.removeChild(q.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163));}}catch(M){H(b,b.return,M)}a=b.sibling;if(null!==a){a.return=b.return;l=a;break}l=b.return}x=Ai;Ai=!1;return x}function Gc(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&If(b,c,f)}e=e.next}while(e!==d)}}
function Id(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Lf(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}"function"===typeof b?b(a):b.current=a}}function Bi(a){var b=a.alternate;null!==b&&(a.alternate=null,Bi(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Da],delete b[uc],delete b[Me],delete b[Ek],
delete b[Fk]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Ci(a){return 5===a.tag||3===a.tag||4===a.tag}function Di(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Ci(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&
2))return a.stateNode}}function Mf(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=kd));else if(4!==d&&(a=a.child,null!==a))for(Mf(a,b,c),a=a.sibling;null!==a;)Mf(a,b,c),a=a.sibling}function Nf(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);
else if(4!==d&&(a=a.child,null!==a))for(Nf(a,b,c),a=a.sibling;null!==a;)Nf(a,b,c),a=a.sibling}function jb(a,b,c){for(c=c.child;null!==c;)Ei(a,b,c),c=c.sibling}function Ei(a,b,c){if(Ca&&"function"===typeof Ca.onCommitFiberUnmount)try{Ca.onCommitFiberUnmount(Uc,c)}catch(h){}switch(c.tag){case 5:X||Wb(c,b);case 6:var d=T,e=za;T=null;jb(a,b,c);T=d;za=e;null!==T&&(za?(a=T,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):T.removeChild(c.stateNode));break;case 18:null!==T&&(za?
(a=T,c=c.stateNode,8===a.nodeType?Re(a.parentNode,c):1===a.nodeType&&Re(a,c),nc(a)):Re(T,c.stateNode));break;case 4:d=T;e=za;T=c.stateNode.containerInfo;za=!0;jb(a,b,c);T=d;za=e;break;case 0:case 11:case 14:case 15:if(!X&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?If(c,b,g):0!==(f&4)&&If(c,b,g));e=e.next}while(e!==d)}jb(a,b,c);break;case 1:if(!X&&(Wb(c,b),d=c.stateNode,"function"===typeof d.componentWillUnmount))try{d.props=
c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){H(c,b,h)}jb(a,b,c);break;case 21:jb(a,b,c);break;case 22:c.mode&1?(X=(d=X)||null!==c.memoizedState,jb(a,b,c),X=d):jb(a,b,c);break;default:jb(a,b,c)}}function Fi(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Gk);b.forEach(function(b){var d=Hk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}function Aa(a,b,c){c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=
c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:T=h.stateNode;za=!1;break a;case 3:T=h.stateNode.containerInfo;za=!0;break a;case 4:T=h.stateNode.containerInfo;za=!0;break a}h=h.return}if(null===T)throw Error(n(160));Ei(f,g,e);T=null;za=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(m){H(e,b,m)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)Gi(b,a),b=b.sibling}function Gi(a,b,c){var d=a.alternate;c=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:Aa(b,a);
Ha(a);if(c&4){try{Gc(3,a,a.return),Id(3,a)}catch(F){H(a,a.return,F)}try{Gc(5,a,a.return)}catch(F){H(a,a.return,F)}}break;case 1:Aa(b,a);Ha(a);c&512&&null!==d&&Wb(d,d.return);break;case 5:Aa(b,a);Ha(a);c&512&&null!==d&&Wb(d,d.return);if(a.flags&32){var e=a.stateNode;try{Fc(e,"")}catch(F){H(a,a.return,F)}}if(c&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==d?d.memoizedProps:f,h=a.type,k=a.updateQueue;a.updateQueue=null;if(null!==k)try{"input"===h&&"radio"===f.type&&null!=f.name&&lg(e,f);
qe(h,g);var m=qe(h,f);for(g=0;g<k.length;g+=2){var t=k[g],u=k[g+1];"style"===t?sg(e,u):"dangerouslySetInnerHTML"===t?zi(e,u):"children"===t?Fc(e,u):$d(e,t,u,m)}switch(h){case "input":le(e,f);break;case "textarea":og(e,f);break;case "select":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var p=f.value;null!=p?Db(e,!!f.multiple,p,!1):r!==!!f.multiple&&(null!=f.defaultValue?Db(e,!!f.multiple,f.defaultValue,!0):Db(e,!!f.multiple,f.multiple?[]:"",!1))}e[uc]=f}catch(F){H(a,a.return,
F)}}break;case 6:Aa(b,a);Ha(a);if(c&4){if(null===a.stateNode)throw Error(n(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(F){H(a,a.return,F)}}break;case 3:Aa(b,a);Ha(a);if(c&4&&null!==d&&d.memoizedState.isDehydrated)try{nc(b.containerInfo)}catch(F){H(a,a.return,F)}break;case 4:Aa(b,a);Ha(a);break;case 13:Aa(b,a);Ha(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||null!==e.alternate&&null!==e.alternate.memoizedState||(Of=P()));c&4&&Fi(a);break;case 22:t=
null!==d&&null!==d.memoizedState;a.mode&1?(X=(m=X)||t,Aa(b,a),X=m):Aa(b,a);Ha(a);if(c&8192){m=null!==a.memoizedState;if((a.stateNode.isHidden=m)&&!t&&0!==(a.mode&1))for(l=a,t=a.child;null!==t;){for(u=l=t;null!==l;){r=l;p=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Gc(4,r,r.return);break;case 1:Wb(r,r.return);var x=r.stateNode;if("function"===typeof x.componentWillUnmount){c=r;b=r.return;try{d=c,x.props=d.memoizedProps,x.state=d.memoizedState,x.componentWillUnmount()}catch(F){H(c,b,F)}}break;
case 5:Wb(r,r.return);break;case 22:if(null!==r.memoizedState){Hi(u);continue}}null!==p?(p.return=r,l=p):Hi(u)}t=t.sibling}a:for(t=null,u=a;;){if(5===u.tag){if(null===t){t=u;try{e=u.stateNode,m?(f=e.style,"function"===typeof f.setProperty?f.setProperty("display","none","important"):f.display="none"):(h=u.stateNode,k=u.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty("display")?k.display:null,h.style.display=rg("display",g))}catch(F){H(a,a.return,F)}}}else if(6===u.tag){if(null===t)try{u.stateNode.nodeValue=
m?"":u.memoizedProps}catch(F){H(a,a.return,F)}}else if((22!==u.tag&&23!==u.tag||null===u.memoizedState||u===a)&&null!==u.child){u.child.return=u;u=u.child;continue}if(u===a)break a;for(;null===u.sibling;){if(null===u.return||u.return===a)break a;t===u&&(t=null);u=u.return}t===u&&(t=null);u.sibling.return=u.return;u=u.sibling}}break;case 19:Aa(b,a);Ha(a);c&4&&Fi(a);break;case 21:break;default:Aa(b,a),Ha(a)}}function Ha(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Ci(c)){var d=c;
break a}c=c.return}throw Error(n(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(Fc(e,""),d.flags&=-33);var f=Di(a);Nf(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Di(a);Mf(a,h,g);break;default:throw Error(n(161));}}catch(k){H(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function Ik(a,b,c){l=a;Ii(a,b,c)}function Ii(a,b,c){for(var d=0!==(a.mode&1);null!==l;){var e=l,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jd;if(!g){var h=e.alternate,k=null!==h&&null!==
h.memoizedState||X;h=Jd;var m=X;Jd=g;if((X=k)&&!m)for(l=e;null!==l;)g=l,k=g.child,22===g.tag&&null!==g.memoizedState?Ji(e):null!==k?(k.return=g,l=k):Ji(e);for(;null!==f;)l=f,Ii(f,b,c),f=f.sibling;l=e;Jd=h;X=m}Ki(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,l=f):Ki(a,b,c)}}function Ki(a,b,c){for(;null!==l;){b=l;if(0!==(b.flags&8772)){c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:X||Id(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!X)if(null===c)d.componentDidMount();
else{var e=b.elementType===b.type?c.memoizedProps:xa(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&Fh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=b.child.stateNode;break;case 1:c=b.child.stateNode}Fh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case "button":case "input":case "select":case "textarea":k.autoFocus&&
c.focus();break;case "img":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var m=b.alternate;if(null!==m){var t=m.memoizedState;if(null!==t){var p=t.dehydrated;null!==p&&nc(p)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163));}X||b.flags&512&&Lf(b)}catch(r){H(b,b.return,r)}}if(b===a){l=null;break}c=b.sibling;if(null!==c){c.return=b.return;l=c;break}l=b.return}}function Hi(a){for(;null!==l;){var b=l;if(b===
a){l=null;break}var c=b.sibling;if(null!==c){c.return=b.return;l=c;break}l=b.return}}function Ji(a){for(;null!==l;){var b=l;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Id(4,b)}catch(k){H(b,c,k)}break;case 1:var d=b.stateNode;if("function"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){H(b,e,k)}}var f=b.return;try{Lf(b)}catch(k){H(b,f,k)}break;case 5:var g=b.return;try{Lf(b)}catch(k){H(b,g,k)}}}catch(k){H(b,b.return,k)}if(b===a){l=null;break}var h=b.sibling;
if(null!==h){h.return=b.return;l=h;break}l=b.return}}function Hc(){Hf=P()+500}function Z(){return 0!==(p&6)?P():-1!==Kd?Kd:Kd=P()}function hb(a){if(0===(a.mode&1))return 1;if(0!==(p&2)&&0!==U)return U&-U;if(null!==Jk.transition)return 0===Ld&&(Ld=Dg()),Ld;a=z;if(0!==a)return a;a=window.event;a=void 0===a?16:Lg(a.type);return a}function ya(a,b,c,d){if(50<Ic)throw Ic=0,Pf=null,Error(n(185));ic(a,c,d);if(0===(p&2)||a!==O)a===O&&(0===(p&2)&&(Md|=c),4===L&&kb(a,U)),ia(a,d),1===c&&0===p&&0===(b.mode&1)&&
(Hc(),md&&db())}function ia(a,b){var c=a.callbackNode;uj(a,b);var d=Vc(a,a===O?U:0);if(0===d)null!==c&&Li(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&Li(c);if(1===b)0===a.tag?kk(Mi.bind(null,a)):wh(Mi.bind(null,a)),Kk(function(){0===(p&6)&&db()}),c=null;else{switch(Eg(d)){case 1:c=De;break;case 4:c=Mg;break;case 16:c=ad;break;case 536870912:c=Ng;break;default:c=ad}c=Ni(c,Oi.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}function Oi(a,b){Kd=-1;
Ld=0;if(0!==(p&6))throw Error(n(327));var c=a.callbackNode;if(Xb()&&a.callbackNode!==c)return null;var d=Vc(a,a===O?U:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Nd(a,d);else{b=d;var e=p;p|=2;var f=Pi();if(O!==a||U!==b)Ra=null,Hc(),xb(a,b);do try{Lk();break}catch(h){Qi(a,h)}while(1);Ze();Od.current=f;p=e;null!==I?b=0:(O=null,U=0,b=L)}if(0!==b){2===b&&(e=ve(a),0!==e&&(d=e,b=Qf(a,e)));if(1===b)throw c=Jc,xb(a,0),kb(a,d),ia(a,P()),c;if(6===b)kb(a,d);else{e=a.current.alternate;
if(0===(d&30)&&!Mk(e)&&(b=Nd(a,d),2===b&&(f=ve(a),0!==f&&(d=f,b=Qf(a,f))),1===b))throw c=Jc,xb(a,0),kb(a,d),ia(a,P()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(n(345));case 2:yb(a,ja,Ra);break;case 3:kb(a,d);if((d&130023424)===d&&(b=Of+500-P(),10<b)){if(0!==Vc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){Z();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Rf(yb.bind(null,a,ja,Ra),b);break}yb(a,ja,Ra);break;case 4:kb(a,d);if((d&4194240)===d)break;b=a.eventTimes;
for(e=-1;0<d;){var g=31-ta(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=P()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*Nk(d/1960))-d;if(10<d){a.timeoutHandle=Rf(yb.bind(null,a,ja,Ra),d);break}yb(a,ja,Ra);break;case 5:yb(a,ja,Ra);break;default:throw Error(n(329));}}}ia(a,P());return a.callbackNode===c?Oi.bind(null,a):null}function Qf(a,b){var c=Kc;a.current.memoizedState.isDehydrated&&(xb(a,b).flags|=256);a=Nd(a,b);2!==a&&(b=ja,ja=c,null!==b&&Gf(b));return a}function Gf(a){null===
ja?ja=a:ja.push.apply(ja,a)}function Mk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!ua(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}function kb(a,b){b&=~Sf;b&=~Md;a.suspendedLanes|=b;a.pingedLanes&=
~b;for(a=a.expirationTimes;0<b;){var c=31-ta(b),d=1<<c;a[c]=-1;b&=~d}}function Mi(a){if(0!==(p&6))throw Error(n(327));Xb();var b=Vc(a,0);if(0===(b&1))return ia(a,P()),null;var c=Nd(a,b);if(0!==a.tag&&2===c){var d=ve(a);0!==d&&(b=d,c=Qf(a,d))}if(1===c)throw c=Jc,xb(a,0),kb(a,b),ia(a,P()),c;if(6===c)throw Error(n(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;yb(a,ja,Ra);ia(a,P());return null}function Tf(a,b){var c=p;p|=1;try{return a(b)}finally{p=c,0===p&&(Hc(),md&&db())}}function zb(a){null!==
lb&&0===lb.tag&&0===(p&6)&&Xb();var b=p;p|=1;var c=ca.transition,d=z;try{if(ca.transition=null,z=1,a)return a()}finally{z=d,ca.transition=c,p=b,0===(p&6)&&db()}}function xb(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Ok(c));if(null!==I)for(c=I.return;null!==c;){var d=c;Ve(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&(w(S),w(J));break;case 3:Tb();w(S);w(J);lf();break;case 5:kf(d);break;case 4:Tb();break;case 13:w(G);break;
case 19:w(G);break;case 10:af(d.type._context);break;case 22:case 23:ba=Ga.current,w(Ga)}c=c.return}O=a;I=a=gb(a.current,null);U=ba=b;L=0;Jc=null;Sf=Md=ra=0;ja=Kc=null;if(null!==tb){for(b=0;b<tb.length;b++)if(c=tb[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}tb=null}return a}function Qi(a,b){do{var c=I;try{Ze();zd.current=Ad;if(Bd){for(var d=C.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Bd=
!1}wb=0;N=K=C=null;zc=!1;Ac=0;Uf.current=null;if(null===c||null===c.return){L=1;Jc=b;I=null;break}a:{var f=a,g=c.return,h=c,k=b;b=U;h.flags|=32768;if(null!==k&&"object"===typeof k&&"function"===typeof k.then){var m=k,l=h,p=l.tag;if(0===(l.mode&1)&&(0===p||11===p||15===p)){var r=l.alternate;r?(l.updateQueue=r.updateQueue,l.memoizedState=r.memoizedState,l.lanes=r.lanes):(l.updateQueue=null,l.memoizedState=null)}var w=ki(g);if(null!==w){w.flags&=-257;li(w,g,h,f,b);w.mode&1&&ji(f,m,b);b=w;k=m;var x=b.updateQueue;
if(null===x){var z=new Set;z.add(k);b.updateQueue=z}else x.add(k);break a}else{if(0===(b&1)){ji(f,m,b);Ef();break a}k=Error(n(426))}}else if(D&&h.mode&1){var y=ki(g);if(null!==y){0===(y.flags&65536)&&(y.flags|=256);li(y,g,h,f,b);Ye(Ub(k,h));break a}}f=k=Ub(k,h);4!==L&&(L=2);null===Kc?Kc=[f]:Kc.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;b&=-b;f.lanes|=b;var A=hi(f,k,b);Eh(f,A);break a;case 1:h=k;var v=f.type,q=f.stateNode;if(0===(f.flags&128)&&("function"===typeof v.getDerivedStateFromError||
null!==q&&"function"===typeof q.componentDidCatch&&(null===ib||!ib.has(q)))){f.flags|=65536;b&=-b;f.lanes|=b;var B=ii(f,h,b);Eh(f,B);break a}}f=f.return}while(null!==f)}Ri(c)}catch(ma){b=ma;I===c&&null!==c&&(I=c=c.return);continue}break}while(1)}function Pi(){var a=Od.current;Od.current=Ad;return null===a?Ad:a}function Ef(){if(0===L||3===L||2===L)L=4;null===O||0===(ra&268435455)&&0===(Md&268435455)||kb(O,U)}function Nd(a,b){var c=p;p|=2;var d=Pi();if(O!==a||U!==b)Ra=null,xb(a,b);do try{Pk();break}catch(e){Qi(a,
e)}while(1);Ze();p=c;Od.current=d;if(null!==I)throw Error(n(261));O=null;U=0;return L}function Pk(){for(;null!==I;)Si(I)}function Lk(){for(;null!==I&&!Qk();)Si(I)}function Si(a){var b=Rk(a.alternate,a,ba);a.memoizedProps=a.pendingProps;null===b?Ri(a):I=b;Uf.current=null}function Ri(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=yk(c,b,ba),null!==c){I=c;return}}else{c=Ck(c,b);if(null!==c){c.flags&=32767;I=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;
else{L=6;I=null;return}}b=b.sibling;if(null!==b){I=b;return}I=b=a}while(null!==b);0===L&&(L=5)}function yb(a,b,c){var d=z,e=ca.transition;try{ca.transition=null,z=1,Sk(a,b,c,d)}finally{ca.transition=e,z=d}return null}function Sk(a,b,c,d){do Xb();while(null!==lb);if(0!==(p&6))throw Error(n(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(n(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;
vj(a,f);a===O&&(I=O=null,U=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||Pd||(Pd=!0,Ni(ad,function(){Xb();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ca.transition;ca.transition=null;var g=z;z=1;var h=p;p|=4;Uf.current=null;Dk(a,c);Gi(c,a);Uj(Kf);Zc=!!Jf;Kf=Jf=null;a.current=c;Ik(c,a,e);Tk();p=h;z=g;ca.transition=f}else a.current=c;Pd&&(Pd=!1,lb=a,Qd=e);f=a.pendingLanes;0===f&&(ib=null);pj(c.stateNode,d);ia(a,P());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=
b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Ed)throw Ed=!1,a=xf,xf=null,a;0!==(Qd&1)&&0!==a.tag&&Xb();f=a.pendingLanes;0!==(f&1)?a===Pf?Ic++:(Ic=0,Pf=a):Ic=0;db();return null}function Xb(){if(null!==lb){var a=Eg(Qd),b=ca.transition,c=z;try{ca.transition=null;z=16>a?16:a;if(null===lb)var d=!1;else{a=lb;lb=null;Qd=0;if(0!==(p&6))throw Error(n(331));var e=p;p|=4;for(l=a.current;null!==l;){var f=l,g=f.child;if(0!==(l.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var m=
h[k];for(l=m;null!==l;){var t=l;switch(t.tag){case 0:case 11:case 15:Gc(8,t,f)}var u=t.child;if(null!==u)u.return=t,l=u;else for(;null!==l;){t=l;var r=t.sibling,w=t.return;Bi(t);if(t===m){l=null;break}if(null!==r){r.return=w;l=r;break}l=w}}}var x=f.alternate;if(null!==x){var y=x.child;if(null!==y){x.child=null;do{var C=y.sibling;y.sibling=null;y=C}while(null!==y)}}l=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,l=g;else b:for(;null!==l;){f=l;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Gc(9,
f,f.return)}var A=f.sibling;if(null!==A){A.return=f.return;l=A;break b}l=f.return}}var v=a.current;for(l=v;null!==l;){g=l;var q=g.child;if(0!==(g.subtreeFlags&2064)&&null!==q)q.return=g,l=q;else b:for(g=v;null!==l;){h=l;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Id(9,h)}}catch(ma){H(h,h.return,ma)}if(h===g){l=null;break b}var B=h.sibling;if(null!==B){B.return=h.return;l=B;break b}l=h.return}}p=e;db();if(Ca&&"function"===typeof Ca.onPostCommitFiberRoot)try{Ca.onPostCommitFiberRoot(Uc,
a)}catch(ma){}d=!0}return d}finally{z=c,ca.transition=b}}return!1}function Ti(a,b,c){b=Ub(c,b);b=hi(a,b,1);a=eb(a,b,1);b=Z();null!==a&&(ic(a,1,b),ia(a,b))}function H(a,b,c){if(3===a.tag)Ti(a,a,c);else for(;null!==b;){if(3===b.tag){Ti(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if("function"===typeof b.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===ib||!ib.has(d))){a=Ub(c,a);a=ii(b,a,1);b=eb(b,a,1);a=Z();null!==b&&(ic(b,1,a),ia(b,a));break}}b=b.return}}function tk(a,
b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Z();a.pingedLanes|=a.suspendedLanes&c;O===a&&(U&c)===c&&(4===L||3===L&&(U&130023424)===U&&500>P()-Of?xb(a,0):Sf|=c);ia(a,b)}function Ui(a,b){0===b&&(0===(a.mode&1)?b=1:(b=Rd,Rd<<=1,0===(Rd&130023424)&&(Rd=4194304)));var c=Z();a=Oa(a,b);null!==a&&(ic(a,b,c),ia(a,c))}function wk(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Ui(a,c)}function Hk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);
break;case 19:d=a.stateNode;break;default:throw Error(n(314));}null!==d&&d.delete(b);Ui(a,c)}function Ni(a,b){return xh(a,b)}function Uk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function yf(a){a=
a.prototype;return!(!a||!a.isReactComponent)}function Vk(a){if("function"===typeof a)return yf(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===ie)return 11;if(a===je)return 14}return 2}function gb(a,b){var c=a.alternate;null===c?(c=pa(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=
a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function wd(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)yf(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case Bb:return ub(c.children,e,f,b);case fe:g=8;e|=8;break;case ee:return a=pa(12,c,b,e|2),a.elementType=ee,a.lanes=f,a;case ge:return a=
pa(13,c,b,e),a.elementType=ge,a.lanes=f,a;case he:return a=pa(19,c,b,e),a.elementType=he,a.lanes=f,a;case Vi:return Gd(c,e,f,b);default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case hg:g=10;break a;case gg:g=9;break a;case ie:g=11;break a;case je:g=14;break a;case Ta:g=16;d=null;break a}throw Error(n(130,null==a?a:typeof a,""));}b=pa(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function ub(a,b,c,d){a=pa(7,a,d,b);a.lanes=c;return a}function Gd(a,b,c,d){a=pa(22,a,d,b);a.elementType=
Vi;a.lanes=c;a.stateNode={isHidden:!1};return a}function gf(a,b,c){a=pa(6,a,null,b);a.lanes=c;return a}function hf(a,b,c){b=pa(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function Wk(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=
0;this.eventTimes=we(0);this.expirationTimes=we(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=we(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=null}function Vf(a,b,c,d,e,f,g,h,k,m){a=new Wk(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=pa(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,
pendingSuspenseBoundaries:null};df(f);return a}function Xk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Cb,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}function Wi(a){if(!a)return cb;a=a._reactInternals;a:{if(ob(a)!==a||1!==a.tag)throw Error(n(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(ea(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(n(171));
}if(1===a.tag){var c=a.type;if(ea(c))return uh(a,c,b)}return b}function Xi(a,b,c,d,e,f,g,h,k,m){a=Vf(c,d,!0,a,e,f,g,h,k);a.context=Wi(null);c=a.current;d=Z();e=hb(c);f=Pa(d,e);f.callback=void 0!==b&&null!==b?b:null;eb(c,f,e);a.current.lanes=e;ic(a,e,d);ia(a,d);return a}function Sd(a,b,c,d){var e=b.current,f=Z(),g=hb(e);c=Wi(c);null===b.context?b.context=c:b.pendingContext=c;b=Pa(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=eb(e,b,g);null!==a&&(ya(a,e,g,f),sd(a,e,g));return g}
function Td(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Yi(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function Wf(a,b){Yi(a,b);(a=a.alternate)&&Yi(a,b)}function Yk(a){a=Bg(a);return null===a?null:a.stateNode}function Zk(a){return null}function Xf(a){this._internalRoot=a}function Ud(a){this._internalRoot=a}function Yf(a){return!(!a||1!==a.nodeType&&9!==
a.nodeType&&11!==a.nodeType)}function Vd(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function Zi(){}function $k(a,b,c,d,e){if(e){if("function"===typeof d){var f=d;d=function(){var a=Td(g);f.call(a)}}var g=Xi(b,d,a,0,null,!1,!1,"",Zi);a._reactRootContainer=g;a[Ja]=g.current;sc(8===a.nodeType?a.parentNode:a);zb();return g}for(;e=a.lastChild;)a.removeChild(e);if("function"===typeof d){var h=d;d=function(){var a=Td(k);
h.call(a)}}var k=Vf(a,0,!1,null,null,!1,!1,"",Zi);a._reactRootContainer=k;a[Ja]=k.current;sc(8===a.nodeType?a.parentNode:a);zb(function(){Sd(b,k,c,d)});return k}function Wd(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if("function"===typeof e){var h=e;e=function(){var a=Td(g);h.call(a)}}Sd(b,g,a,e)}else g=$k(c,b,a,e,d);return Td(g)}var cg=new Set,$b={},Ia=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),Zd=Object.prototype.hasOwnProperty,
dj=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,eg={},dg={},R={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){R[a]=
new Y(a,0,!1,a,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];R[b]=new Y(b,1,!1,a[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){R[a]=new Y(a,2,!1,a.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){R[a]=new Y(a,2,!1,a,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){R[a]=
new Y(a,3,!1,a.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(a){R[a]=new Y(a,3,!0,a,null,!1,!1)});["capture","download"].forEach(function(a){R[a]=new Y(a,4,!1,a,null,!1,!1)});["cols","rows","size","span"].forEach(function(a){R[a]=new Y(a,6,!1,a,null,!1,!1)});["rowSpan","start"].forEach(function(a){R[a]=new Y(a,5,!1,a.toLowerCase(),null,!1,!1)});var Zf=/[\-:]([a-z])/g,$f=function(a){return a[1].toUpperCase()};"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=
a.replace(Zf,$f);R[b]=new Y(b,1,!1,a,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(Zf,$f);R[b]=new Y(b,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(Zf,$f);R[b]=new Y(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(a){R[a]=new Y(a,1,!1,a.toLowerCase(),null,!1,!1)});R.xlinkHref=new Y("xlinkHref",
1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(a){R[a]=new Y(a,1,!1,a.toLowerCase(),null,!0,!0)});var Sa=mb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,xd=Symbol.for("react.element"),Cb=Symbol.for("react.portal"),Bb=Symbol.for("react.fragment"),fe=Symbol.for("react.strict_mode"),ee=Symbol.for("react.profiler"),hg=Symbol.for("react.provider"),gg=Symbol.for("react.context"),ie=Symbol.for("react.forward_ref"),ge=Symbol.for("react.suspense"),
he=Symbol.for("react.suspense_list"),je=Symbol.for("react.memo"),Ta=Symbol.for("react.lazy");Symbol.for("react.scope");Symbol.for("react.debug_trace_mode");var Vi=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden");Symbol.for("react.cache");Symbol.for("react.tracing_marker");var fg=Symbol.iterator,E=Object.assign,ae,ce=!1,cc=Array.isArray,Xd,zi=function(a){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,
c,d,e)})}:a}(function(a,b){if("http://www.w3.org/2000/svg"!==a.namespaceURI||"innerHTML"in a)a.innerHTML=b;else{Xd=Xd||document.createElement("div");Xd.innerHTML="<svg>"+b.valueOf().toString()+"</svg>";for(b=Xd.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),Fc=function(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b},dc={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,
borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,
strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},al=["Webkit","ms","Moz","O"];Object.keys(dc).forEach(function(a){al.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dc[b]=dc[a]})});var jj=E({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),ze=null,se=null,Eb=null,Fb=null,xg=function(a,b){return a(b)},yg=function(){},te=!1,Oe=!1;if(Ia)try{var Lc={};Object.defineProperty(Lc,
"passive",{get:function(){Oe=!0}});window.addEventListener("test",Lc,Lc);window.removeEventListener("test",Lc,Lc)}catch(a){Oe=!1}var lj=function(a,b,c,d,e,f,g,h,k){var m=Array.prototype.slice.call(arguments,3);try{b.apply(c,m)}catch(t){this.onError(t)}},gc=!1,Sc=null,Tc=!1,ue=null,mj={onError:function(a){gc=!0;Sc=a}},Ba=mb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Scheduler,Jg=Ba.unstable_scheduleCallback,Kg=Ba.unstable_NormalPriority,xh=Jg,Li=Ba.unstable_cancelCallback,Qk=Ba.unstable_shouldYield,
Tk=Ba.unstable_requestPaint,P=Ba.unstable_now,Ej=Ba.unstable_getCurrentPriorityLevel,De=Ba.unstable_ImmediatePriority,Mg=Ba.unstable_UserBlockingPriority,ad=Kg,Fj=Ba.unstable_LowPriority,Ng=Ba.unstable_IdlePriority,Uc=null,Ca=null,ta=Math.clz32?Math.clz32:qj,rj=Math.log,sj=Math.LN2,Wc=64,Rd=4194304,z=0,Ae=!1,Yc=[],Va=null,Wa=null,Xa=null,jc=new Map,kc=new Map,Ya=[],Cj="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" "),
Gb=Sa.ReactCurrentBatchConfig,Zc=!0,$c=null,Za=null,Ee=null,bd=null,Yb={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},He=ka(Yb),Mc=E({},Yb,{view:0,detail:0}),bk=ka(Mc),ag,bg,Nc,Yd=E({},Mc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Fe,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:
a.relatedTarget},movementX:function(a){if("movementX"in a)return a.movementX;a!==Nc&&(Nc&&"mousemove"===a.type?(ag=a.screenX-Nc.screenX,bg=a.screenY-Nc.screenY):bg=ag=0,Nc=a);return ag},movementY:function(a){return"movementY"in a?a.movementY:bg}}),ih=ka(Yd),bl=E({},Yd,{dataTransfer:0}),Xj=ka(bl),cl=E({},Mc,{relatedTarget:0}),Pe=ka(cl),dl=E({},Yb,{animationName:0,elapsedTime:0,pseudoElement:0}),Zj=ka(dl),el=E({},Yb,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),
dk=ka(el),fl=E({},Yb,{data:0}),qh=ka(fl),gk=qh,gl={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},hl={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",
112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Hj={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},il=E({},Mc,{key:function(a){if(a.key){var b=gl[a.key]||a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=cd(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?hl[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,
metaKey:0,repeat:0,locale:0,getModifierState:Fe,charCode:function(a){return"keypress"===a.type?cd(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===a.type?cd(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),Wj=ka(il),jl=E({},Yd,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),nh=ka(jl),kl=E({},Mc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,
ctrlKey:0,shiftKey:0,getModifierState:Fe}),Yj=ka(kl),ll=E({},Yb,{propertyName:0,elapsedTime:0,pseudoElement:0}),ak=ka(ll),ml=E({},Yd,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),ck=ka(ml),Ij=[9,13,27,32],Ge=Ia&&"CompositionEvent"in window,Oc=null;Ia&&"documentMode"in document&&(Oc=document.documentMode);var fk=Ia&&"TextEvent"in
window&&!Oc,Ug=Ia&&(!Ge||Oc&&8<Oc&&11>=Oc),Tg=String.fromCharCode(32),Sg=!1,Hb=!1,Lj={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},oc=null,pc=null,ph=!1;Ia&&(ph=Mj("input")&&(!document.documentMode||9<document.documentMode));var ua="function"===typeof Object.is?Object.is:Tj,ek=Ia&&"documentMode"in document&&11>=document.documentMode,Jb=null,Ke=null,rc=null,Je=!1,Kb={animationend:gd("Animation","AnimationEnd"),
animationiteration:gd("Animation","AnimationIteration"),animationstart:gd("Animation","AnimationStart"),transitionend:gd("Transition","TransitionEnd")},Le={},eh={};Ia&&(eh=document.createElement("div").style,"AnimationEvent"in window||(delete Kb.animationend.animation,delete Kb.animationiteration.animation,delete Kb.animationstart.animation),"TransitionEvent"in window||delete Kb.transitionend.transition);var jh=hd("animationend"),kh=hd("animationiteration"),lh=hd("animationstart"),mh=hd("transitionend"),
fh=new Map,$i="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");
(function(){for(var a=0;a<$i.length;a++){var b=$i[a],c=b.toLowerCase();b=b[0].toUpperCase()+b.slice(1);$a(c,"on"+b)}$a(jh,"onAnimationEnd");$a(kh,"onAnimationIteration");$a(lh,"onAnimationStart");$a("dblclick","onDoubleClick");$a("focusin","onFocus");$a("focusout","onBlur");$a(mh,"onTransitionEnd")})();Ab("onMouseEnter",["mouseout","mouseover"]);Ab("onMouseLeave",["mouseout","mouseover"]);Ab("onPointerEnter",["pointerout","pointerover"]);Ab("onPointerLeave",["pointerout","pointerover"]);nb("onChange",
"change click focusin focusout input keydown keyup selectionchange".split(" "));nb("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));nb("onBeforeInput",["compositionend","keypress","textInput","paste"]);nb("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));nb("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));nb("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));
var Ec="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Vj=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ec)),id="_reactListening"+Math.random().toString(36).slice(2),hk=/\r\n?/g,ik=/\u0000|\uFFFD/g,Jf=null,Kf=null,Rf="function"===typeof setTimeout?setTimeout:void 0,Ok="function"===typeof clearTimeout?
clearTimeout:void 0,aj="function"===typeof Promise?Promise:void 0,Kk="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof aj?function(a){return aj.resolve(null).then(a).catch(jk)}:Rf,Zb=Math.random().toString(36).slice(2),Da="__reactFiber$"+Zb,uc="__reactProps$"+Zb,Ja="__reactContainer$"+Zb,Me="__reactEvents$"+Zb,Ek="__reactListeners$"+Zb,Fk="__reactHandles$"+Zb,Se=[],Mb=-1,cb={},J=bb(cb),S=bb(!1),qb=cb,La=null,md=!1,Te=!1,Ob=[],Pb=0,od=null,nd=0,na=[],oa=0,sb=null,Ma=1,Na="",la=
null,fa=null,D=!1,wa=null,Jk=Sa.ReactCurrentBatchConfig,rd=bb(null),qd=null,Rb=null,$e=null,tb=null,lk=Oa,fb=!1,Jh=(new mb.Component).refs,ud={isMounted:function(a){return(a=a._reactInternals)?ob(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Z(),e=hb(a),f=Pa(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=eb(a,f,e);null!==b&&(ya(b,a,e,d),sd(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Z(),e=hb(a),f=Pa(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==
c&&(f.callback=c);b=eb(a,f,e);null!==b&&(ya(b,a,e,d),sd(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Z(),d=hb(a),e=Pa(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=eb(a,e,d);null!==b&&(ya(b,a,d,c),sd(b,a,d))}},Vb=Lh(!0),mi=Lh(!1),wc={},Ea=bb(wc),yc=bb(wc),xc=bb(wc),G=bb(0),mf=[],zd=Sa.ReactCurrentDispatcher,uf=Sa.ReactCurrentBatchConfig,wb=0,C=null,K=null,N=null,Bd=!1,zc=!1,Ac=0,nl=0,Ad={readContext:qa,useCallback:V,useContext:V,useEffect:V,useImperativeHandle:V,useInsertionEffect:V,
useLayoutEffect:V,useMemo:V,useReducer:V,useRef:V,useState:V,useDebugValue:V,useDeferredValue:V,useTransition:V,useMutableSource:V,useSyncExternalStore:V,useId:V,unstable_isNewReconciler:!1},mk={readContext:qa,useCallback:function(a,b){Fa().memoizedState=[a,void 0===b?null:b];return a},useContext:qa,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Cd(4194308,4,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Cd(4194308,4,a,b)},useInsertionEffect:function(a,
b){return Cd(4,2,a,b)},useMemo:function(a,b){var c=Fa();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Fa();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=rk.bind(null,C,a);return[d.memoizedState,a]},useRef:function(a){var b=Fa();a={current:a};return b.memoizedState=a},useState:Uh,useDebugValue:tf,useDeferredValue:function(a){return Fa().memoizedState=
a},useTransition:function(){var a=Uh(!1),b=a[0];a=qk.bind(null,a[1]);Fa().memoizedState=a;return[b,a]},useMutableSource:function(a,b,c){},useSyncExternalStore:function(a,b,c){var d=C,e=Fa();if(D){if(void 0===c)throw Error(n(407));c=c()}else{c=b();if(null===O)throw Error(n(349));0!==(wb&30)||Rh(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;Wh(Ph.bind(null,d,f,a),[a]);d.flags|=2048;Cc(9,Qh.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Fa(),b=O.identifierPrefix;
if(D){var c=Na;var d=Ma;c=(d&~(1<<32-ta(d)-1)).toString(32)+c;b=":"+b+"R"+c;c=Ac++;0<c&&(b+="H"+c.toString(32));b+=":"}else c=nl++,b=":"+b+"r"+c.toString(32)+":";return a.memoizedState=b},unstable_isNewReconciler:!1},nk={readContext:qa,useCallback:ai,useContext:qa,useEffect:sf,useImperativeHandle:$h,useInsertionEffect:Xh,useLayoutEffect:Yh,useMemo:bi,useReducer:qf,useRef:Vh,useState:function(a){return qf(Bc)},useDebugValue:tf,useDeferredValue:function(a){var b=sa();return ci(b,K.memoizedState,a)},
useTransition:function(){var a=qf(Bc)[0],b=sa().memoizedState;return[a,b]},useMutableSource:Nh,useSyncExternalStore:Oh,useId:di,unstable_isNewReconciler:!1},ok={readContext:qa,useCallback:ai,useContext:qa,useEffect:sf,useImperativeHandle:$h,useInsertionEffect:Xh,useLayoutEffect:Yh,useMemo:bi,useReducer:rf,useRef:Vh,useState:function(a){return rf(Bc)},useDebugValue:tf,useDeferredValue:function(a){var b=sa();return null===K?b.memoizedState=a:ci(b,K.memoizedState,a)},useTransition:function(){var a=rf(Bc)[0],
b=sa().memoizedState;return[a,b]},useMutableSource:Nh,useSyncExternalStore:Oh,useId:di,unstable_isNewReconciler:!1},sk="function"===typeof WeakMap?WeakMap:Map,uk=Sa.ReactCurrentOwner,ha=!1,Cf={dehydrated:null,treeContext:null,retryLane:0};var Ak=function(a,b,c,d){for(c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=
c.return;c=c.sibling}};var yi=function(a,b){};var zk=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){a=b.stateNode;vb(Ea.current);e=null;switch(c){case "input":f=ke(a,f);d=ke(a,d);e=[];break;case "select":f=E({},f,{value:void 0});d=E({},d,{value:void 0});e=[];break;case "textarea":f=ne(a,f);d=ne(a,d);e=[];break;default:"function"!==typeof f.onClick&&"function"===typeof d.onClick&&(a.onclick=kd)}pe(c,d);var g;c=null;for(m in f)if(!d.hasOwnProperty(m)&&f.hasOwnProperty(m)&&null!=f[m])if("style"===
m){var h=f[m];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]="")}else"dangerouslySetInnerHTML"!==m&&"children"!==m&&"suppressContentEditableWarning"!==m&&"suppressHydrationWarning"!==m&&"autoFocus"!==m&&($b.hasOwnProperty(m)?e||(e=[]):(e=e||[]).push(m,null));for(m in d){var k=d[m];h=null!=f?f[m]:void 0;if(d.hasOwnProperty(m)&&k!==h&&(null!=k||null!=h))if("style"===m)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]="");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||
(c={}),c[g]=k[g])}else c||(e||(e=[]),e.push(m,c)),c=k;else"dangerouslySetInnerHTML"===m?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(e=e||[]).push(m,k)):"children"===m?"string"!==typeof k&&"number"!==typeof k||(e=e||[]).push(m,""+k):"suppressContentEditableWarning"!==m&&"suppressHydrationWarning"!==m&&($b.hasOwnProperty(m)?(null!=k&&"onScroll"===m&&B("scroll",a),e||h===k||(e=[])):(e=e||[]).push(m,k))}c&&(e=e||[]).push("style",c);var m=e;if(b.updateQueue=m)b.flags|=4}};var Bk=function(a,
b,c,d){c!==d&&(b.flags|=4)};var Jd=!1,X=!1,Gk="function"===typeof WeakSet?WeakSet:Set,l=null,Ai=!1,T=null,za=!1,Nk=Math.ceil,Od=Sa.ReactCurrentDispatcher,Uf=Sa.ReactCurrentOwner,ca=Sa.ReactCurrentBatchConfig,p=0,O=null,I=null,U=0,ba=0,Ga=bb(0),L=0,Jc=null,ra=0,Md=0,Sf=0,Kc=null,ja=null,Of=0,Hf=Infinity,Ra=null,Ed=!1,xf=null,ib=null,Pd=!1,lb=null,Qd=0,Ic=0,Pf=null,Kd=-1,Ld=0;var Rk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||S.current)ha=!0;else{if(0===(a.lanes&c)&&0===(b.flags&
128))return ha=!1,xk(a,b,c);ha=0!==(a.flags&131072)?!0:!1}else ha=!1,D&&0!==(b.flags&1048576)&&yh(b,nd,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;Fd(a,b);a=b.pendingProps;var e=Nb(b,J.current);Sb(b,c);e=of(null,b,d,a,e,c);var f=pf();b.flags|=1;"object"===typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=null,ea(d)?(f=!0,ld(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,df(b),e.updater=ud,b.stateNode=
e,e._reactInternals=b,ff(b,d,a,c),b=Af(null,b,d,!0,f,c)):(b.tag=0,D&&f&&Ue(b),aa(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{Fd(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Vk(d);a=xa(d,a);switch(e){case 0:b=zf(null,b,d,a,c);break a;case 1:b=si(null,b,d,a,c);break a;case 11:b=ni(null,b,d,a,c);break a;case 14:b=oi(null,b,d,xa(d.type,a),c);break a}throw Error(n(306,d,""));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:xa(d,e),zf(a,b,d,e,c);
case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:xa(d,e),si(a,b,d,e,c);case 3:a:{ti(b);if(null===a)throw Error(n(387));d=b.pendingProps;f=b.memoizedState;e=f.element;Dh(a,b);td(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Ub(Error(n(423)),b);b=ui(a,b,d,c,e);break a}else if(d!==e){e=
Ub(Error(n(424)),b);b=ui(a,b,d,c,e);break a}else for(fa=Ka(b.stateNode.containerInfo.firstChild),la=b,D=!0,wa=null,c=mi(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Qb();if(d===e){b=Qa(a,b,c);break a}aa(a,b,d,c)}b=b.child}return b;case 5:return Mh(b),null===a&&Xe(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Qe(d,e)?g=null:null!==f&&Qe(d,f)&&(b.flags|=32),ri(a,b),aa(a,b,g,c),b.child;case 6:return null===a&&Xe(b),null;case 13:return vi(a,b,c);case 4:return jf(b,
b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Vb(b,null,d,c):aa(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:xa(d,e),ni(a,b,d,e,c);case 7:return aa(a,b,b.pendingProps,c),b.child;case 8:return aa(a,b,b.pendingProps.children,c),b.child;case 12:return aa(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;y(rd,d._currentValue);d._currentValue=g;if(null!==f)if(ua(f.value,g)){if(f.children===
e.children&&!S.current){b=Qa(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=Pa(-1,c&-c);k.tag=2;var m=f.updateQueue;if(null!==m){m=m.shared;var l=m.pending;null===l?k.next=k:(k.next=l.next,l.next=k);m.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bf(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===
f.tag){g=f.return;if(null===g)throw Error(n(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bf(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}aa(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Sb(b,c),e=qa(e),d=d(e),b.flags|=1,aa(a,b,d,c),b.child;case 14:return d=b.type,e=xa(d,b.pendingProps),e=xa(d.type,e),oi(a,b,d,e,c);case 15:return pi(a,
b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:xa(d,e),Fd(a,b),b.tag=1,ea(d)?(a=!0,ld(b)):a=!1,Sb(b,c),Hh(b,d,e),ff(b,d,e,c),Af(null,b,d,!0,a,c);case 19:return xi(a,b,c);case 22:return qi(a,b,c)}throw Error(n(156,b.tag));};var pa=function(a,b,c,d){return new Uk(a,b,c,d)},bj="function"===typeof reportError?reportError:function(a){console.error(a)};Ud.prototype.render=Xf.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(n(409));
Sd(a,b,null,null)};Ud.prototype.unmount=Xf.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;zb(function(){Sd(null,a,null,null)});b[Ja]=null}};Ud.prototype.unstable_scheduleHydration=function(a){if(a){var b=ol();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Ya.length&&0!==b&&b<Ya[c].priority;c++);Ya.splice(c,0,a);0===c&&Hg(a)}};var Dj=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=
hc(b.pendingLanes);0!==c&&(xe(b,c|1),ia(b,P()),0===(p&6)&&(Hc(),db()))}break;case 13:zb(function(){var b=Oa(a,1);if(null!==b){var c=Z();ya(b,a,1,c)}}),Wf(a,1)}};var Gg=function(a){if(13===a.tag){var b=Oa(a,134217728);if(null!==b){var c=Z();ya(b,a,134217728,c)}Wf(a,134217728)}};var yj=function(a){if(13===a.tag){var b=hb(a),c=Oa(a,b);if(null!==c){var d=Z();ya(c,a,b,d)}Wf(a,b)}};var ol=function(){return z};var xj=function(a,b){var c=z;try{return z=a,b()}finally{z=c}};se=function(a,b,c){switch(b){case "input":le(a,
c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Rc(d);if(!e)throw Error(n(90));jg(d);le(d,e)}}}break;case "textarea":og(a,c);break;case "select":b=c.value,null!=b&&Db(a,!!c.multiple,b,!1)}};(function(a,b,c){xg=a;yg=c})(Tf,function(a,b,c,d,e){var f=z,g=ca.transition;try{return ca.transition=null,z=1,a(b,c,d,e)}finally{z=f,ca.transition=
g,0===p&&Hc()}},zb);var pl={usingClientEntryPoint:!1,Events:[ec,Ib,Rc,ug,vg,Tf]};(function(a){a={bundleType:a.bundleType,version:a.version,rendererPackageName:a.rendererPackageName,rendererConfig:a.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Sa.ReactCurrentDispatcher,findHostInstanceByFiber:Yk,
findFiberByHostInstance:a.findFiberByHostInstance||Zk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0"};if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)a=!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)a=!0;else{try{Uc=b.inject(a),Ca=b}catch(c){}a=b.checkDCE?!0:!1}}return a})({findFiberByHostInstance:pb,bundleType:0,version:"18.2.0-next-9e3b772b8-20220608",
rendererPackageName:"react-dom"});Q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=pl;Q.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yf(b))throw Error(n(200));return Xk(a,b,null,c)};Q.createRoot=function(a,b){if(!Yf(a))throw Error(n(299));var c=!1,d="",e=bj;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=Vf(a,1,!1,null,null,
c,!1,d,e);a[Ja]=b.current;sc(8===a.nodeType?a.parentNode:a);return new Xf(b)};Q.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if("function"===typeof a.render)throw Error(n(188));a=Object.keys(a).join(",");throw Error(n(268,a));}a=Bg(b);a=null===a?null:a.stateNode;return a};Q.flushSync=function(a){return zb(a)};Q.hydrate=function(a,b,c){if(!Vd(b))throw Error(n(200));return Wd(null,a,b,!0,c)};Q.hydrateRoot=function(a,b,c){if(!Yf(a))throw Error(n(405));
var d=null!=c&&c.hydratedSources||null,e=!1,f="",g=bj;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=Xi(b,null,a,1,null!=c?c:null,e,!1,f,g);a[Ja]=b.current;sc(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,e);return new Ud(b)};Q.render=
function(a,b,c){if(!Vd(b))throw Error(n(200));return Wd(null,a,b,!1,c)};Q.unmountComponentAtNode=function(a){if(!Vd(a))throw Error(n(40));return a._reactRootContainer?(zb(function(){Wd(null,null,a,!1,function(){a._reactRootContainer=null;a[Ja]=null})}),!0):!1};Q.unstable_batchedUpdates=Tf;Q.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!Vd(c))throw Error(n(200));if(null==a||void 0===a._reactInternals)throw Error(n(38));return Wd(a,b,c,!1,d)};Q.version="18.2.0-next-9e3b772b8-20220608"});
})();
</script>
<script>(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.vega = {}));
}(this, (function (exports) { 'use strict';
var name = "vega";
var version$1 = "5.21.0";
var description = "The Vega visualization grammar.";
var keywords$1 = [
"vega",
"visualization",
"interaction",
"dataflow",
"library",
"data",
"d3"
];
var license = "BSD-3-Clause";
var author = "UW Interactive Data Lab (http://idl.cs.washington.edu)";
var main = "build/vega-node.js";
var module = "build/vega.module.js";
var unpkg = "build/vega.min.js";
var jsdelivr = "build/vega.min.js";
var types = "index.d.ts";
var repository = "vega/vega";
var scripts = {
bundle: "rollup -c --config-bundle",
prebuild: "rimraf build && rimraf build-es5",
build: "rollup -c --config-core --config-bundle --config-ie",
postbuild: "node schema-copy",
pretest: "yarn build --config-test",
test: "TZ=America/Los_Angeles tape 'test/**/*-test.js'",
prepublishOnly: "yarn test && yarn build",
postpublish: "./schema-deploy.sh"
};
var dependencies = {
"vega-crossfilter": "~4.0.5",
"vega-dataflow": "~5.7.4",
"vega-encode": "~4.8.3",
"vega-event-selector": "~3.0.0",
"vega-expression": "~5.0.0",
"vega-force": "~4.0.7",
"vega-format": "~1.0.4",
"vega-functions": "~5.12.1",
"vega-geo": "~4.3.8",
"vega-hierarchy": "~4.0.9",
"vega-label": "~1.1.0",
"vega-loader": "~4.4.1",
"vega-parser": "~6.1.4",
"vega-projection": "~1.4.5",
"vega-regression": "~1.0.9",
"vega-runtime": "~6.1.3",
"vega-scale": "~7.1.1",
"vega-scenegraph": "~4.9.4",
"vega-statistics": "~1.7.10",
"vega-time": "~2.0.4",
"vega-transforms": "~4.9.4",
"vega-typings": "~0.22.0",
"vega-util": "~1.17.0",
"vega-view": "~5.10.1",
"vega-view-transforms": "~4.5.8",
"vega-voronoi": "~4.1.5",
"vega-wordcloud": "~4.1.3"
};
var devDependencies = {
"vega-schema": "*"
};
var gitHead = "774165e29850b66ec8b79ba52a7955f1ab936ea6";
var pkg = {
name: name,
version: version$1,
description: description,
keywords: keywords$1,
license: license,
author: author,
main: main,
module: module,
unpkg: unpkg,
jsdelivr: jsdelivr,
types: types,
repository: repository,
scripts: scripts,
dependencies: dependencies,
devDependencies: devDependencies,
gitHead: gitHead
};
function accessor(fn, fields, name) {
fn.fields = fields || [];
fn.fname = name;
return fn;
}
function accessorName(fn) {
return fn == null ? null : fn.fname;
}
function accessorFields(fn) {
return fn == null ? null : fn.fields;
}
function getter(path) {
return path.length === 1 ? get1(path[0]) : getN(path);
}
const get1 = field => function (obj) {
return obj[field];
};
const getN = path => {
const len = path.length;
return function (obj) {
for (let i = 0; i < len; ++i) {
obj = obj[path[i]];
}
return obj;
};
};
function error(message) {
throw Error(message);
}
function splitAccessPath(p) {
const path = [],
n = p.length;
let q = null,
b = 0,
s = '',
i,
j,
c;
p = p + '';
function push() {
path.push(s + p.substring(i, j));
s = '';
i = j + 1;
}
for (i = j = 0; j < n; ++j) {
c = p[j];
if (c === '\\') {
s += p.substring(i, j);
s += p.substring(++j, ++j);
i = j;
} else if (c === q) {
push();
q = null;
b = -1;
} else if (q) {
continue;
} else if (i === b && c === '"') {
i = j + 1;
q = c;
} else if (i === b && c === "'") {
i = j + 1;
q = c;
} else if (c === '.' && !b) {
if (j > i) {
push();
} else {
i = j + 1;
}
} else if (c === '[') {
if (j > i) push();
b = i = j + 1;
} else if (c === ']') {
if (!b) error('Access path missing open bracket: ' + p);
if (b > 0) push();
b = 0;
i = j + 1;
}
}
if (b) error('Access path missing closing bracket: ' + p);
if (q) error('Access path missing closing quote: ' + p);
if (j > i) {
j++;
push();
}
return path;
}
function field$1(field, name, opt) {
const path = splitAccessPath(field);
field = path.length === 1 ? path[0] : field;
return accessor((opt && opt.get || getter)(path), [field], name || field);
}
const id = field$1('id');
const identity$6 = accessor(_ => _, [], 'identity');
const zero$2 = accessor(() => 0, [], 'zero');
const one$2 = accessor(() => 1, [], 'one');
const truthy = accessor(() => true, [], 'true');
const falsy = accessor(() => false, [], 'false');
function log$1$1(method, level, input) {
const args = [level].concat([].slice.call(input));
console[method].apply(console, args); // eslint-disable-line no-console
}
const None$2 = 0;
const Error$1 = 1;
const Warn = 2;
const Info = 3;
const Debug = 4;
function logger(_, method, handler = log$1$1) {
let level = _ || None$2;
return {
level(_) {
if (arguments.length) {
level = +_;
return this;
} else {
return level;
}
},
error() {
if (level >= Error$1) handler(method || 'error', 'ERROR', arguments);
return this;
},
warn() {
if (level >= Warn) handler(method || 'warn', 'WARN', arguments);
return this;
},
info() {
if (level >= Info) handler(method || 'log', 'INFO', arguments);
return this;
},
debug() {
if (level >= Debug) handler(method || 'log', 'DEBUG', arguments);
return this;
}
};
}
var isArray = Array.isArray;
function isObject(_) {
return _ === Object(_);
}
const isLegalKey = key => key !== '__proto__';
function mergeConfig(...configs) {
return configs.reduce((out, source) => {
for (const key in source) {
if (key === 'signals') {
// for signals, we merge the signals arrays
// source signals take precedence over
// existing signals with the same name
out.signals = mergeNamed(out.signals, source.signals);
} else {
// otherwise, merge objects subject to recursion constraints
// for legend block, recurse for the layout entry only
// for style block, recurse for all properties
// otherwise, no recursion: objects overwrite, no merging
const r = key === 'legend' ? {
layout: 1
} : key === 'style' ? true : null;
writeConfig(out, key, source[key], r);
}
}
return out;
}, {});
}
function writeConfig(output, key, value, recurse) {
if (!isLegalKey(key)) return;
let k, o;
if (isObject(value) && !isArray(value)) {
o = isObject(output[key]) ? output[key] : output[key] = {};
for (k in value) {
if (recurse && (recurse === true || recurse[k])) {
writeConfig(o, k, value[k]);
} else if (isLegalKey(k)) {
o[k] = value[k];
}
}
} else {
output[key] = value;
}
}
function mergeNamed(a, b) {
if (a == null) return b;
const map = {},
out = [];
function add(_) {
if (!map[_.name]) {
map[_.name] = 1;
out.push(_);
}
}
b.forEach(add);
a.forEach(add);
return out;
}
function peek$1(array) {
return array[array.length - 1];
}
function toNumber(_) {
return _ == null || _ === '' ? null : +_;
}
const exp$2 = sign => x => sign * Math.exp(x);
const log$4 = sign => x => Math.log(sign * x);
const symlog$1 = c => x => Math.sign(x) * Math.log1p(Math.abs(x / c));
const symexp = c => x => Math.sign(x) * Math.expm1(Math.abs(x)) * c;
const pow$4 = exponent => x => x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
function pan(domain, delta, lift, ground) {
const d0 = lift(domain[0]),
d1 = lift(peek$1(domain)),
dd = (d1 - d0) * delta;
return [ground(d0 - dd), ground(d1 - dd)];
}
function panLinear(domain, delta) {
return pan(domain, delta, toNumber, identity$6);
}
function panLog(domain, delta) {
var sign = Math.sign(domain[0]);
return pan(domain, delta, log$4(sign), exp$2(sign));
}
function panPow(domain, delta, exponent) {
return pan(domain, delta, pow$4(exponent), pow$4(1 / exponent));
}
function panSymlog(domain, delta, constant) {
return pan(domain, delta, symlog$1(constant), symexp(constant));
}
function zoom$1(domain, anchor, scale, lift, ground) {
const d0 = lift(domain[0]),
d1 = lift(peek$1(domain)),
da = anchor != null ? lift(anchor) : (d0 + d1) / 2;
return [ground(da + (d0 - da) * scale), ground(da + (d1 - da) * scale)];
}
function zoomLinear(domain, anchor, scale) {
return zoom$1(domain, anchor, scale, toNumber, identity$6);
}
function zoomLog(domain, anchor, scale) {
const sign = Math.sign(domain[0]);
return zoom$1(domain, anchor, scale, log$4(sign), exp$2(sign));
}
function zoomPow(domain, anchor, scale, exponent) {
return zoom$1(domain, anchor, scale, pow$4(exponent), pow$4(1 / exponent));
}
function zoomSymlog(domain, anchor, scale, constant) {
return zoom$1(domain, anchor, scale, symlog$1(constant), symexp(constant));
}
function quarter(date) {
return 1 + ~~(new Date(date).getMonth() / 3);
}
function utcquarter(date) {
return 1 + ~~(new Date(date).getUTCMonth() / 3);
}
function array$5(_) {
return _ != null ? isArray(_) ? _ : [_] : [];
}
/**
* Span-preserving range clamp. If the span of the input range is less
* than (max - min) and an endpoint exceeds either the min or max value,
* the range is translated such that the span is preserved and one
* endpoint touches the boundary of the min/max range.
* If the span exceeds (max - min), the range [min, max] is returned.
*/
function clampRange(range, min, max) {
let lo = range[0],
hi = range[1],
span;
if (hi < lo) {
span = hi;
hi = lo;
lo = span;
}
span = hi - lo;
return span >= max - min ? [min, max] : [lo = Math.min(Math.max(lo, min), max - span), lo + span];
}
function isFunction(_) {
return typeof _ === 'function';
}
const DESCENDING = 'descending';
function compare$1(fields, orders, opt) {
opt = opt || {};
orders = array$5(orders) || [];
const ord = [],
get = [],
fmap = {},
gen = opt.comparator || comparator;
array$5(fields).forEach((f, i) => {
if (f == null) return;
ord.push(orders[i] === DESCENDING ? -1 : 1);
get.push(f = isFunction(f) ? f : field$1(f, null, opt));
(accessorFields(f) || []).forEach(_ => fmap[_] = 1);
});
return get.length === 0 ? null : accessor(gen(get, ord), Object.keys(fmap));
}
const ascending$3 = (u, v) => (u < v || u == null) && v != null ? -1 : (u > v || v == null) && u != null ? 1 : (v = v instanceof Date ? +v : v, u = u instanceof Date ? +u : u) !== u && v === v ? -1 : v !== v && u === u ? 1 : 0;
const comparator = (fields, orders) => fields.length === 1 ? compare1(fields[0], orders[0]) : compareN(fields, orders, fields.length);
const compare1 = (field, order) => function (a, b) {
return ascending$3(field(a), field(b)) * order;
};
const compareN = (fields, orders, n) => {
orders.push(0); // pad zero for convenient lookup
return function (a, b) {
let f,
c = 0,
i = -1;
while (c === 0 && ++i < n) {
f = fields[i];
c = ascending$3(f(a), f(b));
}
return c * orders[i];
};
};
function constant$4(_) {
return isFunction(_) ? _ : () => _;
}
function debounce(delay, handler) {
let tid;
return e => {
if (tid) clearTimeout(tid);
tid = setTimeout(() => (handler(e), tid = null), delay);
};
}
function extend$1(_) {
for (let x, k, i = 1, len = arguments.length; i < len; ++i) {
x = arguments[i];
for (k in x) {
_[k] = x[k];
}
}
return _;
}
/**
* Return an array with minimum and maximum values, in the
* form [min, max]. Ignores null, undefined, and NaN values.
*/
function extent(array, f) {
let i = 0,
n,
v,
min,
max;
if (array && (n = array.length)) {
if (f == null) {
// find first valid value
for (v = array[i]; i < n && (v == null || v !== v); v = array[++i]);
min = max = v; // visit all other values
for (; i < n; ++i) {
v = array[i]; // skip null/undefined; NaN will fail all comparisons
if (v != null) {
if (v < min) min = v;
if (v > max) max = v;
}
}
} else {
// find first valid value
for (v = f(array[i]); i < n && (v == null || v !== v); v = f(array[++i]));
min = max = v; // visit all other values
for (; i < n; ++i) {
v = f(array[i]); // skip null/undefined; NaN will fail all comparisons
if (v != null) {
if (v < min) min = v;
if (v > max) max = v;
}
}
}
}
return [min, max];
}
function extentIndex(array, f) {
const n = array.length;
let i = -1,
a,
b,
c,
u,
v;
if (f == null) {
while (++i < n) {
b = array[i];
if (b != null && b >= b) {
a = c = b;
break;
}
}
if (i === n) return [-1, -1];
u = v = i;
while (++i < n) {
b = array[i];
if (b != null) {
if (a > b) {
a = b;
u = i;
}
if (c < b) {
c = b;
v = i;
}
}
}
} else {
while (++i < n) {
b = f(array[i], i, array);
if (b != null && b >= b) {
a = c = b;
break;
}
}
if (i === n) return [-1, -1];
u = v = i;
while (++i < n) {
b = f(array[i], i, array);
if (b != null) {
if (a > b) {
a = b;
u = i;
}
if (c < b) {
c = b;
v = i;
}
}
}
}
return [u, v];
}
const hop = Object.prototype.hasOwnProperty;
function has$1(object, property) {
return hop.call(object, property);
}
const NULL = {};
function fastmap(input) {
let obj = {},
test;
function has$1$1(key) {
return has$1(obj, key) && obj[key] !== NULL;
}
const map = {
size: 0,
empty: 0,
object: obj,
has: has$1$1,
get(key) {
return has$1$1(key) ? obj[key] : undefined;
},
set(key, value) {
if (!has$1$1(key)) {
++map.size;
if (obj[key] === NULL) --map.empty;
}
obj[key] = value;
return this;
},
delete(key) {
if (has$1$1(key)) {
--map.size;
++map.empty;
obj[key] = NULL;
}
return this;
},
clear() {
map.size = map.empty = 0;
map.object = obj = {};
},
test(_) {
if (arguments.length) {
test = _;
return map;
} else {
return test;
}
},
clean() {
const next = {};
let size = 0;
for (const key in obj) {
const value = obj[key];
if (value !== NULL && (!test || !test(value))) {
next[key] = value;
++size;
}
}
map.size = size;
map.empty = 0;
map.object = obj = next;
}
};
if (input) Object.keys(input).forEach(key => {
map.set(key, input[key]);
});
return map;
}
function flush(range, value, threshold, left, right, center) {
if (!threshold && threshold !== 0) return center;
const t = +threshold;
let a = range[0],
b = peek$1(range),
l; // swap endpoints if range is reversed
if (b < a) {
l = a;
a = b;
b = l;
} // compare value to endpoints
l = Math.abs(value - a);
const r = Math.abs(b - value); // adjust if value is within threshold distance of endpoint
return l < r && l <= t ? left : r <= t ? right : center;
}
function inherits(child, parent, members) {
const proto = child.prototype = Object.create(parent.prototype);
Object.defineProperty(proto, 'constructor', {
value: child,
writable: true,
enumerable: true,
configurable: true
});
return extend$1(proto, members);
}
/**
* Predicate that returns true if the value lies within the span
* of the given range. The left and right flags control the use
* of inclusive (true) or exclusive (false) comparisons.
*/
function inrange(value, range, left, right) {
let r0 = range[0],
r1 = range[range.length - 1],
t;
if (r0 > r1) {
t = r0;
r0 = r1;
r1 = t;
}
left = left === undefined || left;
right = right === undefined || right;
return (left ? r0 <= value : r0 < value) && (right ? value <= r1 : value < r1);
}
function isBoolean$1(_) {
return typeof _ === 'boolean';
}
function isDate$1(_) {
return Object.prototype.toString.call(_) === '[object Date]';
}
function isIterable(_) {
return _ && isFunction(_[Symbol.iterator]);
}
function isNumber$1(_) {
return typeof _ === 'number';
}
function isRegExp(_) {
return Object.prototype.toString.call(_) === '[object RegExp]';
}
function isString(_) {
return typeof _ === 'string';
}
function key(fields, flat, opt) {
if (fields) {
fields = flat ? array$5(fields).map(f => f.replace(/\\(.)/g, '$1')) : array$5(fields);
}
const len = fields && fields.length,
gen = opt && opt.get || getter,
map = f => gen(flat ? [f] : splitAccessPath(f));
let fn;
if (!len) {
fn = function () {
return '';
};
} else if (len === 1) {
const get = map(fields[0]);
fn = function (_) {
return '' + get(_);
};
} else {
const get = fields.map(map);
fn = function (_) {
let s = '' + get[0](_),
i = 0;
while (++i < len) s += '|' + get[i](_);
return s;
};
}
return accessor(fn, fields, 'key');
}
function lerp(array, frac) {
const lo = array[0],
hi = peek$1(array),
f = +frac;
return !f ? lo : f === 1 ? hi : lo + f * (hi - lo);
}
const DEFAULT_MAX_SIZE = 10000; // adapted from https://github.com/dominictarr/hashlru/ (MIT License)
function lruCache(maxsize) {
maxsize = +maxsize || DEFAULT_MAX_SIZE;
let curr, prev, size;
const clear = () => {
curr = {};
prev = {};
size = 0;
};
const update = (key, value) => {
if (++size > maxsize) {
prev = curr;
curr = {};
size = 1;
}
return curr[key] = value;
};
clear();
return {
clear,
has: key => has$1(curr, key) || has$1(prev, key),
get: key => has$1(curr, key) ? curr[key] : has$1(prev, key) ? update(key, prev[key]) : undefined,
set: (key, value) => has$1(curr, key) ? curr[key] = value : update(key, value)
};
}
function merge$3(compare, array0, array1, output) {
const n0 = array0.length,
n1 = array1.length;
if (!n1) return array0;
if (!n0) return array1;
const merged = output || new array0.constructor(n0 + n1);
let i0 = 0,
i1 = 0,
i = 0;
for (; i0 < n0 && i1 < n1; ++i) {
merged[i] = compare(array0[i0], array1[i1]) > 0 ? array1[i1++] : array0[i0++];
}
for (; i0 < n0; ++i0, ++i) {
merged[i] = array0[i0];
}
for (; i1 < n1; ++i1, ++i) {
merged[i] = array1[i1];
}
return merged;
}
function repeat(str, reps) {
let s = '';
while (--reps >= 0) s += str;
return s;
}
function pad$2(str, length, padchar, align) {
const c = padchar || ' ',
s = str + '',
n = length - s.length;
return n <= 0 ? s : align === 'left' ? repeat(c, n) + s : align === 'center' ? repeat(c, ~~(n / 2)) + s + repeat(c, Math.ceil(n / 2)) : s + repeat(c, n);
}
/**
* Return the numerical span of an array: the difference between
* the last and first values.
*/
function span(array) {
return array && peek$1(array) - array[0] || 0;
}
function $(x) {
return isArray(x) ? '[' + x.map($) + ']' : isObject(x) || isString(x) ? // Output valid JSON and JS source strings.
// See http://timelessrepo.com/json-isnt-a-javascript-subset
JSON.stringify(x).replace('\u2028', '\\u2028').replace('\u2029', '\\u2029') : x;
}
function toBoolean(_) {
return _ == null || _ === '' ? null : !_ || _ === 'false' || _ === '0' ? false : !!_;
}
const defaultParser = _ => isNumber$1(_) ? _ : isDate$1(_) ? _ : Date.parse(_);
function toDate(_, parser) {
parser = parser || defaultParser;
return _ == null || _ === '' ? null : parser(_);
}
function toString(_) {
return _ == null || _ === '' ? null : _ + '';
}
function toSet(_) {
const s = {},
n = _.length;
for (let i = 0; i < n; ++i) s[_[i]] = true;
return s;
}
function truncate$1(str, length, align, ellipsis) {
const e = ellipsis != null ? ellipsis : '\u2026',
s = str + '',
n = s.length,
l = Math.max(0, length - e.length);
return n <= length ? s : align === 'left' ? e + s.slice(n - l) : align === 'center' ? s.slice(0, Math.ceil(l / 2)) + e + s.slice(n - ~~(l / 2)) : s.slice(0, l) + e;
}
function visitArray(array, filter, visitor) {
if (array) {
if (filter) {
const n = array.length;
for (let i = 0; i < n; ++i) {
const t = filter(array[i]);
if (t) visitor(t, i, array);
}
} else {
array.forEach(visitor);
}
}
}
var EOL = {},
EOF = {},
QUOTE = 34,
NEWLINE = 10,
RETURN = 13;
function objectConverter(columns) {
return new Function("d", "return {" + columns.map(function (name, i) {
return JSON.stringify(name) + ": d[" + i + "] || \"\"";
}).join(",") + "}");
}
function customConverter(columns, f) {
var object = objectConverter(columns);
return function (row, i) {
return f(object(row), i, columns);
};
} // Compute unique columns in order of discovery.
function inferColumns(rows) {
var columnSet = Object.create(null),
columns = [];
rows.forEach(function (row) {
for (var column in row) {
if (!(column in columnSet)) {
columns.push(columnSet[column] = column);
}
}
});
return columns;
}
function pad$1(value, width) {
var s = value + "",
length = s.length;
return length < width ? new Array(width - length + 1).join(0) + s : s;
}
function formatYear$1(year) {
return year < 0 ? "-" + pad$1(-year, 6) : year > 9999 ? "+" + pad$1(year, 6) : pad$1(year, 4);
}
function formatDate(date) {
var hours = date.getUTCHours(),
minutes = date.getUTCMinutes(),
seconds = date.getUTCSeconds(),
milliseconds = date.getUTCMilliseconds();
return isNaN(date) ? "Invalid Date" : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2) + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z" : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z" : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z" : "");
}
function dsvFormat (delimiter) {
var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
DELIMITER = delimiter.charCodeAt(0);
function parse(text, f) {
var convert,
columns,
rows = parseRows(text, function (row, i) {
if (convert) return convert(row, i - 1);
columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
});
rows.columns = columns || [];
return rows;
}
function parseRows(text, f) {
var rows = [],
// output rows
N = text.length,
I = 0,
// current character index
n = 0,
// current line number
t,
// current token
eof = N <= 0,
// current token followed by EOF?
eol = false; // current token followed by EOL?
// Strip the trailing newline.
if (text.charCodeAt(N - 1) === NEWLINE) --N;
if (text.charCodeAt(N - 1) === RETURN) --N;
function token() {
if (eof) return EOF;
if (eol) return eol = false, EOL; // Unescape quotes.
var i,
j = I,
c;
if (text.charCodeAt(j) === QUOTE) {
while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
if ((i = I) >= N) eof = true;else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;else if (c === RETURN) {
eol = true;
if (text.charCodeAt(I) === NEWLINE) ++I;
}
return text.slice(j + 1, i - 1).replace(/""/g, "\"");
} // Find next delimiter or newline.
while (I < N) {
if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;else if (c === RETURN) {
eol = true;
if (text.charCodeAt(I) === NEWLINE) ++I;
} else if (c !== DELIMITER) continue;
return text.slice(j, i);
} // Return last token before EOF.
return eof = true, text.slice(j, N);
}
while ((t = token()) !== EOF) {
var row = [];
while (t !== EOL && t !== EOF) row.push(t), t = token();
if (f && (row = f(row, n++)) == null) continue;
rows.push(row);
}
return rows;
}
function preformatBody(rows, columns) {
return rows.map(function (row) {
return columns.map(function (column) {
return formatValue(row[column]);
}).join(delimiter);
});
}
function format(rows, columns) {
if (columns == null) columns = inferColumns(rows);
return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n");
}
function formatBody(rows, columns) {
if (columns == null) columns = inferColumns(rows);
return preformatBody(rows, columns).join("\n");
}
function formatRows(rows) {
return rows.map(formatRow).join("\n");
}
function formatRow(row) {
return row.map(formatValue).join(delimiter);
}
function formatValue(value) {
return value == null ? "" : value instanceof Date ? formatDate(value) : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\"" : value;
}
return {
parse: parse,
parseRows: parseRows,
format: format,
formatBody: formatBody,
formatRows: formatRows,
formatRow: formatRow,
formatValue: formatValue
};
}
function identity$5 (x) {
return x;
}
function transform$3 (transform) {
if (transform == null) return identity$5;
var x0,
y0,
kx = transform.scale[0],
ky = transform.scale[1],
dx = transform.translate[0],
dy = transform.translate[1];
return function (input, i) {
if (!i) x0 = y0 = 0;
var j = 2,
n = input.length,
output = new Array(n);
output[0] = (x0 += input[0]) * kx + dx;
output[1] = (y0 += input[1]) * ky + dy;
while (j < n) output[j] = input[j], ++j;
return output;
};
}
function reverse$1 (array, n) {
var t,
j = array.length,
i = j - n;
while (i < --j) t = array[i], array[i++] = array[j], array[j] = t;
}
function feature (topology, o) {
if (typeof o === "string") o = topology.objects[o];
return o.type === "GeometryCollection" ? {
type: "FeatureCollection",
features: o.geometries.map(function (o) {
return feature$1(topology, o);
})
} : feature$1(topology, o);
}
function feature$1(topology, o) {
var id = o.id,
bbox = o.bbox,
properties = o.properties == null ? {} : o.properties,
geometry = object$1(topology, o);
return id == null && bbox == null ? {
type: "Feature",
properties: properties,
geometry: geometry
} : bbox == null ? {
type: "Feature",
id: id,
properties: properties,
geometry: geometry
} : {
type: "Feature",
id: id,
bbox: bbox,
properties: properties,
geometry: geometry
};
}
function object$1(topology, o) {
var transformPoint = transform$3(topology.transform),
arcs = topology.arcs;
function arc(i, points) {
if (points.length) points.pop();
for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length; k < n; ++k) {
points.push(transformPoint(a[k], k));
}
if (i < 0) reverse$1(points, n);
}
function point(p) {
return transformPoint(p);
}
function line(arcs) {
var points = [];
for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points);
if (points.length < 2) points.push(points[0]); // This should never happen per the specification.
return points;
}
function ring(arcs) {
var points = line(arcs);
while (points.length < 4) points.push(points[0]); // This may happen if an arc has only two points.
return points;
}
function polygon(arcs) {
return arcs.map(ring);
}
function geometry(o) {
var type = o.type,
coordinates;
switch (type) {
case "GeometryCollection":
return {
type: type,
geometries: o.geometries.map(geometry)
};
case "Point":
coordinates = point(o.coordinates);
break;
case "MultiPoint":
coordinates = o.coordinates.map(point);
break;
case "LineString":
coordinates = line(o.arcs);
break;
case "MultiLineString":
coordinates = o.arcs.map(line);
break;
case "Polygon":
coordinates = polygon(o.arcs);
break;
case "MultiPolygon":
coordinates = o.arcs.map(polygon);
break;
default:
return null;
}
return {
type: type,
coordinates: coordinates
};
}
return geometry(o);
}
function stitch (topology, arcs) {
var stitchedArcs = {},
fragmentByStart = {},
fragmentByEnd = {},
fragments = [],
emptyIndex = -1; // Stitch empty arcs first, since they may be subsumed by other arcs.
arcs.forEach(function (i, j) {
var arc = topology.arcs[i < 0 ? ~i : i],
t;
if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {
t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;
}
});
arcs.forEach(function (i) {
var e = ends(i),
start = e[0],
end = e[1],
f,
g;
if (f = fragmentByEnd[start]) {
delete fragmentByEnd[f.end];
f.push(i);
f.end = end;
if (g = fragmentByStart[end]) {
delete fragmentByStart[g.start];
var fg = g === f ? f : f.concat(g);
fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;
} else {
fragmentByStart[f.start] = fragmentByEnd[f.end] = f;
}
} else if (f = fragmentByStart[end]) {
delete fragmentByStart[f.start];
f.unshift(i);
f.start = start;
if (g = fragmentByEnd[start]) {
delete fragmentByEnd[g.end];
var gf = g === f ? f : g.concat(f);
fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;
} else {
fragmentByStart[f.start] = fragmentByEnd[f.end] = f;
}
} else {
f = [i];
fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;
}
});
function ends(i) {
var arc = topology.arcs[i < 0 ? ~i : i],
p0 = arc[0],
p1;
if (topology.transform) p1 = [0, 0], arc.forEach(function (dp) {
p1[0] += dp[0], p1[1] += dp[1];
});else p1 = arc[arc.length - 1];
return i < 0 ? [p1, p0] : [p0, p1];
}
function flush(fragmentByEnd, fragmentByStart) {
for (var k in fragmentByEnd) {
var f = fragmentByEnd[k];
delete fragmentByStart[f.start];
delete f.start;
delete f.end;
f.forEach(function (i) {
stitchedArcs[i < 0 ? ~i : i] = 1;
});
fragments.push(f);
}
}
flush(fragmentByEnd, fragmentByStart);
flush(fragmentByStart, fragmentByEnd);
arcs.forEach(function (i) {
if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]);
});
return fragments;
}
function mesh (topology) {
return object$1(topology, meshArcs.apply(this, arguments));
}
function meshArcs(topology, object, filter) {
var arcs, i, n;
if (arguments.length > 1) arcs = extractArcs(topology, object, filter);else for (i = 0, arcs = new Array(n = topology.arcs.length); i < n; ++i) arcs[i] = i;
return {
type: "MultiLineString",
arcs: stitch(topology, arcs)
};
}
function extractArcs(topology, object, filter) {
var arcs = [],
geomsByArc = [],
geom;
function extract0(i) {
var j = i < 0 ? ~i : i;
(geomsByArc[j] || (geomsByArc[j] = [])).push({
i: i,
g: geom
});
}
function extract1(arcs) {
arcs.forEach(extract0);
}
function extract2(arcs) {
arcs.forEach(extract1);
}
function extract3(arcs) {
arcs.forEach(extract2);
}
function geometry(o) {
switch (geom = o, o.type) {
case "GeometryCollection":
o.geometries.forEach(geometry);
break;
case "LineString":
extract1(o.arcs);
break;
case "MultiLineString":
case "Polygon":
extract2(o.arcs);
break;
case "MultiPolygon":
extract3(o.arcs);
break;
}
}
geometry(object);
geomsByArc.forEach(filter == null ? function (geoms) {
arcs.push(geoms[0].i);
} : function (geoms) {
if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i);
});
return arcs;
}
function ascending$2 (a, b) {
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}
function bisector$1 (f) {
let delta = f;
let compare = f;
if (f.length === 1) {
delta = (d, x) => f(d) - x;
compare = ascendingComparator$1(f);
}
function left(a, x, lo, hi) {
if (lo == null) lo = 0;
if (hi == null) hi = a.length;
while (lo < hi) {
const mid = lo + hi >>> 1;
if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;
}
return lo;
}
function right(a, x, lo, hi) {
if (lo == null) lo = 0;
if (hi == null) hi = a.length;
while (lo < hi) {
const mid = lo + hi >>> 1;
if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;
}
return lo;
}
function center(a, x, lo, hi) {
if (lo == null) lo = 0;
if (hi == null) hi = a.length;
const i = left(a, x, lo, hi - 1);
return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
}
return {
left,
center,
right
};
}
function ascendingComparator$1(f) {
return (d, x) => ascending$2(f(d), x);
}
function number$6 (x) {
return x === null ? NaN : +x;
}
function* numbers$2(values, valueof) {
if (valueof === undefined) {
for (let value of values) {
if (value != null && (value = +value) >= value) {
yield value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
yield value;
}
}
}
}
const ascendingBisect = bisector$1(ascending$2);
const bisectRight$1 = ascendingBisect.right;
const bisectLeft$1 = ascendingBisect.left;
bisector$1(number$6).center;
var bisect$1 = bisectRight$1;
function variance(values, valueof) {
let count = 0;
let delta;
let mean = 0;
let sum = 0;
if (valueof === undefined) {
for (let value of values) {
if (value != null && (value = +value) >= value) {
delta = value - mean;
mean += delta / ++count;
sum += delta * (value - mean);
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
delta = value - mean;
mean += delta / ++count;
sum += delta * (value - mean);
}
}
}
if (count > 1) return sum / (count - 1);
}
function deviation(values, valueof) {
const v = variance(values, valueof);
return v ? Math.sqrt(v) : v;
}
// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
class Adder {
constructor() {
this._partials = new Float64Array(32);
this._n = 0;
}
add(x) {
const p = this._partials;
let i = 0;
for (let j = 0; j < this._n && j < 32; j++) {
const y = p[j],
hi = x + y,
lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
if (lo) p[i++] = lo;
x = hi;
}
p[i] = x;
this._n = i + 1;
return this;
}
valueOf() {
const p = this._partials;
let n = this._n,
x,
y,
lo,
hi = 0;
if (n > 0) {
hi = p[--n];
while (n > 0) {
x = hi;
y = p[--n];
hi = x + y;
lo = y - (hi - x);
if (lo) break;
}
if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {
y = lo * 2;
x = hi + y;
if (y == x - hi) hi = x;
}
}
return hi;
}
}
function permute (source, keys) {
return Array.from(keys, key => source[key]);
}
var e10 = Math.sqrt(50),
e5 = Math.sqrt(10),
e2 = Math.sqrt(2);
function ticks (start, stop, count) {
var reverse,
i = -1,
n,
ticks,
step;
stop = +stop, start = +start, count = +count;
if (start === stop && count > 0) return [start];
if (reverse = stop < start) n = start, start = stop, stop = n;
if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
if (step > 0) {
let r0 = Math.round(start / step),
r1 = Math.round(stop / step);
if (r0 * step < start) ++r0;
if (r1 * step > stop) --r1;
ticks = new Array(n = r1 - r0 + 1);
while (++i < n) ticks[i] = (r0 + i) * step;
} else {
step = -step;
let r0 = Math.round(start * step),
r1 = Math.round(stop * step);
if (r0 / step < start) ++r0;
if (r1 / step > stop) --r1;
ticks = new Array(n = r1 - r0 + 1);
while (++i < n) ticks[i] = (r0 + i) / step;
}
if (reverse) ticks.reverse();
return ticks;
}
function tickIncrement(start, stop, count) {
var step = (stop - start) / Math.max(0, count),
power = Math.floor(Math.log(step) / Math.LN10),
error = step / Math.pow(10, power);
return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
}
function tickStep(start, stop, count) {
var step0 = Math.abs(stop - start) / Math.max(0, count),
step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
error = step0 / step1;
if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;
return stop < start ? -step1 : step1;
}
function max$2(values, valueof) {
let max;
if (valueof === undefined) {
for (const value of values) {
if (value != null && (max < value || max === undefined && value >= value)) {
max = value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (max < value || max === undefined && value >= value)) {
max = value;
}
}
}
return max;
}
function min$2(values, valueof) {
let min;
if (valueof === undefined) {
for (const value of values) {
if (value != null && (min > value || min === undefined && value >= value)) {
min = value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (min > value || min === undefined && value >= value)) {
min = value;
}
}
}
return min;
}
// ISC license, Copyright 2018 Vladimir Agafonkin.
function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending$2) {
while (right > left) {
if (right - left > 600) {
const n = right - left + 1;
const m = k - left + 1;
const z = Math.log(n);
const s = 0.5 * Math.exp(2 * z / 3);
const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
quickselect(array, k, newLeft, newRight, compare);
}
const t = array[k];
let i = left;
let j = right;
swap$1(array, left, k);
if (compare(array[right], t) > 0) swap$1(array, left, right);
while (i < j) {
swap$1(array, i, j), ++i, --j;
while (compare(array[i], t) < 0) ++i;
while (compare(array[j], t) > 0) --j;
}
if (compare(array[left], t) === 0) swap$1(array, left, j);else ++j, swap$1(array, j, right);
if (j <= k) left = j + 1;
if (k <= j) right = j - 1;
}
return array;
}
function swap$1(array, i, j) {
const t = array[i];
array[i] = array[j];
array[j] = t;
}
function quantile$1(values, p, valueof) {
values = Float64Array.from(numbers$2(values, valueof));
if (!(n = values.length)) return;
if ((p = +p) <= 0 || n < 2) return min$2(values);
if (p >= 1) return max$2(values);
var n,
i = (n - 1) * p,
i0 = Math.floor(i),
value0 = max$2(quickselect(values, i0).subarray(0, i0 + 1)),
value1 = min$2(values.subarray(i0 + 1));
return value0 + (value1 - value0) * (i - i0);
}
function quantileSorted(values, p, valueof = number$6) {
if (!(n = values.length)) return;
if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
if (p >= 1) return +valueof(values[n - 1], n - 1, values);
var n,
i = (n - 1) * p,
i0 = Math.floor(i),
value0 = +valueof(values[i0], i0, values),
value1 = +valueof(values[i0 + 1], i0 + 1, values);
return value0 + (value1 - value0) * (i - i0);
}
function mean(values, valueof) {
let count = 0;
let sum = 0;
if (valueof === undefined) {
for (let value of values) {
if (value != null && (value = +value) >= value) {
++count, sum += value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
++count, sum += value;
}
}
}
if (count) return sum / count;
}
function median (values, valueof) {
return quantile$1(values, 0.5, valueof);
}
function* flatten(arrays) {
for (const array of arrays) {
yield* array;
}
}
function merge$2(arrays) {
return Array.from(flatten(arrays));
}
function range$1$1 (start, stop, step) {
start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
var i = -1,
n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
range = new Array(n);
while (++i < n) {
range[i] = start + i * step;
}
return range;
}
function sum(values, valueof) {
let sum = 0;
if (valueof === undefined) {
for (let value of values) {
if (value = +value) {
sum += value;
}
}
} else {
let index = -1;
for (let value of values) {
if (value = +valueof(value, ++index, values)) {
sum += value;
}
}
}
return sum;
}
function formatDecimal (x) {
return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10);
} // Computes the decimal coefficient and exponent of the specified number x with
// significant digits p, where x is positive and p is in [1, 21] or undefined.
// For example, formatDecimalParts(1.23) returns ["123", 0].
function formatDecimalParts(x, p) {
if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
var i,
coefficient = x.slice(0, i); // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
// (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];
}
function exponent (x) {
return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;
}
function formatGroup (grouping, thousands) {
return function (value, width) {
var i = value.length,
t = [],
j = 0,
g = grouping[0],
length = 0;
while (i > 0 && g > 0) {
if (length + g + 1 > width) g = Math.max(1, width - length);
t.push(value.substring(i -= g, i + g));
if ((length += g + 1) > width) break;
g = grouping[j = (j + 1) % grouping.length];
}
return t.reverse().join(thousands);
};
}
function formatNumerals (numerals) {
return function (value) {
return value.replace(/[0-9]/g, function (i) {
return numerals[+i];
});
};
}
// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
function formatSpecifier(specifier) {
if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
var match;
return new FormatSpecifier({
fill: match[1],
align: match[2],
sign: match[3],
symbol: match[4],
zero: match[5],
width: match[6],
comma: match[7],
precision: match[8] && match[8].slice(1),
trim: match[9],
type: match[10]
});
}
formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
function FormatSpecifier(specifier) {
this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
this.align = specifier.align === undefined ? ">" : specifier.align + "";
this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
this.zero = !!specifier.zero;
this.width = specifier.width === undefined ? undefined : +specifier.width;
this.comma = !!specifier.comma;
this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
this.trim = !!specifier.trim;
this.type = specifier.type === undefined ? "" : specifier.type + "";
}
FormatSpecifier.prototype.toString = function () {
return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === undefined ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
};
// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
function formatTrim (s) {
out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
switch (s[i]) {
case ".":
i0 = i1 = i;
break;
case "0":
if (i0 === 0) i0 = i;
i1 = i;
break;
default:
if (!+s[i]) break out;
if (i0 > 0) i0 = 0;
break;
}
}
return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
}
var prefixExponent;
function formatPrefixAuto (x, p) {
var d = formatDecimalParts(x, p);
if (!d) return x + "";
var coefficient = d[0],
exponent = d[1],
i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
n = coefficient.length;
return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join("0") : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
}
function formatRounded (x, p) {
var d = formatDecimalParts(x, p);
if (!d) return x + "";
var coefficient = d[0],
exponent = d[1];
return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join("0");
}
var formatTypes = {
"%": (x, p) => (x * 100).toFixed(p),
"b": x => Math.round(x).toString(2),
"c": x => x + "",
"d": formatDecimal,
"e": (x, p) => x.toExponential(p),
"f": (x, p) => x.toFixed(p),
"g": (x, p) => x.toPrecision(p),
"o": x => Math.round(x).toString(8),
"p": (x, p) => formatRounded(x * 100, p),
"r": formatRounded,
"s": formatPrefixAuto,
"X": x => Math.round(x).toString(16).toUpperCase(),
"x": x => Math.round(x).toString(16)
};
function identity$4 (x) {
return x;
}
var map$1 = Array.prototype.map,
prefixes = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
function formatLocale$1 (locale) {
var group = locale.grouping === undefined || locale.thousands === undefined ? identity$4 : formatGroup(map$1.call(locale.grouping, Number), locale.thousands + ""),
currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
decimal = locale.decimal === undefined ? "." : locale.decimal + "",
numerals = locale.numerals === undefined ? identity$4 : formatNumerals(map$1.call(locale.numerals, String)),
percent = locale.percent === undefined ? "%" : locale.percent + "",
minus = locale.minus === undefined ? "−" : locale.minus + "",
nan = locale.nan === undefined ? "NaN" : locale.nan + "";
function newFormat(specifier) {
specifier = formatSpecifier(specifier);
var fill = specifier.fill,
align = specifier.align,
sign = specifier.sign,
symbol = specifier.symbol,
zero = specifier.zero,
width = specifier.width,
comma = specifier.comma,
precision = specifier.precision,
trim = specifier.trim,
type = specifier.type; // The "n" type is an alias for ",g".
if (type === "n") comma = true, type = "g"; // The "" type, and any invalid type, is an alias for ".12~g".
else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g"; // If zero fill is specified, padding goes after sign and before digits.
if (zero || fill === "0" && align === "=") zero = true, fill = "0", align = "="; // Compute the prefix and suffix.
// For SI-prefix, the suffix is lazily computed.
var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; // What format function should we use?
// Is this an integer type?
// Can this type generate exponential notation?
var formatType = formatTypes[type],
maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,
// or clamp the specified precision to the supported range.
// For significant precision, it must be in [1, 21].
// For fixed precision, it must be in [0, 20].
precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));
function format(value) {
var valuePrefix = prefix,
valueSuffix = suffix,
i,
n,
c;
if (type === "c") {
valueSuffix = formatType(value) + valueSuffix;
value = "";
} else {
value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!
var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.
value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.
if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
if (valueNegative && +value === 0 && sign !== "+") valueNegative = false; // Compute the prefix and suffix.
valuePrefix = (valueNegative ? sign === "(" ? sign : minus : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); // Break the formatted value into the integer “value” part that can be
// grouped, and fractional or exponential “suffix” part that is not.
if (maybeSuffix) {
i = -1, n = value.length;
while (++i < n) {
if (c = value.charCodeAt(i), 48 > c || c > 57) {
valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
value = value.slice(0, i);
break;
}
}
}
} // If the fill character is not "0", grouping is applied before padding.
if (comma && !zero) value = group(value, Infinity); // Compute the padding.
var length = valuePrefix.length + value.length + valueSuffix.length,
padding = length < width ? new Array(width - length + 1).join(fill) : ""; // If the fill character is "0", grouping is applied after padding.
if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; // Reconstruct the final output based on the desired alignment.
switch (align) {
case "<":
value = valuePrefix + value + valueSuffix + padding;
break;
case "=":
value = valuePrefix + padding + value + valueSuffix;
break;
case "^":
value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);
break;
default:
value = padding + valuePrefix + value + valueSuffix;
break;
}
return numerals(value);
}
format.toString = function () {
return specifier + "";
};
return format;
}
function formatPrefix(specifier, value) {
var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)),
e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,
k = Math.pow(10, -e),
prefix = prefixes[8 + e / 3];
return function (value) {
return f(k * value) + prefix;
};
}
return {
format: newFormat,
formatPrefix: formatPrefix
};
}
var locale$2;
var format$3;
var formatPrefix;
defaultLocale$2({
thousands: ",",
grouping: [3],
currency: ["$", ""]
});
function defaultLocale$2(definition) {
locale$2 = formatLocale$1(definition);
format$3 = locale$2.format;
formatPrefix = locale$2.formatPrefix;
return locale$2;
}
function precisionFixed (step) {
return Math.max(0, -exponent(Math.abs(step)));
}
function precisionPrefix (step, value) {
return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
}
function precisionRound (step, max) {
step = Math.abs(step), max = Math.abs(max) - step;
return Math.max(0, exponent(max) - exponent(step)) + 1;
}
var t0$2 = new Date(),
t1$1 = new Date();
function newInterval(floori, offseti, count, field) {
function interval(date) {
return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;
}
interval.floor = function (date) {
return floori(date = new Date(+date)), date;
};
interval.ceil = function (date) {
return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
};
interval.round = function (date) {
var d0 = interval(date),
d1 = interval.ceil(date);
return date - d0 < d1 - date ? d0 : d1;
};
interval.offset = function (date, step) {
return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
};
interval.range = function (start, stop, step) {
var range = [],
previous;
start = interval.ceil(start);
step = step == null ? 1 : Math.floor(step);
if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
do range.push(previous = new Date(+start)), offseti(start, step), floori(start); while (previous < start && start < stop);
return range;
};
interval.filter = function (test) {
return newInterval(function (date) {
if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
}, function (date, step) {
if (date >= date) {
if (step < 0) while (++step <= 0) {
while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
} else while (--step >= 0) {
while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
}
}
});
};
if (count) {
interval.count = function (start, end) {
t0$2.setTime(+start), t1$1.setTime(+end);
floori(t0$2), floori(t1$1);
return Math.floor(count(t0$2, t1$1));
};
interval.every = function (step) {
step = Math.floor(step);
return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {
return field(d) % step === 0;
} : function (d) {
return interval.count(0, d) % step === 0;
});
};
}
return interval;
}
var millisecond = newInterval(function () {// noop
}, function (date, step) {
date.setTime(+date + step);
}, function (start, end) {
return end - start;
}); // An optimized implementation for this simple case.
millisecond.every = function (k) {
k = Math.floor(k);
if (!isFinite(k) || !(k > 0)) return null;
if (!(k > 1)) return millisecond;
return newInterval(function (date) {
date.setTime(Math.floor(date / k) * k);
}, function (date, step) {
date.setTime(+date + step * k);
}, function (start, end) {
return (end - start) / k;
});
};
var utcMillisecond = millisecond;
const durationSecond$1 = 1000;
const durationMinute$1 = durationSecond$1 * 60;
const durationHour$1 = durationMinute$1 * 60;
const durationDay$1 = durationHour$1 * 24;
const durationWeek$1 = durationDay$1 * 7;
const durationMonth$1 = durationDay$1 * 30;
const durationYear$1 = durationDay$1 * 365;
var second = newInterval(function (date) {
date.setTime(date - date.getMilliseconds());
}, function (date, step) {
date.setTime(+date + step * durationSecond$1);
}, function (start, end) {
return (end - start) / durationSecond$1;
}, function (date) {
return date.getUTCSeconds();
});
var utcSecond = second;
var minute = newInterval(function (date) {
date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$1);
}, function (date, step) {
date.setTime(+date + step * durationMinute$1);
}, function (start, end) {
return (end - start) / durationMinute$1;
}, function (date) {
return date.getMinutes();
});
var timeMinute = minute;
var hour = newInterval(function (date) {
date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$1 - date.getMinutes() * durationMinute$1);
}, function (date, step) {
date.setTime(+date + step * durationHour$1);
}, function (start, end) {
return (end - start) / durationHour$1;
}, function (date) {
return date.getHours();
});
var timeHour = hour;
var day = newInterval(date => date.setHours(0, 0, 0, 0), (date, step) => date.setDate(date.getDate() + step), (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationDay$1, date => date.getDate() - 1);
var timeDay = day;
function weekday$1(i) {
return newInterval(function (date) {
date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
date.setHours(0, 0, 0, 0);
}, function (date, step) {
date.setDate(date.getDate() + step * 7);
}, function (start, end) {
return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationWeek$1;
});
}
var sunday = weekday$1(0);
var monday = weekday$1(1);
weekday$1(2);
weekday$1(3);
var thursday = weekday$1(4);
weekday$1(5);
weekday$1(6);
var month = newInterval(function (date) {
date.setDate(1);
date.setHours(0, 0, 0, 0);
}, function (date, step) {
date.setMonth(date.getMonth() + step);
}, function (start, end) {
return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
}, function (date) {
return date.getMonth();
});
var timeMonth = month;
var year = newInterval(function (date) {
date.setMonth(0, 1);
date.setHours(0, 0, 0, 0);
}, function (date, step) {
date.setFullYear(date.getFullYear() + step);
}, function (start, end) {
return end.getFullYear() - start.getFullYear();
}, function (date) {
return date.getFullYear();
}); // An optimized implementation for this simple case.
year.every = function (k) {
return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function (date) {
date.setFullYear(Math.floor(date.getFullYear() / k) * k);
date.setMonth(0, 1);
date.setHours(0, 0, 0, 0);
}, function (date, step) {
date.setFullYear(date.getFullYear() + step * k);
});
};
var timeYear = year;
var utcMinute = newInterval(function (date) {
date.setUTCSeconds(0, 0);
}, function (date, step) {
date.setTime(+date + step * durationMinute$1);
}, function (start, end) {
return (end - start) / durationMinute$1;
}, function (date) {
return date.getUTCMinutes();
});
var utcMinute$1 = utcMinute;
var utcHour = newInterval(function (date) {
date.setUTCMinutes(0, 0, 0);
}, function (date, step) {
date.setTime(+date + step * durationHour$1);
}, function (start, end) {
return (end - start) / durationHour$1;
}, function (date) {
return date.getUTCHours();
});
var utcHour$1 = utcHour;
var utcDay = newInterval(function (date) {
date.setUTCHours(0, 0, 0, 0);
}, function (date, step) {
date.setUTCDate(date.getUTCDate() + step);
}, function (start, end) {
return (end - start) / durationDay$1;
}, function (date) {
return date.getUTCDate() - 1;
});
var utcDay$1 = utcDay;
function utcWeekday(i) {
return newInterval(function (date) {
date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
date.setUTCHours(0, 0, 0, 0);
}, function (date, step) {
date.setUTCDate(date.getUTCDate() + step * 7);
}, function (start, end) {
return (end - start) / durationWeek$1;
});
}
var utcSunday = utcWeekday(0);
var utcMonday = utcWeekday(1);
utcWeekday(2);
utcWeekday(3);
var utcThursday = utcWeekday(4);
utcWeekday(5);
utcWeekday(6);
var utcMonth = newInterval(function (date) {
date.setUTCDate(1);
date.setUTCHours(0, 0, 0, 0);
}, function (date, step) {
date.setUTCMonth(date.getUTCMonth() + step);
}, function (start, end) {
return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
}, function (date) {
return date.getUTCMonth();
});
var utcMonth$1 = utcMonth;
var utcYear = newInterval(function (date) {
date.setUTCMonth(0, 1);
date.setUTCHours(0, 0, 0, 0);
}, function (date, step) {
date.setUTCFullYear(date.getUTCFullYear() + step);
}, function (start, end) {
return end.getUTCFullYear() - start.getUTCFullYear();
}, function (date) {
return date.getUTCFullYear();
}); // An optimized implementation for this simple case.
utcYear.every = function (k) {
return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function (date) {
date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
date.setUTCMonth(0, 1);
date.setUTCHours(0, 0, 0, 0);
}, function (date, step) {
date.setUTCFullYear(date.getUTCFullYear() + step * k);
});
};
var utcYear$1 = utcYear;
function ticker(year, month, week, day, hour, minute) {
const tickIntervals = [[utcSecond, 1, durationSecond$1], [utcSecond, 5, 5 * durationSecond$1], [utcSecond, 15, 15 * durationSecond$1], [utcSecond, 30, 30 * durationSecond$1], [minute, 1, durationMinute$1], [minute, 5, 5 * durationMinute$1], [minute, 15, 15 * durationMinute$1], [minute, 30, 30 * durationMinute$1], [hour, 1, durationHour$1], [hour, 3, 3 * durationHour$1], [hour, 6, 6 * durationHour$1], [hour, 12, 12 * durationHour$1], [day, 1, durationDay$1], [day, 2, 2 * durationDay$1], [week, 1, durationWeek$1], [month, 1, durationMonth$1], [month, 3, 3 * durationMonth$1], [year, 1, durationYear$1]];
function ticks(start, stop, count) {
const reverse = stop < start;
if (reverse) [start, stop] = [stop, start];
const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
return reverse ? ticks.reverse() : ticks;
}
function tickInterval(start, stop, count) {
const target = Math.abs(stop - start) / count;
const i = bisector$1(([,, step]) => step).right(tickIntervals, target);
if (i === tickIntervals.length) return year.every(tickStep(start / durationYear$1, stop / durationYear$1, count));
if (i === 0) return utcMillisecond.every(Math.max(tickStep(start, stop, count), 1));
const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
return t.every(step);
}
return [ticks, tickInterval];
}
const [utcTicks, utcTickInterval] = ticker(utcYear$1, utcMonth$1, utcSunday, utcDay$1, utcHour$1, utcMinute$1);
const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute);
const YEAR = 'year';
const QUARTER = 'quarter';
const MONTH = 'month';
const WEEK = 'week';
const DATE = 'date';
const DAY = 'day';
const DAYOFYEAR = 'dayofyear';
const HOURS = 'hours';
const MINUTES = 'minutes';
const SECONDS = 'seconds';
const MILLISECONDS = 'milliseconds';
const TIME_UNITS = [YEAR, QUARTER, MONTH, WEEK, DATE, DAY, DAYOFYEAR, HOURS, MINUTES, SECONDS, MILLISECONDS];
const UNITS = TIME_UNITS.reduce((o, u, i) => (o[u] = 1 + i, o), {});
function timeUnits(units) {
const u = array$5(units).slice(),
m = {}; // check validity
if (!u.length) error('Missing time unit.');
u.forEach(unit => {
if (has$1(UNITS, unit)) {
m[unit] = 1;
} else {
error(`Invalid time unit: ${unit}.`);
}
});
const numTypes = (m[WEEK] || m[DAY] ? 1 : 0) + (m[QUARTER] || m[MONTH] || m[DATE] ? 1 : 0) + (m[DAYOFYEAR] ? 1 : 0);
if (numTypes > 1) {
error(`Incompatible time units: ${units}`);
} // ensure proper sort order
u.sort((a, b) => UNITS[a] - UNITS[b]);
return u;
}
const defaultSpecifiers = {
[YEAR]: '%Y ',
[QUARTER]: 'Q%q ',
[MONTH]: '%b ',
[DATE]: '%d ',
[WEEK]: 'W%U ',
[DAY]: '%a ',
[DAYOFYEAR]: '%j ',
[HOURS]: '%H:00',
[MINUTES]: '00:%M',
[SECONDS]: ':%S',
[MILLISECONDS]: '.%L',
[`${YEAR}-${MONTH}`]: '%Y-%m ',
[`${YEAR}-${MONTH}-${DATE}`]: '%Y-%m-%d ',
[`${HOURS}-${MINUTES}`]: '%H:%M'
};
function timeUnitSpecifier(units, specifiers) {
const s = extend$1({}, defaultSpecifiers, specifiers),
u = timeUnits(units),
n = u.length;
let fmt = '',
start = 0,
end,
key;
for (start = 0; start < n;) {
for (end = u.length; end > start; --end) {
key = u.slice(start, end).join('-');
if (s[key] != null) {
fmt += s[key];
start = end;
break;
}
}
}
return fmt.trim();
}
const t0$1 = new Date();
function localYear(y) {
t0$1.setFullYear(y);
t0$1.setMonth(0);
t0$1.setDate(1);
t0$1.setHours(0, 0, 0, 0);
return t0$1;
}
function dayofyear(d) {
return localDayOfYear(new Date(d));
}
function week(d) {
return localWeekNum(new Date(d));
}
function localDayOfYear(d) {
return timeDay.count(localYear(d.getFullYear()) - 1, d);
}
function localWeekNum(d) {
return sunday.count(localYear(d.getFullYear()) - 1, d);
}
function localFirst(y) {
return localYear(y).getDay();
}
function localDate$1(y, m, d, H, M, S, L) {
if (0 <= y && y < 100) {
const date = new Date(-1, m, d, H, M, S, L);
date.setFullYear(y);
return date;
}
return new Date(y, m, d, H, M, S, L);
}
function utcdayofyear(d) {
return utcDayOfYear(new Date(d));
}
function utcweek(d) {
return utcWeekNum(new Date(d));
}
function utcDayOfYear(d) {
const y = Date.UTC(d.getUTCFullYear(), 0, 1);
return utcDay$1.count(y - 1, d);
}
function utcWeekNum(d) {
const y = Date.UTC(d.getUTCFullYear(), 0, 1);
return utcSunday.count(y - 1, d);
}
function utcFirst(y) {
t0$1.setTime(Date.UTC(y, 0, 1));
return t0$1.getUTCDay();
}
function utcDate$1(y, m, d, H, M, S, L) {
if (0 <= y && y < 100) {
const date = new Date(Date.UTC(-1, m, d, H, M, S, L));
date.setUTCFullYear(d.y);
return date;
}
return new Date(Date.UTC(y, m, d, H, M, S, L));
}
function floor(units, step, get, inv, newDate) {
const s = step || 1,
b = peek$1(units),
_ = (unit, p, key) => {
key = key || unit;
return getUnit(get[key], inv[key], unit === b && s, p);
};
const t = new Date(),
u = toSet(units),
y = u[YEAR] ? _(YEAR) : constant$4(2012),
m = u[MONTH] ? _(MONTH) : u[QUARTER] ? _(QUARTER) : zero$2,
d = u[WEEK] && u[DAY] ? _(DAY, 1, WEEK + DAY) : u[WEEK] ? _(WEEK, 1) : u[DAY] ? _(DAY, 1) : u[DATE] ? _(DATE, 1) : u[DAYOFYEAR] ? _(DAYOFYEAR, 1) : one$2,
H = u[HOURS] ? _(HOURS) : zero$2,
M = u[MINUTES] ? _(MINUTES) : zero$2,
S = u[SECONDS] ? _(SECONDS) : zero$2,
L = u[MILLISECONDS] ? _(MILLISECONDS) : zero$2;
return function (v) {
t.setTime(+v);
const year = y(t);
return newDate(year, m(t), d(t, year), H(t), M(t), S(t), L(t));
};
}
function getUnit(f, inv, step, phase) {
const u = step <= 1 ? f : phase ? (d, y) => phase + step * Math.floor((f(d, y) - phase) / step) : (d, y) => step * Math.floor(f(d, y) / step);
return inv ? (d, y) => inv(u(d, y), y) : u;
} // returns the day of the year based on week number, day of week,
// and the day of the week for the first day of the year
function weekday(week, day, firstDay) {
return day + week * 7 - (firstDay + 6) % 7;
} // -- LOCAL TIME --
const localGet = {
[YEAR]: d => d.getFullYear(),
[QUARTER]: d => Math.floor(d.getMonth() / 3),
[MONTH]: d => d.getMonth(),
[DATE]: d => d.getDate(),
[HOURS]: d => d.getHours(),
[MINUTES]: d => d.getMinutes(),
[SECONDS]: d => d.getSeconds(),
[MILLISECONDS]: d => d.getMilliseconds(),
[DAYOFYEAR]: d => localDayOfYear(d),
[WEEK]: d => localWeekNum(d),
[WEEK + DAY]: (d, y) => weekday(localWeekNum(d), d.getDay(), localFirst(y)),
[DAY]: (d, y) => weekday(1, d.getDay(), localFirst(y))
};
const localInv = {
[QUARTER]: q => 3 * q,
[WEEK]: (w, y) => weekday(w, 0, localFirst(y))
};
function timeFloor(units, step) {
return floor(units, step || 1, localGet, localInv, localDate$1);
} // -- UTC TIME --
const utcGet = {
[YEAR]: d => d.getUTCFullYear(),
[QUARTER]: d => Math.floor(d.getUTCMonth() / 3),
[MONTH]: d => d.getUTCMonth(),
[DATE]: d => d.getUTCDate(),
[HOURS]: d => d.getUTCHours(),
[MINUTES]: d => d.getUTCMinutes(),
[SECONDS]: d => d.getUTCSeconds(),
[MILLISECONDS]: d => d.getUTCMilliseconds(),
[DAYOFYEAR]: d => utcDayOfYear(d),
[WEEK]: d => utcWeekNum(d),
[DAY]: (d, y) => weekday(1, d.getUTCDay(), utcFirst(y)),
[WEEK + DAY]: (d, y) => weekday(utcWeekNum(d), d.getUTCDay(), utcFirst(y))
};
const utcInv = {
[QUARTER]: q => 3 * q,
[WEEK]: (w, y) => weekday(w, 0, utcFirst(y))
};
function utcFloor(units, step) {
return floor(units, step || 1, utcGet, utcInv, utcDate$1);
}
const timeIntervals = {
[YEAR]: timeYear,
[QUARTER]: timeMonth.every(3),
[MONTH]: timeMonth,
[WEEK]: sunday,
[DATE]: timeDay,
[DAY]: timeDay,
[DAYOFYEAR]: timeDay,
[HOURS]: timeHour,
[MINUTES]: timeMinute,
[SECONDS]: utcSecond,
[MILLISECONDS]: utcMillisecond
};
const utcIntervals = {
[YEAR]: utcYear$1,
[QUARTER]: utcMonth$1.every(3),
[MONTH]: utcMonth$1,
[WEEK]: utcSunday,
[DATE]: utcDay$1,
[DAY]: utcDay$1,
[DAYOFYEAR]: utcDay$1,
[HOURS]: utcHour$1,
[MINUTES]: utcMinute$1,
[SECONDS]: utcSecond,
[MILLISECONDS]: utcMillisecond
};
function timeInterval(unit) {
return timeIntervals[unit];
}
function utcInterval(unit) {
return utcIntervals[unit];
}
function offset$3(ival, date, step) {
return ival ? ival.offset(date, step) : undefined;
}
function timeOffset(unit, date, step) {
return offset$3(timeInterval(unit), date, step);
}
function utcOffset(unit, date, step) {
return offset$3(utcInterval(unit), date, step);
}
function sequence$1(ival, start, stop, step) {
return ival ? ival.range(start, stop, step) : undefined;
}
function timeSequence(unit, start, stop, step) {
return sequence$1(timeInterval(unit), start, stop, step);
}
function utcSequence(unit, start, stop, step) {
return sequence$1(utcInterval(unit), start, stop, step);
}
const durationSecond = 1000,
durationMinute = durationSecond * 60,
durationHour = durationMinute * 60,
durationDay = durationHour * 24,
durationWeek = durationDay * 7,
durationMonth = durationDay * 30,
durationYear = durationDay * 365;
const Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS],
Seconds = Milli.slice(0, -1),
Minutes = Seconds.slice(0, -1),
Hours = Minutes.slice(0, -1),
Day = Hours.slice(0, -1),
Week = [YEAR, WEEK],
Month = [YEAR, MONTH],
Year = [YEAR];
const intervals = [[Seconds, 1, durationSecond], [Seconds, 5, 5 * durationSecond], [Seconds, 15, 15 * durationSecond], [Seconds, 30, 30 * durationSecond], [Minutes, 1, durationMinute], [Minutes, 5, 5 * durationMinute], [Minutes, 15, 15 * durationMinute], [Minutes, 30, 30 * durationMinute], [Hours, 1, durationHour], [Hours, 3, 3 * durationHour], [Hours, 6, 6 * durationHour], [Hours, 12, 12 * durationHour], [Day, 1, durationDay], [Week, 1, durationWeek], [Month, 1, durationMonth], [Month, 3, 3 * durationMonth], [Year, 1, durationYear]];
function bin$1(opt) {
const ext = opt.extent,
max = opt.maxbins || 40,
target = Math.abs(span(ext)) / max;
let i = bisector$1(i => i[2]).right(intervals, target),
units,
step;
if (i === intervals.length) {
units = Year, step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max);
} else if (i) {
i = intervals[target / intervals[i - 1][2] < intervals[i][2] / target ? i - 1 : i];
units = i[0];
step = i[1];
} else {
units = Milli;
step = Math.max(tickStep(ext[0], ext[1], max), 1);
}
return {
units,
step
};
}
function localDate(d) {
if (0 <= d.y && d.y < 100) {
var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
date.setFullYear(d.y);
return date;
}
return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
}
function utcDate(d) {
if (0 <= d.y && d.y < 100) {
var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
date.setUTCFullYear(d.y);
return date;
}
return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
}
function newDate(y, m, d) {
return {
y: y,
m: m,
d: d,
H: 0,
M: 0,
S: 0,
L: 0
};
}
function formatLocale(locale) {
var locale_dateTime = locale.dateTime,
locale_date = locale.date,
locale_time = locale.time,
locale_periods = locale.periods,
locale_weekdays = locale.days,
locale_shortWeekdays = locale.shortDays,
locale_months = locale.months,
locale_shortMonths = locale.shortMonths;
var periodRe = formatRe(locale_periods),
periodLookup = formatLookup(locale_periods),
weekdayRe = formatRe(locale_weekdays),
weekdayLookup = formatLookup(locale_weekdays),
shortWeekdayRe = formatRe(locale_shortWeekdays),
shortWeekdayLookup = formatLookup(locale_shortWeekdays),
monthRe = formatRe(locale_months),
monthLookup = formatLookup(locale_months),
shortMonthRe = formatRe(locale_shortMonths),
shortMonthLookup = formatLookup(locale_shortMonths);
var formats = {
"a": formatShortWeekday,
"A": formatWeekday,
"b": formatShortMonth,
"B": formatMonth,
"c": null,
"d": formatDayOfMonth,
"e": formatDayOfMonth,
"f": formatMicroseconds,
"g": formatYearISO,
"G": formatFullYearISO,
"H": formatHour24,
"I": formatHour12,
"j": formatDayOfYear,
"L": formatMilliseconds,
"m": formatMonthNumber,
"M": formatMinutes,
"p": formatPeriod,
"q": formatQuarter,
"Q": formatUnixTimestamp,
"s": formatUnixTimestampSeconds,
"S": formatSeconds,
"u": formatWeekdayNumberMonday,
"U": formatWeekNumberSunday,
"V": formatWeekNumberISO,
"w": formatWeekdayNumberSunday,
"W": formatWeekNumberMonday,
"x": null,
"X": null,
"y": formatYear,
"Y": formatFullYear,
"Z": formatZone,
"%": formatLiteralPercent
};
var utcFormats = {
"a": formatUTCShortWeekday,
"A": formatUTCWeekday,
"b": formatUTCShortMonth,
"B": formatUTCMonth,
"c": null,
"d": formatUTCDayOfMonth,
"e": formatUTCDayOfMonth,
"f": formatUTCMicroseconds,
"g": formatUTCYearISO,
"G": formatUTCFullYearISO,
"H": formatUTCHour24,
"I": formatUTCHour12,
"j": formatUTCDayOfYear,
"L": formatUTCMilliseconds,
"m": formatUTCMonthNumber,
"M": formatUTCMinutes,
"p": formatUTCPeriod,
"q": formatUTCQuarter,
"Q": formatUnixTimestamp,
"s": formatUnixTimestampSeconds,
"S": formatUTCSeconds,
"u": formatUTCWeekdayNumberMonday,
"U": formatUTCWeekNumberSunday,
"V": formatUTCWeekNumberISO,
"w": formatUTCWeekdayNumberSunday,
"W": formatUTCWeekNumberMonday,
"x": null,
"X": null,
"y": formatUTCYear,
"Y": formatUTCFullYear,
"Z": formatUTCZone,
"%": formatLiteralPercent
};
var parses = {
"a": parseShortWeekday,
"A": parseWeekday,
"b": parseShortMonth,
"B": parseMonth,
"c": parseLocaleDateTime,
"d": parseDayOfMonth,
"e": parseDayOfMonth,
"f": parseMicroseconds,
"g": parseYear,
"G": parseFullYear,
"H": parseHour24,
"I": parseHour24,
"j": parseDayOfYear,
"L": parseMilliseconds,
"m": parseMonthNumber,
"M": parseMinutes,
"p": parsePeriod,
"q": parseQuarter,
"Q": parseUnixTimestamp,
"s": parseUnixTimestampSeconds,
"S": parseSeconds,
"u": parseWeekdayNumberMonday,
"U": parseWeekNumberSunday,
"V": parseWeekNumberISO,
"w": parseWeekdayNumberSunday,
"W": parseWeekNumberMonday,
"x": parseLocaleDate,
"X": parseLocaleTime,
"y": parseYear,
"Y": parseFullYear,
"Z": parseZone,
"%": parseLiteralPercent
}; // These recursive directive definitions must be deferred.
formats.x = newFormat(locale_date, formats);
formats.X = newFormat(locale_time, formats);
formats.c = newFormat(locale_dateTime, formats);
utcFormats.x = newFormat(locale_date, utcFormats);
utcFormats.X = newFormat(locale_time, utcFormats);
utcFormats.c = newFormat(locale_dateTime, utcFormats);
function newFormat(specifier, formats) {
return function (date) {
var string = [],
i = -1,
j = 0,
n = specifier.length,
c,
pad,
format;
if (!(date instanceof Date)) date = new Date(+date);
while (++i < n) {
if (specifier.charCodeAt(i) === 37) {
string.push(specifier.slice(j, i));
if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === "e" ? " " : "0";
if (format = formats[c]) c = format(date, pad);
string.push(c);
j = i + 1;
}
}
string.push(specifier.slice(j, i));
return string.join("");
};
}
function newParse(specifier, Z) {
return function (string) {
var d = newDate(1900, undefined, 1),
i = parseSpecifier(d, specifier, string += "", 0),
week,
day;
if (i != string.length) return null; // If a UNIX timestamp is specified, return it.
if ("Q" in d) return new Date(d.Q);
if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.
if (Z && !("Z" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.
if ("p" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.
if (d.m === undefined) d.m = "q" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.
if ("V" in d) {
if (d.V < 1 || d.V > 53) return null;
if (!("w" in d)) d.w = 1;
if ("Z" in d) {
week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
week = utcDay$1.offset(week, (d.V - 1) * 7);
d.y = week.getUTCFullYear();
d.m = week.getUTCMonth();
d.d = week.getUTCDate() + (d.w + 6) % 7;
} else {
week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
week = day > 4 || day === 0 ? monday.ceil(week) : monday(week);
week = timeDay.offset(week, (d.V - 1) * 7);
d.y = week.getFullYear();
d.m = week.getMonth();
d.d = week.getDate() + (d.w + 6) % 7;
}
} else if ("W" in d || "U" in d) {
if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
d.m = 0;
d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
} // If a time zone is specified, all fields are interpreted as UTC and then
// offset according to the specified time zone.
if ("Z" in d) {
d.H += d.Z / 100 | 0;
d.M += d.Z % 100;
return utcDate(d);
} // Otherwise, all fields are in local time.
return localDate(d);
};
}
function parseSpecifier(d, specifier, string, j) {
var i = 0,
n = specifier.length,
m = string.length,
c,
parse;
while (i < n) {
if (j >= m) return -1;
c = specifier.charCodeAt(i++);
if (c === 37) {
c = specifier.charAt(i++);
parse = parses[c in pads ? specifier.charAt(i++) : c];
if (!parse || (j = parse(d, string, j)) < 0) return -1;
} else if (c != string.charCodeAt(j++)) {
return -1;
}
}
return j;
}
function parsePeriod(d, string, i) {
var n = periodRe.exec(string.slice(i));
return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function parseShortWeekday(d, string, i) {
var n = shortWeekdayRe.exec(string.slice(i));
return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function parseWeekday(d, string, i) {
var n = weekdayRe.exec(string.slice(i));
return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function parseShortMonth(d, string, i) {
var n = shortMonthRe.exec(string.slice(i));
return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function parseMonth(d, string, i) {
var n = monthRe.exec(string.slice(i));
return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function parseLocaleDateTime(d, string, i) {
return parseSpecifier(d, locale_dateTime, string, i);
}
function parseLocaleDate(d, string, i) {
return parseSpecifier(d, locale_date, string, i);
}
function parseLocaleTime(d, string, i) {
return parseSpecifier(d, locale_time, string, i);
}
function formatShortWeekday(d) {
return locale_shortWeekdays[d.getDay()];
}
function formatWeekday(d) {
return locale_weekdays[d.getDay()];
}
function formatShortMonth(d) {
return locale_shortMonths[d.getMonth()];
}
function formatMonth(d) {
return locale_months[d.getMonth()];
}
function formatPeriod(d) {
return locale_periods[+(d.getHours() >= 12)];
}
function formatQuarter(d) {
return 1 + ~~(d.getMonth() / 3);
}
function formatUTCShortWeekday(d) {
return locale_shortWeekdays[d.getUTCDay()];
}
function formatUTCWeekday(d) {
return locale_weekdays[d.getUTCDay()];
}
function formatUTCShortMonth(d) {
return locale_shortMonths[d.getUTCMonth()];
}
function formatUTCMonth(d) {
return locale_months[d.getUTCMonth()];
}
function formatUTCPeriod(d) {
return locale_periods[+(d.getUTCHours() >= 12)];
}
function formatUTCQuarter(d) {
return 1 + ~~(d.getUTCMonth() / 3);
}
return {
format: function (specifier) {
var f = newFormat(specifier += "", formats);
f.toString = function () {
return specifier;
};
return f;
},
parse: function (specifier) {
var p = newParse(specifier += "", false);
p.toString = function () {
return specifier;
};
return p;
},
utcFormat: function (specifier) {
var f = newFormat(specifier += "", utcFormats);
f.toString = function () {
return specifier;
};
return f;
},
utcParse: function (specifier) {
var p = newParse(specifier += "", true);
p.toString = function () {
return specifier;
};
return p;
}
};
}
var pads = {
"-": "",
"_": " ",
"0": "0"
},
numberRe = /^\s*\d+/,
// note: ignores next directive
percentRe = /^%/,
requoteRe = /[\\^$*+?|[\]().{}]/g;
function pad(value, fill, width) {
var sign = value < 0 ? "-" : "",
string = (sign ? -value : value) + "",
length = string.length;
return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
}
function requote(s) {
return s.replace(requoteRe, "\\$&");
}
function formatRe(names) {
return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
}
function formatLookup(names) {
return new Map(names.map((name, i) => [name.toLowerCase(), i]));
}
function parseWeekdayNumberSunday(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 1));
return n ? (d.w = +n[0], i + n[0].length) : -1;
}
function parseWeekdayNumberMonday(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 1));
return n ? (d.u = +n[0], i + n[0].length) : -1;
}
function parseWeekNumberSunday(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.U = +n[0], i + n[0].length) : -1;
}
function parseWeekNumberISO(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.V = +n[0], i + n[0].length) : -1;
}
function parseWeekNumberMonday(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.W = +n[0], i + n[0].length) : -1;
}
function parseFullYear(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 4));
return n ? (d.y = +n[0], i + n[0].length) : -1;
}
function parseYear(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
}
function parseZone(d, string, i) {
var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
}
function parseQuarter(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 1));
return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
}
function parseMonthNumber(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
}
function parseDayOfMonth(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.d = +n[0], i + n[0].length) : -1;
}
function parseDayOfYear(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 3));
return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
}
function parseHour24(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.H = +n[0], i + n[0].length) : -1;
}
function parseMinutes(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.M = +n[0], i + n[0].length) : -1;
}
function parseSeconds(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 2));
return n ? (d.S = +n[0], i + n[0].length) : -1;
}
function parseMilliseconds(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 3));
return n ? (d.L = +n[0], i + n[0].length) : -1;
}
function parseMicroseconds(d, string, i) {
var n = numberRe.exec(string.slice(i, i + 6));
return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
}
function parseLiteralPercent(d, string, i) {
var n = percentRe.exec(string.slice(i, i + 1));
return n ? i + n[0].length : -1;
}
function parseUnixTimestamp(d, string, i) {
var n = numberRe.exec(string.slice(i));
return n ? (d.Q = +n[0], i + n[0].length) : -1;
}
function parseUnixTimestampSeconds(d, string, i) {
var n = numberRe.exec(string.slice(i));
return n ? (d.s = +n[0], i + n[0].length) : -1;
}
function formatDayOfMonth(d, p) {
return pad(d.getDate(), p, 2);
}
function formatHour24(d, p) {
return pad(d.getHours(), p, 2);
}
function formatHour12(d, p) {
return pad(d.getHours() % 12 || 12, p, 2);
}
function formatDayOfYear(d, p) {
return pad(1 + timeDay.count(timeYear(d), d), p, 3);
}
function formatMilliseconds(d, p) {
return pad(d.getMilliseconds(), p, 3);
}
function formatMicroseconds(d, p) {
return formatMilliseconds(d, p) + "000";
}
function formatMonthNumber(d, p) {
return pad(d.getMonth() + 1, p, 2);
}
function formatMinutes(d, p) {
return pad(d.getMinutes(), p, 2);
}
function formatSeconds(d, p) {
return pad(d.getSeconds(), p, 2);
}
function formatWeekdayNumberMonday(d) {
var day = d.getDay();
return day === 0 ? 7 : day;
}
function formatWeekNumberSunday(d, p) {
return pad(sunday.count(timeYear(d) - 1, d), p, 2);
}
function dISO(d) {
var day = d.getDay();
return day >= 4 || day === 0 ? thursday(d) : thursday.ceil(d);
}
function formatWeekNumberISO(d, p) {
d = dISO(d);
return pad(thursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
}
function formatWeekdayNumberSunday(d) {
return d.getDay();
}
function formatWeekNumberMonday(d, p) {
return pad(monday.count(timeYear(d) - 1, d), p, 2);
}
function formatYear(d, p) {
return pad(d.getFullYear() % 100, p, 2);
}
function formatYearISO(d, p) {
d = dISO(d);
return pad(d.getFullYear() % 100, p, 2);
}
function formatFullYear(d, p) {
return pad(d.getFullYear() % 10000, p, 4);
}
function formatFullYearISO(d, p) {
var day = d.getDay();
d = day >= 4 || day === 0 ? thursday(d) : thursday.ceil(d);
return pad(d.getFullYear() % 10000, p, 4);
}
function formatZone(d) {
var z = d.getTimezoneOffset();
return (z > 0 ? "-" : (z *= -1, "+")) + pad(z / 60 | 0, "0", 2) + pad(z % 60, "0", 2);
}
function formatUTCDayOfMonth(d, p) {
return pad(d.getUTCDate(), p, 2);
}
function formatUTCHour24(d, p) {
return pad(d.getUTCHours(), p, 2);
}
function formatUTCHour12(d, p) {
return pad(d.getUTCHours() % 12 || 12, p, 2);
}
function formatUTCDayOfYear(d, p) {
return pad(1 + utcDay$1.count(utcYear$1(d), d), p, 3);
}
function formatUTCMilliseconds(d, p) {
return pad(d.getUTCMilliseconds(), p, 3);
}
function formatUTCMicroseconds(d, p) {
return formatUTCMilliseconds(d, p) + "000";
}
function formatUTCMonthNumber(d, p) {
return pad(d.getUTCMonth() + 1, p, 2);
}
function formatUTCMinutes(d, p) {
return pad(d.getUTCMinutes(), p, 2);
}
function formatUTCSeconds(d, p) {
return pad(d.getUTCSeconds(), p, 2);
}
function formatUTCWeekdayNumberMonday(d) {
var dow = d.getUTCDay();
return dow === 0 ? 7 : dow;
}
function formatUTCWeekNumberSunday(d, p) {
return pad(utcSunday.count(utcYear$1(d) - 1, d), p, 2);
}
function UTCdISO(d) {
var day = d.getUTCDay();
return day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);
}
function formatUTCWeekNumberISO(d, p) {
d = UTCdISO(d);
return pad(utcThursday.count(utcYear$1(d), d) + (utcYear$1(d).getUTCDay() === 4), p, 2);
}
function formatUTCWeekdayNumberSunday(d) {
return d.getUTCDay();
}
function formatUTCWeekNumberMonday(d, p) {
return pad(utcMonday.count(utcYear$1(d) - 1, d), p, 2);
}
function formatUTCYear(d, p) {
return pad(d.getUTCFullYear() % 100, p, 2);
}
function formatUTCYearISO(d, p) {
d = UTCdISO(d);
return pad(d.getUTCFullYear() % 100, p, 2);
}
function formatUTCFullYear(d, p) {
return pad(d.getUTCFullYear() % 10000, p, 4);
}
function formatUTCFullYearISO(d, p) {
var day = d.getUTCDay();
d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);
return pad(d.getUTCFullYear() % 10000, p, 4);
}
function formatUTCZone() {
return "+0000";
}
function formatLiteralPercent() {
return "%";
}
function formatUnixTimestamp(d) {
return +d;
}
function formatUnixTimestampSeconds(d) {
return Math.floor(+d / 1000);
}
var locale$1;
var timeFormat$1;
var timeParse$1;
var utcFormat$1;
var utcParse$1;
defaultLocale$1({
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 defaultLocale$1(definition) {
locale$1 = formatLocale(definition);
timeFormat$1 = locale$1.format;
timeParse$1 = locale$1.parse;
utcFormat$1 = locale$1.utcFormat;
utcParse$1 = locale$1.utcParse;
return locale$1;
}
function memoize(method) {
const cache = {};
return spec => cache[spec] || (cache[spec] = method(spec));
}
function trimZeroes(numberFormat, decimalChar) {
return x => {
const str = numberFormat(x),
dec = str.indexOf(decimalChar);
if (dec < 0) return str;
let idx = rightmostDigit(str, dec);
const end = idx < str.length ? str.slice(idx) : '';
while (--idx > dec) if (str[idx] !== '0') {
++idx;
break;
}
return str.slice(0, idx) + end;
};
}
function rightmostDigit(str, dec) {
let i = str.lastIndexOf('e'),
c;
if (i > 0) return i;
for (i = str.length; --i > dec;) {
c = str.charCodeAt(i);
if (c >= 48 && c <= 57) return i + 1; // is digit
}
}
function numberLocale(locale) {
const format = memoize(locale.format),
formatPrefix = locale.formatPrefix;
return {
format,
formatPrefix,
formatFloat(spec) {
const s = formatSpecifier(spec || ',');
if (s.precision == null) {
s.precision = 12;
switch (s.type) {
case '%':
s.precision -= 2;
break;
case 'e':
s.precision -= 1;
break;
}
return trimZeroes(format(s), // number format
format('.1f')(1)[1] // decimal point character
);
} else {
return format(s);
}
},
formatSpan(start, stop, count, specifier) {
specifier = formatSpecifier(specifier == null ? ',f' : specifier);
const step = tickStep(start, stop, count),
value = Math.max(Math.abs(start), Math.abs(stop));
let precision;
if (specifier.precision == null) {
switch (specifier.type) {
case 's':
{
if (!isNaN(precision = precisionPrefix(step, value))) {
specifier.precision = precision;
}
return formatPrefix(specifier, value);
}
case '':
case 'e':
case 'g':
case 'p':
case 'r':
{
if (!isNaN(precision = precisionRound(step, value))) {
specifier.precision = precision - (specifier.type === 'e');
}
break;
}
case 'f':
case '%':
{
if (!isNaN(precision = precisionFixed(step))) {
specifier.precision = precision - (specifier.type === '%') * 2;
}
break;
}
}
}
return format(specifier);
}
};
}
let defaultNumberLocale;
resetNumberFormatDefaultLocale();
function resetNumberFormatDefaultLocale() {
return defaultNumberLocale = numberLocale({
format: format$3,
formatPrefix: formatPrefix
});
}
function numberFormatLocale(definition) {
return numberLocale(formatLocale$1(definition));
}
function numberFormatDefaultLocale(definition) {
return arguments.length ? defaultNumberLocale = numberFormatLocale(definition) : defaultNumberLocale;
}
function timeMultiFormat(format, interval, spec) {
spec = spec || {};
if (!isObject(spec)) {
error(`Invalid time multi-format specifier: ${spec}`);
}
const second = interval(SECONDS),
minute = interval(MINUTES),
hour = interval(HOURS),
day = interval(DATE),
week = interval(WEEK),
month = interval(MONTH),
quarter = interval(QUARTER),
year = interval(YEAR),
L = format(spec[MILLISECONDS] || '.%L'),
S = format(spec[SECONDS] || ':%S'),
M = format(spec[MINUTES] || '%I:%M'),
H = format(spec[HOURS] || '%I %p'),
d = format(spec[DATE] || spec[DAY] || '%a %d'),
w = format(spec[WEEK] || '%b %d'),
m = format(spec[MONTH] || '%B'),
q = format(spec[QUARTER] || '%B'),
y = format(spec[YEAR] || '%Y');
return date => (second(date) < date ? L : minute(date) < date ? S : hour(date) < date ? M : day(date) < date ? H : month(date) < date ? week(date) < date ? d : w : year(date) < date ? quarter(date) < date ? m : q : y)(date);
}
function timeLocale(locale) {
const timeFormat = memoize(locale.format),
utcFormat = memoize(locale.utcFormat);
return {
timeFormat: spec => isString(spec) ? timeFormat(spec) : timeMultiFormat(timeFormat, timeInterval, spec),
utcFormat: spec => isString(spec) ? utcFormat(spec) : timeMultiFormat(utcFormat, utcInterval, spec),
timeParse: memoize(locale.parse),
utcParse: memoize(locale.utcParse)
};
}
let defaultTimeLocale;
resetTimeFormatDefaultLocale();
function resetTimeFormatDefaultLocale() {
return defaultTimeLocale = timeLocale({
format: timeFormat$1,
parse: timeParse$1,
utcFormat: utcFormat$1,
utcParse: utcParse$1
});
}
function timeFormatLocale(definition) {
return timeLocale(formatLocale(definition));
}
function timeFormatDefaultLocale(definition) {
return arguments.length ? defaultTimeLocale = timeFormatLocale(definition) : defaultTimeLocale;
}
const createLocale = (number, time) => extend$1({}, number, time);
function locale(numberSpec, timeSpec) {
const number = numberSpec ? numberFormatLocale(numberSpec) : numberFormatDefaultLocale();
const time = timeSpec ? timeFormatLocale(timeSpec) : timeFormatDefaultLocale();
return createLocale(number, time);
}
function defaultLocale(numberSpec, timeSpec) {
const args = arguments.length;
if (args && args !== 2) {
error('defaultLocale expects either zero or two arguments.');
}
return args ? createLocale(numberFormatDefaultLocale(numberSpec), timeFormatDefaultLocale(timeSpec)) : createLocale(numberFormatDefaultLocale(), timeFormatDefaultLocale());
}
function resetDefaultLocale() {
resetNumberFormatDefaultLocale();
resetTimeFormatDefaultLocale();
return defaultLocale();
}
const protocol_re = /^(data:|([A-Za-z]+:)?\/\/)/; // Matches allowed URIs. From https://github.com/cure53/DOMPurify/blob/master/src/regexp.js with added file://
const allowed_re = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i; // eslint-disable-line no-useless-escape
const whitespace_re = /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g; // eslint-disable-line no-control-regex
// Special treatment in node.js for the file: protocol
const fileProtocol = 'file://';
/**
* Factory for a loader constructor that provides methods for requesting
* files from either the network or disk, and for sanitizing request URIs.
* @param {function} fetch - The Fetch API for HTTP network requests.
* If null or undefined, HTTP loading will be disabled.
* @param {object} fs - The file system interface for file loading.
* If null or undefined, local file loading will be disabled.
* @return {function} A loader constructor with the following signature:
* param {object} [options] - Optional default loading options to use.
* return {object} - A new loader instance.
*/
function loaderFactory(fetch, fs) {
return options => ({
options: options || {},
sanitize: sanitize,
load: load$1,
fileAccess: !!fs,
file: fileLoader(fs),
http: httpLoader(fetch)
});
}
/**
* Load an external resource, typically either from the web or from the local
* filesystem. This function uses {@link sanitize} to first sanitize the uri,
* then calls either {@link http} (for web requests) or {@link file} (for
* filesystem loading).
* @param {string} uri - The resource indicator (e.g., URL or filename).
* @param {object} [options] - Optional loading options. These options will
* override any existing default options.
* @return {Promise} - A promise that resolves to the loaded content.
*/
async function load$1(uri, options) {
const opt = await this.sanitize(uri, options),
url = opt.href;
return opt.localFile ? this.file(url) : this.http(url, options);
}
/**
* URI sanitizer function.
* @param {string} uri - The uri (url or filename) to check.
* @param {object} options - An options hash.
* @return {Promise} - A promise that resolves to an object containing
* sanitized uri data, or rejects it the input uri is deemed invalid.
* The properties of the resolved object are assumed to be
* valid attributes for an HTML 'a' tag. The sanitized uri *must* be
* provided by the 'href' property of the returned object.
*/
async function sanitize(uri, options) {
options = extend$1({}, this.options, options);
const fileAccess = this.fileAccess,
result = {
href: null
};
let isFile, loadFile, base;
const isAllowed = allowed_re.test(uri.replace(whitespace_re, ''));
if (uri == null || typeof uri !== 'string' || !isAllowed) {
error('Sanitize failure, invalid URI: ' + $(uri));
}
const hasProtocol = protocol_re.test(uri); // if relative url (no protocol/host), prepend baseURL
if ((base = options.baseURL) && !hasProtocol) {
// Ensure that there is a slash between the baseURL (e.g. hostname) and url
if (!uri.startsWith('/') && !base.endsWith('/')) {
uri = '/' + uri;
}
uri = base + uri;
} // should we load from file system?
loadFile = (isFile = uri.startsWith(fileProtocol)) || options.mode === 'file' || options.mode !== 'http' && !hasProtocol && fileAccess;
if (isFile) {
// strip file protocol
uri = uri.slice(fileProtocol.length);
} else if (uri.startsWith('//')) {
if (options.defaultProtocol === 'file') {
// if is file, strip protocol and set loadFile flag
uri = uri.slice(2);
loadFile = true;
} else {
// if relative protocol (starts with '//'), prepend default protocol
uri = (options.defaultProtocol || 'http') + ':' + uri;
}
} // set non-enumerable mode flag to indicate local file load
Object.defineProperty(result, 'localFile', {
value: !!loadFile
}); // set uri
result.href = uri; // set default result target, if specified
if (options.target) {
result.target = options.target + '';
} // set default result rel, if specified (#1542)
if (options.rel) {
result.rel = options.rel + '';
} // provide control over cross-origin image handling (#2238)
// https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image
if (options.context === 'image' && options.crossOrigin) {
result.crossOrigin = options.crossOrigin + '';
} // return
return result;
}
/**
* File system loader factory.
* @param {object} fs - The file system interface.
* @return {function} - A file loader with the following signature:
* param {string} filename - The file system path to load.
* param {string} filename - The file system path to load.
* return {Promise} A promise that resolves to the file contents.
*/
function fileLoader(fs) {
return fs ? filename => new Promise((accept, reject) => {
fs.readFile(filename, (error, data) => {
if (error) reject(error);else accept(data);
});
}) : fileReject;
}
/**
* Default file system loader that simply rejects.
*/
async function fileReject() {
error('No file system access.');
}
/**
* HTTP request handler factory.
* @param {function} fetch - The Fetch API method.
* @return {function} - An http loader with the following signature:
* param {string} url - The url to request.
* param {object} options - An options hash.
* return {Promise} - A promise that resolves to the file contents.
*/
function httpLoader(fetch) {
return fetch ? async function (url, options) {
const opt = extend$1({}, this.options.http, options),
type = options && options.response,
response = await fetch(url, opt);
return !response.ok ? error(response.status + '' + response.statusText) : isFunction(response[type]) ? response[type]() : response.text();
} : httpReject;
}
/**
* Default http request handler that simply rejects.
*/
async function httpReject() {
error('No HTTP fetch method available.');
}
const isValid = _ => _ != null && _ === _;
const isBoolean = _ => _ === 'true' || _ === 'false' || _ === true || _ === false;
const isDate = _ => !Number.isNaN(Date.parse(_));
const isNumber = _ => !Number.isNaN(+_) && !(_ instanceof Date);
const isInteger = _ => isNumber(_) && Number.isInteger(+_);
const typeParsers = {
boolean: toBoolean,
integer: toNumber,
number: toNumber,
date: toDate,
string: toString,
unknown: identity$6
};
const typeTests = [isBoolean, isInteger, isNumber, isDate];
const typeList = ['boolean', 'integer', 'number', 'date'];
function inferType(values, field) {
if (!values || !values.length) return 'unknown';
const n = values.length,
m = typeTests.length,
a = typeTests.map((_, i) => i + 1);
for (let i = 0, t = 0, j, value; i < n; ++i) {
value = field ? values[i][field] : values[i];
for (j = 0; j < m; ++j) {
if (a[j] && isValid(value) && !typeTests[j](value)) {
a[j] = 0;
++t;
if (t === typeTests.length) return 'string';
}
}
}
return typeList[a.reduce((u, v) => u === 0 ? v : u, 0) - 1];
}
function inferTypes(data, fields) {
return fields.reduce((types, field) => {
types[field] = inferType(data, field);
return types;
}, {});
}
function delimitedFormat(delimiter) {
const parse = function (data, format) {
const delim = {
delimiter: delimiter
};
return dsv(data, format ? extend$1(format, delim) : delim);
};
parse.responseType = 'text';
return parse;
}
function dsv(data, format) {
if (format.header) {
data = format.header.map($).join(format.delimiter) + '\n' + data;
}
return dsvFormat(format.delimiter).parse(data + '');
}
dsv.responseType = 'text';
function isBuffer(_) {
return typeof Buffer === 'function' && isFunction(Buffer.isBuffer) ? Buffer.isBuffer(_) : false;
}
function json(data, format) {
const prop = format && format.property ? field$1(format.property) : identity$6;
return isObject(data) && !isBuffer(data) ? parseJSON(prop(data), format) : prop(JSON.parse(data));
}
json.responseType = 'json';
function parseJSON(data, format) {
if (!isArray(data) && isIterable(data)) {
data = [...data];
}
return format && format.copy ? JSON.parse(JSON.stringify(data)) : data;
}
const filters = {
interior: (a, b) => a !== b,
exterior: (a, b) => a === b
};
function topojson(data, format) {
let method, object, property, filter;
data = json(data, format);
if (format && format.feature) {
method = feature;
property = format.feature;
} else if (format && format.mesh) {
method = mesh;
property = format.mesh;
filter = filters[format.filter];
} else {
error('Missing TopoJSON feature or mesh parameter.');
}
object = (object = data.objects[property]) ? method(data, object, filter) : error('Invalid TopoJSON object: ' + property);
return object && object.features || [object];
}
topojson.responseType = 'json';
const format$2 = {
dsv: dsv,
csv: delimitedFormat(','),
tsv: delimitedFormat('\t'),
json: json,
topojson: topojson
};
function formats$1(name, reader) {
if (arguments.length > 1) {
format$2[name] = reader;
return this;
} else {
return has$1(format$2, name) ? format$2[name] : null;
}
}
function responseType(type) {
const f = formats$1(type);
return f && f.responseType || 'text';
}
function read(data, schema, timeParser, utcParser) {
schema = schema || {};
const reader = formats$1(schema.type || 'json');
if (!reader) error('Unknown data format type: ' + schema.type);
data = reader(data, schema);
if (schema.parse) parse$5(data, schema.parse, timeParser, utcParser);
if (has$1(data, 'columns')) delete data.columns;
return data;
}
function parse$5(data, types, timeParser, utcParser) {
if (!data.length) return; // early exit for empty data
const locale = timeFormatDefaultLocale();
timeParser = timeParser || locale.timeParse;
utcParser = utcParser || locale.utcParse;
let fields = data.columns || Object.keys(data[0]),
datum,
field,
i,
j,
n,
m;
if (types === 'auto') types = inferTypes(data, fields);
fields = Object.keys(types);
const parsers = fields.map(field => {
const type = types[field];
let parts, pattern;
if (type && (type.startsWith('date:') || type.startsWith('utc:'))) {
parts = type.split(/:(.+)?/, 2); // split on first :
pattern = parts[1];
if (pattern[0] === '\'' && pattern[pattern.length - 1] === '\'' || pattern[0] === '"' && pattern[pattern.length - 1] === '"') {
pattern = pattern.slice(1, -1);
}
const parse = parts[0] === 'utc' ? utcParser : timeParser;
return parse(pattern);
}
if (!typeParsers[type]) {
throw Error('Illegal format pattern: ' + field + ':' + type);
}
return typeParsers[type];
});
for (i = 0, n = data.length, m = fields.length; i < n; ++i) {
datum = data[i];
for (j = 0; j < m; ++j) {
field = fields[j];
datum[field] = parsers[j](datum[field]);
}
}
}
const loader = loaderFactory(typeof fetch !== 'undefined' && fetch, // use built-in fetch API
null // no file system access
);
function UniqueList(idFunc) {
const $ = idFunc || identity$6,
list = [],
ids = {};
list.add = _ => {
const id = $(_);
if (!ids[id]) {
ids[id] = 1;
list.push(_);
}
return list;
};
list.remove = _ => {
const id = $(_);
if (ids[id]) {
ids[id] = 0;
const idx = list.indexOf(_);
if (idx >= 0) list.splice(idx, 1);
}
return list;
};
return list;
}
/**
* Invoke and await a potentially async callback function. If
* an error occurs, trap it and route to Dataflow.error.
* @param {Dataflow} df - The dataflow instance
* @param {function} callback - A callback function to invoke
* and then await. The dataflow will be passed as the single
* argument to the function.
*/
async function asyncCallback(df, callback) {
try {
await callback(df);
} catch (err) {
df.error(err);
}
}
const TUPLE_ID_KEY = Symbol('vega_id');
let TUPLE_ID = 1;
/**
* Checks if an input value is a registered tuple.
* @param {*} t - The value to check.
* @return {boolean} True if the input is a tuple, false otherwise.
*/
function isTuple(t) {
return !!(t && tupleid(t));
}
/**
* Returns the id of a tuple.
* @param {object} t - The input tuple.
* @return {*} the tuple id.
*/
function tupleid(t) {
return t[TUPLE_ID_KEY];
}
/**
* Sets the id of a tuple.
* @param {object} t - The input tuple.
* @param {*} id - The id value to set.
* @return {object} the input tuple.
*/
function setid(t, id) {
t[TUPLE_ID_KEY] = id;
return t;
}
/**
* Ingest an object or value as a data tuple.
* If the input value is an object, an id field will be added to it. For
* efficiency, the input object is modified directly. A copy is not made.
* If the input value is a literal, it will be wrapped in a new object
* instance, with the value accessible as the 'data' property.
* @param datum - The value to ingest.
* @return {object} The ingested data tuple.
*/
function ingest$1(datum) {
const t = datum === Object(datum) ? datum : {
data: datum
};
return tupleid(t) ? t : setid(t, TUPLE_ID++);
}
/**
* Given a source tuple, return a derived copy.
* @param {object} t - The source tuple.
* @return {object} The derived tuple.
*/
function derive(t) {
return rederive(t, ingest$1({}));
}
/**
* Rederive a derived tuple by copying values from the source tuple.
* @param {object} t - The source tuple.
* @param {object} d - The derived tuple.
* @return {object} The derived tuple.
*/
function rederive(t, d) {
for (const k in t) d[k] = t[k];
return d;
}
/**
* Replace an existing tuple with a new tuple.
* @param {object} t - The existing data tuple.
* @param {object} d - The new tuple that replaces the old.
* @return {object} The new tuple.
*/
function replace$1(t, d) {
return setid(d, tupleid(t));
}
/**
* Generate an augmented comparator function that provides stable
* sorting by tuple id when the given comparator produces ties.
* @param {function} cmp - The comparator to augment.
* @param {function} [f] - Optional tuple accessor function.
* @return {function} An augmented comparator function.
*/
function stableCompare(cmp, f) {
return !cmp ? null : f ? (a, b) => cmp(a, b) || tupleid(f(a)) - tupleid(f(b)) : (a, b) => cmp(a, b) || tupleid(a) - tupleid(b);
}
function isChangeSet(v) {
return v && v.constructor === changeset;
}
function changeset() {
const add = [],
// insert tuples
rem = [],
// remove tuples
mod = [],
// modify tuples
remp = [],
// remove by predicate
modp = []; // modify by predicate
let clean = null,
reflow = false;
return {
constructor: changeset,
insert(t) {
const d = array$5(t),
n = d.length;
for (let i = 0; i < n; ++i) add.push(d[i]);
return this;
},
remove(t) {
const a = isFunction(t) ? remp : rem,
d = array$5(t),
n = d.length;
for (let i = 0; i < n; ++i) a.push(d[i]);
return this;
},
modify(t, field, value) {
const m = {
field: field,
value: constant$4(value)
};
if (isFunction(t)) {
m.filter = t;
modp.push(m);
} else {
m.tuple = t;
mod.push(m);
}
return this;
},
encode(t, set) {
if (isFunction(t)) modp.push({
filter: t,
field: set
});else mod.push({
tuple: t,
field: set
});
return this;
},
clean(value) {
clean = value;
return this;
},
reflow() {
reflow = true;
return this;
},
pulse(pulse, tuples) {
const cur = {},
out = {};
let i, n, m, f, t, id; // build lookup table of current tuples
for (i = 0, n = tuples.length; i < n; ++i) {
cur[tupleid(tuples[i])] = 1;
} // process individual tuples to remove
for (i = 0, n = rem.length; i < n; ++i) {
t = rem[i];
cur[tupleid(t)] = -1;
} // process predicate-based removals
for (i = 0, n = remp.length; i < n; ++i) {
f = remp[i];
tuples.forEach(t => {
if (f(t)) cur[tupleid(t)] = -1;
});
} // process all add tuples
for (i = 0, n = add.length; i < n; ++i) {
t = add[i];
id = tupleid(t);
if (cur[id]) {
// tuple already resides in dataset
// if flagged for both add and remove, cancel
cur[id] = 1;
} else {
// tuple does not reside in dataset, add
pulse.add.push(ingest$1(add[i]));
}
} // populate pulse rem list
for (i = 0, n = tuples.length; i < n; ++i) {
t = tuples[i];
if (cur[tupleid(t)] < 0) pulse.rem.push(t);
} // modify helper method
function modify(t, f, v) {
if (v) {
t[f] = v(t);
} else {
pulse.encode = f;
}
if (!reflow) out[tupleid(t)] = t;
} // process individual tuples to modify
for (i = 0, n = mod.length; i < n; ++i) {
m = mod[i];
t = m.tuple;
f = m.field;
id = cur[tupleid(t)];
if (id > 0) {
modify(t, f, m.value);
pulse.modifies(f);
}
} // process predicate-based modifications
for (i = 0, n = modp.length; i < n; ++i) {
m = modp[i];
f = m.filter;
tuples.forEach(t => {
if (f(t) && cur[tupleid(t)] > 0) {
modify(t, m.field, m.value);
}
});
pulse.modifies(m.field);
} // upon reflow request, populate mod with all non-removed tuples
// otherwise, populate mod with modified tuples only
if (reflow) {
pulse.mod = rem.length || remp.length ? tuples.filter(t => cur[tupleid(t)] > 0) : tuples.slice();
} else {
for (id in out) pulse.mod.push(out[id]);
} // set pulse garbage collection request
if (clean || clean == null && (rem.length || remp.length)) {
pulse.clean(true);
}
return pulse;
}
};
}
const CACHE = '_:mod:_';
/**
* Hash that tracks modifications to assigned values.
* Callers *must* use the set method to update values.
*/
function Parameters() {
Object.defineProperty(this, CACHE, {
writable: true,
value: {}
});
}
Parameters.prototype = {
/**
* Set a parameter value. If the parameter value changes, the parameter
* will be recorded as modified.
* @param {string} name - The parameter name.
* @param {number} index - The index into an array-value parameter. Ignored if
* the argument is undefined, null or less than zero.
* @param {*} value - The parameter value to set.
* @param {boolean} [force=false] - If true, records the parameter as modified
* even if the value is unchanged.
* @return {Parameters} - This parameter object.
*/
set(name, index, value, force) {
const o = this,
v = o[name],
mod = o[CACHE];
if (index != null && index >= 0) {
if (v[index] !== value || force) {
v[index] = value;
mod[index + ':' + name] = -1;
mod[name] = -1;
}
} else if (v !== value || force) {
o[name] = value;
mod[name] = isArray(value) ? 1 + value.length : -1;
}
return o;
},
/**
* Tests if one or more parameters has been modified. If invoked with no
* arguments, returns true if any parameter value has changed. If the first
* argument is array, returns trues if any parameter name in the array has
* changed. Otherwise, tests if the given name and optional array index has
* changed.
* @param {string} name - The parameter name to test.
* @param {number} [index=undefined] - The parameter array index to test.
* @return {boolean} - Returns true if a queried parameter was modified.
*/
modified(name, index) {
const mod = this[CACHE];
if (!arguments.length) {
for (const k in mod) {
if (mod[k]) return true;
}
return false;
} else if (isArray(name)) {
for (let k = 0; k < name.length; ++k) {
if (mod[name[k]]) return true;
}
return false;
}
return index != null && index >= 0 ? index + 1 < mod[name] || !!mod[index + ':' + name] : !!mod[name];
},
/**
* Clears the modification records. After calling this method,
* all parameters are considered unmodified.
*/
clear() {
this[CACHE] = {};
return this;
}
};
let OP_ID = 0;
const PULSE = 'pulse',
NO_PARAMS = new Parameters(); // Boolean Flags
const SKIP$1$1 = 1,
MODIFIED = 2;
/**
* An Operator is a processing node in a dataflow graph.
* Each operator stores a value and an optional value update function.
* Operators can accept a hash of named parameters. Parameter values can
* either be direct (JavaScript literals, arrays, objects) or indirect
* (other operators whose values will be pulled dynamically). Operators
* included as parameters will have this operator added as a dependency.
* @constructor
* @param {*} [init] - The initial value for this operator.
* @param {function(object, Pulse)} [update] - An update function. Upon
* evaluation of this operator, the update function will be invoked and the
* return value will be used as the new value of this operator.
* @param {object} [params] - The parameters for this operator.
* @param {boolean} [react=true] - Flag indicating if this operator should
* listen for changes to upstream operators included as parameters.
* @see parameters
*/
function Operator(init, update, params, react) {
this.id = ++OP_ID;
this.value = init;
this.stamp = -1;
this.rank = -1;
this.qrank = -1;
this.flags = 0;
if (update) {
this._update = update;
}
if (params) this.parameters(params, react);
}
function flag(bit) {
return function (state) {
const f = this.flags;
if (arguments.length === 0) return !!(f & bit);
this.flags = state ? f | bit : f & ~bit;
return this;
};
}
Operator.prototype = {
/**
* Returns a list of target operators dependent on this operator.
* If this list does not exist, it is created and then returned.
* @return {UniqueList}
*/
targets() {
return this._targets || (this._targets = UniqueList(id));
},
/**
* Sets the value of this operator.
* @param {*} value - the value to set.
* @return {Number} Returns 1 if the operator value has changed
* according to strict equality, returns 0 otherwise.
*/
set(value) {
if (this.value !== value) {
this.value = value;
return 1;
} else {
return 0;
}
},
/**
* Indicates that operator evaluation should be skipped on the next pulse.
* This operator will still propagate incoming pulses, but its update function
* will not be invoked. The skip flag is reset after every pulse, so calling
* this method will affect processing of the next pulse only.
*/
skip: flag(SKIP$1$1),
/**
* Indicates that this operator's value has been modified on its most recent
* pulse. Normally modification is checked via strict equality; however, in
* some cases it is more efficient to update the internal state of an object.
* In those cases, the modified flag can be used to trigger propagation. Once
* set, the modification flag persists across pulses until unset. The flag can
* be used with the last timestamp to test if a modification is recent.
*/
modified: flag(MODIFIED),
/**
* Sets the parameters for this operator. The parameter values are analyzed for
* operator instances. If found, this operator will be added as a dependency
* of the parameterizing operator. Operator values are dynamically marshalled
* from each operator parameter prior to evaluation. If a parameter value is
* an array, the array will also be searched for Operator instances. However,
* the search does not recurse into sub-arrays or object properties.
* @param {object} params - A hash of operator parameters.
* @param {boolean} [react=true] - A flag indicating if this operator should
* automatically update (react) when parameter values change. In other words,
* this flag determines if the operator registers itself as a listener on
* any upstream operators included in the parameters.
* @param {boolean} [initonly=false] - A flag indicating if this operator
* should calculate an update only upon its initiatal evaluation, then
* deregister dependencies and suppress all future update invocations.
* @return {Operator[]} - An array of upstream dependencies.
*/
parameters(params, react, initonly) {
react = react !== false;
const argval = this._argval = this._argval || new Parameters(),
argops = this._argops = this._argops || [],
deps = [];
let name, value, n, i;
const add = (name, index, value) => {
if (value instanceof Operator) {
if (value !== this) {
if (react) value.targets().add(this);
deps.push(value);
}
argops.push({
op: value,
name: name,
index: index
});
} else {
argval.set(name, index, value);
}
};
for (name in params) {
value = params[name];
if (name === PULSE) {
array$5(value).forEach(op => {
if (!(op instanceof Operator)) {
error('Pulse parameters must be operator instances.');
} else if (op !== this) {
op.targets().add(this);
deps.push(op);
}
});
this.source = value;
} else if (isArray(value)) {
argval.set(name, -1, Array(n = value.length));
for (i = 0; i < n; ++i) add(name, i, value[i]);
} else {
add(name, -1, value);
}
}
this.marshall().clear(); // initialize values
if (initonly) argops.initonly = true;
return deps;
},
/**
* Internal method for marshalling parameter values.
* Visits each operator dependency to pull the latest value.
* @return {Parameters} A Parameters object to pass to the update function.
*/
marshall(stamp) {
const argval = this._argval || NO_PARAMS,
argops = this._argops;
let item, i, op, mod;
if (argops) {
const n = argops.length;
for (i = 0; i < n; ++i) {
item = argops[i];
op = item.op;
mod = op.modified() && op.stamp === stamp;
argval.set(item.name, item.index, op.value, mod);
}
if (argops.initonly) {
for (i = 0; i < n; ++i) {
item = argops[i];
item.op.targets().remove(this);
}
this._argops = null;
this._update = null;
}
}
return argval;
},
/**
* Detach this operator from the dataflow.
* Unregisters listeners on upstream dependencies.
*/
detach() {
const argops = this._argops;
let i, n, item, op;
if (argops) {
for (i = 0, n = argops.length; i < n; ++i) {
item = argops[i];
op = item.op;
if (op._targets) {
op._targets.remove(this);
}
}
} // remove references to the source and pulse object,
// if present, to prevent memory leaks of old data.
this.pulse = null;
this.source = null;
},
/**
* Delegate method to perform operator processing.
* Subclasses can override this method to perform custom processing.
* By default, it marshalls parameters and calls the update function
* if that function is defined. If the update function does not
* change the operator value then StopPropagation is returned.
* If no update function is defined, this method does nothing.
* @param {Pulse} pulse - the current dataflow pulse.
* @return The output pulse or StopPropagation. A falsy return value
* (including undefined) will let the input pulse pass through.
*/
evaluate(pulse) {
const update = this._update;
if (update) {
const params = this.marshall(pulse.stamp),
v = update.call(this, params, pulse);
params.clear();
if (v !== this.value) {
this.value = v;
} else if (!this.modified()) {
return pulse.StopPropagation;
}
}
},
/**
* Run this operator for the current pulse. If this operator has already
* been run at (or after) the pulse timestamp, returns StopPropagation.
* Internally, this method calls {@link evaluate} to perform processing.
* If {@link evaluate} returns a falsy value, the input pulse is returned.
* This method should NOT be overridden, instead overrride {@link evaluate}.
* @param {Pulse} pulse - the current dataflow pulse.
* @return the output pulse for this operator (or StopPropagation)
*/
run(pulse) {
if (pulse.stamp < this.stamp) return pulse.StopPropagation;
let rv;
if (this.skip()) {
this.skip(false);
rv = 0;
} else {
rv = this.evaluate(pulse);
}
return this.pulse = rv || pulse;
}
};
/**
* Add an operator to the dataflow graph. This function accepts a
* variety of input argument types. The basic signature supports an
* initial value, update function and parameters. If the first parameter
* is an Operator instance, it will be added directly. If it is a
* constructor for an Operator subclass, a new instance will be instantiated.
* Otherwise, if the first parameter is a function instance, it will be used
* as the update function and a null initial value is assumed.
* @param {*} init - One of: the operator to add, the initial value of
* the operator, an operator class to instantiate, or an update function.
* @param {function} [update] - The operator update function.
* @param {object} [params] - The operator parameters.
* @param {boolean} [react=true] - Flag indicating if this operator should
* listen for changes to upstream operators included as parameters.
* @return {Operator} - The added operator.
*/
function add$3(init, update, params, react) {
let shift = 1,
op;
if (init instanceof Operator) {
op = init;
} else if (init && init.prototype instanceof Operator) {
op = new init();
} else if (isFunction(init)) {
op = new Operator(null, init);
} else {
shift = 0;
op = new Operator(init, update);
}
this.rank(op);
if (shift) {
react = params;
params = update;
}
if (params) this.connect(op, op.parameters(params, react));
this.touch(op);
return op;
}
/**
* Connect a target operator as a dependent of source operators.
* If necessary, this method will rerank the target operator and its
* dependents to ensure propagation proceeds in a topologically sorted order.
* @param {Operator} target - The target operator.
* @param {Array<Operator>} - The source operators that should propagate
* to the target operator.
*/
function connect(target, sources) {
const targetRank = target.rank,
n = sources.length;
for (let i = 0; i < n; ++i) {
if (targetRank < sources[i].rank) {
this.rerank(target);
return;
}
}
}
let STREAM_ID = 0;
/**
* Models an event stream.
* @constructor
* @param {function(Object, number): boolean} [filter] - Filter predicate.
* Events pass through when truthy, events are suppressed when falsy.
* @param {function(Object): *} [apply] - Applied to input events to produce
* new event values.
* @param {function(Object)} [receive] - Event callback function to invoke
* upon receipt of a new event. Use to override standard event processing.
*/
function EventStream(filter, apply, receive) {
this.id = ++STREAM_ID;
this.value = null;
if (receive) this.receive = receive;
if (filter) this._filter = filter;
if (apply) this._apply = apply;
}
/**
* Creates a new event stream instance with the provided
* (optional) filter, apply and receive functions.
* @param {function(Object, number): boolean} [filter] - Filter predicate.
* Events pass through when truthy, events are suppressed when falsy.
* @param {function(Object): *} [apply] - Applied to input events to produce
* new event values.
* @see EventStream
*/
function stream(filter, apply, receive) {
return new EventStream(filter, apply, receive);
}
EventStream.prototype = {
_filter: truthy,
_apply: identity$6,
targets() {
return this._targets || (this._targets = UniqueList(id));
},
consume(_) {
if (!arguments.length) return !!this._consume;
this._consume = !!_;
return this;
},
receive(evt) {
if (this._filter(evt)) {
const val = this.value = this._apply(evt),
trg = this._targets,
n = trg ? trg.length : 0;
for (let i = 0; i < n; ++i) trg[i].receive(val);
if (this._consume) {
evt.preventDefault();
evt.stopPropagation();
}
}
},
filter(filter) {
const s = stream(filter);
this.targets().add(s);
return s;
},
apply(apply) {
const s = stream(null, apply);
this.targets().add(s);
return s;
},
merge() {
const s = stream();
this.targets().add(s);
for (let i = 0, n = arguments.length; i < n; ++i) {
arguments[i].targets().add(s);
}
return s;
},
throttle(pause) {
let t = -1;
return this.filter(() => {
const now = Date.now();
if (now - t > pause) {
t = now;
return 1;
} else {
return 0;
}
});
},
debounce(delay) {
const s = stream();
this.targets().add(stream(null, null, debounce(delay, e => {
const df = e.dataflow;
s.receive(e);
if (df && df.run) df.run();
})));
return s;
},
between(a, b) {
let active = false;
a.targets().add(stream(null, null, () => active = true));
b.targets().add(stream(null, null, () => active = false));
return this.filter(() => active);
},
detach() {
// ensures compatibility with operators (#2753)
// remove references to other streams and filter functions that may
// be bound to subcontexts that need to be garbage collected.
this._filter = truthy;
this._targets = null;
}
};
/**
* Create a new event stream from an event source.
* @param {object} source - The event source to monitor. The input must
* support the addEventListener method.
* @param {string} type - The event type.
* @param {function(object): boolean} [filter] - Event filter function.
* @param {function(object): *} [apply] - Event application function.
* If provided, this function will be invoked and the result will be
* used as the downstream event value.
* @return {EventStream}
*/
function events$1(source, type, filter, apply) {
const df = this,
s = stream(filter, apply),
send = function (e) {
e.dataflow = df;
try {
s.receive(e);
} catch (error) {
df.error(error);
} finally {
df.run();
}
};
let sources;
if (typeof source === 'string' && typeof document !== 'undefined') {
sources = document.querySelectorAll(source);
} else {
sources = array$5(source);
}
const n = sources.length;
for (let i = 0; i < n; ++i) {
sources[i].addEventListener(type, send);
}
return s;
}
function parse$4(data, format) {
const locale = this.locale();
return read(data, format, locale.timeParse, locale.utcParse);
}
/**
* Ingests new data into the dataflow. First parses the data using the
* vega-loader read method, then pulses a changeset to the target operator.
* @param {Operator} target - The Operator to target with ingested data,
* typically a Collect transform instance.
* @param {*} data - The input data, prior to parsing. For JSON this may
* be a string or an object. For CSV, TSV, etc should be a string.
* @param {object} format - The data format description for parsing
* loaded data. This object is passed to the vega-loader read method.
* @returns {Dataflow}
*/
function ingest(target, data, format) {
data = this.parse(data, format);
return this.pulse(target, this.changeset().insert(data));
}
/**
* Request data from an external source, parse it, and return a Promise.
* @param {string} url - The URL from which to load the data. This string
* is passed to the vega-loader load method.
* @param {object} [format] - The data format description for parsing
* loaded data. This object is passed to the vega-loader read method.
* @return {Promise} A Promise that resolves upon completion of the request.
* The resolved object contains the following properties:
* - data: an array of parsed data (or null upon error)
* - status: a code for success (0), load fail (-1), or parse fail (-2)
*/
async function request(url, format) {
const df = this;
let status = 0,
data;
try {
data = await df.loader().load(url, {
context: 'dataflow',
response: responseType(format && format.type)
});
try {
data = df.parse(data, format);
} catch (err) {
status = -2;
df.warn('Data ingestion failed', url, err);
}
} catch (err) {
status = -1;
df.warn('Loading failed', url, err);
}
return {
data,
status
};
}
async function preload(target, url, format) {
const df = this,
pending = df._pending || loadPending(df);
pending.requests += 1;
const res = await df.request(url, format);
df.pulse(target, df.changeset().remove(truthy).insert(res.data || []));
pending.done();
return res;
}
function loadPending(df) {
let accept;
const pending = new Promise(a => accept = a);
pending.requests = 0;
pending.done = () => {
if (--pending.requests === 0) {
df._pending = null;
accept(df);
}
};
return df._pending = pending;
}
const SKIP$2 = {
skip: true
};
/**
* Perform operator updates in response to events. Applies an
* update function to compute a new operator value. If the update function
* returns a {@link ChangeSet}, the operator will be pulsed with those tuple
* changes. Otherwise, the operator value will be updated to the return value.
* @param {EventStream|Operator} source - The event source to react to.
* This argument can be either an EventStream or an Operator.
* @param {Operator|function(object):Operator} target - The operator to update.
* This argument can either be an Operator instance or (if the source
* argument is an EventStream), a function that accepts an event object as
* input and returns an Operator to target.
* @param {function(Parameters,Event): *} [update] - Optional update function
* to compute the new operator value, or a literal value to set. Update
* functions expect to receive a parameter object and event as arguments.
* This function can either return a new operator value or (if the source
* argument is an EventStream) a {@link ChangeSet} instance to pulse
* the target operator with tuple changes.
* @param {object} [params] - The update function parameters.
* @param {object} [options] - Additional options hash. If not overridden,
* updated operators will be skipped by default.
* @param {boolean} [options.skip] - If true, the operator will
* be skipped: it will not be evaluated, but its dependents will be.
* @param {boolean} [options.force] - If true, the operator will
* be re-evaluated even if its value has not changed.
* @return {Dataflow}
*/
function on(source, target, update, params, options) {
const fn = source instanceof Operator ? onOperator : onStream;
fn(this, source, target, update, params, options);
return this;
}
function onStream(df, stream, target, update, params, options) {
const opt = extend$1({}, options, SKIP$2);
let func, op;
if (!isFunction(target)) target = constant$4(target);
if (update === undefined) {
func = e => df.touch(target(e));
} else if (isFunction(update)) {
op = new Operator(null, update, params, false);
func = e => {
op.evaluate(e);
const t = target(e),
v = op.value;
isChangeSet(v) ? df.pulse(t, v, options) : df.update(t, v, opt);
};
} else {
func = e => df.update(target(e), update, opt);
}
stream.apply(func);
}
function onOperator(df, source, target, update, params, options) {
if (update === undefined) {
source.targets().add(target);
} else {
const opt = options || {},
op = new Operator(null, updater(target, update), params, false);
op.modified(opt.force);
op.rank = source.rank; // immediately follow source
source.targets().add(op); // add dependency
if (target) {
op.skip(true); // skip first invocation
op.value = target.value; // initialize value
op.targets().add(target); // chain dependencies
df.connect(target, [op]); // rerank as needed, #1672
}
}
}
function updater(target, update) {
update = isFunction(update) ? update : constant$4(update);
return target ? function (_, pulse) {
const value = update(_, pulse);
if (!target.skip()) {
target.skip(value !== this.value).value = value;
}
return value;
} : update;
}
/**
* Assigns a rank to an operator. Ranks are assigned in increasing order
* by incrementing an internal rank counter.
* @param {Operator} op - The operator to assign a rank.
*/
function rank(op) {
op.rank = ++this._rank;
}
/**
* Re-ranks an operator and all downstream target dependencies. This
* is necessary when upstream dependencies of higher rank are added to
* a target operator.
* @param {Operator} op - The operator to re-rank.
*/
function rerank(op) {
const queue = [op];
let cur, list, i;
while (queue.length) {
this.rank(cur = queue.pop());
if (list = cur._targets) {
for (i = list.length; --i >= 0;) {
queue.push(cur = list[i]);
if (cur === op) error('Cycle detected in dataflow graph.');
}
}
}
}
/**
* Sentinel value indicating pulse propagation should stop.
*/
const StopPropagation = {}; // Pulse visit type flags
const ADD = 1 << 0,
REM = 1 << 1,
MOD$1 = 1 << 2,
ADD_REM = ADD | REM,
ADD_MOD = ADD | MOD$1,
ALL = ADD | REM | MOD$1,
REFLOW = 1 << 3,
SOURCE = 1 << 4,
NO_SOURCE = 1 << 5,
NO_FIELDS = 1 << 6;
/**
* A Pulse enables inter-operator communication during a run of the
* dataflow graph. In addition to the current timestamp, a pulse may also
* contain a change-set of added, removed or modified data tuples, as well as
* a pointer to a full backing data source. Tuple change sets may not
* be fully materialized; for example, to prevent needless array creation
* a change set may include larger arrays and corresponding filter functions.
* The pulse provides a {@link visit} method to enable proper and efficient
* iteration over requested data tuples.
*
* In addition, each pulse can track modification flags for data tuple fields.
* Responsible transform operators should call the {@link modifies} method to
* indicate changes to data fields. The {@link modified} method enables
* querying of this modification state.
*
* @constructor
* @param {Dataflow} dataflow - The backing dataflow instance.
* @param {number} stamp - The current propagation timestamp.
* @param {string} [encode] - An optional encoding set name, which is then
* accessible as Pulse.encode. Operators can respond to (or ignore) this
* setting as appropriate. This parameter can be used in conjunction with
* the Encode transform in the vega-encode module.
*/
function Pulse(dataflow, stamp, encode) {
this.dataflow = dataflow;
this.stamp = stamp == null ? -1 : stamp;
this.add = [];
this.rem = [];
this.mod = [];
this.fields = null;
this.encode = encode || null;
}
function materialize(data, filter) {
const out = [];
visitArray(data, filter, _ => out.push(_));
return out;
}
function filter$1(pulse, flags) {
const map = {};
pulse.visit(flags, t => {
map[tupleid(t)] = 1;
});
return t => map[tupleid(t)] ? null : t;
}
function addFilter(a, b) {
return a ? (t, i) => a(t, i) && b(t, i) : b;
}
Pulse.prototype = {
/**
* Sentinel value indicating pulse propagation should stop.
*/
StopPropagation,
/**
* Boolean flag indicating ADD (added) tuples.
*/
ADD,
/**
* Boolean flag indicating REM (removed) tuples.
*/
REM,
/**
* Boolean flag indicating MOD (modified) tuples.
*/
MOD: MOD$1,
/**
* Boolean flag indicating ADD (added) and REM (removed) tuples.
*/
ADD_REM,
/**
* Boolean flag indicating ADD (added) and MOD (modified) tuples.
*/
ADD_MOD,
/**
* Boolean flag indicating ADD, REM and MOD tuples.
*/
ALL,
/**
* Boolean flag indicating all tuples in a data source
* except for the ADD, REM and MOD tuples.
*/
REFLOW,
/**
* Boolean flag indicating a 'pass-through' to a
* backing data source, ignoring ADD, REM and MOD tuples.
*/
SOURCE,
/**
* Boolean flag indicating that source data should be
* suppressed when creating a forked pulse.
*/
NO_SOURCE,
/**
* Boolean flag indicating that field modifications should be
* suppressed when creating a forked pulse.
*/
NO_FIELDS,
/**
* Creates a new pulse based on the values of this pulse.
* The dataflow, time stamp and field modification values are copied over.
* By default, new empty ADD, REM and MOD arrays are created.
* @param {number} flags - Integer of boolean flags indicating which (if any)
* tuple arrays should be copied to the new pulse. The supported flag values
* are ADD, REM and MOD. Array references are copied directly: new array
* instances are not created.
* @return {Pulse} - The forked pulse instance.
* @see init
*/
fork(flags) {
return new Pulse(this.dataflow).init(this, flags);
},
/**
* Creates a copy of this pulse with new materialized array
* instances for the ADD, REM, MOD, and SOURCE arrays.
* The dataflow, time stamp and field modification values are copied over.
* @return {Pulse} - The cloned pulse instance.
* @see init
*/
clone() {
const p = this.fork(ALL);
p.add = p.add.slice();
p.rem = p.rem.slice();
p.mod = p.mod.slice();
if (p.source) p.source = p.source.slice();
return p.materialize(ALL | SOURCE);
},
/**
* Returns a pulse that adds all tuples from a backing source. This is
* useful for cases where operators are added to a dataflow after an
* upstream data pipeline has already been processed, ensuring that
* new operators can observe all tuples within a stream.
* @return {Pulse} - A pulse instance with all source tuples included
* in the add array. If the current pulse already has all source
* tuples in its add array, it is returned directly. If the current
* pulse does not have a backing source, it is returned directly.
*/
addAll() {
let p = this;
const reuse = !p.source || p.add === p.rem // special case for indexed set (e.g., crossfilter)
|| !p.rem.length && p.source.length === p.add.length;
if (reuse) {
return p;
} else {
p = new Pulse(this.dataflow).init(this);
p.add = p.source;
p.rem = []; // new operators can ignore rem #2769
return p;
}
},
/**
* Initialize this pulse based on the values of another pulse. This method
* is used internally by {@link fork} to initialize a new forked tuple.
* The dataflow, time stamp and field modification values are copied over.
* By default, new empty ADD, REM and MOD arrays are created.
* @param {Pulse} src - The source pulse to copy from.
* @param {number} flags - Integer of boolean flags indicating which (if any)
* tuple arrays should be copied to the new pulse. The supported flag values
* are ADD, REM and MOD. Array references are copied directly: new array
* instances are not created. By default, source data arrays are copied
* to the new pulse. Use the NO_SOURCE flag to enforce a null source.
* @return {Pulse} - Returns this Pulse instance.
*/
init(src, flags) {
const p = this;
p.stamp = src.stamp;
p.encode = src.encode;
if (src.fields && !(flags & NO_FIELDS)) {
p.fields = src.fields;
}
if (flags & ADD) {
p.addF = src.addF;
p.add = src.add;
} else {
p.addF = null;
p.add = [];
}
if (flags & REM) {
p.remF = src.remF;
p.rem = src.rem;
} else {
p.remF = null;
p.rem = [];
}
if (flags & MOD$1) {
p.modF = src.modF;
p.mod = src.mod;
} else {
p.modF = null;
p.mod = [];
}
if (flags & NO_SOURCE) {
p.srcF = null;
p.source = null;
} else {
p.srcF = src.srcF;
p.source = src.source;
if (src.cleans) p.cleans = src.cleans;
}
return p;
},
/**
* Schedules a function to run after pulse propagation completes.
* @param {function} func - The function to run.
*/
runAfter(func) {
this.dataflow.runAfter(func);
},
/**
* Indicates if tuples have been added, removed or modified.
* @param {number} [flags] - The tuple types (ADD, REM or MOD) to query.
* Defaults to ALL, returning true if any tuple type has changed.
* @return {boolean} - Returns true if one or more queried tuple types have
* changed, false otherwise.
*/
changed(flags) {
const f = flags || ALL;
return f & ADD && this.add.length || f & REM && this.rem.length || f & MOD$1 && this.mod.length;
},
/**
* Forces a "reflow" of tuple values, such that all tuples in the backing
* source are added to the MOD set, unless already present in the ADD set.
* @param {boolean} [fork=false] - If true, returns a forked copy of this
* pulse, and invokes reflow on that derived pulse.
* @return {Pulse} - The reflowed pulse instance.
*/
reflow(fork) {
if (fork) return this.fork(ALL).reflow();
const len = this.add.length,
src = this.source && this.source.length;
if (src && src !== len) {
this.mod = this.source;
if (len) this.filter(MOD$1, filter$1(this, ADD));
}
return this;
},
/**
* Get/set metadata to pulse requesting garbage collection
* to reclaim currently unused resources.
*/
clean(value) {
if (arguments.length) {
this.cleans = !!value;
return this;
} else {
return this.cleans;
}
},
/**
* Marks one or more data field names as modified to assist dependency
* tracking and incremental processing by transform operators.
* @param {string|Array<string>} _ - The field(s) to mark as modified.
* @return {Pulse} - This pulse instance.
*/
modifies(_) {
const hash = this.fields || (this.fields = {});
if (isArray(_)) {
_.forEach(f => hash[f] = true);
} else {
hash[_] = true;
}
return this;
},
/**
* Checks if one or more data fields have been modified during this pulse
* propagation timestamp.
* @param {string|Array<string>} _ - The field(s) to check for modified.
* @param {boolean} nomod - If true, will check the modified flag even if
* no mod tuples exist. If false (default), mod tuples must be present.
* @return {boolean} - Returns true if any of the provided fields has been
* marked as modified, false otherwise.
*/
modified(_, nomod) {
const fields = this.fields;
return !((nomod || this.mod.length) && fields) ? false : !arguments.length ? !!fields : isArray(_) ? _.some(f => fields[f]) : fields[_];
},
/**
* Adds a filter function to one more tuple sets. Filters are applied to
* backing tuple arrays, to determine the actual set of tuples considered
* added, removed or modified. They can be used to delay materialization of
* a tuple set in order to avoid expensive array copies. In addition, the
* filter functions can serve as value transformers: unlike standard predicate
* function (which return boolean values), Pulse filters should return the
* actual tuple value to process. If a tuple set is already filtered, the
* new filter function will be appended into a conjuntive ('and') query.
* @param {number} flags - Flags indicating the tuple set(s) to filter.
* @param {function(*):object} filter - Filter function that will be applied
* to the tuple set array, and should return a data tuple if the value
* should be included in the tuple set, and falsy (or null) otherwise.
* @return {Pulse} - Returns this pulse instance.
*/
filter(flags, filter) {
const p = this;
if (flags & ADD) p.addF = addFilter(p.addF, filter);
if (flags & REM) p.remF = addFilter(p.remF, filter);
if (flags & MOD$1) p.modF = addFilter(p.modF, filter);
if (flags & SOURCE) p.srcF = addFilter(p.srcF, filter);
return p;
},
/**
* Materialize one or more tuple sets in this pulse. If the tuple set(s) have
* a registered filter function, it will be applied and the tuple set(s) will
* be replaced with materialized tuple arrays.
* @param {number} flags - Flags indicating the tuple set(s) to materialize.
* @return {Pulse} - Returns this pulse instance.
*/
materialize(flags) {
flags = flags || ALL;
const p = this;
if (flags & ADD && p.addF) {
p.add = materialize(p.add, p.addF);
p.addF = null;
}
if (flags & REM && p.remF) {
p.rem = materialize(p.rem, p.remF);
p.remF = null;
}
if (flags & MOD$1 && p.modF) {
p.mod = materialize(p.mod, p.modF);
p.modF = null;
}
if (flags & SOURCE && p.srcF) {
p.source = p.source.filter(p.srcF);
p.srcF = null;
}
return p;
},
/**
* Visit one or more tuple sets in this pulse.
* @param {number} flags - Flags indicating the tuple set(s) to visit.
* Legal values are ADD, REM, MOD and SOURCE (if a backing data source
* has been set).
* @param {function(object):*} - Visitor function invoked per-tuple.
* @return {Pulse} - Returns this pulse instance.
*/
visit(flags, visitor) {
const p = this,
v = visitor;
if (flags & SOURCE) {
visitArray(p.source, p.srcF, v);
return p;
}
if (flags & ADD) visitArray(p.add, p.addF, v);
if (flags & REM) visitArray(p.rem, p.remF, v);
if (flags & MOD$1) visitArray(p.mod, p.modF, v);
const src = p.source;
if (flags & REFLOW && src) {
const sum = p.add.length + p.mod.length;
if (sum === src.length) ;else if (sum) {
visitArray(src, filter$1(p, ADD_MOD), v);
} else {
// if no add/rem/mod tuples, visit source
visitArray(src, p.srcF, v);
}
}
return p;
}
};
/**
* Represents a set of multiple pulses. Used as input for operators
* that accept multiple pulses at a time. Contained pulses are
* accessible via the public "pulses" array property. This pulse doe
* not carry added, removed or modified tuples directly. However,
* the visit method can be used to traverse all such tuples contained
* in sub-pulses with a timestamp matching this parent multi-pulse.
* @constructor
* @param {Dataflow} dataflow - The backing dataflow instance.
* @param {number} stamp - The timestamp.
* @param {Array<Pulse>} pulses - The sub-pulses for this multi-pulse.
*/
function MultiPulse(dataflow, stamp, pulses, encode) {
const p = this;
let c = 0;
this.dataflow = dataflow;
this.stamp = stamp;
this.fields = null;
this.encode = encode || null;
this.pulses = pulses;
for (const pulse of pulses) {
if (pulse.stamp !== stamp) continue;
if (pulse.fields) {
const hash = p.fields || (p.fields = {});
for (const f in pulse.fields) {
hash[f] = 1;
}
}
if (pulse.changed(p.ADD)) c |= p.ADD;
if (pulse.changed(p.REM)) c |= p.REM;
if (pulse.changed(p.MOD)) c |= p.MOD;
}
this.changes = c;
}
inherits(MultiPulse, Pulse, {
/**
* Creates a new pulse based on the values of this pulse.
* The dataflow, time stamp and field modification values are copied over.
* @return {Pulse}
*/
fork(flags) {
const p = new Pulse(this.dataflow).init(this, flags & this.NO_FIELDS);
if (flags !== undefined) {
if (flags & p.ADD) this.visit(p.ADD, t => p.add.push(t));
if (flags & p.REM) this.visit(p.REM, t => p.rem.push(t));
if (flags & p.MOD) this.visit(p.MOD, t => p.mod.push(t));
}
return p;
},
changed(flags) {
return this.changes & flags;
},
modified(_) {
const p = this,
fields = p.fields;
return !(fields && p.changes & p.MOD) ? 0 : isArray(_) ? _.some(f => fields[f]) : fields[_];
},
filter() {
error('MultiPulse does not support filtering.');
},
materialize() {
error('MultiPulse does not support materialization.');
},
visit(flags, visitor) {
const p = this,
pulses = p.pulses,
n = pulses.length;
let i = 0;
if (flags & p.SOURCE) {
for (; i < n; ++i) {
pulses[i].visit(flags, visitor);
}
} else {
for (; i < n; ++i) {
if (pulses[i].stamp === p.stamp) {
pulses[i].visit(flags, visitor);
}
}
}
return p;
}
});
/* eslint-disable require-atomic-updates */
/**
* Evaluates the dataflow and returns a Promise that resolves when pulse
* propagation completes. This method will increment the current timestamp
* and process all updated, pulsed and touched operators. When invoked for
* the first time, all registered operators will be processed. This method
* should not be invoked by third-party clients, use {@link runAsync} or
* {@link run} instead.
* @param {string} [encode] - The name of an encoding set to invoke during
* propagation. This value is added to generated Pulse instances;
* operators can then respond to (or ignore) this setting as appropriate.
* This parameter can be used in conjunction with the Encode transform in
* the vega-encode package.
* @param {function} [prerun] - An optional callback function to invoke
* immediately before dataflow evaluation commences.
* @param {function} [postrun] - An optional callback function to invoke
* after dataflow evaluation completes. The callback will be invoked
* after those registered via {@link runAfter}.
* @return {Promise} - A promise that resolves to this dataflow after
* evaluation completes.
*/
async function evaluate(encode, prerun, postrun) {
const df = this,
async = []; // if the pulse value is set, this is a re-entrant call
if (df._pulse) return reentrant(df); // wait for pending datasets to load
if (df._pending) await df._pending; // invoke prerun function, if provided
if (prerun) await asyncCallback(df, prerun); // exit early if there are no updates
if (!df._touched.length) {
df.debug('Dataflow invoked, but nothing to do.');
return df;
} // increment timestamp clock
const stamp = ++df._clock; // set the current pulse
df._pulse = new Pulse(df, stamp, encode); // initialize priority queue, reset touched operators
df._touched.forEach(op => df._enqueue(op, true));
df._touched = UniqueList(id);
let count = 0,
op,
next,
error;
try {
while (df._heap.size() > 0) {
// dequeue operator with highest priority
op = df._heap.pop(); // re-queue if rank changed
if (op.rank !== op.qrank) {
df._enqueue(op, true);
continue;
} // otherwise, evaluate the operator
next = op.run(df._getPulse(op, encode));
if (next.then) {
// await if operator returns a promise directly
next = await next;
} else if (next.async) {
// queue parallel asynchronous execution
async.push(next.async);
next = StopPropagation;
} // propagate evaluation, enqueue dependent operators
if (next !== StopPropagation) {
if (op._targets) op._targets.forEach(op => df._enqueue(op));
} // increment visit counter
++count;
}
} catch (err) {
df._heap.clear();
error = err;
} // reset pulse map
df._input = {};
df._pulse = null;
df.debug(`Pulse ${stamp}: ${count} operators`);
if (error) {
df._postrun = [];
df.error(error);
} // invoke callbacks queued via runAfter
if (df._postrun.length) {
const pr = df._postrun.sort((a, b) => b.priority - a.priority);
df._postrun = [];
for (let i = 0; i < pr.length; ++i) {
await asyncCallback(df, pr[i].callback);
}
} // invoke postrun function, if provided
if (postrun) await asyncCallback(df, postrun); // handle non-blocking asynchronous callbacks
if (async.length) {
Promise.all(async).then(cb => df.runAsync(null, () => {
cb.forEach(f => {
try {
f(df);
} catch (err) {
df.error(err);
}
});
}));
}
return df;
}
/**
* Queues dataflow evaluation to run once any other queued evaluations have
* completed and returns a Promise that resolves when the queued pulse
* propagation completes. If provided, a callback function will be invoked
* immediately before evaluation commences. This method will ensure a
* separate evaluation is invoked for each time it is called.
* @param {string} [encode] - The name of an encoding set to invoke during
* propagation. This value is added to generated Pulse instances;
* operators can then respond to (or ignore) this setting as appropriate.
* This parameter can be used in conjunction with the Encode transform in
* the vega-encode package.
* @param {function} [prerun] - An optional callback function to invoke
* immediately before dataflow evaluation commences.
* @param {function} [postrun] - An optional callback function to invoke
* after dataflow evaluation completes. The callback will be invoked
* after those registered via {@link runAfter}.
* @return {Promise} - A promise that resolves to this dataflow after
* evaluation completes.
*/
async function runAsync(encode, prerun, postrun) {
// await previously queued functions
while (this._running) await this._running; // run dataflow, manage running promise
const clear = () => this._running = null;
(this._running = this.evaluate(encode, prerun, postrun)).then(clear, clear);
return this._running;
}
/**
* Requests dataflow evaluation and the immediately returns this dataflow
* instance. If there are pending data loading or other asynchronous
* operations, the dataflow will evaluate asynchronously after this method
* has been invoked. To track when dataflow evaluation completes, use the
* {@link runAsync} method instead. This method will raise an error if
* invoked while the dataflow is already in the midst of evaluation.
* @param {string} [encode] - The name of an encoding set to invoke during
* propagation. This value is added to generated Pulse instances;
* operators can then respond to (or ignore) this setting as appropriate.
* This parameter can be used in conjunction with the Encode transform in
* the vega-encode module.
* @param {function} [prerun] - An optional callback function to invoke
* immediately before dataflow evaluation commences.
* @param {function} [postrun] - An optional callback function to invoke
* after dataflow evaluation completes. The callback will be invoked
* after those registered via {@link runAfter}.
* @return {Dataflow} - This dataflow instance.
*/
function run(encode, prerun, postrun) {
return this._pulse ? reentrant(this) : (this.evaluate(encode, prerun, postrun), this);
}
/**
* Schedules a callback function to be invoked after the current pulse
* propagation completes. If no propagation is currently occurring,
* the function is invoked immediately. Callbacks scheduled via runAfter
* are invoked immediately upon completion of the current cycle, before
* any request queued via runAsync. This method is primarily intended for
* internal use. Third-party callers using runAfter to schedule a callback
* that invokes {@link run} or {@link runAsync} should not use this method,
* but instead use {@link runAsync} with prerun or postrun arguments.
* @param {function(Dataflow)} callback - The callback function to run.
* The callback will be invoked with this Dataflow instance as its
* sole argument.
* @param {boolean} enqueue - A boolean flag indicating that the
* callback should be queued up to run after the next propagation
* cycle, suppressing immediate invocation when propagation is not
* currently occurring.
* @param {number} [priority] - A priority value used to sort registered
* callbacks to determine execution order. This argument is intended
* for internal Vega use only.
*/
function runAfter(callback, enqueue, priority) {
if (this._pulse || enqueue) {
// pulse propagation is currently running, queue to run after
this._postrun.push({
priority: priority || 0,
callback: callback
});
} else {
// pulse propagation already complete, invoke immediately
try {
callback(this);
} catch (err) {
this.error(err);
}
}
}
/**
* Raise an error for re-entrant dataflow evaluation.
*/
function reentrant(df) {
df.error('Dataflow already running. Use runAsync() to chain invocations.');
return df;
}
/**
* Enqueue an operator into the priority queue for evaluation. The operator
* will be enqueued if it has no registered pulse for the current cycle, or if
* the force argument is true. Upon enqueue, this method also sets the
* operator's qrank to the current rank value.
* @param {Operator} op - The operator to enqueue.
* @param {boolean} [force] - A flag indicating if the operator should be
* forceably added to the queue, even if it has already been previously
* enqueued during the current pulse propagation. This is useful when the
* dataflow graph is dynamically modified and the operator rank changes.
*/
function enqueue(op, force) {
const q = op.stamp < this._clock;
if (q) op.stamp = this._clock;
if (q || force) {
op.qrank = op.rank;
this._heap.push(op);
}
}
/**
* Provide a correct pulse for evaluating an operator. If the operator has an
* explicit source operator, we will try to pull the pulse(s) from it.
* If there is an array of source operators, we build a multi-pulse.
* Otherwise, we return a current pulse with correct source data.
* If the pulse is the pulse map has an explicit target set, we use that.
* Else if the pulse on the upstream source operator is current, we use that.
* Else we use the pulse from the pulse map, but copy the source tuple array.
* @param {Operator} op - The operator for which to get an input pulse.
* @param {string} [encode] - An (optional) encoding set name with which to
* annotate the returned pulse. See {@link run} for more information.
*/
function getPulse(op, encode) {
const s = op.source,
stamp = this._clock;
return s && isArray(s) ? new MultiPulse(this, stamp, s.map(_ => _.pulse), encode) : this._input[op.id] || singlePulse(this._pulse, s && s.pulse);
}
function singlePulse(p, s) {
if (s && s.stamp === p.stamp) {
return s;
}
p = p.fork();
if (s && s !== StopPropagation) {
p.source = s.source;
}
return p;
}
const NO_OPT = {
skip: false,
force: false
};
/**
* Touches an operator, scheduling it to be evaluated. If invoked outside of
* a pulse propagation, the operator will be evaluated the next time this
* dataflow is run. If invoked in the midst of pulse propagation, the operator
* will be queued for evaluation if and only if the operator has not yet been
* evaluated on the current propagation timestamp.
* @param {Operator} op - The operator to touch.
* @param {object} [options] - Additional options hash.
* @param {boolean} [options.skip] - If true, the operator will
* be skipped: it will not be evaluated, but its dependents will be.
* @return {Dataflow}
*/
function touch(op, options) {
const opt = options || NO_OPT;
if (this._pulse) {
// if in midst of propagation, add to priority queue
this._enqueue(op);
} else {
// otherwise, queue for next propagation
this._touched.add(op);
}
if (opt.skip) op.skip(true);
return this;
}
/**
* Updates the value of the given operator.
* @param {Operator} op - The operator to update.
* @param {*} value - The value to set.
* @param {object} [options] - Additional options hash.
* @param {boolean} [options.force] - If true, the operator will
* be re-evaluated even if its value has not changed.
* @param {boolean} [options.skip] - If true, the operator will
* be skipped: it will not be evaluated, but its dependents will be.
* @return {Dataflow}
*/
function update$6(op, value, options) {
const opt = options || NO_OPT;
if (op.set(value) || opt.force) {
this.touch(op, opt);
}
return this;
}
/**
* Pulses an operator with a changeset of tuples. If invoked outside of
* a pulse propagation, the pulse will be applied the next time this
* dataflow is run. If invoked in the midst of pulse propagation, the pulse
* will be added to the set of active pulses and will be applied if and
* only if the target operator has not yet been evaluated on the current
* propagation timestamp.
* @param {Operator} op - The operator to pulse.
* @param {ChangeSet} value - The tuple changeset to apply.
* @param {object} [options] - Additional options hash.
* @param {boolean} [options.skip] - If true, the operator will
* be skipped: it will not be evaluated, but its dependents will be.
* @return {Dataflow}
*/
function pulse(op, changeset, options) {
this.touch(op, options || NO_OPT);
const p = new Pulse(this, this._clock + (this._pulse ? 0 : 1)),
t = op.pulse && op.pulse.source || [];
p.target = op;
this._input[op.id] = changeset.pulse(p, t);
return this;
}
function Heap(cmp) {
let nodes = [];
return {
clear: () => nodes = [],
size: () => nodes.length,
peek: () => nodes[0],
push: x => {
nodes.push(x);
return siftdown(nodes, 0, nodes.length - 1, cmp);
},
pop: () => {
const last = nodes.pop();
let item;
if (nodes.length) {
item = nodes[0];
nodes[0] = last;
siftup(nodes, 0, cmp);
} else {
item = last;
}
return item;
}
};
}
function siftdown(array, start, idx, cmp) {
let parent, pidx;
const item = array[idx];
while (idx > start) {
pidx = idx - 1 >> 1;
parent = array[pidx];
if (cmp(item, parent) < 0) {
array[idx] = parent;
idx = pidx;
continue;
}
break;
}
return array[idx] = item;
}
function siftup(array, idx, cmp) {
const start = idx,
end = array.length,
item = array[idx];
let cidx = (idx << 1) + 1,
ridx;
while (cidx < end) {
ridx = cidx + 1;
if (ridx < end && cmp(array[cidx], array[ridx]) >= 0) {
cidx = ridx;
}
array[idx] = array[cidx];
idx = cidx;
cidx = (idx << 1) + 1;
}
array[idx] = item;
return siftdown(array, start, idx, cmp);
}
/**
* A dataflow graph for reactive processing of data streams.
* @constructor
*/
function Dataflow() {
this.logger(logger());
this.logLevel(Error$1);
this._clock = 0;
this._rank = 0;
this._locale = defaultLocale();
try {
this._loader = loader();
} catch (e) {// do nothing if loader module is unavailable
}
this._touched = UniqueList(id);
this._input = {};
this._pulse = null;
this._heap = Heap((a, b) => a.qrank - b.qrank);
this._postrun = [];
}
function logMethod(method) {
return function () {
return this._log[method].apply(this, arguments);
};
}
Dataflow.prototype = {
/**
* The current timestamp of this dataflow. This value reflects the
* timestamp of the previous dataflow run. The dataflow is initialized
* with a stamp value of 0. The initial run of the dataflow will have
* a timestap of 1, and so on. This value will match the
* {@link Pulse.stamp} property.
* @return {number} - The current timestamp value.
*/
stamp() {
return this._clock;
},
/**
* Gets or sets the loader instance to use for data file loading. A
* loader object must provide a "load" method for loading files and a
* "sanitize" method for checking URL/filename validity. Both methods
* should accept a URI and options hash as arguments, and return a Promise
* that resolves to the loaded file contents (load) or a hash containing
* sanitized URI data with the sanitized url assigned to the "href" property
* (sanitize).
* @param {object} _ - The loader instance to use.
* @return {object|Dataflow} - If no arguments are provided, returns
* the current loader instance. Otherwise returns this Dataflow instance.
*/
loader(_) {
if (arguments.length) {
this._loader = _;
return this;
} else {
return this._loader;
}
},
/**
* Gets or sets the locale instance to use for formatting and parsing
* string values. The locale object should be provided by the
* vega-format library, and include methods such as format, timeFormat,
* utcFormat, timeParse, and utcParse.
* @param {object} _ - The locale instance to use.
* @return {object|Dataflow} - If no arguments are provided, returns
* the current locale instance. Otherwise returns this Dataflow instance.
*/
locale(_) {
if (arguments.length) {
this._locale = _;
return this;
} else {
return this._locale;
}
},
/**
* Get or set the logger instance used to log messages. If no arguments are
* provided, returns the current logger instance. Otherwise, sets the logger
* and return this Dataflow instance. Provided loggers must support the full
* API of logger objects generated by the vega-util logger method. Note that
* by default the log level of the new logger will be used; use the logLevel
* method to adjust the log level as needed.
*/
logger(logger) {
if (arguments.length) {
this._log = logger;
return this;
} else {
return this._log;
}
},
/**
* Logs an error message. By default, logged messages are written to console
* output. The message will only be logged if the current log level is high
* enough to permit error messages.
*/
error: logMethod('error'),
/**
* Logs a warning message. By default, logged messages are written to console
* output. The message will only be logged if the current log level is high
* enough to permit warning messages.
*/
warn: logMethod('warn'),
/**
* Logs a information message. By default, logged messages are written to
* console output. The message will only be logged if the current log level is
* high enough to permit information messages.
*/
info: logMethod('info'),
/**
* Logs a debug message. By default, logged messages are written to console
* output. The message will only be logged if the current log level is high
* enough to permit debug messages.
*/
debug: logMethod('debug'),
/**
* Get or set the current log level. If an argument is provided, it
* will be used as the new log level.
* @param {number} [level] - Should be one of None, Warn, Info
* @return {number} - The current log level.
*/
logLevel: logMethod('level'),
/**
* Empty entry threshold for garbage cleaning. Map data structures will
* perform cleaning once the number of empty entries exceeds this value.
*/
cleanThreshold: 1e4,
// OPERATOR REGISTRATION
add: add$3,
connect,
rank,
rerank,
// OPERATOR UPDATES
pulse,
touch,
update: update$6,
changeset,
// DATA LOADING
ingest,
parse: parse$4,
preload,
request,
// EVENT HANDLING
events: events$1,
on,
// PULSE PROPAGATION
evaluate,
run,
runAsync,
runAfter,
_enqueue: enqueue,
_getPulse: getPulse
};
/**
* Abstract class for operators that process data tuples.
* Subclasses must provide a {@link transform} method for operator processing.
* @constructor
* @param {*} [init] - The initial value for this operator.
* @param {object} [params] - The parameters for this operator.
* @param {Operator} [source] - The operator from which to receive pulses.
*/
function Transform(init, params) {
Operator.call(this, init, null, params);
}
inherits(Transform, Operator, {
/**
* Overrides {@link Operator.evaluate} for transform operators.
* Internally, this method calls {@link evaluate} to perform processing.
* If {@link evaluate} returns a falsy value, the input pulse is returned.
* This method should NOT be overridden, instead overrride {@link evaluate}.
* @param {Pulse} pulse - the current dataflow pulse.
* @return the output pulse for this operator (or StopPropagation)
*/
run(pulse) {
if (pulse.stamp < this.stamp) return pulse.StopPropagation;
let rv;
if (this.skip()) {
this.skip(false);
} else {
rv = this.evaluate(pulse);
}
rv = rv || pulse;
if (rv.then) {
rv = rv.then(_ => this.pulse = _);
} else if (rv !== pulse.StopPropagation) {
this.pulse = rv;
}
return rv;
},
/**
* Overrides {@link Operator.evaluate} for transform operators.
* Marshalls parameter values and then invokes {@link transform}.
* @param {Pulse} pulse - the current dataflow pulse.
* @return {Pulse} The output pulse (or StopPropagation). A falsy return
value (including undefined) will let the input pulse pass through.
*/
evaluate(pulse) {
const params = this.marshall(pulse.stamp),
out = this.transform(params, pulse);
params.clear();
return out;
},
/**
* Process incoming pulses.
* Subclasses should override this method to implement transforms.
* @param {Parameters} _ - The operator parameter values.
* @param {Pulse} pulse - The current dataflow pulse.
* @return {Pulse} The output pulse (or StopPropagation). A falsy return
* value (including undefined) will let the input pulse pass through.
*/
transform() {}
});
const transforms = {};
function definition$1(type) {
const t = transform$2(type);
return t && t.Definition || null;
}
function transform$2(type) {
type = type && type.toLowerCase();
return has$1(transforms, type) ? transforms[type] : null;
}
function* numbers$1(values, valueof) {
if (valueof == null) {
for (let value of values) {
if (value != null && value !== '' && (value = +value) >= value) {
yield value;
}
}
} else {
let index = -1;
for (let value of values) {
value = valueof(value, ++index, values);
if (value != null && value !== '' && (value = +value) >= value) {
yield value;
}
}
}
}
function quantiles(array, p, f) {
const values = Float64Array.from(numbers$1(array, f)); // don't depend on return value from typed array sort call
// protects against undefined sort results in Safari (vega/vega-lite#4964)
values.sort(ascending$2);
return p.map(_ => quantileSorted(values, _));
}
function quartiles(array, f) {
return quantiles(array, [0.25, 0.50, 0.75], f);
} // Theory, Practice, and Visualization. Wiley.
function estimateBandwidth(array, f) {
const n = array.length,
d = deviation(array, f),
q = quartiles(array, f),
h = (q[2] - q[0]) / 1.34,
v = Math.min(d, h) || d || Math.abs(q[0]) || 1;
return 1.06 * v * Math.pow(n, -0.2);
}
function bin(_) {
// determine range
const maxb = _.maxbins || 20,
base = _.base || 10,
logb = Math.log(base),
div = _.divide || [5, 2];
let min = _.extent[0],
max = _.extent[1],
step,
level,
minstep,
v,
i,
n;
const span = _.span || max - min || Math.abs(min) || 1;
if (_.step) {
// if step size is explicitly given, use that
step = _.step;
} else if (_.steps) {
// if provided, limit choice to acceptable step sizes
v = span / maxb;
for (i = 0, n = _.steps.length; i < n && _.steps[i] < v; ++i);
step = _.steps[Math.max(0, i - 1)];
} else {
// else use span to determine step size
level = Math.ceil(Math.log(maxb) / logb);
minstep = _.minstep || 0;
step = Math.max(minstep, Math.pow(base, Math.round(Math.log(span) / logb) - level)); // increase step size if too many bins
while (Math.ceil(span / step) > maxb) {
step *= base;
} // decrease step size if allowed
for (i = 0, n = div.length; i < n; ++i) {
v = step / div[i];
if (v >= minstep && span / v <= maxb) step = v;
}
} // update precision, min and max
v = Math.log(step);
const precision = v >= 0 ? 0 : ~~(-v / logb) + 1,
eps = Math.pow(base, -precision - 1);
if (_.nice || _.nice === undefined) {
v = Math.floor(min / step + eps) * step;
min = min < v ? v - step : v;
max = Math.ceil(max / step) * step;
}
return {
start: min,
stop: max === min ? min + step : max,
step: step
};
}
exports.random = Math.random;
function setRandom(r) {
exports.random = r;
}
function bootstrapCI(array, samples, alpha, f) {
if (!array.length) return [undefined, undefined];
const values = Float64Array.from(numbers$1(array, f)),
n = values.length,
m = samples;
let a, i, j, mu;
for (j = 0, mu = Array(m); j < m; ++j) {
for (a = 0, i = 0; i < n; ++i) {
a += values[~~(exports.random() * n)];
}
mu[j] = a / n;
}
mu.sort(ascending$2);
return [quantile$1(mu, alpha / 2), quantile$1(mu, 1 - alpha / 2)];
} // Dot density binning for dot plot construction.
// Based on Leland Wilkinson, Dot Plots, The American Statistician, 1999.
// https://www.cs.uic.edu/~wilkinson/Publications/dotplots.pdf
function dotbin(array, step, smooth, f) {
f = f || (_ => _);
const n = array.length,
v = new Float64Array(n);
let i = 0,
j = 1,
a = f(array[0]),
b = a,
w = a + step,
x;
for (; j < n; ++j) {
x = f(array[j]);
if (x >= w) {
b = (a + b) / 2;
for (; i < j; ++i) v[i] = b;
w = x + step;
a = x;
}
b = x;
}
b = (a + b) / 2;
for (; i < j; ++i) v[i] = b;
return smooth ? smoothing(v, step + step / 4) : v;
} // perform smoothing to reduce variance
// swap points between "adjacent" stacks
// Wilkinson defines adjacent as within step/4 units
function smoothing(v, thresh) {
const n = v.length;
let a = 0,
b = 1,
c,
d; // get left stack
while (v[a] === v[b]) ++b;
while (b < n) {
// get right stack
c = b + 1;
while (v[b] === v[c]) ++c; // are stacks adjacent?
// if so, compare sizes and swap as needed
if (v[b] - v[b - 1] < thresh) {
d = b + (a + c - b - b >> 1);
while (d < b) v[d++] = v[b];
while (d > b) v[d--] = v[a];
} // update left stack indices
a = b;
b = c;
}
return v;
}
function lcg$1(seed) {
// Random numbers using a Linear Congruential Generator with seed value
// Uses glibc values from https://en.wikipedia.org/wiki/Linear_congruential_generator
return function () {
seed = (1103515245 * seed + 12345) % 2147483647;
return seed / 2147483647;
};
}
function integer(min, max) {
if (max == null) {
max = min;
min = 0;
}
let a, b, d;
const dist = {
min(_) {
if (arguments.length) {
a = _ || 0;
d = b - a;
return dist;
} else {
return a;
}
},
max(_) {
if (arguments.length) {
b = _ || 0;
d = b - a;
return dist;
} else {
return b;
}
},
sample() {
return a + Math.floor(d * exports.random());
},
pdf(x) {
return x === Math.floor(x) && x >= a && x < b ? 1 / d : 0;
},
cdf(x) {
const v = Math.floor(x);
return v < a ? 0 : v >= b ? 1 : (v - a + 1) / d;
},
icdf(p) {
return p >= 0 && p <= 1 ? a - 1 + Math.floor(p * d) : NaN;
}
};
return dist.min(min).max(max);
}
const SQRT2PI = Math.sqrt(2 * Math.PI);
const SQRT2 = Math.SQRT2;
let nextSample = NaN;
function sampleNormal(mean, stdev) {
mean = mean || 0;
stdev = stdev == null ? 1 : stdev;
let x = 0,
y = 0,
rds,
c;
if (nextSample === nextSample) {
x = nextSample;
nextSample = NaN;
} else {
do {
x = exports.random() * 2 - 1;
y = exports.random() * 2 - 1;
rds = x * x + y * y;
} while (rds === 0 || rds > 1);
c = Math.sqrt(-2 * Math.log(rds) / rds); // Box-Muller transform
x *= c;
nextSample = y * c;
}
return mean + x * stdev;
}
function densityNormal(value, mean, stdev) {
stdev = stdev == null ? 1 : stdev;
const z = (value - (mean || 0)) / stdev;
return Math.exp(-0.5 * z * z) / (stdev * SQRT2PI);
} // Approximation from West (2009)
// Better Approximations to Cumulative Normal Functions
function cumulativeNormal(value, mean, stdev) {
mean = mean || 0;
stdev = stdev == null ? 1 : stdev;
const z = (value - mean) / stdev,
Z = Math.abs(z);
let cd;
if (Z > 37) {
cd = 0;
} else {
const exp = Math.exp(-Z * Z / 2);
let sum;
if (Z < 7.07106781186547) {
sum = 3.52624965998911e-02 * Z + 0.700383064443688;
sum = sum * Z + 6.37396220353165;
sum = sum * Z + 33.912866078383;
sum = sum * Z + 112.079291497871;
sum = sum * Z + 221.213596169931;
sum = sum * Z + 220.206867912376;
cd = exp * sum;
sum = 8.83883476483184e-02 * Z + 1.75566716318264;
sum = sum * Z + 16.064177579207;
sum = sum * Z + 86.7807322029461;
sum = sum * Z + 296.564248779674;
sum = sum * Z + 637.333633378831;
sum = sum * Z + 793.826512519948;
sum = sum * Z + 440.413735824752;
cd = cd / sum;
} else {
sum = Z + 0.65;
sum = Z + 4 / sum;
sum = Z + 3 / sum;
sum = Z + 2 / sum;
sum = Z + 1 / sum;
cd = exp / sum / 2.506628274631;
}
}
return z > 0 ? 1 - cd : cd;
} // Approximation of Probit function using inverse error function.
function quantileNormal(p, mean, stdev) {
if (p < 0 || p > 1) return NaN;
return (mean || 0) + (stdev == null ? 1 : stdev) * SQRT2 * erfinv(2 * p - 1);
} // Approximate inverse error function. Implementation from "Approximating
// the erfinv function" by Mike Giles, GPU Computing Gems, volume 2, 2010.
// Ported from Apache Commons Math, http://www.apache.org/licenses/LICENSE-2.0
function erfinv(x) {
// beware that the logarithm argument must be
// commputed as (1.0 - x) * (1.0 + x),
// it must NOT be simplified as 1.0 - x * x as this
// would induce rounding errors near the boundaries +/-1
let w = -Math.log((1 - x) * (1 + x)),
p;
if (w < 6.25) {
w -= 3.125;
p = -3.6444120640178196996e-21;
p = -1.685059138182016589e-19 + p * w;
p = 1.2858480715256400167e-18 + p * w;
p = 1.115787767802518096e-17 + p * w;
p = -1.333171662854620906e-16 + p * w;
p = 2.0972767875968561637e-17 + p * w;
p = 6.6376381343583238325e-15 + p * w;
p = -4.0545662729752068639e-14 + p * w;
p = -8.1519341976054721522e-14 + p * w;
p = 2.6335093153082322977e-12 + p * w;
p = -1.2975133253453532498e-11 + p * w;
p = -5.4154120542946279317e-11 + p * w;
p = 1.051212273321532285e-09 + p * w;
p = -4.1126339803469836976e-09 + p * w;
p = -2.9070369957882005086e-08 + p * w;
p = 4.2347877827932403518e-07 + p * w;
p = -1.3654692000834678645e-06 + p * w;
p = -1.3882523362786468719e-05 + p * w;
p = 0.0001867342080340571352 + p * w;
p = -0.00074070253416626697512 + p * w;
p = -0.0060336708714301490533 + p * w;
p = 0.24015818242558961693 + p * w;
p = 1.6536545626831027356 + p * w;
} else if (w < 16.0) {
w = Math.sqrt(w) - 3.25;
p = 2.2137376921775787049e-09;
p = 9.0756561938885390979e-08 + p * w;
p = -2.7517406297064545428e-07 + p * w;
p = 1.8239629214389227755e-08 + p * w;
p = 1.5027403968909827627e-06 + p * w;
p = -4.013867526981545969e-06 + p * w;
p = 2.9234449089955446044e-06 + p * w;
p = 1.2475304481671778723e-05 + p * w;
p = -4.7318229009055733981e-05 + p * w;
p = 6.8284851459573175448e-05 + p * w;
p = 2.4031110387097893999e-05 + p * w;
p = -0.0003550375203628474796 + p * w;
p = 0.00095328937973738049703 + p * w;
p = -0.0016882755560235047313 + p * w;
p = 0.0024914420961078508066 + p * w;
p = -0.0037512085075692412107 + p * w;
p = 0.005370914553590063617 + p * w;
p = 1.0052589676941592334 + p * w;
p = 3.0838856104922207635 + p * w;
} else if (Number.isFinite(w)) {
w = Math.sqrt(w) - 5.0;
p = -2.7109920616438573243e-11;
p = -2.5556418169965252055e-10 + p * w;
p = 1.5076572693500548083e-09 + p * w;
p = -3.7894654401267369937e-09 + p * w;
p = 7.6157012080783393804e-09 + p * w;
p = -1.4960026627149240478e-08 + p * w;
p = 2.9147953450901080826e-08 + p * w;
p = -6.7711997758452339498e-08 + p * w;
p = 2.2900482228026654717e-07 + p * w;
p = -9.9298272942317002539e-07 + p * w;
p = 4.5260625972231537039e-06 + p * w;
p = -1.9681778105531670567e-05 + p * w;
p = 7.5995277030017761139e-05 + p * w;
p = -0.00021503011930044477347 + p * w;
p = -0.00013871931833623122026 + p * w;
p = 1.0103004648645343977 + p * w;
p = 4.8499064014085844221 + p * w;
} else {
p = Infinity;
}
return p * x;
}
function gaussian(mean, stdev) {
let mu, sigma;
const dist = {
mean(_) {
if (arguments.length) {
mu = _ || 0;
return dist;
} else {
return mu;
}
},
stdev(_) {
if (arguments.length) {
sigma = _ == null ? 1 : _;
return dist;
} else {
return sigma;
}
},
sample: () => sampleNormal(mu, sigma),
pdf: value => densityNormal(value, mu, sigma),
cdf: value => cumulativeNormal(value, mu, sigma),
icdf: p => quantileNormal(p, mu, sigma)
};
return dist.mean(mean).stdev(stdev);
}
function kde(support, bandwidth) {
const kernel = gaussian();
let n = 0;
const dist = {
data(_) {
if (arguments.length) {
support = _;
n = _ ? _.length : 0;
return dist.bandwidth(bandwidth);
} else {
return support;
}
},
bandwidth(_) {
if (!arguments.length) return bandwidth;
bandwidth = _;
if (!bandwidth && support) bandwidth = estimateBandwidth(support);
return dist;
},
sample() {
return support[~~(exports.random() * n)] + bandwidth * kernel.sample();
},
pdf(x) {
let y = 0,
i = 0;
for (; i < n; ++i) {
y += kernel.pdf((x - support[i]) / bandwidth);
}
return y / bandwidth / n;
},
cdf(x) {
let y = 0,
i = 0;
for (; i < n; ++i) {
y += kernel.cdf((x - support[i]) / bandwidth);
}
return y / n;
},
icdf() {
throw Error('KDE icdf not supported.');
}
};
return dist.data(support);
}
function sampleLogNormal(mean, stdev) {
mean = mean || 0;
stdev = stdev == null ? 1 : stdev;
return Math.exp(mean + sampleNormal() * stdev);
}
function densityLogNormal(value, mean, stdev) {
if (value <= 0) return 0;
mean = mean || 0;
stdev = stdev == null ? 1 : stdev;
const z = (Math.log(value) - mean) / stdev;
return Math.exp(-0.5 * z * z) / (stdev * SQRT2PI * value);
}
function cumulativeLogNormal(value, mean, stdev) {
return cumulativeNormal(Math.log(value), mean, stdev);
}
function quantileLogNormal(p, mean, stdev) {
return Math.exp(quantileNormal(p, mean, stdev));
}
function lognormal(mean, stdev) {
let mu, sigma;
const dist = {
mean(_) {
if (arguments.length) {
mu = _ || 0;
return dist;
} else {
return mu;
}
},
stdev(_) {
if (arguments.length) {
sigma = _ == null ? 1 : _;
return dist;
} else {
return sigma;
}
},
sample: () => sampleLogNormal(mu, sigma),
pdf: value => densityLogNormal(value, mu, sigma),
cdf: value => cumulativeLogNormal(value, mu, sigma),
icdf: p => quantileLogNormal(p, mu, sigma)
};
return dist.mean(mean).stdev(stdev);
}
function mixture$1(dists, weights) {
let m = 0,
w;
function normalize(x) {
const w = [];
let sum = 0,
i;
for (i = 0; i < m; ++i) {
sum += w[i] = x[i] == null ? 1 : +x[i];
}
for (i = 0; i < m; ++i) {
w[i] /= sum;
}
return w;
}
const dist = {
weights(_) {
if (arguments.length) {
w = normalize(weights = _ || []);
return dist;
}
return weights;
},
distributions(_) {
if (arguments.length) {
if (_) {
m = _.length;
dists = _;
} else {
m = 0;
dists = [];
}
return dist.weights(weights);
}
return dists;
},
sample() {
const r = exports.random();
let d = dists[m - 1],
v = w[0],
i = 0; // first select distribution
for (; i < m - 1; v += w[++i]) {
if (r < v) {
d = dists[i];
break;
}
} // then sample from it
return d.sample();
},
pdf(x) {
let p = 0,
i = 0;
for (; i < m; ++i) {
p += w[i] * dists[i].pdf(x);
}
return p;
},
cdf(x) {
let p = 0,
i = 0;
for (; i < m; ++i) {
p += w[i] * dists[i].cdf(x);
}
return p;
},
icdf() {
throw Error('Mixture icdf not supported.');
}
};
return dist.distributions(dists).weights(weights);
}
function sampleUniform(min, max) {
if (max == null) {
max = min == null ? 1 : min;
min = 0;
}
return min + (max - min) * exports.random();
}
function densityUniform(value, min, max) {
if (max == null) {
max = min == null ? 1 : min;
min = 0;
}
return value >= min && value <= max ? 1 / (max - min) : 0;
}
function cumulativeUniform(value, min, max) {
if (max == null) {
max = min == null ? 1 : min;
min = 0;
}
return value < min ? 0 : value > max ? 1 : (value - min) / (max - min);
}
function quantileUniform(p, min, max) {
if (max == null) {
max = min == null ? 1 : min;
min = 0;
}
return p >= 0 && p <= 1 ? min + p * (max - min) : NaN;
}
function uniform(min, max) {
let a, b;
const dist = {
min(_) {
if (arguments.length) {
a = _ || 0;
return dist;
} else {
return a;
}
},
max(_) {
if (arguments.length) {
b = _ == null ? 1 : _;
return dist;
} else {
return b;
}
},
sample: () => sampleUniform(a, b),
pdf: value => densityUniform(value, a, b),
cdf: value => cumulativeUniform(value, a, b),
icdf: p => quantileUniform(p, a, b)
};
if (max == null) {
max = min == null ? 1 : min;
min = 0;
}
return dist.min(min).max(max);
} // Ordinary Least Squares
function ols(uX, uY, uXY, uX2) {
const delta = uX2 - uX * uX,
slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta,
intercept = uY - slope * uX;
return [intercept, slope];
}
function points(data, x, y, sort) {
data = data.filter(d => {
let u = x(d),
v = y(d);
return u != null && (u = +u) >= u && v != null && (v = +v) >= v;
});
if (sort) {
data.sort((a, b) => x(a) - x(b));
}
const n = data.length,
X = new Float64Array(n),
Y = new Float64Array(n); // extract values, calculate means
let i = 0,
ux = 0,
uy = 0,
xv,
yv,
d;
for (d of data) {
X[i] = xv = +x(d);
Y[i] = yv = +y(d);
++i;
ux += (xv - ux) / i;
uy += (yv - uy) / i;
} // mean center the data
for (i = 0; i < n; ++i) {
X[i] -= ux;
Y[i] -= uy;
}
return [X, Y, ux, uy];
}
function visitPoints(data, x, y, callback) {
let i = -1,
u,
v;
for (const d of data) {
u = x(d);
v = y(d);
if (u != null && (u = +u) >= u && v != null && (v = +v) >= v) {
callback(u, v, ++i);
}
}
} // License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE
function rSquared(data, x, y, uY, predict) {
let SSE = 0,
SST = 0;
visitPoints(data, x, y, (dx, dy) => {
const sse = dy - predict(dx),
sst = dy - uY;
SSE += sse * sse;
SST += sst * sst;
});
return 1 - SSE / SST;
} // License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE
function linear$2(data, x, y) {
let X = 0,
Y = 0,
XY = 0,
X2 = 0,
n = 0;
visitPoints(data, x, y, (dx, dy) => {
++n;
X += (dx - X) / n;
Y += (dy - Y) / n;
XY += (dx * dy - XY) / n;
X2 += (dx * dx - X2) / n;
});
const coef = ols(X, Y, XY, X2),
predict = x => coef[0] + coef[1] * x;
return {
coef: coef,
predict: predict,
rSquared: rSquared(data, x, y, Y, predict)
};
} // License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE
function log$3(data, x, y) {
let X = 0,
Y = 0,
XY = 0,
X2 = 0,
n = 0;
visitPoints(data, x, y, (dx, dy) => {
++n;
dx = Math.log(dx);
X += (dx - X) / n;
Y += (dy - Y) / n;
XY += (dx * dy - XY) / n;
X2 += (dx * dx - X2) / n;
});
const coef = ols(X, Y, XY, X2),
predict = x => coef[0] + coef[1] * Math.log(x);
return {
coef: coef,
predict: predict,
rSquared: rSquared(data, x, y, Y, predict)
};
}
function exp$1(data, x, y) {
// eslint-disable-next-line no-unused-vars
const [xv, yv, ux, uy] = points(data, x, y);
let YL = 0,
XY = 0,
XYL = 0,
X2Y = 0,
n = 0,
dx,
ly,
xy;
visitPoints(data, x, y, (_, dy) => {
dx = xv[n++];
ly = Math.log(dy);
xy = dx * dy;
YL += (dy * ly - YL) / n;
XY += (xy - XY) / n;
XYL += (xy * ly - XYL) / n;
X2Y += (dx * xy - X2Y) / n;
});
const [c0, c1] = ols(XY / uy, YL / uy, XYL / uy, X2Y / uy),
predict = x => Math.exp(c0 + c1 * (x - ux));
return {
coef: [Math.exp(c0 - c1 * ux), c1],
predict: predict,
rSquared: rSquared(data, x, y, uy, predict)
};
} // License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE
function pow$3(data, x, y) {
let X = 0,
Y = 0,
XY = 0,
X2 = 0,
YS = 0,
n = 0;
visitPoints(data, x, y, (dx, dy) => {
const lx = Math.log(dx),
ly = Math.log(dy);
++n;
X += (lx - X) / n;
Y += (ly - Y) / n;
XY += (lx * ly - XY) / n;
X2 += (lx * lx - X2) / n;
YS += (dy - YS) / n;
});
const coef = ols(X, Y, XY, X2),
predict = x => coef[0] * Math.pow(x, coef[1]);
coef[0] = Math.exp(coef[0]);
return {
coef: coef,
predict: predict,
rSquared: rSquared(data, x, y, YS, predict)
};
}
function quad(data, x, y) {
const [xv, yv, ux, uy] = points(data, x, y),
n = xv.length;
let X2 = 0,
X3 = 0,
X4 = 0,
XY = 0,
X2Y = 0,
i,
dx,
dy,
x2;
for (i = 0; i < n;) {
dx = xv[i];
dy = yv[i++];
x2 = dx * dx;
X2 += (x2 - X2) / i;
X3 += (x2 * dx - X3) / i;
X4 += (x2 * x2 - X4) / i;
XY += (dx * dy - XY) / i;
X2Y += (x2 * dy - X2Y) / i;
}
const X2X2 = X4 - X2 * X2,
d = X2 * X2X2 - X3 * X3,
a = (X2Y * X2 - XY * X3) / d,
b = (XY * X2X2 - X2Y * X3) / d,
c = -a * X2,
predict = x => {
x = x - ux;
return a * x * x + b * x + c + uy;
}; // transform coefficients back from mean-centered space
return {
coef: [c - b * ux + a * ux * ux + uy, b - 2 * a * ux, a],
predict: predict,
rSquared: rSquared(data, x, y, uy, predict)
};
} // License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE
// ... which was adapted from regression-js by Tom Alexander
// Source: https://github.com/Tom-Alexander/regression-js/blob/master/src/regression.js#L246
// License: https://github.com/Tom-Alexander/regression-js/blob/master/LICENSE
function poly(data, x, y, order) {
// use more efficient methods for lower orders
if (order === 1) return linear$2(data, x, y);
if (order === 2) return quad(data, x, y);
const [xv, yv, ux, uy] = points(data, x, y),
n = xv.length,
lhs = [],
rhs = [],
k = order + 1;
let i, j, l, v, c;
for (i = 0; i < k; ++i) {
for (l = 0, v = 0; l < n; ++l) {
v += Math.pow(xv[l], i) * yv[l];
}
lhs.push(v);
c = new Float64Array(k);
for (j = 0; j < k; ++j) {
for (l = 0, v = 0; l < n; ++l) {
v += Math.pow(xv[l], i + j);
}
c[j] = v;
}
rhs.push(c);
}
rhs.push(lhs);
const coef = gaussianElimination(rhs),
predict = x => {
x -= ux;
let y = uy + coef[0] + coef[1] * x + coef[2] * x * x;
for (i = 3; i < k; ++i) y += coef[i] * Math.pow(x, i);
return y;
};
return {
coef: uncenter(k, coef, -ux, uy),
predict: predict,
rSquared: rSquared(data, x, y, uy, predict)
};
}
function uncenter(k, a, x, y) {
const z = Array(k);
let i, j, v, c; // initialize to zero
for (i = 0; i < k; ++i) z[i] = 0; // polynomial expansion
for (i = k - 1; i >= 0; --i) {
v = a[i];
c = 1;
z[i] += v;
for (j = 1; j <= i; ++j) {
c *= (i + 1 - j) / j; // binomial coefficent
z[i - j] += v * Math.pow(x, j) * c;
}
} // bias term
z[0] += y;
return z;
} // Given an array for a two-dimensional matrix and the polynomial order,
// solve A * x = b using Gaussian elimination.
function gaussianElimination(matrix) {
const n = matrix.length - 1,
coef = [];
let i, j, k, r, t;
for (i = 0; i < n; ++i) {
r = i; // max row
for (j = i + 1; j < n; ++j) {
if (Math.abs(matrix[i][j]) > Math.abs(matrix[i][r])) {
r = j;
}
}
for (k = i; k < n + 1; ++k) {
t = matrix[k][i];
matrix[k][i] = matrix[k][r];
matrix[k][r] = t;
}
for (j = i + 1; j < n; ++j) {
for (k = n; k >= i; k--) {
matrix[k][j] -= matrix[k][i] * matrix[i][j] / matrix[i][i];
}
}
}
for (j = n - 1; j >= 0; --j) {
t = 0;
for (k = j + 1; k < n; ++k) {
t += matrix[k][j] * coef[k];
}
coef[j] = (matrix[n][j] - t) / matrix[j][j];
}
return coef;
}
const maxiters = 2,
epsilon$5 = 1e-12; // Adapted from science.js by Jason Davies
// Source: https://github.com/jasondavies/science.js/blob/master/src/stats/loess.js
// License: https://github.com/jasondavies/science.js/blob/master/LICENSE
function loess(data, x, y, bandwidth) {
const [xv, yv, ux, uy] = points(data, x, y, true),
n = xv.length,
bw = Math.max(2, ~~(bandwidth * n)),
// # nearest neighbors
yhat = new Float64Array(n),
residuals = new Float64Array(n),
robustWeights = new Float64Array(n).fill(1);
for (let iter = -1; ++iter <= maxiters;) {
const interval = [0, bw - 1];
for (let i = 0; i < n; ++i) {
const dx = xv[i],
i0 = interval[0],
i1 = interval[1],
edge = dx - xv[i0] > xv[i1] - dx ? i0 : i1;
let W = 0,
X = 0,
Y = 0,
XY = 0,
X2 = 0;
const denom = 1 / Math.abs(xv[edge] - dx || 1); // avoid singularity!
for (let k = i0; k <= i1; ++k) {
const xk = xv[k],
yk = yv[k],
w = tricube(Math.abs(dx - xk) * denom) * robustWeights[k],
xkw = xk * w;
W += w;
X += xkw;
Y += yk * w;
XY += yk * xkw;
X2 += xk * xkw;
} // linear regression fit
const [a, b] = ols(X / W, Y / W, XY / W, X2 / W);
yhat[i] = a + b * dx;
residuals[i] = Math.abs(yv[i] - yhat[i]);
updateInterval(xv, i + 1, interval);
}
if (iter === maxiters) {
break;
}
const medianResidual = median(residuals);
if (Math.abs(medianResidual) < epsilon$5) break;
for (let i = 0, arg, w; i < n; ++i) {
arg = residuals[i] / (6 * medianResidual); // default to epsilon (rather than zero) for large deviations
// keeping weights tiny but non-zero prevents singularites
robustWeights[i] = arg >= 1 ? epsilon$5 : (w = 1 - arg * arg) * w;
}
}
return output$1(xv, yhat, ux, uy);
} // weighting kernel for local regression
function tricube(x) {
return (x = 1 - x * x * x) * x * x;
} // advance sliding window interval of nearest neighbors
function updateInterval(xv, i, interval) {
const val = xv[i];
let left = interval[0],
right = interval[1] + 1;
if (right >= xv.length) return; // step right if distance to new right edge is <= distance to old left edge
// step when distance is equal to ensure movement over duplicate x values
while (i > left && xv[right] - val <= val - xv[left]) {
interval[0] = ++left;
interval[1] = right;
++right;
}
} // generate smoothed output points
// average points with repeated x values
function output$1(xv, yhat, ux, uy) {
const n = xv.length,
out = [];
let i = 0,
cnt = 0,
prev = [],
v;
for (; i < n; ++i) {
v = xv[i] + ux;
if (prev[0] === v) {
// average output values via online update
prev[1] += (yhat[i] - prev[1]) / ++cnt;
} else {
// add new output point
cnt = 0;
prev[1] += uy;
prev = [v, yhat[i]];
out.push(prev);
}
}
prev[1] += uy;
return out;
} // subdivide up to accuracy of 0.5 degrees
const MIN_RADIANS = 0.5 * Math.PI / 180; // Adaptively sample an interpolated function over a domain extent
function sampleCurve(f, extent, minSteps, maxSteps) {
minSteps = minSteps || 25;
maxSteps = Math.max(minSteps, maxSteps || 200);
const point = x => [x, f(x)],
minX = extent[0],
maxX = extent[1],
span = maxX - minX,
stop = span / maxSteps,
prev = [point(minX)],
next = [];
if (minSteps === maxSteps) {
// no adaptation, sample uniform grid directly and return
for (let i = 1; i < maxSteps; ++i) {
prev.push(point(minX + i / minSteps * span));
}
prev.push(point(maxX));
return prev;
} else {
// sample minimum points on uniform grid
// then move on to perform adaptive refinement
next.push(point(maxX));
for (let i = minSteps; --i > 0;) {
next.push(point(minX + i / minSteps * span));
}
}
let p0 = prev[0];
let p1 = next[next.length - 1];
const sx = 1 / span;
const sy = scaleY(p0[1], next);
while (p1) {
// midpoint for potential curve subdivision
const pm = point((p0[0] + p1[0]) / 2);
const dx = pm[0] - p0[0] >= stop;
if (dx && angleDelta(p0, pm, p1, sx, sy) > MIN_RADIANS) {
// maximum resolution has not yet been met, and
// subdivision midpoint is sufficiently different from endpoint
// save subdivision, push midpoint onto the visitation stack
next.push(pm);
} else {
// subdivision midpoint sufficiently similar to endpoint
// skip subdivision, store endpoint, move to next point on the stack
p0 = p1;
prev.push(p1);
next.pop();
}
p1 = next[next.length - 1];
}
return prev;
}
function scaleY(init, points) {
let ymin = init;
let ymax = init;
const n = points.length;
for (let i = 0; i < n; ++i) {
const y = points[i][1];
if (y < ymin) ymin = y;
if (y > ymax) ymax = y;
}
return 1 / (ymax - ymin);
}
function angleDelta(p, q, r, sx, sy) {
const a0 = Math.atan2(sy * (r[1] - p[1]), sx * (r[0] - p[0])),
a1 = Math.atan2(sy * (q[1] - p[1]), sx * (q[0] - p[0]));
return Math.abs(a0 - a1);
}
function multikey(f) {
return x => {
const n = f.length;
let i = 1,
k = String(f[0](x));
for (; i < n; ++i) {
k += '|' + f[i](x);
}
return k;
};
}
function groupkey(fields) {
return !fields || !fields.length ? function () {
return '';
} : fields.length === 1 ? fields[0] : multikey(fields);
}
function measureName(op, field, as) {
return as || op + (!field ? '' : '_' + field);
}
const noop$4 = () => {};
const base_op = {
init: noop$4,
add: noop$4,
rem: noop$4,
idx: 0
};
const AggregateOps = {
values: {
init: m => m.cell.store = true,
value: m => m.cell.data.values(),
idx: -1
},
count: {
value: m => m.cell.num
},
__count__: {
value: m => m.missing + m.valid
},
missing: {
value: m => m.missing
},
valid: {
value: m => m.valid
},
sum: {
init: m => m.sum = 0,
value: m => m.sum,
add: (m, v) => m.sum += +v,
rem: (m, v) => m.sum -= v
},
product: {
init: m => m.product = 1,
value: m => m.valid ? m.product : undefined,
add: (m, v) => m.product *= v,
rem: (m, v) => m.product /= v
},
mean: {
init: m => m.mean = 0,
value: m => m.valid ? m.mean : undefined,
add: (m, v) => (m.mean_d = v - m.mean, m.mean += m.mean_d / m.valid),
rem: (m, v) => (m.mean_d = v - m.mean, m.mean -= m.valid ? m.mean_d / m.valid : m.mean)
},
average: {
value: m => m.valid ? m.mean : undefined,
req: ['mean'],
idx: 1
},
variance: {
init: m => m.dev = 0,
value: m => m.valid > 1 ? m.dev / (m.valid - 1) : undefined,
add: (m, v) => m.dev += m.mean_d * (v - m.mean),
rem: (m, v) => m.dev -= m.mean_d * (v - m.mean),
req: ['mean'],
idx: 1
},
variancep: {
value: m => m.valid > 1 ? m.dev / m.valid : undefined,
req: ['variance'],
idx: 2
},
stdev: {
value: m => m.valid > 1 ? Math.sqrt(m.dev / (m.valid - 1)) : undefined,
req: ['variance'],
idx: 2
},
stdevp: {
value: m => m.valid > 1 ? Math.sqrt(m.dev / m.valid) : undefined,
req: ['variance'],
idx: 2
},
stderr: {
value: m => m.valid > 1 ? Math.sqrt(m.dev / (m.valid * (m.valid - 1))) : undefined,
req: ['variance'],
idx: 2
},
distinct: {
value: m => m.cell.data.distinct(m.get),
req: ['values'],
idx: 3
},
ci0: {
value: m => m.cell.data.ci0(m.get),
req: ['values'],
idx: 3
},
ci1: {
value: m => m.cell.data.ci1(m.get),
req: ['values'],
idx: 3
},
median: {
value: m => m.cell.data.q2(m.get),
req: ['values'],
idx: 3
},
q1: {
value: m => m.cell.data.q1(m.get),
req: ['values'],
idx: 3
},
q3: {
value: m => m.cell.data.q3(m.get),
req: ['values'],
idx: 3
},
min: {
init: m => m.min = undefined,
value: m => m.min = Number.isNaN(m.min) ? m.cell.data.min(m.get) : m.min,
add: (m, v) => {
if (v < m.min || m.min === undefined) m.min = v;
},
rem: (m, v) => {
if (v <= m.min) m.min = NaN;
},
req: ['values'],
idx: 4
},
max: {
init: m => m.max = undefined,
value: m => m.max = Number.isNaN(m.max) ? m.cell.data.max(m.get) : m.max,
add: (m, v) => {
if (v > m.max || m.max === undefined) m.max = v;
},
rem: (m, v) => {
if (v >= m.max) m.max = NaN;
},
req: ['values'],
idx: 4
},
argmin: {
init: m => m.argmin = undefined,
value: m => m.argmin || m.cell.data.argmin(m.get),
add: (m, v, t) => {
if (v < m.min) m.argmin = t;
},
rem: (m, v) => {
if (v <= m.min) m.argmin = undefined;
},
req: ['min', 'values'],
idx: 3
},
argmax: {
init: m => m.argmax = undefined,
value: m => m.argmax || m.cell.data.argmax(m.get),
add: (m, v, t) => {
if (v > m.max) m.argmax = t;
},
rem: (m, v) => {
if (v >= m.max) m.argmax = undefined;
},
req: ['max', 'values'],
idx: 3
}
};
const ValidAggregateOps = Object.keys(AggregateOps);
function measure(key, value) {
return out => extend$1({
name: key,
out: out || key
}, base_op, value);
}
ValidAggregateOps.forEach(key => {
AggregateOps[key] = measure(key, AggregateOps[key]);
});
function createMeasure(op, name) {
return AggregateOps[op](name);
}
function compareIndex(a, b) {
return a.idx - b.idx;
}
function resolve(agg) {
const map = {};
agg.forEach(a => map[a.name] = a);
const getreqs = a => {
if (!a.req) return;
a.req.forEach(key => {
if (!map[key]) getreqs(map[key] = AggregateOps[key]());
});
};
agg.forEach(getreqs);
return Object.values(map).sort(compareIndex);
}
function init() {
this.valid = 0;
this.missing = 0;
this._ops.forEach(op => op.init(this));
}
function add$2(v, t) {
if (v == null || v === '') {
++this.missing;
return;
}
if (v !== v) return;
++this.valid;
this._ops.forEach(op => op.add(this, v, t));
}
function rem(v, t) {
if (v == null || v === '') {
--this.missing;
return;
}
if (v !== v) return;
--this.valid;
this._ops.forEach(op => op.rem(this, v, t));
}
function set$3(t) {
this._out.forEach(op => t[op.out] = op.value(this));
return t;
}
function compileMeasures(agg, field) {
const get = field || identity$6,
ops = resolve(agg),
out = agg.slice().sort(compareIndex);
function ctr(cell) {
this._ops = ops;
this._out = out;
this.cell = cell;
this.init();
}
ctr.prototype.init = init;
ctr.prototype.add = add$2;
ctr.prototype.rem = rem;
ctr.prototype.set = set$3;
ctr.prototype.get = get;
ctr.fields = agg.map(op => op.out);
return ctr;
}
function TupleStore(key) {
this._key = key ? field$1(key) : tupleid;
this.reset();
}
const prototype$1 = TupleStore.prototype;
prototype$1.reset = function () {
this._add = [];
this._rem = [];
this._ext = null;
this._get = null;
this._q = null;
};
prototype$1.add = function (v) {
this._add.push(v);
};
prototype$1.rem = function (v) {
this._rem.push(v);
};
prototype$1.values = function () {
this._get = null;
if (this._rem.length === 0) return this._add;
const a = this._add,
r = this._rem,
k = this._key,
n = a.length,
m = r.length,
x = Array(n - m),
map = {};
let i, j, v; // use unique key field to clear removed values
for (i = 0; i < m; ++i) {
map[k(r[i])] = 1;
}
for (i = 0, j = 0; i < n; ++i) {
if (map[k(v = a[i])]) {
map[k(v)] = 0;
} else {
x[j++] = v;
}
}
this._rem = [];
return this._add = x;
}; // memoizing statistics methods
prototype$1.distinct = function (get) {
const v = this.values(),
map = {};
let n = v.length,
count = 0,
s;
while (--n >= 0) {
s = get(v[n]) + '';
if (!has$1(map, s)) {
map[s] = 1;
++count;
}
}
return count;
};
prototype$1.extent = function (get) {
if (this._get !== get || !this._ext) {
const v = this.values(),
i = extentIndex(v, get);
this._ext = [v[i[0]], v[i[1]]];
this._get = get;
}
return this._ext;
};
prototype$1.argmin = function (get) {
return this.extent(get)[0] || {};
};
prototype$1.argmax = function (get) {
return this.extent(get)[1] || {};
};
prototype$1.min = function (get) {
const m = this.extent(get)[0];
return m != null ? get(m) : undefined;
};
prototype$1.max = function (get) {
const m = this.extent(get)[1];
return m != null ? get(m) : undefined;
};
prototype$1.quartile = function (get) {
if (this._get !== get || !this._q) {
this._q = quartiles(this.values(), get);
this._get = get;
}
return this._q;
};
prototype$1.q1 = function (get) {
return this.quartile(get)[0];
};
prototype$1.q2 = function (get) {
return this.quartile(get)[1];
};
prototype$1.q3 = function (get) {
return this.quartile(get)[2];
};
prototype$1.ci = function (get) {
if (this._get !== get || !this._ci) {
this._ci = bootstrapCI(this.values(), 1000, 0.05, get);
this._get = get;
}
return this._ci;
};
prototype$1.ci0 = function (get) {
return this.ci(get)[0];
};
prototype$1.ci1 = function (get) {
return this.ci(get)[1];
};
/**
* Group-by aggregation operator.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<function(object): *>} [params.groupby] - An array of accessors to groupby.
* @param {Array<function(object): *>} [params.fields] - An array of accessors to aggregate.
* @param {Array<string>} [params.ops] - An array of strings indicating aggregation operations.
* @param {Array<string>} [params.as] - An array of output field names for aggregated values.
* @param {boolean} [params.cross=false] - A flag indicating that the full
* cross-product of groupby values should be generated, including empty cells.
* If true, the drop parameter is ignored and empty cells are retained.
* @param {boolean} [params.drop=true] - A flag indicating if empty cells should be removed.
*/
function Aggregate$1(params) {
Transform.call(this, null, params);
this._adds = []; // array of added output tuples
this._mods = []; // array of modified output tuples
this._alen = 0; // number of active added tuples
this._mlen = 0; // number of active modified tuples
this._drop = true; // should empty aggregation cells be removed
this._cross = false; // produce full cross-product of group-by values
this._dims = []; // group-by dimension accessors
this._dnames = []; // group-by dimension names
this._measures = []; // collection of aggregation monoids
this._countOnly = false; // flag indicating only count aggregation
this._counts = null; // collection of count fields
this._prev = null; // previous aggregation cells
this._inputs = null; // array of dependent input tuple field names
this._outputs = null; // array of output tuple field names
}
Aggregate$1.Definition = {
'type': 'Aggregate',
'metadata': {
'generates': true,
'changes': true
},
'params': [{
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'ops',
'type': 'enum',
'array': true,
'values': ValidAggregateOps
}, {
'name': 'fields',
'type': 'field',
'null': true,
'array': true
}, {
'name': 'as',
'type': 'string',
'null': true,
'array': true
}, {
'name': 'drop',
'type': 'boolean',
'default': true
}, {
'name': 'cross',
'type': 'boolean',
'default': false
}, {
'name': 'key',
'type': 'field'
}]
};
inherits(Aggregate$1, Transform, {
transform(_, pulse) {
const aggr = this,
out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),
mod = _.modified();
aggr.stamp = out.stamp;
if (aggr.value && (mod || pulse.modified(aggr._inputs, true))) {
aggr._prev = aggr.value;
aggr.value = mod ? aggr.init(_) : {};
pulse.visit(pulse.SOURCE, t => aggr.add(t));
} else {
aggr.value = aggr.value || aggr.init(_);
pulse.visit(pulse.REM, t => aggr.rem(t));
pulse.visit(pulse.ADD, t => aggr.add(t));
} // Indicate output fields and return aggregate tuples.
out.modifies(aggr._outputs); // Should empty cells be dropped?
aggr._drop = _.drop !== false; // If domain cross-product requested, generate empty cells as needed
// and ensure that empty cells are not dropped
if (_.cross && aggr._dims.length > 1) {
aggr._drop = false;
aggr.cross();
}
if (pulse.clean() && aggr._drop) {
out.clean(true).runAfter(() => this.clean());
}
return aggr.changes(out);
},
cross() {
const aggr = this,
curr = aggr.value,
dims = aggr._dnames,
vals = dims.map(() => ({})),
n = dims.length; // collect all group-by domain values
function collect(cells) {
let key, i, t, v;
for (key in cells) {
t = cells[key].tuple;
for (i = 0; i < n; ++i) {
vals[i][v = t[dims[i]]] = v;
}
}
}
collect(aggr._prev);
collect(curr); // iterate over key cross-product, create cells as needed
function generate(base, tuple, index) {
const name = dims[index],
v = vals[index++];
for (const k in v) {
const key = base ? base + '|' + k : k;
tuple[name] = v[k];
if (index < n) generate(key, tuple, index);else if (!curr[key]) aggr.cell(key, tuple);
}
}
generate('', {}, 0);
},
init(_) {
// initialize input and output fields
const inputs = this._inputs = [],
outputs = this._outputs = [],
inputMap = {};
function inputVisit(get) {
const fields = array$5(accessorFields(get)),
n = fields.length;
let i = 0,
f;
for (; i < n; ++i) {
if (!inputMap[f = fields[i]]) {
inputMap[f] = 1;
inputs.push(f);
}
}
} // initialize group-by dimensions
this._dims = array$5(_.groupby);
this._dnames = this._dims.map(d => {
const dname = accessorName(d);
inputVisit(d);
outputs.push(dname);
return dname;
});
this.cellkey = _.key ? _.key : groupkey(this._dims); // initialize aggregate measures
this._countOnly = true;
this._counts = [];
this._measures = [];
const fields = _.fields || [null],
ops = _.ops || ['count'],
as = _.as || [],
n = fields.length,
map = {};
let field, op, m, mname, outname, i;
if (n !== ops.length) {
error('Unmatched number of fields and aggregate ops.');
}
for (i = 0; i < n; ++i) {
field = fields[i];
op = ops[i];
if (field == null && op !== 'count') {
error('Null aggregate field specified.');
}
mname = accessorName(field);
outname = measureName(op, mname, as[i]);
outputs.push(outname);
if (op === 'count') {
this._counts.push(outname);
continue;
}
m = map[mname];
if (!m) {
inputVisit(field);
m = map[mname] = [];
m.field = field;
this._measures.push(m);
}
if (op !== 'count') this._countOnly = false;
m.push(createMeasure(op, outname));
}
this._measures = this._measures.map(m => compileMeasures(m, m.field));
return {}; // aggregation cells (this.value)
},
// -- Cell Management -----
cellkey: groupkey(),
cell(key, t) {
let cell = this.value[key];
if (!cell) {
cell = this.value[key] = this.newcell(key, t);
this._adds[this._alen++] = cell;
} else if (cell.num === 0 && this._drop && cell.stamp < this.stamp) {
cell.stamp = this.stamp;
this._adds[this._alen++] = cell;
} else if (cell.stamp < this.stamp) {
cell.stamp = this.stamp;
this._mods[this._mlen++] = cell;
}
return cell;
},
newcell(key, t) {
const cell = {
key: key,
num: 0,
agg: null,
tuple: this.newtuple(t, this._prev && this._prev[key]),
stamp: this.stamp,
store: false
};
if (!this._countOnly) {
const measures = this._measures,
n = measures.length;
cell.agg = Array(n);
for (let i = 0; i < n; ++i) {
cell.agg[i] = new measures[i](cell);
}
}
if (cell.store) {
cell.data = new TupleStore();
}
return cell;
},
newtuple(t, p) {
const names = this._dnames,
dims = this._dims,
n = dims.length,
x = {};
for (let i = 0; i < n; ++i) {
x[names[i]] = dims[i](t);
}
return p ? replace$1(p.tuple, x) : ingest$1(x);
},
clean() {
const cells = this.value;
for (const key in cells) {
if (cells[key].num === 0) {
delete cells[key];
}
}
},
// -- Process Tuples -----
add(t) {
const key = this.cellkey(t),
cell = this.cell(key, t);
cell.num += 1;
if (this._countOnly) return;
if (cell.store) cell.data.add(t);
const agg = cell.agg;
for (let i = 0, n = agg.length; i < n; ++i) {
agg[i].add(agg[i].get(t), t);
}
},
rem(t) {
const key = this.cellkey(t),
cell = this.cell(key, t);
cell.num -= 1;
if (this._countOnly) return;
if (cell.store) cell.data.rem(t);
const agg = cell.agg;
for (let i = 0, n = agg.length; i < n; ++i) {
agg[i].rem(agg[i].get(t), t);
}
},
celltuple(cell) {
const tuple = cell.tuple,
counts = this._counts; // consolidate stored values
if (cell.store) {
cell.data.values();
} // update tuple properties
for (let i = 0, n = counts.length; i < n; ++i) {
tuple[counts[i]] = cell.num;
}
if (!this._countOnly) {
const agg = cell.agg;
for (let i = 0, n = agg.length; i < n; ++i) {
agg[i].set(tuple);
}
}
return tuple;
},
changes(out) {
const adds = this._adds,
mods = this._mods,
prev = this._prev,
drop = this._drop,
add = out.add,
rem = out.rem,
mod = out.mod;
let cell, key, i, n;
if (prev) for (key in prev) {
cell = prev[key];
if (!drop || cell.num) rem.push(cell.tuple);
}
for (i = 0, n = this._alen; i < n; ++i) {
add.push(this.celltuple(adds[i]));
adds[i] = null; // for garbage collection
}
for (i = 0, n = this._mlen; i < n; ++i) {
cell = mods[i];
(cell.num === 0 && drop ? rem : mod).push(this.celltuple(cell));
mods[i] = null; // for garbage collection
}
this._alen = this._mlen = 0; // reset list of active cells
this._prev = null;
return out;
}
});
const EPSILON$1 = 1e-14;
/**
* Generates a binning function for discretizing data.
* @constructor
* @param {object} params - The parameters for this operator. The
* provided values should be valid options for the {@link bin} function.
* @param {function(object): *} params.field - The data field to bin.
*/
function Bin(params) {
Transform.call(this, null, params);
}
Bin.Definition = {
'type': 'Bin',
'metadata': {
'modifies': true
},
'params': [{
'name': 'field',
'type': 'field',
'required': true
}, {
'name': 'interval',
'type': 'boolean',
'default': true
}, {
'name': 'anchor',
'type': 'number'
}, {
'name': 'maxbins',
'type': 'number',
'default': 20
}, {
'name': 'base',
'type': 'number',
'default': 10
}, {
'name': 'divide',
'type': 'number',
'array': true,
'default': [5, 2]
}, {
'name': 'extent',
'type': 'number',
'array': true,
'length': 2,
'required': true
}, {
'name': 'span',
'type': 'number'
}, {
'name': 'step',
'type': 'number'
}, {
'name': 'steps',
'type': 'number',
'array': true
}, {
'name': 'minstep',
'type': 'number',
'default': 0
}, {
'name': 'nice',
'type': 'boolean',
'default': true
}, {
'name': 'name',
'type': 'string'
}, {
'name': 'as',
'type': 'string',
'array': true,
'length': 2,
'default': ['bin0', 'bin1']
}]
};
inherits(Bin, Transform, {
transform(_, pulse) {
const band = _.interval !== false,
bins = this._bins(_),
start = bins.start,
step = bins.step,
as = _.as || ['bin0', 'bin1'],
b0 = as[0],
b1 = as[1];
let flag;
if (_.modified()) {
pulse = pulse.reflow(true);
flag = pulse.SOURCE;
} else {
flag = pulse.modified(accessorFields(_.field)) ? pulse.ADD_MOD : pulse.ADD;
}
pulse.visit(flag, band ? t => {
const v = bins(t); // minimum bin value (inclusive)
t[b0] = v; // maximum bin value (exclusive)
// use convoluted math for better floating point agreement
// see https://github.com/vega/vega/issues/830
// infinite values propagate through this formula! #2227
t[b1] = v == null ? null : start + step * (1 + (v - start) / step);
} : t => t[b0] = bins(t));
return pulse.modifies(band ? as : b0);
},
_bins(_) {
if (this.value && !_.modified()) {
return this.value;
}
const field = _.field,
bins = bin(_),
step = bins.step;
let start = bins.start,
stop = start + Math.ceil((bins.stop - start) / step) * step,
a,
d;
if ((a = _.anchor) != null) {
d = a - (start + step * Math.floor((a - start) / step));
start += d;
stop += d;
}
const f = function (t) {
let v = toNumber(field(t));
return v == null ? null : v < start ? -Infinity : v > stop ? +Infinity : (v = Math.max(start, Math.min(v, stop - step)), start + step * Math.floor(EPSILON$1 + (v - start) / step));
};
f.start = start;
f.stop = bins.stop;
f.step = step;
return this.value = accessor(f, accessorFields(field), _.name || 'bin_' + accessorName(field));
}
});
function SortedList(idFunc, source, input) {
const $ = idFunc;
let data = source || [],
add = input || [],
rem = {},
cnt = 0;
return {
add: t => add.push(t),
remove: t => rem[$(t)] = ++cnt,
size: () => data.length,
data: (compare, resort) => {
if (cnt) {
data = data.filter(t => !rem[$(t)]);
rem = {};
cnt = 0;
}
if (resort && compare) {
data.sort(compare);
}
if (add.length) {
data = compare ? merge$3(compare, data, add.sort(compare)) : data.concat(add);
add = [];
}
return data;
}
};
}
/**
* Collects all data tuples that pass through this operator.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(*,*): number} [params.sort] - An optional
* comparator function for additionally sorting the collected tuples.
*/
function Collect$1(params) {
Transform.call(this, [], params);
}
Collect$1.Definition = {
'type': 'Collect',
'metadata': {
'source': true
},
'params': [{
'name': 'sort',
'type': 'compare'
}]
};
inherits(Collect$1, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.ALL),
list = SortedList(tupleid, this.value, out.materialize(out.ADD).add),
sort = _.sort,
mod = pulse.changed() || sort && (_.modified('sort') || pulse.modified(sort.fields));
out.visit(out.REM, list.remove);
this.modified(mod);
this.value = out.source = list.data(stableCompare(sort), mod); // propagate tree root if defined
if (pulse.source && pulse.source.root) {
this.value.root = pulse.source.root;
}
return out;
}
});
/**
* Generates a comparator function.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<string|function>} params.fields - The fields to compare.
* @param {Array<string>} [params.orders] - The sort orders.
* Each entry should be one of "ascending" (default) or "descending".
*/
function Compare$1(params) {
Operator.call(this, null, update$5, params);
}
inherits(Compare$1, Operator);
function update$5(_) {
return this.value && !_.modified() ? this.value : compare$1(_.fields, _.orders);
}
/**
* Count regexp-defined pattern occurrences in a text field.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - An accessor for the text field.
* @param {string} [params.pattern] - RegExp string defining the text pattern.
* @param {string} [params.case] - One of 'lower', 'upper' or null (mixed) case.
* @param {string} [params.stopwords] - RegExp string of words to ignore.
*/
function CountPattern(params) {
Transform.call(this, null, params);
}
CountPattern.Definition = {
'type': 'CountPattern',
'metadata': {
'generates': true,
'changes': true
},
'params': [{
'name': 'field',
'type': 'field',
'required': true
}, {
'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': true,
'length': 2,
'default': ['text', 'count']
}]
};
function tokenize(text, tcase, match) {
switch (tcase) {
case 'upper':
text = text.toUpperCase();
break;
case 'lower':
text = text.toLowerCase();
break;
}
return text.match(match);
}
inherits(CountPattern, Transform, {
transform(_, pulse) {
const process = update => tuple => {
var tokens = tokenize(get(tuple), _.case, match) || [],
t;
for (var i = 0, n = tokens.length; i < n; ++i) {
if (!stop.test(t = tokens[i])) update(t);
}
};
const init = this._parameterCheck(_, pulse),
counts = this._counts,
match = this._match,
stop = this._stop,
get = _.field,
as = _.as || ['text', 'count'],
add = process(t => counts[t] = 1 + (counts[t] || 0)),
rem = process(t => counts[t] -= 1);
if (init) {
pulse.visit(pulse.SOURCE, add);
} else {
pulse.visit(pulse.ADD, add);
pulse.visit(pulse.REM, rem);
}
return this._finish(pulse, as); // generate output tuples
},
_parameterCheck(_, pulse) {
let init = false;
if (_.modified('stopwords') || !this._stop) {
this._stop = new RegExp('^' + (_.stopwords || '') + '$', 'i');
init = true;
}
if (_.modified('pattern') || !this._match) {
this._match = new RegExp(_.pattern || '[\\w\']+', 'g');
init = true;
}
if (_.modified('field') || pulse.modified(_.field.fields)) {
init = true;
}
if (init) this._counts = {};
return init;
},
_finish(pulse, as) {
const counts = this._counts,
tuples = this._tuples || (this._tuples = {}),
text = as[0],
count = as[1],
out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);
let w, t, c;
for (w in counts) {
t = tuples[w];
c = counts[w] || 0;
if (!t && c) {
tuples[w] = t = ingest$1({});
t[text] = w;
t[count] = c;
out.add.push(t);
} else if (c === 0) {
if (t) out.rem.push(t);
counts[w] = null;
tuples[w] = null;
} else if (t[count] !== c) {
t[count] = c;
out.mod.push(t);
}
}
return out.modifies(as);
}
});
/**
* Perform a cross-product of a tuple stream with itself.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object):boolean} [params.filter] - An optional filter
* function for selectively including tuples in the cross product.
* @param {Array<string>} [params.as] - The names of the output fields.
*/
function Cross(params) {
Transform.call(this, null, params);
}
Cross.Definition = {
'type': 'Cross',
'metadata': {
'generates': true
},
'params': [{
'name': 'filter',
'type': 'expr'
}, {
'name': 'as',
'type': 'string',
'array': true,
'length': 2,
'default': ['a', 'b']
}]
};
inherits(Cross, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE),
as = _.as || ['a', 'b'],
a = as[0],
b = as[1],
reset = !this.value || pulse.changed(pulse.ADD_REM) || _.modified('as') || _.modified('filter');
let data = this.value;
if (reset) {
if (data) out.rem = data;
data = pulse.materialize(pulse.SOURCE).source;
out.add = this.value = cross(data, a, b, _.filter || truthy);
} else {
out.mod = data;
}
out.source = this.value;
return out.modifies(as);
}
});
function cross(input, a, b, filter) {
var data = [],
t = {},
n = input.length,
i = 0,
j,
left;
for (; i < n; ++i) {
t[a] = left = input[i];
for (j = 0; j < n; ++j) {
t[b] = input[j];
if (filter(t)) {
data.push(ingest$1(t));
t = {};
t[a] = left;
}
}
}
return data;
}
const Distributions = {
kde: kde,
mixture: mixture$1,
normal: gaussian,
lognormal: lognormal,
uniform: uniform
};
const DISTRIBUTIONS = 'distributions',
FUNCTION = 'function',
FIELD = 'field';
/**
* Parse a parameter object for a probability distribution.
* @param {object} def - The distribution parameter object.
* @param {function():Array<object>} - A method for requesting
* source data. Used for distributions (such as KDE) that
* require sample data points. This method will only be
* invoked if the 'from' parameter for a target data source
* is not provided. Typically this method returns backing
* source data for a Pulse object.
* @return {object} - The output distribution object.
*/
function parse$3(def, data) {
const func = def[FUNCTION];
if (!has$1(Distributions, func)) {
error('Unknown distribution function: ' + func);
}
const d = Distributions[func]();
for (const name in def) {
// if data field, extract values
if (name === FIELD) {
d.data((def.from || data()).map(def[name]));
} // if distribution mixture, recurse to parse each definition
else if (name === DISTRIBUTIONS) {
d[name](def[name].map(_ => parse$3(_, data)));
} // otherwise, simply set the parameter
else if (typeof d[name] === FUNCTION) {
d[name](def[name]);
}
}
return d;
}
/**
* Grid sample points for a probability density. Given a distribution and
* a sampling extent, will generate points suitable for plotting either
* PDF (probability density function) or CDF (cumulative distribution
* function) curves.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {object} params.distribution - The probability distribution. This
* is an object parameter dependent on the distribution type.
* @param {string} [params.method='pdf'] - The distribution method to sample.
* One of 'pdf' or 'cdf'.
* @param {Array<number>} [params.extent] - The [min, max] extent over which
* to sample the distribution. This argument is required in most cases, but
* can be omitted if the distribution (e.g., 'kde') supports a 'data' method
* that returns numerical sample points from which the extent can be deduced.
* @param {number} [params.minsteps=25] - The minimum number of curve samples
* for plotting the density.
* @param {number} [params.maxsteps=200] - The maximum number of curve samples
* for plotting the density.
* @param {number} [params.steps] - The exact number of curve samples for
* plotting the density. If specified, overrides both minsteps and maxsteps
* to set an exact number of uniform samples. Useful in conjunction with
* a fixed extent to ensure consistent sample points for stacked densities.
*/
function Density(params) {
Transform.call(this, null, params);
}
const distributions = [{
'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': true
}, {
'name': 'from',
'type': 'data'
}, {
'name': 'bandwidth',
'type': 'number',
'default': 0
}]
}];
const mixture = {
'key': {
'function': 'mixture'
},
'params': [{
'name': 'distributions',
'type': 'param',
'array': true,
'params': distributions
}, {
'name': 'weights',
'type': 'number',
'array': true
}]
};
Density.Definition = {
'type': 'Density',
'metadata': {
'generates': true
},
'params': [{
'name': 'extent',
'type': 'number',
'array': true,
'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': distributions.concat(mixture)
}, {
'name': 'as',
'type': 'string',
'array': true,
'default': ['value', 'density']
}]
};
inherits(Density, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);
if (!this.value || pulse.changed() || _.modified()) {
const dist = parse$3(_.distribution, source$1(pulse)),
minsteps = _.steps || _.minsteps || 25,
maxsteps = _.steps || _.maxsteps || 200;
let method = _.method || 'pdf';
if (method !== 'pdf' && method !== 'cdf') {
error('Invalid density method: ' + method);
}
if (!_.extent && !dist.data) {
error('Missing density extent parameter.');
}
method = dist[method];
const as = _.as || ['value', 'density'],
domain = _.extent || extent(dist.data()),
values = sampleCurve(method, domain, minsteps, maxsteps).map(v => {
const tuple = {};
tuple[as[0]] = v[0];
tuple[as[1]] = v[1];
return ingest$1(tuple);
});
if (this.value) out.rem = this.value;
this.value = out.add = out.source = values;
}
return out;
}
});
function source$1(pulse) {
return () => pulse.materialize(pulse.SOURCE).source;
}
function fieldNames(fields, as) {
if (!fields) return null;
return fields.map((f, i) => as[i] || accessorName(f));
}
function partition$1$1(data, groupby, field) {
const groups = [],
get = f => f(t);
let map, i, n, t, k, g; // partition data points into groups
if (groupby == null) {
groups.push(data.map(field));
} else {
for (map = {}, i = 0, n = data.length; i < n; ++i) {
t = data[i];
k = groupby.map(get);
g = map[k];
if (!g) {
map[k] = g = [];
g.dims = k;
groups.push(g);
}
g.push(field(t));
}
}
return groups;
}
const Output$5 = 'bin';
/**
* Dot density binning for dot plot construction.
* Based on Leland Wilkinson, Dot Plots, The American Statistician, 1999.
* https://www.cs.uic.edu/~wilkinson/Publications/dotplots.pdf
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - The value field to bin.
* @param {Array<function(object): *>} [params.groupby] - An array of accessors to groupby.
* @param {number} [params.step] - The step size (bin width) within which dots should be
* stacked. Defaults to 1/30 of the extent of the data *field*.
* @param {boolean} [params.smooth=false] - A boolean flag indicating if dot density
* stacks should be smoothed to reduce variance.
*/
function DotBin(params) {
Transform.call(this, null, params);
}
DotBin.Definition = {
'type': 'DotBin',
'metadata': {
'modifies': true
},
'params': [{
'name': 'field',
'type': 'field',
'required': true
}, {
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'step',
'type': 'number'
}, {
'name': 'smooth',
'type': 'boolean',
'default': false
}, {
'name': 'as',
'type': 'string',
'default': Output$5
}]
};
const autostep = (data, field) => span(extent(data, field)) / 30;
inherits(DotBin, Transform, {
transform(_, pulse) {
if (this.value && !(_.modified() || pulse.changed())) {
return pulse; // early exit
}
const source = pulse.materialize(pulse.SOURCE).source,
groups = partition$1$1(pulse.source, _.groupby, identity$6),
smooth = _.smooth || false,
field = _.field,
step = _.step || autostep(source, field),
sort = stableCompare((a, b) => field(a) - field(b)),
as = _.as || Output$5,
n = groups.length; // compute dotplot bins per group
let min = Infinity,
max = -Infinity,
i = 0,
j;
for (; i < n; ++i) {
const g = groups[i].sort(sort);
j = -1;
for (const v of dotbin(g, step, smooth, field)) {
if (v < min) min = v;
if (v > max) max = v;
g[++j][as] = v;
}
}
this.value = {
start: min,
stop: max,
step: step
};
return pulse.reflow(true).modifies(as);
}
});
/**
* Wraps an expression function with access to external parameters.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function} params.expr - The expression function. The
* function should accept both a datum and a parameter object.
* This operator's value will be a new function that wraps the
* expression function with access to this operator's parameters.
*/
function Expression$1(params) {
Operator.call(this, null, update$4, params);
this.modified(true);
}
inherits(Expression$1, Operator);
function update$4(_) {
const expr = _.expr;
return this.value && !_.modified('expr') ? this.value : accessor(datum => expr(datum, _), accessorFields(expr), accessorName(expr));
}
/**
* Computes extents (min/max) for a data field.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - The field over which to compute extends.
*/
function Extent(params) {
Transform.call(this, [undefined, undefined], params);
}
Extent.Definition = {
'type': 'Extent',
'metadata': {},
'params': [{
'name': 'field',
'type': 'field',
'required': true
}]
};
inherits(Extent, Transform, {
transform(_, pulse) {
const extent = this.value,
field = _.field,
mod = pulse.changed() || pulse.modified(field.fields) || _.modified('field');
let min = extent[0],
max = extent[1];
if (mod || min == null) {
min = +Infinity;
max = -Infinity;
}
pulse.visit(mod ? pulse.SOURCE : pulse.ADD, t => {
const v = toNumber(field(t));
if (v != null) {
// NaNs will fail all comparisons!
if (v < min) min = v;
if (v > max) max = v;
}
});
if (!Number.isFinite(min) || !Number.isFinite(max)) {
let name = accessorName(field);
if (name) name = ` for field "${name}"`;
pulse.dataflow.warn(`Infinite extent${name}: [${min}, ${max}]`);
min = max = undefined;
}
this.value = [min, max];
}
});
/**
* Provides a bridge between a parent transform and a target subflow that
* consumes only a subset of the tuples that pass through the parent.
* @constructor
* @param {Pulse} pulse - A pulse to use as the value of this operator.
* @param {Transform} parent - The parent transform (typically a Facet instance).
*/
function Subflow(pulse, parent) {
Operator.call(this, pulse);
this.parent = parent;
this.count = 0;
}
inherits(Subflow, Operator, {
/**
* Routes pulses from this subflow to a target transform.
* @param {Transform} target - A transform that receives the subflow of tuples.
*/
connect(target) {
this.detachSubflow = target.detachSubflow;
this.targets().add(target);
return target.source = this;
},
/**
* Add an 'add' tuple to the subflow pulse.
* @param {Tuple} t - The tuple being added.
*/
add(t) {
this.count += 1;
this.value.add.push(t);
},
/**
* Add a 'rem' tuple to the subflow pulse.
* @param {Tuple} t - The tuple being removed.
*/
rem(t) {
this.count -= 1;
this.value.rem.push(t);
},
/**
* Add a 'mod' tuple to the subflow pulse.
* @param {Tuple} t - The tuple being modified.
*/
mod(t) {
this.value.mod.push(t);
},
/**
* Re-initialize this operator's pulse value.
* @param {Pulse} pulse - The pulse to copy from.
* @see Pulse.init
*/
init(pulse) {
this.value.init(pulse, pulse.NO_SOURCE);
},
/**
* Evaluate this operator. This method overrides the
* default behavior to simply return the contained pulse value.
* @return {Pulse}
*/
evaluate() {
// assert: this.value.stamp === pulse.stamp
return this.value;
}
});
/**
* Facets a dataflow into a set of subflows based on a key.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(Dataflow, string): Operator} params.subflow - A function
* that generates a subflow of operators and returns its root operator.
* @param {function(object): *} params.key - The key field to facet by.
*/
function Facet$1(params) {
Transform.call(this, {}, params);
this._keys = fastmap(); // cache previously calculated key values
// keep track of active subflows, use as targets array for listeners
// this allows us to limit propagation to only updated subflows
const a = this._targets = [];
a.active = 0;
a.forEach = f => {
for (let i = 0, n = a.active; i < n; ++i) {
f(a[i], i, a);
}
};
}
inherits(Facet$1, Transform, {
activate(flow) {
this._targets[this._targets.active++] = flow;
},
// parent argument provided by PreFacet subclass
subflow(key, flow, pulse, parent) {
const flows = this.value;
let sf = has$1(flows, key) && flows[key],
df,
p;
if (!sf) {
p = parent || (p = this._group[key]) && p.tuple;
df = pulse.dataflow;
sf = new Subflow(pulse.fork(pulse.NO_SOURCE), this);
df.add(sf).connect(flow(df, key, p));
flows[key] = sf;
this.activate(sf);
} else if (sf.value.stamp < pulse.stamp) {
sf.init(pulse);
this.activate(sf);
}
return sf;
},
clean() {
const flows = this.value;
let detached = 0;
for (const key in flows) {
if (flows[key].count === 0) {
const detach = flows[key].detachSubflow;
if (detach) detach();
delete flows[key];
++detached;
}
} // remove inactive targets from the active targets array
if (detached) {
const active = this._targets.filter(sf => sf && sf.count > 0);
this.initTargets(active);
}
},
initTargets(act) {
const a = this._targets,
n = a.length,
m = act ? act.length : 0;
let i = 0;
for (; i < m; ++i) {
a[i] = act[i];
}
for (; i < n && a[i] != null; ++i) {
a[i] = null; // ensure old flows can be garbage collected
}
a.active = m;
},
transform(_, pulse) {
const df = pulse.dataflow,
key = _.key,
flow = _.subflow,
cache = this._keys,
rekey = _.modified('key'),
subflow = key => this.subflow(key, flow, pulse);
this._group = _.group || {};
this.initTargets(); // reset list of active subflows
pulse.visit(pulse.REM, t => {
const id = tupleid(t),
k = cache.get(id);
if (k !== undefined) {
cache.delete(id);
subflow(k).rem(t);
}
});
pulse.visit(pulse.ADD, t => {
const k = key(t);
cache.set(tupleid(t), k);
subflow(k).add(t);
});
if (rekey || pulse.modified(key.fields)) {
pulse.visit(pulse.MOD, t => {
const id = tupleid(t),
k0 = cache.get(id),
k1 = key(t);
if (k0 === k1) {
subflow(k1).mod(t);
} else {
cache.set(id, k1);
subflow(k0).rem(t);
subflow(k1).add(t);
}
});
} else if (pulse.changed(pulse.MOD)) {
pulse.visit(pulse.MOD, t => {
subflow(cache.get(tupleid(t))).mod(t);
});
}
if (rekey) {
pulse.visit(pulse.REFLOW, t => {
const id = tupleid(t),
k0 = cache.get(id),
k1 = key(t);
if (k0 !== k1) {
cache.set(id, k1);
subflow(k0).rem(t);
subflow(k1).add(t);
}
});
}
if (pulse.clean()) {
df.runAfter(() => {
this.clean();
cache.clean();
});
} else if (cache.empty > df.cleanThreshold) {
df.runAfter(cache.clean);
}
return pulse;
}
});
/**
* Generates one or more field accessor functions.
* If the 'name' parameter is an array, an array of field accessors
* will be created and the 'as' parameter will be ignored.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {string} params.name - The field name(s) to access.
* @param {string} params.as - The accessor function name.
*/
function Field$1(params) {
Operator.call(this, null, update$3, params);
}
inherits(Field$1, Operator);
function update$3(_) {
return this.value && !_.modified() ? this.value : isArray(_.name) ? array$5(_.name).map(f => field$1(f)) : field$1(_.name, _.as);
}
/**
* Filters data tuples according to a predicate function.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.expr - The predicate expression function
* that determines a tuple's filter status. Truthy values pass the filter.
*/
function Filter(params) {
Transform.call(this, fastmap(), params);
}
Filter.Definition = {
'type': 'Filter',
'metadata': {
'changes': true
},
'params': [{
'name': 'expr',
'type': 'expr',
'required': true
}]
};
inherits(Filter, Transform, {
transform(_, pulse) {
const df = pulse.dataflow,
cache = this.value,
// cache ids of filtered tuples
output = pulse.fork(),
add = output.add,
rem = output.rem,
mod = output.mod,
test = _.expr;
let isMod = true;
pulse.visit(pulse.REM, t => {
const id = tupleid(t);
if (!cache.has(id)) rem.push(t);else cache.delete(id);
});
pulse.visit(pulse.ADD, t => {
if (test(t, _)) add.push(t);else cache.set(tupleid(t), 1);
});
function revisit(t) {
const id = tupleid(t),
b = test(t, _),
s = cache.get(id);
if (b && s) {
cache.delete(id);
add.push(t);
} else if (!b && !s) {
cache.set(id, 1);
rem.push(t);
} else if (isMod && b && !s) {
mod.push(t);
}
}
pulse.visit(pulse.MOD, revisit);
if (_.modified()) {
isMod = false;
pulse.visit(pulse.REFLOW, revisit);
}
if (cache.empty > df.cleanThreshold) df.runAfter(cache.clean);
return output;
}
});
/**
* Flattens array-typed field values into new data objects.
* If multiple fields are specified, they are treated as parallel arrays,
* with output values included for each matching index (or null if missing).
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<function(object): *>} params.fields - An array of field
* accessors for the tuple fields that should be flattened.
* @param {string} [params.index] - Optional output field name for index
* value. If unspecified, no index field is included in the output.
* @param {Array<string>} [params.as] - Output field names for flattened
* array fields. Any unspecified fields will use the field name provided
* by the fields accessors.
*/
function Flatten(params) {
Transform.call(this, [], params);
}
Flatten.Definition = {
'type': 'Flatten',
'metadata': {
'generates': true
},
'params': [{
'name': 'fields',
'type': 'field',
'array': true,
'required': true
}, {
'name': 'index',
'type': 'string'
}, {
'name': 'as',
'type': 'string',
'array': true
}]
};
inherits(Flatten, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE),
fields = _.fields,
as = fieldNames(fields, _.as || []),
index = _.index || null,
m = as.length; // remove any previous results
out.rem = this.value; // generate flattened tuples
pulse.visit(pulse.SOURCE, t => {
const arrays = fields.map(f => f(t)),
maxlen = arrays.reduce((l, a) => Math.max(l, a.length), 0);
let i = 0,
j,
d,
v;
for (; i < maxlen; ++i) {
d = derive(t);
for (j = 0; j < m; ++j) {
d[as[j]] = (v = arrays[j][i]) == null ? null : v;
}
if (index) {
d[index] = i;
}
out.add.push(d);
}
});
this.value = out.source = out.add;
if (index) out.modifies(index);
return out.modifies(as);
}
});
/**
* Folds one more tuple fields into multiple tuples in which the field
* name and values are available under new 'key' and 'value' fields.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.fields - An array of field accessors
* for the tuple fields that should be folded.
* @param {Array<string>} [params.as] - Output field names for folded key
* and value fields, defaults to ['key', 'value'].
*/
function Fold(params) {
Transform.call(this, [], params);
}
Fold.Definition = {
'type': 'Fold',
'metadata': {
'generates': true
},
'params': [{
'name': 'fields',
'type': 'field',
'array': true,
'required': true
}, {
'name': 'as',
'type': 'string',
'array': true,
'length': 2,
'default': ['key', 'value']
}]
};
inherits(Fold, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE),
fields = _.fields,
fnames = fields.map(accessorName),
as = _.as || ['key', 'value'],
k = as[0],
v = as[1],
n = fields.length;
out.rem = this.value;
pulse.visit(pulse.SOURCE, t => {
for (let i = 0, d; i < n; ++i) {
d = derive(t);
d[k] = fnames[i];
d[v] = fields[i](t);
out.add.push(d);
}
});
this.value = out.source = out.add;
return out.modifies(as);
}
});
/**
* Invokes a function for each data tuple and saves the results as a new field.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.expr - The formula function to invoke for each tuple.
* @param {string} params.as - The field name under which to save the result.
* @param {boolean} [params.initonly=false] - If true, the formula is applied to
* added tuples only, and does not update in response to modifications.
*/
function Formula(params) {
Transform.call(this, null, params);
}
Formula.Definition = {
'type': 'Formula',
'metadata': {
'modifies': true
},
'params': [{
'name': 'expr',
'type': 'expr',
'required': true
}, {
'name': 'as',
'type': 'string',
'required': true
}, {
'name': 'initonly',
'type': 'boolean'
}]
};
inherits(Formula, Transform, {
transform(_, pulse) {
const func = _.expr,
as = _.as,
mod = _.modified(),
flag = _.initonly ? pulse.ADD : mod ? pulse.SOURCE : pulse.modified(func.fields) || pulse.modified(as) ? pulse.ADD_MOD : pulse.ADD;
if (mod) {
// parameters updated, need to reflow
pulse = pulse.materialize().reflow(true);
}
if (!_.initonly) {
pulse.modifies(as);
}
return pulse.visit(flag, t => t[as] = func(t, _));
}
});
/**
* Generates data tuples using a provided generator function.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(Parameters): object} params.generator - A tuple generator
* function. This function is given the operator parameters as input.
* Changes to any additional parameters will not trigger re-calculation
* of previously generated tuples. Only future tuples are affected.
* @param {number} params.size - The number of tuples to produce.
*/
function Generate(params) {
Transform.call(this, [], params);
}
inherits(Generate, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.ALL),
gen = _.generator;
let data = this.value,
num = _.size - data.length,
add,
rem,
t;
if (num > 0) {
// need more tuples, generate and add
for (add = []; --num >= 0;) {
add.push(t = ingest$1(gen(_)));
data.push(t);
}
out.add = out.add.length ? out.materialize(out.ADD).add.concat(add) : add;
} else {
// need fewer tuples, remove
rem = data.slice(0, -num);
out.rem = out.rem.length ? out.materialize(out.REM).rem.concat(rem) : rem;
data = data.slice(-num);
}
out.source = this.value = data;
return out;
}
});
const Methods$1 = {
value: 'value',
median: median,
mean: mean,
min: min$2,
max: max$2
};
const Empty$1 = [];
/**
* Impute missing values.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - The value field to impute.
* @param {Array<function(object): *>} [params.groupby] - An array of
* accessors to determine series within which to perform imputation.
* @param {function(object): *} params.key - An accessor for a key value.
* Each key value should be unique within a group. New tuples will be
* imputed for any key values that are not found within a group.
* @param {Array<*>} [params.keyvals] - Optional array of required key
* values. New tuples will be imputed for any key values that are not
* found within a group. In addition, these values will be automatically
* augmented with the key values observed in the input data.
* @param {string} [method='value'] - The imputation method to use. One of
* 'value', 'mean', 'median', 'max', 'min'.
* @param {*} [value=0] - The constant value to use for imputation
* when using method 'value'.
*/
function Impute(params) {
Transform.call(this, [], params);
}
Impute.Definition = {
'type': 'Impute',
'metadata': {
'changes': true
},
'params': [{
'name': 'field',
'type': 'field',
'required': true
}, {
'name': 'key',
'type': 'field',
'required': true
}, {
'name': 'keyvals',
'array': true
}, {
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'method',
'type': 'enum',
'default': 'value',
'values': ['value', 'mean', 'median', 'max', 'min']
}, {
'name': 'value',
'default': 0
}]
};
function getValue(_) {
var m = _.method || Methods$1.value,
v;
if (Methods$1[m] == null) {
error('Unrecognized imputation method: ' + m);
} else if (m === Methods$1.value) {
v = _.value !== undefined ? _.value : 0;
return () => v;
} else {
return Methods$1[m];
}
}
function getField$1(_) {
const f = _.field;
return t => t ? f(t) : NaN;
}
inherits(Impute, Transform, {
transform(_, pulse) {
var out = pulse.fork(pulse.ALL),
impute = getValue(_),
field = getField$1(_),
fName = accessorName(_.field),
kName = accessorName(_.key),
gNames = (_.groupby || []).map(accessorName),
groups = partition$4(pulse.source, _.groupby, _.key, _.keyvals),
curr = [],
prev = this.value,
m = groups.domain.length,
group,
value,
gVals,
kVal,
g,
i,
j,
l,
n,
t;
for (g = 0, l = groups.length; g < l; ++g) {
group = groups[g];
gVals = group.values;
value = NaN; // add tuples for missing values
for (j = 0; j < m; ++j) {
if (group[j] != null) continue;
kVal = groups.domain[j];
t = {
_impute: true
};
for (i = 0, n = gVals.length; i < n; ++i) t[gNames[i]] = gVals[i];
t[kName] = kVal;
t[fName] = Number.isNaN(value) ? value = impute(group, field) : value;
curr.push(ingest$1(t));
}
} // update pulse with imputed tuples
if (curr.length) out.add = out.materialize(out.ADD).add.concat(curr);
if (prev.length) out.rem = out.materialize(out.REM).rem.concat(prev);
this.value = curr;
return out;
}
});
function partition$4(data, groupby, key, keyvals) {
var get = f => f(t),
groups = [],
domain = keyvals ? keyvals.slice() : [],
kMap = {},
gMap = {},
gVals,
gKey,
group,
i,
j,
k,
n,
t;
domain.forEach((k, i) => kMap[k] = i + 1);
for (i = 0, n = data.length; i < n; ++i) {
t = data[i];
k = key(t);
j = kMap[k] || (kMap[k] = domain.push(k));
gKey = (gVals = groupby ? groupby.map(get) : Empty$1) + '';
if (!(group = gMap[gKey])) {
group = gMap[gKey] = [];
groups.push(group);
group.values = gVals;
}
group[j - 1] = t;
}
groups.domain = domain;
return groups;
}
/**
* Extend input tuples with aggregate values.
* Calcuates aggregate values and joins them with the input stream.
* @constructor
*/
function JoinAggregate(params) {
Aggregate$1.call(this, params);
}
JoinAggregate.Definition = {
'type': 'JoinAggregate',
'metadata': {
'modifies': true
},
'params': [{
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'fields',
'type': 'field',
'null': true,
'array': true
}, {
'name': 'ops',
'type': 'enum',
'array': true,
'values': ValidAggregateOps
}, {
'name': 'as',
'type': 'string',
'null': true,
'array': true
}, {
'name': 'key',
'type': 'field'
}]
};
inherits(JoinAggregate, Aggregate$1, {
transform(_, pulse) {
const aggr = this,
mod = _.modified();
let cells; // process all input tuples to calculate aggregates
if (aggr.value && (mod || pulse.modified(aggr._inputs, true))) {
cells = aggr.value = mod ? aggr.init(_) : {};
pulse.visit(pulse.SOURCE, t => aggr.add(t));
} else {
cells = aggr.value = aggr.value || this.init(_);
pulse.visit(pulse.REM, t => aggr.rem(t));
pulse.visit(pulse.ADD, t => aggr.add(t));
} // update aggregation cells
aggr.changes(); // write aggregate values to input tuples
pulse.visit(pulse.SOURCE, t => {
extend$1(t, cells[aggr.cellkey(t)].tuple);
});
return pulse.reflow(mod).modifies(this._outputs);
},
changes() {
const adds = this._adds,
mods = this._mods;
let i, n;
for (i = 0, n = this._alen; i < n; ++i) {
this.celltuple(adds[i]);
adds[i] = null; // for garbage collection
}
for (i = 0, n = this._mlen; i < n; ++i) {
this.celltuple(mods[i]);
mods[i] = null; // for garbage collection
}
this._alen = this._mlen = 0; // reset list of active cells
}
});
/**
* Compute kernel density estimates (KDE) for one or more data groups.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<function(object): *>} [params.groupby] - An array of accessors
* to groupby.
* @param {function(object): *} params.field - An accessor for the data field
* to estimate.
* @param {number} [params.bandwidth=0] - The KDE kernel bandwidth.
* If zero or unspecified, the bandwidth is automatically determined.
* @param {boolean} [params.counts=false] - A boolean flag indicating if the
* output values should be probability estimates (false, default) or
* smoothed counts (true).
* @param {string} [params.cumulative=false] - A boolean flag indicating if a
* density (false) or cumulative distribution (true) should be generated.
* @param {Array<number>} [params.extent] - The domain extent over which to
* plot the density. If unspecified, the [min, max] data extent is used.
* @param {string} [params.resolve='independent'] - Indicates how parameters for
* multiple densities should be resolved. If "independent" (the default), each
* density may have its own domain extent and dynamic number of curve sample
* steps. If "shared", the KDE transform will ensure that all densities are
* defined over a shared domain and curve steps, enabling stacking.
* @param {number} [params.minsteps=25] - The minimum number of curve samples
* for plotting the density.
* @param {number} [params.maxsteps=200] - The maximum number of curve samples
* for plotting the density.
* @param {number} [params.steps] - The exact number of curve samples for
* plotting the density. If specified, overrides both minsteps and maxsteps
* to set an exact number of uniform samples. Useful in conjunction with
* a fixed extent to ensure consistent sample points for stacked densities.
*/
function KDE(params) {
Transform.call(this, null, params);
}
KDE.Definition = {
'type': 'KDE',
'metadata': {
'generates': true
},
'params': [{
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'field',
'type': 'field',
'required': true
}, {
'name': 'cumulative',
'type': 'boolean',
'default': false
}, {
'name': 'counts',
'type': 'boolean',
'default': false
}, {
'name': 'bandwidth',
'type': 'number',
'default': 0
}, {
'name': 'extent',
'type': 'number',
'array': true,
'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': true,
'default': ['value', 'density']
}]
};
inherits(KDE, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);
if (!this.value || pulse.changed() || _.modified()) {
const source = pulse.materialize(pulse.SOURCE).source,
groups = partition$1$1(source, _.groupby, _.field),
names = (_.groupby || []).map(accessorName),
bandwidth = _.bandwidth,
method = _.cumulative ? 'cdf' : 'pdf',
as = _.as || ['value', 'density'],
values = [];
let domain = _.extent,
minsteps = _.steps || _.minsteps || 25,
maxsteps = _.steps || _.maxsteps || 200;
if (method !== 'pdf' && method !== 'cdf') {
error('Invalid density method: ' + method);
}
if (_.resolve === 'shared') {
if (!domain) domain = extent(source, _.field);
minsteps = maxsteps = _.steps || maxsteps;
}
groups.forEach(g => {
const density = kde(g, bandwidth)[method],
scale = _.counts ? g.length : 1,
local = domain || extent(g);
sampleCurve(density, local, minsteps, maxsteps).forEach(v => {
const t = {};
for (let i = 0; i < names.length; ++i) {
t[names[i]] = g.dims[i];
}
t[as[0]] = v[0];
t[as[1]] = v[1] * scale;
values.push(ingest$1(t));
});
});
if (this.value) out.rem = this.value;
this.value = out.add = out.source = values;
}
return out;
}
});
/**
* Generates a key function.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<string>} params.fields - The field name(s) for the key function.
* @param {boolean} params.flat - A boolean flag indicating if the field names
* should be treated as flat property names, side-stepping nested field
* lookups normally indicated by dot or bracket notation.
*/
function Key$1(params) {
Operator.call(this, null, update$2, params);
}
inherits(Key$1, Operator);
function update$2(_) {
return this.value && !_.modified() ? this.value : key(_.fields, _.flat);
}
/**
* Load and parse data from an external source. Marshalls parameter
* values and then invokes the Dataflow request method.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {string} params.url - The URL to load from.
* @param {object} params.format - The data format options.
*/
function Load$1(params) {
Transform.call(this, [], params);
this._pending = null;
}
inherits(Load$1, Transform, {
transform(_, pulse) {
const df = pulse.dataflow;
if (this._pending) {
// update state and return pulse
return output(this, pulse, this._pending);
}
if (stop(_)) return pulse.StopPropagation;
if (_.values) {
// parse and ingest values, return output pulse
return output(this, pulse, df.parse(_.values, _.format));
} else if (_.async) {
// return promise for non-blocking async loading
const p = df.request(_.url, _.format).then(res => {
this._pending = array$5(res.data);
return df => df.touch(this);
});
return {
async: p
};
} else {
// return promise for synchronous loading
return df.request(_.url, _.format).then(res => output(this, pulse, array$5(res.data)));
}
}
});
function stop(_) {
return _.modified('async') && !(_.modified('values') || _.modified('url') || _.modified('format'));
}
function output(op, pulse, data) {
data.forEach(ingest$1);
const out = pulse.fork(pulse.NO_FIELDS & pulse.NO_SOURCE);
out.rem = op.value;
op.value = out.source = out.add = data;
op._pending = null;
if (out.rem.length) out.clean(true);
return out;
}
/**
* Extend tuples by joining them with values from a lookup table.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Map} params.index - The lookup table map.
* @param {Array<function(object): *} params.fields - The fields to lookup.
* @param {Array<string>} params.as - Output field names for each lookup value.
* @param {*} [params.default] - A default value to use if lookup fails.
*/
function Lookup(params) {
Transform.call(this, {}, params);
}
Lookup.Definition = {
'type': 'Lookup',
'metadata': {
'modifies': true
},
'params': [{
'name': 'index',
'type': 'index',
'params': [{
'name': 'from',
'type': 'data',
'required': true
}, {
'name': 'key',
'type': 'field',
'required': true
}]
}, {
'name': 'values',
'type': 'field',
'array': true
}, {
'name': 'fields',
'type': 'field',
'array': true,
'required': true
}, {
'name': 'as',
'type': 'string',
'array': true
}, {
'name': 'default',
'default': null
}]
};
inherits(Lookup, Transform, {
transform(_, pulse) {
const keys = _.fields,
index = _.index,
values = _.values,
defaultValue = _.default == null ? null : _.default,
reset = _.modified(),
n = keys.length;
let flag = reset ? pulse.SOURCE : pulse.ADD,
out = pulse,
as = _.as,
set,
m,
mods;
if (values) {
m = values.length;
if (n > 1 && !as) {
error('Multi-field lookup requires explicit "as" parameter.');
}
if (as && as.length !== n * m) {
error('The "as" parameter has too few output field names.');
}
as = as || values.map(accessorName);
set = function (t) {
for (var i = 0, k = 0, j, v; i < n; ++i) {
v = index.get(keys[i](t));
if (v == null) for (j = 0; j < m; ++j, ++k) t[as[k]] = defaultValue;else for (j = 0; j < m; ++j, ++k) t[as[k]] = values[j](v);
}
};
} else {
if (!as) {
error('Missing output field names.');
}
set = function (t) {
for (var i = 0, v; i < n; ++i) {
v = index.get(keys[i](t));
t[as[i]] = v == null ? defaultValue : v;
}
};
}
if (reset) {
out = pulse.reflow(true);
} else {
mods = keys.some(k => pulse.modified(k.fields));
flag |= mods ? pulse.MOD : 0;
}
pulse.visit(flag, set);
return out.modifies(as);
}
});
/**
* Computes global min/max extents over a collection of extents.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<Array<number>>} params.extents - The input extents.
*/
function MultiExtent$1(params) {
Operator.call(this, null, update$1, params);
}
inherits(MultiExtent$1, Operator);
function update$1(_) {
if (this.value && !_.modified()) {
return this.value;
}
const ext = _.extents,
n = ext.length;
let min = +Infinity,
max = -Infinity,
i,
e;
for (i = 0; i < n; ++i) {
e = ext[i];
if (e[0] < min) min = e[0];
if (e[1] > max) max = e[1];
}
return [min, max];
}
/**
* Merge a collection of value arrays.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<Array<*>>} params.values - The input value arrrays.
*/
function MultiValues$1(params) {
Operator.call(this, null, update, params);
}
inherits(MultiValues$1, Operator);
function update(_) {
return this.value && !_.modified() ? this.value : _.values.reduce((data, _) => data.concat(_), []);
}
/**
* Operator whose value is simply its parameter hash. This operator is
* useful for enabling reactive updates to values of nested objects.
* @constructor
* @param {object} params - The parameters for this operator.
*/
function Params$2(params) {
Transform.call(this, null, params);
}
inherits(Params$2, Transform, {
transform(_, pulse) {
this.modified(_.modified());
this.value = _;
return pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS); // do not pass tuples
}
});
/**
* Aggregate and pivot selected field values to become new fields.
* This operator is useful to construction cross-tabulations.
* @constructor
* @param {Array<function(object): *>} [params.groupby] - An array of accessors
* to groupby. These fields act just like groupby fields of an Aggregate transform.
* @param {function(object): *} params.field - The field to pivot on. The unique
* values of this field become new field names in the output stream.
* @param {function(object): *} params.value - The field to populate pivoted fields.
* The aggregate values of this field become the values of the new pivoted fields.
* @param {string} [params.op] - The aggregation operation for the value field,
* applied per cell in the output stream. The default is "sum".
* @param {number} [params.limit] - An optional parameter indicating the maximum
* number of pivoted fields to generate. The pivoted field names are sorted in
* ascending order prior to enforcing the limit.
*/
function Pivot(params) {
Aggregate$1.call(this, params);
}
Pivot.Definition = {
'type': 'Pivot',
'metadata': {
'generates': true,
'changes': true
},
'params': [{
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'field',
'type': 'field',
'required': true
}, {
'name': 'value',
'type': 'field',
'required': true
}, {
'name': 'op',
'type': 'enum',
'values': ValidAggregateOps,
'default': 'sum'
}, {
'name': 'limit',
'type': 'number',
'default': 0
}, {
'name': 'key',
'type': 'field'
}]
};
inherits(Pivot, Aggregate$1, {
_transform: Aggregate$1.prototype.transform,
transform(_, pulse) {
return this._transform(aggregateParams(_, pulse), pulse);
}
}); // Shoehorn a pivot transform into an aggregate transform!
// First collect all unique pivot field values.
// Then generate aggregate fields for each output pivot field.
function aggregateParams(_, pulse) {
const key = _.field,
value = _.value,
op = (_.op === 'count' ? '__count__' : _.op) || 'sum',
fields = accessorFields(key).concat(accessorFields(value)),
keys = pivotKeys(key, _.limit || 0, pulse); // if data stream content changes, pivot fields may change
// flag parameter modification to ensure re-initialization
if (pulse.changed()) _.set('__pivot__', null, null, true);
return {
key: _.key,
groupby: _.groupby,
ops: keys.map(() => op),
fields: keys.map(k => get$4(k, key, value, fields)),
as: keys.map(k => k + ''),
modified: _.modified.bind(_)
};
} // Generate aggregate field accessor.
// Output NaN for non-existent values; aggregator will ignore!
function get$4(k, key, value, fields) {
return accessor(d => key(d) === k ? value(d) : NaN, fields, k + '');
} // Collect (and optionally limit) all unique pivot values.
function pivotKeys(key, limit, pulse) {
const map = {},
list = [];
pulse.visit(pulse.SOURCE, t => {
const k = key(t);
if (!map[k]) {
map[k] = 1;
list.push(k);
}
});
list.sort(ascending$3);
return limit ? list.slice(0, limit) : list;
}
/**
* Partitions pre-faceted data into tuple subflows.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(Dataflow, string): Operator} params.subflow - A function
* that generates a subflow of operators and returns its root operator.
* @param {function(object): Array<object>} params.field - The field
* accessor for an array of subflow tuple objects.
*/
function PreFacet$1(params) {
Facet$1.call(this, params);
}
inherits(PreFacet$1, Facet$1, {
transform(_, pulse) {
const flow = _.subflow,
field = _.field,
subflow = t => this.subflow(tupleid(t), flow, pulse, t);
if (_.modified('field') || field && pulse.modified(accessorFields(field))) {
error('PreFacet does not support field modification.');
}
this.initTargets(); // reset list of active subflows
if (field) {
pulse.visit(pulse.MOD, t => {
const sf = subflow(t);
field(t).forEach(_ => sf.mod(_));
});
pulse.visit(pulse.ADD, t => {
const sf = subflow(t);
field(t).forEach(_ => sf.add(ingest$1(_)));
});
pulse.visit(pulse.REM, t => {
const sf = subflow(t);
field(t).forEach(_ => sf.rem(_));
});
} else {
pulse.visit(pulse.MOD, t => subflow(t).mod(t));
pulse.visit(pulse.ADD, t => subflow(t).add(t));
pulse.visit(pulse.REM, t => subflow(t).rem(t));
}
if (pulse.clean()) {
pulse.runAfter(() => this.clean());
}
return pulse;
}
});
/**
* Performs a relational projection, copying selected fields from source
* tuples to a new set of derived tuples.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {Array<function(object): *} params.fields - The fields to project,
* as an array of field accessors. If unspecified, all fields will be
* copied with names unchanged.
* @param {Array<string>} [params.as] - Output field names for each projected
* field. Any unspecified fields will use the field name provided by
* the field accessor.
*/
function Project(params) {
Transform.call(this, null, params);
}
Project.Definition = {
'type': 'Project',
'metadata': {
'generates': true,
'changes': true
},
'params': [{
'name': 'fields',
'type': 'field',
'array': true
}, {
'name': 'as',
'type': 'string',
'null': true,
'array': true
}]
};
inherits(Project, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE),
fields = _.fields,
as = fieldNames(_.fields, _.as || []),
derive = fields ? (s, t) => project(s, t, fields, as) : rederive;
let lut;
if (this.value) {
lut = this.value;
} else {
pulse = pulse.addAll();
lut = this.value = {};
}
pulse.visit(pulse.REM, t => {
const id = tupleid(t);
out.rem.push(lut[id]);
lut[id] = null;
});
pulse.visit(pulse.ADD, t => {
const dt = derive(t, ingest$1({}));
lut[tupleid(t)] = dt;
out.add.push(dt);
});
pulse.visit(pulse.MOD, t => {
out.mod.push(derive(t, lut[tupleid(t)]));
});
return out;
}
});
function project(s, t, fields, as) {
for (let i = 0, n = fields.length; i < n; ++i) {
t[as[i]] = fields[i](s);
}
return t;
}
/**
* Proxy the value of another operator as a pure signal value.
* Ensures no tuples are propagated.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {*} params.value - The value to proxy, becomes the value of this operator.
*/
function Proxy$1(params) {
Transform.call(this, null, params);
}
inherits(Proxy$1, Transform, {
transform(_, pulse) {
this.value = _.value;
return _.modified('value') ? pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS) : pulse.StopPropagation;
}
});
/**
* Generates sample quantile values from an input data stream.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - An accessor for the data field
* over which to calculate quantile values.
* @param {Array<function(object): *>} [params.groupby] - An array of accessors
* to groupby.
* @param {Array<number>} [params.probs] - An array of probabilities in
* the range (0, 1) for which to compute quantile values. If not specified,
* the *step* parameter will be used.
* @param {Array<number>} [params.step=0.01] - A probability step size for
* sampling quantile values. All values from one-half the step size up to
* 1 (exclusive) will be sampled. This parameter is only used if the
* *quantiles* parameter is not provided.
*/
function Quantile$1(params) {
Transform.call(this, null, params);
}
Quantile$1.Definition = {
'type': 'Quantile',
'metadata': {
'generates': true,
'changes': true
},
'params': [{
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'field',
'type': 'field',
'required': true
}, {
'name': 'probs',
'type': 'number',
'array': true
}, {
'name': 'step',
'type': 'number',
'default': 0.01
}, {
'name': 'as',
'type': 'string',
'array': true,
'default': ['prob', 'value']
}]
};
const EPSILON$2 = 1e-14;
inherits(Quantile$1, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),
as = _.as || ['prob', 'value'];
if (this.value && !_.modified() && !pulse.changed()) {
out.source = this.value;
return out;
}
const source = pulse.materialize(pulse.SOURCE).source,
groups = partition$1$1(source, _.groupby, _.field),
names = (_.groupby || []).map(accessorName),
values = [],
step = _.step || 0.01,
p = _.probs || range$1$1(step / 2, 1 - EPSILON$2, step),
n = p.length;
groups.forEach(g => {
const q = quantiles(g, p);
for (let i = 0; i < n; ++i) {
const t = {};
for (let i = 0; i < names.length; ++i) {
t[names[i]] = g.dims[i];
}
t[as[0]] = p[i];
t[as[1]] = q[i];
values.push(ingest$1(t));
}
});
if (this.value) out.rem = this.value;
this.value = out.add = out.source = values;
return out;
}
});
/**
* Relays a data stream between data processing pipelines.
* If the derive parameter is set, this transform will create derived
* copies of observed tuples. This provides derived data streams in which
* modifications to the tuples do not pollute an upstream data source.
* @param {object} params - The parameters for this operator.
* @param {number} [params.derive=false] - Boolean flag indicating if
* the transform should make derived copies of incoming tuples.
* @constructor
*/
function Relay$1(params) {
Transform.call(this, null, params);
}
inherits(Relay$1, Transform, {
transform(_, pulse) {
let out, lut;
if (this.value) {
lut = this.value;
} else {
out = pulse = pulse.addAll();
lut = this.value = {};
}
if (_.derive) {
out = pulse.fork(pulse.NO_SOURCE);
pulse.visit(pulse.REM, t => {
const id = tupleid(t);
out.rem.push(lut[id]);
lut[id] = null;
});
pulse.visit(pulse.ADD, t => {
const dt = derive(t);
lut[tupleid(t)] = dt;
out.add.push(dt);
});
pulse.visit(pulse.MOD, t => {
const dt = lut[tupleid(t)];
for (const k in t) {
dt[k] = t[k]; // down stream writes may overwrite re-derived tuples
// conservatively mark all source fields as modified
out.modifies(k);
}
out.mod.push(dt);
});
}
return out;
}
});
/**
* Samples tuples passing through this operator.
* Uses reservoir sampling to maintain a representative sample.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {number} [params.size=1000] - The maximum number of samples.
*/
function Sample(params) {
Transform.call(this, [], params);
this.count = 0;
}
Sample.Definition = {
'type': 'Sample',
'metadata': {},
'params': [{
'name': 'size',
'type': 'number',
'default': 1000
}]
};
inherits(Sample, Transform, {
transform(_, pulse) {
const out = pulse.fork(pulse.NO_SOURCE),
mod = _.modified('size'),
num = _.size,
map = this.value.reduce((m, t) => (m[tupleid(t)] = 1, m), {});
let res = this.value,
cnt = this.count,
cap = 0; // sample reservoir update function
function update(t) {
let p, idx;
if (res.length < num) {
res.push(t);
} else {
idx = ~~((cnt + 1) * exports.random());
if (idx < res.length && idx >= cap) {
p = res[idx];
if (map[tupleid(p)]) out.rem.push(p); // eviction
res[idx] = t;
}
}
++cnt;
}
if (pulse.rem.length) {
// find all tuples that should be removed, add to output
pulse.visit(pulse.REM, t => {
const id = tupleid(t);
if (map[id]) {
map[id] = -1;
out.rem.push(t);
}
--cnt;
}); // filter removed tuples out of the sample reservoir
res = res.filter(t => map[tupleid(t)] !== -1);
}
if ((pulse.rem.length || mod) && res.length < num && pulse.source) {
// replenish sample if backing data source is available
cap = cnt = res.length;
pulse.visit(pulse.SOURCE, t => {
// update, but skip previously sampled tuples
if (!map[tupleid(t)]) update(t);
});
cap = -1;
}
if (mod && res.length > num) {
const n = res.length - num;
for (let i = 0; i < n; ++i) {
map[tupleid(res[i])] = -1;
out.rem.push(res[i]);
}
res = res.slice(n);
}
if (pulse.mod.length) {
// propagate modified tuples in the sample reservoir
pulse.visit(pulse.MOD, t => {
if (map[tupleid(t)]) out.mod.push(t);
});
}
if (pulse.add.length) {
// update sample reservoir
pulse.visit(pulse.ADD, update);
}
if (pulse.add.length || cap < 0) {
// output newly added tuples
out.add = res.filter(t => !map[tupleid(t)]);
}
this.count = cnt;
this.value = out.source = res;
return out;
}
});
/**
* Generates data tuples for a specified sequence range of numbers.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {number} params.start - The first number in the sequence.
* @param {number} params.stop - The last number (exclusive) in the sequence.
* @param {number} [params.step=1] - The step size between numbers in the sequence.
*/
function Sequence(params) {
Transform.call(this, null, params);
}
Sequence.Definition = {
'type': 'Sequence',
'metadata': {
'generates': true,
'changes': true
},
'params': [{
'name': 'start',
'type': 'number',
'required': true
}, {
'name': 'stop',
'type': 'number',
'required': true
}, {
'name': 'step',
'type': 'number',
'default': 1
}, {
'name': 'as',
'type': 'string',
'default': 'data'
}]
};
inherits(Sequence, Transform, {
transform(_, pulse) {
if (this.value && !_.modified()) return;
const out = pulse.materialize().fork(pulse.MOD),
as = _.as || 'data';
out.rem = this.value ? pulse.rem.concat(this.value) : pulse.rem;
this.value = range$1$1(_.start, _.stop, _.step || 1).map(v => {
const t = {};
t[as] = v;
return ingest$1(t);
});
out.add = pulse.add.concat(this.value);
return out;
}
});
/**
* Propagates a new pulse without any tuples so long as the input
* pulse contains some added, removed or modified tuples.
* @param {object} params - The parameters for this operator.
* @constructor
*/
function Sieve$1(params) {
Transform.call(this, null, params);
this.modified(true); // always treat as modified
}
inherits(Sieve$1, Transform, {
transform(_, pulse) {
this.value = pulse.source;
return pulse.changed() ? pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS) : pulse.StopPropagation;
}
});
/**
* Discretize dates to specific time units.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - The data field containing date/time values.
*/
function TimeUnit(params) {
Transform.call(this, null, params);
}
const OUTPUT = ['unit0', 'unit1'];
TimeUnit.Definition = {
'type': 'TimeUnit',
'metadata': {
'modifies': true
},
'params': [{
'name': 'field',
'type': 'field',
'required': true
}, {
'name': 'interval',
'type': 'boolean',
'default': true
}, {
'name': 'units',
'type': 'enum',
'values': TIME_UNITS,
'array': true
}, {
'name': 'step',
'type': 'number',
'default': 1
}, {
'name': 'maxbins',
'type': 'number',
'default': 40
}, {
'name': 'extent',
'type': 'date',
'array': true
}, {
'name': 'timezone',
'type': 'enum',
'default': 'local',
'values': ['local', 'utc']
}, {
'name': 'as',
'type': 'string',
'array': true,
'length': 2,
'default': OUTPUT
}]
};
inherits(TimeUnit, Transform, {
transform(_, pulse) {
const field = _.field,
band = _.interval !== false,
utc = _.timezone === 'utc',
floor = this._floor(_, pulse),
offset = (utc ? utcInterval : timeInterval)(floor.unit).offset,
as = _.as || OUTPUT,
u0 = as[0],
u1 = as[1],
step = floor.step;
let min = floor.start || Infinity,
max = floor.stop || -Infinity,
flag = pulse.ADD;
if (_.modified() || pulse.modified(accessorFields(field))) {
pulse = pulse.reflow(true);
flag = pulse.SOURCE;
min = Infinity;
max = -Infinity;
}
pulse.visit(flag, t => {
const v = field(t);
let a, b;
if (v == null) {
t[u0] = null;
if (band) t[u1] = null;
} else {
t[u0] = a = b = floor(v);
if (band) t[u1] = b = offset(a, step);
if (a < min) min = a;
if (b > max) max = b;
}
});
floor.start = min;
floor.stop = max;
return pulse.modifies(band ? as : u0);
},
_floor(_, pulse) {
const utc = _.timezone === 'utc'; // get parameters
const {
units,
step
} = _.units ? {
units: _.units,
step: _.step || 1
} : bin$1({
extent: _.extent || extent(pulse.materialize(pulse.SOURCE).source, _.field),
maxbins: _.maxbins
}); // check / standardize time units
const tunits = timeUnits(units),
prev = this.value || {},
floor = (utc ? utcFloor : timeFloor)(tunits, step);
floor.unit = peek$1(tunits);
floor.units = tunits;
floor.step = step;
floor.start = prev.start;
floor.stop = prev.stop;
return this.value = floor;
}
});
/**
* An index that maps from unique, string-coerced, field values to tuples.
* Assumes that the field serves as a unique key with no duplicate values.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - The field accessor to index.
*/
function TupleIndex(params) {
Transform.call(this, fastmap(), params);
}
inherits(TupleIndex, Transform, {
transform(_, pulse) {
const df = pulse.dataflow,
field = _.field,
index = this.value,
set = t => index.set(field(t), t);
let mod = true;
if (_.modified('field') || pulse.modified(field.fields)) {
index.clear();
pulse.visit(pulse.SOURCE, set);
} else if (pulse.changed()) {
pulse.visit(pulse.REM, t => index.delete(field(t)));
pulse.visit(pulse.ADD, set);
} else {
mod = false;
}
this.modified(mod);
if (index.empty > df.cleanThreshold) df.runAfter(index.clean);
return pulse.fork();
}
});
/**
* Extracts an array of values. Assumes the source data has already been
* reduced as needed (e.g., by an upstream Aggregate transform).
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(object): *} params.field - The domain field to extract.
* @param {function(*,*): number} [params.sort] - An optional
* comparator function for sorting the values. The comparator will be
* applied to backing tuples prior to value extraction.
*/
function Values$1(params) {
Transform.call(this, null, params);
}
inherits(Values$1, Transform, {
transform(_, pulse) {
const run = !this.value || _.modified('field') || _.modified('sort') || pulse.changed() || _.sort && pulse.modified(_.sort.fields);
if (run) {
this.value = (_.sort ? pulse.source.slice().sort(stableCompare(_.sort)) : pulse.source).map(_.field);
}
}
});
function WindowOp(op, field, param, as) {
const fn = WindowOps[op](field, param);
return {
init: fn.init || zero$2,
update: function (w, t) {
t[as] = fn.next(w);
}
};
}
const WindowOps = {
row_number: function () {
return {
next: w => w.index + 1
};
},
rank: function () {
let rank;
return {
init: () => rank = 1,
next: w => {
const i = w.index,
data = w.data;
return i && w.compare(data[i - 1], data[i]) ? rank = i + 1 : rank;
}
};
},
dense_rank: function () {
let drank;
return {
init: () => drank = 1,
next: w => {
const i = w.index,
d = w.data;
return i && w.compare(d[i - 1], d[i]) ? ++drank : drank;
}
};
},
percent_rank: function () {
const rank = WindowOps.rank(),
next = rank.next;
return {
init: rank.init,
next: w => (next(w) - 1) / (w.data.length - 1)
};
},
cume_dist: function () {
let cume;
return {
init: () => cume = 0,
next: w => {
const d = w.data,
c = w.compare;
let i = w.index;
if (cume < i) {
while (i + 1 < d.length && !c(d[i], d[i + 1])) ++i;
cume = i;
}
return (1 + cume) / d.length;
}
};
},
ntile: function (field, num) {
num = +num;
if (!(num > 0)) error('ntile num must be greater than zero.');
const cume = WindowOps.cume_dist(),
next = cume.next;
return {
init: cume.init,
next: w => Math.ceil(num * next(w))
};
},
lag: function (field, offset) {
offset = +offset || 1;
return {
next: w => {
const i = w.index - offset;
return i >= 0 ? field(w.data[i]) : null;
}
};
},
lead: function (field, offset) {
offset = +offset || 1;
return {
next: w => {
const i = w.index + offset,
d = w.data;
return i < d.length ? field(d[i]) : null;
}
};
},
first_value: function (field) {
return {
next: w => field(w.data[w.i0])
};
},
last_value: function (field) {
return {
next: w => field(w.data[w.i1 - 1])
};
},
nth_value: function (field, nth) {
nth = +nth;
if (!(nth > 0)) error('nth_value nth must be greater than zero.');
return {
next: w => {
const i = w.i0 + (nth - 1);
return i < w.i1 ? field(w.data[i]) : null;
}
};
},
prev_value: function (field) {
let prev;
return {
init: () => prev = null,
next: w => {
const v = field(w.data[w.index]);
return v != null ? prev = v : prev;
}
};
},
next_value: function (field) {
let v, i;
return {
init: () => (v = null, i = -1),
next: w => {
const d = w.data;
return w.index <= i ? v : (i = find$2(field, d, w.index)) < 0 ? (i = d.length, v = null) : v = field(d[i]);
}
};
}
};
function find$2(field, data, index) {
for (let n = data.length; index < n; ++index) {
const v = field(data[index]);
if (v != null) return index;
}
return -1;
}
const ValidWindowOps = Object.keys(WindowOps);
function WindowState(_) {
const ops = array$5(_.ops),
fields = array$5(_.fields),
params = array$5(_.params),
as = array$5(_.as),
outputs = this.outputs = [],
windows = this.windows = [],
inputs = {},
map = {},
counts = [],
measures = [];
let countOnly = true;
function visitInputs(f) {
array$5(accessorFields(f)).forEach(_ => inputs[_] = 1);
}
visitInputs(_.sort);
ops.forEach((op, i) => {
const field = fields[i],
mname = accessorName(field),
name = measureName(op, mname, as[i]);
visitInputs(field);
outputs.push(name); // Window operation
if (has$1(WindowOps, op)) {
windows.push(WindowOp(op, fields[i], params[i], name));
} // Aggregate operation
else {
if (field == null && op !== 'count') {
error('Null aggregate field specified.');
}
if (op === 'count') {
counts.push(name);
return;
}
countOnly = false;
let m = map[mname];
if (!m) {
m = map[mname] = [];
m.field = field;
measures.push(m);
}
m.push(createMeasure(op, name));
}
});
if (counts.length || measures.length) {
this.cell = cell(measures, counts, countOnly);
}
this.inputs = Object.keys(inputs);
}
const prototype = WindowState.prototype;
prototype.init = function () {
this.windows.forEach(_ => _.init());
if (this.cell) this.cell.init();
};
prototype.update = function (w, t) {
const cell = this.cell,
wind = this.windows,
data = w.data,
m = wind && wind.length;
let j;
if (cell) {
for (j = w.p0; j < w.i0; ++j) cell.rem(data[j]);
for (j = w.p1; j < w.i1; ++j) cell.add(data[j]);
cell.set(t);
}
for (j = 0; j < m; ++j) wind[j].update(w, t);
};
function cell(measures, counts, countOnly) {
measures = measures.map(m => compileMeasures(m, m.field));
const cell = {
num: 0,
agg: null,
store: false,
count: counts
};
if (!countOnly) {
var n = measures.length,
a = cell.agg = Array(n),
i = 0;
for (; i < n; ++i) a[i] = new measures[i](cell);
}
if (cell.store) {
var store = cell.data = new TupleStore();
}
cell.add = function (t) {
cell.num += 1;
if (countOnly) return;
if (store) store.add(t);
for (let i = 0; i < n; ++i) {
a[i].add(a[i].get(t), t);
}
};
cell.rem = function (t) {
cell.num -= 1;
if (countOnly) return;
if (store) store.rem(t);
for (let i = 0; i < n; ++i) {
a[i].rem(a[i].get(t), t);
}
};
cell.set = function (t) {
let i, n; // consolidate stored values
if (store) store.values(); // update tuple properties
for (i = 0, n = counts.length; i < n; ++i) t[counts[i]] = cell.num;
if (!countOnly) for (i = 0, n = a.length; i < n; ++i) a[i].set(t);
};
cell.init = function () {
cell.num = 0;
if (store) store.reset();
for (let i = 0; i < n; ++i) a[i].init();
};
return cell;
}
/**
* Perform window calculations and write results to the input stream.
* @constructor
* @param {object} params - The parameters for this operator.
* @param {function(*,*): number} [params.sort] - A comparator function for sorting tuples within a window.
* @param {Array<function(object): *>} [params.groupby] - An array of accessors by which to partition tuples into separate windows.
* @param {Array<string>} params.ops - An array of strings indicating window operations to perform.
* @param {Array<function(object): *>} [params.fields] - An array of accessors
* for data fields to use as inputs to window operations.
* @param {Array<*>} [params.params] - An array of parameter values for window operations.
* @param {Array<string>} [params.as] - An array of output field names for window operations.
* @param {Array<number>} [params.frame] - Window frame definition as two-element array.
* @param {boolean} [params.ignorePeers=false] - If true, base window frame boundaries on row
* number alone, ignoring peers with identical sort values. If false (default),
* the window boundaries will be adjusted to include peer values.
*/
function Window(params) {
Transform.call(this, {}, params);
this._mlen = 0;
this._mods = [];
}
Window.Definition = {
'type': 'Window',
'metadata': {
'modifies': true
},
'params': [{
'name': 'sort',
'type': 'compare'
}, {
'name': 'groupby',
'type': 'field',
'array': true
}, {
'name': 'ops',
'type': 'enum',
'array': true,
'values': ValidWindowOps.concat(ValidAggregateOps)
}, {
'name': 'params',
'type': 'number',
'null': true,
'array': true
}, {
'name': 'fields',
'type': 'field',
'null': true,
'array': true
}, {
'name': 'as',
'type': 'string',
'null': true,
'array': true
}, {
'name': 'frame',
'type': 'number',
'null': true,
'array': true,
'length': 2,
'default': [null, 0]
}, {
'name': 'ignorePeers',
'type': 'boolean',
'default': false
}]
};
inherits(Window, Transform, {
transform(_, pulse) {
this.stamp = pulse.stamp;
const mod = _.modified(),
cmp = stableCompare(_.sort),
key = groupkey(_.groupby),
group = t => this.group(key(t)); // initialize window state
let state = this.state;
if (!state || mod) {
state = this.state = new WindowState(_);
} // partition input tuples
if (mod || pulse.modified(state.inputs)) {
this.value = {};
pulse.visit(pulse.SOURCE, t => group(t).add(t));
} else {
pulse.visit(pulse.REM, t => group(t).remove(t));
pulse.visit(pulse.ADD, t => group(t).add(t));
} // perform window calculations for each modified partition
for (let i = 0, n = this._mlen; i < n; ++i) {
processPartition(this._mods[i], state, cmp, _);
}
this._mlen = 0;
this._mods = []; // TODO don't reflow everything?
return pulse.reflow(mod).modifies(state.outputs);
},
group(key) {
let group = this.value[key];
if (!group) {
group = this.value[key] = SortedList(tupleid);
group.stamp = -1;
}
if (group.stamp < this.stamp) {
group.stamp = this.stamp;
this._mods[this._mlen++] = group;
}
return group;
}
});
function processPartition(list, state, cmp, _) {
const sort = _.sort,
range = sort && !_.ignorePeers,
frame = _.frame || [null, 0],
data = list.data(cmp),
// use cmp for stable sort
n = data.length,
b = range ? bisector$1(sort) : null,
w = {
i0: 0,
i1: 0,
p0: 0,
p1: 0,
index: 0,
data: data,
compare: sort || constant$4(-1)
};
state.init();
for (let i = 0; i < n; ++i) {
setWindow(w, frame, i, n);
if (range) adjustRange(w, b);
state.update(w, data[i]);
}
}
function setWindow(w, f, i, n) {
w.p0 = w.i0;
w.p1 = w.i1;
w.i0 = f[0] == null ? 0 : Math.max(0, i - Math.abs(f[0]));
w.i1 = f[1] == null ? n : Math.min(n, i + Math.abs(f[1]) + 1);
w.index = i;
} // if frame type is 'range', adjust window for peer values
function adjustRange(w, bisect) {
const r0 = w.i0,
r1 = w.i1 - 1,
c = w.compare,
d = w.data,
n = d.length - 1;
if (r0 > 0 && !c(d[r0], d[r0 - 1])) w.i0 = bisect.left(d, d[r0]);
if (r1 < n && !c(d[r1], d[r1 + 1])) w.i1 = bisect.right(d, d[r1]);
}
var tx = /*#__PURE__*/Object.freeze({
__proto__: null,
aggregate: Aggregate$1,
bin: Bin,
collect: Collect$1,
compare: Compare$1,
countpattern: CountPattern,
cross: Cross,
density: Density,
dotbin: DotBin,
expression: Expression$1,
extent: Extent,
facet: Facet$1,
field: Field$1,
filter: Filter,
flatten: Flatten,
fold: Fold,
formula: Formula,
generate: Generate,
impute: Impute,
joinaggregate: JoinAggregate,
kde: KDE,
key: Key$1,
load: Load$1,
lookup: Lookup,
multiextent: MultiExtent$1,
multivalues: MultiValues$1,
params: Params$2,
pivot: Pivot,
prefacet: PreFacet$1,
project: Project,
proxy: Proxy$1,
quantile: Quantile$1,
relay: Relay$1,
sample: Sample,
sequence: Sequence,
sieve: Sieve$1,
subflow: Subflow,
timeunit: TimeUnit,
tupleindex: TupleIndex,
values: Values$1,
window: Window
});
const pi$3 = Math.PI,
tau$3 = 2 * pi$3,
epsilon$4 = 1e-6,
tauEpsilon = tau$3 - epsilon$4;
function Path$1() {
this._x0 = this._y0 = // start of current subpath
this._x1 = this._y1 = null; // end of current subpath
this._ = "";
}
function path$3() {
return new Path$1();
}
Path$1.prototype = path$3.prototype = {
constructor: Path$1,
moveTo: function (x, y) {
this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
},
closePath: function () {
if (this._x1 !== null) {
this._x1 = this._x0, this._y1 = this._y0;
this._ += "Z";
}
},
lineTo: function (x, y) {
this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
},
quadraticCurveTo: function (x1, y1, x, y) {
this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
},
bezierCurveTo: function (x1, y1, x2, y2, x, y) {
this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
},
arcTo: function (x1, y1, x2, y2, r) {
x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
var x0 = this._x1,
y0 = this._y1,
x21 = x2 - x1,
y21 = y2 - y1,
x01 = x0 - x1,
y01 = y0 - y1,
l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.
if (r < 0) throw new Error("negative radius: " + r); // Is this path empty? Move to (x1,y1).
if (this._x1 === null) {
this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
} // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
else if (!(l01_2 > epsilon$4)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
// Equivalently, is (x1,y1) coincident with (x2,y2)?
// Or, is the radius zero? Line to (x1,y1).
else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$4) || !r) {
this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
} // Otherwise, draw an arc!
else {
var x20 = x2 - x0,
y20 = y2 - y0,
l21_2 = x21 * x21 + y21 * y21,
l20_2 = x20 * x20 + y20 * y20,
l21 = Math.sqrt(l21_2),
l01 = Math.sqrt(l01_2),
l = r * Math.tan((pi$3 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
t01 = l / l01,
t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.
if (Math.abs(t01 - 1) > epsilon$4) {
this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
}
this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
}
},
arc: function (x, y, r, a0, a1, ccw) {
x = +x, y = +y, r = +r, ccw = !!ccw;
var dx = r * Math.cos(a0),
dy = r * Math.sin(a0),
x0 = x + dx,
y0 = y + dy,
cw = 1 ^ ccw,
da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.
if (r < 0) throw new Error("negative radius: " + r); // Is this path empty? Move to (x0,y0).
if (this._x1 === null) {
this._ += "M" + x0 + "," + y0;
} // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
else if (Math.abs(this._x1 - x0) > epsilon$4 || Math.abs(this._y1 - y0) > epsilon$4) {
this._ += "L" + x0 + "," + y0;
} // Is this arc empty? We’re done.
if (!r) return; // Does the angle go the wrong way? Flip the direction.
if (da < 0) da = da % tau$3 + tau$3; // Is this a complete circle? Draw two arcs to complete the circle.
if (da > tauEpsilon) {
this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
} // Is this arc non-empty? Draw an arc!
else if (da > epsilon$4) {
this._ += "A" + r + "," + r + ",0," + +(da >= pi$3) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
}
},
rect: function (x, y, w, h) {
this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + +w + "v" + +h + "h" + -w + "Z";
},
toString: function () {
return this._;
}
};
function constant$3 (x) {
return function constant() {
return x;
};
}
var abs$2 = Math.abs;
var atan2$1 = Math.atan2;
var cos$2 = Math.cos;
var max$1 = Math.max;
var min$1 = Math.min;
var sin$2 = Math.sin;
var sqrt$3 = Math.sqrt;
var epsilon$3 = 1e-12;
var pi$2 = Math.PI;
var halfPi$2 = pi$2 / 2;
var tau$2 = 2 * pi$2;
function acos$1(x) {
return x > 1 ? 0 : x < -1 ? pi$2 : Math.acos(x);
}
function asin$2(x) {
return x >= 1 ? halfPi$2 : x <= -1 ? -halfPi$2 : Math.asin(x);
}
function arcInnerRadius(d) {
return d.innerRadius;
}
function arcOuterRadius(d) {
return d.outerRadius;
}
function arcStartAngle(d) {
return d.startAngle;
}
function arcEndAngle(d) {
return d.endAngle;
}
function arcPadAngle(d) {
return d && d.padAngle; // Note: optional!
}
function intersect$3(x0, y0, x1, y1, x2, y2, x3, y3) {
var x10 = x1 - x0,
y10 = y1 - y0,
x32 = x3 - x2,
y32 = y3 - y2,
t = y32 * x10 - x32 * y10;
if (t * t < epsilon$3) return;
t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
return [x0 + t * x10, y0 + t * y10];
} // Compute perpendicular offset line of length rc.
// http://mathworld.wolfram.com/Circle-LineIntersection.html
function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
var x01 = x0 - x1,
y01 = y0 - y1,
lo = (cw ? rc : -rc) / sqrt$3(x01 * x01 + y01 * y01),
ox = lo * y01,
oy = -lo * x01,
x11 = x0 + ox,
y11 = y0 + oy,
x10 = x1 + ox,
y10 = y1 + oy,
x00 = (x11 + x10) / 2,
y00 = (y11 + y10) / 2,
dx = x10 - x11,
dy = y10 - y11,
d2 = dx * dx + dy * dy,
r = r1 - rc,
D = x11 * y10 - x10 * y11,
d = (dy < 0 ? -1 : 1) * sqrt$3(max$1(0, r * r * d2 - D * D)),
cx0 = (D * dy - dx * d) / d2,
cy0 = (-D * dx - dy * d) / d2,
cx1 = (D * dy + dx * d) / d2,
cy1 = (-D * dx + dy * d) / d2,
dx0 = cx0 - x00,
dy0 = cy0 - y00,
dx1 = cx1 - x00,
dy1 = cy1 - y00; // Pick the closer of the two intersection points.
// TODO Is there a faster way to determine which intersection to use?
if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
return {
cx: cx0,
cy: cy0,
x01: -ox,
y01: -oy,
x11: cx0 * (r1 / r - 1),
y11: cy0 * (r1 / r - 1)
};
}
function arc$2$1 () {
var innerRadius = arcInnerRadius,
outerRadius = arcOuterRadius,
cornerRadius = constant$3(0),
padRadius = null,
startAngle = arcStartAngle,
endAngle = arcEndAngle,
padAngle = arcPadAngle,
context = null;
function arc() {
var buffer,
r,
r0 = +innerRadius.apply(this, arguments),
r1 = +outerRadius.apply(this, arguments),
a0 = startAngle.apply(this, arguments) - halfPi$2,
a1 = endAngle.apply(this, arguments) - halfPi$2,
da = abs$2(a1 - a0),
cw = a1 > a0;
if (!context) context = buffer = path$3(); // Ensure that the outer radius is always larger than the inner radius.
if (r1 < r0) r = r1, r1 = r0, r0 = r; // Is it a point?
if (!(r1 > epsilon$3)) context.moveTo(0, 0); // Or is it a circle or annulus?
else if (da > tau$2 - epsilon$3) {
context.moveTo(r1 * cos$2(a0), r1 * sin$2(a0));
context.arc(0, 0, r1, a0, a1, !cw);
if (r0 > epsilon$3) {
context.moveTo(r0 * cos$2(a1), r0 * sin$2(a1));
context.arc(0, 0, r0, a1, a0, cw);
}
} // Or is it a circular or annular sector?
else {
var a01 = a0,
a11 = a1,
a00 = a0,
a10 = a1,
da0 = da,
da1 = da,
ap = padAngle.apply(this, arguments) / 2,
rp = ap > epsilon$3 && (padRadius ? +padRadius.apply(this, arguments) : sqrt$3(r0 * r0 + r1 * r1)),
rc = min$1(abs$2(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
rc0 = rc,
rc1 = rc,
t0,
t1; // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
if (rp > epsilon$3) {
var p0 = asin$2(rp / r0 * sin$2(ap)),
p1 = asin$2(rp / r1 * sin$2(ap));
if ((da0 -= p0 * 2) > epsilon$3) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;else da0 = 0, a00 = a10 = (a0 + a1) / 2;
if ((da1 -= p1 * 2) > epsilon$3) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;else da1 = 0, a01 = a11 = (a0 + a1) / 2;
}
var x01 = r1 * cos$2(a01),
y01 = r1 * sin$2(a01),
x10 = r0 * cos$2(a10),
y10 = r0 * sin$2(a10); // Apply rounded corners?
if (rc > epsilon$3) {
var x11 = r1 * cos$2(a11),
y11 = r1 * sin$2(a11),
x00 = r0 * cos$2(a00),
y00 = r0 * sin$2(a00),
oc; // Restrict the corner radius according to the sector angle.
if (da < pi$2 && (oc = intersect$3(x01, y01, x00, y00, x11, y11, x10, y10))) {
var ax = x01 - oc[0],
ay = y01 - oc[1],
bx = x11 - oc[0],
by = y11 - oc[1],
kc = 1 / sin$2(acos$1((ax * bx + ay * by) / (sqrt$3(ax * ax + ay * ay) * sqrt$3(bx * bx + by * by))) / 2),
lc = sqrt$3(oc[0] * oc[0] + oc[1] * oc[1]);
rc0 = min$1(rc, (r0 - lc) / (kc - 1));
rc1 = min$1(rc, (r1 - lc) / (kc + 1));
}
} // Is the sector collapsed to a line?
if (!(da1 > epsilon$3)) context.moveTo(x01, y01); // Does the sector’s outer ring have rounded corners?
else if (rc1 > epsilon$3) {
t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?
if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2$1(t0.y01, t0.x01), atan2$1(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.
else {
context.arc(t0.cx, t0.cy, rc1, atan2$1(t0.y01, t0.x01), atan2$1(t0.y11, t0.x11), !cw);
context.arc(0, 0, r1, atan2$1(t0.cy + t0.y11, t0.cx + t0.x11), atan2$1(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
context.arc(t1.cx, t1.cy, rc1, atan2$1(t1.y11, t1.x11), atan2$1(t1.y01, t1.x01), !cw);
}
} // Or is the outer ring just a circular arc?
else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); // Is there no inner ring, and it’s a circular sector?
// Or perhaps it’s an annular sector collapsed due to padding?
if (!(r0 > epsilon$3) || !(da0 > epsilon$3)) context.lineTo(x10, y10); // Does the sector’s inner ring (or point) have rounded corners?
else if (rc0 > epsilon$3) {
t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?
if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2$1(t0.y01, t0.x01), atan2$1(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.
else {
context.arc(t0.cx, t0.cy, rc0, atan2$1(t0.y01, t0.x01), atan2$1(t0.y11, t0.x11), !cw);
context.arc(0, 0, r0, atan2$1(t0.cy + t0.y11, t0.cx + t0.x11), atan2$1(t1.cy + t1.y11, t1.cx + t1.x11), cw);
context.arc(t1.cx, t1.cy, rc0, atan2$1(t1.y11, t1.x11), atan2$1(t1.y01, t1.x01), !cw);
}
} // Or is the inner ring just a circular arc?
else context.arc(0, 0, r0, a10, a00, cw);
}
context.closePath();
if (buffer) return context = null, buffer + "" || null;
}
arc.centroid = function () {
var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi$2 / 2;
return [cos$2(a) * r, sin$2(a) * r];
};
arc.innerRadius = function (_) {
return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant$3(+_), arc) : innerRadius;
};
arc.outerRadius = function (_) {
return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant$3(+_), arc) : outerRadius;
};
arc.cornerRadius = function (_) {
return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant$3(+_), arc) : cornerRadius;
};
arc.padRadius = function (_) {
return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant$3(+_), arc) : padRadius;
};
arc.startAngle = function (_) {
return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$3(+_), arc) : startAngle;
};
arc.endAngle = function (_) {
return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$3(+_), arc) : endAngle;
};
arc.padAngle = function (_) {
return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$3(+_), arc) : padAngle;
};
arc.context = function (_) {
return arguments.length ? (context = _ == null ? null : _, arc) : context;
};
return arc;
}
function array$4 (x) {
return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like
: Array.from(x); // Map, Set, iterable, string, or anything else
}
function Linear$1(context) {
this._context = context;
}
Linear$1.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
this._point = 0;
},
lineEnd: function () {
if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
this._line = 1 - this._line;
},
point: function (x, y) {
x = +x, y = +y;
switch (this._point) {
case 0:
this._point = 1;
this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
break;
case 1:
this._point = 2;
// proceed
default:
this._context.lineTo(x, y);
break;
}
}
};
function curveLinear (context) {
return new Linear$1(context);
}
function x$3(p) {
return p[0];
}
function y$3(p) {
return p[1];
}
function line$2$1 (x, y) {
var defined = constant$3(true),
context = null,
curve = curveLinear,
output = null;
x = typeof x === "function" ? x : x === undefined ? x$3 : constant$3(x);
y = typeof y === "function" ? y : y === undefined ? y$3 : constant$3(y);
function line(data) {
var i,
n = (data = array$4(data)).length,
d,
defined0 = false,
buffer;
if (context == null) output = curve(buffer = path$3());
for (i = 0; i <= n; ++i) {
if (!(i < n && defined(d = data[i], i, data)) === defined0) {
if (defined0 = !defined0) output.lineStart();else output.lineEnd();
}
if (defined0) output.point(+x(d, i, data), +y(d, i, data));
}
if (buffer) return output = null, buffer + "" || null;
}
line.x = function (_) {
return arguments.length ? (x = typeof _ === "function" ? _ : constant$3(+_), line) : x;
};
line.y = function (_) {
return arguments.length ? (y = typeof _ === "function" ? _ : constant$3(+_), line) : y;
};
line.defined = function (_) {
return arguments.length ? (defined = typeof _ === "function" ? _ : constant$3(!!_), line) : defined;
};
line.curve = function (_) {
return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
};
line.context = function (_) {
return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
};
return line;
}
function area$2$1 (x0, y0, y1) {
var x1 = null,
defined = constant$3(true),
context = null,
curve = curveLinear,
output = null;
x0 = typeof x0 === "function" ? x0 : x0 === undefined ? x$3 : constant$3(+x0);
y0 = typeof y0 === "function" ? y0 : y0 === undefined ? constant$3(0) : constant$3(+y0);
y1 = typeof y1 === "function" ? y1 : y1 === undefined ? y$3 : constant$3(+y1);
function area(data) {
var i,
j,
k,
n = (data = array$4(data)).length,
d,
defined0 = false,
buffer,
x0z = new Array(n),
y0z = new Array(n);
if (context == null) output = curve(buffer = path$3());
for (i = 0; i <= n; ++i) {
if (!(i < n && defined(d = data[i], i, data)) === defined0) {
if (defined0 = !defined0) {
j = i;
output.areaStart();
output.lineStart();
} else {
output.lineEnd();
output.lineStart();
for (k = i - 1; k >= j; --k) {
output.point(x0z[k], y0z[k]);
}
output.lineEnd();
output.areaEnd();
}
}
if (defined0) {
x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
}
}
if (buffer) return output = null, buffer + "" || null;
}
function arealine() {
return line$2$1().defined(defined).curve(curve).context(context);
}
area.x = function (_) {
return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$3(+_), x1 = null, area) : x0;
};
area.x0 = function (_) {
return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$3(+_), area) : x0;
};
area.x1 = function (_) {
return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant$3(+_), area) : x1;
};
area.y = function (_) {
return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$3(+_), y1 = null, area) : y0;
};
area.y0 = function (_) {
return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$3(+_), area) : y0;
};
area.y1 = function (_) {
return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant$3(+_), area) : y1;
};
area.lineX0 = area.lineY0 = function () {
return arealine().x(x0).y(y0);
};
area.lineY1 = function () {
return arealine().x(x0).y(y1);
};
area.lineX1 = function () {
return arealine().x(x1).y(y0);
};
area.defined = function (_) {
return arguments.length ? (defined = typeof _ === "function" ? _ : constant$3(!!_), area) : defined;
};
area.curve = function (_) {
return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
};
area.context = function (_) {
return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
};
return area;
}
var circle$1 = {
draw: function (context, size) {
var r = Math.sqrt(size / pi$2);
context.moveTo(r, 0);
context.arc(0, 0, r, 0, tau$2);
}
};
function symbol$2 (type, size) {
var context = null;
type = typeof type === "function" ? type : constant$3(type || circle$1);
size = typeof size === "function" ? size : constant$3(size === undefined ? 64 : +size);
function symbol() {
var buffer;
if (!context) context = buffer = path$3();
type.apply(this, arguments).draw(context, +size.apply(this, arguments));
if (buffer) return context = null, buffer + "" || null;
}
symbol.type = function (_) {
return arguments.length ? (type = typeof _ === "function" ? _ : constant$3(_), symbol) : type;
};
symbol.size = function (_) {
return arguments.length ? (size = typeof _ === "function" ? _ : constant$3(+_), symbol) : size;
};
symbol.context = function (_) {
return arguments.length ? (context = _ == null ? null : _, symbol) : context;
};
return symbol;
}
function noop$3 () {}
function point$5(that, x, y) {
that._context.bezierCurveTo((2 * that._x0 + that._x1) / 3, (2 * that._y0 + that._y1) / 3, (that._x0 + 2 * that._x1) / 3, (that._y0 + 2 * that._y1) / 3, (that._x0 + 4 * that._x1 + x) / 6, (that._y0 + 4 * that._y1 + y) / 6);
}
function Basis(context) {
this._context = context;
}
Basis.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:
point$5(this, this._x1, this._y1);
// proceed
case 2:
this._context.lineTo(this._x1, this._y1);
break;
}
if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
this._line = 1 - this._line;
},
point: function (x, y) {
x = +x, y = +y;
switch (this._point) {
case 0:
this._point = 1;
this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
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);
// proceed
default:
point$5(this, x, y);
break;
}
this._x0 = this._x1, this._x1 = x;
this._y0 = this._y1, this._y1 = y;
}
};
function curveBasis (context) {
return new Basis(context);
}
function BasisClosed(context) {
this._context = context;
}
BasisClosed.prototype = {
areaStart: noop$3,
areaEnd: noop$3,
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 (x, y) {
x = +x, y = +y;
switch (this._point) {
case 0:
this._point = 1;
this._x2 = x, this._y2 = y;
break;
case 1:
this._point = 2;
this._x3 = x, this._y3 = y;
break;
case 2:
this._point = 3;
this._x4 = x, this._y4 = y;
this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);
break;
default:
point$5(this, x, y);
break;
}
this._x0 = this._x1, this._x1 = x;
this._y0 = this._y1, this._y1 = y;
}
};
function curveBasisClosed (context) {
return new BasisClosed(context);
}
function BasisOpen(context) {
this._context = context;
}
BasisOpen.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 () {
if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
this._line = 1 - this._line;
},
point: function (x, y) {
x = +x, y = +y;
switch (this._point) {
case 0:
this._point = 1;
break;
case 1:
this._point = 2;
break;
case 2:
this._point = 3;
var x0 = (this._x0 + 4 * this._x1 + x) / 6,
y0 = (this._y0 + 4 * this._y1 + y) / 6;
this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);
break;
case 3:
this._point = 4;
// proceed
default:
point$5(this, x, y);
break;
}
this._x0 = this._x1, this._x1 = x;
this._y0 = this._y1, this._y1 = y;
}
};
function curveBasisOpen (context) {
return new BasisOpen(context);
}
function Bundle(context, beta) {
this._basis = new Basis(context);
this._beta = beta;
}
Bundle.prototype = {
lineStart: function () {
this._x = [];
this._y = [];
this._basis.lineStart();
},
lineEnd: function () {
var x = this._x,
y = this._y,
j = x.length - 1;
if (j > 0) {
var x0 = x[0],
y0 = y[0],
dx = x[j] - x0,
dy = y[j] - y0,
i = -1,
t;
while (++i <= j) {
t = i / j;
this._basis.point(this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), this._beta * y[i] + (1 - this._beta) * (y0 + t * dy));
}
}
this._x = this._y = null;
this._basis.lineEnd();
},
point: function (x, y) {
this._x.push(+x);
this._y.push(+y);
}
};
var curveBundle = (function custom(beta) {
function bundle(context) {
return beta === 1 ? new Basis(context) : new Bundle(context, beta);
}
bundle.beta = function (beta) {
return custom(+beta);
};
return bundle;
})(0.85);
function point$4(that, x, y) {
that._context.bezierCurveTo(that._x1 + that._k * (that._x2 - that._x0), that._y1 + that._k * (that._y2 - that._y0), that._x2 + that._k * (that._x1 - x), that._y2 + that._k * (that._y1 - y), that._x2, that._y2);
}
function Cardinal(context, tension) {
this._context = context;
this._k = (1 - tension) / 6;
}
Cardinal.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:
point$4(this, this._x1, this._y1);
break;
}
if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
this._line = 1 - this._line;
},
point: function (x, y) {
x = +x, y = +y;
switch (this._point) {
case 0:
this._point = 1;
this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
break;
case 1:
this._point = 2;
this._x1 = x, this._y1 = y;
break;
case 2:
this._point = 3;
// proceed
default:
point$4(this, x, y);
break;
}
this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
}
};
var curveCardinal = (function custom(tension) {
function cardinal(context) {
return new Cardinal(context, tension);
}
cardinal.tension = function (tension) {
return custom(+tension);
};
return cardinal;
})(0);
function CardinalClosed(context, tension) {
this._context = context;
this._k = (1 - tension) / 6;
}
CardinalClosed.prototype = {
areaStart: noop$3,
areaEnd: noop$3,
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 (x, y) {
x = +x, y = +y;
switch (this._point) {
case 0:
this._point = 1;
this._x3 = x, this._y3 = y;
break;
case 1:
this._point = 2;
this._context.moveTo(this._x4 = x, this._y4 = y);
break;
case 2:
this._point = 3;
this._x5 = x, this._y5 = y;
break;
default:
point$4(this, x, y);
break;
}
this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
}
};
var curveCardinalClosed = (function custom(tension) {
function cardinal(context) {
return new CardinalClosed(context, tension);
}
cardinal.tension = function (tension) {
return custom(+tension);
};
return cardinal;
})(0);
function CardinalOpen(context, tension) {
this._context = context;
this._k = (1 - tension) / 6;
}
CardinalOpen.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 () {
if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
this._line = 1 - this._line;
},
point: function (x, y) {
x = +x, y = +y;
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;
// proceed
default:
point$4(this, x, y);
break;
}
this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
}
};
var curveCardinalOpen = (function custom(tension) {
function cardinal(context) {
return new CardinalOpen(context, tension);
}
cardinal.tension = function (tension) {
return custom(+tension);
};
return cardinal;
})(0);
function point$3(that, x, y) {
var x1 = that._x1,
y1 = that._y1,
x2 = that._x2,
y2 = that._y2;
if (that._l01_a > epsilon$3) {
var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
n = 3 * that._l01_a * (that._l01_a + that._l12_a);
x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
}
if (that._l23_a > epsilon$3) {
var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
m = 3 * that._l23_a * (that._l23_a + that._l12_a);
x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
}
that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
}
function CatmullRom(context, alpha) {
this._context = context;
this._alpha = alpha;
}
CatmullRom.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;
}
if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
this._line = 1 - this._line;
},
point: function (x, y) {
x = +x, y = +y;
if (this._point) {
var x23 = this._x2 - x,
y23 = this._y2 - y;
this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
}
switch (this._point) {
case 0:
this._point = 1;
this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
break;
case 1:
this._point = 2;
break;
case 2:
this._point = 3;
// proceed
default:
point$3(this, x, y);
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 = x;
this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
}
};
var curveCatmullRom = (function custom(alpha) {
function catmullRom(context) {
return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
}
catmullRom.alpha = function (alpha) {
return custom(+alpha);
};
return catmullRom;
})(0.5);
function CatmullRomClosed(context, alpha) {
this._context = context;
this._alpha = alpha;
}
CatmullRomClosed.prototype = {
areaStart: noop$3,
areaEnd: noop$3,
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 (x, y) {
x = +x, y = +y;
if (this._point) {
var x23 = this._x2 - x,
y23 = this._y2 - y;
this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
}
switch (this._point) {
case 0:
this._point = 1;
this._x3 = x, this._y3 = y;
break;
case 1:
this._point = 2;
this._context.moveTo(this._x4 = x, this._y4 = y);
break;
case 2:
this._point = 3;
this._x5 = x, this._y5 = y;
break;
default:
point$3(this, x, y);
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 = x;
this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
}
};
var curveCatmullRomClosed = (function custom(alpha) {
function catmullRom(context) {
return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
}
catmullRom.alpha = function (alpha) {
return custom(+alpha);
};
return catmullRom;
})(0.5);
function CatmullRomOpen(context, alpha) {
this._context = context;
this._alpha = alpha;
}
CatmullRomOpen.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 () {
if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
this._line = 1 - this._line;
},
point: function (x, y) {
x = +x, y = +y;
if (this._point) {
var x23 = this._x2 - x,
y23 = this._y2 - y;
this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, 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;
// proceed
default:
point$3(this, x, y);
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 = x;
this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
}
};
var curveCatmullRomOpen = (function custom(alpha) {
function catmullRom(context) {
return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
}
catmullRom.alpha = function (alpha) {
return custom(+alpha);
};
return catmullRom;
})(0.5);
function LinearClosed(context) {
this._context = context;
}
LinearClosed.prototype = {
areaStart: noop$3,
areaEnd: noop$3,
lineStart: function () {
this._point = 0;
},
lineEnd: function () {
if (this._point) this._context.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment