You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
283 KiB
18 lines
283 KiB
import{aa as Qt,a6 as te,p as ee,d as ie,t as se,Q as Zt,o as re,b as oe,k as ne}from"./index-bVOhw2NF.js";import{H as ae}from"./highcharts-3d-DVmvrGIS.js";import{c as le}from"./cloneDeep-C6NKQlMO.js";import"./_initCloneObject-K-Y0ueWp.js";import"./_getTag-BJ2nhJXz.js";var Kt={exports:{}};(function(Pt){(function(Mt,Y){Pt.exports?(Y.default=Y,Pt.exports=Mt&&Mt.document?Y(Mt):Y):(Mt.Highcharts&&Mt.Highcharts.error(16,!0),Mt.Highcharts=Y(Mt))})(typeof window<"u"?window:Qt,function(Mt){var Y={};function yt(J,et,ht,ct){!J.hasOwnProperty(et)&&(J[et]=ct.apply(null,ht),Mt&&typeof CustomEvent=="function"&&Mt.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:et,module:J[et]}})))}return yt(Y,"Core/Globals.js",[],function(){var J,et;return(et=J||(J={})).SVG_NS="http://www.w3.org/2000/svg",et.product="Highcharts",et.version="11.4.8",et.win=Mt!==void 0?Mt:{},et.doc=et.win.document,et.svg=et.doc&&et.doc.createElementNS&&!!et.doc.createElementNS(et.SVG_NS,"svg").createSVGRect,et.userAgent=et.win.navigator&&et.win.navigator.userAgent||"",et.isChrome=et.win.chrome,et.isFirefox=et.userAgent.indexOf("Firefox")!==-1,et.isMS=/(edge|msie|trident)/i.test(et.userAgent)&&!et.win.opera,et.isSafari=!et.isChrome&&et.userAgent.indexOf("Safari")!==-1,et.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(et.userAgent),et.isWebKit=et.userAgent.indexOf("AppleWebKit")!==-1,et.deg2rad=2*Math.PI/360,et.hasBidiBug=et.isFirefox&&4>parseInt(et.userAgent.split("Firefox/")[1],10),et.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],et.noop=function(){},et.supportsPassiveEvents=function(){let ht=!1;if(!et.isMS){let ct=Object.defineProperty({},"passive",{get:function(){ht=!0}});et.win.addEventListener&&et.win.removeEventListener&&(et.win.addEventListener("testPassive",et.noop,ct),et.win.removeEventListener("testPassive",et.noop,ct))}return ht}(),et.charts=[],et.composed=[],et.dateFormats={},et.seriesTypes={},et.symbolSizes={},et.chartCount=0,J}),yt(Y,"Core/Utilities.js",[Y["Core/Globals.js"]],function(J){let et,{charts:ht,doc:ct,win:lt}=J;function nt(e,t,o,a){let f=t?"Highcharts error":"Highcharts warning";e===32&&(e=`${f}: Deprecated member`);let y=j(e),h=y?`${f} #${e}: www.highcharts.com/errors/${e}/`:e.toString();if(a!==void 0){let T="";y&&(h+="?"),k(a,function(X,g){T+=`
|
|
- ${g}: ${X}`,y&&(h+=encodeURI(g)+"="+encodeURI(X))}),h+=T}u(J,"displayError",{chart:o,code:e,message:h,params:a},function(){if(t)throw Error(h);lt.console&&nt.messages.indexOf(h)===-1&&console.warn(h)}),nt.messages.push(h)}function at(e,t){return parseInt(e,t||10)}function q(e){return typeof e=="string"}function $(e){let t=Object.prototype.toString.call(e);return t==="[object Array]"||t==="[object Array Iterator]"}function V(e,t){return!!e&&typeof e=="object"&&(!t||!$(e))}function M(e){return V(e)&&typeof e.nodeType=="number"}function R(e){let t=e&&e.constructor;return!!(V(e,!0)&&!M(e)&&t&&t.name&&t.name!=="Object")}function j(e){return typeof e=="number"&&!isNaN(e)&&e<1/0&&e>-1/0}function P(e){return e!=null}function m(e,t,o){let a,f=q(t)&&!P(o),y=(h,T)=>{P(h)?e.setAttribute(T,h):f?(a=e.getAttribute(T))||T!=="class"||(a=e.getAttribute(T+"Name")):e.removeAttribute(T)};return q(t)?y(o,t):k(t,y),a}function b(e){return $(e)?e:[e]}function S(e,t){let o;for(o in e||(e={}),t)e[o]=t[o];return e}function A(){let e=arguments,t=e.length;for(let o=0;o<t;o++){let a=e[o];if(a!=null)return a}}function d(e,t){S(e.style,t)}function v(e){return Math.pow(10,Math.floor(Math.log(e)/Math.LN10))}function B(e,t){return e>1e14?e:parseFloat(e.toPrecision(t||14))}(nt||(nt={})).messages=[],Math.easeInOutSine=function(e){return-.5*(Math.cos(Math.PI*e)-1)};let O=Array.prototype.find?function(e,t){return e.find(t)}:function(e,t){let o,a=e.length;for(o=0;o<a;o++)if(t(e[o],o))return e[o]};function k(e,t,o){for(let a in e)Object.hasOwnProperty.call(e,a)&&t.call(o||e[a],e[a],a,e)}function r(e,t,o){function a(h,T){let X=e.removeEventListener;X&&X.call(e,h,T,!1)}function f(h){let T,X;e.nodeName&&(t?(T={})[t]=!0:T=h,k(T,function(g,L){if(h[L])for(X=h[L].length;X--;)a(L,h[L][X].fn)}))}let y=typeof e=="function"&&e.prototype||e;if(Object.hasOwnProperty.call(y,"hcEvents")){let h=y.hcEvents;if(t){let T=h[t]||[];o?(h[t]=T.filter(function(X){return o!==X.fn}),a(t,o)):(f(h),h[t]=[])}else f(h),delete y.hcEvents}}function u(e,t,o,a){if(o=o||{},ct.createEvent&&(e.dispatchEvent||e.fireEvent&&e!==J)){let f=ct.createEvent("Events");f.initEvent(t,!0,!0),o=S(f,o),e.dispatchEvent?e.dispatchEvent(o):e.fireEvent(t,o)}else if(e.hcEvents){o.target||S(o,{preventDefault:function(){o.defaultPrevented=!0},target:e,type:t});let f=[],y=e,h=!1;for(;y.hcEvents;)Object.hasOwnProperty.call(y,"hcEvents")&&y.hcEvents[t]&&(f.length&&(h=!0),f.unshift.apply(f,y.hcEvents[t])),y=Object.getPrototypeOf(y);h&&f.sort((T,X)=>T.order-X.order),f.forEach(T=>{T.fn.call(e,o)===!1&&o.preventDefault()})}a&&!o.defaultPrevented&&a.call(e,o)}k({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(e,t){J[t]=function(o){return nt(32,!1,void 0,{[`Highcharts.${t}`]:`use Array.${e}`}),Array.prototype[e].apply(o,[].slice.call(arguments,1))}});let s=function(){let e=Math.random().toString(36).substring(2,9)+"-",t=0;return function(){return"highcharts-"+(et?"":e)+t++}}();return lt.jQuery&&(lt.jQuery.fn.highcharts=function(){let e=[].slice.call(arguments);if(this[0])return e[0]?(new J[q(e[0])?e.shift():"Chart"](this[0],e[0],e[1]),this):ht[m(this[0],"data-highcharts-chart")]}),{addEvent:function(e,t,o,a={}){let f=typeof e=="function"&&e.prototype||e;Object.hasOwnProperty.call(f,"hcEvents")||(f.hcEvents={});let y=f.hcEvents;J.Point&&e instanceof J.Point&&e.series&&e.series.chart&&(e.series.chart.runTrackerClick=!0);let h=e.addEventListener;h&&h.call(e,t,o,!!J.supportsPassiveEvents&&{passive:a.passive===void 0?t.indexOf("touch")!==-1:a.passive,capture:!1}),y[t]||(y[t]=[]);let T={fn:o,order:typeof a.order=="number"?a.order:1/0};return y[t].push(T),y[t].sort((X,g)=>X.order-g.order),function(){r(e,t,o)}},arrayMax:function(e){let t=e.length,o=e[0];for(;t--;)e[t]>o&&(o=e[t]);return o},arrayMin:function(e){let t=e.length,o=e[0];for(;t--;)e[t]<o&&(o=e[t]);return o},attr:m,clamp:function(e,t,o){return e>t?e<o?e:o:t},clearTimeout:function(e){P(e)&&clearTimeout(e)},correctFloat:B,createElement:function(e,t,o,a,f){let y=ct.createElement(e);return t&&S(y,t),f&&d(y,{padding:"0",border:"none",margin:"0"}),o&&d(y,o),a&&a.appendChild(y),y},crisp:(e,t=0,o)=>{let a=t%2/2,f=o?-1:1;return(Math.round(e*f-a)+a)*f},css:d,defined:P,destroyObjectProperties:function(e,t,o){k(e,function(a,f){a!==t&&(a!=null&&a.destroy)&&a.destroy(),(a!=null&&a.destroy||!o)&&delete e[f]})},diffObjects:function(e,t,o,a){let f={};return function y(h,T,X,g){let L=o?T:h;k(h,function(I,F){if(!g&&a&&a.indexOf(F)>-1&&T[F]){I=b(I),X[F]=[];for(let Q=0;Q<Math.max(I.length,T[F].length);Q++)T[F][Q]&&(I[Q]===void 0?X[F][Q]=T[F][Q]:(X[F][Q]={},y(I[Q],T[F][Q],X[F][Q],g+1)))}else V(I,!0)&&!I.nodeType?(X[F]=$(I)?[]:{},y(I,T[F]||{},X[F],g+1),Object.keys(X[F]).length!==0||F==="colorAxis"&&g===0||delete X[F]):(h[F]!==T[F]||F in h&&!(F in T))&&F!=="__proto__"&&F!=="constructor"&&(X[F]=L[F])})}(e,t,f,0),f},discardElement:function(e){e&&e.parentElement&&e.parentElement.removeChild(e)},erase:function(e,t){let o=e.length;for(;o--;)if(e[o]===t){e.splice(o,1);break}},error:nt,extend:S,extendClass:function(e,t){let o=function(){};return o.prototype=new e,S(o.prototype,t),o},find:O,fireEvent:u,getClosestDistance:function(e,t){let o,a,f,y=!t;return e.forEach(h=>{if(h.length>1)for(f=h.length-1;f>0;f--)(a=h[f]-h[f-1])<0&&!y?(t==null||t(),t=void 0):a&&(o===void 0||a<o)&&(o=a)}),o},getMagnitude:v,getNestedProperty:function(e,t){let o=e.split(".");for(;o.length&&P(t);){let a=o.shift();if(a===void 0||a==="__proto__")return;if(a==="this"){let y;return V(t)&&(y=t["@this"]),y??t}let f=t[a];if(!P(f)||typeof f=="function"||typeof f.nodeType=="number"||f===lt)return;t=f}return t},getStyle:function e(t,o,a){let f;if(o==="width"){let h=Math.min(t.offsetWidth,t.scrollWidth),T=t.getBoundingClientRect&&t.getBoundingClientRect().width;return T<h&&T>=h-1&&(h=Math.floor(T)),Math.max(0,h-(e(t,"padding-left",!0)||0)-(e(t,"padding-right",!0)||0))}if(o==="height")return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(e(t,"padding-top",!0)||0)-(e(t,"padding-bottom",!0)||0));let y=lt.getComputedStyle(t,void 0);return y&&(f=y.getPropertyValue(o),A(a,o!=="opacity")&&(f=at(f))),f},inArray:function(e,t,o){return nt(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),t.indexOf(e,o)},insertItem:function(e,t){let o,a=e.options.index,f=t.length;for(o=e.options.isInternal?f:0;o<f+1;o++)if(!t[o]||j(a)&&a<A(t[o].options.index,t[o]._i)||t[o].options.isInternal){t.splice(o,0,e);break}return o},isArray:$,isClass:R,isDOMElement:M,isFunction:function(e){return typeof e=="function"},isNumber:j,isObject:V,isString:q,keys:function(e){return nt(32,!1,void 0,{"Highcharts.keys":"use Object.keys"}),Object.keys(e)},merge:function(){let e,t=arguments,o={},a=function(y,h){return typeof y!="object"&&(y={}),k(h,function(T,X){X!=="__proto__"&&X!=="constructor"&&(!V(T,!0)||R(T)||M(T)?y[X]=h[X]:y[X]=a(y[X]||{},T))}),y};t[0]===!0&&(o=t[1],t=Array.prototype.slice.call(t,2));let f=t.length;for(e=0;e<f;e++)o=a(o,t[e]);return o},normalizeTickInterval:function(e,t,o,a,f){let y,h=e;o=A(o,v(e));let T=e/o;for(!t&&(t=f?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],a===!1&&(o===1?t=t.filter(function(X){return X%1==0}):o<=.1&&(t=[1/o]))),y=0;y<t.length&&(h=t[y],(!f||!(h*o>=e))&&(f||!(T<=(t[y]+(t[y+1]||t[y]))/2)));y++);return B(h*o,-Math.round(Math.log(.001)/Math.LN10))},objectEach:k,offset:function(e){let t=ct.documentElement,o=e.parentElement||e.parentNode?e.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:o.top+(lt.pageYOffset||t.scrollTop)-(t.clientTop||0),left:o.left+(lt.pageXOffset||t.scrollLeft)-(t.clientLeft||0),width:o.width,height:o.height}},pad:function(e,t,o){return Array((t||2)+1-String(e).replace("-","").length).join(o||"0")+e},pick:A,pInt:at,pushUnique:function(e,t){return 0>e.indexOf(t)&&!!e.push(t)},relativeLength:function(e,t,o){return/%$/.test(e)?t*parseFloat(e)/100+(o||0):parseFloat(e)},removeEvent:r,replaceNested:function(e,...t){let o,a;do for(a of(o=e,t))e=e.replace(a[0],a[1]);while(e!==o);return e},splat:b,stableSort:function(e,t){let o,a,f=e.length;for(a=0;a<f;a++)e[a].safeI=a;for(e.sort(function(y,h){return(o=t(y,h))===0?y.safeI-h.safeI:o}),a=0;a<f;a++)delete e[a].safeI},syncTimeout:function(e,t,o){return t>0?setTimeout(e,t,o):(e.call(0,o),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:s,useSerialIds:function(e){return et=A(e,et)},wrap:function(e,t,o){let a=e[t];e[t]=function(){let f=arguments,y=this;return o.apply(this,[function(){return a.apply(y,arguments.length?arguments:f)}].concat([].slice.call(arguments)))}}}}),yt(Y,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),yt(Y,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),yt(Y,"Core/Time.js",[Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et){let{win:ht}=J,{defined:ct,error:lt,extend:nt,isNumber:at,isObject:q,merge:$,objectEach:V,pad:M,pick:R,splat:j,timeUnits:P}=et,m=J.isSafari&&ht.Intl&&ht.Intl.DateTimeFormat.prototype.formatRange,b=J.isSafari&&ht.Intl&&!ht.Intl.DateTimeFormat.prototype.formatRange;class S{constructor(d){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=ht.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(d)}get(d,v){if(this.variableTimezone||this.timezoneOffset){let B=v.getTime(),O=B-this.getTimezoneOffset(v);v.setTime(O);let k=v["getUTC"+d]();return v.setTime(B),k}return this.useUTC?v["getUTC"+d]():v["get"+d]()}set(d,v,B){if(this.variableTimezone||this.timezoneOffset){if(d==="Milliseconds"||d==="Seconds"||d==="Minutes"&&this.getTimezoneOffset(v)%36e5==0)return v["setUTC"+d](B);let O=this.getTimezoneOffset(v),k=v.getTime()-O;v.setTime(k),v["setUTC"+d](B);let r=this.getTimezoneOffset(v);return k=v.getTime()+r,v.setTime(k)}return this.useUTC||m&&d==="FullYear"?v["setUTC"+d](B):v["set"+d](B)}update(d={}){let v=R(d.useUTC,!0);this.options=d=$(!0,this.options,d),this.Date=d.Date||ht.Date||Date,this.useUTC=v,this.timezoneOffset=v&&d.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=v&&!!(d.getTimezoneOffset||d.timezone)}makeTime(d,v,B,O,k,r){let u,s,e;return this.useUTC?(u=this.Date.UTC.apply(0,arguments),s=this.getTimezoneOffset(u),u+=s,s!==(e=this.getTimezoneOffset(u))?u+=e-s:s-36e5!==this.getTimezoneOffset(u-36e5)||b||(u-=36e5)):u=new this.Date(d,v,R(B,1),R(O,0),R(k,0),R(r,0)).getTime(),u}timezoneOffsetFunction(){let d=this,v=this.options,B=v.getTimezoneOffset;return this.useUTC?v.timezone?O=>{try{let k=`shortOffset,${v.timezone||""}`,[r,u,s,e,t=0]=(S.formatCache[k]=S.formatCache[k]||Intl.DateTimeFormat("en",{timeZone:v.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),o=-(36e5*(s+t/60));if(at(o))return o}catch{lt(34)}return 0}:this.useUTC&&B?O=>6e4*B(O.valueOf()):()=>6e4*(d.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(d,v,B){if(!ct(v)||isNaN(v))return J.defaultOptions.lang&&J.defaultOptions.lang.invalidDate||"";d=R(d,"%Y-%m-%d %H:%M:%S");let O=this,k=new this.Date(v),r=this.get("Hours",k),u=this.get("Day",k),s=this.get("Date",k),e=this.get("Month",k),t=this.get("FullYear",k),o=J.defaultOptions.lang,a=o&&o.weekdays,f=o&&o.shortWeekdays;return V(nt({a:f?f[u]:a[u].substr(0,3),A:a[u],d:M(s),e:M(s,2," "),w:u,b:o.shortMonths[e],B:o.months[e],m:M(e+1),o:e+1,y:t.toString().substr(2,2),Y:t,H:M(r),k:r,I:M(r%12||12),l:r%12||12,M:M(this.get("Minutes",k)),p:r<12?"AM":"PM",P:r<12?"am":"pm",S:M(this.get("Seconds",k)),L:M(Math.floor(v%1e3),3)},J.dateFormats),function(y,h){for(;d.indexOf("%"+h)!==-1;)d=d.replace("%"+h,typeof y=="function"?y.call(O,v):y)}),B?d.substr(0,1).toUpperCase()+d.substr(1):d}resolveDTLFormat(d){return q(d,!0)?d:{main:(d=j(d))[0],from:d[1],to:d[2]}}getTimeTicks(d,v,B,O){let k,r,u,s,e=this,t=e.Date,o=[],a={},f=new t(v),y=d.unitRange,h=d.count||1;if(O=R(O,1),ct(v)){e.set("Milliseconds",f,y>=P.second?0:h*Math.floor(e.get("Milliseconds",f)/h)),y>=P.second&&e.set("Seconds",f,y>=P.minute?0:h*Math.floor(e.get("Seconds",f)/h)),y>=P.minute&&e.set("Minutes",f,y>=P.hour?0:h*Math.floor(e.get("Minutes",f)/h)),y>=P.hour&&e.set("Hours",f,y>=P.day?0:h*Math.floor(e.get("Hours",f)/h)),y>=P.day&&e.set("Date",f,y>=P.month?1:Math.max(1,h*Math.floor(e.get("Date",f)/h))),y>=P.month&&(e.set("Month",f,y>=P.year?0:h*Math.floor(e.get("Month",f)/h)),r=e.get("FullYear",f)),y>=P.year&&(r-=r%h,e.set("FullYear",f,r)),y===P.week&&(s=e.get("Day",f),e.set("Date",f,e.get("Date",f)-s+O+(s<O?-7:0))),r=e.get("FullYear",f);let T=e.get("Month",f),X=e.get("Date",f),g=e.get("Hours",f);v=f.getTime(),(e.variableTimezone||!e.useUTC)&&ct(B)&&(u=B-v>4*P.month||e.getTimezoneOffset(v)!==e.getTimezoneOffset(B));let L=f.getTime();for(k=1;L<B;)o.push(L),y===P.year?L=e.makeTime(r+k*h,0):y===P.month?L=e.makeTime(r,T+k*h):u&&(y===P.day||y===P.week)?L=e.makeTime(r,T,X+k*h*(y===P.day?1:7)):u&&y===P.hour&&h>1?L=e.makeTime(r,T,X,g+k*h):L+=y*h,k++;o.push(L),y<=P.hour&&o.length<1e4&&o.forEach(function(I){I%18e5==0&&e.dateFormat("%H%M%S%L",I)==="000000000"&&(a[I]="day")})}return o.info=nt(d,{higherRanks:a,totalRange:y*h}),o}getDateFormat(d,v,B,O){let k=this.dateFormat("%m-%d %H:%M:%S.%L",v),r="01-01 00:00:00.000",u={millisecond:15,second:12,minute:9,hour:6,day:3},s="millisecond",e=s;for(s in P){if(d===P.week&&+this.dateFormat("%w",v)===B&&k.substr(6)===r.substr(6)){s="week";break}if(P[s]>d){s=e;break}if(u[s]&&k.substr(u[s])!==r.substr(u[s]))break;s!=="week"&&(e=s)}return this.resolveDTLFormat(O[s]).main}}return S.formatCache={},S}),yt(Y,"Core/Defaults.js",[Y["Core/Chart/ChartDefaults.js"],Y["Core/Globals.js"],Y["Core/Color/Palettes.js"],Y["Core/Time.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt){let{isTouchDevice:nt}=et,{fireEvent:at,merge:q}=lt,$={colors:ht.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",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"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:J,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:M=>Math.sqrt(1-Math.pow(M-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:nt?25:10,headerFormat:'<span style="font-size: 0.8em">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};$.chart.styledMode=!1;let V=new ct($.time);return{defaultOptions:$,defaultTime:V,getOptions:function(){return $},setOptions:function(M){return at(et,"setOptions",{options:M}),q(!0,$,M),(M.time||M.global)&&(et.time?et.time.update(q($.global,$.time,M.global,M.time)):et.time=V),$}}}),yt(Y,"Core/Color/Color.js",[Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et){let{isNumber:ht,merge:ct,pInt:lt}=et;class nt{static parse(q){return q?new nt(q):nt.None}constructor(q){let $,V,M,R;this.rgba=[NaN,NaN,NaN,NaN],this.input=q;let j=J.Color;if(j&&j!==nt)return new j(q);if(typeof q=="object"&&q.stops!==void 0)this.stops=q.stops.map(P=>new nt(P[1]));else if(typeof q=="string"){if(this.input=q=nt.names[q.toLowerCase()]||q,q.charAt(0)==="#"){let P=q.length,m=parseInt(q.substr(1),16);P===7?V=[(16711680&m)>>16,(65280&m)>>8,255&m,1]:P===4&&(V=[(3840&m)>>4|(3840&m)>>8,(240&m)>>4|240&m,(15&m)<<4|15&m,1])}if(!V)for(M=nt.parsers.length;M--&&!V;)($=(R=nt.parsers[M]).regex.exec(q))&&(V=R.parse($))}V&&(this.rgba=V)}get(q){let $=this.input,V=this.rgba;if(typeof $=="object"&&this.stops!==void 0){let M=ct($);return M.stops=[].slice.call(M.stops),this.stops.forEach((R,j)=>{M.stops[j]=[M.stops[j][0],R.get(q)]}),M}return V&&ht(V[0])?q!=="rgb"&&(q||V[3]!==1)?q==="a"?`${V[3]}`:"rgba("+V.join(",")+")":"rgb("+V[0]+","+V[1]+","+V[2]+")":$}brighten(q){let $=this.rgba;if(this.stops)this.stops.forEach(function(V){V.brighten(q)});else if(ht(q)&&q!==0)for(let V=0;V<3;V++)$[V]+=lt(255*q),$[V]<0&&($[V]=0),$[V]>255&&($[V]=255);return this}setOpacity(q){return this.rgba[3]=q,this}tweenTo(q,$){let V=this.rgba,M=q.rgba;if(!ht(V[0])||!ht(M[0]))return q.input||"none";let R=M[3]!==1||V[3]!==1;return(R?"rgba(":"rgb(")+Math.round(M[0]+(V[0]-M[0])*(1-$))+","+Math.round(M[1]+(V[1]-M[1])*(1-$))+","+Math.round(M[2]+(V[2]-M[2])*(1-$))+(R?","+(M[3]+(V[3]-M[3])*(1-$)):"")+")"}}return nt.names={white:"#ffffff",black:"#000000"},nt.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(at){return[lt(at[1]),lt(at[2]),lt(at[3]),parseFloat(at[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(at){return[lt(at[1]),lt(at[2]),lt(at[3]),1]}}],nt.None=new nt(""),nt}),yt(Y,"Core/Animation/Fx.js",[Y["Core/Color/Color.js"],Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{parse:ct}=J,{win:lt}=et,{isNumber:nt,objectEach:at}=ht;class q{constructor(V,M,R){this.pos=NaN,this.options=M,this.elem=V,this.prop=R}dSetter(){let V=this.paths,M=V&&V[0],R=V&&V[1],j=this.now||0,P=[];if(j!==1&&M&&R)if(M.length===R.length&&j<1)for(let m=0;m<R.length;m++){let b=M[m],S=R[m],A=[];for(let d=0;d<S.length;d++){let v=b[d],B=S[d];nt(v)&&nt(B)&&!(S[0]==="A"&&(d===4||d===5))?A[d]=v+j*(B-v):A[d]=B}P.push(A)}else P=R;else P=this.toD||[];this.elem.attr("d",P,void 0,!0)}update(){let V=this.elem,M=this.prop,R=this.now,j=this.options.step;this[M+"Setter"]?this[M+"Setter"]():V.attr?V.element&&V.attr(M,R,null,!0):V.style[M]=R+this.unit,j&&j.call(V,R,this)}run(V,M,R){let j=this,P=j.options,m=function(A){return!m.stopped&&j.step(A)},b=lt.requestAnimationFrame||function(A){setTimeout(A,13)},S=function(){for(let A=0;A<q.timers.length;A++)q.timers[A]()||q.timers.splice(A--,1);q.timers.length&&b(S)};V!==M||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=V,this.end=M,this.unit=R,this.now=this.start,this.pos=0,m.elem=this.elem,m.prop=this.prop,m()&&q.timers.push(m)===1&&b(S)):(delete P.curAnim[this.prop],P.complete&&Object.keys(P.curAnim).length===0&&P.complete.call(this.elem))}step(V){let M,R,j=+new Date,P=this.options,m=this.elem,b=P.complete,S=P.duration,A=P.curAnim;return m.attr&&!m.element?M=!1:V||j>=S+this.startTime?(this.now=this.end,this.pos=1,this.update(),A[this.prop]=!0,R=!0,at(A,function(d){d!==!0&&(R=!1)}),R&&b&&b.call(m),M=!1):(this.pos=P.easing((j-this.startTime)/S),this.now=this.start+(this.end-this.start)*this.pos,this.update(),M=!0),M}initPath(V,M,R){let j=V.startX,P=V.endX,m=R.slice(),b=V.isArea,S=b?2:1,A=M&&R.length>M.length&&R.hasStackedCliffs,d,v,B,O,k=M&&M.slice();if(!k||A)return[m,m];function r(s,e){for(;s.length<v;){let t=s[0],o=e[v-s.length];if(o&&t[0]==="M"&&(o[0]==="C"?s[0]=["C",t[1],t[2],t[1],t[2],t[1],t[2]]:s[0]=["L",t[1],t[2]]),s.unshift(t),b){let a=s.pop();s.push(s[s.length-1],a)}}}function u(s){for(;s.length<v;){let e=s[Math.floor(s.length/S)-1].slice();if(e[0]==="C"&&(e[1]=e[5],e[2]=e[6]),b){let t=s[Math.floor(s.length/S)].slice();s.splice(s.length/2,0,e,t)}else s.push(e)}}if(j&&P&&P.length){for(B=0;B<j.length;B++){if(j[B]===P[0]){d=B;break}if(j[0]===P[P.length-j.length+B]){d=B,O=!0;break}if(j[j.length-1]===P[P.length-j.length+B]){d=j.length-B;break}}d===void 0&&(k=[])}return k.length&&nt(d)&&(v=m.length+d*S,O?(r(k,m),u(m)):(r(m,k),u(k))),[k,m]}fillSetter(){q.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,ct(this.start).tweenTo(ct(this.end),this.pos),void 0,!0)}}return q.timers=[],q}),yt(Y,"Core/Animation/AnimationUtilities.js",[Y["Core/Animation/Fx.js"],Y["Core/Utilities.js"]],function(J,et){let{defined:ht,getStyle:ct,isArray:lt,isNumber:nt,isObject:at,merge:q,objectEach:$,pick:V}=et;function M(j){return at(j)?q({duration:500,defer:0},j):{duration:j?500:0,defer:0}}function R(j,P){let m=J.timers.length;for(;m--;)J.timers[m].elem!==j||P&&P!==J.timers[m].prop||(J.timers[m].stopped=!0)}return{animate:function(j,P,m){let b,S="",A,d,v;at(m)||(v=arguments,m={duration:v[2],easing:v[3],complete:v[4]}),nt(m.duration)||(m.duration=400),m.easing=typeof m.easing=="function"?m.easing:Math[m.easing]||Math.easeInOutSine,m.curAnim=q(P),$(P,function(B,O){R(j,O),d=new J(j,m,O),A=void 0,O==="d"&<(P.d)?(d.paths=d.initPath(j,j.pathArray,P.d),d.toD=P.d,b=0,A=1):j.attr?b=j.attr(O):(b=parseFloat(ct(j,O))||0,O!=="opacity"&&(S="px")),A||(A=B),typeof A=="string"&&A.match("px")&&(A=A.replace(/px/g,"")),d.run(b,A,S)})},animObject:M,getDeferredAnimation:function(j,P,m){let b=M(P),S=m?[m]:j.series,A=0,d=0;return S.forEach(v=>{let B=M(v.options.animation);A=at(P)&&ht(P.defer)?b.defer:Math.max(A,B.duration+B.defer),d=Math.min(b.duration,B.duration)}),j.renderer.forExport&&(A=0),{defer:Math.max(0,A-d),duration:Math.min(A,d)}},setAnimation:function(j,P){P.renderer.globalAnimation=V(j,P.options.chart.animation,!0)},stop:R}}),yt(Y,"Core/Renderer/HTML/AST.js",[Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et){let{SVG_NS:ht,win:ct}=J,{attr:lt,createElement:nt,css:at,error:q,isFunction:$,isString:V,objectEach:M,splat:R}=et,{trustedTypes:j}=ct,P=j&&$(j.createPolicy)&&j.createPolicy("highcharts",{createHTML:A=>A}),m=P?P.createHTML(""):"",b=function(){try{return!!new DOMParser().parseFromString(m,"text/html")}catch{return!1}}();class S{static filterUserAttributes(d){return M(d,(v,B)=>{let O=!0;S.allowedAttributes.indexOf(B)===-1&&(O=!1),["background","dynsrc","href","lowsrc","src"].indexOf(B)!==-1&&(O=V(v)&&S.allowedReferences.some(k=>v.indexOf(k)===0)),O||(q(33,!1,void 0,{"Invalid attribute in config":`${B}`}),delete d[B]),V(v)&&d[B]&&(d[B]=v.replace(/</g,"<"))}),d}static parseStyle(d){return d.split(";").reduce((v,B)=>{let O=B.split(":").map(r=>r.trim()),k=O.shift();return k&&O.length&&(v[k.replace(/-([a-z])/g,r=>r[1].toUpperCase())]=O.join(":")),v},{})}static setElementHTML(d,v){d.innerHTML=S.emptyHTML,v&&new S(v).addToDOM(d)}constructor(d){this.nodes=typeof d=="string"?this.parseMarkup(d):d}addToDOM(d){return function v(B,O){let k;return R(B).forEach(function(r){let u,s=r.tagName,e=r.textContent?J.doc.createTextNode(r.textContent):void 0,t=S.bypassHTMLFiltering;if(s)if(s==="#text")u=e;else if(S.allowedTags.indexOf(s)!==-1||t){let o=s==="svg"?ht:O.namespaceURI||ht,a=J.doc.createElementNS(o,s),f=r.attributes||{};M(r,function(y,h){h!=="tagName"&&h!=="attributes"&&h!=="children"&&h!=="style"&&h!=="textContent"&&(f[h]=y)}),lt(a,t?f:S.filterUserAttributes(f)),r.style&&at(a,r.style),e&&a.appendChild(e),v(r.children||[],a),u=a}else q(33,!1,void 0,{"Invalid tagName in config":s});u&&O.appendChild(u),k=u}),k}(this.nodes,d)}parseMarkup(d){let v,B=[];if(d=d.trim().replace(/ style=(["'])/g," data-style=$1"),b)v=new DOMParser().parseFromString(P?P.createHTML(d):d,"text/html");else{let k=nt("div");k.innerHTML=d,v={body:k}}let O=(k,r)=>{let u=k.nodeName.toLowerCase(),s={tagName:u};u==="#text"&&(s.textContent=k.textContent||"");let e=k.attributes;if(e){let t={};[].forEach.call(e,o=>{o.name==="data-style"?s.style=S.parseStyle(o.value):t[o.name]=o.value}),s.attributes=t}if(k.childNodes.length){let t=[];[].forEach.call(k.childNodes,o=>{O(o,t)}),t.length&&(s.children=t)}r.push(s)};return[].forEach.call(v.body.childNodes,k=>O(k,B)),B}}return S.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],S.allowedReferences=["https://","http://","mailto:","/","../","./","#"],S.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],S.emptyHTML=m,S.bypassHTMLFiltering=!1,S}),yt(Y,"Core/Templating.js",[Y["Core/Defaults.js"],Y["Core/Utilities.js"]],function(J,et){let{defaultOptions:ht,defaultTime:ct}=J,{extend:lt,getNestedProperty:nt,isArray:at,isNumber:q,isObject:$,pick:V,pInt:M}=et,R={add:(m,b)=>m+b,divide:(m,b)=>b!==0?m/b:"",eq:(m,b)=>m==b,each:function(m){let b=arguments[arguments.length-1];return!!at(m)&&m.map((S,A)=>j(b.body,lt($(S)?S:{"@this":S},{"@index":A,"@first":A===0,"@last":A===m.length-1}))).join("")},ge:(m,b)=>m>=b,gt:(m,b)=>m>b,if:m=>!!m,le:(m,b)=>m<=b,lt:(m,b)=>m<b,multiply:(m,b)=>m*b,ne:(m,b)=>m!=b,subtract:(m,b)=>m-b,unless:m=>!m};function j(m="",b,S){let A=/\{([\w\:\.\,;\-\/<>%@"'’= #\(\)]+)\}/g,d=/\(([\w\:\.\,;\-\/<>%@"'= ]+)\)/g,v=[],B=/f$/,O=/\.(\d)/,k=ht.lang,r=S&&S.time||ct,u=S&&S.numberFormatter||P,s=(f="")=>{let y;return f==="true"||f!=="false"&&((y=Number(f)).toString()===f?y:nt(f,b))},e,t,o=0,a;for(;(e=A.exec(m))!==null;){let f=d.exec(e[1]);f&&(e=f,a=!0),t&&t.isBlock||(t={ctx:b,expression:e[1],find:e[0],isBlock:e[1].charAt(0)==="#",start:e.index,startInner:e.index+e[0].length,length:e[0].length});let y=e[1].split(" ")[0].replace("#","");R[y]&&(t.isBlock&&y===t.fn&&o++,t.fn||(t.fn=y));let h=e[1]==="else";if(t.isBlock&&t.fn&&(e[1]===`/${t.fn}`||h))if(o)!h&&o--;else{let T=t.startInner,X=m.substr(T,e.index-T);t.body===void 0?(t.body=X,t.startInner=e.index+e[0].length):t.elseBody=X,t.find+=X+e[0],h||(v.push(t),t=void 0)}else t.isBlock||v.push(t);if(f&&!(t!=null&&t.isBlock))break}return v.forEach(f=>{let y,h,{body:T,elseBody:X,expression:g,fn:L}=f;if(L){let I=[f],F=g.split(" ");for(h=R[L].length;h--;)I.unshift(s(F[h+1]));y=R[L].apply(b,I),f.isBlock&&typeof y=="boolean"&&(y=j(y?T:X,b,S))}else{let I=g.split(":");if(y=s(I.shift()||""),I.length&&typeof y=="number"){let F=I.join(":");if(B.test(F)){let Q=parseInt((F.match(O)||["","-1"])[1],10);y!==null&&(y=u(y,Q,k.decimalPoint,F.indexOf(",")>-1?k.thousandsSep:""))}else y=r.dateFormat(F,y)}}m=m.replace(f.find,V(y,""))}),a?j(m,b,S):m}function P(m,b,S,A){let d,v;m=+m||0,b=+b;let B=ht.lang,O=(m.toString().split(".")[1]||"").split("e")[0].length,k=m.toString().split("e"),r=b;b===-1?b=Math.min(O,20):q(b)?b&&k[1]&&k[1]<0&&((v=b+ +k[1])>=0?(k[0]=(+k[0]).toExponential(v).split("e")[0],b=v):(k[0]=k[0].split(".")[0]||0,m=b<20?(k[0]*Math.pow(10,k[1])).toFixed(b):0,k[1]=0)):b=2;let u=(Math.abs(k[1]?k[0]:m)+Math.pow(10,-Math.max(b,O)-1)).toFixed(b),s=String(M(u)),e=s.length>3?s.length%3:0;return S=V(S,B.decimalPoint),A=V(A,B.thousandsSep),d=(m<0?"-":"")+(e?s.substr(0,e)+A:""),0>+k[1]&&!r?d="0":d+=s.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+A),b?d+=S+u.slice(-b):+d==0&&(d="0"),k[1]&&+d!=0&&(d+="e"+k[1]),d}return{dateFormat:function(m,b,S){return ct.dateFormat(m,b,S)},format:j,helpers:R,numberFormat:P}}),yt(Y,"Core/Renderer/RendererRegistry.js",[Y["Core/Globals.js"]],function(J){var et,ht;let ct;return(ht=et||(et={})).rendererTypes={},ht.getRendererType=function(lt=ct){return ht.rendererTypes[lt]||ht.rendererTypes[ct]},ht.registerRendererType=function(lt,nt,at){ht.rendererTypes[lt]=nt,(!ct||at)&&(ct=lt,J.Renderer=nt)},et}),yt(Y,"Core/Renderer/RendererUtilities.js",[Y["Core/Utilities.js"]],function(J){var et;let{clamp:ht,pick:ct,pushUnique:lt,stableSort:nt}=J;return(et||(et={})).distribute=function at(q,$,V){let M=q,R=M.reducedLen||$,j=(s,e)=>s.target-e.target,P=[],m=q.length,b=[],S=P.push,A,d,v,B=!0,O,k,r=0,u;for(A=m;A--;)r+=q[A].size;if(r>R){for(nt(q,(s,e)=>(e.rank||0)-(s.rank||0)),v=(u=q[0].rank===q[q.length-1].rank)?m/2:-1,d=u?v:m-1;v&&r>R;)O=q[A=Math.floor(d)],lt(b,A)&&(r-=O.size),d+=v,u&&d>=q.length&&(v/=2,d=v);b.sort((s,e)=>e-s).forEach(s=>S.apply(P,q.splice(s,1)))}for(nt(q,j),q=q.map(s=>({size:s.size,targets:[s.target],align:ct(s.align,.5)}));B;){for(A=q.length;A--;)O=q[A],k=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=ht(k-O.size*O.align,0,$-O.size);for(A=q.length,B=!1;A--;)A>0&&q[A-1].pos+q[A-1].size>q[A].pos&&(q[A-1].size+=q[A].size,q[A-1].targets=q[A-1].targets.concat(q[A].targets),q[A-1].align=.5,q[A-1].pos+q[A-1].size>$&&(q[A-1].pos=$-q[A-1].size),q.splice(A,1),B=!0)}return S.apply(M,P),A=0,q.some(s=>{let e=0;return(s.targets||[]).some(()=>(M[A].pos=s.pos+e,V!==void 0&&Math.abs(M[A].pos-M[A].target)>V?(M.slice(0,A+1).forEach(t=>delete t.pos),M.reducedLen=(M.reducedLen||$)-.1*$,M.reducedLen>.1*$&&at(M,$,V),!0):(e+=M[A].size,A++,!1)))}),nt(M,j),M},et}),yt(Y,"Core/Renderer/SVG/SVGElement.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Color/Color.js"],Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct){let{animate:lt,animObject:nt,stop:at}=J,{deg2rad:q,doc:$,svg:V,SVG_NS:M,win:R}=ht,{addEvent:j,attr:P,createElement:m,crisp:b,css:S,defined:A,erase:d,extend:v,fireEvent:B,isArray:O,isFunction:k,isObject:r,isString:u,merge:s,objectEach:e,pick:t,pInt:o,pushUnique:a,replaceNested:f,syncTimeout:y,uniqueKey:h}=ct;class T{_defaultGetter(g){let L=t(this[g+"Value"],this[g],this.element?this.element.getAttribute(g):null,0);return/^-?[\d\.]+$/.test(L)&&(L=parseFloat(L)),L}_defaultSetter(g,L,I){I.setAttribute(L,g)}add(g){let L,I=this.renderer,F=this.element;return g&&(this.parentGroup=g),this.textStr!==void 0&&this.element.nodeName==="text"&&I.buildText(this),this.added=!0,(!g||g.handleZ||this.zIndex)&&(L=this.zIndexSetter()),L||(g?g.element:I.box).appendChild(F),this.onAdd&&this.onAdd(),this}addClass(g,L){let I=L?"":this.attr("class")||"";return(g=(g||"").split(/ /g).reduce(function(F,Q){return I.indexOf(Q)===-1&&F.push(Q),F},I?[I]:[]).join(" "))!==I&&this.attr("class",g),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(g,L,I,F=!0){let Q,l,n,x,D={},i=this.renderer,p=i.alignedObjects,c=!!g;g?(this.alignOptions=g,this.alignByTranslate=L,this.alignTo=I):(g=this.alignOptions||{},L=this.alignByTranslate,I=this.alignTo);let w=!I||u(I)?I||"renderer":void 0;w&&(c&&a(p,this),I=void 0);let C=t(I,i[w],i),z=g.align,G=g.verticalAlign;return Q=(C.x||0)+(g.x||0),l=(C.y||0)+(g.y||0),z==="right"?n=1:z==="center"&&(n=2),n&&(Q+=((C.width||0)-(g.width||0))/n),D[L?"translateX":"x"]=Math.round(Q),G==="bottom"?x=1:G==="middle"&&(x=2),x&&(l+=((C.height||0)-(g.height||0))/x),D[L?"translateY":"y"]=Math.round(l),F&&(this[this.placed?"animate":"attr"](D),this.placed=!0),this.alignAttr=D,this}alignSetter(g){let L={left:"start",center:"middle",right:"end"};L[g]&&(this.alignValue=g,this.element.setAttribute("text-anchor",L[g]))}animate(g,L,I){let F=nt(t(L,this.renderer.globalAnimation,!0)),Q=F.defer;return $.hidden&&(F.duration=0),F.duration!==0?(I&&(F.complete=I),y(()=>{this.element&<(this,g,F)},Q)):(this.attr(g,void 0,I||F.complete),e(g,function(l,n){F.step&&F.step.call(this,l,{prop:n,pos:1,elem:this})},this)),this}applyTextOutline(g){let L=this.element;g.indexOf("contrast")!==-1&&(g=g.replace(/contrast/g,this.renderer.getContrast(L.style.fill)));let I=g.split(" "),F=I[I.length-1],Q=I[0];if(Q&&Q!=="none"&&ht.svg){this.fakeTS=!0,Q=Q.replace(/(^[\d\.]+)(.*?)$/g,function(i,p,c){return 2*Number(p)+c}),this.removeTextOutline();let l=$.createElementNS(M,"tspan");P(l,{class:"highcharts-text-outline",fill:F,stroke:F,"stroke-width":Q,"stroke-linejoin":"round"});let n=L.querySelector("textPath")||L;[].forEach.call(n.childNodes,i=>{let p=i.cloneNode(!0);p.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(c=>p.removeAttribute(c)),l.appendChild(p)});let x=0;[].forEach.call(n.querySelectorAll("text tspan"),i=>{x+=Number(i.getAttribute("dy"))});let D=$.createElementNS(M,"tspan");D.textContent="",P(D,{x:Number(L.getAttribute("x")),dy:-x}),l.appendChild(D),n.insertBefore(l,n.firstChild)}}attr(g,L,I,F){let{element:Q}=this,l=T.symbolCustomAttribs,n,x,D=this,i;return typeof g=="string"&&L!==void 0&&(n=g,(g={})[n]=L),typeof g=="string"?D=(this[g+"Getter"]||this._defaultGetter).call(this,g,Q):(e(g,function(p,c){i=!1,F||at(this,c),this.symbolName&&l.indexOf(c)!==-1&&(x||(this.symbolAttr(g),x=!0),i=!0),this.rotation&&(c==="x"||c==="y")&&(this.doTransform=!0),i||(this[c+"Setter"]||this._defaultSetter).call(this,p,c,Q)},this),this.afterSetters()),I&&I.call(this),D}clip(g){if(g&&!g.clipPath){let L=h()+"-",I=this.renderer.createElement("clipPath").attr({id:L}).add(this.renderer.defs);v(g,{clipPath:I,id:L,count:0}),g.add(I)}return this.attr("clip-path",g?`url(${this.renderer.url}#${g.id})`:"none")}crisp(g,L){L=Math.round(L||g.strokeWidth||0);let I=g.x||this.x||0,F=g.y||this.y||0,Q=(g.width||this.width||0)+I,l=(g.height||this.height||0)+F,n=b(I,L),x=b(F,L);return v(g,{x:n,y:x,width:b(Q,L)-n,height:b(l,L)-x}),A(g.strokeWidth)&&(g.strokeWidth=L),g}complexColor(g,L,I){let F=this.renderer,Q,l,n,x,D,i,p,c,w,C,z=[],G;B(this.renderer,"complexColor",{args:arguments},function(){if(g.radialGradient?l="radialGradient":g.linearGradient&&(l="linearGradient"),l){if(n=g[l],D=F.gradients,i=g.stops,w=I.radialReference,O(n)&&(g[l]=n={x1:n[0],y1:n[1],x2:n[2],y2:n[3],gradientUnits:"userSpaceOnUse"}),l==="radialGradient"&&w&&!A(n.gradientUnits)&&(x=n,n=s(n,F.getRadialAttr(w,x),{gradientUnits:"userSpaceOnUse"})),e(n,function(U,Z){Z!=="id"&&z.push(Z,U)}),e(i,function(U){z.push(U)}),D[z=z.join(",")])C=D[z].attr("id");else{n.id=C=h();let U=D[z]=F.createElement(l).attr(n).add(F.defs);U.radAttr=x,U.stops=[],i.forEach(function(Z){Z[1].indexOf("rgba")===0?(p=(Q=et.parse(Z[1])).get("rgb"),c=Q.get("a")):(p=Z[1],c=1);let rt=F.createElement("stop").attr({offset:Z[0],"stop-color":p,"stop-opacity":c}).add(U);U.stops.push(rt)})}G="url("+F.url+"#"+C+")",I.setAttribute(L,G),I.gradient=z,g.toString=function(){return G}}})}css(g){let L=this.styles,I={},F=this.element,Q,l=!L;if(L&&e(g,function(n,x){L&&L[x]!==n&&(I[x]=n,l=!0)}),l){L&&(g=v(L,I)),g.width===null||g.width==="auto"?delete this.textWidth:F.nodeName.toLowerCase()==="text"&&g.width&&(Q=this.textWidth=o(g.width)),v(this.styles,g),Q&&!V&&this.renderer.forExport&&delete g.width;let n=s(g);F.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(x=>n&&delete n[x]),n.color&&(n.fill=n.color)),S(F,n)}return this.added&&(this.element.nodeName==="text"&&this.renderer.buildText(this),g.textOutline&&this.applyTextOutline(g.textOutline)),this}dashstyleSetter(g){let L,I=this["stroke-width"];if(I==="inherit"&&(I=1),g=g&&g.toLowerCase()){let F=g.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(L=F.length;L--;)F[L]=""+o(F[L])*t(I,NaN);g=F.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",g)}}destroy(){var x;let g=this,L=g.element||{},I=g.renderer,F=L.ownerSVGElement,Q=L.nodeName==="SPAN"&&g.parentGroup||void 0,l,n;if(L.onclick=L.onmouseout=L.onmouseover=L.onmousemove=L.point=null,at(g),g.clipPath&&F){let D=g.clipPath;[].forEach.call(F.querySelectorAll("[clip-path],[CLIP-PATH]"),function(i){i.getAttribute("clip-path").indexOf(D.element.id)>-1&&i.removeAttribute("clip-path")}),g.clipPath=D.destroy()}if(g.connector=(x=g.connector)==null?void 0:x.destroy(),g.stops){for(n=0;n<g.stops.length;n++)g.stops[n].destroy();g.stops.length=0,g.stops=void 0}for(g.safeRemoveChild(L);Q&&Q.div&&Q.div.childNodes.length===0;)l=Q.parentGroup,g.safeRemoveChild(Q.div),delete Q.div,Q=l;g.alignOptions&&d(I.alignedObjects,g),e(g,function(D,i){g[i]&&g[i].parentGroup===g&&g[i].destroy&&g[i].destroy(),delete g[i]})}dSetter(g,L,I){O(g)&&(typeof g[0]=="string"&&(g=this.renderer.pathToSegments(g)),this.pathArray=g,g=g.reduce((F,Q,l)=>Q&&Q.join?(l?F+" ":"")+Q.join(" "):(Q||"").toString(),"")),/(NaN| {2}|^$)/.test(g)&&(g="M 0 0"),this[L]!==g&&(I.setAttribute(L,g),this[L]=g)}fillSetter(g,L,I){typeof g=="string"?I.setAttribute(L,g):g&&this.complexColor(g,L,I)}hrefSetter(g,L,I){I.setAttributeNS("http://www.w3.org/1999/xlink",L,g)}getBBox(g,L){let I,F,Q,l,{alignValue:n,element:x,renderer:D,styles:i,textStr:p}=this,{cache:c,cacheKeys:w}=D,C=x.namespaceURI===this.SVG_NS,z=t(L,this.rotation,0),G=D.styledMode?x&&T.prototype.getStyle.call(x,"font-size"):i.fontSize;if(A(p)&&((l=p.toString()).indexOf("<")===-1&&(l=l.replace(/\d/g,"0")),l+=["",D.rootFontSize,G,z,this.textWidth,n,i.textOverflow,i.fontWeight].join(",")),l&&!g&&(I=c[l]),!I||I.polygon){if(C||D.forExport){try{Q=this.fakeTS&&function(Z){let rt=x.querySelector(".highcharts-text-outline");rt&&S(rt,{display:Z})},k(Q)&&Q("none"),I=x.getBBox?v({},x.getBBox()):{width:x.offsetWidth,height:x.offsetHeight,x:0,y:0},k(Q)&&Q("")}catch{}(!I||I.width<0)&&(I={x:0,y:0,width:0,height:0})}else I=this.htmlGetBBox();F=I.height,C&&(I.height=F={"11px,17":14,"13px,20":16}[`${G||""},${Math.round(F)}`]||F),z&&(I=this.getRotatedBox(I,z));let U={bBox:I};B(this,"afterGetBBox",U),I=U.bBox}if(l&&(p===""||I.height>0)){for(;w.length>250;)delete c[w.shift()];c[l]||w.push(l),c[l]=I}return I}getRotatedBox(g,L){let{x:I,y:F,width:Q,height:l}=g,{alignValue:n,translateY:x,rotationOriginX:D=0,rotationOriginY:i=0}=this,p={right:1,center:.5}[n||0]||0,c=Number(this.element.getAttribute("y")||0)-(x?0:F),w=L*q,C=(L-90)*q,z=Math.cos(w),G=Math.sin(w),U=Q*z,Z=Q*G,rt=Math.cos(C),it=Math.sin(C),[[N,E],[W,H]]=[D,i].map(vt=>[vt-vt*z,vt*G]),K=I+p*(Q-U)+N+H+c*rt,tt=K+U,_=tt-l*rt,st=_-U,ot=F+c-p*Z-E+W+c*it,dt=ot+Z,pt=dt-l*it,ut=pt-Z,mt=Math.min(K,tt,_,st),xt=Math.min(ot,dt,pt,ut),ft=Math.max(K,tt,_,st)-mt,gt=Math.max(ot,dt,pt,ut)-xt;return{x:mt,y:xt,width:ft,height:gt,polygon:[[K,ot],[tt,dt],[_,pt],[st,ut]]}}getStyle(g){return R.getComputedStyle(this.element||this,"").getPropertyValue(g)}hasClass(g){return(""+this.attr("class")).split(" ").indexOf(g)!==-1}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(g,L){this.onEvents={},this.opacity=1,this.SVG_NS=M,this.element=L==="span"||L==="body"?m(L):$.createElementNS(this.SVG_NS,L),this.renderer=g,this.styles={},B(this,"afterInit")}on(g,L){let{onEvents:I}=this;return I[g]&&I[g](),I[g]=j(this.element,g,L),this}opacitySetter(g,L,I){let F=Number(Number(g).toFixed(3));this.opacity=F,I.setAttribute(L,F)}reAlign(){var g;(g=this.alignOptions)!=null&&g.width&&this.alignOptions.align!=="left"&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(g){return this.attr("class",(""+this.attr("class")).replace(u(g)?RegExp(`(^| )${g}( |$)`):g," ").replace(/ +/g," ").trim())}removeTextOutline(){let g=this.element.querySelector("tspan.highcharts-text-outline");g&&this.safeRemoveChild(g)}safeRemoveChild(g){let L=g.parentNode;L&&L.removeChild(g)}setRadialReference(g){let L=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=g,L&&L.radAttr&&L.animate(this.renderer.getRadialAttr(g,L.radAttr)),this}shadow(g){var Q;let{renderer:L}=this,I=s(((Q=this.parentGroup)==null?void 0:Q.rotation)===90?{offsetX:-1,offsetY:-1}:{},r(g)?g:{}),F=L.shadowDefinition(I);return this.attr({filter:g?`url(${L.url}#${F})`:"none"})}show(g=!0){return this.attr({visibility:g?"inherit":"visible"})}"stroke-widthSetter"(g,L,I){this[L]=g,I.setAttribute(L,g)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let g=this.getStyle("stroke-width"),L=0,I;return/px$/.test(g)?L=o(g):g!==""&&(P(I=$.createElementNS(M,"rect"),{width:g,"stroke-width":0}),this.element.parentNode.appendChild(I),L=I.getBBox().width,I.parentNode.removeChild(I)),L}symbolAttr(g){let L=this;T.symbolCustomAttribs.forEach(function(I){L[I]=t(g[I],L[I])}),L.attr({d:L.renderer.symbols[L.symbolName](L.x,L.y,L.width,L.height,L)})}textSetter(g){g!==this.textStr&&(delete this.textPxLength,this.textStr=g,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(g){let L=this.element,I=L.getElementsByTagName("title")[0]||$.createElementNS(this.SVG_NS,"title");L.insertBefore?L.insertBefore(I,L.firstChild):L.appendChild(I),I.textContent=f(t(g,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let g=this.element;return g.parentNode.appendChild(g),this}translate(g,L){return this.attr({translateX:g,translateY:L})}updateTransform(g="transform"){var c;let{element:L,matrix:I,rotation:F=0,rotationOriginX:Q,rotationOriginY:l,scaleX:n,scaleY:x,translateX:D=0,translateY:i=0}=this,p=["translate("+D+","+i+")"];A(I)&&p.push("matrix("+I.join(",")+")"),F&&(p.push("rotate("+F+" "+t(Q,L.getAttribute("x"),0)+" "+t(l,L.getAttribute("y")||0)+")"),((c=this.text)==null?void 0:c.element.tagName)==="SPAN"&&this.text.attr({rotation:F,rotationOriginX:(Q||0)-this.padding,rotationOriginY:(l||0)-this.padding})),(A(n)||A(x))&&p.push("scale("+t(n,1)+" "+t(x,1)+")"),p.length&&!(this.text||this).textPath&&L.setAttribute(g,p.join(" "))}visibilitySetter(g,L,I){g==="inherit"?I.removeAttribute(L):this[L]!==g&&I.setAttribute(L,g),this[L]=g}xGetter(g){return this.element.nodeName==="circle"&&(g==="x"?g="cx":g==="y"&&(g="cy")),this._defaultGetter(g)}zIndexSetter(g,L){let I=this.renderer,F=this.parentGroup,Q=(F||I).element||I.box,l=this.element,n=Q===I.box,x,D,i,p=!1,c,w=this.added,C;if(A(g)?(l.setAttribute("data-z-index",g),g=+g,this[L]===g&&(w=!1)):A(this[L])&&l.removeAttribute("data-z-index"),this[L]=g,w){for((g=this.zIndex)&&F&&(F.handleZ=!0),C=(x=Q.childNodes).length-1;C>=0&&!p;C--)c=!A(i=(D=x[C]).getAttribute("data-z-index")),D!==l&&(g<0&&c&&!n&&!C?(Q.insertBefore(l,x[C]),p=!0):(o(i)<=g||c&&(!A(g)||g>=0))&&(Q.insertBefore(l,x[C+1]),p=!0));p||(Q.insertBefore(l,x[n?3:0]),p=!0)}return p}}return T.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],T.prototype.strokeSetter=T.prototype.fillSetter,T.prototype.yGetter=T.prototype.xGetter,T.prototype.matrixSetter=T.prototype.rotationOriginXSetter=T.prototype.rotationOriginYSetter=T.prototype.rotationSetter=T.prototype.scaleXSetter=T.prototype.scaleYSetter=T.prototype.translateXSetter=T.prototype.translateYSetter=T.prototype.verticalAlignSetter=function(X,g){this[g]=X,this.doTransform=!0},T}),yt(Y,"Core/Renderer/SVG/SVGLabel.js",[Y["Core/Renderer/SVG/SVGElement.js"],Y["Core/Utilities.js"]],function(J,et){let{defined:ht,extend:ct,isNumber:lt,merge:nt,pick:at,removeEvent:q}=et;class $ extends J{constructor(M,R,j,P,m,b,S,A,d,v){let B;super(M,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=R,this.x=j,this.y=P,this.anchorX=b,this.anchorY=S,this.baseline=d,this.className=v,this.addClass(v==="button"?"highcharts-no-tooltip":"highcharts-label"),v&&this.addClass("highcharts-"+v),this.text=M.text(void 0,0,0,A).attr({zIndex:1}),typeof m=="string"&&((B=/^url\((.*?)\)$/.test(m))||this.renderer.symbols[m])&&(this.symbolKey=m),this.bBox=$.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=M.styledMode||B,this.deferredAttr={},this.alignFactor=0}alignSetter(M){let R={left:0,center:.5,right:1}[M];R!==this.alignFactor&&(this.alignFactor=R,this.bBox&<(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(M,R){this.anchorX=M,this.boxAttr(R,Math.round(M)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(M,R){this.anchorY=M,this.boxAttr(R,M-this.ySetting)}boxAttr(M,R){this.box?this.box.attr(M,R):this.deferredAttr[M]=R}css(M){if(M){let R={};M=nt(M),$.textProps.forEach(j=>{M[j]!==void 0&&(R[j]=M[j],delete M[j])}),this.text.css(R),"fontSize"in R||"fontWeight"in R?this.updateTextPadding():("width"in R||"textOverflow"in R)&&this.updateBoxSize()}return J.prototype.css.call(this,M)}destroy(){q(this.element,"mouseenter"),q(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),J.prototype.destroy.call(this)}fillSetter(M,R){M&&(this.needsBox=!0),this.fill=M,this.boxAttr(R,M)}getBBox(M,R){this.textStr&&this.bBox.width===0&&this.bBox.height===0&&this.updateBoxSize();let{padding:j,height:P=0,translateX:m=0,translateY:b=0,width:S=0}=this,A=at(this.paddingLeft,j),d=R??(this.rotation||0),v={width:S,height:P,x:m+this.bBox.x-A,y:b+this.bBox.y-j+this.baselineOffset};return d&&(v=this.getRotatedBox(v,d)),v}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(M){this.heightSetting=M,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:at(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&ht(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(M,R){lt(M)?M!==this[R]&&(this[R]=M,this.updateTextPadding()):this[R]=void 0}rSetter(M,R){this.boxAttr(R,M)}strokeSetter(M,R){this.stroke=M,this.boxAttr(R,M)}"stroke-widthSetter"(M,R){M&&(this.needsBox=!0),this["stroke-width"]=M,this.boxAttr(R,M)}"text-alignSetter"(M){this.textAlign=M}textSetter(M){M!==void 0&&this.text.attr({text:M}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let M,R=this.text,j={},P=this.padding,m=this.bBox=(!lt(this.widthSetting)||!lt(this.heightSetting)||this.textAlign)&&ht(R.textStr)?R.getBBox(void 0,0):$.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||m.height||0)+2*P;let b=this.renderer.fontMetrics(R);if(this.baselineOffset=P+Math.min((this.text.firstLineMetrics||b).b,m.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-b.h)/2),this.needsBox&&!R.textPath){if(!this.box){let S=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();S.addClass((this.className==="button"?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),S.add(this)}M=this.getCrispAdjust(),j.x=M,j.y=(this.baseline?-this.baselineOffset:0)+M,j.width=Math.round(this.width),j.height=Math.round(this.height),this.box.attr(ct(j,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let M=this.text;if(!M.textPath){this.updateBoxSize();let R=this.baseline?0:this.baselineOffset,j=at(this.paddingLeft,this.padding);ht(this.widthSetting)&&this.bBox&&(this.textAlign==="center"||this.textAlign==="right")&&(j+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(j!==M.x||R!==M.y)&&(M.attr("x",j),M.hasBoxWidthChanged&&(this.bBox=M.getBBox(!0)),R!==void 0&&M.attr("y",R)),M.x=j,M.y=R}}widthSetter(M){this.widthSetting=lt(M)?M:void 0,this.doUpdate=!0}getPaddedWidth(){let M=this.padding,R=at(this.paddingLeft,M),j=at(this.paddingRight,M);return(this.widthSetting||this.bBox.width||0)+R+j}xSetter(M){this.x=M,this.alignFactor&&(M-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(M),this.attr("translateX",this.xSetting)}ySetter(M){this.ySetting=this.y=Math.round(M),this.attr("translateY",this.ySetting)}}return $.emptyBBox={width:0,height:0,x:0,y:0},$.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],$}),yt(Y,"Core/Renderer/SVG/Symbols.js",[Y["Core/Utilities.js"]],function(J){let{defined:et,isNumber:ht,pick:ct}=J;function lt(q,$,V,M,R){let j=[];if(R){let P=R.start||0,m=ct(R.r,V),b=ct(R.r,M||V),S=2e-4/(R.borderRadius?1:Math.max(m,1)),A=Math.abs((R.end||0)-P-2*Math.PI)<S,d=(R.end||0)-(A?S:0),v=R.innerR,B=ct(R.open,A),O=Math.cos(P),k=Math.sin(P),r=Math.cos(d),u=Math.sin(d),s=ct(R.longArc,d-P-Math.PI<S?0:1),e=["A",m,b,0,s,ct(R.clockwise,1),q+m*r,$+b*u];e.params={start:P,end:d,cx:q,cy:$},j.push(["M",q+m*O,$+b*k],e),et(v)&&((e=["A",v,v,0,s,et(R.clockwise)?1-R.clockwise:0,q+v*O,$+v*k]).params={start:d,end:P,cx:q,cy:$},j.push(B?["M",q+v*r,$+v*u]:["L",q+v*r,$+v*u],e)),B||j.push(["Z"])}return j}function nt(q,$,V,M,R){return R&&R.r?at(q,$,V,M,R):[["M",q,$],["L",q+V,$],["L",q+V,$+M],["L",q,$+M],["Z"]]}function at(q,$,V,M,R){let j=(R==null?void 0:R.r)||0;return[["M",q+j,$],["L",q+V-j,$],["A",j,j,0,0,1,q+V,$+j],["L",q+V,$+M-j],["A",j,j,0,0,1,q+V-j,$+M],["L",q+j,$+M],["A",j,j,0,0,1,q,$+M-j],["L",q,$+j],["A",j,j,0,0,1,q+j,$],["Z"]]}return{arc:lt,callout:function(q,$,V,M,R){let j=Math.min(R&&R.r||0,V,M),P=j+6,m=R&&R.anchorX,b=R&&R.anchorY||0,S=at(q,$,V,M,{r:j});if(!ht(m)||m<V&&m>0&&b<M&&b>0)return S;if(q+m>V-P)if(b>$+P&&b<$+M-P)S.splice(3,1,["L",q+V,b-6],["L",q+V+6,b],["L",q+V,b+6],["L",q+V,$+M-j]);else if(m<V){let A=b<$+P,d=A?$:$+M;S.splice(A?2:5,0,["L",m,b],["L",q+V-j,d])}else S.splice(3,1,["L",q+V,M/2],["L",m,b],["L",q+V,M/2],["L",q+V,$+M-j]);else if(q+m<P)if(b>$+P&&b<$+M-P)S.splice(7,1,["L",q,b+6],["L",q-6,b],["L",q,b-6],["L",q,$+j]);else if(m>0){let A=b<$+P,d=A?$:$+M;S.splice(A?1:6,0,["L",m,b],["L",q+j,d])}else S.splice(7,1,["L",q,M/2],["L",m,b],["L",q,M/2],["L",q,$+j]);else b>M&&m<V-P?S.splice(5,1,["L",m+6,$+M],["L",m,$+M+6],["L",m-6,$+M],["L",q+j,$+M]):b<0&&m>P&&S.splice(1,1,["L",m-6,$],["L",m,$-6],["L",m+6,$],["L",V-j,$]);return S},circle:function(q,$,V,M){return lt(q+V/2,$+M/2,V/2,M/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(q,$,V,M){return[["M",q+V/2,$],["L",q+V,$+M/2],["L",q+V/2,$+M],["L",q,$+M/2],["Z"]]},rect:nt,roundedRect:at,square:nt,triangle:function(q,$,V,M){return[["M",q+V/2,$],["L",q+V,$+M],["L",q,$+M],["Z"]]},"triangle-down":function(q,$,V,M){return[["M",q,$],["L",q+V,$],["L",q+V/2,$+M],["Z"]]}}}),yt(Y,"Core/Renderer/SVG/TextBuilder.js",[Y["Core/Renderer/HTML/AST.js"],Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{doc:ct,SVG_NS:lt,win:nt}=et,{attr:at,extend:q,fireEvent:$,isString:V,objectEach:M,pick:R}=ht;return class{constructor(j){let P=j.styles;this.renderer=j.renderer,this.svgElement=j,this.width=j.textWidth,this.textLineHeight=P&&P.lineHeight,this.textOutline=P&&P.textOutline,this.ellipsis=!!(P&&P.textOverflow==="ellipsis"),this.noWrap=!!(P&&P.whiteSpace==="nowrap")}buildSVG(){let j=this.svgElement,P=j.element,m=j.renderer,b=R(j.textStr,"").toString(),S=b.indexOf("<")!==-1,A=P.childNodes,d=!j.added&&m.box,v=[b,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,j.getStyle("font-size"),this.width].join(",");if(v!==j.textCache){j.textCache=v,delete j.actualWidth;for(let B=A.length;B--;)P.removeChild(A[B]);if(S||this.ellipsis||this.width||j.textPath||b.indexOf(" ")!==-1&&(!this.noWrap||/<br.*?>/g.test(b))){if(b!==""){d&&d.appendChild(P);let B=new J(b);this.modifyTree(B.nodes),B.addToDOM(P),this.modifyDOM(),this.ellipsis&&(P.textContent||"").indexOf("…")!==-1&&j.attr("title",this.unescapeEntities(j.textStr||"",["<",">"])),d&&d.removeChild(P)}}else P.appendChild(ct.createTextNode(this.unescapeEntities(b)));V(this.textOutline)&&j.applyTextOutline&&j.applyTextOutline(this.textOutline)}}modifyDOM(){let j,P=this.svgElement,m=at(P.element,"x");for(P.firstLineMetrics=void 0;(j=P.element.firstChild)&&/^[\s\u200B]*$/.test(j.textContent||" ");)P.element.removeChild(j);[].forEach.call(P.element.querySelectorAll("tspan.highcharts-br"),(d,v)=>{d.nextSibling&&d.previousSibling&&(v===0&&d.previousSibling.nodeType===1&&(P.firstLineMetrics=P.renderer.fontMetrics(d.previousSibling)),at(d,{dy:this.getLineHeight(d.nextSibling),x:m}))});let b=this.width||0;if(!b)return;let S=(d,v)=>{let B=d.textContent||"",O=B.replace(/([^\^])-/g,"$1- ").split(" "),k=!this.noWrap&&(O.length>1||P.element.childNodes.length>1),r=this.getLineHeight(v),u=0,s=P.actualWidth;if(this.ellipsis)B&&this.truncate(d,B,void 0,0,Math.max(0,b-.8*r),(e,t)=>e.substring(0,t)+"…");else if(k){let e=[],t=[];for(;v.firstChild&&v.firstChild!==d;)t.push(v.firstChild),v.removeChild(v.firstChild);for(;O.length;)O.length&&!this.noWrap&&u>0&&(e.push(d.textContent||""),d.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(d,void 0,O,u===0&&s||0,b,(o,a)=>O.slice(0,a).join(" ").replace(/- /g,"-")),s=P.actualWidth,u++;t.forEach(o=>{v.insertBefore(o,d)}),e.forEach(o=>{v.insertBefore(ct.createTextNode(o),d);let a=ct.createElementNS(lt,"tspan");a.textContent="",at(a,{dy:r,x:m}),v.insertBefore(a,d)})}},A=d=>{[].slice.call(d.childNodes).forEach(v=>{v.nodeType===nt.Node.TEXT_NODE?S(v,d):(v.className.baseVal.indexOf("highcharts-br")!==-1&&(P.actualWidth=0),A(v))})};A(P.element)}getLineHeight(j){let P=j.nodeType===nt.Node.TEXT_NODE?j.parentElement:j;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(P||this.svgElement.element).h}modifyTree(j){let P=(m,b)=>{let{attributes:S={},children:A,style:d={},tagName:v}=m,B=this.renderer.styledMode;if(v==="b"||v==="strong"?B?S.class="highcharts-strong":d.fontWeight="bold":(v==="i"||v==="em")&&(B?S.class="highcharts-emphasized":d.fontStyle="italic"),d&&d.color&&(d.fill=d.color),v==="br"){S.class="highcharts-br",m.textContent="";let O=j[b+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else v==="a"&&A&&A.some(O=>O.tagName==="#text")&&(m.children=[{children:A,tagName:"tspan"}]);v!=="#text"&&v!=="a"&&(m.tagName="tspan"),q(m,{attributes:S,style:d}),A&&A.filter(O=>O.tagName!=="#text").forEach(P)};j.forEach(P),$(this.svgElement,"afterModifyTree",{nodes:j})}truncate(j,P,m,b,S,A){let d,v,B=this.svgElement,{rotation:O}=B,k=[],r=m?1:0,u=(P||m||"").length,s=u,e=function(t,o){let a=o||t,f=j.parentNode;if(f&&k[a]===void 0&&f.getSubStringLength)try{k[a]=b+f.getSubStringLength(0,m?a+1:a)}catch{}return k[a]};if(B.rotation=0,b+(v=e(j.textContent.length))>S){for(;r<=u;)s=Math.ceil((r+u)/2),m&&(d=A(m,s)),v=e(s,d&&d.length-1),r===u?r=u+1:v>S?u=s-1:r=s;u===0?j.textContent="":P&&u===P.length-1||(j.textContent=d||A(P||m,s))}m&&m.splice(0,s),B.actualWidth=v,B.rotation=O}unescapeEntities(j,P){return M(this.renderer.escapes,function(m,b){P&&P.indexOf(m)!==-1||(j=j.toString().replace(RegExp(m,"g"),b))}),j}}}),yt(Y,"Core/Renderer/SVG/SVGRenderer.js",[Y["Core/Renderer/HTML/AST.js"],Y["Core/Defaults.js"],Y["Core/Color/Color.js"],Y["Core/Globals.js"],Y["Core/Renderer/RendererRegistry.js"],Y["Core/Renderer/SVG/SVGElement.js"],Y["Core/Renderer/SVG/SVGLabel.js"],Y["Core/Renderer/SVG/Symbols.js"],Y["Core/Renderer/SVG/TextBuilder.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt,nt,at,q,$,V){let M,{defaultOptions:R}=et,{charts:j,deg2rad:P,doc:m,isFirefox:b,isMS:S,isWebKit:A,noop:d,SVG_NS:v,symbolSizes:B,win:O}=ct,{addEvent:k,attr:r,createElement:u,crisp:s,css:e,defined:t,destroyObjectProperties:o,extend:a,isArray:f,isNumber:y,isObject:h,isString:T,merge:X,pick:g,pInt:L,replaceNested:I,uniqueKey:F}=V;class Q{constructor(n,x,D,i,p,c,w){let C,z,G=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),U=G.element;w||G.css(this.getStyle(i||{})),n.appendChild(U),r(n,"dir","ltr"),n.innerHTML.indexOf("xmlns")===-1&&r(U,"xmlns",this.SVG_NS),this.box=U,this.boxWrapper=G,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(m.createTextNode("Created with Highcharts 11.4.8")),this.defs=this.createElement("defs").add(),this.allowHTML=c,this.forExport=p,this.styledMode=w,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=G.getStyle("font-size"),this.setSize(x,D,!1),b&&n.getBoundingClientRect&&((C=function(){e(n,{left:0,top:0}),z=n.getBoundingClientRect(),e(n,{left:Math.ceil(z.left)-z.left+"px",top:Math.ceil(z.top)-z.top+"px"})})(),this.unSubPixelFix=k(O,"resize",C))}definition(n){return new J([n]).addToDOM(this.defs.element)}getReferenceURL(){if((b||A)&&m.getElementsByTagName("base").length){if(!t(M)){let n=F(),x=new J([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:n},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${n})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(m.body);e(x,{position:"fixed",top:0,left:0,zIndex:9e5});let D=m.elementFromPoint(6,6);M=(D&&D.id)==="hitme",m.body.removeChild(x)}if(M)return I(O.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(n){return this.style=a({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},n),this.style}setStyle(n){this.boxWrapper.css(this.getStyle(n))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let n=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),o(this.gradients||{}),this.gradients=null,this.defs=n.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(n){return new this.Element(this,n)}getRadialAttr(n,x){return{cx:n[0]-n[2]/2+(x.cx||0)*n[2],cy:n[1]-n[2]/2+(x.cy||0)*n[2],r:(x.r||0)*n[2]}}shadowDefinition(n){let x=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(n).map(i=>`${i}-${n[i]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),D=X({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},n);return this.defs.element.querySelector(`#${x}`)||this.definition({tagName:"filter",attributes:{id:x,filterUnits:D.filterUnits},children:this.getShadowFilterContent(D)}),x}getShadowFilterContent(n){return[{tagName:"feDropShadow",attributes:{dx:n.offsetX,dy:n.offsetY,"flood-color":n.color,"flood-opacity":Math.min(5*n.opacity,1),stdDeviation:n.width/2}}]}buildText(n){new $(n).buildSVG()}getContrast(n){let x=ht.parse(n).rgba.map(i=>{let p=i/255;return p<=.03928?p/12.92:Math.pow((p+.055)/1.055,2.4)}),D=.2126*x[0]+.7152*x[1]+.0722*x[2];return 1.05/(D+.05)>(D+.05)/.05?"#FFFFFF":"#000000"}button(n,x,D,i,p={},c,w,C,z,G){let U=this.label(n,x,D,z,void 0,void 0,G,void 0,"button"),Z=this.styledMode,rt=arguments,it=0;p=X(R.global.buttonTheme,p),Z&&(delete p.fill,delete p.stroke,delete p["stroke-width"]);let N=p.states||{},E=p.style||{};delete p.states,delete p.style;let W=[J.filterUserAttributes(p)],H=[E];return Z||["hover","select","disabled"].forEach((K,tt)=>{W.push(X(W[0],J.filterUserAttributes(rt[tt+5]||N[K]||{}))),H.push(W[tt+1].style),delete W[tt+1].style}),k(U.element,S?"mouseover":"mouseenter",function(){it!==3&&U.setState(1)}),k(U.element,S?"mouseout":"mouseleave",function(){it!==3&&U.setState(it)}),U.setState=(K=0)=>{if(K!==1&&(U.state=it=K),U.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][K]),!Z){U.attr(W[K]);let tt=H[K];h(tt)&&U.css(tt)}},U.attr(W[0]),!Z&&(U.css(a({cursor:"default"},E)),G&&U.text.css({pointerEvents:"none"})),U.on("touchstart",K=>K.stopPropagation()).on("click",function(K){it!==3&&i.call(U,K)})}crispLine(n,x){let[D,i]=n;return t(D[1])&&D[1]===i[1]&&(D[1]=i[1]=s(D[1],x)),t(D[2])&&D[2]===i[2]&&(D[2]=i[2]=s(D[2],x)),n}path(n){let x=this.styledMode?{}:{fill:"none"};return f(n)?x.d=n:h(n)&&a(x,n),this.createElement("path").attr(x)}circle(n,x,D){let i=h(n)?n:n===void 0?{}:{x:n,y:x,r:D},p=this.createElement("circle");return p.xSetter=p.ySetter=function(c,w,C){C.setAttribute("c"+w,c)},p.attr(i)}arc(n,x,D,i,p,c){let w;h(n)?(x=(w=n).y,D=w.r,i=w.innerR,p=w.start,c=w.end,n=w.x):w={innerR:i,start:p,end:c};let C=this.symbol("arc",n,x,D,D,w);return C.r=D,C}rect(n,x,D,i,p,c){let w=h(n)?n:n===void 0?{}:{x:n,y:x,r:p,width:Math.max(D||0,0),height:Math.max(i||0,0)},C=this.createElement("rect");return this.styledMode||(c!==void 0&&(w["stroke-width"]=c,a(w,C.crisp(w))),w.fill="none"),C.rSetter=function(z,G,U){C.r=z,r(U,{rx:z,ry:z})},C.rGetter=function(){return C.r||0},C.attr(w)}roundedRect(n){return this.symbol("roundedRect").attr(n)}setSize(n,x,D){this.width=n,this.height=x,this.boxWrapper.animate({width:n,height:x},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:g(D,!0)?void 0:0}),this.alignElements()}g(n){let x=this.createElement("g");return n?x.attr({class:"highcharts-"+n}):x}image(n,x,D,i,p,c){let w={preserveAspectRatio:"none"};y(x)&&(w.x=x),y(D)&&(w.y=D),y(i)&&(w.width=i),y(p)&&(w.height=p);let C=this.createElement("image").attr(w),z=function(G){C.attr({href:n}),c.call(C,G)};if(c){C.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let G=new O.Image;k(G,"load",z),G.src=n,G.complete&&z({})}else C.attr({href:n});return C}symbol(n,x,D,i,p,c){let w,C,z,G,U=this,Z=/^url\((.*?)\)$/,rt=Z.test(n),it=!rt&&(this.symbols[n]?n:"circle"),N=it&&this.symbols[it];if(N)typeof x=="number"&&(C=N.call(this.symbols,x||0,D||0,i||0,p||0,c)),w=this.path(C),U.styledMode||w.attr("fill","none"),a(w,{symbolName:it||void 0,x,y:D,width:i,height:p}),c&&a(w,c);else if(rt){z=n.match(Z)[1];let E=w=this.image(z);E.imgwidth=g(c&&c.width,B[z]&&B[z].width),E.imgheight=g(c&&c.height,B[z]&&B[z].height),G=W=>W.attr({width:W.width,height:W.height}),["width","height"].forEach(W=>{E[`${W}Setter`]=function(H,K){this[K]=H;let{alignByTranslate:tt,element:_,width:st,height:ot,imgwidth:dt,imgheight:pt}=this,ut=K==="width"?dt:pt,mt=1;c&&c.backgroundSize==="within"&&st&&ot&&dt&&pt?(mt=Math.min(st/dt,ot/pt),r(_,{width:Math.round(dt*mt),height:Math.round(pt*mt)})):_&&ut&&_.setAttribute(K,ut),!tt&&dt&&pt&&this.translate(((st||0)-dt*mt)/2,((ot||0)-pt*mt)/2)}}),t(x)&&E.attr({x,y:D}),E.isImg=!0,E.symbolUrl=n,t(E.imgwidth)&&t(E.imgheight)?G(E):(E.attr({width:0,height:0}),u("img",{onload:function(){let W=j[U.chartIndex];this.width===0&&(e(this,{position:"absolute",top:"-999em"}),m.body.appendChild(this)),B[z]={width:this.width,height:this.height},E.imgwidth=this.width,E.imgheight=this.height,E.element&&G(E),this.parentNode&&this.parentNode.removeChild(this),U.imgCount--,U.imgCount||!W||W.hasLoaded||W.onload()},src:z}),this.imgCount++)}return w}clipRect(n,x,D,i){return this.rect(n,x,D,i,0)}text(n,x,D,i){let p={};if(i&&(this.allowHTML||!this.forExport))return this.html(n,x,D);p.x=Math.round(x||0),D&&(p.y=Math.round(D)),t(n)&&(p.text=n);let c=this.createElement("text").attr(p);return i&&(!this.forExport||this.allowHTML)||(c.xSetter=function(w,C,z){let G=z.getElementsByTagName("tspan"),U=z.getAttribute(C);for(let Z=0,rt;Z<G.length;Z++)(rt=G[Z]).getAttribute(C)===U&&rt.setAttribute(C,w);z.setAttribute(C,w)}),c}fontMetrics(n){let x=L(nt.prototype.getStyle.call(n,"font-size")||0),D=x<24?x+3:Math.round(1.2*x),i=Math.round(.8*D);return{h:D,b:i,f:x}}rotCorr(n,x,D){let i=n;return x&&D&&(i=Math.max(i*Math.cos(x*P),4)),{x:-n/3*Math.sin(x*P),y:i}}pathToSegments(n){let x=[],D=[],i={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let p=0;p<n.length;p++)T(D[0])&&y(n[p])&&D.length===i[D[0].toUpperCase()]&&n.splice(p,0,D[0].replace("M","L").replace("m","l")),typeof n[p]=="string"&&(D.length&&x.push(D.slice(0)),D.length=0),D.push(n[p]);return x.push(D.slice(0)),x}label(n,x,D,i,p,c,w,C,z){return new at(this,n,x,D,i,p,c,w,C,z)}alignElements(){this.alignedObjects.forEach(n=>n.align())}}return a(Q.prototype,{Element:nt,SVG_NS:v,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:q,draw:d}),lt.registerRendererType("svg",Q,!0),Q}),yt(Y,"Core/Renderer/HTML/HTMLElement.js",[Y["Core/Renderer/HTML/AST.js"],Y["Core/Globals.js"],Y["Core/Renderer/SVG/SVGElement.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct){let{composed:lt}=et,{attr:nt,css:at,createElement:q,defined:$,extend:V,pInt:M,pushUnique:R}=ct;function j(S,A,d){var B;let v=((B=this.div)==null?void 0:B.style)||d.style;ht.prototype[`${A}Setter`].call(this,S,A,d),v&&(v[A]=S)}let P=(S,A)=>{var d;if(!S.div){let v=nt(S.element,"class"),B=S.css,O=q("div",v?{className:v}:void 0,{position:"absolute",left:`${S.translateX||0}px`,top:`${S.translateY||0}px`,...S.styles,display:S.display,opacity:S.opacity,visibility:S.visibility},((d=S.parentGroup)==null?void 0:d.div)||A);S.classSetter=(k,r,u)=>{u.setAttribute("class",k),O.className=k},S.translateXSetter=S.translateYSetter=(k,r)=>{S[r]=k,O.style[r==="translateX"?"left":"top"]=`${k}px`,S.doTransform=!0},S.opacitySetter=S.visibilitySetter=j,S.css=k=>(B.call(S,k),k.cursor&&(O.style.cursor=k.cursor),k.pointerEvents&&(O.style.pointerEvents=k.pointerEvents),S),S.on=function(){return ht.prototype.on.apply({element:O,onEvents:S.onEvents},arguments),S},S.div=O}return S.div};class m extends ht{static compose(A){R(lt,this.compose)&&(A.prototype.html=function(d,v,B){return new m(this,"span").attr({text:d,x:Math.round(v),y:Math.round(B)})})}constructor(A,d){super(A,d),this.css({position:"absolute",...A.styledMode?{}:{fontFamily:A.style.fontFamily,fontSize:A.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(A,d,v){this.xCorr=-A*v,this.yCorr=-d}css(A){let d,{element:v}=this,B=v.tagName==="SPAN"&&A&&"width"in A,O=B&&A.width;return B&&(delete A.width,this.textWidth=M(O)||void 0,d=!0),(A==null?void 0:A.textOverflow)==="ellipsis"&&(A.whiteSpace="nowrap",A.overflow="hidden"),V(this.styles,A),at(v,A),d&&this.updateTransform(),this}htmlGetBBox(){let{element:A}=this;return{x:A.offsetLeft,y:A.offsetTop,width:A.offsetWidth,height:A.offsetHeight}}updateTransform(){var y;if(!this.added){this.alignOnAdd=!0;return}let{element:A,renderer:d,rotation:v,rotationOriginX:B,rotationOriginY:O,styles:k,textAlign:r="left",textWidth:u,translateX:s=0,translateY:e=0,x:t=0,y:o=0}=this,a={left:0,center:.5,right:1}[r],f=k.whiteSpace;if(at(A,{marginLeft:`${s}px`,marginTop:`${e}px`}),A.tagName==="SPAN"){let h=[v,r,A.innerHTML,u,this.textAlign].join(","),T=-(((y=this.parentGroup)==null?void 0:y.padding)*1)||0,X,g=!1;if(u!==this.oldTextWidth){let l=this.textPxLength?this.textPxLength:(at(A,{width:"",whiteSpace:f||"nowrap"}),A.offsetWidth),n=u||0;(n>this.oldTextWidth||l>n)&&(/[ \-]/.test(A.textContent||A.innerText)||A.style.textOverflow==="ellipsis")&&(at(A,{width:l>n||v?u+"px":"auto",display:"block",whiteSpace:f||"normal"}),this.oldTextWidth=u,g=!0)}this.hasBoxWidthChanged=g,h!==this.cTT&&(X=d.fontMetrics(A).b,$(v)&&(v!==(this.oldRotation||0)||r!==this.oldAlign)&&this.setSpanRotation(v,T,T),this.getSpanCorrection(!$(v)&&this.textPxLength||A.offsetWidth,X,a));let{xCorr:L=0,yCorr:I=0}=this,F=(B??t)-L-t-T,Q=(O??o)-I-o-T;at(A,{left:`${t+L}px`,top:`${o+I}px`,transformOrigin:`${F}px ${Q}px`}),this.cTT=h,this.oldRotation=v,this.oldAlign=r}}setSpanRotation(A,d,v){at(this.element,{transform:`rotate(${A}deg)`,transformOrigin:`${d}% ${v}px`})}add(A){let d,v=this.renderer.box.parentNode,B=[];if(this.parentGroup=A,A&&!(d=A.div)){let O=A;for(;O;)B.push(O),O=O.parentGroup;for(let k of B.reverse())d=P(k,v)}return(d||v).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(A){A!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,J.setElementHTML(this.element,A??""),this.textStr=A,this.doTransform=!0)}alignSetter(A){this.alignValue=this.textAlign=A,this.doTransform=!0}xSetter(A,d){this[d]=A,this.doTransform=!0}}let b=m.prototype;return b.visibilitySetter=b.opacitySetter=j,b.ySetter=b.rotationSetter=b.rotationOriginXSetter=b.rotationOriginYSetter=b.xSetter,m}),yt(Y,"Core/Axis/AxisDefaults.js",[],function(){var J,et;return(et=J||(J={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},et.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:ht}=this.axis.chart;return ht(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},J}),yt(Y,"Core/Foundation.js",[Y["Core/Utilities.js"]],function(J){var et;let{addEvent:ht,isFunction:ct,objectEach:lt,removeEvent:nt}=J;return(et||(et={})).registerEventOptions=function(at,q){at.eventOptions=at.eventOptions||{},lt(q.events,function($,V){at.eventOptions[V]!==$&&(at.eventOptions[V]&&(nt(at,V,at.eventOptions[V]),delete at.eventOptions[V]),ct($)&&(at.eventOptions[V]=$,ht(at,V,$,{order:0})))})},et}),yt(Y,"Core/Axis/Tick.js",[Y["Core/Templating.js"],Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{deg2rad:ct}=et,{clamp:lt,correctFloat:nt,defined:at,destroyObjectProperties:q,extend:$,fireEvent:V,isNumber:M,merge:R,objectEach:j,pick:P}=ht;return class{constructor(m,b,S,A,d){this.isNew=!0,this.isNewLabel=!0,this.axis=m,this.pos=b,this.type=S||"",this.parameters=d||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,V(this,"init"),S||A||this.addLabel()}addLabel(){let m=this,b=m.axis,S=b.options,A=b.chart,d=b.categories,v=b.logarithmic,B=b.names,O=m.pos,k=P(m.options&&m.options.labels,S.labels),r=b.tickPositions,u=O===r[0],s=O===r[r.length-1],e=(!k.step||k.step===1)&&b.tickInterval===1,t=r.info,o=m.label,a,f,y,h=this.parameters.category||(d?P(d[O],B[O],O):O);v&&M(h)&&(h=nt(v.lin2log(h))),b.dateTime&&(t?a=(f=A.time.resolveDTLFormat(S.dateTimeLabelFormats[!S.grid&&t.higherRanks[O]||t.unitName])).main:M(h)&&(a=b.dateTime.getXDateFormat(h,S.dateTimeLabelFormats||{}))),m.isFirst=u,m.isLast=s;let T={axis:b,chart:A,dateTimeLabelFormat:a,isFirst:u,isLast:s,pos:O,tick:m,tickPositionInfo:t,value:h};V(this,"labelFormat",T);let X=I=>k.formatter?k.formatter.call(I,I):k.format?(I.text=b.defaultLabelFormatter.call(I),J.format(k.format,I,A)):b.defaultLabelFormatter.call(I),g=X.call(T,T),L=f&&f.list;L?m.shortenLabel=function(){for(y=0;y<L.length;y++)if($(T,{dateTimeLabelFormat:L[y]}),o.attr({text:X.call(T,T)}),o.getBBox().width<b.getSlotWidth(m)-2*(k.padding||0))return;o.attr({text:""})}:m.shortenLabel=void 0,e&&b._addedPlotLB&&m.moveLabel(g,k),at(o)||m.movedLabel?o&&o.textStr!==g&&!e&&(!o.textWidth||k.style.width||o.styles.width||o.css({width:null}),o.attr({text:g}),o.textPxLength=o.getBBox().width):(m.label=o=m.createLabel(g,k),m.rotation=0)}createLabel(m,b,S){let A=this.axis,d=A.chart,v=at(m)&&b.enabled?d.renderer.text(m,S==null?void 0:S.x,S==null?void 0:S.y,b.useHTML).add(A.labelGroup):void 0;return v&&(d.styledMode||v.css(R(b.style)),v.textPxLength=v.getBBox().width),v}destroy(){q(this,this.axis)}getPosition(m,b,S,A){let d=this.axis,v=d.chart,B=A&&v.oldChartHeight||v.chartHeight,O={x:m?nt(d.translate(b+S,void 0,void 0,A)+d.transB):d.left+d.offset+(d.opposite?(A&&v.oldChartWidth||v.chartWidth)-d.right-d.left:0),y:m?B-d.bottom+d.offset-(d.opposite?d.height:0):nt(B-d.translate(b+S,void 0,void 0,A)-d.transB)};return O.y=lt(O.y,-1e9,1e9),V(this,"afterGetPosition",{pos:O}),O}getLabelPosition(m,b,S,A,d,v,B,O){let k,r,u=this.axis,s=u.transA,e=u.isLinked&&u.linkedParent?u.linkedParent.reversed:u.reversed,t=u.staggerLines,o=u.tickRotCorr||{x:0,y:0},a=A||u.reserveSpaceDefault?0:-u.labelOffset*(u.labelAlign==="center"?.5:1),f=d.distance,y={};return k=u.side===0?S.rotation?-f:-S.getBBox().height:u.side===2?o.y+f:Math.cos(S.rotation*ct)*(o.y-S.getBBox(!1,0).height/2),at(d.y)&&(k=u.side===0&&u.horiz?d.y+k:d.y),m=m+P(d.x,[0,1,0,-1][u.side]*f)+a+o.x-(v&&A?v*s*(e?-1:1):0),b=b+k-(v&&!A?v*s*(e?1:-1):0),t&&(r=B/(O||1)%t,u.opposite&&(r=t-r-1),b+=r*(u.labelOffset/t)),y.x=m,y.y=Math.round(b),V(this,"afterGetLabelPosition",{pos:y,tickmarkOffset:v,index:B}),y}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0}getMarkPath(m,b,S,A,d=!1,v){return v.crispLine([["M",m,b],["L",m+(d?0:-S),b+(d?S:0)]],A)}handleOverflow(m){let b=this.axis,S=b.options.labels,A=m.x,d=b.chart.chartWidth,v=b.chart.spacing,B=P(b.labelLeft,Math.min(b.pos,v[3])),O=P(b.labelRight,Math.max(b.isRadial?0:b.pos+b.len,d-v[1])),k=this.label,r=this.rotation,u={left:0,center:.5,right:1}[b.labelAlign||k.attr("align")],s=k.getBBox().width,e=b.getSlotWidth(this),t={},o=e,a=1,f,y,h;r||S.overflow!=="justify"?r<0&&A-u*s<B?h=Math.round(A/Math.cos(r*ct)-B):r>0&&A+u*s>O&&(h=Math.round((d-A)/Math.cos(r*ct))):(f=A-u*s,y=A+(1-u)*s,f<B?o=m.x+o*(1-u)-B:y>O&&(o=O-m.x+o*u,a=-1),(o=Math.min(e,o))<e&&b.labelAlign==="center"&&(m.x+=a*(e-o-u*(e-Math.min(s,o)))),(s>o||b.autoRotation&&(k.styles||{}).width)&&(h=o)),h&&(this.shortenLabel?this.shortenLabel():(t.width=Math.floor(h)+"px",(S.style||{}).textOverflow||(t.textOverflow="ellipsis"),k.css(t)))}moveLabel(m,b){let S=this,A=S.label,d=S.axis,v=!1,B;A&&A.textStr===m?(S.movedLabel=A,v=!0,delete S.label):j(d.ticks,function(O){v||O.isNew||O===S||!O.label||O.label.textStr!==m||(S.movedLabel=O.label,v=!0,O.labelPos=S.movedLabel.xy,delete O.label)}),!v&&(S.labelPos||A)&&(B=S.labelPos||A.xy,S.movedLabel=S.createLabel(m,b,B),S.movedLabel&&S.movedLabel.attr({opacity:0}))}render(m,b,S){let A=this.axis,d=A.horiz,v=this.pos,B=P(this.tickmarkOffset,A.tickmarkOffset),O=this.getPosition(d,v,B,b),k=O.x,r=O.y,u=A.pos,s=u+A.len,e=d?k:r;!A.chart.polar&&this.isNew&&(nt(e)<u||e>s)&&(S=0);let t=P(S,this.label&&this.label.newOpacity,1);S=P(S,1),this.isActive=!0,this.renderGridLine(b,S),this.renderMark(O,S),this.renderLabel(O,b,t,m),this.isNew=!1,V(this,"afterRender")}renderGridLine(m,b){let S=this.axis,A=S.options,d={},v=this.pos,B=this.type,O=P(this.tickmarkOffset,S.tickmarkOffset),k=S.chart.renderer,r=this.gridLine,u,s=A.gridLineWidth,e=A.gridLineColor,t=A.gridLineDashStyle;this.type==="minor"&&(s=A.minorGridLineWidth,e=A.minorGridLineColor,t=A.minorGridLineDashStyle),r||(S.chart.styledMode||(d.stroke=e,d["stroke-width"]=s||0,d.dashstyle=t),B||(d.zIndex=1),m&&(b=0),this.gridLine=r=k.path().attr(d).addClass("highcharts-"+(B?B+"-":"")+"grid-line").add(S.gridGroup)),r&&(u=S.getPlotLinePath({value:v+O,lineWidth:r.strokeWidth(),force:"pass",old:m,acrossPanes:!1}))&&r[m||this.isNew?"attr":"animate"]({d:u,opacity:b})}renderMark(m,b){let S=this.axis,A=S.options,d=S.chart.renderer,v=this.type,B=S.tickSize(v?v+"Tick":"tick"),O=m.x,k=m.y,r=P(A[v!=="minor"?"tickWidth":"minorTickWidth"],!v&&S.isXAxis?1:0),u=A[v!=="minor"?"tickColor":"minorTickColor"],s=this.mark,e=!s;B&&(S.opposite&&(B[0]=-B[0]),s||(this.mark=s=d.path().addClass("highcharts-"+(v?v+"-":"")+"tick").add(S.axisGroup),S.chart.styledMode||s.attr({stroke:u,"stroke-width":r})),s[e?"attr":"animate"]({d:this.getMarkPath(O,k,B[0],s.strokeWidth(),S.horiz,d),opacity:b}))}renderLabel(m,b,S,A){let d=this.axis,v=d.horiz,B=d.options,O=this.label,k=B.labels,r=k.step,u=P(this.tickmarkOffset,d.tickmarkOffset),s=m.x,e=m.y,t=!0;O&&M(s)&&(O.xy=m=this.getLabelPosition(s,e,O,v,k,u,A,r),(!this.isFirst||this.isLast||B.showFirstLabel)&&(!this.isLast||this.isFirst||B.showLastLabel)?!v||k.step||k.rotation||b||S===0||this.handleOverflow(m):t=!1,r&&A%r&&(t=!1),t&&M(m.y)?(m.opacity=S,O[this.isNewLabel?"attr":"animate"](m).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let m=this.label,b=this.axis;m&&!this.isNew&&(m.animate({opacity:0},void 0,m.destroy),delete this.label),b.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),yt(Y,"Core/Axis/Axis.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Axis/AxisDefaults.js"],Y["Core/Color/Color.js"],Y["Core/Defaults.js"],Y["Core/Foundation.js"],Y["Core/Globals.js"],Y["Core/Axis/Tick.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt,nt,at,q){let{animObject:$}=J,{xAxis:V,yAxis:M}=et,{defaultOptions:R}=ct,{registerEventOptions:j}=lt,{deg2rad:P}=nt,{arrayMax:m,arrayMin:b,clamp:S,correctFloat:A,defined:d,destroyObjectProperties:v,erase:B,error:O,extend:k,fireEvent:r,getClosestDistance:u,insertItem:s,isArray:e,isNumber:t,isString:o,merge:a,normalizeTickInterval:f,objectEach:y,pick:h,relativeLength:T,removeEvent:X,splat:g,syncTimeout:L}=q,I=(Q,l)=>f(l,void 0,void 0,h(Q.options.allowDecimals,l<.5||Q.tickAmount!==void 0),!!Q.tickAmount);k(R,{xAxis:V,yAxis:a(V,M)});class F{constructor(l,n,x){this.init(l,n,x)}init(l,n,x=this.coll){let D=x==="xAxis",i=this.isZAxis||(l.inverted?!D:D);this.chart=l,this.horiz=i,this.isXAxis=D,this.coll=x,r(this,"init",{userOptions:n}),this.opposite=h(n.opposite,this.opposite),this.side=h(n.side,this.side,i?this.opposite?0:2:this.opposite?1:3),this.setOptions(n);let p=this.options,c=p.labels;this.type??(this.type=p.type||"linear"),this.uniqueNames??(this.uniqueNames=p.uniqueNames??!0),r(this,"afterSetType"),this.userOptions=n,this.minPixelPadding=0,this.reversed=h(p.reversed,this.reversed),this.visible=p.visible,this.zoomEnabled=p.zoomEnabled,this.hasNames=this.type==="category"||p.categories===!0,this.categories=e(p.categories)&&p.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=d(p.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=p.minRange||p.maxZoom,this.range=p.range,this.offset=p.offset||0,this.max=void 0,this.min=void 0;let w=h(p.crosshair,g(l.options.tooltip.crosshairs)[D?0:1]);this.crosshair=w===!0?{}:w,l.axes.indexOf(this)===-1&&(D?l.axes.splice(l.xAxis.length,0,this):l.axes.push(this),s(this,l[this.coll])),l.orderItems(this.coll),this.series=this.series||[],l.inverted&&!this.isZAxis&&D&&!d(this.reversed)&&(this.reversed=!0),this.labelRotation=t(c.rotation)?c.rotation:void 0,j(this,p),r(this,"afterInit")}setOptions(l){let n=this.horiz?{labels:{autoRotation:[-45],padding:4},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=a(n,R[this.coll],l),r(this,"afterSetOptions",{userOptions:l})}defaultLabelFormatter(){let l=this.axis,{numberFormatter:n}=this.chart,x=t(this.value)?this.value:NaN,D=l.chart.time,i=l.categories,p=this.dateTimeLabelFormat,c=R.lang,w=c.numericSymbols,C=c.numericSymbolMagnitude||1e3,z=l.logarithmic?Math.abs(x):l.tickInterval,G=w&&w.length,U,Z;if(i)Z=`${this.value}`;else if(p)Z=D.dateFormat(p,x);else if(G&&w&&z>=1e3)for(;G--&&Z===void 0;)z>=(U=Math.pow(C,G+1))&&10*x%U==0&&w[G]!==null&&x!==0&&(Z=n(x/U,-1)+w[G]);return Z===void 0&&(Z=Math.abs(x)>=1e4?n(x,-1):n(x,-1,void 0,"")),Z}getSeriesExtremes(){let l,n=this;r(this,"getSeriesExtremes",null,function(){n.hasVisibleSeries=!1,n.dataMin=n.dataMax=n.threshold=void 0,n.softThreshold=!n.isXAxis,n.series.forEach(x=>{if(x.reserveSpace()){let D=x.options,i,p=D.threshold,c,w;if(n.hasVisibleSeries=!0,n.positiveValuesOnly&&0>=(p||0)&&(p=void 0),n.isXAxis)(i=x.xData)&&i.length&&(i=n.logarithmic?i.filter(C=>C>0):i,c=(l=x.getXExtremes(i)).min,w=l.max,t(c)||c instanceof Date||(i=i.filter(t),c=(l=x.getXExtremes(i)).min,w=l.max),i.length&&(n.dataMin=Math.min(h(n.dataMin,c),c),n.dataMax=Math.max(h(n.dataMax,w),w)));else{let C=x.applyExtremes();t(C.dataMin)&&(c=C.dataMin,n.dataMin=Math.min(h(n.dataMin,c),c)),t(C.dataMax)&&(w=C.dataMax,n.dataMax=Math.max(h(n.dataMax,w),w)),d(p)&&(n.threshold=p),(!D.softThreshold||n.positiveValuesOnly)&&(n.softThreshold=!1)}}})}),r(this,"afterGetSeriesExtremes")}translate(l,n,x,D,i,p){var it;let c=this.linkedParent||this,w=D&&c.old?c.old.min:c.min;if(!t(w))return NaN;let C=c.minPixelPadding,z=(c.isOrdinal||((it=c.brokenAxis)==null?void 0:it.hasBreaks)||c.logarithmic&&i)&&c.lin2val,G=1,U=0,Z=D&&c.old?c.old.transA:c.transA,rt=0;return Z||(Z=c.transA),x&&(G*=-1,U=c.len),c.reversed&&(G*=-1,U-=G*(c.sector||c.len)),n?(rt=(l=l*G+U-C)/Z+w,z&&(rt=c.lin2val(rt))):(z&&(l=c.val2lin(l)),rt=G*(l-w)*Z+U+G*C+(t(p)?Z*p:0),c.isRadial||(rt=A(rt))),rt}toPixels(l,n){return this.translate(l,!1,!this.horiz,void 0,!0)+(n?0:this.pos)}toValue(l,n){return this.translate(l-(n?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(l){let n=this,x=n.chart,D=n.left,i=n.top,p=l.old,c=l.value,w=l.lineWidth,C=p&&x.oldChartHeight||x.chartHeight,z=p&&x.oldChartWidth||x.chartWidth,G=n.transB,U=l.translatedValue,Z=l.force,rt,it,N,E,W;function H(tt,_,st){return Z!=="pass"&&(tt<_||tt>st)&&(Z?tt=S(tt,_,st):W=!0),tt}let K={value:c,lineWidth:w,old:p,force:Z,acrossPanes:l.acrossPanes,translatedValue:U};return r(this,"getPlotLinePath",K,function(tt){rt=N=(U=S(U=h(U,n.translate(c,void 0,void 0,p)),-1e9,1e9))+G,it=E=C-U-G,t(U)?n.horiz?(it=i,E=C-n.bottom+(n.options.isInternal?0:x.scrollablePixelsY||0),rt=N=H(rt,D,D+n.width)):(rt=D,N=z-n.right+(x.scrollablePixelsX||0),it=E=H(it,i,i+n.height)):(W=!0,Z=!1),tt.path=W&&!Z?void 0:x.renderer.crispLine([["M",rt,it],["L",N,E]],w||1)}),K.path}getLinearTickPositions(l,n,x){let D,i,p,c=A(Math.floor(n/l)*l),w=A(Math.ceil(x/l)*l),C=[];if(A(c+l)===c&&(p=20),this.single)return[n];for(D=c;D<=w&&(C.push(D),(D=A(D+l,p))!==i);)i=D;return C}getMinorTickInterval(){let{minorTicks:l,minorTickInterval:n}=this.options;return l===!0?h(n,"auto"):l!==!1?n:void 0}getMinorTickPositions(){let l=this.options,n=this.tickPositions,x=this.minorTickInterval,D=this.pointRangePadding||0,i=(this.min||0)-D,p=(this.max||0)+D,c=p-i,w=[],C;if(c&&c/x<this.len/3){let z=this.logarithmic;if(z)this.paddedTicks.forEach(function(G,U,Z){U&&w.push.apply(w,z.getLogTickPositions(x,Z[U-1],Z[U],!0))});else if(this.dateTime&&this.getMinorTickInterval()==="auto")w=w.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(x),i,p,l.startOfWeek));else for(C=i+(n[0]-i)%x;C<=p&&C!==w[0];C+=x)w.push(C)}return w.length!==0&&this.trimTicks(w),w}adjustForMinRange(){let l=this.options,n=this.logarithmic,{max:x,min:D,minRange:i}=this,p,c,w,C;this.isXAxis&&i===void 0&&!n&&(i=d(l.min)||d(l.max)||d(l.floor)||d(l.ceiling)?null:Math.min(5*(u(this.series.map(z=>{var G;return(z.xIncrement?(G=z.xData)==null?void 0:G.slice(0,2):z.xData)||[]}))||0),this.dataMax-this.dataMin)),t(x)&&t(D)&&t(i)&&x-D<i&&(c=this.dataMax-this.dataMin>=i,p=(i-x+D)/2,w=[D-p,h(l.min,D-p)],c&&(w[2]=n?n.log2lin(this.dataMin):this.dataMin),C=[(D=m(w))+i,h(l.max,D+i)],c&&(C[2]=n?n.log2lin(this.dataMax):this.dataMax),(x=b(C))-D<i&&(w[0]=x-i,w[1]=h(l.min,x-i),D=m(w))),this.minRange=i,this.min=D,this.max=x}getClosest(){let l,n;if(this.categories)n=1;else{let x=[];this.series.forEach(function(D){var p;let i=D.closestPointRange;((p=D.xData)==null?void 0:p.length)===1?x.push(D.xData[0]):!D.noSharedTooltip&&d(i)&&D.reserveSpace()&&(n=d(n)?Math.min(n,i):i)}),x.length&&(x.sort((D,i)=>D-i),l=u([x]))}return l&&n?Math.min(l,n):l||n}nameToX(l){let n=e(this.options.categories),x=n?this.categories:this.names,D=l.options.x,i;return l.series.requireSorting=!1,d(D)||(D=this.uniqueNames&&x?n?x.indexOf(l.name):h(x.keys[l.name],-1):l.series.autoIncrement()),D===-1?!n&&x&&(i=x.length):i=D,i!==void 0?(this.names[i]=l.name,this.names.keys[l.name]=i):l.x&&(i=l.x),i}updateNames(){let l=this,n=this.names;n.length>0&&(Object.keys(n.keys).forEach(function(x){delete n.keys[x]}),n.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(x=>{x.xIncrement=null,(!x.points||x.isDirtyData)&&(l.max=Math.max(l.max,x.xData.length-1),x.processData(),x.generatePoints()),x.data.forEach(function(D,i){let p;D!=null&&D.options&&D.name!==void 0&&(p=l.nameToX(D))!==void 0&&p!==D.x&&(D.x=p,x.xData[i]=p)})}))}setAxisTranslation(){let l=this,n=l.max-l.min,x=l.linkedParent,D=!!l.categories,i=l.isXAxis,p=l.axisPointRange||0,c,w=0,C=0,z,G=l.transA;(i||D||p)&&(c=l.getClosest(),x?(w=x.minPointOffset,C=x.pointRangePadding):l.series.forEach(function(U){let Z=D?1:i?h(U.options.pointRange,c,0):l.axisPointRange||0,rt=U.options.pointPlacement;if(p=Math.max(p,Z),!l.single||D){let it=U.is("xrange")?!i:i;w=Math.max(w,it&&o(rt)?0:Z/2),C=Math.max(C,it&&rt==="on"?0:Z)}}),z=l.ordinal&&l.ordinal.slope&&c?l.ordinal.slope/c:1,l.minPointOffset=w*=z,l.pointRangePadding=C*=z,l.pointRange=Math.min(p,l.single&&D?1:n),i&&c&&(l.closestPointRange=c)),l.translationSlope=l.transA=G=l.staticScale||l.len/(n+C||1),l.transB=l.horiz?l.left:l.bottom,l.minPixelPadding=G*w,r(this,"afterSetAxisTranslation")}minFromRange(){let{max:l,min:n}=this;return t(l)&&t(n)&&l-n||void 0}setTickInterval(l){var ft,gt,vt,bt;let{categories:n,chart:x,dataMax:D,dataMin:i,dateTime:p,isXAxis:c,logarithmic:w,options:C,softThreshold:z}=this,G=t(this.threshold)?this.threshold:void 0,U=this.minRange||0,{ceiling:Z,floor:rt,linkedTo:it,softMax:N,softMin:E}=C,W=t(it)&&((ft=x[this.coll])==null?void 0:ft[it]),H=C.tickPixelInterval,K=C.maxPadding,tt=C.minPadding,_=0,st,ot=t(C.tickInterval)&&C.tickInterval>=0?C.tickInterval:void 0,dt,pt,ut,mt;if(p||n||W||this.getTickAmount(),ut=h(this.userMin,C.min),mt=h(this.userMax,C.max),W?(this.linkedParent=W,st=W.getExtremes(),this.min=h(st.min,st.dataMin),this.max=h(st.max,st.dataMax),this.type!==W.type&&O(11,!0,x)):(z&&d(G)&&t(D)&&t(i)&&(i>=G?(dt=G,tt=0):D<=G&&(pt=G,K=0)),this.min=h(ut,dt,i),this.max=h(mt,pt,D)),t(this.max)&&t(this.min)&&(w&&(this.positiveValuesOnly&&!l&&0>=Math.min(this.min,h(i,this.min))&&O(10,!0,x),this.min=A(w.log2lin(this.min),16),this.max=A(w.log2lin(this.max),16)),this.range&&t(i)&&(this.userMin=this.min=ut=Math.max(i,this.minFromRange()||0),this.userMax=mt=this.max,this.range=void 0)),r(this,"foundExtremes"),this.adjustForMinRange(),t(this.min)&&t(this.max)){if(!t(this.userMin)&&t(E)&&E<this.min&&(this.min=ut=E),!t(this.userMax)&&t(N)&&N>this.max&&(this.max=mt=N),n||this.axisPointRange||(gt=this.stacking)!=null&>.usePercentage||W||!(_=this.max-this.min)||(!d(ut)&&tt&&(this.min-=_*tt),d(mt)||!K||(this.max+=_*K)),!t(this.userMin)&&t(rt)&&(this.min=Math.max(this.min,rt)),!t(this.userMax)&&t(Z)&&(this.max=Math.min(this.max,Z)),z&&t(i)&&t(D)){let kt=G||0;!d(ut)&&this.min<kt&&i>=kt?this.min=C.minRange?Math.min(kt,this.max-U):kt:!d(mt)&&this.max>kt&&D<=kt&&(this.max=C.minRange?Math.max(kt,this.min+U):kt)}!x.polar&&this.min>this.max&&(d(C.min)?this.max=this.min:d(C.max)&&(this.min=this.max)),_=this.max-this.min}if(this.min!==this.max&&t(this.min)&&t(this.max)?W&&!ot&&H===W.options.tickPixelInterval?this.tickInterval=ot=W.tickInterval:this.tickInterval=h(ot,this.tickAmount?_/Math.max(this.tickAmount-1,1):void 0,n?1:_*H/Math.max(this.len,H)):this.tickInterval=1,c&&!l){let kt=this.min!==((vt=this.old)==null?void 0:vt.min)||this.max!==((bt=this.old)==null?void 0:bt.max);this.series.forEach(function(Ct){var St;Ct.forceCrop=(St=Ct.forceCropping)==null?void 0:St.call(Ct),Ct.processData(kt)}),r(this,"postProcessData",{hasExtremesChanged:kt})}this.setAxisTranslation(),r(this,"initialAxisTranslation"),this.pointRange&&!ot&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let xt=h(C.minTickInterval,p&&!this.series.some(kt=>kt.noSharedTooltip)?this.closestPointRange:0);!ot&&this.tickInterval<xt&&(this.tickInterval=xt),p||w||ot||(this.tickInterval=I(this,this.tickInterval)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()}setTickPositions(){var z,G;let l=this.options,n=l.tickPositions,x=l.tickPositioner,D=this.getMinorTickInterval(),i=!this.isPanning,p=i&&l.startOnTick,c=i&&l.endOnTick,w=[],C;if(this.tickmarkOffset=this.categories&&l.tickmarkPlacement==="between"&&this.tickInterval===1?.5:0,this.single=this.min===this.max&&d(this.min)&&!this.tickAmount&&(this.min%1==0||l.allowDecimals!==!1),n)w=n.slice();else if(t(this.min)&&t(this.max)){if(!((z=this.ordinal)!=null&&z.positions)&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))w=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)w=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,l.units),this.min,this.max,l.startOfWeek,(G=this.ordinal)==null?void 0:G.positions,this.closestPointRange,!0);else if(this.logarithmic)w=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let U=this.tickInterval,Z=U;for(;Z<=2*U&&(w=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&w.length>this.tickAmount);)this.tickInterval=I(this,Z*=1.1)}w.length>this.len&&(w=[w[0],w[w.length-1]])[0]===w[1]&&(w.length=1),x&&(this.tickPositions=w,(C=x.apply(this,[this.min,this.max]))&&(w=C))}this.tickPositions=w,this.minorTickInterval=D==="auto"&&this.tickInterval?this.tickInterval/l.minorTicksPerMajor:D,this.paddedTicks=w.slice(0),this.trimTicks(w,p,c),!this.isLinked&&t(this.min)&&t(this.max)&&(this.single&&w.length<2&&!this.categories&&!this.series.some(U=>U.is("heatmap")&&U.options.pointPlacement==="between")&&(this.min-=.5,this.max+=.5),n||C||this.adjustTickAmount()),r(this,"afterSetTickPositions")}trimTicks(l,n,x){let D=l[0],i=l[l.length-1],p=!this.isOrdinal&&this.minPointOffset||0;if(r(this,"trimTicks"),!this.isLinked){if(n&&D!==-1/0)this.min=D;else for(;this.min-p>l[0];)l.shift();if(x)this.max=i;else for(;this.max+p<l[l.length-1];)l.pop();l.length===0&&d(D)&&!this.options.tickPositions&&l.push((i+D)/2)}}alignToOthers(){let l,n=this,x=n.chart,D=[this],i=n.options,p=x.options.chart,c=this.coll==="yAxis"&&p.alignThresholds,w=[];if(n.thresholdAlignment=void 0,(p.alignTicks!==!1&&i.alignTicks||c)&&i.startOnTick!==!1&&i.endOnTick!==!1&&!n.logarithmic){let C=G=>{let{horiz:U,options:Z}=G;return[U?Z.left:Z.top,Z.width,Z.height,Z.pane].join(",")},z=C(this);x[this.coll].forEach(function(G){let{series:U}=G;U.length&&U.some(Z=>Z.visible)&&G!==n&&C(G)===z&&(l=!0,D.push(G))})}if(l&&c){D.forEach(z=>{let G=z.getThresholdAlignment(n);t(G)&&w.push(G)});let C=w.length>1?w.reduce((z,G)=>z+=G,0)/w.length:void 0;D.forEach(z=>{z.thresholdAlignment=C})}return l}getThresholdAlignment(l){if((!t(this.dataMin)||this!==l&&this.series.some(n=>n.isDirty||n.isDirtyData))&&this.getSeriesExtremes(),t(this.threshold)){let n=S((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(n=1-n),n}}getTickAmount(){let l=this.options,n=l.tickPixelInterval,x=l.tickAmount;d(l.tickInterval)||x||!(this.len<n)||this.isRadial||this.logarithmic||!l.startOnTick||!l.endOnTick||(x=2),!x&&this.alignToOthers()&&(x=Math.ceil(this.len/n)+1),x<4&&(this.finalTickAmt=x,x=5),this.tickAmount=x}adjustTickAmount(){let l=this,{finalTickAmt:n,max:x,min:D,options:i,tickPositions:p,tickAmount:c,thresholdAlignment:w}=l,C=p==null?void 0:p.length,z=h(l.threshold,l.softThreshold?0:null),G,U,Z=l.tickInterval,rt,it=()=>p.push(A(p[p.length-1]+Z)),N=()=>p.unshift(A(p[0]-Z));if(t(w)&&(rt=w<.5?Math.ceil(w*(c-1)):Math.floor(w*(c-1)),i.reversed&&(rt=c-1-rt)),l.hasData()&&t(D)&&t(x)){let E=()=>{l.transA*=(C-1)/(c-1),l.min=i.startOnTick?p[0]:Math.min(D,p[0]),l.max=i.endOnTick?p[p.length-1]:Math.max(x,p[p.length-1])};if(t(rt)&&t(l.threshold)){for(;p[rt]!==z||p.length!==c||p[0]>D||p[p.length-1]<x;){for(p.length=0,p.push(l.threshold);p.length<c;)p[rt]===void 0||p[rt]>l.threshold?N():it();if(Z>8*l.tickInterval)break;Z*=2}E()}else if(C<c){for(;p.length<c;)p.length%2||D===z?it():N();E()}if(d(n)){for(U=G=p.length;U--;)(n===3&&U%2==1||n<=2&&U>0&&U<G-1)&&p.splice(U,1);l.finalTickAmt=void 0}}}setScale(){var p,c;let{coll:l,stacking:n}=this,x=!1,D=!1;this.series.forEach(w=>{x=x||w.isDirtyData||w.isDirty,D=D||w.xAxis&&w.xAxis.isDirty||!1}),this.setAxisSize();let i=this.len!==(this.old&&this.old.len);i||x||D||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(n&&l==="yAxis"&&n.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),n&&l==="xAxis"&&n.buildStacks(),this.isDirty||(this.isDirty=i||this.min!==((p=this.old)==null?void 0:p.min)||this.max!==((c=this.old)==null?void 0:c.max))):n&&n.cleanStacks(),x&&delete this.allExtremes,r(this,"afterSetScale")}setExtremes(l,n,x=!0,D,i){this.series.forEach(p=>{delete p.kdTree}),r(this,"setExtremes",i=k(i,{min:l,max:n}),p=>{this.userMin=p.min,this.userMax=p.max,this.eventArgs=p,x&&this.chart.redraw(D)})}setAxisSize(){let l=this.chart,n=this.options,x=n.offsets||[0,0,0,0],D=this.horiz,i=this.width=Math.round(T(h(n.width,l.plotWidth-x[3]+x[1]),l.plotWidth)),p=this.height=Math.round(T(h(n.height,l.plotHeight-x[0]+x[2]),l.plotHeight)),c=this.top=Math.round(T(h(n.top,l.plotTop+x[0]),l.plotHeight,l.plotTop)),w=this.left=Math.round(T(h(n.left,l.plotLeft+x[3]),l.plotWidth,l.plotLeft));this.bottom=l.chartHeight-p-c,this.right=l.chartWidth-i-w,this.len=Math.max(D?i:p,0),this.pos=D?w:c}getExtremes(){let l=this.logarithmic;return{min:l?A(l.lin2log(this.min)):this.min,max:l?A(l.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(l){let n=this.logarithmic,x=n?n.lin2log(this.min):this.min,D=n?n.lin2log(this.max):this.max;return l===null||l===-1/0?l=x:l===1/0?l=D:x>l?l=x:D<l&&(l=D),this.translate(l,0,1,0,1)}autoLabelAlign(l){let n=(h(l,0)-90*this.side+720)%360,x={align:"center"};return r(this,"autoLabelAlign",x,function(D){n>15&&n<165?D.align="right":n>195&&n<345&&(D.align="left")}),x.align}tickSize(l){let n=this.options,x=h(n[l==="tick"?"tickWidth":"minorTickWidth"],l==="tick"&&this.isXAxis&&!this.categories?1:0),D=n[l==="tick"?"tickLength":"minorTickLength"],i;x&&D&&(n[l+"Position"]==="inside"&&(D=-D),i=[D,x]);let p={tickSize:i};return r(this,"afterTickSize",p),p.tickSize}labelMetrics(){let l=this.chart.renderer,n=this.ticks,x=n[Object.keys(n)[0]]||{};return this.chart.renderer.fontMetrics(x.label||x.movedLabel||l.box)}unsquish(){let l=this.options.labels,n=l.padding||0,x=this.horiz,D=this.tickInterval,i=this.len/(((this.categories?1:0)+this.max-this.min)/D),p=l.rotation,c=A(.8*this.labelMetrics().h),w=Math.max(this.max-this.min,0),C=function(rt){let it=(rt+2*n)/(i||1);return(it=it>1?Math.ceil(it):1)*D>w&&rt!==1/0&&i!==1/0&&w&&(it=Math.ceil(w/D)),A(it*D)},z=D,G,U=Number.MAX_VALUE,Z;if(x){if(!l.staggerLines&&(t(p)?Z=[p]:i<l.autoRotationLimit&&(Z=l.autoRotation)),Z){let rt,it;for(let N of Z)(N===p||N&&N>=-90&&N<=90)&&(it=(rt=C(Math.abs(c/Math.sin(P*N))))+Math.abs(N/360))<U&&(U=it,G=N,z=rt)}}else z=C(.75*c);return this.autoRotation=Z,this.labelRotation=h(G,t(p)?p:0),l.step?D:z}getSlotWidth(l){let n=this.chart,x=this.horiz,D=this.options.labels,i=Math.max(this.tickPositions.length-(this.categories?0:1),1),p=n.margin[3];if(l&&t(l.slotWidth))return l.slotWidth;if(x&&D.step<2)return D.rotation?0:(this.staggerLines||1)*this.len/i;if(!x){let c=D.style.width;if(c!==void 0)return parseInt(String(c),10);if(p)return p-n.spacing[3]}return .33*n.chartWidth}renderUnsquish(){let l=this.chart,n=l.renderer,x=this.tickPositions,D=this.ticks,i=this.options.labels,p=i.style,c=this.horiz,w=this.getSlotWidth(),C=Math.max(1,Math.round(w-(c?2*(i.padding||0):i.distance||0))),z={},G=this.labelMetrics(),U=p.textOverflow,Z,rt,it=0,N,E;if(o(i.rotation)||(z.rotation=i.rotation||0),x.forEach(function(W){let H=D[W];H.movedLabel&&H.replaceMovedLabel(),H&&H.label&&H.label.textPxLength>it&&(it=H.label.textPxLength)}),this.maxLabelLength=it,this.autoRotation)it>C&&it>G.h?z.rotation=this.labelRotation:this.labelRotation=0;else if(w&&(Z=C,!U))for(rt="clip",E=x.length;!c&&E--;)(N=D[x[E]].label)&&(N.styles.textOverflow==="ellipsis"?N.css({textOverflow:"clip"}):N.textPxLength>w&&N.css({width:w+"px"}),N.getBBox().height>this.len/x.length-(G.h-G.f)&&(N.specificTextOverflow="ellipsis"));z.rotation&&(Z=it>.5*l.chartHeight?.33*l.chartHeight:it,U||(rt="ellipsis")),this.labelAlign=i.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(z.align=this.labelAlign),x.forEach(function(W){let H=D[W],K=H&&H.label,tt=p.width,_={};K&&(K.attr(z),H.shortenLabel?H.shortenLabel():Z&&!tt&&p.whiteSpace!=="nowrap"&&(Z<K.textPxLength||K.element.tagName==="SPAN")?(_.width=Z+"px",U||(_.textOverflow=K.specificTextOverflow||rt),K.css(_)):!K.styles.width||_.width||tt||K.css({width:null}),delete K.specificTextOverflow,H.rotation=z.rotation)},this),this.tickRotCorr=n.rotCorr(G.b,this.labelRotation||0,this.side!==0)}hasData(){return this.series.some(function(l){return l.hasData()})||this.options.showEmpty&&d(this.min)&&d(this.max)}addTitle(l){let n,x=this.chart.renderer,D=this.horiz,i=this.opposite,p=this.options.title,c=this.chart.styledMode;this.axisTitle||((n=p.textAlign)||(n=(D?{low:"left",middle:"center",high:"right"}:{low:i?"right":"left",middle:"center",high:i?"left":"right"})[p.align]),this.axisTitle=x.text(p.text||"",0,0,p.useHTML).attr({zIndex:7,rotation:p.rotation||0,align:n}).addClass("highcharts-axis-title"),c||this.axisTitle.css(a(p.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),c||p.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[l?"show":"hide"](l)}generateTick(l){let n=this.ticks;n[l]?n[l].addLabel():n[l]=new at(this,l)}createGroups(){let{axisParent:l,chart:n,coll:x,options:D}=this,i=n.renderer,p=(c,w,C)=>i.g(c).attr({zIndex:C}).addClass(`highcharts-${x.toLowerCase()}${w} `+(this.isRadial?`highcharts-radial-axis${w} `:"")+(D.className||"")).add(l);this.axisGroup||(this.gridGroup=p("grid","-grid",D.gridZIndex),this.axisGroup=p("axis","",D.zIndex),this.labelGroup=p("axis-labels","-labels",D.labels.zIndex))}getOffset(){let l=this,{chart:n,horiz:x,options:D,side:i,ticks:p,tickPositions:c,coll:w}=l,C=n.inverted&&!l.isZAxis?[1,0,3,2][i]:i,z=l.hasData(),G=D.title,U=D.labels,Z=t(D.crossing),rt=n.axisOffset,it=n.clipOffset,N=[-1,1,1,-1][i],E,W=0,H,K=0,tt=0,_,st;if(l.showAxis=E=z||D.showEmpty,l.staggerLines=l.horiz&&U.staggerLines||void 0,l.createGroups(),z||l.isLinked?(c.forEach(function(ot){l.generateTick(ot)}),l.renderUnsquish(),l.reserveSpaceDefault=i===0||i===2||{1:"left",3:"right"}[i]===l.labelAlign,h(U.reserveSpace,!Z&&null,l.labelAlign==="center"||null,l.reserveSpaceDefault)&&c.forEach(function(ot){tt=Math.max(p[ot].getLabelSize(),tt)}),l.staggerLines&&(tt*=l.staggerLines),l.labelOffset=tt*(l.opposite?-1:1)):y(p,function(ot,dt){ot.destroy(),delete p[dt]}),G!=null&&G.text&&G.enabled!==!1&&(l.addTitle(E),E&&!Z&&G.reserveSpace!==!1&&(l.titleOffset=W=l.axisTitle.getBBox()[x?"height":"width"],K=d(H=G.offset)?0:h(G.margin,x?5:10))),l.renderLine(),l.offset=N*h(D.offset,rt[i]?rt[i]+(D.margin||0):0),l.tickRotCorr=l.tickRotCorr||{x:0,y:0},st=i===0?-l.labelMetrics().h:i===2?l.tickRotCorr.y:0,_=Math.abs(tt)+K,tt&&(_-=st,_+=N*(x?h(U.y,l.tickRotCorr.y+N*U.distance):h(U.x,N*U.distance))),l.axisTitleMargin=h(H,_),l.getMaxLabelDimensions&&(l.maxLabelDimensions=l.getMaxLabelDimensions(p,c)),w!=="colorAxis"&&it){let ot=this.tickSize("tick");rt[i]=Math.max(rt[i],(l.axisTitleMargin||0)+W+N*l.offset,_,c&&c.length&&ot?ot[0]+N*l.offset:0);let dt=!l.axisLine||D.offset?0:l.axisLine.strokeWidth()/2;it[C]=Math.max(it[C],dt)}r(this,"afterGetOffset")}getLinePath(l){let n=this.chart,x=this.opposite,D=this.offset,i=this.horiz,p=this.left+(x?this.width:0)+D,c=n.chartHeight-this.bottom-(x?this.height:0)+D;return x&&(l*=-1),n.renderer.crispLine([["M",i?this.left:p,i?c:this.top],["L",i?n.chartWidth-this.right:p,i?c:n.chartHeight-this.bottom]],l)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(l){let n=this.horiz,x=this.left,D=this.top,i=this.len,p=this.options.title,c=n?x:D,w=this.opposite,C=this.offset,z=p.x,G=p.y,U=this.chart.renderer.fontMetrics(l),Z=l?Math.max(l.getBBox(!1,0).height-U.h-1,0):0,rt={low:c+(n?0:i),middle:c+i/2,high:c+(n?i:0)}[p.align],it=(n?D+this.height:x)+(n?1:-1)*(w?-1:1)*(this.axisTitleMargin||0)+[-Z,Z,U.f,-Z][this.side],N={x:n?rt+z:it+(w?this.width:0)+C+z,y:n?it+G-(w?this.height:0)+C:rt+G};return r(this,"afterGetTitlePosition",{titlePosition:N}),N}renderMinorTick(l,n){let x=this.minorTicks;x[l]||(x[l]=new at(this,l,"minor")),n&&x[l].isNew&&x[l].render(null,!0),x[l].render(null,!1,1)}renderTick(l,n,x){let D=this.isLinked,i=this.ticks;(!D||l>=this.min&&l<=this.max||this.grid&&this.grid.isColumn)&&(i[l]||(i[l]=new at(this,l)),x&&i[l].isNew&&i[l].render(n,!0,-1),i[l].render(n))}render(){let l,n,x=this,D=x.chart,i=x.logarithmic,p=D.renderer,c=x.options,w=x.isLinked,C=x.tickPositions,z=x.axisTitle,G=x.ticks,U=x.minorTicks,Z=x.alternateBands,rt=c.stackLabels,it=c.alternateGridColor,N=c.crossing,E=x.tickmarkOffset,W=x.axisLine,H=x.showAxis,K=$(p.globalAnimation);if(x.labelEdge.length=0,x.overlap=!1,[G,U,Z].forEach(function(tt){y(tt,function(_){_.isActive=!1})}),t(N)){let tt=this.isXAxis?D.yAxis[0]:D.xAxis[0],_=[1,-1,-1,1][this.side];if(tt){let st=tt.toPixels(N,!0);x.horiz&&(st=tt.len-st),x.offset=_*st}}if(x.hasData()||w){let tt=x.chart.hasRendered&&x.old&&t(x.old.min);x.minorTickInterval&&!x.categories&&x.getMinorTickPositions().forEach(function(_){x.renderMinorTick(_,tt)}),C.length&&(C.forEach(function(_,st){x.renderTick(_,st,tt)}),E&&(x.min===0||x.single)&&(G[-1]||(G[-1]=new at(x,-1,null,!0)),G[-1].render(-1))),it&&C.forEach(function(_,st){n=C[st+1]!==void 0?C[st+1]+E:x.max-E,st%2==0&&_<x.max&&n<=x.max+(D.polar?-E:E)&&(Z[_]||(Z[_]=new nt.PlotLineOrBand(x,{})),l=_+E,Z[_].options={from:i?i.lin2log(l):l,to:i?i.lin2log(n):n,color:it,className:"highcharts-alternate-grid"},Z[_].render(),Z[_].isActive=!0)}),x._addedPlotLB||(x._addedPlotLB=!0,(c.plotLines||[]).concat(c.plotBands||[]).forEach(function(_){x.addPlotBandOrLine(_)}))}[G,U,Z].forEach(function(tt){let _=[],st=K.duration;y(tt,function(ot,dt){ot.isActive||(ot.render(dt,!1,0),ot.isActive=!1,_.push(dt))}),L(function(){let ot=_.length;for(;ot--;)tt[_[ot]]&&!tt[_[ot]].isActive&&(tt[_[ot]].destroy(),delete tt[_[ot]])},tt!==Z&&D.hasRendered&&st?st:0)}),W&&(W[W.isPlaced?"animate":"attr"]({d:this.getLinePath(W.strokeWidth())}),W.isPlaced=!0,W[H?"show":"hide"](H)),z&&H&&(z[z.isNew?"attr":"animate"](x.getTitlePosition(z)),z.isNew=!1),rt&&rt.enabled&&x.stacking&&x.stacking.renderStackTotals(),x.old={len:x.len,max:x.max,min:x.min,transA:x.transA,userMax:x.userMax,userMin:x.userMin},x.isDirty=!1,r(this,"afterRender")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(l){l.render()})),this.series.forEach(function(l){l.isDirty=!0})}getKeepProps(){return this.keepProps||F.keepProps}destroy(l){let n=this,x=n.plotLinesAndBands,D=this.eventOptions;if(r(this,"destroy",{keepEvents:l}),l||X(n),[n.ticks,n.minorTicks,n.alternateBands].forEach(function(i){v(i)}),x){let i=x.length;for(;i--;)x[i].destroy()}for(let i in["axisLine","axisTitle","axisGroup","gridGroup","labelGroup","cross","scrollbar"].forEach(function(p){n[p]&&(n[p]=n[p].destroy())}),n.plotLinesAndBandsGroups)n.plotLinesAndBandsGroups[i]=n.plotLinesAndBandsGroups[i].destroy();y(n,function(i,p){n.getKeepProps().indexOf(p)===-1&&delete n[p]}),this.eventOptions=D}drawCrosshair(l,n){let x=this.crosshair,D=h(x&&x.snap,!0),i=this.chart,p,c,w,C=this.cross,z;if(r(this,"drawCrosshair",{e:l,point:n}),l||(l=this.cross&&this.cross.e),x&&(d(n)||!D)!==!1){if(D?d(n)&&(c=h(this.coll!=="colorAxis"?n.crosshairPos:null,this.isXAxis?n.plotX:this.len-n.plotY)):c=l&&(this.horiz?l.chartX-this.pos:this.len-l.chartY+this.pos),d(c)&&(z={value:n&&(this.isXAxis?n.x:h(n.stackY,n.y)),translatedValue:c},i.polar&&k(z,{isCrosshair:!0,chartX:l&&l.chartX,chartY:l&&l.chartY,point:n}),p=this.getPlotLinePath(z)||null),!d(p)){this.hideCrosshair();return}w=this.categories&&!this.isRadial,C||(this.cross=C=i.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(w?"category ":"thin ")+(x.className||"")).attr({zIndex:h(x.zIndex,2)}).add(),!i.styledMode&&(C.attr({stroke:x.color||(w?ht.parse("#ccd3ff").setOpacity(.25).get():"#cccccc"),"stroke-width":h(x.width,1)}).css({"pointer-events":"none"}),x.dashStyle&&C.attr({dashstyle:x.dashStyle}))),C.show().attr({d:p}),w&&!x.width&&C.attr({"stroke-width":this.transA}),this.cross.e=l}else this.hideCrosshair();r(this,"afterDrawCrosshair",{e:l,point:n})}hideCrosshair(){this.cross&&this.cross.hide(),r(this,"afterHideCrosshair")}update(l,n){let x=this.chart;l=a(this.userOptions,l),this.destroy(!0),this.init(x,l),x.isDirtyBox=!0,h(n,!0)&&x.redraw()}remove(l){let n=this.chart,x=this.coll,D=this.series,i=D.length;for(;i--;)D[i]&&D[i].remove(!1);B(n.axes,this),B(n[x]||[],this),n.orderItems(x),this.destroy(),n.isDirtyBox=!0,h(l,!0)&&n.redraw()}setTitle(l,n){this.update({title:l},n)}setCategories(l,n){this.update({categories:l},n)}}return F.keepProps=["coll","extKey","hcEvents","len","names","series","userMax","userMin"],F}),yt(Y,"Core/Axis/DateTimeAxis.js",[Y["Core/Utilities.js"]],function(J){var et;let{addEvent:ht,getMagnitude:ct,normalizeTickInterval:lt,timeUnits:nt}=J;return function(at){function q(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function $(){if(this.type!=="datetime"){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new V(this))}at.compose=function(M){return M.keepProps.includes("dateTime")||(M.keepProps.push("dateTime"),M.prototype.getTimeTicks=q,ht(M,"afterSetType",$)),M};class V{constructor(R){this.axis=R}normalizeTimeTickInterval(R,j){let P=j||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],m=P[P.length-1],b=nt[m[0]],S=m[1],A;for(A=0;A<P.length&&(b=nt[(m=P[A])[0]],S=m[1],!P[A+1]||!(R<=(b*S[S.length-1]+nt[P[A+1][0]])/2));A++);b===nt.year&&R<5*b&&(S=[1,2,5]);let d=lt(R/b,S,m[0]==="year"?Math.max(ct(R/b),1):1);return{unitRange:b,count:d,unitName:m[0]}}getXDateFormat(R,j){let{axis:P}=this,m=P.chart.time;return P.closestPointRange?m.getDateFormat(P.closestPointRange,R,P.options.startOfWeek,j)||m.resolveDTLFormat(j.year).main:m.resolveDTLFormat(j.day).main}}at.Additions=V}(et||(et={})),et}),yt(Y,"Core/Axis/LogarithmicAxis.js",[Y["Core/Utilities.js"]],function(J){var et;let{addEvent:ht,normalizeTickInterval:ct,pick:lt}=J;return function(nt){function at(){this.type!=="logarithmic"?this.logarithmic=void 0:this.logarithmic??(this.logarithmic=new $(this))}function q(){let V=this.logarithmic;V&&(this.lin2val=function(M){return V.lin2log(M)},this.val2lin=function(M){return V.log2lin(M)})}nt.compose=function(V){return V.keepProps.includes("logarithmic")||(V.keepProps.push("logarithmic"),ht(V,"afterSetType",at),ht(V,"afterInit",q)),V};class ${constructor(M){this.axis=M}getLogTickPositions(M,R,j,P){let m=this.axis,b=m.len,S=m.options,A=[];if(P||(this.minorAutoInterval=void 0),M>=.5)M=Math.round(M),A=m.getLinearTickPositions(M,R,j);else if(M>=.08){let d,v,B,O,k,r,u,s=Math.floor(R);for(d=M>.3?[1,2,4]:M>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],v=s;v<j+1&&!u;v++)for(B=0,O=d.length;B<O&&!u;B++)(k=this.log2lin(this.lin2log(v)*d[B]))>R&&(!P||r<=j)&&r!==void 0&&A.push(r),r>j&&(u=!0),r=k}else{let d=this.lin2log(R),v=this.lin2log(j),B=P?m.getMinorTickInterval():S.tickInterval,O=S.tickPixelInterval/(P?5:1),k=P?b/m.tickPositions.length:b;M=ct(M=lt(B==="auto"?null:B,this.minorAutoInterval,(v-d)*O/(k||1))),A=m.getLinearTickPositions(M,d,v).map(this.log2lin),P||(this.minorAutoInterval=M/5)}return P||(m.tickInterval=M),A}lin2log(M){return Math.pow(10,M)}log2lin(M){return Math.log(M)/Math.LN10}}nt.Additions=$}(et||(et={})),et}),yt(Y,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[Y["Core/Utilities.js"]],function(J){var et;let{erase:ht,extend:ct,isNumber:lt}=J;return function(nt){let at;function q(m){return this.addPlotBandOrLine(m,"plotBands")}function $(m,b){let S=this.userOptions,A=new at(this,m);if(this.visible&&(A=A.render()),A){if(this._addedPlotLB||(this._addedPlotLB=!0,(S.plotLines||[]).concat(S.plotBands||[]).forEach(d=>{this.addPlotBandOrLine(d)})),b){let d=S[b]||[];d.push(m),S[b]=d}this.plotLinesAndBands.push(A)}return A}function V(m){return this.addPlotBandOrLine(m,"plotLines")}function M(m,b,S){S=S||this.options;let A=this.getPlotLinePath({value:b,force:!0,acrossPanes:S.acrossPanes}),d=[],v=this.horiz,B=!lt(this.min)||!lt(this.max)||m<this.min&&b<this.min||m>this.max&&b>this.max,O=this.getPlotLinePath({value:m,force:!0,acrossPanes:S.acrossPanes}),k,r=1,u;if(O&&A)for(B&&(u=O.toString()===A.toString(),r=0),k=0;k<O.length;k+=2){let s=O[k],e=O[k+1],t=A[k],o=A[k+1];(s[0]==="M"||s[0]==="L")&&(e[0]==="M"||e[0]==="L")&&(t[0]==="M"||t[0]==="L")&&(o[0]==="M"||o[0]==="L")&&(v&&t[1]===s[1]?(t[1]+=r,o[1]+=r):v||t[2]!==s[2]||(t[2]+=r,o[2]+=r),d.push(["M",s[1],s[2]],["L",e[1],e[2]],["L",o[1],o[2]],["L",t[1],t[2]],["Z"])),d.isFlat=u}return d}function R(m){this.removePlotBandOrLine(m)}function j(m){let b=this.plotLinesAndBands,S=this.options,A=this.userOptions;if(b){let d=b.length;for(;d--;)b[d].id===m&&b[d].destroy();[S.plotLines||[],A.plotLines||[],S.plotBands||[],A.plotBands||[]].forEach(function(v){for(d=v.length;d--;)(v[d]||{}).id===m&&ht(v,v[d])})}}function P(m){this.removePlotBandOrLine(m)}nt.compose=function(m,b){let S=b.prototype;return S.addPlotBand||(at=m,ct(S,{addPlotBand:q,addPlotLine:V,addPlotBandOrLine:$,getPlotBandPath:M,removePlotBand:R,removePlotLine:P,removePlotBandOrLine:j})),b}}(et||(et={})),et}),yt(Y,"Core/Axis/PlotLineOrBand/PlotLineOrBand.js",[Y["Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js"],Y["Core/Utilities.js"]],function(J,et){let{addEvent:ht,arrayMax:ct,arrayMin:lt,defined:nt,destroyObjectProperties:at,erase:q,fireEvent:$,merge:V,objectEach:M,pick:R}=et;class j{static compose(m,b){return ht(m,"afterInit",function(){this.labelCollectors.push(()=>{var A;let S=[];for(let d of this.axes)for(let{label:v,options:B}of d.plotLinesAndBands)v&&!((A=B==null?void 0:B.label)!=null&&A.allowOverlap)&&S.push(v);return S})}),J.compose(j,b)}constructor(m,b){this.axis=m,this.options=b,this.id=b.id}render(){$(this,"render");let{axis:m,options:b}=this,{horiz:S,logarithmic:A}=m,{color:d,events:v,zIndex:B=0}=b,O={},k=m.chart.renderer,r=b.to,u=b.from,s=b.value,e=b.borderWidth,t=b.label,{label:o,svgElem:a}=this,f=[],y,h=nt(u)&&nt(r),T=nt(s),X=!a,g={class:"highcharts-plot-"+(h?"band ":"line ")+(b.className||"")},L=h?"bands":"lines";if(!m.chart.styledMode&&(T?(g.stroke=d||"#999999",g["stroke-width"]=R(b.width,1),b.dashStyle&&(g.dashstyle=b.dashStyle)):h&&(g.fill=d||"#e6e9ff",e&&(g.stroke=b.borderColor,g["stroke-width"]=e))),O.zIndex=B,L+="-"+B,(y=m.plotLinesAndBandsGroups[L])||(m.plotLinesAndBandsGroups[L]=y=k.g("plot-"+L).attr(O).add()),a||(this.svgElem=a=k.path().attr(g).add(y)),nt(s))f=m.getPlotLinePath({value:(A==null?void 0:A.log2lin(s))??s,lineWidth:a.strokeWidth(),acrossPanes:b.acrossPanes});else{if(!(nt(u)&&nt(r)))return;f=m.getPlotBandPath((A==null?void 0:A.log2lin(u))??u,(A==null?void 0:A.log2lin(r))??r,b)}return!this.eventsAdded&&v&&(M(v,(I,F)=>{a==null||a.on(F,Q=>{v[F].apply(this,[Q])})}),this.eventsAdded=!0),(X||!a.d)&&(f!=null&&f.length)?a.attr({d:f}):a&&(f?(a.show(),a.animate({d:f})):a.d&&(a.hide(),o&&(this.label=o=o.destroy()))),t&&(nt(t.text)||nt(t.formatter))&&(f!=null&&f.length)&&m.width>0&&m.height>0&&!f.isFlat?(t=V({align:S&&h?"center":void 0,x:S?!h&&4:10,verticalAlign:!S&&h?"middle":void 0,y:S?h?16:10:h?6:-4,rotation:S&&!h?90:0,...h?{inside:!0}:{}},t),this.renderLabel(t,f,h,B)):o&&o.hide(),this}renderLabel(m,b,S,A){var t;let d=this.axis,v=d.chart.renderer,B=m.inside,O=this.label;O||(this.label=O=v.text(this.getLabelText(m),0,0,m.useHTML).attr({align:m.textAlign||m.align,rotation:m.rotation,class:"highcharts-plot-"+(S?"band":"line")+"-label "+(m.className||""),zIndex:A}),d.chart.styledMode||O.css(V({fontSize:"0.8em",textOverflow:S&&!B?"":"ellipsis"},m.style)),O.add());let k=b.xBounds||[b[0][1],b[1][1],S?b[2][1]:b[0][1]],r=b.yBounds||[b[0][2],b[1][2],S?b[2][2]:b[0][2]],u=lt(k),s=lt(r),e=ct(k)-u;O.align(m,!1,{x:u,y:s,width:e,height:ct(r)-s}),(!O.alignValue||O.alignValue==="left"||nt(B))&&O.css({width:(((t=m.style)==null?void 0:t.width)||(S&&B?e:O.rotation===90?d.height-(O.alignAttr.y-d.top):(m.clip?d.width:d.chart.chartWidth)-(O.alignAttr.x-d.left)))+"px"}),O.show(!0)}getLabelText(m){return nt(m.formatter)?m.formatter.call(this):m.text}destroy(){q(this.axis.plotLinesAndBands,this),delete this.axis,at(this)}}return j}),yt(Y,"Core/Tooltip.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Templating.js"],Y["Core/Globals.js"],Y["Core/Renderer/RendererUtilities.js"],Y["Core/Renderer/RendererRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt,nt){var at;let{animObject:q}=J,{format:$}=et,{composed:V,doc:M,isSafari:R}=ht,{distribute:j}=ct,{addEvent:P,clamp:m,css:b,discardElement:S,extend:A,fireEvent:d,isArray:v,isNumber:B,isString:O,merge:k,pick:r,pushUnique:u,splat:s,syncTimeout:e}=nt;class t{constructor(a,f,y){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=a,this.init(a,f),this.pointer=y}bodyFormatter(a){return a.map(function(f){let y=f.series.tooltipOptions;return(y[(f.point.formatPrefix||"point")+"Formatter"]||f.point.tooltipFormatter).call(f.point,y[(f.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(a){this.chart.series.forEach(function(f){let y=f&&f.tt;y&&(!y.isActive||a?f.tt=y.destroy():y.isActive=!1)})}defaultFormatter(a){let f,y=this.points||s(this);return(f=(f=[a.tooltipFooterHeaderFormatter(y[0])]).concat(a.bodyFormatter(y))).push(a.tooltipFooterHeaderFormatter(y[0],!0)),f}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),S(this.container)),nt.clearTimeout(this.hideTimer)}getAnchor(a,f){let y,{chart:h,pointer:T}=this,X=h.inverted,g=h.plotTop,L=h.plotLeft;if((a=s(a))[0].series&&a[0].series.yAxis&&!a[0].series.yAxis.options.reversedStacks&&(a=a.slice().reverse()),this.followPointer&&f)f.chartX===void 0&&(f=T.normalize(f)),y=[f.chartX-L,f.chartY-g];else if(a[0].tooltipPos)y=a[0].tooltipPos;else{let I=0,F=0;a.forEach(function(Q){let l=Q.pos(!0);l&&(I+=l[0],F+=l[1])}),I/=a.length,F/=a.length,this.shared&&a.length>1&&f&&(X?I=f.chartX:F=f.chartY),y=[I-L,F-g]}return y.map(Math.round)}getClassName(a,f,y){let h=this.options,T=a.series,X=T.options;return[h.className,"highcharts-label",y&&"highcharts-tooltip-header",f?"highcharts-tooltip-box":"highcharts-tooltip",!y&&"highcharts-color-"+r(a.colorIndex,T.colorIndex),X&&X.className].filter(O).join(" ")}getLabel({anchorX:a,anchorY:f}={anchorX:0,anchorY:0}){let y=this,h=this.chart.styledMode,T=this.options,X=this.split&&this.allowShared,g=this.container,L=this.chart.renderer;if(this.label){let I=!this.label.hasClass("highcharts-label");(!X&&I||X&&!I)&&this.destroy()}if(!this.label){if(this.outside){let I=this.chart.options.chart.style,F=lt.getRendererType();this.container=g=ht.doc.createElement("div"),g.className="highcharts-tooltip-container",b(g,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(I&&I.zIndex||0)+3)}),this.renderer=L=new F(g,0,0,I,void 0,void 0,L.styledMode)}if(X?this.label=L.g("tooltip"):(this.label=L.label("",a,f,T.shape,void 0,void 0,T.useHTML,void 0,"tooltip").attr({padding:T.padding,r:T.borderRadius}),h||this.label.attr({fill:T.backgroundColor,"stroke-width":T.borderWidth||0}).css(T.style).css({pointerEvents:T.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),y.outside){let I=this.label;[I.xSetter,I.ySetter].forEach((F,Q)=>{I[Q?"ySetter":"xSetter"]=l=>{F.call(I,y.distance),I[Q?"y":"x"]=l,g&&(g.style[Q?"top":"left"]=`${l}px`)}})}this.label.attr({zIndex:8}).shadow(T.shadow).add()}return g&&!g.parentElement&&ht.doc.body.appendChild(g),this.label}getPlayingField(){let{body:a,documentElement:f}=M,{chart:y,distance:h,outside:T}=this;return{width:T?Math.max(a.scrollWidth,f.scrollWidth,a.offsetWidth,f.offsetWidth,f.clientWidth)-2*h:y.chartWidth,height:T?Math.max(a.scrollHeight,f.scrollHeight,a.offsetHeight,f.offsetHeight,f.clientHeight):y.chartHeight}}getPosition(a,f,y){var K,tt;let{distance:h,chart:T,outside:X,pointer:g}=this,{inverted:L,plotLeft:I,plotTop:F,polar:Q}=T,{plotX:l=0,plotY:n=0}=y,x={},D=L&&y.h||0,{height:i,width:p}=this.getPlayingField(),c=g.getChartPosition(),w=_=>_*c.scaleX,C=_=>_*c.scaleY,z=_=>{let st=_==="x";return[_,st?p:i,st?a:f].concat(X?[st?w(a):C(f),st?c.left-h+w(l+I):c.top-h+C(n+F),0,st?p:i]:[st?a:f,st?l+I:n+F,st?I:F,st?I+T.plotWidth:F+T.plotHeight])},G=z("y"),U=z("x"),Z,rt=!!y.negative;!Q&&((tt=(K=T.hoverSeries)==null?void 0:K.yAxis)!=null&&tt.reversed)&&(rt=!rt);let it=!this.followPointer&&r(y.ttBelow,!Q&&!L===rt),N=function(_,st,ot,dt,pt,ut,mt){let xt=X?_==="y"?C(h):w(h):h,ft=(ot-dt)/2,gt=dt<pt-h,vt=pt+h+dt<st,bt=pt-xt-ot+ft,kt=pt+xt-ft;if(it&&vt)x[_]=kt;else if(!it&>)x[_]=bt;else if(gt)x[_]=Math.min(mt-dt,bt-D<0?bt:bt-D);else{if(!vt)return!1;x[_]=Math.max(ut,kt+D+ot>st?kt:kt+D)}},E=function(_,st,ot,dt,pt){if(pt<h||pt>st-h)return!1;pt<ot/2?x[_]=1:pt>st-dt/2?x[_]=st-dt-2:x[_]=pt-ot/2},W=function(_){[G,U]=[U,G],Z=_},H=()=>{N.apply(0,G)!==!1?E.apply(0,U)!==!1||Z||(W(!0),H()):Z?x.x=x.y=0:(W(!0),H())};return(L&&!Q||this.len>1)&&W(),H(),x}hide(a){let f=this;nt.clearTimeout(this.hideTimer),a=r(a,this.options.hideDelay),this.isHidden||(this.hideTimer=e(function(){let y=f.getLabel();f.getLabel().animate({opacity:0},{duration:a&&150,complete:()=>{y.hide(),f.container&&f.container.remove()}}),f.isHidden=!0},a))}init(a,f){this.chart=a,this.options=f,this.crosshairs=[],this.isHidden=!0,this.split=f.split&&!a.inverted&&!a.polar,this.shared=f.shared||this.split,this.outside=r(f.outside,!!(a.scrollablePixelsX||a.scrollablePixelsY))}shouldStickOnContact(a){return!!(!this.followPointer&&this.options.stickOnContact&&(!a||this.pointer.inClass(a.target,"highcharts-tooltip")))}move(a,f,y,h){let T=this,X=q(!T.isHidden&&T.options.animation),g=T.followPointer||(T.len||0)>1,L={x:a,y:f};g||(L.anchorX=y,L.anchorY=h),X.step=()=>T.drawTracker(),T.getLabel().animate(L,X)}refresh(a,f){let{chart:y,options:h,pointer:T,shared:X}=this,g=s(a),L=g[0],I=[],F=h.format,Q=h.formatter||this.defaultFormatter,l=y.styledMode,n={},x=this.allowShared;if(!h.enabled||!L.series)return;nt.clearTimeout(this.hideTimer),this.allowShared=!(!v(a)&&a.series&&a.series.noSharedTooltip),x=x&&!this.allowShared,this.followPointer=!this.split&&L.series.tooltipOptions.followPointer;let D=this.getAnchor(a,f),i=D[0],p=D[1];X&&this.allowShared?(T.applyInactiveState(g),g.forEach(function(C){C.setState("hover"),I.push(C.getLabelConfig())}),(n=L.getLabelConfig()).points=I):n=L.getLabelConfig(),this.len=I.length;let c=O(F)?$(F,n,y):Q.call(n,this),w=L.series;if(this.distance=r(w.tooltipOptions.distance,16),c===!1)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(c,g);else{let C=i,z=p;if(f&&T.isDirectTouch&&(C=f.chartX-y.plotLeft,z=f.chartY-y.plotTop),y.polar||w.options.clip===!1||g.some(G=>T.isDirectTouch||G.series.shouldShowTooltip(C,z))){let G=this.getLabel(x&&this.tt||{});(!h.style.width||l)&&G.css({width:(this.outside?this.getPlayingField():y.spacingBox).width+"px"}),G.attr({class:this.getClassName(L),text:c&&c.join?c.join(""):c}),this.outside&&G.attr({x:m(G.x||0,0,this.getPlayingField().width-(G.width||0))}),l||G.attr({stroke:h.borderColor||L.color||w.color||"#666666"}),this.updatePosition({plotX:i,plotY:p,negative:L.negative,ttBelow:L.ttBelow,h:D[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}d(this,"refresh")}renderSplit(a,f){var st;let y=this,{chart:h,chart:{chartWidth:T,chartHeight:X,plotHeight:g,plotLeft:L,plotTop:I,scrollablePixelsY:F=0,scrollablePixelsX:Q,styledMode:l},distance:n,options:x,options:{positioner:D},pointer:i}=y,{scrollLeft:p=0,scrollTop:c=0}=((st=h.scrollablePlotArea)==null?void 0:st.scrollingContainer)||{},w=y.outside&&typeof Q!="number"?M.documentElement.getBoundingClientRect():{left:p,right:p+T,top:c,bottom:c+X},C=y.getLabel(),z=this.renderer||h.renderer,G=!!(h.xAxis[0]&&h.xAxis[0].opposite),{left:U,top:Z}=i.getChartPosition(),rt=I+c,it=0,N=g-F;function E(ot,dt,pt,ut,mt=!0){let xt,ft;return pt?(xt=G?0:N,ft=m(ot-ut/2,w.left,w.right-ut-(y.outside?U:0))):(xt=dt-rt,ft=m(ft=mt?ot-ut-n:ot+n,mt?ft:w.left,w.right)),{x:ft,y:xt}}O(a)&&(a=[!1,a]);let W=a.slice(0,f.length+1).reduce(function(ot,dt,pt){if(dt!==!1&&dt!==""){let ut=f[pt-1]||{isHeader:!0,plotX:f[0].plotX,plotY:g,series:{}},mt=ut.isHeader,xt=mt?y:ut.series,ft=xt.tt=function(Ct,St,At){let wt=Ct,{isHeader:Lt,series:jt}=St;if(!wt){let Et={padding:x.padding,r:x.borderRadius};l||(Et.fill=x.backgroundColor,Et["stroke-width"]=x.borderWidth??1),wt=z.label("",0,0,x[Lt?"headerShape":"shape"],void 0,void 0,x.useHTML).addClass(y.getClassName(St,!0,Lt)).attr(Et).add(C)}return wt.isActive=!0,wt.attr({text:At}),l||wt.css(x.style).attr({stroke:x.borderColor||St.color||jt.color||"#333333"}),wt}(xt.tt,ut,dt.toString()),gt=ft.getBBox(),vt=gt.width+ft.strokeWidth();mt&&(it=gt.height,N+=it,G&&(rt-=it));let{anchorX:bt,anchorY:kt}=function(Ct){let St,At,{isHeader:wt,plotX:Lt=0,plotY:jt=0,series:Et}=Ct;if(wt)St=Math.max(L+Lt,L),At=I+g/2;else{let{xAxis:Bt,yAxis:Tt}=Et;St=Bt.pos+m(Lt,-n,Bt.len+n),Et.shouldShowTooltip(0,Tt.pos-I+jt,{ignoreX:!0})&&(At=Tt.pos+jt)}return{anchorX:St=m(St,w.left-n,w.right+n),anchorY:At}}(ut);if(typeof kt=="number"){let Ct=gt.height+1,St=D?D.call(y,vt,Ct,ut):E(bt,kt,mt,vt);ot.push({align:D?0:void 0,anchorX:bt,anchorY:kt,boxWidth:vt,point:ut,rank:r(St.rank,mt?1:0),size:Ct,target:St.y,tt:ft,x:St.x})}else ft.isActive=!1}return ot},[]);!D&&W.some(ot=>{let{outside:dt}=y,pt=(dt?U:0)+ot.anchorX;return pt<w.left&&pt+ot.boxWidth<w.right||pt<U-w.left+ot.boxWidth&&w.right-pt>pt})&&(W=W.map(ot=>{let{x:dt,y:pt}=E(ot.anchorX,ot.anchorY,ot.point.isHeader,ot.boxWidth,!1);return A(ot,{target:pt,x:dt})})),y.cleanSplit(),j(W,N);let H={left:U,right:U};W.forEach(function(ot){let{x:dt,boxWidth:pt,isHeader:ut}=ot;!ut&&(y.outside&&U+dt<H.left&&(H.left=U+dt),!ut&&y.outside&&H.left+pt>H.right&&(H.right=U+dt))}),W.forEach(function(ot){let{x:dt,anchorX:pt,anchorY:ut,pos:mt,point:{isHeader:xt}}=ot,ft={visibility:mt===void 0?"hidden":"inherit",x:dt,y:(mt||0)+rt,anchorX:pt,anchorY:ut};if(y.outside&&dt<pt){let gt=U-H.left;gt>0&&(xt||(ft.x=dt+gt,ft.anchorX=pt+gt),xt&&(ft.x=(H.right-H.left)/2,ft.anchorX=pt+gt))}ot.tt.attr(ft)});let{container:K,outside:tt,renderer:_}=y;if(tt&&K&&_){let{width:ot,height:dt,x:pt,y:ut}=C.getBBox();_.setSize(ot+pt,dt+ut,!1),K.style.left=H.left+"px",K.style.top=Z+"px"}R&&C.attr({opacity:C.opacity===1?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let a=this.chart,f=this.label,y=this.shared?a.hoverPoints:a.hoverPoint;if(!f||!y)return;let h={x:0,y:0,width:0,height:0},T=this.getAnchor(y),X=f.getBBox();T[0]+=a.plotLeft-(f.translateX||0),T[1]+=a.plotTop-(f.translateY||0),h.x=Math.min(0,T[0]),h.y=Math.min(0,T[1]),h.width=T[0]<0?Math.max(Math.abs(T[0]),X.width-T[0]):Math.max(Math.abs(T[0]),X.width),h.height=T[1]<0?Math.max(Math.abs(T[1]),X.height-Math.abs(T[1])):Math.max(Math.abs(T[1]),X.height),this.tracker?this.tracker.attr(h):(this.tracker=f.renderer.rect(h).addClass("highcharts-tracker").add(f),a.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(a){return a.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(a,f){let y=a.series,h=y.tooltipOptions,T=y.xAxis,X=T&&T.dateTime,g={isFooter:f,labelConfig:a},L=h.xDateFormat,I=h[f?"footerFormat":"headerFormat"];return d(this,"headerFormatter",g,function(F){X&&!L&&B(a.key)&&(L=X.getXDateFormat(a.key,h.dateTimeLabelFormats)),X&&L&&(a.point&&a.point.tooltipDateKeys||["key"]).forEach(function(Q){I=I.replace("{point."+Q+"}","{point."+Q+":"+L+"}")}),y.chart.styledMode&&(I=this.styledModeFormat(I)),F.text=$(I,{point:a,series:y},this.chart)}),g.text}update(a){this.destroy(),this.init(this.chart,k(!0,this.options,a))}updatePosition(a){let{chart:f,container:y,distance:h,options:T,pointer:X,renderer:g}=this,{height:L=0,width:I=0}=this.getLabel(),{left:F,top:Q,scaleX:l,scaleY:n}=X.getChartPosition(),x=(T.positioner||this.getPosition).call(this,I,L,a),D=(a.plotX||0)+f.plotLeft,i=(a.plotY||0)+f.plotTop,p;g&&y&&(T.positioner&&(x.x+=F-h,x.y+=Q-h),p=(T.borderWidth||0)+2*h+2,g.setSize(I+p,L+p,!1),(l!==1||n!==1)&&(b(y,{transform:`scale(${l}, ${n})`}),D*=l,i*=n),D+=F-x.x,i+=Q-x.y),this.move(Math.round(x.x),Math.round(x.y||0),D,i)}}return(at=t||(t={})).compose=function(o){u(V,"Core.Tooltip")&&P(o,"afterInit",function(){let a=this.chart;a.options.tooltip&&(a.tooltip=new at(a,a.options.tooltip,this))})},t}),yt(Y,"Core/Series/Point.js",[Y["Core/Renderer/HTML/AST.js"],Y["Core/Animation/AnimationUtilities.js"],Y["Core/Defaults.js"],Y["Core/Templating.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt){let{animObject:nt}=et,{defaultOptions:at}=ht,{format:q}=ct,{addEvent:$,crisp:V,erase:M,extend:R,fireEvent:j,getNestedProperty:P,isArray:m,isFunction:b,isNumber:S,isObject:A,merge:d,pick:v,syncTimeout:B,removeEvent:O,uniqueKey:k}=lt;class r{animateBeforeDestroy(){let s=this,e={x:s.startXPos,opacity:0},t=s.getGraphicalProps();t.singular.forEach(function(o){s[o]=s[o].animate(o==="dataLabel"?{x:s[o].startXPos,y:s[o].startYPos,opacity:0}:e)}),t.plural.forEach(function(o){s[o].forEach(function(a){a.element&&a.animate(R({x:s.startXPos},a.startYPos?{x:a.startXPos,y:a.startYPos}:{}))})})}applyOptions(s,e){let t=this.series,o=t.options.pointValKey||t.pointValKey;return R(this,s=r.prototype.optionsToObject.call(this,s)),this.options=this.options?R(this.options,s):s,s.group&&delete this.group,s.dataLabels&&delete this.dataLabels,o&&(this.y=r.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&e===void 0&&t.xAxis&&t.xAxis.hasNames&&(this.x=t.xAxis.nameToX(this)),this.x===void 0&&t?this.x=e??t.autoIncrement():S(s.x)&&t.options.relativeXValue&&(this.x=t.autoIncrement(s.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let s=this,e=s.series,t=e.chart,o=e.options.dataSorting,a=t.hoverPoints,f=nt(s.series.chart.renderer.globalAnimation),y=()=>{for(let h in(s.graphic||s.graphics||s.dataLabel||s.dataLabels)&&(O(s),s.destroyElements()),s)delete s[h]};s.legendItem&&t.legend.destroyItem(s),a&&(s.setState(),M(a,s),a.length||(t.hoverPoints=null)),s===t.hoverPoint&&s.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),B(y,f.duration)):y(),t.pointCount--}this.destroyed=!0}destroyElements(s){let e=this,t=e.getGraphicalProps(s);t.singular.forEach(function(o){e[o]=e[o].destroy()}),t.plural.forEach(function(o){e[o].forEach(function(a){a&&a.element&&a.destroy()}),delete e[o]})}firePointEvent(s,e,t){let o=this,a=this.series.options;o.manageEvent(s),s==="click"&&a.allowPointSelect&&(t=function(f){!o.destroyed&&o.select&&o.select(null,f.ctrlKey||f.metaKey||f.shiftKey)}),j(o,s,e,t)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(this.colorIndex!==void 0?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(s){let e,t,o=this,a=[],f={singular:[],plural:[]};for((s=s||{graphic:1,dataLabel:1}).graphic&&a.push("graphic","connector"),s.dataLabel&&a.push("dataLabel","dataLabelPath","dataLabelUpper"),t=a.length;t--;)o[e=a[t]]&&f.singular.push(e);return["graphic","dataLabel"].forEach(function(y){let h=y+"s";s[y]&&o[h]&&f.plural.push(h)}),f}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(s){return s?s.indexOf("custom.")===0?P(s,this.options):this[s]:void 0}getZone(){let s=this.series,e=s.zones,t=s.zoneAxis||"y",o,a=0;for(o=e[0];this[t]>=o.value;)o=e[++a];return this.nonZonedColor||(this.nonZonedColor=this.color),o&&o.color&&!this.options.color?this.color=o.color:this.color=this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(s,e,t){this.formatPrefix="point",this.visible=!0,this.series=s,this.applyOptions(e,t),this.id??(this.id=k()),this.resolveColor(),s.chart.pointCount++,j(this,"afterInit")}isValid(){return(S(this.x)||this.x instanceof Date)&&S(this.y)}optionsToObject(s){let e=this.series,t=e.options.keys,o=t||e.pointArrayMap||["y"],a=o.length,f={},y,h=0,T=0;if(S(s)||s===null)f[o[0]]=s;else if(m(s))for(!t&&s.length>a&&((y=typeof s[0])=="string"?f.name=s[0]:y==="number"&&(f.x=s[0]),h++);T<a;)t&&s[h]===void 0||(o[T].indexOf(".")>0?r.prototype.setNestedProperty(f,s[h],o[T]):f[o[T]]=s[h]),h++,T++;else typeof s=="object"&&(f=s,s.dataLabels&&(e.hasDataLabels=()=>!0),s.marker&&(e._hasPointMarkers=!0));return f}pos(s,e=this.plotY){if(!this.destroyed){let{plotX:t,series:o}=this,{chart:a,xAxis:f,yAxis:y}=o,h=0,T=0;if(S(t)&&S(e))return s&&(h=f?f.pos:a.plotLeft,T=y?y.pos:a.plotTop),a.inverted&&f&&y?[y.len-e+T,f.len-t+h]:[t+h,e+T]}}resolveColor(){let s=this.series,e=s.chart.options.chart,t=s.chart.styledMode,o,a,f=e.colorCount,y;delete this.nonZonedColor,s.options.colorByPoint?(t||(o=(a=s.options.colors||s.chart.options.colors)[s.colorCounter],f=a.length),y=s.colorCounter,s.colorCounter++,s.colorCounter===f&&(s.colorCounter=0)):(t||(o=s.color),y=s.colorIndex),this.colorIndex=v(this.options.colorIndex,y),this.color=v(this.options.color,o)}setNestedProperty(s,e,t){return t.split(".").reduce(function(o,a,f,y){let h=y.length-1===f;return o[a]=h?e:A(o[a],!0)?o[a]:{},o[a]},s),s}shouldDraw(){return!this.isNull}tooltipFormatter(s){let e=this.series,t=e.tooltipOptions,o=v(t.valueDecimals,""),a=t.valuePrefix||"",f=t.valueSuffix||"";return e.chart.styledMode&&(s=e.chart.tooltip.styledModeFormat(s)),(e.pointArrayMap||["y"]).forEach(function(y){y="{point."+y,(a||f)&&(s=s.replace(RegExp(y+"}","g"),a+y+"}"+f)),s=s.replace(RegExp(y+"}","g"),y+":,."+o+"f}")}),q(s,{point:this,series:this.series},e.chart)}update(s,e,t,o){let a,f=this,y=f.series,h=f.graphic,T=y.chart,X=y.options;function g(){f.applyOptions(s);let L=h&&f.hasMockGraphic,I=f.y===null?!L:L;h&&I&&(f.graphic=h.destroy(),delete f.hasMockGraphic),A(s,!0)&&(h&&h.element&&s&&s.marker&&s.marker.symbol!==void 0&&(f.graphic=h.destroy()),s!=null&&s.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy())),a=f.index,y.updateParallelArrays(f,a),X.data[a]=A(X.data[a],!0)||A(s,!0)?f.options:v(s,X.data[a]),y.isDirty=y.isDirtyData=!0,!y.fixedBox&&y.hasCartesianSeries&&(T.isDirtyBox=!0),X.legendType==="point"&&(T.isDirtyLegend=!0),e&&T.redraw(t)}e=v(e,!0),o===!1?g():f.firePointEvent("update",{options:s},g)}remove(s,e){this.series.removePoint(this.series.data.indexOf(this),s,e)}select(s,e){let t=this,o=t.series,a=o.chart;s=v(s,!t.selected),this.selectedStaging=s,t.firePointEvent(s?"select":"unselect",{accumulate:e},function(){t.selected=t.options.selected=s,o.options.data[o.data.indexOf(t)]=t.options,t.setState(s&&"select"),e||a.getSelectedPoints().forEach(function(f){let y=f.series;f.selected&&f!==t&&(f.selected=f.options.selected=!1,y.options.data[y.data.indexOf(f)]=f.options,f.setState(a.hoverPoints&&y.options.inactiveOtherPoints?"inactive":""),f.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(s){let{inverted:e,pointer:t}=this.series.chart;t&&(s=s?t.normalize(s):t.getChartCoordinatesFromPoint(this,e),t.runPointActions(s,this))}onMouseOut(){let s=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(s.hoverPoints||[]).forEach(function(e){e.setState()}),s.hoverPoints=s.hoverPoint=null}manageEvent(s){var o,a,f,y,h,T;let e=d(this.series.options.point,this.options),t=(o=e.events)==null?void 0:o[s];b(t)&&(!((a=this.hcEvents)!=null&&a[s])||((y=(f=this.hcEvents)==null?void 0:f[s])==null?void 0:y.map(X=>X.fn).indexOf(t))===-1)?((h=this.importedUserEvent)==null||h.call(this),this.importedUserEvent=$(this,s,t)):this.importedUserEvent&&!t&&((T=this.hcEvents)!=null&&T[s])&&(O(this,s),delete this.hcEvents[s],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(s,e){var c;let t=this.series,o=this.state,a=t.options.states[s||"normal"]||{},f=at.plotOptions[t.type].marker&&t.options.marker,y=f&&f.enabled===!1,h=f&&f.states&&f.states[s||"normal"]||{},T=h.enabled===!1,X=this.marker||{},g=t.chart,L=f&&t.markerAttribs,I=t.halo,F,Q,l,n=t.stateMarkerGraphic,x;if((s=s||"")===this.state&&!e||this.selected&&s!=="select"||a.enabled===!1||s&&(T||y&&h.enabled===!1)||s&&X.states&&X.states[s]&&X.states[s].enabled===!1)return;if(this.state=s,L&&(F=t.markerAttribs(this,s)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),s&&this.graphic.addClass("highcharts-point-"+s),!g.styledMode){Q=t.pointAttribs(this,s),l=v(g.options.chart.animation,a.animation);let w=Q.opacity;t.options.inactiveOtherPoints&&S(w)&&(this.dataLabels||[]).forEach(function(C){C&&!C.hasClass("highcharts-data-label-hidden")&&(C.animate({opacity:w},l),C.connector&&C.connector.animate({opacity:w},l))}),this.graphic.animate(Q,l)}F&&this.graphic.animate(F,v(g.options.chart.animation,h.animation,f.animation)),n&&n.hide()}else s&&h&&(x=X.symbol||t.symbol,n&&n.currentSymbol!==x&&(n=n.destroy()),F&&(n?n[e?"animate":"attr"]({x:F.x,y:F.y}):x&&(t.stateMarkerGraphic=n=g.renderer.symbol(x,F.x,F.y,F.width,F.height).add(t.markerGroup),n.currentSymbol=x)),!g.styledMode&&n&&this.state!=="inactive"&&n.attr(t.pointAttribs(this,s))),n&&(n[s&&this.isInside?"show":"hide"](),n.element.point=this,n.addClass(this.getClassName(),!0));let D=a.halo,i=this.graphic||n,p=i&&i.visibility||"inherit";D&&D.size&&i&&p!=="hidden"&&!this.isCluster?(I||(t.halo=I=g.renderer.path().add(i.parentGroup)),I.show()[e?"animate":"attr"]({d:this.haloPath(D.size)}),I.attr({class:"highcharts-halo highcharts-color-"+v(this.colorIndex,t.colorIndex)+(this.className?" "+this.className:""),visibility:p,zIndex:-1}),I.point=this,g.styledMode||I.attr(R({fill:this.color||t.color,"fill-opacity":D.opacity},J.filterUserAttributes(D.attributes||{})))):(c=I==null?void 0:I.point)!=null&&c.haloPath&&!I.point.destroyed&&I.animate({d:I.point.haloPath(0)},null,I.hide),j(this,"afterSetState",{state:s})}haloPath(s){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(V(e[0],1)-s,e[1]-s,2*s,2*s):[]}}return r}),yt(Y,"Core/Pointer.js",[Y["Core/Color/Color.js"],Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et,ht){var ct;let{parse:lt}=J,{charts:nt,composed:at,isTouchDevice:q}=et,{addEvent:$,attr:V,css:M,extend:R,find:j,fireEvent:P,isNumber:m,isObject:b,objectEach:S,offset:A,pick:d,pushUnique:v,splat:B}=ht;class O{applyInactiveState(r){let u=[],s;(r||[]).forEach(function(e){s=e.series,u.push(s),s.linkedParent&&u.push(s.linkedParent),s.linkedSeries&&(u=u.concat(s.linkedSeries)),s.navigatorSeries&&u.push(s.navigatorSeries)}),this.chart.series.forEach(function(e){u.indexOf(e)===-1?e.setState("inactive",!0):e.options.inactiveOtherPoints&&e.setAllPointsToState("inactive")})}destroy(){let r=this;this.eventsToUnbind.forEach(u=>u()),this.eventsToUnbind=[],!et.chartCount&&(O.unbindDocumentMouseUp&&O.unbindDocumentMouseUp.forEach(u=>u()),O.unbindDocumentTouchEnd&&(O.unbindDocumentTouchEnd=O.unbindDocumentTouchEnd())),clearInterval(r.tooltipTimeout),S(r,function(u,s){r[s]=void 0})}getSelectionMarkerAttrs(r,u){let s={args:{chartX:r,chartY:u},attrs:{},shapeType:"rect"};return P(this,"getSelectionMarkerAttrs",s,e=>{let t,{chart:o,zoomHor:a,zoomVert:f}=this,{mouseDownX:y=0,mouseDownY:h=0}=o,T=e.attrs;T.x=o.plotLeft,T.y=o.plotTop,T.width=a?1:o.plotWidth,T.height=f?1:o.plotHeight,a&&(t=r-y,T.width=Math.max(1,Math.abs(t)),T.x=(t>0?0:t)+y),f&&(t=u-h,T.height=Math.max(1,Math.abs(t)),T.y=(t>0?0:t)+h)}),s}drag(r){let{chart:u}=this,{mouseDownX:s=0,mouseDownY:e=0}=u,{panning:t,panKey:o,selectionMarkerFill:a}=u.options.chart,f=u.plotLeft,y=u.plotTop,h=u.plotWidth,T=u.plotHeight,X=b(t)?t.enabled:t,g=o&&r[`${o}Key`],L=r.chartX,I=r.chartY,F,Q=this.selectionMarker;if((!Q||!Q.touch)&&(L<f?L=f:L>f+h&&(L=f+h),I<y?I=y:I>y+T&&(I=y+T),this.hasDragged=Math.sqrt(Math.pow(s-L,2)+Math.pow(e-I,2)),this.hasDragged>10)){F=u.isInsidePlot(s-f,e-y,{visiblePlotOnly:!0});let{shapeType:l,attrs:n}=this.getSelectionMarkerAttrs(L,I);(u.hasCartesianSeries||u.mapView)&&this.hasZoom&&F&&!g&&!Q&&(this.selectionMarker=Q=u.renderer[l](),Q.attr({class:"highcharts-selection-marker",zIndex:7}).add(),u.styledMode||Q.attr({fill:a||lt("#334eff").setOpacity(.25).get()})),Q&&Q.attr(n),F&&!Q&&X&&u.pan(r,t)}}dragStart(r){let u=this.chart;u.mouseIsDown=r.type,u.cancelClick=!1,u.mouseDownX=r.chartX,u.mouseDownY=r.chartY}getSelectionBox(r){let u={args:{marker:r},result:r.getBBox()};return P(this,"getSelectionBox",u),u.result}drop(r){let u,{chart:s,selectionMarker:e}=this;for(let t of s.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(o=>o.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),u=!0));if(u&&s.redraw(),e&&r){if(this.hasDragged){let t=this.getSelectionBox(e);s.transform({axes:s.axes.filter(o=>o.zoomEnabled&&(o.coll==="xAxis"&&this.zoomX||o.coll==="yAxis"&&this.zoomY)),selection:{originalEvent:r,xAxis:[],yAxis:[],...t},from:t})}m(s.index)&&(this.selectionMarker=e.destroy())}s&&m(s.index)&&(M(s.container,{cursor:s._cursor}),s.cancelClick=this.hasDragged>10,s.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(r,u,s){let e;return r.forEach(function(t){let o=!(t.noSharedTooltip&&u)&&0>t.options.findNearestPointBy.indexOf("y"),a=t.searchPoint(s,o);b(a,!0)&&a.series&&(!b(e,!0)||function(f,y){var g,L;let h=f.distX-y.distX,T=f.dist-y.dist,X=((g=y.series.group)==null?void 0:g.zIndex)-((L=f.series.group)==null?void 0:L.zIndex);return h!==0&&u?h:T!==0?T:X!==0?X:f.series.index>y.series.index?-1:1}(e,a)>0)&&(e=a)}),e}getChartCoordinatesFromPoint(r,u){let{xAxis:s,yAxis:e}=r.series,t=r.shapeArgs;if(s&&e){let o=r.clientX??r.plotX??0,a=r.plotY||0;return r.isNode&&t&&m(t.x)&&m(t.y)&&(o=t.x,a=t.y),u?{chartX:e.len+e.pos-a,chartY:s.len+s.pos-o}:{chartX:o+s.pos,chartY:a+e.pos}}if(t&&t.x&&t.y)return{chartX:t.x,chartY:t.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:r}=this.chart,u=A(r);this.chartPosition={left:u.left,top:u.top,scaleX:1,scaleY:1};let{offsetHeight:s,offsetWidth:e}=r;return e>2&&s>2&&(this.chartPosition.scaleX=u.width/e,this.chartPosition.scaleY=u.height/s),this.chartPosition}getCoordinates(r){let u={xAxis:[],yAxis:[]};for(let s of this.chart.axes)u[s.isXAxis?"xAxis":"yAxis"].push({axis:s,value:s.toValue(r[s.horiz?"chartX":"chartY"])});return u}getHoverData(r,u,s,e,t,o){let a=[],f=function(g){return g.visible&&!(!t&&g.directTouch)&&d(g.options.enableMouseTracking,!0)},y=u,h,T={chartX:o?o.chartX:void 0,chartY:o?o.chartY:void 0,shared:t};P(this,"beforeGetHoverData",T),h=y&&!y.stickyTracking?[y]:s.filter(g=>g.stickyTracking&&(T.filter||f)(g));let X=e&&r||!o?r:this.findNearestKDPoint(h,t,o);return y=X&&X.series,X&&(t&&!y.noSharedTooltip?(h=s.filter(function(g){return T.filter?T.filter(g):f(g)&&!g.noSharedTooltip})).forEach(function(g){let L=j(g.points,function(I){return I.x===X.x&&!I.isNull});b(L)&&(g.boosted&&g.boost&&(L=g.boost.getPoint(L)),a.push(L))}):a.push(X)),P(this,"afterGetHoverData",T={hoverPoint:X}),{hoverPoint:T.hoverPoint,hoverSeries:y,hoverPoints:a}}getPointFromEvent(r){let u=r.target,s;for(;u&&!s;)s=u.point,u=u.parentNode;return s}onTrackerMouseOut(r){let u=this.chart,s=r.relatedTarget,e=u.hoverSeries;this.isDirectTouch=!1,!e||!s||e.stickyTracking||this.inClass(s,"highcharts-tooltip")||this.inClass(s,"highcharts-series-"+e.index)&&this.inClass(s,"highcharts-tracker")||e.onMouseOut()}inClass(r,u){let s=r,e;for(;s;){if(e=V(s,"class")){if(e.indexOf(u)!==-1)return!0;if(e.indexOf("highcharts-container")!==-1)return!1}s=s.parentElement}}constructor(r,u){var s;this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=u,this.chart=r,this.runChartClick=!!((s=u.chart.events)!=null&&s.click),this.pinchDown=[],this.setDOMEvents(),P(this,"afterInit")}normalize(r,u){let s=r.touches,e=s?s.length?s.item(0):d(s.changedTouches,r.changedTouches)[0]:r;u||(u=this.getChartPosition());let t=e.pageX-u.left,o=e.pageY-u.top;return R(r,{chartX:Math.round(t/=u.scaleX),chartY:Math.round(o/=u.scaleY)})}onContainerClick(r){let u=this.chart,s=u.hoverPoint,e=this.normalize(r),t=u.plotLeft,o=u.plotTop;!u.cancelClick&&(s&&this.inClass(e.target,"highcharts-tracker")?(P(s.series,"click",R(e,{point:s})),u.hoverPoint&&s.firePointEvent("click",e)):(R(e,this.getCoordinates(e)),u.isInsidePlot(e.chartX-t,e.chartY-o,{visiblePlotOnly:!0})&&P(u,"click",e)))}onContainerMouseDown(r){var s;let u=(1&(r.buttons||r.button))==1;r=this.normalize(r),et.isFirefox&&r.button!==0&&this.onContainerMouseMove(r),(r.button===void 0||u)&&(this.zoomOption(r),u&&((s=r.preventDefault)==null||s.call(r)),this.dragStart(r))}onContainerMouseLeave(r){let{pointer:u}=nt[d(O.hoverChartIndex,-1)]||{};r=this.normalize(r),this.onContainerMouseMove(r),u&&!this.inClass(r.relatedTarget,"highcharts-tooltip")&&(u.reset(),u.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(r){let u=this.chart,s=u.tooltip,e=this.normalize(r);this.setHoverChartIndex(r),(u.mouseIsDown==="mousedown"||this.touchSelect(e))&&this.drag(e),!u.openMenu&&(this.inClass(e.target,"highcharts-tracker")||u.isInsidePlot(e.chartX-u.plotLeft,e.chartY-u.plotTop,{visiblePlotOnly:!0}))&&!(s&&s.shouldStickOnContact(e))&&(this.inClass(e.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(e))}onDocumentTouchEnd(r){this.onDocumentMouseUp(r)}onContainerTouchMove(r){this.touchSelect(r)?this.onContainerMouseMove(r):this.touch(r)}onContainerTouchStart(r){this.touchSelect(r)?this.onContainerMouseDown(r):(this.zoomOption(r),this.touch(r,!0))}onDocumentMouseMove(r){let u=this.chart,s=u.tooltip,e=this.chartPosition,t=this.normalize(r,e);!e||u.isInsidePlot(t.chartX-u.plotLeft,t.chartY-u.plotTop,{visiblePlotOnly:!0})||s&&s.shouldStickOnContact(t)||t.target!==u.container.ownerDocument&&this.inClass(t.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(r){var u,s;(s=(u=nt[d(O.hoverChartIndex,-1)])==null?void 0:u.pointer)==null||s.drop(r)}pinch(r){let u=this,{chart:s,hasZoom:e,lastTouches:t}=u,o=[].map.call(r.touches||[],T=>u.normalize(T)),a=o.length,f=a===1&&(u.inClass(r.target,"highcharts-tracker")&&s.runTrackerClick||u.runChartClick),y=s.tooltip,h=a===1&&d(y==null?void 0:y.options.followTouchMove,!0);a>1?u.initiated=!0:h&&(u.initiated=!1),e&&u.initiated&&!f&&r.cancelable!==!1&&r.preventDefault(),r.type==="touchstart"?(u.pinchDown=o,u.res=!0,s.mouseDownX=r.chartX):h?this.runPointActions(u.normalize(r)):t&&(P(s,"touchpan",{originalEvent:r,touches:o},()=>{let T=X=>{let g=X[0],L=X[1]||g;return{x:g.chartX,y:g.chartY,width:L.chartX-g.chartX,height:L.chartY-g.chartY}};s.transform({axes:s.axes.filter(X=>X.zoomEnabled&&(this.zoomHor&&X.horiz||this.zoomVert&&!X.horiz)),to:T(o),from:T(t),trigger:r.type})}),u.res&&(u.res=!1,this.reset(!1,0))),u.lastTouches=o}reset(r,u){let s=this.chart,e=s.hoverSeries,t=s.hoverPoint,o=s.hoverPoints,a=s.tooltip,f=a&&a.shared?o:t;r&&f&&B(f).forEach(function(y){y.series.isCartesian&&y.plotX===void 0&&(r=!1)}),r?a&&f&&B(f).length&&(a.refresh(f),a.shared&&o?o.forEach(function(y){y.setState(y.state,!0),y.series.isCartesian&&(y.series.xAxis.crosshair&&y.series.xAxis.drawCrosshair(null,y),y.series.yAxis.crosshair&&y.series.yAxis.drawCrosshair(null,y))}):t&&(t.setState(t.state,!0),s.axes.forEach(function(y){y.crosshair&&t.series[y.coll]===y&&y.drawCrosshair(null,t)}))):(t&&t.onMouseOut(),o&&o.forEach(function(y){y.setState()}),e&&e.onMouseOut(),a&&a.hide(u),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),s.axes.forEach(function(y){y.hideCrosshair()}),s.hoverPoints=s.hoverPoint=void 0)}runPointActions(r,u,s){let e=this.chart,t=e.series,o=e.tooltip&&e.tooltip.options.enabled?e.tooltip:void 0,a=!!o&&o.shared,f=u||e.hoverPoint,y=f&&f.series||e.hoverSeries,h=(!r||r.type!=="touchmove")&&(!!u||y&&y.directTouch&&this.isDirectTouch),T=this.getHoverData(f,y,t,h,a,r);f=T.hoverPoint,y=T.hoverSeries;let X=T.hoverPoints,g=y&&y.tooltipOptions.followPointer&&!y.tooltipOptions.split,L=a&&y&&!y.noSharedTooltip;if(f&&(s||f!==e.hoverPoint||o&&o.isHidden)){if((e.hoverPoints||[]).forEach(function(I){X.indexOf(I)===-1&&I.setState()}),e.hoverSeries!==y&&y.onMouseOver(),this.applyInactiveState(X),(X||[]).forEach(function(I){I.setState("hover")}),e.hoverPoint&&e.hoverPoint.firePointEvent("mouseOut"),!f.series)return;e.hoverPoints=X,e.hoverPoint=f,f.firePointEvent("mouseOver",void 0,()=>{o&&f&&o.refresh(L?X:f,r)})}else if(g&&o&&!o.isHidden){let I=o.getAnchor([{}],r);e.isInsidePlot(I[0],I[1],{visiblePlotOnly:!0})&&o.updatePosition({plotX:I[0],plotY:I[1]})}this.unDocMouseMove||(this.unDocMouseMove=$(e.container.ownerDocument,"mousemove",I=>{var F,Q;return(Q=(F=nt[O.hoverChartIndex??-1])==null?void 0:F.pointer)==null?void 0:Q.onDocumentMouseMove(I)}),this.eventsToUnbind.push(this.unDocMouseMove)),e.axes.forEach(function(I){let F,Q=d((I.crosshair||{}).snap,!0);!Q||(F=e.hoverPoint)&&F.series[I.coll]===I||(F=j(X,l=>l.series&&l.series[I.coll]===I)),F||!Q?I.drawCrosshair(r,F):I.hideCrosshair()})}setDOMEvents(){let r=this.chart.container,u=r.ownerDocument;r.onmousedown=this.onContainerMouseDown.bind(this),r.onmousemove=this.onContainerMouseMove.bind(this),r.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push($(r,"mouseenter",this.onContainerMouseEnter.bind(this)),$(r,"mouseleave",this.onContainerMouseLeave.bind(this))),O.unbindDocumentMouseUp||(O.unbindDocumentMouseUp=[]),O.unbindDocumentMouseUp.push($(u,"mouseup",this.onDocumentMouseUp.bind(this)));let s=this.chart.renderTo.parentElement;for(;s&&s.tagName!=="BODY";)this.eventsToUnbind.push($(s,"scroll",()=>{delete this.chartPosition})),s=s.parentElement;this.eventsToUnbind.push($(r,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),$(r,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),O.unbindDocumentTouchEnd||(O.unbindDocumentTouchEnd=$(u,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),$(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){var t,o;if(!q)return;let r=this.pointerCaptureEventsToUnbind,u=this.chart,s=u.container,e=d((t=u.options.tooltip)==null?void 0:t.followTouchMove,!0)&&u.series.some(a=>a.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&e?(r.push($(s,"pointerdown",a=>{var f,y;(f=a.target)!=null&&f.hasPointerCapture(a.pointerId)&&((y=a.target)==null||y.releasePointerCapture(a.pointerId))}),$(s,"pointermove",a=>{var f,y;(y=(f=u.pointer)==null?void 0:f.getPointFromEvent(a))==null||y.onMouseOver(a)})),u.styledMode||M(s,{"touch-action":"none"}),s.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!e&&(r.forEach(a=>a()),r.length=0,u.styledMode||M(s,{"touch-action":d((o=u.options.chart.style)==null?void 0:o["touch-action"],"manipulation")}),s.className=s.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(r){var e;let u=this.chart,s=et.charts[d(O.hoverChartIndex,-1)];if(s&&s!==u){let t={relatedTarget:u.container};r&&!(r!=null&&r.relatedTarget)&&(r={...t,...r}),(e=s.pointer)==null||e.onContainerMouseLeave(r||t)}s&&s.mouseIsDown||(O.hoverChartIndex=u.index)}touch(r,u){let s,{chart:e,pinchDown:t=[]}=this;this.setHoverChartIndex(),(r=this.normalize(r)).touches.length===1?e.isInsidePlot(r.chartX-e.plotLeft,r.chartY-e.plotTop,{visiblePlotOnly:!0})&&!e.openMenu?(u&&this.runPointActions(r),r.type==="touchmove"&&(s=!!t[0]&&Math.pow(t[0].chartX-r.chartX,2)+Math.pow(t[0].chartY-r.chartY,2)>=16),d(s,!0)&&this.pinch(r)):u&&this.reset():r.touches.length===2&&this.pinch(r)}touchSelect(r){return!!(this.chart.zooming.singleTouch&&r.touches&&r.touches.length===1)}zoomOption(r){let u=this.chart,s=u.inverted,e=u.zooming.type||"",t,o;/touch/.test(r.type)&&(e=d(u.zooming.pinchType,e)),this.zoomX=t=/x/.test(e),this.zoomY=o=/y/.test(e),this.zoomHor=t&&!s||o&&s,this.zoomVert=o&&!s||t&&s,this.hasZoom=t||o}}return(ct=O||(O={})).compose=function(k){v(at,"Core.Pointer")&&$(k,"beforeRender",function(){this.pointer=new ct(this,this.options)})},O}),yt(Y,"Core/Legend/LegendSymbol.js",[Y["Core/Utilities.js"]],function(J){var et;let{extend:ht,merge:ct,pick:lt}=J;return function(nt){function at(q,$,V){var s,e;let M=this.legendItem=this.legendItem||{},{chart:R,options:j}=this,{baseline:P=0,symbolWidth:m,symbolHeight:b}=q,S=this.symbol||"circle",A=b/2,d=R.renderer,v=M.group,B=P-Math.round((((s=q.fontMetrics)==null?void 0:s.b)||b)*(V?.4:.3)),O={},k,r=j.marker,u=0;if(R.styledMode||(O["stroke-width"]=Math.min(j.lineWidth||0,24),j.dashStyle?O.dashstyle=j.dashStyle:j.linecap==="square"||(O["stroke-linecap"]="round")),M.line=d.path().addClass("highcharts-graph").attr(O).add(v),V&&(M.area=d.path().addClass("highcharts-area").add(v)),O["stroke-linecap"]&&(u=Math.min(M.line.strokeWidth(),m)/2),m){let t=[["M",u,B],["L",m-u,B]];M.line.attr({d:t}),(e=M.area)==null||e.attr({d:[...t,["L",m-u,P],["L",u,P]]})}if(r&&r.enabled!==!1&&m){let t=Math.min(lt(r.radius,A),A);S.indexOf("url")===0&&(r=ct(r,{width:b,height:b}),t=0),M.symbol=k=d.symbol(S,m/2-t,B-t,2*t,2*t,ht({context:"legend"},r)).addClass("highcharts-point").add(v),k.isMarker=!0}}nt.areaMarker=function(q,$){at.call(this,q,$,!0)},nt.lineMarker=at,nt.rectangle=function(q,$){let V=$.legendItem||{},M=q.options,R=q.symbolHeight,j=M.squareSymbol,P=j?R:q.symbolWidth;V.symbol=this.chart.renderer.rect(j?(q.symbolWidth-R)/2:0,q.baseline-R+1,P,R,lt(q.options.symbolRadius,R/2)).addClass("highcharts-point").attr({zIndex:3}).add(V.group)}}(et||(et={})),et}),yt(Y,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:J}=this.series.chart;return typeof this.y!="number"?"":J(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),yt(Y,"Core/Series/SeriesRegistry.js",[Y["Core/Globals.js"],Y["Core/Defaults.js"],Y["Core/Series/Point.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct){var lt;let{defaultOptions:nt}=et,{extend:at,extendClass:q,merge:$}=ct;return function(V){function M(R,j){let P=nt.plotOptions||{},m=j.defaultOptions,b=j.prototype;return b.type=R,b.pointClass||(b.pointClass=ht),!V.seriesTypes[R]&&(m&&(P[R]=m),V.seriesTypes[R]=j,!0)}V.seriesTypes=J.seriesTypes,V.registerSeriesType=M,V.seriesType=function(R,j,P,m,b){let S=nt.plotOptions||{};if(j=j||"",S[R]=$(S[j],P),delete V.seriesTypes[R],M(R,q(V.seriesTypes[j]||function(){},m)),V.seriesTypes[R].prototype.type=R,b){class A extends ht{}at(A.prototype,b),V.seriesTypes[R].prototype.pointClass=A}return V.seriesTypes[R]}}(lt||(lt={})),lt}),yt(Y,"Core/Series/Series.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Defaults.js"],Y["Core/Foundation.js"],Y["Core/Globals.js"],Y["Core/Legend/LegendSymbol.js"],Y["Core/Series/Point.js"],Y["Core/Series/SeriesDefaults.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Renderer/SVG/SVGElement.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt,nt,at,q,$,V){let{animObject:M,setAnimation:R}=J,{defaultOptions:j}=et,{registerEventOptions:P}=ht,{svg:m,win:b}=ct,{seriesTypes:S}=q,{arrayMax:A,arrayMin:d,clamp:v,correctFloat:B,crisp:O,defined:k,destroyObjectProperties:r,diffObjects:u,erase:s,error:e,extend:t,find:o,fireEvent:a,getClosestDistance:f,getNestedProperty:y,insertItem:h,isArray:T,isNumber:X,isString:g,merge:L,objectEach:I,pick:F,removeEvent:Q,splat:l,syncTimeout:n}=V;class x{constructor(){this.zoneAxis="y"}init(i,p){let c;a(this,"init",{options:p});let w=this,C=i.series;this.eventsToUnbind=[],w.chart=i,w.options=w.setOptions(p);let z=w.options,G=z.visible!==!1;w.linkedSeries=[],w.bindAxes(),t(w,{name:z.name,state:"",visible:G,selected:z.selected===!0}),P(this,z);let U=z.events;(U&&U.click||z.point&&z.point.events&&z.point.events.click||z.allowPointSelect)&&(i.runTrackerClick=!0),w.getColor(),w.getSymbol(),w.parallelArrays.forEach(function(Z){w[Z+"Data"]||(w[Z+"Data"]=[])}),w.isCartesian&&(i.hasCartesianSeries=!0),C.length&&(c=C[C.length-1]),w._i=F(c&&c._i,-1)+1,w.opacity=w.options.opacity,i.orderItems("series",h(this,C)),z.dataSorting&&z.dataSorting.enabled?w.setDataSortingOptions():w.points||w.data||w.setData(z.data,!1),a(this,"afterInit")}is(i){return S[i]&&this instanceof S[i]}bindAxes(){let i,p=this,c=p.options,w=p.chart;a(this,"bindAxes",null,function(){(p.axisTypes||[]).forEach(function(C){(w[C]||[]).forEach(function(z){i=z.options,(F(c[C],0)===z.index||c[C]!==void 0&&c[C]===i.id)&&(h(p,z.series),p[C]=z,z.isDirty=!0)}),p[C]||p.optionalAxis===C||e(18,!0,w)})}),a(this,"afterBindAxes")}updateParallelArrays(i,p,c){let w=i.series,C=X(p)?function(z){let G=z==="y"&&w.toYData?w.toYData(i):i[z];w[z+"Data"][p]=G}:function(z){Array.prototype[p].apply(w[z+"Data"],c)};w.parallelArrays.forEach(C)}hasData(){return this.visible&&this.dataMax!==void 0&&this.dataMin!==void 0||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(i,p){let c=i.marker,w=p.marker||{};return c&&(w.enabled&&!c.enabled||w.symbol!==c.symbol||w.height!==c.height||w.width!==c.width)}autoIncrement(i){let p=this.options,c=p.pointIntervalUnit,w=p.relativeXValue,C=this.chart.time,z=this.xIncrement,G,U;return z=F(z,p.pointStart,0),this.pointInterval=U=F(this.pointInterval,p.pointInterval,1),w&&X(i)&&(U*=i),c&&(G=new C.Date(z),c==="day"?C.set("Date",G,C.get("Date",G)+U):c==="month"?C.set("Month",G,C.get("Month",G)+U):c==="year"&&C.set("FullYear",G,C.get("FullYear",G)+U),U=G.getTime()-z),w&&X(i)?z+U:(this.xIncrement=z+U,z)}setDataSortingOptions(){let i=this.options;t(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),k(i.pointRange)||(i.pointRange=1)}setOptions(i){var K,tt;let p,c=this.chart,w=c.options.plotOptions,C=c.userOptions||{},z=L(i),G=c.styledMode,U={plotOptions:w,userOptions:z};a(this,"setOptions",U);let Z=U.plotOptions[this.type],rt=C.plotOptions||{},it=rt.series||{},N=j.plotOptions[this.type]||{},E=rt[this.type]||{};this.userOptions=U.userOptions;let W=L(Z,w.series,E,z);this.tooltipOptions=L(j.tooltip,(K=j.plotOptions.series)==null?void 0:K.tooltip,N==null?void 0:N.tooltip,c.userOptions.tooltip,(tt=rt.series)==null?void 0:tt.tooltip,E.tooltip,z.tooltip),this.stickyTracking=F(z.stickyTracking,E.stickyTracking,it.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||W.stickyTracking),Z.marker===null&&delete W.marker,this.zoneAxis=W.zoneAxis||"y";let H=this.zones=(W.zones||[]).map(_=>({..._}));return(W.negativeColor||W.negativeFillColor)&&!W.zones&&(p={value:W[this.zoneAxis+"Threshold"]||W.threshold||0,className:"highcharts-negative"},G||(p.color=W.negativeColor,p.fillColor=W.negativeFillColor),H.push(p)),H.length&&k(H[H.length-1].value)&&H.push(G?{}:{color:this.color,fillColor:this.fillColor}),a(this,"afterSetOptions",{options:W}),W}getName(){return F(this.options.name,"Series "+(this.index+1))}getCyclic(i,p,c){let w,C,z=this.chart,G=`${i}Index`,U=`${i}Counter`,Z=(c==null?void 0:c.length)||z.options.chart.colorCount;!p&&(k(C=F(i==="color"?this.options.colorIndex:void 0,this[G]))?w=C:(z.series.length||(z[U]=0),w=z[U]%Z,z[U]+=1),c&&(p=c[w])),w!==void 0&&(this[G]=w),this[i]=p}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||j.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let i=this.options.marker;this.getCyclic("symbol",i.symbol,this.chart.options.symbols)}findPointIndex(i,p){let c,w,C,z=i.id,G=i.x,U=this.points,Z=this.options.dataSorting;if(z){let rt=this.chart.get(z);rt instanceof nt&&(c=rt)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let rt=it=>!it.touched&&it.index===i.index;if(Z&&Z.matchByName?rt=it=>!it.touched&&it.name===i.name:this.options.relativeXValue&&(rt=it=>!it.touched&&it.options.x===i.x),!(c=o(U,rt)))return}return c&&(C=c&&c.index)!==void 0&&(w=!0),C===void 0&&X(G)&&(C=this.xData.indexOf(G,p)),C!==-1&&C!==void 0&&this.cropped&&(C=C>=this.cropStart?C-this.cropStart:C),!w&&X(C)&&U[C]&&U[C].touched&&(C=void 0),C}updateData(i,p){let c=this.options,w=c.dataSorting,C=this.points,z=[],G=this.requireSorting,U=i.length===C.length,Z,rt,it,N,E=!0;if(this.xIncrement=null,i.forEach(function(W,H){let K,tt=k(W)&&this.pointClass.prototype.optionsToObject.call({series:this},W)||{},_=tt.x;tt.id||X(_)?((K=this.findPointIndex(tt,N))===-1||K===void 0?z.push(W):C[K]&&W!==c.data[K]?(C[K].update(W,!1,null,!1),C[K].touched=!0,G&&(N=K+1)):C[K]&&(C[K].touched=!0),(!U||H!==K||w&&w.enabled||this.hasDerivedData)&&(Z=!0)):z.push(W)},this),Z)for(rt=C.length;rt--;)(it=C[rt])&&!it.touched&&it.remove&&it.remove(!1,p);else!U||w&&w.enabled?E=!1:(i.forEach(function(W,H){W===C[H].y||C[H].destroyed||C[H].update(W,!1,null,!1)}),z.length=0);return C.forEach(function(W){W&&(W.touched=!1)}),!!E&&(z.forEach(function(W){this.addPoint(W,!1,null,null,!1)},this),this.xIncrement===null&&this.xData&&this.xData.length&&(this.xIncrement=A(this.xData),this.autoIncrement()),!0)}setData(i,p=!0,c,w){var xt;let C=this,z=C.points,G=z&&z.length||0,U=C.options,Z=C.chart,rt=U.dataSorting,it=C.xAxis,N=U.turboThreshold,E=this.xData,W=this.yData,H=C.pointArrayMap,K=H&&H.length,tt=U.keys,_,st,ot,dt=0,pt=1,ut;Z.options.chart.allowMutatingData||(U.data&&delete C.options.data,C.userOptions.data&&delete C.userOptions.data,ut=L(!0,i));let mt=(i=ut||i||[]).length;if(rt&&rt.enabled&&(i=this.sortData(i)),Z.options.chart.allowMutatingData&&w!==!1&&mt&&G&&!C.cropped&&!C.hasGroupedData&&C.visible&&!C.boosted&&(ot=this.updateData(i,c)),!ot){C.xIncrement=null,C.colorCounter=0,this.parallelArrays.forEach(function(gt){C[gt+"Data"].length=0});let ft=N&&mt>N;if(ft){let gt=C.getFirstValidPoint(i),vt=C.getFirstValidPoint(i,mt-1,-1),bt=kt=>!!(T(kt)&&(tt||X(kt[0])));if(X(gt)&&X(vt))for(_=0;_<mt;_++)E[_]=this.autoIncrement(),W[_]=i[_];else if(bt(gt)&&bt(vt))if(K)if(gt.length===K)for(_=0;_<mt;_++)E[_]=this.autoIncrement(),W[_]=i[_];else for(_=0;_<mt;_++)st=i[_],E[_]=st[0],W[_]=st.slice(1,K+1);else if(tt&&(dt=tt.indexOf("x"),pt=tt.indexOf("y"),dt=dt>=0?dt:0,pt=pt>=0?pt:1),gt.length===1&&(pt=0),dt===pt)for(_=0;_<mt;_++)E[_]=this.autoIncrement(),W[_]=i[_][pt];else for(_=0;_<mt;_++)st=i[_],E[_]=st[dt],W[_]=st[pt];else ft=!1}if(!ft)for(_=0;_<mt;_++)st={series:C},C.pointClass.prototype.applyOptions.apply(st,[i[_]]),C.updateParallelArrays(st,_);for(W&&g(W[0])&&e(14,!0,Z),C.data=[],C.options.data=C.userOptions.data=i,_=G;_--;)(xt=z[_])==null||xt.destroy();it&&(it.minRange=it.userMinRange),C.isDirty=Z.isDirtyBox=!0,C.isDirtyData=!!z,c=!1}U.legendType==="point"&&(this.processData(),this.generatePoints()),p&&Z.redraw(c)}sortData(i){let p=this,c=p.options.dataSorting.sortKey||"y",w=function(C,z){return k(z)&&C.pointClass.prototype.optionsToObject.call({series:C},z)||{}};return i.forEach(function(C,z){i[z]=w(p,C),i[z].index=z},this),i.concat().sort((C,z)=>{let G=y(c,C),U=y(c,z);return U<G?-1:U>G?1:0}).forEach(function(C,z){C.x=z},this),p.linkedSeries&&p.linkedSeries.forEach(function(C){let z=C.options,G=z.data;z.dataSorting&&z.dataSorting.enabled||!G||(G.forEach(function(U,Z){G[Z]=w(C,U),i[Z]&&(G[Z].x=i[Z].x,G[Z].index=Z)}),C.setData(G,!1))}),i}getProcessedData(i){let p=this,c=p.xAxis,w=p.options.cropThreshold,C=c==null?void 0:c.logarithmic,z=p.isCartesian,G,U,Z=0,rt,it,N,E=p.xData,W=p.yData,H=!1,K=E.length;c&&(it=(rt=c.getExtremes()).min,N=rt.max,H=!!(c.categories&&!c.names.length)),z&&p.sorted&&!i&&(!w||K>w||p.forceCrop)&&(E[K-1]<it||E[0]>N?(E=[],W=[]):p.yData&&(E[0]<it||E[K-1]>N)&&(E=(G=this.cropData(p.xData,p.yData,it,N)).xData,W=G.yData,Z=G.start,U=!0));let tt=f([C?E.map(C.log2lin):E],()=>p.requireSorting&&!H&&e(15,!1,p.chart));return{xData:E,yData:W,cropped:U,cropStart:Z,closestPointRange:tt}}processData(i){let p=this.xAxis;if(this.isCartesian&&!this.isDirty&&!p.isDirty&&!this.yAxis.isDirty&&!i)return!1;let c=this.getProcessedData();this.cropped=c.cropped,this.cropStart=c.cropStart,this.processedXData=c.xData,this.processedYData=c.yData,this.closestPointRange=this.basePointRange=c.closestPointRange,a(this,"afterProcessData")}cropData(i,p,c,w){let C=i.length,z,G,U=0,Z=C;for(z=0;z<C;z++)if(i[z]>=c){U=Math.max(0,z-1);break}for(G=z;G<C;G++)if(i[G]>w){Z=G+1;break}return{xData:i.slice(U,Z),yData:p.slice(U,Z),start:U,end:Z}}generatePoints(){let i=this.options,p=this.processedData||i.data,c=this.processedXData,w=this.processedYData,C=this.pointClass,z=c.length,G=this.cropStart||0,U=this.hasGroupedData,Z=i.keys,rt=[],it=i.dataGrouping&&i.dataGrouping.groupAll?G:0,N,E,W,H,K=this.data;if(!K&&!U){let tt=[];tt.length=p.length,K=this.data=tt}for(Z&&U&&(this.options.keys=!1),H=0;H<z;H++)E=G+H,U?((W=new C(this,[c[H]].concat(l(w[H])))).dataGroup=this.groupMap[it+H],W.dataGroup.options&&(W.options=W.dataGroup.options,t(W,W.dataGroup.options),delete W.dataLabels)):(W=K[E])||p[E]===void 0||(K[E]=W=new C(this,p[E],c[H])),W&&(W.index=U?it+H:E,rt[H]=W);if(this.options.keys=Z,K&&(z!==(N=K.length)||U))for(H=0;H<N;H++)H!==G||U||(H+=z),K[H]&&(K[H].destroyElements(),K[H].plotX=void 0);this.data=K,this.points=rt,a(this,"afterGeneratePoints")}getXExtremes(i){return{min:d(i),max:A(i)}}getExtremes(i,p){let c=this.xAxis,w=this.yAxis,C=[],z=this.requireSorting&&!this.is("column")?1:0,G=!!w&&w.positiveValuesOnly,U=p||this.getExtremesFromAll||this.options.getExtremesFromAll,{processedXData:Z,processedYData:rt}=this,it,N,E,W,H,K,tt,_=0,st=0,ot=0;if(this.cropped&&U){let mt=this.getProcessedData(!0);Z=mt.xData,rt=mt.yData}let dt=(i=i||this.stackedYData||rt||[]).length,pt=Z||this.xData;for(c&&(_=(it=c.getExtremes()).min,st=it.max),K=0;K<dt;K++)if(W=pt[K],N=(X(H=i[K])||T(H))&&((X(H)?H>0:H.length)||!G),E=p||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!c||(pt[K+z]||W)>=_&&(pt[K-z]||W)<=st,N&&E)if(tt=H.length)for(;tt--;)X(H[tt])&&(C[ot++]=H[tt]);else C[ot++]=H;let ut={activeYData:C,dataMin:d(C),dataMax:A(C)};return a(this,"afterGetExtremes",{dataExtremes:ut}),ut}applyExtremes(){let i=this.getExtremes();return this.dataMin=i.dataMin,this.dataMax=i.dataMax,i}getFirstValidPoint(i,p=0,c=1){let w=i.length,C=p;for(;C>=0&&C<w;){if(k(i[C]))return i[C];C+=c}}translate(){var st;this.processedXData||this.processData(),this.generatePoints();let i=this.options,p=i.stacking,c=this.xAxis,w=c.categories,C=this.enabledDataSorting,z=this.yAxis,G=this.points,U=G.length,Z=this.pointPlacementToXValue(),rt=!!Z,it=i.threshold,N=i.startFromThreshold?it:0,E,W,H,K,tt=Number.MAX_VALUE;function _(ot){return v(ot,-1e9,1e9)}for(E=0;E<U;E++){let ot,dt=G[E],pt=dt.x,ut,mt,xt=dt.y,ft=dt.low,gt=p&&((st=z.stacking)==null?void 0:st.stacks[(this.negStacks&&xt<(N?0:it)?"-":"")+this.stackKey]);W=c.translate(pt,!1,!1,!1,!0,Z),dt.plotX=X(W)?B(_(W)):void 0,p&&this.visible&>&>[pt]&&(K=this.getStackIndicator(K,pt,this.index),!dt.isNull&&K.key&&(mt=(ut=gt[pt]).points[K.key]),ut&&T(mt)&&(ft=mt[0],xt=mt[1],ft===N&&K.key===gt[pt].base&&(ft=F(X(it)?it:z.min)),z.positiveValuesOnly&&k(ft)&&ft<=0&&(ft=void 0),dt.total=dt.stackTotal=F(ut.total),dt.percentage=k(dt.y)&&ut.total?dt.y/ut.total*100:void 0,dt.stackY=xt,this.irregularWidths||ut.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),dt.yBottom=k(ft)?_(z.translate(ft,!1,!0,!1,!0)):void 0,this.dataModify&&(xt=this.dataModify.modifyValue(xt,E)),X(xt)&&dt.plotX!==void 0&&(ot=X(ot=z.translate(xt,!1,!0,!1,!0))?_(ot):void 0),dt.plotY=ot,dt.isInside=this.isPointInside(dt),dt.clientX=rt?B(c.translate(pt,!1,!1,!1,!0,Z)):W,dt.negative=(dt.y||0)<(it||0),dt.category=F(w&&w[dt.x],dt.x),dt.isNull||dt.visible===!1||(H!==void 0&&(tt=Math.min(tt,Math.abs(W-H))),H=W),dt.zone=this.zones.length?dt.getZone():void 0,!dt.graphic&&this.group&&C&&(dt.isNew=!0)}this.closestPointRangePx=tt,a(this,"afterTranslate")}getValidPoints(i,p,c){let w=this.chart;return(i||this.points||[]).filter(function(C){let{plotX:z,plotY:G}=C;return!!((c||!C.isNull&&X(G))&&(!p||w.isInsidePlot(z,G,{inverted:w.inverted})))&&C.visible!==!1})}getClipBox(){let{chart:i,xAxis:p,yAxis:c}=this,{x:w,y:C,width:z,height:G}=L(i.clipBox);return p&&p.len!==i.plotSizeX&&(z=p.len),c&&c.len!==i.plotSizeY&&(G=c.len),i.inverted&&!this.invertible&&([z,G]=[G,z]),{x:w,y:C,width:z,height:G}}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0),this.sharedClipKey}setClip(){let{chart:i,group:p,markerGroup:c}=this,w=i.sharedClips,C=i.renderer,z=this.getClipBox(),G=this.getSharedClipKey(),U=w[G];U?U.animate(z):w[G]=U=C.clipRect(z),p&&p.clip(this.options.clip===!1?void 0:U),c&&c.clip()}animate(i){let{chart:p,group:c,markerGroup:w}=this,C=p.inverted,z=M(this.options.animation),G=[this.getSharedClipKey(),z.duration,z.easing,z.defer].join(","),U=p.sharedClips[G],Z=p.sharedClips[G+"m"];if(i&&c){let rt=this.getClipBox();if(U)U.attr("height",rt.height);else{rt.width=0,C&&(rt.x=p.plotHeight),U=p.renderer.clipRect(rt),p.sharedClips[G]=U;let it={x:-99,y:-99,width:C?p.plotWidth+199:99,height:C?99:p.plotHeight+199};Z=p.renderer.clipRect(it),p.sharedClips[G+"m"]=Z}c.clip(U),w==null||w.clip(Z)}else if(U&&!U.hasClass("highcharts-animating")){let rt=this.getClipBox(),it=z.step;(w!=null&&w.element.childNodes.length||p.series.length>1)&&(z.step=function(N,E){it&&it.apply(E,arguments),E.prop==="width"&&(Z!=null&&Z.element)&&Z.attr(C?"height":"width",N+99)}),U.addClass("highcharts-animating").animate(rt,z)}}afterAnimate(){this.setClip(),I(this.chart.sharedClips,(i,p,c)=>{i&&!this.chart.container.querySelector(`[clip-path="url(#${i.id})"]`)&&(i.destroy(),delete c[p])}),this.finishedAnimating=!0,a(this,"afterAnimate")}drawPoints(i=this.points){let p,c,w,C,z,G,U,Z=this.chart,rt=Z.styledMode,{colorAxis:it,options:N}=this,E=N.marker,W=this[this.specialGroup||"markerGroup"],H=this.xAxis,K=F(E.enabled,!H||!!H.isRadial||null,this.closestPointRangePx>=E.enabledThreshold*E.radius);if(E.enabled!==!1||this._hasPointMarkers)for(p=0;p<i.length;p++)if(C=(w=(c=i[p]).graphic)?"animate":"attr",z=c.marker||{},G=!!c.marker,(K&&z.enabled===void 0||z.enabled)&&!c.isNull&&c.visible!==!1){let tt=F(z.symbol,this.symbol,"rect");U=this.markerAttribs(c,c.selected&&"select"),this.enabledDataSorting&&(c.startXPos=H.reversed?-(U.width||0):H.width);let _=c.isInside!==!1;if(!w&&_&&((U.width||0)>0||c.hasImage)&&(c.graphic=w=Z.renderer.symbol(tt,U.x,U.y,U.width,U.height,G?z:E).add(W),this.enabledDataSorting&&Z.hasRendered&&(w.attr({x:c.startXPos}),C="animate")),w&&C==="animate"&&w[_?"show":"hide"](_).animate(U),w){let st=this.pointAttribs(c,rt||!c.selected?void 0:"select");rt?it&&w.css({fill:st.fill}):w[C](st)}w&&w.addClass(c.getClassName(),!0)}else w&&(c.graphic=w.destroy())}markerAttribs(i,p){let c=this.options,w=c.marker,C=i.marker||{},z=C.symbol||w.symbol,G={},U,Z,rt=F(C.radius,w&&w.radius);p&&(U=w.states[p],rt=F((Z=C.states&&C.states[p])&&Z.radius,U&&U.radius,rt&&rt+(U&&U.radiusPlus||0))),i.hasImage=z&&z.indexOf("url")===0,i.hasImage&&(rt=0);let it=i.pos();return X(rt)&&it&&(c.crisp&&(it[0]=O(it[0],i.hasImage?0:z==="rect"?(w==null?void 0:w.lineWidth)||0:1)),G.x=it[0]-rt,G.y=it[1]-rt),rt&&(G.width=G.height=2*rt),G}pointAttribs(i,p){let c=this.options.marker,w=i&&i.options,C=w&&w.marker||{},z=w&&w.color,G=i&&i.color,U=i&&i.zone&&i.zone.color,Z,rt,it=this.color,N,E,W=F(C.lineWidth,c.lineWidth),H=1;return it=z||U||G||it,N=C.fillColor||c.fillColor||it,E=C.lineColor||c.lineColor||it,p=p||"normal",Z=c.states[p]||{},W=F((rt=C.states&&C.states[p]||{}).lineWidth,Z.lineWidth,W+F(rt.lineWidthPlus,Z.lineWidthPlus,0)),N=rt.fillColor||Z.fillColor||N,{stroke:E=rt.lineColor||Z.lineColor||E,"stroke-width":W,fill:N,opacity:H=F(rt.opacity,Z.opacity,H)}}destroy(i){let p,c,w,C=this,z=C.chart,G=/AppleWebKit\/533/.test(b.navigator.userAgent),U=C.data||[];for(a(C,"destroy",{keepEventsForUpdate:i}),this.removeEvents(i),(C.axisTypes||[]).forEach(function(Z){(w=C[Z])&&w.series&&(s(w.series,C),w.isDirty=w.forceRedraw=!0)}),C.legendItem&&C.chart.legend.destroyItem(C),p=U.length;p--;)(c=U[p])&&c.destroy&&c.destroy();for(let Z of C.zones)r(Z,void 0,!0);V.clearTimeout(C.animationTimeout),I(C,function(Z,rt){Z instanceof $&&!Z.survive&&Z[G&&rt==="group"?"hide":"destroy"]()}),z.hoverSeries===C&&(z.hoverSeries=void 0),s(z.series,C),z.orderItems("series"),I(C,function(Z,rt){i&&rt==="hcEvents"||delete C[rt]})}applyZones(){let{area:i,chart:p,graph:c,zones:w,points:C,xAxis:z,yAxis:G,zoneAxis:U}=this,{inverted:Z,renderer:rt}=p,it=this[`${U}Axis`],{isXAxis:N,len:E=0}=it||{},W=((c==null?void 0:c.strokeWidth())||0)/2+1,H=(K,tt=0,_=0)=>{Z&&(_=E-_);let{translated:st=0,lineClip:ot}=K,dt=_-st;ot==null||ot.push(["L",tt,Math.abs(dt)<W?_-W*(dt<=0?-1:1):st])};if(w.length&&(c||i)&&it&&X(it.min)){let K=it.getExtremes().max,tt=ot=>{ot.forEach((dt,pt)=>{(dt[0]==="M"||dt[0]==="L")&&(ot[pt]=[dt[0],N?E-dt[1]:dt[1],N?dt[2]:E-dt[2]])})};if(w.forEach(ot=>{ot.lineClip=[],ot.translated=v(it.toPixels(F(ot.value,K),!0)||0,0,E)}),c&&!this.showLine&&c.hide(),i&&i.hide(),U==="y"&&C.length<z.len)for(let ot of C){let{plotX:dt,plotY:pt,zone:ut}=ot,mt=ut&&w[w.indexOf(ut)-1];ut&&H(ut,dt,pt),mt&&H(mt,dt,pt)}let _=[],st=it.toPixels(it.getExtremes().min,!0);w.forEach(ot=>{var Ct,St;let dt=ot.lineClip||[],pt=Math.round(ot.translated||0);z.reversed&&dt.reverse();let{clip:ut,simpleClip:mt}=ot,xt=0,ft=0,gt=z.len,vt=G.len;N?(xt=pt,gt=st):(ft=pt,vt=st);let bt=[["M",xt,ft],["L",gt,ft],["L",gt,vt],["L",xt,vt],["Z"]],kt=[bt[0],...dt,bt[1],bt[2],..._,bt[3],bt[4]];_=dt.reverse(),st=pt,Z&&(tt(kt),i&&tt(bt)),ut?(ut.animate({d:kt}),mt==null||mt.animate({d:bt})):(ut=ot.clip=rt.path(kt),i&&(mt=ot.simpleClip=rt.path(bt))),c&&((Ct=ot.graph)==null||Ct.clip(ut)),i&&((St=ot.area)==null||St.clip(mt))})}else this.visible&&(c&&c.show(),i&&i.show())}plotGroup(i,p,c,w,C){let z=this[i],G=!z,U={visibility:c,zIndex:w||.1};return k(this.opacity)&&!this.chart.styledMode&&this.state!=="inactive"&&(U.opacity=this.opacity),z||(this[i]=z=this.chart.renderer.g().add(C)),z.addClass("highcharts-"+p+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(k(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(z.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),z.attr(U)[G?"attr":"animate"](this.getPlotBox(p)),z}getPlotBox(i){let p=this.xAxis,c=this.yAxis,w=this.chart,C=w.inverted&&!w.polar&&p&&this.invertible&&i==="series";return w.inverted&&(p=c,c=this.xAxis),{translateX:p?p.left:w.plotLeft,translateY:c?c.top:w.plotTop,rotation:C?90:0,rotationOriginX:C?(p.len-c.len)/2:0,rotationOriginY:C?(p.len+c.len)/2:0,scaleX:C?-1:1,scaleY:1}}removeEvents(i){let{eventsToUnbind:p}=this;i||Q(this),p.length&&(p.forEach(c=>{c()}),p.length=0)}render(){var rt,it,N,E,W;let i=this,{chart:p,options:c,hasRendered:w}=i,C=M(c.animation),z=i.visible?"inherit":"hidden",G=c.zIndex,U=p.seriesGroup,Z=i.finishedAnimating?0:C.duration;a(this,"render"),i.plotGroup("group","series",z,G,U),i.markerGroup=i.plotGroup("markerGroup","markers",z,G,U),c.clip!==!1&&i.setClip(),Z&&((rt=i.animate)==null||rt.call(i,!0)),i.drawGraph&&(i.drawGraph(),i.applyZones()),i.visible&&i.drawPoints(),(it=i.drawDataLabels)==null||it.call(i),(N=i.redrawPoints)==null||N.call(i),c.enableMouseTracking&&((E=i.drawTracker)==null||E.call(i)),Z&&((W=i.animate)==null||W.call(i)),w||(Z&&C.defer&&(Z+=C.defer),i.animationTimeout=n(()=>{i.afterAnimate()},Z||0)),i.isDirty=!1,i.hasRendered=!0,a(i,"afterRender")}redraw(){let i=this.isDirty||this.isDirtyData;this.translate(),this.render(),i&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(i,p){let{xAxis:c,yAxis:w}=this,C=this.chart.inverted;return this.searchKDTree({clientX:C?c.len-i.chartY+c.pos:i.chartX-c.pos,plotY:C?w.len-i.chartX+w.pos:i.chartY-w.pos},p,i)}buildKDTree(i){this.buildingKdTree=!0;let p=this,c=p.options.findNearestPointBy.indexOf("y")>-1?2:1;delete p.kdTree,n(function(){p.kdTree=function w(C,z,G){let U,Z,rt=C==null?void 0:C.length;if(rt)return U=p.kdAxisArray[z%G],C.sort((it,N)=>(it[U]||0)-(N[U]||0)),{point:C[Z=Math.floor(rt/2)],left:w(C.slice(0,Z),z+1,G),right:w(C.slice(Z+1),z+1,G)}}(p.getValidPoints(void 0,!p.directTouch),c,c),p.buildingKdTree=!1},p.options.kdNow||(i==null?void 0:i.type)==="touchstart"?0:1)}searchKDTree(i,p,c){let w=this,[C,z]=this.kdAxisArray,G=p?"distX":"dist",U=(w.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Z=!!w.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(c),this.kdTree)return function rt(it,N,E,W){var ut;let H=N.point,K=w.kdAxisArray[E%W],tt,_,st=H;(function(mt,xt){var At;let ft=mt[C],gt=xt[C],vt=k(ft)&&k(gt)?ft-gt:null,bt=mt[z],kt=xt[z],Ct=k(bt)&&k(kt)?bt-kt:0,St=Z&&((At=xt.marker)==null?void 0:At.radius)||0;xt.dist=Math.sqrt((vt&&vt*vt||0)+Ct*Ct)-St,xt.distX=k(vt)?Math.abs(vt)-St:Number.MAX_VALUE})(it,H);let ot=(it[K]||0)-(H[K]||0)+(Z&&((ut=H.marker)==null?void 0:ut.radius)||0),dt=ot<0?"left":"right",pt=ot<0?"right":"left";return N[dt]&&(st=(tt=rt(it,N[dt],E+1,W))[G]<st[G]?tt:H),N[pt]&&Math.sqrt(ot*ot)<st[G]&&(st=(_=rt(it,N[pt],E+1,W))[G]<st[G]?_:st),st}(i,this.kdTree,U,U)}pointPlacementToXValue(){let{options:i,xAxis:p}=this,c=i.pointPlacement;return c==="between"&&(c=p.reversed?-.5:.5),X(c)?c*(i.pointRange||p.pointRange):0}isPointInside(i){let{chart:p,xAxis:c,yAxis:w}=this,{plotX:C=-1,plotY:z=-1}=i;return z>=0&&z<=(w?w.len:p.plotHeight)&&C>=0&&C<=(c?c.len:p.plotWidth)}drawTracker(){var N;let i=this,p=i.options,c=p.trackByArea,w=[].concat((c?i.areaPath:i.graphPath)||[]),C=i.chart,z=C.pointer,G=C.renderer,U=((N=C.options.tooltip)==null?void 0:N.snap)||0,Z=()=>{p.enableMouseTracking&&C.hoverSeries!==i&&i.onMouseOver()},rt="rgba(192,192,192,"+(m?1e-4:.002)+")",it=i.tracker;it?it.attr({d:w}):i.graph&&(i.tracker=it=G.path(w).attr({visibility:i.visible?"inherit":"hidden",zIndex:2}).addClass(c?"highcharts-tracker-area":"highcharts-tracker-line").add(i.group),C.styledMode||it.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:rt,fill:c?rt:"none","stroke-width":i.graph.strokeWidth()+(c?0:2*U)}),[i.tracker,i.markerGroup,i.dataLabelsGroup].forEach(E=>{E&&(E.addClass("highcharts-tracker").on("mouseover",Z).on("mouseout",W=>{z==null||z.onTrackerMouseOut(W)}),p.cursor&&!C.styledMode&&E.css({cursor:p.cursor}),E.on("touchstart",Z))})),a(this,"afterDrawTracker")}addPoint(i,p,c,w,C){let z,G,U=this.options,Z=this.data,rt=this.chart,it=this.xAxis,N=it&&it.hasNames&&it.names,E=U.data,W=this.xData;p=F(p,!0);let H={series:this};this.pointClass.prototype.applyOptions.apply(H,[i]);let K=H.x;if(G=W.length,this.requireSorting&&K<W[G-1])for(z=!0;G&&W[G-1]>K;)G--;this.updateParallelArrays(H,"splice",[G,0,0]),this.updateParallelArrays(H,G),N&&H.name&&(N[K]=H.name),E.splice(G,0,i),(z||this.processedData)&&(this.data.splice(G,0,null),this.processData()),U.legendType==="point"&&this.generatePoints(),c&&(Z[0]&&Z[0].remove?Z[0].remove(!1):(Z.shift(),this.updateParallelArrays(H,"shift"),E.shift())),C!==!1&&a(this,"addPoint",{point:H}),this.isDirty=!0,this.isDirtyData=!0,p&&rt.redraw(w)}removePoint(i,p,c){let w=this,C=w.data,z=C[i],G=w.points,U=w.chart,Z=function(){G&&G.length===C.length&&G.splice(i,1),C.splice(i,1),w.options.data.splice(i,1),w.updateParallelArrays(z||{series:w},"splice",[i,1]),z&&z.destroy(),w.isDirty=!0,w.isDirtyData=!0,p&&U.redraw()};R(c,U),p=F(p,!0),z?z.firePointEvent("remove",null,Z):Z()}remove(i,p,c,w){let C=this,z=C.chart;function G(){C.destroy(w),z.isDirtyLegend=z.isDirtyBox=!0,z.linkSeries(w),F(i,!0)&&z.redraw(p)}c!==!1?a(C,"remove",null,G):G()}update(i,p){var tt,_,st;a(this,"update",{options:i=u(i,this.userOptions)});let c=this,w=c.chart,C=c.userOptions,z=c.initialType||c.type,G=w.options.plotOptions,U=S[z].prototype,Z=c.finishedAnimating&&{animation:!1},rt={},it,N,E=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],W=i.type||C.type||w.options.chart.type,H=!(this.hasDerivedData||W&&W!==this.type||i.pointStart!==void 0||i.pointInterval!==void 0||i.relativeXValue!==void 0||i.joinBy||i.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(ot=>c.hasOptionChanged(ot)));W=W||z,H&&(E.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),i.visible!==!1&&E.push("area","graph"),c.parallelArrays.forEach(function(ot){E.push(ot+"Data")}),i.data&&(i.dataSorting&&t(c.options.dataSorting,i.dataSorting),this.setData(i.data,!1))),i=L(C,{index:C.index===void 0?c.index:C.index,pointStart:((tt=G==null?void 0:G.series)==null?void 0:tt.pointStart)??C.pointStart??((_=c.xData)==null?void 0:_[0])},!H&&{data:c.options.data},i,Z),H&&i.data&&(i.data=c.options.data),(E=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(E)).forEach(function(ot){E[ot]=c[ot],delete c[ot]});let K=!1;if(S[W]){if(K=W!==c.type,c.remove(!1,!1,!1,!0),K)if(w.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(c,S[W].prototype);else{let ot=Object.hasOwnProperty.call(c,"hcEvents")&&c.hcEvents;for(N in U)c[N]=void 0;t(c,S[W].prototype),ot?c.hcEvents=ot:delete c.hcEvents}}else e(17,!0,w,{missingModuleFor:W});if(E.forEach(function(ot){c[ot]=E[ot]}),c.init(w,i),H&&this.points)for(let ot of((it=c.options).visible===!1?(rt.graphic=1,rt.dataLabel=1):(this.hasMarkerChanged(it,C)&&(rt.graphic=1),(st=c.hasDataLabels)!=null&&st.call(c)||(rt.dataLabel=1)),this.points))ot&&ot.series&&(ot.resolveColor(),Object.keys(rt).length&&ot.destroyElements(rt),it.showInLegend===!1&&ot.legendItem&&w.legend.destroyItem(ot));c.initialType=z,w.linkSeries(),w.setSortedData(),K&&c.linkedSeries.length&&(c.isDirtyData=!0),a(this,"afterUpdate"),F(p,!0)&&w.redraw(!!H&&void 0)}setName(i){this.name=this.options.name=this.userOptions.name=i,this.chart.isDirtyLegend=!0}hasOptionChanged(i){var G,U;let p=this.chart,c=this.options[i],w=p.options.plotOptions,C=this.userOptions[i],z=F((G=w==null?void 0:w[this.type])==null?void 0:G[i],(U=w==null?void 0:w.series)==null?void 0:U[i]);return C&&!k(z)?c!==C:c!==F(z,c)}onMouseOver(){let i=this.chart,p=i.hoverSeries,c=i.pointer;c==null||c.setHoverChartIndex(),p&&p!==this&&p.onMouseOut(),this.options.events.mouseOver&&a(this,"mouseOver"),this.setState("hover"),i.hoverSeries=this}onMouseOut(){let i=this.options,p=this.chart,c=p.tooltip,w=p.hoverPoint;p.hoverSeries=null,w&&w.onMouseOut(),this&&i.events.mouseOut&&a(this,"mouseOut"),c&&!this.stickyTracking&&(!c.shared||this.noSharedTooltip)&&c.hide(),p.series.forEach(function(C){C.setState("",!0)})}setState(i,p){let c=this,w=c.options,C=c.graph,z=w.inactiveOtherPoints,G=w.states,U=F(G[i||"normal"]&&G[i||"normal"].animation,c.chart.options.chart.animation),Z=w.lineWidth,rt=w.opacity;if(i=i||"",c.state!==i&&([c.group,c.markerGroup,c.dataLabelsGroup].forEach(function(it){it&&(c.state&&it.removeClass("highcharts-series-"+c.state),i&&it.addClass("highcharts-series-"+i))}),c.state=i,!c.chart.styledMode)){if(G[i]&&G[i].enabled===!1)return;if(i&&(Z=G[i].lineWidth||Z+(G[i].lineWidthPlus||0),rt=F(G[i].opacity,rt)),C&&!C.dashstyle&&X(Z))for(let it of[C,...this.zones.map(N=>N.graph)])it==null||it.animate({"stroke-width":Z},U);z||[c.group,c.markerGroup,c.dataLabelsGroup,c.labelBySeries].forEach(function(it){it&&it.animate({opacity:rt},U)})}p&&z&&c.points&&c.setAllPointsToState(i||void 0)}setAllPointsToState(i){this.points.forEach(function(p){p.setState&&p.setState(i)})}setVisible(i,p){var U;let c=this,w=c.chart,C=w.options.chart.ignoreHiddenSeries,z=c.visible;c.visible=i=c.options.visible=c.userOptions.visible=i===void 0?!z:i;let G=i?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Z=>{var rt;(rt=c[Z])==null||rt[G]()}),(w.hoverSeries===c||((U=w.hoverPoint)==null?void 0:U.series)===c)&&c.onMouseOut(),c.legendItem&&w.legend.colorizeItem(c,i),c.isDirty=!0,c.options.stacking&&w.series.forEach(Z=>{Z.options.stacking&&Z.visible&&(Z.isDirty=!0)}),c.linkedSeries.forEach(Z=>{Z.setVisible(i,!1)}),C&&(w.isDirtyBox=!0),a(c,G),p!==!1&&w.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(i){this.selected=i=this.options.selected=i===void 0?!this.selected:i,this.checkbox&&(this.checkbox.checked=i),a(this,i?"select":"unselect")}shouldShowTooltip(i,p,c={}){return c.series=this,c.visiblePlotOnly=!0,this.chart.isInsidePlot(i,p,c)}drawLegendSymbol(i,p){var c;(c=lt[this.options.legendSymbol||"rectangle"])==null||c.call(this,i,p)}}return x.defaultOptions=at,x.types=q.seriesTypes,x.registerType=q.registerSeriesType,t(x.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:nt,requireSorting:!0,sorted:!0}),q.series=x,x}),yt(Y,"Core/Legend/Legend.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Foundation.js"],Y["Core/Globals.js"],Y["Core/Series/Series.js"],Y["Core/Series/Point.js"],Y["Core/Renderer/RendererUtilities.js"],Y["Core/Templating.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt,nt,at,q){var $;let{animObject:V,setAnimation:M}=J,{registerEventOptions:R}=et,{composed:j,marginNames:P}=ht,{distribute:m}=nt,{format:b}=at,{addEvent:S,createElement:A,css:d,defined:v,discardElement:B,find:O,fireEvent:k,isNumber:r,merge:u,pick:s,pushUnique:e,relativeLength:t,stableSort:o,syncTimeout:a}=q;class f{constructor(h,T){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=h,this.setOptions(T),T.enabled&&(this.render(),R(this,T),S(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),S(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(h){let T=s(h.padding,8);this.options=h,this.chart.styledMode||(this.itemStyle=h.itemStyle,this.itemHiddenStyle=u(this.itemStyle,h.itemHiddenStyle)),this.itemMarginTop=h.itemMarginTop,this.itemMarginBottom=h.itemMarginBottom,this.padding=T,this.initialItemY=T-5,this.symbolWidth=s(h.symbolWidth,16),this.pages=[],this.proximate=h.layout==="proximate"&&!this.chart.inverted,this.baseline=void 0}update(h,T){let X=this.chart;this.setOptions(u(!0,this.options,h)),"events"in this.options&&R(this,this.options),this.destroy(),X.isDirtyLegend=X.isDirtyBox=!0,s(T,!0)&&X.redraw(),k(this,"afterUpdate",{redraw:T})}colorizeItem(h,T){let{area:X,group:g,label:L,line:I,symbol:F}=h.legendItem||{};if(g==null||g[T?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:Q={}}=this,l=Q.color,{fillColor:n,fillOpacity:x,lineColor:D,marker:i}=h.options,p=c=>(!T&&(c.fill&&(c.fill=l),c.stroke&&(c.stroke=l)),c);L==null||L.css(u(T?this.itemStyle:Q)),I==null||I.attr(p({stroke:D||h.color})),F&&F.attr(p(i&&F.isMarker?h.pointAttribs():{fill:h.color})),X==null||X.attr(p({fill:n||h.color,"fill-opacity":n?1:x??.75}))}k(this,"afterColorizeItem",{item:h,visible:T})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(h){let{group:T,x:X=0,y:g=0}=h.legendItem||{},L=this.options,I=L.symbolPadding,F=!L.rtl,Q=h.checkbox;if(T&&T.element){let l={translateX:F?X:this.legendWidth-X-2*I-4,translateY:g};T[v(T.translateY)?"animate":"attr"](l,void 0,()=>{k(this,"afterPositionItem",{item:h})})}Q&&(Q.x=X,Q.y=g)}destroyItem(h){let T=h.checkbox,X=h.legendItem||{};for(let g of["group","label","line","symbol"])X[g]&&(X[g]=X[g].destroy());T&&B(T),h.legendItem=void 0}destroy(){for(let h of this.getAllItems())this.destroyItem(h);for(let h of["clipRect","up","down","pager","nav","box","title","group"])this[h]&&(this[h]=this[h].destroy());this.display=null}positionCheckboxes(){let h,T=this.group&&this.group.alignAttr,X=this.clipHeight||this.legendHeight,g=this.titleHeight;T&&(h=T.translateY,this.allItems.forEach(function(L){let I,F=L.checkbox;F&&(I=h+g+F.y+(this.scrollOffset||0)+3,d(F,{left:T.translateX+L.checkboxOffset+F.x-20+"px",top:I+"px",display:this.proximate||I>h-6&&I<h+X-6?"":"none"}))},this))}renderTitle(){let h=this.options,T=this.padding,X=h.title,g,L=0;X.text&&(this.title||(this.title=this.chart.renderer.label(X.text,T-3,T-4,void 0,void 0,void 0,h.useHTML,void 0,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(X.style),this.title.add(this.group)),X.width||this.title.css({width:this.maxLegendWidth+"px"}),L=(g=this.title.getBBox()).height,this.offsetWidth=g.width,this.contentGroup.attr({translateY:L})),this.titleHeight=L}setText(h){let T=this.options;h.legendItem.label.attr({text:T.labelFormat?b(T.labelFormat,h,this.chart):T.labelFormatter.call(h)})}renderItem(h){let T=h.legendItem=h.legendItem||{},X=this.chart,g=X.renderer,L=this.options,I=L.layout==="horizontal",F=this.symbolWidth,Q=L.symbolPadding||0,l=this.itemStyle,n=this.itemHiddenStyle,x=I?s(L.itemDistance,20):0,D=!L.rtl,i=!h.series,p=!i&&h.series.drawLegendSymbol?h.series:h,c=p.options,w=!!this.createCheckboxForItem&&c&&c.showCheckbox,C=L.useHTML,z=h.options.className,G=T.label,U=F+Q+x+(w?20:0);!G&&(T.group=g.g("legend-item").addClass("highcharts-"+p.type+"-series highcharts-color-"+h.colorIndex+(z?" "+z:"")+(i?" highcharts-series-"+h.index:"")).attr({zIndex:1}).add(this.scrollGroup),T.label=G=g.text("",D?F+Q:-Q,this.baseline||0,C),X.styledMode||G.css(u(h.visible?l:n)),G.attr({align:D?"left":"right",zIndex:2}).add(T.group),!this.baseline&&(this.fontMetrics=g.fontMetrics(G),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,G.attr("y",this.baseline),this.symbolHeight=s(L.symbolHeight,this.fontMetrics.f),L.squareSymbol&&(this.symbolWidth=s(L.symbolWidth,Math.max(this.symbolHeight,16)),U=this.symbolWidth+Q+x+(w?20:0),D&&G.attr("x",this.symbolWidth+Q))),p.drawLegendSymbol(this,h),this.setItemEvents&&this.setItemEvents(h,G,C)),w&&!h.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(h),this.colorizeItem(h,h.visible),(X.styledMode||!l.width)&&G.css({width:(L.itemWidth||this.widthOption||X.spacingBox.width)-U+"px"}),this.setText(h);let Z=G.getBBox(),rt=this.fontMetrics&&this.fontMetrics.h||0;h.itemWidth=h.checkboxOffset=L.itemWidth||T.labelWidth||Z.width+U,this.maxItemWidth=Math.max(this.maxItemWidth,h.itemWidth),this.totalItemWidth+=h.itemWidth,this.itemHeight=h.itemHeight=Math.round(T.labelHeight||(Z.height>1.5*rt?Z.height:rt))}layoutItem(h){let T=this.options,X=this.padding,g=T.layout==="horizontal",L=h.itemHeight,I=this.itemMarginBottom,F=this.itemMarginTop,Q=g?s(T.itemDistance,20):0,l=this.maxLegendWidth,n=T.alignColumns&&this.totalItemWidth>l?this.maxItemWidth:h.itemWidth,x=h.legendItem||{};g&&this.itemX-X+n>l&&(this.itemX=X,this.lastLineHeight&&(this.itemY+=F+this.lastLineHeight+I),this.lastLineHeight=0),this.lastItemY=F+this.itemY+I,this.lastLineHeight=Math.max(L,this.lastLineHeight),x.x=this.itemX,x.y=this.itemY,g?this.itemX+=n:(this.itemY+=F+L+I,this.lastLineHeight=L),this.offsetWidth=this.widthOption||Math.max((g?this.itemX-X-(h.checkbox?0:Q):n)+X,this.offsetWidth)}getAllItems(){let h=[];return this.chart.series.forEach(function(T){let X=T&&T.options;T&&s(X.showInLegend,!v(X.linkedTo)&&void 0,!0)&&(h=h.concat((T.legendItem||{}).labels||(X.legendType==="point"?T.data:T)))}),k(this,"afterGetAllItems",{allItems:h}),h}getAlignment(){let h=this.options;return this.proximate?h.align.charAt(0)+"tv":h.floating?"":h.align.charAt(0)+h.verticalAlign.charAt(0)+h.layout.charAt(0)}adjustMargins(h,T){let X=this.chart,g=this.options,L=this.getAlignment();L&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(I,F){I.test(L)&&!v(h[F])&&(X[P[F]]=Math.max(X[P[F]],X.legend[(F+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][F]*g[F%2?"x":"y"]+s(g.margin,12)+T[F]+(X.titleOffset[F]||0)))})}proximatePositions(){let h,T=this.chart,X=[],g=this.options.align==="left";for(let L of(this.allItems.forEach(function(I){let F,Q,l=g,n,x;I.yAxis&&(I.xAxis.options.reversed&&(l=!l),I.points&&(F=O(l?I.points:I.points.slice(0).reverse(),function(D){return r(D.plotY)})),Q=this.itemMarginTop+I.legendItem.label.getBBox().height+this.itemMarginBottom,x=I.yAxis.top-T.plotTop,n=I.visible?(F?F.plotY:I.yAxis.height)+(x-.3*Q):x+I.yAxis.height,X.push({target:n,size:Q,item:I}))},this),m(X,T.plotHeight)))h=L.item.legendItem||{},r(L.pos)&&(h.y=T.plotTop-T.spacing[0]+L.pos)}render(){let h=this.chart,T=h.renderer,X=this.options,g=this.padding,L=this.getAllItems(),I,F,Q,l=this.group,n,x=this.box;this.itemX=g,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=t(X.width,h.spacingBox.width-g),n=h.spacingBox.width-2*g-X.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(n/=2),this.maxLegendWidth=this.widthOption||n,l||(this.group=l=T.g("legend").addClass(X.className||"").attr({zIndex:7}).add(),this.contentGroup=T.g().attr({zIndex:1}).add(l),this.scrollGroup=T.g().add(this.contentGroup)),this.renderTitle(),o(L,(D,i)=>(D.options&&D.options.legendIndex||0)-(i.options&&i.options.legendIndex||0)),X.reversed&&L.reverse(),this.allItems=L,this.display=I=!!L.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,L.forEach(this.renderItem,this),L.forEach(this.layoutItem,this),F=(this.widthOption||this.offsetWidth)+g,Q=this.lastItemY+this.lastLineHeight+this.titleHeight,Q=this.handleOverflow(Q)+g,x||(this.box=x=T.rect().addClass("highcharts-legend-box").attr({r:X.borderRadius}).add(l)),h.styledMode||x.attr({stroke:X.borderColor,"stroke-width":X.borderWidth||0,fill:X.backgroundColor||"none"}).shadow(X.shadow),F>0&&Q>0&&x[x.placed?"animate":"attr"](x.crisp.call({},{x:0,y:0,width:F,height:Q},x.strokeWidth())),l[I?"show":"hide"](),h.styledMode&&l.getStyle("display")==="none"&&(F=Q=0),this.legendWidth=F,this.legendHeight=Q,I&&this.align(),this.proximate||this.positionItems(),k(this,"afterRender")}align(h=this.chart.spacingBox){let T=this.chart,X=this.options,g=h.y;/(lth|ct|rth)/.test(this.getAlignment())&&T.titleOffset[0]>0?g+=T.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&T.titleOffset[2]>0&&(g-=T.titleOffset[2]),g!==h.y&&(h=u(h,{y:g})),T.hasRendered||(this.group.placed=!1),this.group.align(u(X,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":X.verticalAlign}),!0,h)}handleOverflow(h){let T=this,X=this.chart,g=X.renderer,L=this.options,I=L.y,F=L.verticalAlign==="top",Q=this.padding,l=L.maxHeight,n=L.navigation,x=s(n.animation,!0),D=n.arrowSize||12,i=this.pages,p=this.allItems,c=function(it){typeof it=="number"?rt.attr({height:it}):rt&&(T.clipRect=rt.destroy(),T.contentGroup.clip()),T.contentGroup.div&&(T.contentGroup.div.style.clip=it?"rect("+Q+"px,9999px,"+(Q+it)+"px,0)":"auto")},w=function(it){return T[it]=g.circle(0,0,1.3*D).translate(D/2,D/2).add(Z),X.styledMode||T[it].attr("fill","rgba(0,0,0,0.0001)"),T[it]},C,z,G,U=X.spacingBox.height+(F?-I:I)-Q,Z=this.nav,rt=this.clipRect;return L.layout!=="horizontal"||L.verticalAlign==="middle"||L.floating||(U/=2),l&&(U=Math.min(U,l)),i.length=0,h&&U>0&&h>U&&n.enabled!==!1?(this.clipHeight=C=Math.max(U-20-this.titleHeight-Q,0),this.currentPage=s(this.currentPage,1),this.fullHeight=h,p.forEach((it,N)=>{let E=(G=it.legendItem||{}).y||0,W=Math.round(G.label.getBBox().height),H=i.length;(!H||E-i[H-1]>C&&(z||E)!==i[H-1])&&(i.push(z||E),H++),G.pageIx=H-1,z&&((p[N-1].legendItem||{}).pageIx=H-1),N===p.length-1&&E+W-i[H-1]>C&&E>i[H-1]&&(i.push(E),G.pageIx=H),E!==z&&(z=E)}),rt||(rt=T.clipRect=g.clipRect(0,Q-2,9999,0),T.contentGroup.clip(rt)),c(C),Z||(this.nav=Z=g.g().attr({zIndex:1}).add(this.group),this.up=g.symbol("triangle",0,0,D,D).add(Z),w("upTracker").on("click",function(){T.scroll(-1,x)}),this.pager=g.text("",15,10).addClass("highcharts-legend-navigation"),!X.styledMode&&n.style&&this.pager.css(n.style),this.pager.add(Z),this.down=g.symbol("triangle-down",0,0,D,D).add(Z),w("downTracker").on("click",function(){T.scroll(1,x)})),T.scroll(0),h=U):Z&&(c(),this.nav=Z.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),h}scroll(h,T){let X=this.chart,g=this.pages,L=g.length,I=this.clipHeight,F=this.options.navigation,Q=this.pager,l=this.padding,n=this.currentPage+h;n>L&&(n=L),n>0&&(T!==void 0&&M(T,X),this.nav.attr({translateX:l,translateY:I+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(x){x.attr({class:n===1?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),Q.attr({text:n+"/"+L}),[this.down,this.downTracker].forEach(function(x){x.attr({x:18+this.pager.getBBox().width,class:n===L?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),X.styledMode||(this.up.attr({fill:n===1?F.inactiveColor:F.activeColor}),this.upTracker.css({cursor:n===1?"default":"pointer"}),this.down.attr({fill:n===L?F.inactiveColor:F.activeColor}),this.downTracker.css({cursor:n===L?"default":"pointer"})),this.scrollOffset=-g[n-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=n,this.positionCheckboxes(),a(()=>{k(this,"afterScroll",{currentPage:n})},V(s(T,X.renderer.globalAnimation,!0)).duration))}setItemEvents(h,T,X){let g=this,L=h.legendItem||{},I=g.chart.renderer.boxWrapper,F=h instanceof lt,Q=h instanceof ct,l="highcharts-legend-"+(F?"point":"series")+"-active",n=g.chart.styledMode,x=X?[T,L.symbol]:[L.group],D=i=>{g.allItems.forEach(p=>{h!==p&&[p].concat(p.linkedSeries||[]).forEach(c=>{c.setState(i,!F)})})};for(let i of x)i&&i.on("mouseover",function(){h.visible&&D("inactive"),h.setState("hover"),h.visible&&I.addClass(l),n||T.css(g.options.itemHoverStyle)}).on("mouseout",function(){g.chart.styledMode||T.css(u(h.visible?g.itemStyle:g.itemHiddenStyle)),D(""),I.removeClass(l),h.setState()}).on("click",function(p){let c=function(){h.setVisible&&h.setVisible(),D(h.visible?"inactive":"")};I.removeClass(l),k(g,"itemClick",{browserEvent:p,legendItem:h},c),F?h.firePointEvent("legendItemClick",{browserEvent:p}):Q&&k(h,"legendItemClick",{browserEvent:p})})}createCheckboxForItem(h){h.checkbox=A("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:h.selected,defaultChecked:h.selected},this.options.itemCheckboxStyle,this.chart.container),S(h.checkbox,"click",function(T){let X=T.target;k(h.series||h,"checkboxClick",{checked:X.checked,item:h},function(){h.select()})})}}return($=f||(f={})).compose=function(y){e(j,"Core.Legend")&&S(y,"beforeMargins",function(){this.legend=new $(this,this.options.legend)})},f}),yt(Y,"Core/Chart/Chart.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Axis/Axis.js"],Y["Core/Defaults.js"],Y["Core/Templating.js"],Y["Core/Foundation.js"],Y["Core/Globals.js"],Y["Core/Renderer/RendererRegistry.js"],Y["Core/Series/Series.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Renderer/SVG/SVGRenderer.js"],Y["Core/Time.js"],Y["Core/Utilities.js"],Y["Core/Renderer/HTML/AST.js"],Y["Core/Axis/Tick.js"]],function(J,et,ht,ct,lt,nt,at,q,$,V,M,R,j,P){let{animate:m,animObject:b,setAnimation:S}=J,{defaultOptions:A,defaultTime:d}=ht,{numberFormat:v}=ct,{registerEventOptions:B}=lt,{charts:O,doc:k,marginNames:r,svg:u,win:s}=nt,{seriesTypes:e}=$,{addEvent:t,attr:o,createElement:a,css:f,defined:y,diffObjects:h,discardElement:T,erase:X,error:g,extend:L,find:I,fireEvent:F,getStyle:Q,isArray:l,isNumber:n,isObject:x,isString:D,merge:i,objectEach:p,pick:c,pInt:w,relativeLength:C,removeEvent:z,splat:G,syncTimeout:U,uniqueKey:Z}=R;class rt{static chart(N,E,W){return new rt(N,E,W)}constructor(N,E,W){this.sharedClips={};let H=[...arguments];(D(N)||N.nodeName)&&(this.renderTo=H.shift()),this.init(H[0],H[1])}setZoomOptions(){let N=this.options.chart,E=N.zooming;this.zooming={...E,type:c(N.zoomType,E.type),key:c(N.zoomKey,E.key),pinchType:c(N.pinchType,E.pinchType),singleTouch:c(N.zoomBySingleTouch,E.singleTouch,!1),resetButton:i(E.resetButton,N.resetZoomButton)}}init(N,E){F(this,"init",{args:arguments},function(){let W=i(A,N),H=W.chart;this.userOptions=L({},N),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=E,this.isResizing=0,this.options=W,this.axes=[],this.series=[],this.time=N.time&&Object.keys(N.time).length?new M(N.time):nt.time,this.numberFormatter=H.numberFormatter||v,this.styledMode=H.styledMode,this.hasCartesianSeries=H.showAxes,this.index=O.length,O.push(this),nt.chartCount++,B(this,H),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),F(this,"afterInit"),this.firstRender()})}initSeries(N){let E=this.options.chart,W=N.type||E.type,H=e[W];H||g(17,!0,this,{missingModuleFor:W});let K=new H;return typeof K.init=="function"&&K.init(this,N),K}setSortedData(){this.getSeriesOrderByLinks().forEach(function(N){N.points||N.data||!N.enabledDataSorting||N.setData(N.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(N,E){return N.linkedSeries.length||E.linkedSeries.length?E.linkedSeries.length-N.linkedSeries.length:0})}orderItems(N,E=0){let W=this[N],H=this.options[N]=G(this.options[N]).slice(),K=this.userOptions[N]=this.userOptions[N]?G(this.userOptions[N]).slice():[];if(this.hasRendered&&(H.splice(E),K.splice(E)),W)for(let tt=E,_=W.length;tt<_;++tt){let st=W[tt];st&&(st.index=tt,st instanceof q&&(st.name=st.getName()),st.options.isInternal||(H[tt]=st.options,K[tt]=st.userOptions))}}isInsidePlot(N,E,W={}){var gt;let{inverted:H,plotBox:K,plotLeft:tt,plotTop:_,scrollablePlotBox:st}=this,{scrollLeft:ot=0,scrollTop:dt=0}=W.visiblePlotOnly&&((gt=this.scrollablePlotArea)==null?void 0:gt.scrollingContainer)||{},pt=W.series,ut=W.visiblePlotOnly&&st||K,mt=W.inverted?E:N,xt=W.inverted?N:E,ft={x:mt,y:xt,isInsidePlot:!0,options:W};if(!W.ignoreX){let vt=pt&&(H&&!this.polar?pt.yAxis:pt.xAxis)||{pos:tt,len:1/0},bt=W.paneCoordinates?vt.pos+mt:tt+mt;bt>=Math.max(ot+tt,vt.pos)&&bt<=Math.min(ot+tt+ut.width,vt.pos+vt.len)||(ft.isInsidePlot=!1)}if(!W.ignoreY&&ft.isInsidePlot){let vt=!H&&W.axis&&!W.axis.isXAxis&&W.axis||pt&&(H?pt.xAxis:pt.yAxis)||{pos:_,len:1/0},bt=W.paneCoordinates?vt.pos+xt:_+xt;bt>=Math.max(dt+_,vt.pos)&&bt<=Math.min(dt+_+ut.height,vt.pos+vt.len)||(ft.isInsidePlot=!1)}return F(this,"afterIsInsidePlot",ft),ft.isInsidePlot}redraw(N){F(this,"beforeRedraw");let E=this.hasCartesianSeries?this.axes:this.colorAxis||[],W=this.series,H=this.pointer,K=this.legend,tt=this.userOptions.legend,_=this.renderer,st=_.isHidden(),ot=[],dt,pt,ut,mt=this.isDirtyBox,xt=this.isDirtyLegend,ft;for(_.rootFontSize=_.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),S(!!this.hasRendered&&N,this),st&&this.temporaryDisplay(),this.layOutTitles(!1),ut=W.length;ut--;)if(((ft=W[ut]).options.stacking||ft.options.centerInCategory)&&(pt=!0,ft.isDirty)){dt=!0;break}if(dt)for(ut=W.length;ut--;)(ft=W[ut]).options.stacking&&(ft.isDirty=!0);W.forEach(function(gt){gt.isDirty&&(gt.options.legendType==="point"?(typeof gt.updateTotals=="function"&>.updateTotals(),xt=!0):tt&&(tt.labelFormatter||tt.labelFormat)&&(xt=!0)),gt.isDirtyData&&F(gt,"updatedData")}),xt&&K&&K.options.enabled&&(K.render(),this.isDirtyLegend=!1),pt&&this.getStacks(),E.forEach(function(gt){gt.updateNames(),gt.setScale()}),this.getMargins(),E.forEach(function(gt){gt.isDirty&&(mt=!0)}),E.forEach(function(gt){let vt=gt.min+","+gt.max;gt.extKey!==vt&&(gt.extKey=vt,ot.push(function(){F(gt,"afterSetExtremes",L(gt.eventArgs,gt.getExtremes())),delete gt.eventArgs})),(mt||pt)&>.redraw()}),mt&&this.drawChartBox(),F(this,"predraw"),W.forEach(function(gt){(mt||gt.isDirty)&>.visible&>.redraw(),gt.isDirtyData=!1}),H&&H.reset(!0),_.draw(),F(this,"redraw"),F(this,"render"),st&&this.temporaryDisplay(!0),ot.forEach(function(gt){gt.call()})}get(N){let E=this.series;function W(K){return K.id===N||K.options&&K.options.id===N}let H=I(this.axes,W)||I(this.series,W);for(let K=0;!H&&K<E.length;K++)H=I(E[K].points||[],W);return H}getAxes(){let N=this.userOptions;for(let E of(F(this,"getAxes"),["xAxis","yAxis"]))for(let W of N[E]=G(N[E]||{}))new et(this,W,E);F(this,"afterGetAxes")}getSelectedPoints(){return this.series.reduce((N,E)=>(E.getPointsCollection().forEach(W=>{c(W.selectedStaging,W.selected)&&N.push(W)}),N),[])}getSelectedSeries(){return this.series.filter(function(N){return N.selected})}setTitle(N,E,W){this.applyDescription("title",N),this.applyDescription("subtitle",E),this.applyDescription("caption",void 0),this.layOutTitles(W)}applyDescription(N,E){let W=this,H=this.options[N]=i(this.options[N],E),K=this[N];K&&E&&(this[N]=K=K.destroy()),H&&!K&&((K=this.renderer.text(H.text,0,0,H.useHTML).attr({align:H.align,class:"highcharts-"+N,zIndex:H.zIndex||4}).add()).update=function(tt,_){W.applyDescription(N,tt),W.layOutTitles(_)},this.styledMode||K.css(L(N==="title"?{fontSize:this.options.isStock?"1em":"1.2em"}:{},H.style)),this[N]=K)}layOutTitles(N=!0){let E=[0,0,0],W=this.renderer,H=this.spacingBox;["title","subtitle","caption"].forEach(function(tt){let _=this[tt],st=this.options[tt],ot=st.verticalAlign||"top",dt=tt==="title"?ot==="top"?-3:0:ot==="top"?E[0]+2:0;if(_){_.css({width:(st.width||H.width+(st.widthAdjust||0))+"px"});let pt=W.fontMetrics(_).b,ut=Math.round(_.getBBox(st.useHTML).height);_.align(L({y:ot==="bottom"?pt:dt+pt,height:ut},st),!1,"spacingBox"),st.floating||(ot==="top"?E[0]=Math.ceil(E[0]+ut):ot==="bottom"&&(E[2]=Math.ceil(E[2]+ut)))}},this),E[0]&&(this.options.title.verticalAlign||"top")==="top"&&(E[0]+=this.options.title.margin),E[2]&&this.options.caption.verticalAlign==="bottom"&&(E[2]+=this.options.caption.margin);let K=!this.titleOffset||this.titleOffset.join(",")!==E.join(",");this.titleOffset=E,F(this,"afterLayOutTitles"),!this.isDirtyBox&&K&&(this.isDirtyBox=this.isDirtyLegend=K,this.hasRendered&&N&&this.isDirtyBox&&this.redraw())}getContainerBox(){let N=[].map.call(this.renderTo.children,W=>{if(W!==this.container){let H=W.style.display;return W.style.display="none",[W,H]}}),E={width:Q(this.renderTo,"width",!0)||0,height:Q(this.renderTo,"height",!0)||0};return N.filter(Boolean).forEach(([W,H])=>{W.style.display=H}),E}getChartSize(){var tt;let N=this.options.chart,E=N.width,W=N.height,H=this.getContainerBox(),K=H.height>1&&!(!((tt=this.renderTo.parentElement)!=null&&tt.style.height)&&this.renderTo.style.height==="100%");this.chartWidth=Math.max(0,E||H.width||600),this.chartHeight=Math.max(0,C(W,this.chartWidth)||(K?H.height:400)),this.containerBox=H}temporaryDisplay(N){let E=this.renderTo,W;if(N)for(;E&&E.style;)E.hcOrigStyle&&(f(E,E.hcOrigStyle),delete E.hcOrigStyle),E.hcOrigDetached&&(k.body.removeChild(E),E.hcOrigDetached=!1),E=E.parentNode;else for(;E&&E.style&&(k.body.contains(E)||E.parentNode||(E.hcOrigDetached=!0,k.body.appendChild(E)),(Q(E,"display",!1)==="none"||E.hcOricDetached)&&(E.hcOrigStyle={display:E.style.display,height:E.style.height,overflow:E.style.overflow},W={display:"block",overflow:"hidden"},E!==this.renderTo&&(W.height=0),f(E,W),E.offsetWidth||E.style.setProperty("display","block","important")),(E=E.parentNode)!==k.body););}setClassName(N){this.container.className="highcharts-container "+(N||"")}getContainer(){var ut;let N=this.options,E=N.chart,W="data-highcharts-chart",H=Z(),K,tt=this.renderTo;tt||(this.renderTo=tt=E.renderTo),D(tt)&&(this.renderTo=tt=k.getElementById(tt)),tt||g(13,!0,this);let _=w(o(tt,W));n(_)&&O[_]&&O[_].hasRendered&&O[_].destroy(),o(tt,W,this.index),tt.innerHTML=j.emptyHTML,E.skipClone||tt.offsetWidth||this.temporaryDisplay(),this.getChartSize();let st=this.chartHeight,ot=this.chartWidth;f(tt,{overflow:"hidden"}),this.styledMode||(K=L({position:"relative",overflow:"hidden",width:ot+"px",height:st+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},E.style||{}));let dt=a("div",{id:H},K,tt);this.container=dt,this.getChartSize(),ot===this.chartWidth||(ot=this.chartWidth,this.styledMode||f(dt,{width:c((ut=E.style)==null?void 0:ut.width,ot+"px")})),this.containerBox=this.getContainerBox(),this._cursor=dt.style.cursor;let pt=E.renderer||!u?at.getRendererType(E.renderer):V;if(this.renderer=new pt(dt,ot,st,void 0,E.forExport,N.exporting&&N.exporting.allowHTML,this.styledMode),S(void 0,this),this.setClassName(E.className),this.styledMode)for(let mt in N.defs)this.renderer.definition(N.defs[mt]);else this.renderer.setStyle(E.style);this.renderer.chartIndex=this.index,F(this,"afterGetContainer")}getMargins(N){let{spacing:E,margin:W,titleOffset:H}=this;this.resetMargins(),H[0]&&!y(W[0])&&(this.plotTop=Math.max(this.plotTop,H[0]+E[0])),H[2]&&!y(W[2])&&(this.marginBottom=Math.max(this.marginBottom,H[2]+E[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(W,E),F(this,"getMargins"),N||this.getAxisMargins()}getAxisMargins(){let N=this,E=N.axisOffset=[0,0,0,0],W=N.colorAxis,H=N.margin,K=function(tt){tt.forEach(function(_){_.visible&&_.getOffset()})};N.hasCartesianSeries?K(N.axes):W&&W.length&&K(W),r.forEach(function(tt,_){y(H[_])||(N[tt]+=E[_])}),N.setChartSize()}getOptions(){return h(this.userOptions,A)}reflow(N){var K;let E=this,W=E.containerBox,H=E.getContainerBox();(K=E.pointer)==null||delete K.chartPosition,!E.isPrinting&&!E.isResizing&&W&&H.width&&((H.width!==W.width||H.height!==W.height)&&(R.clearTimeout(E.reflowTimeout),E.reflowTimeout=U(function(){E.container&&E.setSize(void 0,void 0,!1)},N?100:0)),E.containerBox=H)}setReflow(){let N=this,E=W=>{var H;(H=N.options)!=null&&H.chart.reflow&&N.hasLoaded&&N.reflow(W)};if(typeof ResizeObserver=="function")new ResizeObserver(E).observe(N.renderTo);else{let W=t(s,"resize",E);t(this,"destroy",W)}}setSize(N,E,W){let H=this,K=H.renderer;H.isResizing+=1,S(W,H);let tt=K.globalAnimation;H.oldChartHeight=H.chartHeight,H.oldChartWidth=H.chartWidth,N!==void 0&&(H.options.chart.width=N),E!==void 0&&(H.options.chart.height=E),H.getChartSize();let{chartWidth:_,chartHeight:st,scrollablePixelsX:ot=0,scrollablePixelsY:dt=0}=H;(H.isDirtyBox||_!==H.oldChartWidth||st!==H.oldChartHeight)&&(H.styledMode||(tt?m:f)(H.container,{width:`${_+ot}px`,height:`${st+dt}px`},tt),H.setChartSize(!0),K.setSize(_,st,tt),H.axes.forEach(function(pt){pt.isDirty=!0,pt.setScale()}),H.isDirtyLegend=!0,H.isDirtyBox=!0,H.layOutTitles(),H.getMargins(),H.redraw(tt),H.oldChartHeight=void 0,F(H,"resize"),setTimeout(()=>{H&&F(H,"endResize")},b(tt).duration)),H.isResizing-=1}setChartSize(N){let E,W,H,K,{chartHeight:tt,chartWidth:_,inverted:st,spacing:ot,renderer:dt}=this,pt=this.clipOffset,ut=Math[st?"floor":"round"];this.plotLeft=E=Math.round(this.plotLeft),this.plotTop=W=Math.round(this.plotTop),this.plotWidth=H=Math.max(0,Math.round(_-E-this.marginRight)),this.plotHeight=K=Math.max(0,Math.round(tt-W-this.marginBottom)),this.plotSizeX=st?K:H,this.plotSizeY=st?H:K,this.spacingBox=dt.spacingBox={x:ot[3],y:ot[0],width:_-ot[3]-ot[1],height:tt-ot[0]-ot[2]},this.plotBox=dt.plotBox={x:E,y:W,width:H,height:K},pt&&(this.clipBox={x:ut(pt[3]),y:ut(pt[0]),width:ut(this.plotSizeX-pt[1]-pt[3]),height:ut(this.plotSizeY-pt[0]-pt[2])}),N||(this.axes.forEach(function(mt){mt.setAxisSize(),mt.setAxisTranslation()}),dt.alignElements()),F(this,"afterSetChartSize",{skipAxes:N})}resetMargins(){F(this,"resetMargins");let N=this,E=N.options.chart,W=E.plotBorderWidth||0,H=W/2;["margin","spacing"].forEach(function(K){let tt=E[K],_=x(tt)?tt:[tt,tt,tt,tt];["Top","Right","Bottom","Left"].forEach(function(st,ot){N[K][ot]=c(E[K+st],_[ot])})}),r.forEach(function(K,tt){N[K]=c(N.margin[tt],N.spacing[tt])}),N.axisOffset=[0,0,0,0],N.clipOffset=[H,H,H,H],N.plotBorderWidth=W}drawChartBox(){let N=this.options.chart,E=this.renderer,W=this.chartWidth,H=this.chartHeight,K=this.styledMode,tt=this.plotBGImage,_=N.backgroundColor,st=N.plotBackgroundColor,ot=N.plotBackgroundImage,dt=this.plotLeft,pt=this.plotTop,ut=this.plotWidth,mt=this.plotHeight,xt=this.plotBox,ft=this.clipRect,gt=this.clipBox,vt=this.chartBackground,bt=this.plotBackground,kt=this.plotBorder,Ct,St,At,wt="animate";vt||(this.chartBackground=vt=E.rect().addClass("highcharts-background").add(),wt="attr"),K?Ct=St=vt.strokeWidth():(St=(Ct=N.borderWidth||0)+(N.shadow?8:0),At={fill:_||"none"},(Ct||vt["stroke-width"])&&(At.stroke=N.borderColor,At["stroke-width"]=Ct),vt.attr(At).shadow(N.shadow)),vt[wt]({x:St/2,y:St/2,width:W-St-Ct%2,height:H-St-Ct%2,r:N.borderRadius}),wt="animate",bt||(wt="attr",this.plotBackground=bt=E.rect().addClass("highcharts-plot-background").add()),bt[wt](xt),!K&&(bt.attr({fill:st||"none"}).shadow(N.plotShadow),ot&&(tt?(ot!==tt.attr("href")&&tt.attr("href",ot),tt.animate(xt)):this.plotBGImage=E.image(ot,dt,pt,ut,mt).add())),ft?ft.animate({width:gt.width,height:gt.height}):this.clipRect=E.clipRect(gt),wt="animate",kt||(wt="attr",this.plotBorder=kt=E.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),K||kt.attr({stroke:N.plotBorderColor,"stroke-width":N.plotBorderWidth||0,fill:"none"}),kt[wt](kt.crisp({x:dt,y:pt,width:ut,height:mt},-kt.strokeWidth())),this.isDirtyBox=!1,F(this,"afterDrawChartBox")}propFromSeries(){let N,E,W,H=this,K=H.options.chart,tt=H.options.series;["inverted","angular","polar"].forEach(function(_){for(E=e[K.type],W=K[_]||E&&E.prototype[_],N=tt&&tt.length;!W&&N--;)(E=e[tt[N].type])&&E.prototype[_]&&(W=!0);H[_]=W})}linkSeries(N){let E=this,W=E.series;W.forEach(function(H){H.linkedSeries.length=0}),W.forEach(function(H){let{linkedTo:K}=H.options;if(D(K)){let tt;(tt=K===":previous"?E.series[H.index-1]:E.get(K))&&tt.linkedParent!==H&&(tt.linkedSeries.push(H),H.linkedParent=tt,tt.enabledDataSorting&&H.setDataSortingOptions(),H.visible=c(H.options.visible,tt.options.visible,H.visible))}}),F(this,"afterLinkSeries",{isUpdating:N})}renderSeries(){this.series.forEach(function(N){N.translate(),N.render()})}render(){var dt;let N=this.axes,E=this.colorAxis,W=this.renderer,H=this.options.chart.axisLayoutRuns||2,K=pt=>{pt.forEach(ut=>{ut.visible&&ut.render()})},tt=0,_=!0,st,ot=0;for(let pt of(this.setTitle(),F(this,"beforeMargins"),(dt=this.getStacks)==null||dt.call(this),this.getMargins(!0),this.setChartSize(),N)){let{options:ut}=pt,{labels:mt}=ut;if(this.hasCartesianSeries&&pt.horiz&&pt.visible&&mt.enabled&&pt.series.length&&pt.coll!=="colorAxis"&&!this.polar){tt=ut.tickLength,pt.createGroups();let xt=new P(pt,0,"",!0),ft=xt.createLabel("x",mt);if(xt.destroy(),ft&&c(mt.reserveSpace,!n(ut.crossing))&&(tt=ft.getBBox().height+mt.distance+Math.max(ut.offset||0,0)),tt){ft==null||ft.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-tt,0);(_||st||H>1)&&ot<H;){let pt=this.plotWidth,ut=this.plotHeight;for(let mt of N)ot===0?mt.setScale():(mt.horiz&&_||!mt.horiz&&st)&&mt.setTickInterval(!0);ot===0?this.getAxisMargins():this.getMargins(),_=pt/this.plotWidth>(ot?1:1.1),st=ut/this.plotHeight>(ot?1:1.05),ot++}this.drawChartBox(),this.hasCartesianSeries?K(N):E&&E.length&&K(E),this.seriesGroup||(this.seriesGroup=W.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(N){let E=this,W=i(!0,this.options.credits,N);W.enabled&&!this.credits&&(this.credits=this.renderer.text(W.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){W.href&&(s.location.href=W.href)}).attr({align:W.position.align,zIndex:8}),E.styledMode||this.credits.css(W.style),this.credits.add().align(W.position),this.credits.update=function(H){E.credits=E.credits.destroy(),E.addCredits(H)})}destroy(){let N,E=this,W=E.axes,H=E.series,K=E.container,tt=K&&K.parentNode;for(F(E,"destroy"),E.renderer.forExport?X(O,E):O[E.index]=void 0,nt.chartCount--,E.renderTo.removeAttribute("data-highcharts-chart"),z(E),N=W.length;N--;)W[N]=W[N].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),N=H.length;N--;)H[N]=H[N].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(_){let st=E[_];st&&st.destroy&&(E[_]=st.destroy())}),K&&(K.innerHTML=j.emptyHTML,z(K),tt&&T(K)),p(E,function(_,st){delete E[st]})}firstRender(){var H;let N=this,E=N.options;N.getContainer(),N.resetMargins(),N.setChartSize(),N.propFromSeries(),N.getAxes();let W=l(E.series)?E.series:[];E.series=[],W.forEach(function(K){N.initSeries(K)}),N.linkSeries(),N.setSortedData(),F(N,"beforeRender"),N.render(),(H=N.pointer)==null||H.getChartPosition(),N.renderer.imgCount||N.hasLoaded||N.onload(),N.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(N){N&&this.index!==void 0&&N.apply(this,[this])},this),F(this,"load"),F(this,"render"),y(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:N,title:E}=this;!N||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(E&&E.element.textContent||"").replace(/</g,"<")}),N.accessibility&&N.accessibility.enabled===!1||g('Highcharts warning: Consider including the "accessibility.js" module to make your chart more usable for people with disabilities. Set the "accessibility.enabled" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',!1,this))}addSeries(N,E,W){let H,K=this;return N&&(E=c(E,!0),F(K,"addSeries",{options:N},function(){H=K.initSeries(N),K.isDirtyLegend=!0,K.linkSeries(),H.enabledDataSorting&&H.setData(N.data,!1),F(K,"afterAddSeries",{series:H}),E&&K.redraw(W)})),H}addAxis(N,E,W,H){return this.createAxis(E?"xAxis":"yAxis",{axis:N,redraw:W,animation:H})}addColorAxis(N,E,W){return this.createAxis("colorAxis",{axis:N,redraw:E,animation:W})}createAxis(N,E){let W=new et(this,E.axis,N);return c(E.redraw,!0)&&this.redraw(E.animation),W}showLoading(N){let E=this,W=E.options,H=W.loading,K=function(){tt&&f(tt,{left:E.plotLeft+"px",top:E.plotTop+"px",width:E.plotWidth+"px",height:E.plotHeight+"px"})},tt=E.loadingDiv,_=E.loadingSpan;tt||(E.loadingDiv=tt=a("div",{className:"highcharts-loading highcharts-loading-hidden"},null,E.container)),_||(E.loadingSpan=_=a("span",{className:"highcharts-loading-inner"},null,tt),t(E,"redraw",K)),tt.className="highcharts-loading",j.setElementHTML(_,c(N,W.lang.loading,"")),E.styledMode||(f(tt,L(H.style,{zIndex:10})),f(_,H.labelStyle),E.loadingShown||(f(tt,{opacity:0,display:""}),m(tt,{opacity:H.style.opacity||.5},{duration:H.showDuration||0}))),E.loadingShown=!0,K()}hideLoading(){let N=this.options,E=this.loadingDiv;E&&(E.className="highcharts-loading highcharts-loading-hidden",this.styledMode||m(E,{opacity:0},{duration:N.loading.hideDuration||100,complete:function(){f(E,{display:"none"})}})),this.loadingShown=!1}update(N,E,W,H){let K,tt,_,st=this,ot={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},dt=N.isResponsiveOptions,pt=[];F(st,"update",{options:N}),dt||st.setResponsive(!1,!0),N=h(N,st.options),st.userOptions=i(st.userOptions,N);let ut=N.chart;ut&&(i(!0,st.options.chart,ut),this.setZoomOptions(),"className"in ut&&st.setClassName(ut.className),("inverted"in ut||"polar"in ut||"type"in ut)&&(st.propFromSeries(),K=!0),"alignTicks"in ut&&(K=!0),"events"in ut&&B(this,ut),p(ut,function(ft,gt){st.propsRequireUpdateSeries.indexOf("chart."+gt)!==-1&&(tt=!0),st.propsRequireDirtyBox.indexOf(gt)!==-1&&(st.isDirtyBox=!0),st.propsRequireReflow.indexOf(gt)===-1||(st.isDirtyBox=!0,dt||(_=!0))}),!st.styledMode&&ut.style&&st.renderer.setStyle(st.options.chart.style||{})),!st.styledMode&&N.colors&&(this.options.colors=N.colors),N.time&&(this.time===d&&(this.time=new M(N.time)),i(!0,st.options.time,N.time)),p(N,function(ft,gt){st[gt]&&typeof st[gt].update=="function"?st[gt].update(ft,!1):typeof st[ot[gt]]=="function"?st[ot[gt]](ft):gt!=="colors"&&st.collectionsWithUpdate.indexOf(gt)===-1&&i(!0,st.options[gt],N[gt]),gt!=="chart"&&st.propsRequireUpdateSeries.indexOf(gt)!==-1&&(tt=!0)}),this.collectionsWithUpdate.forEach(function(ft){N[ft]&&(G(N[ft]).forEach(function(gt,vt){let bt,kt=y(gt.id);kt&&(bt=st.get(gt.id)),!bt&&st[ft]&&(bt=st[ft][c(gt.index,vt)])&&(kt&&y(bt.options.id)||bt.options.isInternal)&&(bt=void 0),bt&&bt.coll===ft&&(bt.update(gt,!1),W&&(bt.touched=!0)),!bt&&W&&st.collectionsWithInit[ft]&&(st.collectionsWithInit[ft][0].apply(st,[gt].concat(st.collectionsWithInit[ft][1]||[]).concat([!1])).touched=!0)}),W&&st[ft].forEach(function(gt){gt.touched||gt.options.isInternal?delete gt.touched:pt.push(gt)}))}),pt.forEach(function(ft){ft.chart&&ft.remove&&ft.remove(!1)}),K&&st.axes.forEach(function(ft){ft.update({},!1)}),tt&&st.getSeriesOrderByLinks().forEach(function(ft){ft.chart&&ft.update({},!1)},this);let mt=ut&&ut.width,xt=ut&&(D(ut.height)?C(ut.height,mt||st.chartWidth):ut.height);_||n(mt)&&mt!==st.chartWidth||n(xt)&&xt!==st.chartHeight?st.setSize(mt,xt,H):c(E,!0)&&st.redraw(H),F(st,"afterUpdate",{options:N,redraw:E,animation:H})}setSubtitle(N,E){this.applyDescription("subtitle",N),this.layOutTitles(E)}setCaption(N,E){this.applyDescription("caption",N),this.layOutTitles(E)}showResetZoom(){let N=this,E=A.lang,W=N.zooming.resetButton,H=W.theme,K=W.relativeTo==="chart"||W.relativeTo==="spacingBox"?null:"plotBox";function tt(){N.zoomOut()}F(this,"beforeShowResetZoom",null,function(){N.resetZoomButton=N.renderer.button(E.resetZoom,null,null,tt,H).attr({align:W.position.align,title:E.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(W.position,!1,K)}),F(this,"afterShowResetZoom")}zoomOut(){F(this,"selection",{resetSelection:!0},()=>this.transform({reset:!0,trigger:"zoom"}))}pan(N,E){let W=this,H=typeof E=="object"?E:{enabled:E,type:"x"},K=H.type,tt=K&&W[{x:"xAxis",xy:"axes",y:"yAxis"}[K]].filter(st=>st.options.panningEnabled&&!st.options.isInternal),_=W.options.chart;_!=null&&_.panning&&(_.panning=H),F(this,"pan",{originalEvent:N},()=>{W.transform({axes:tt,event:N,to:{x:N.chartX-(W.mouseDownX||0),y:N.chartY-(W.mouseDownY||0)},trigger:"pan"}),f(W.container,{cursor:"move"})})}transform(N){var mt;let{axes:E=this.axes,event:W,from:H={},reset:K,selection:tt,to:_={},trigger:st}=N,{inverted:ot}=this,dt=!1,pt,ut;for(let xt of((mt=this.hoverPoints)==null||mt.forEach(ft=>ft.setState()),E)){let{horiz:ft,len:gt,minPointOffset:vt=0,options:bt,reversed:kt}=xt,Ct=ft?"width":"height",St=ft?"x":"y",At=c(_[Ct],xt.len),wt=c(H[Ct],xt.len),Lt=10>Math.abs(At)?1:At/wt,jt=(H[St]||0)+wt/2-xt.pos,Et=jt-((_[St]??xt.pos)+At/2-xt.pos)/Lt,Bt=kt&&!ot||!kt&&ot?-1:1;if(!K&&(jt<0||jt>xt.len))continue;let Tt=xt.toValue(Et,!0)+(tt||xt.isOrdinal?0:vt*Bt),Ot=xt.toValue(Et+gt/Lt,!0)-(tt||xt.isOrdinal?0:vt*Bt||0),Dt=xt.allExtremes;if(Tt>Ot&&([Tt,Ot]=[Ot,Tt]),Lt===1&&!K&&xt.coll==="yAxis"&&!Dt){for(let qt of xt.series){let Nt=qt.getExtremes(qt.getProcessedData(!0).yData,!0);Dt??(Dt={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),n(Nt.dataMin)&&n(Nt.dataMax)&&(Dt.dataMin=Math.min(Nt.dataMin,Dt.dataMin),Dt.dataMax=Math.max(Nt.dataMax,Dt.dataMax))}xt.allExtremes=Dt}let{dataMin:_t,dataMax:Jt,min:Ht,max:Xt}=L(xt.getExtremes(),Dt||{}),Yt=_t??bt.min,Ut=Jt??bt.max,Wt=Ot-Tt,Vt=xt.categories?0:Math.min(Wt,Ut-Yt),Ft=Yt-Vt*(y(bt.min)?0:bt.minPadding),Gt=Ut+Vt*(y(bt.max)?0:bt.maxPadding),$t=xt.allowZoomOutside||Lt===1||st!=="zoom"&&Lt>1,Rt=Math.min(bt.min??Ft,Ft,$t?Ht:Ft),zt=Math.max(bt.max??Gt,Gt,$t?Xt:Gt);(!xt.isOrdinal||xt.options.overscroll||Lt!==1||K)&&(Tt<Rt&&(Tt=Rt,Lt>=1&&(Ot=Tt+Wt)),Ot>zt&&(Ot=zt,Lt>=1&&(Tt=Ot-Wt)),(K||xt.series.length&&(Tt!==Ht||Ot!==Xt)&&Tt>=Rt&&Ot<=zt)&&(tt?tt[xt.coll].push({axis:xt,min:Tt,max:Ot}):(xt.isPanning=st!=="zoom",xt.isPanning&&(ut=!0),xt.setExtremes(K?void 0:Tt,K?void 0:Ot,!1,!1,{move:Et,trigger:st,scale:Lt}),!K&&(Tt>Rt||Ot<zt)&&st!=="mousewheel"&&(pt=!0)),dt=!0),W&&(this[ft?"mouseDownX":"mouseDownY"]=W[ft?"chartX":"chartY"]))}return dt&&(tt?F(this,"selection",tt,()=>{delete N.selection,N.trigger="zoom",this.transform(N)}):(!pt||ut||this.resetZoomButton?!pt&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw(st==="zoom"&&(this.options.chart.animation??this.pointCount<100)))),dt}}return L(rt.prototype,{callbacks:[],collectionsWithInit:{xAxis:[rt.prototype.addAxis,[!0]],yAxis:[rt.prototype.addAxis,[!1]],series:[rt.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),rt}),yt(Y,"Extensions/ScrollablePlotArea.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Globals.js"],Y["Core/Renderer/RendererRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct){let{stop:lt}=J,{composed:nt}=et,{addEvent:at,createElement:q,css:$,defined:V,merge:M,pushUnique:R}=ct;function j(){let b=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!b&&(this.scrollablePlotArea=b=new m(this)),b==null||b.applyFixed()}function P(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class m{static compose(S,A,d){R(nt,this.compose)&&(at(S,"afterInit",P),at(A,"afterSetChartSize",v=>this.afterSetSize(v.target,v)),at(A,"render",j),at(d,"show",P))}static afterSetSize(S,A){let d,v,B,{minWidth:O,minHeight:k}=S.options.chart.scrollablePlotArea||{},{clipBox:r,plotBox:u,inverted:s,renderer:e}=S;if(!e.forExport&&(O?(S.scrollablePixelsX=d=Math.max(0,O-S.chartWidth),d&&(S.scrollablePlotBox=M(S.plotBox),u.width=S.plotWidth+=d,r[s?"height":"width"]+=d,B=!0)):k&&(S.scrollablePixelsY=v=Math.max(0,k-S.chartHeight),V(v)&&(S.scrollablePlotBox=M(S.plotBox),u.height=S.plotHeight+=v,r[s?"width":"height"]+=v,B=!1)),V(B)&&!A.skipAxes))for(let t of S.axes)t.horiz===B&&(t.setAxisSize(),t.setAxisTranslation())}constructor(S){var o;let A,d=S.options.chart,v=ht.getRendererType(),B=d.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),k={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};S.scrollablePixelsX&&(k.overflowX="auto"),S.scrollablePixelsY&&(k.overflowY="auto"),this.chart=S;let r=this.parentDiv=q("div",{className:"highcharts-scrolling-parent"},{position:"relative"},S.renderTo),u=this.scrollingContainer=q("div",{className:"highcharts-scrolling"},k,r),s=this.innerContainer=q("div",{className:"highcharts-inner-container"},void 0,u),e=this.fixedDiv=q("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(((o=d.style)==null?void 0:o.zIndex)||0)+2,top:0},void 0,!0),t=this.fixedRenderer=new v(e,S.chartWidth,S.chartHeight,d.style);this.mask=t.path().attr({fill:d.backgroundColor||"#fff","fill-opacity":B.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),u.parentNode.insertBefore(e,u),$(S.renderTo,{overflow:"visible"}),at(S,"afterShowResetZoom",O),at(S,"afterApplyDrilldown",O),at(S,"afterLayOutTitles",O),at(u,"scroll",()=>{let{pointer:a,hoverPoint:f}=S;a&&(delete a.chartPosition,f&&(A=f),a.runPointActions(void 0,A,!0))}),s.appendChild(S.container)}applyFixed(){var n;let{chart:S,fixedRenderer:A,isDirty:d,scrollingContainer:v}=this,{axisOffset:B,chartWidth:O,chartHeight:k,container:r,plotHeight:u,plotLeft:s,plotTop:e,plotWidth:t,scrollablePixelsX:o=0,scrollablePixelsY:a=0}=S,{scrollPositionX:f=0,scrollPositionY:y=0}=S.options.chart.scrollablePlotArea||{},h=O+o,T=k+a;A.setSize(O,k),(d??!0)&&(this.isDirty=!1,this.moveFixedElements()),lt(S.container),$(r,{width:`${h}px`,height:`${T}px`}),S.renderer.boxWrapper.attr({width:h,height:T,viewBox:[0,0,h,T].join(" ")}),(n=S.chartBackground)==null||n.attr({width:h,height:T}),$(v,{width:`${O}px`,height:`${k}px`}),V(d)||(v.scrollLeft=o*f,v.scrollTop=a*y);let X=e-B[0]-1,g=s-B[3]-1,L=e+u+B[2]+1,I=s+t+B[1]+1,F=s+t-o,Q=e+u-a,l=[["M",0,0]];o?l=[["M",0,X],["L",s-1,X],["L",s-1,L],["L",0,L],["Z"],["M",F,X],["L",O,X],["L",O,L],["L",F,L],["Z"]]:a&&(l=[["M",g,0],["L",g,e-1],["L",I,e-1],["L",I,0],["Z"],["M",g,Q],["L",g,k],["L",I,k],["L",I,Q],["Z"]]),S.redrawTrigger!=="adjustHeight"&&this.mask.attr({d:l})}moveFixedElements(){let S,{container:A,inverted:d,scrollablePixelsX:v,scrollablePixelsY:B}=this.chart,O=this.fixedRenderer,k=m.fixedSelectors;for(let r of(v&&!d?S=".highcharts-yaxis":v&&d||B&&!d?S=".highcharts-xaxis":B&&d&&(S=".highcharts-yaxis"),S&&k.push(`${S}:not(.highcharts-radial-axis)`,`${S}-labels:not(.highcharts-radial-axis-labels)`),k))[].forEach.call(A.querySelectorAll(r),u=>{(u.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(u),u.style.pointerEvents="auto"})}}return m.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"],m}),yt(Y,"Core/Axis/Stacking/StackItem.js",[Y["Core/Templating.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{format:ct}=J,{series:lt}=et,{destroyObjectProperties:nt,fireEvent:at,isNumber:q,pick:$}=ht;return class{constructor(V,M,R,j,P){let m=V.chart.inverted,b=V.reversed;this.axis=V;let S=this.isNegative=!!R!=!!b;this.options=M=M||{},this.x=j,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=P,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:M.align||(m?S?"left":"right":"center"),verticalAlign:M.verticalAlign||(m?"middle":S?"bottom":"top"),y:M.y,x:M.x},this.textAlign=M.textAlign||(m?S?"right":"left":"center")}destroy(){nt(this,this.axis)}render(V){let M=this.axis.chart,R=this.options,j=R.format,P=j?ct(j,this,M):R.formatter.call(this);if(this.label)this.label.attr({text:P,visibility:"hidden"});else{this.label=M.renderer.label(P,null,void 0,R.shape,void 0,void 0,R.useHTML,!1,"stack-labels");let m={r:R.borderRadius||0,text:P,padding:$(R.padding,5),visibility:"hidden"};M.styledMode||(m.fill=R.backgroundColor,m.stroke=R.borderColor,m["stroke-width"]=R.borderWidth,this.label.css(R.style||{})),this.label.attr(m),this.label.added||this.label.add(V)}this.label.labelrank=M.plotSizeY,at(this,"afterRender")}setOffset(V,M,R,j,P,m){let{alignOptions:b,axis:S,label:A,options:d,textAlign:v}=this,B=S.chart,O=this.getStackBox({xOffset:V,width:M,boxBottom:R,boxTop:j,defaultX:P,xAxis:m}),{verticalAlign:k}=b;if(A&&O){let r=A.getBBox(void 0,0),u=A.padding,s=$(d.overflow,"justify")==="justify",e;b.x=d.x||0,b.y=d.y||0;let{x:t,y:o}=this.adjustStackPosition({labelBox:r,verticalAlign:k,textAlign:v});O.x-=t,O.y-=o,A.align(b,!1,O),(e=B.isInsidePlot(A.alignAttr.x+b.x+t,A.alignAttr.y+b.y+o))||(s=!1),s&<.prototype.justifyDataLabel.call(S,A,b,A.alignAttr,r,O),A.attr({x:A.alignAttr.x,y:A.alignAttr.y,rotation:d.rotation,rotationOriginX:r.width*{left:0,center:.5,right:1}[d.textAlign||"center"],rotationOriginY:r.height/2}),$(!s&&d.crop,!0)&&(e=q(A.x)&&q(A.y)&&B.isInsidePlot(A.x-u+(A.width||0),A.y)&&B.isInsidePlot(A.x+u,A.y)),A[e?"show":"hide"]()}at(this,"afterSetOffset",{xOffset:V,width:M})}adjustStackPosition({labelBox:V,verticalAlign:M,textAlign:R}){let j={bottom:0,middle:1,top:2,right:1,center:0,left:-1},P=j[M],m=j[R];return{x:V.width/2+V.width/2*m,y:V.height/2*P}}getStackBox(V){let M=this.axis,R=M.chart,{boxTop:j,defaultX:P,xOffset:m,width:b,boxBottom:S}=V,A=M.stacking.usePercentage?100:$(j,this.total,0),d=M.toPixels(A),v=V.xAxis||R.xAxis[0],B=$(P,v.translate(this.x))+m,O=Math.abs(d-M.toPixels(S||q(M.min)&&M.logarithmic&&M.logarithmic.lin2log(M.min)||0)),k=R.inverted,r=this.isNegative;return k?{x:(r?d:d-O)-R.plotLeft,y:v.height-B-b+v.top-R.plotTop,width:O,height:b}:{x:B+v.transB-R.plotLeft,y:(r?d-O:d)-R.plotTop,width:b,height:O}}}}),yt(Y,"Core/Axis/Stacking/StackingAxis.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Axis/Axis.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Axis/Stacking/StackItem.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt){var nt;let{getDeferredAnimation:at}=J,{series:{prototype:q}}=ht,{addEvent:$,correctFloat:V,defined:M,destroyObjectProperties:R,fireEvent:j,isArray:P,isNumber:m,objectEach:b,pick:S}=lt;function A(){let e=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(t=>{let o=t.xAxis&&t.xAxis.options||{};t.options.stacking&&t.reserveSpace()&&(t.stackKey=[t.type,S(t.options.stack,""),e?o.top:o.left,e?o.height:o.width].join(","))})}function d(){var t;let e=this.stacking;if(e){let o=e.stacks;b(o,(a,f)=>{R(a),delete o[f]}),(t=e.stackTotalGroup)==null||t.destroy()}}function v(){this.stacking||(this.stacking=new s(this))}function B(e,t,o,a){return!M(e)||e.x!==t||a&&e.stackKey!==a?e={x:t,index:0,key:a,stackKey:a}:e.index++,e.key=[o,t,e.index].join(","),e}function O(){let e,t=this,o=t.yAxis,a=t.stackKey||"",f=o.stacking.stacks,y=t.processedXData,h=t.options.stacking,T=t[h+"Stacker"];T&&[a,"-"+a].forEach(X=>{var Q;let g=y.length,L,I,F;for(;g--;)L=y[g],e=t.getStackIndicator(e,L,t.index,X),I=(Q=f[X])==null?void 0:Q[L],(F=I==null?void 0:I.points[e.key||""])&&T.call(t,F,I,g)})}function k(e,t,o){let a=t.total?100/t.total:0;e[0]=V(e[0]*a),e[1]=V(e[1]*a),this.stackedYData[o]=e[1]}function r(e){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?q.setStackedPoints.call(this,e,"group"):e.stacking.resetStacks())}function u(e,t){var Z,rt;let o,a,f,y,h,T,X,g,L,I=t||this.options.stacking;if(!I||!this.reserveSpace()||({group:"xAxis"}[I]||"yAxis")!==e.coll)return;let F=this.processedXData,Q=this.processedYData,l=[],n=Q.length,x=this.options,D=x.threshold||0,i=x.startFromThreshold?D:0,p=x.stack,c=t?`${this.type},${I}`:this.stackKey||"",w="-"+c,C=this.negStacks,z=e.stacking,G=z.stacks,U=z.oldStacks;for(z.stacksTouched+=1,X=0;X<n;X++){g=F[X],L=Q[X],T=(o=this.getStackIndicator(o,g,this.index)).key||"",G[h=(a=C&&L<(i?0:D))?w:c]||(G[h]={}),G[h][g]||((Z=U[h])!=null&&Z[g]?(G[h][g]=U[h][g],G[h][g].total=null):G[h][g]=new ct(e,e.options.stackLabels,!!a,g,p)),f=G[h][g],L!==null?(f.points[T]=f.points[this.index]=[S(f.cumulative,i)],M(f.cumulative)||(f.base=T),f.touched=z.stacksTouched,o.index>0&&this.singleStacks===!1&&(f.points[T][0]=f.points[this.index+","+g+",0"][0])):(delete f.points[T],delete f.points[this.index]);let it=f.total||0;I==="percent"?(y=a?c:w,it=C&&((rt=G[y])!=null&&rt[g])?(y=G[y][g]).total=Math.max(y.total||0,it)+Math.abs(L)||0:V(it+(Math.abs(L)||0))):I==="group"?(P(L)&&(L=L[0]),L!==null&&it++):it=V(it+(L||0)),I==="group"?f.cumulative=(it||1)-1:f.cumulative=V(S(f.cumulative,i)+(L||0)),f.total=it,L!==null&&(f.points[T].push(f.cumulative),l[X]=f.cumulative,f.hasValidPoints=!0)}I==="percent"&&(z.usePercentage=!0),I!=="group"&&(this.stackedYData=l),z.oldStacks={}}class s{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,o,a=this.axis,f=a.series,y=a.coll==="xAxis",h=a.options.reversedStacks,T=f.length;for(this.resetStacks(),this.usePercentage=!1,o=T;o--;)t=f[h?o:T-o-1],y&&t.setGroupedPoints(a),t.setStackedPoints(a);if(!y)for(o=0;o<T;o++)f[o].modifyStacks();j(a,"afterBuildStacks")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,b(this.stacks,t=>{b(t,o=>{o.cumulative=o.total})}))}resetStacks(){b(this.stacks,t=>{b(t,(o,a)=>{m(o.touched)&&o.touched<this.stacksTouched?(o.destroy(),delete t[a]):(o.total=null,o.cumulative=null)})})}renderStackTotals(){var T;let t=this.axis,o=t.chart,a=o.renderer,f=this.stacks,y=at(o,((T=t.options.stackLabels)==null?void 0:T.animation)||!1),h=this.stackTotalGroup=this.stackTotalGroup||a.g("stack-labels").attr({zIndex:6,opacity:0}).add();h.translate(o.plotLeft,o.plotTop),b(f,X=>{b(X,g=>{g.render(h)})}),h.animate({opacity:1},y)}}return(nt||(nt={})).compose=function(e,t,o){let a=t.prototype,f=o.prototype;a.getStacks||($(e,"init",v),$(e,"destroy",d),a.getStacks=A,f.getStackIndicator=B,f.modifyStacks=O,f.percentStacker=k,f.setGroupedPoints=r,f.setStackedPoints=u)},nt}),yt(Y,"Series/Line/LineSeries.js",[Y["Core/Series/Series.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{defined:ct,merge:lt,isObject:nt}=ht;class at extends J{drawGraph(){let $=this.options,V=(this.gappedPath||this.getGraphPath).call(this),M=this.chart.styledMode;[this,...this.zones].forEach((R,j)=>{let P,m=R.graph,b=m?"animate":"attr",S=R.dashStyle||$.dashStyle;m?(m.endX=this.preventGraphAnimation?null:V.xMap,m.animate({d:V})):V.length&&(R.graph=m=this.chart.renderer.path(V).addClass("highcharts-graph"+(j?` highcharts-zone-graph-${j-1} `:" ")+(j&&R.className||"")).attr({zIndex:1}).add(this.group)),m&&!M&&(P={stroke:!j&&$.lineColor||R.color||this.color||"#cccccc","stroke-width":$.lineWidth||0,fill:this.fillGraph&&this.color||"none"},S?P.dashstyle=S:$.linecap!=="square"&&(P["stroke-linecap"]=P["stroke-linejoin"]="round"),m[b](P).shadow(j<2&&$.shadow&<({filterUnits:"userSpaceOnUse"},nt($.shadow)?$.shadow:{}))),m&&(m.startX=V.xMap,m.isArea=V.isArea)})}getGraphPath($,V,M){let R=this,j=R.options,P=[],m=[],b,S=j.step,A=($=$||R.points).reversed;return A&&$.reverse(),(S={right:1,center:2}[S]||S&&3)&&A&&(S=4-S),($=this.getValidPoints($,!1,!(j.connectNulls&&!V&&!M))).forEach(function(d,v){let B,O=d.plotX,k=d.plotY,r=$[v-1],u=d.isNull||typeof k!="number";(d.leftCliff||r&&r.rightCliff)&&!M&&(b=!0),u&&!ct(V)&&v>0?b=!j.connectNulls:u&&!V?b=!0:(v===0||b?B=[["M",d.plotX,d.plotY]]:R.getPointSpline?B=[R.getPointSpline($,d,v)]:S?(B=S===1?[["L",r.plotX,k]]:S===2?[["L",(r.plotX+O)/2,r.plotY],["L",(r.plotX+O)/2,k]]:[["L",O,r.plotY]]).push(["L",O,k]):B=[["L",O,k]],m.push(d.x),S&&(m.push(d.x),S===2&&m.push(d.x)),P.push.apply(P,B),b=!1)}),P.xMap=m,R.graphPath=P,P}}return at.defaultOptions=lt(J.defaultOptions,{legendSymbol:"lineMarker"}),et.registerSeriesType("line",at),at}),yt(Y,"Series/Area/AreaSeriesDefaults.js",[],function(){return{threshold:0,legendSymbol:"areaMarker"}}),yt(Y,"Series/Area/AreaSeries.js",[Y["Series/Area/AreaSeriesDefaults.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{seriesTypes:{line:ct}}=et,{extend:lt,merge:nt,objectEach:at,pick:q}=ht;class $ extends ct{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:M,options:R}=this;[this,...this.zones].forEach((j,P)=>{let m={},b=j.fillColor||R.fillColor,S=j.area,A=S?"animate":"attr";S?(S.endX=this.preventGraphAnimation?null:M.xMap,S.animate({d:M})):(m.zIndex=0,(S=j.area=this.chart.renderer.path(M).addClass("highcharts-area"+(P?` highcharts-zone-area-${P-1} `:" ")+(P&&j.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(m.fill=b||j.color||this.color,m["fill-opacity"]=b?1:R.fillOpacity??.75,S.css({pointerEvents:this.stickyTracking?"none":"auto"})),S[A](m),S.startX=M.xMap,S.shiftUnit=R.step?2:1})}getGraphPath(M){let R,j,P,m=ct.prototype.getGraphPath,b=this.options,S=b.stacking,A=this.yAxis,d=[],v=[],B=this.index,O=A.stacking.stacks[this.stackKey],k=b.threshold,r=Math.round(A.getThreshold(b.threshold)),u=q(b.connectNulls,S==="percent"),s=function(y,h,T){let X=M[y],g=S&&O[X.x].points[B],L=X[T+"Null"]||0,I=X[T+"Cliff"]||0,F,Q,l=!0;I||L?(F=(L?g[0]:g[1])+I,Q=g[0]+I,l=!!L):!S&&M[h]&&M[h].isNull&&(F=Q=k),F!==void 0&&(v.push({plotX:R,plotY:F===null?r:A.getThreshold(F),isNull:l,isCliff:!0}),d.push({plotX:R,plotY:Q===null?r:A.getThreshold(Q),doCurve:!1}))};M=M||this.points,S&&(M=this.getStackPoints(M));for(let y=0,h=M.length;y<h;++y)S||(M[y].leftCliff=M[y].rightCliff=M[y].leftNull=M[y].rightNull=void 0),j=M[y].isNull,R=q(M[y].rectPlotX,M[y].plotX),P=S?q(M[y].yBottom,r):r,j&&!u||(u||s(y,y-1,"left"),j&&!S&&u||(v.push(M[y]),d.push({x:y,plotX:R,plotY:P})),u||s(y,y+1,"right"));let e=m.call(this,v,!0,!0);d.reversed=!0;let t=m.call(this,d,!0,!0),o=t[0];o&&o[0]==="M"&&(t[0]=["L",o[1],o[2]]);let a=e.concat(t);a.length&&a.push(["Z"]);let f=m.call(this,v,!1,u);return this.chart.series.length>1&&S&&v.some(y=>y.isCliff)&&(a.hasStackedCliffs=f.hasStackedCliffs=!0),a.xMap=e.xMap,this.areaPath=a,f}getStackPoints(M){let R=this,j=[],P=[],m=this.xAxis,b=this.yAxis,S=b.stacking.stacks[this.stackKey],A={},d=b.series,v=d.length,B=b.options.reversedStacks?1:-1,O=d.indexOf(R);if(M=M||this.points,this.options.stacking){for(let r=0;r<M.length;r++)M[r].leftNull=M[r].rightNull=void 0,A[M[r].x]=M[r];at(S,function(r,u){r.total!==null&&P.push(u)}),P.sort(function(r,u){return r-u});let k=d.map(r=>r.visible);P.forEach(function(r,u){let s=0,e,t;if(A[r]&&!A[r].isNull)j.push(A[r]),[-1,1].forEach(function(o){let a=o===1?"rightNull":"leftNull",f=S[P[u+o]],y=0;if(f){let h=O;for(;h>=0&&h<v;){let T=d[h].index;!(e=f.points[T])&&(T===R.index?A[r][a]=!0:k[h]&&(t=S[r].points[T])&&(y-=t[1]-t[0])),h+=B}}A[r][o===1?"rightCliff":"leftCliff"]=y});else{let o=O;for(;o>=0&&o<v;){let a=d[o].index;if(e=S[r].points[a]){s=e[1];break}o+=B}s=q(s,0),s=b.translate(s,0,1,0,1),j.push({isNull:!0,plotX:m.translate(r,0,0,0,1),x:r,plotY:s,yBottom:s})}})}return j}}return $.defaultOptions=nt(ct.defaultOptions,J),lt($.prototype,{singleStacks:!1}),et.registerSeriesType("area",$),$}),yt(Y,"Series/Spline/SplineSeries.js",[Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et){let{line:ht}=J.seriesTypes,{merge:ct,pick:lt}=et;class nt extends ht{getPointSpline(q,$,V){let M,R,j,P,m=$.plotX||0,b=$.plotY||0,S=q[V-1],A=q[V+1];function d(B){return B&&!B.isNull&&B.doCurve!==!1&&!$.isCliff}if(d(S)&&d(A)){let B=S.plotX||0,O=S.plotY||0,k=A.plotX||0,r=A.plotY||0,u=0;M=(1.5*m+B)/2.5,R=(1.5*b+O)/2.5,j=(1.5*m+k)/2.5,P=(1.5*b+r)/2.5,j!==M&&(u=(P-R)*(j-m)/(j-M)+b-P),R+=u,P+=u,R>O&&R>b?(R=Math.max(O,b),P=2*b-R):R<O&&R<b&&(R=Math.min(O,b),P=2*b-R),P>r&&P>b?(P=Math.max(r,b),R=2*b-P):P<r&&P<b&&(P=Math.min(r,b),R=2*b-P),$.rightContX=j,$.rightContY=P,$.controlPoints={low:[M,R],high:[j,P]}}let v=["C",lt(S.rightContX,S.plotX,0),lt(S.rightContY,S.plotY,0),lt(M,m,0),lt(R,b,0),m,b];return S.rightContX=S.rightContY=void 0,v}}return nt.defaultOptions=ct(ht.defaultOptions),J.registerSeriesType("spline",nt),nt}),yt(Y,"Series/AreaSpline/AreaSplineSeries.js",[Y["Series/Spline/SplineSeries.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{area:ct,area:{prototype:lt}}=et.seriesTypes,{extend:nt,merge:at}=ht;class q extends J{}return q.defaultOptions=at(J.defaultOptions,ct.defaultOptions),nt(q.prototype,{getGraphPath:lt.getGraphPath,getStackPoints:lt.getStackPoints,drawGraph:lt.drawGraph}),et.registerSeriesType("areaspline",q),q}),yt(Y,"Series/Column/ColumnSeriesDefaults.js",[],function(){return{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"}}),yt(Y,"Series/Column/ColumnSeries.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Color/Color.js"],Y["Series/Column/ColumnSeriesDefaults.js"],Y["Core/Globals.js"],Y["Core/Series/Series.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt,nt,at){let{animObject:q}=J,{parse:$}=et,{noop:V}=ct,{clamp:M,crisp:R,defined:j,extend:P,fireEvent:m,isArray:b,isNumber:S,merge:A,pick:d,objectEach:v}=at;class B extends lt{animate(k){let r,u,s=this,e=this.yAxis,t=e.pos,o=e.reversed,a=s.options,{clipOffset:f,inverted:y}=this.chart,h={},T=y?"translateX":"translateY";k&&f?(h.scaleY=.001,u=M(e.toPixels(a.threshold),t,t+e.len),y?(u+=o?-Math.floor(f[0]):Math.ceil(f[2]),h.translateX=u-e.len):(u+=o?Math.ceil(f[0]):-Math.floor(f[2]),h.translateY=u),s.clipBox&&s.setClip(),s.group.attr(h)):(r=Number(s.group.attr(T)),s.group.animate({scaleY:1},P(q(s.options.animation),{step:function(X,g){s.group&&(h[T]=r+g.pos*(t-r),s.group.attr(h))}})))}init(k,r){super.init.apply(this,arguments);let u=this;(k=u.chart).hasRendered&&k.series.forEach(function(s){s.type===u.type&&(s.isDirty=!0)})}getColumnMetrics(){var L,I;let k=this,r=k.options,u=k.xAxis,s=k.yAxis,e=u.options.reversedStacks,t=u.reversed&&!e||!u.reversed&&e,o={},a,f=0;r.grouping===!1?f=1:k.chart.series.forEach(function(F){let Q,l=F.yAxis,n=F.options;F.type===k.type&&F.reserveSpace()&&s.len===l.len&&s.pos===l.pos&&(n.stacking&&n.stacking!=="group"?(o[a=F.stackKey]===void 0&&(o[a]=f++),Q=o[a]):n.grouping!==!1&&(Q=f++),F.columnIndex=Q)});let y=Math.min(Math.abs(u.transA)*(!((L=u.brokenAxis)!=null&&L.hasBreaks)&&((I=u.ordinal)==null?void 0:I.slope)||r.pointRange||u.closestPointRange||u.tickInterval||1),u.len),h=y*r.groupPadding,T=(y-2*h)/(f||1),X=Math.min(r.maxPointWidth||u.len,d(r.pointWidth,T*(1-2*r.pointPadding))),g=(k.columnIndex||0)+(t?1:0);return k.columnMetrics={width:X,offset:(T-X)/2+(h+g*T-y/2)*(t?-1:1),paddedWidth:T,columnCount:f},k.columnMetrics}crispCol(k,r,u,s){let e=this.borderWidth,t=this.chart.inverted;return s=R(r+s,e,t)-(r=R(r,e,t)),this.options.crisp&&(u=R(k+u,e)-(k=R(k,e))),{x:k,y:r,width:u,height:s}}adjustForMissingColumns(k,r,u,s){var e;if(!u.isNull&&s.columnCount>1){let t=this.xAxis.series.filter(y=>y.visible).map(y=>y.index),o=0,a=0;v((e=this.xAxis.stacking)==null?void 0:e.stacks,y=>{if(typeof u.x=="number"){let h=y[u.x.toString()];if(h&&b(h.points[this.index])){let T=Object.keys(h.points).filter(X=>!X.match(",")&&h.points[X]&&h.points[X].length>1).map(parseFloat).filter(X=>t.indexOf(X)!==-1).sort((X,g)=>g-X);o=T.indexOf(this.index),a=T.length}}}),o=this.xAxis.reversed?a-1-o:o;let f=(a-1)*s.paddedWidth+r;k=(u.plotX||0)+f/2-r-o*s.paddedWidth}return k}translate(){let k=this,r=k.chart,u=k.options,s=k.dense=k.closestPointRange*k.xAxis.transA<2,e=k.borderWidth=d(u.borderWidth,s?0:1),t=k.xAxis,o=k.yAxis,a=u.threshold,f=d(u.minPointLength,5),y=k.getColumnMetrics(),h=y.width,T=k.pointXOffset=y.offset,X=k.dataMin,g=k.dataMax,L=k.translatedThreshold=o.getThreshold(a),I=k.barW=Math.max(h,1+2*e);u.pointPadding&&(I=Math.ceil(I)),lt.prototype.translate.apply(k),k.points.forEach(function(F){let Q=d(F.yBottom,L),l=999+Math.abs(Q),n=F.plotX||0,x=M(F.plotY,-l,o.len+l),D,i=Math.min(x,Q),p=Math.max(x,Q)-i,c=h,w=n+T,C=I;f&&Math.abs(p)<f&&(p=f,D=!o.reversed&&!F.negative||o.reversed&&F.negative,S(a)&&S(g)&&F.y===a&&g<=a&&(o.min||0)<a&&(X!==g||(o.max||0)<=a)&&(D=!D,F.negative=!F.negative),i=Math.abs(i-L)>f?Q-f:L-(D?f:0)),j(F.options.pointWidth)&&(w-=Math.round(((c=C=Math.ceil(F.options.pointWidth))-h)/2)),u.centerInCategory&&!u.stacking&&(w=k.adjustForMissingColumns(w,c,F,y)),F.barX=w,F.pointWidth=c,F.tooltipPos=r.inverted?[M(o.len+o.pos-r.plotLeft-x,o.pos-r.plotLeft,o.len+o.pos-r.plotLeft),t.len+t.pos-r.plotTop-w-C/2,p]:[t.left-r.plotLeft+w+C/2,M(x+o.pos-r.plotTop,o.pos-r.plotTop,o.len+o.pos-r.plotTop),p],F.shapeType=k.pointClass.prototype.shapeType||"roundedRect",F.shapeArgs=k.crispCol(w,F.isNull?L:i,C,F.isNull?0:p)}),m(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(k,r){let u=this.options,s=this.pointAttrToOptions||{},e=s.stroke||"borderColor",t=s["stroke-width"]||"borderWidth",o,a,f,y=k&&k.color||this.color,h=k&&k[e]||u[e]||y,T=k&&k.options.dashStyle||u.dashStyle,X=k&&k[t]||u[t]||this[t]||0,g=d(k&&k.opacity,u.opacity,1);k&&this.zones.length&&(a=k.getZone(),y=k.options.color||a&&(a.color||k.nonZonedColor)||this.color,a&&(h=a.borderColor||h,T=a.dashStyle||T,X=a.borderWidth||X)),r&&k&&(f=(o=A(u.states[r],k.options.states&&k.options.states[r]||{})).brightness,y=o.color||f!==void 0&&$(y).brighten(o.brightness).get()||y,h=o[e]||h,X=o[t]||X,T=o.dashStyle||T,g=d(o.opacity,g));let L={fill:y,stroke:h,"stroke-width":X,opacity:g};return T&&(L.dashstyle=T),L}drawPoints(k=this.points){let r,u=this,s=this.chart,e=u.options,t=s.renderer,o=e.animationLimit||250;k.forEach(function(a){let f=a.plotY,y=a.graphic,h=!!y,T=y&&s.pointCount<o?"animate":"attr";S(f)&&a.y!==null?(r=a.shapeArgs,y&&a.hasNewShapeType()&&(y=y.destroy()),u.enabledDataSorting&&(a.startXPos=u.xAxis.reversed?-(r&&r.width||0):u.xAxis.width),!y&&(a.graphic=y=t[a.shapeType](r).add(a.group||u.group),y&&u.enabledDataSorting&&s.hasRendered&&s.pointCount<o&&(y.attr({x:a.startXPos}),h=!0,T="animate")),y&&h&&y[T](A(r)),s.styledMode||y[T](u.pointAttribs(a,a.selected&&"select")).shadow(a.allowShadow!==!1&&e.shadow),y&&(y.addClass(a.getClassName(),!0),y.attr({visibility:a.visible?"inherit":"hidden"}))):y&&(a.graphic=y.destroy())})}drawTracker(k=this.points){let r,u=this,s=u.chart,e=s.pointer,t=function(o){let a=e==null?void 0:e.getPointFromEvent(o);e&&a&&u.options.enableMouseTracking&&(e.isDirectTouch=!0,a.onMouseOver(o))};k.forEach(function(o){r=b(o.dataLabels)?o.dataLabels:o.dataLabel?[o.dataLabel]:[],o.graphic&&(o.graphic.element.point=o),r.forEach(function(a){(a.div||a.element).point=o})}),u._hasTracking||(u.trackerGroups.forEach(function(o){u[o]&&(u[o].addClass("highcharts-tracker").on("mouseover",t).on("mouseout",function(a){e==null||e.onTrackerMouseOut(a)}).on("touchstart",t),!s.styledMode&&u.options.cursor&&u[o].css({cursor:u.options.cursor}))}),u._hasTracking=!0),m(this,"afterDrawTracker")}remove(){let k=this,r=k.chart;r.hasRendered&&r.series.forEach(function(u){u.type===k.type&&(u.isDirty=!0)}),lt.prototype.remove.apply(k,arguments)}}return B.defaultOptions=A(lt.defaultOptions,ht),P(B.prototype,{directTouch:!0,getSymbol:V,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]}),nt.registerSeriesType("column",B),B}),yt(Y,"Core/Series/DataLabel.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Templating.js"],Y["Core/Utilities.js"]],function(J,et,ht){var ct;let{getDeferredAnimation:lt}=J,{format:nt}=et,{defined:at,extend:q,fireEvent:$,isArray:V,isString:M,merge:R,objectEach:j,pick:P,pInt:m,splat:b}=ht;return function(S){function A(){return u(this).some(e=>e==null?void 0:e.enabled)}function d(e,t,o,a,f){var x;let{chart:y,enabledDataSorting:h}=this,T=this.isCartesian&&y.inverted,X=e.plotX,g=e.plotY,L=o.rotation||0,I=at(X)&&at(g)&&y.isInsidePlot(X,Math.round(g),{inverted:T,paneCoordinates:!0,series:this}),F=L===0&&P(o.overflow,h?"none":"justify")==="justify",Q=this.visible&&e.visible!==!1&&at(X)&&(e.series.forceDL||h&&!F||I||P(o.inside,!!this.options.stacking)&&a&&y.isInsidePlot(X,T?a.x+1:a.y+a.height-1,{inverted:T,paneCoordinates:!0,series:this})),l=e.pos();if(Q&&l){var n;let D=t.getBBox(),i=t.getBBox(void 0,0),p={right:1,center:.5}[o.align||0]||0,c={bottom:1,middle:.5}[o.verticalAlign||0]||0;if(a=q({x:l[0],y:Math.round(l[1]),width:0,height:0},a||{}),o.alignTo==="plotEdges"&&this.isCartesian&&(a[T?"x":"y"]=0,a[T?"width":"height"]=((x=this.yAxis)==null?void 0:x.len)||0),q(o,{width:D.width,height:D.height}),n=a,h&&this.xAxis&&!F&&this.setDataLabelStartPos(e,t,f,I,n),t.align(R(o,{width:i.width,height:i.height}),!1,a,!1),t.alignAttr.x+=p*(i.width-D.width),t.alignAttr.y+=c*(i.height-D.height),t[t.placed?"animate":"attr"]({x:t.alignAttr.x+(D.width-i.width)/2,y:t.alignAttr.y+(D.height-i.height)/2,rotationOriginX:(t.width||0)/2,rotationOriginY:(t.height||0)/2}),F&&a.height>=0)this.justifyDataLabel(t,o,t.alignAttr,D,a,f);else if(P(o.crop,!0)){let{x:w,y:C}=t.alignAttr;Q=y.isInsidePlot(w,C,{paneCoordinates:!0,series:this})&&y.isInsidePlot(w+D.width-1,C+D.height-1,{paneCoordinates:!0,series:this})}o.shape&&!L&&t[f?"attr":"animate"]({anchorX:l[0],anchorY:l[1]})}f&&h&&(t.placed=!1),Q||h&&!F?(t.show(),t.placed=!0):(t.hide(),t.placed=!1)}function v(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function B(e){let t=this.hasRendered||0,o=this.initDataLabelsGroup().attr({opacity:+t});return!t&&o&&(this.visible&&o.show(),this.options.animation?o.animate({opacity:1},e):o.attr({opacity:1})),o}function O(e){var Q;let t;e=e||this.points;let o=this,a=o.chart,f=o.options,y=a.renderer,{backgroundColor:h,plotBackgroundColor:T}=a.options.chart,X=y.getContrast(M(T)&&T||M(h)&&h||"#000000"),g=u(o),{animation:L,defer:I}=g[0],F=I?lt(a,L,o):{defer:0,duration:0};$(this,"drawDataLabels"),(Q=o.hasDataLabels)!=null&&Q.call(o)&&(t=this.initDataLabels(F),e.forEach(l=>{var D,i;let n=l.dataLabels||[];b(r(g,l.dlOptions||((D=l.options)==null?void 0:D.dataLabels))).forEach((p,c)=>{let w=p.enabled&&(l.visible||l.dataLabelOnHidden)&&(!l.isNull||l.dataLabelOnNull)&&function(tt,_){let st=_.filter;if(st){let ot=st.operator,dt=tt[st.property],pt=st.value;return ot===">"&&dt>pt||ot==="<"&&dt<pt||ot===">="&&dt>=pt||ot==="<="&&dt<=pt||ot==="=="&&dt==pt||ot==="==="&&dt===pt||ot==="!="&&dt!=pt||ot==="!=="&&dt!==pt}return!0}(l,p),{backgroundColor:C,borderColor:z,distance:G,style:U={}}=p,Z,rt,it,N,E={},W=n[c],H=!W,K;w&&(rt=P(p[l.formatPrefix+"Format"],p.format),Z=l.getLabelConfig(),it=at(rt)?nt(rt,Z,a):(p[l.formatPrefix+"Formatter"]||p.formatter).call(Z,p),N=p.rotation,!a.styledMode&&(U.color=P(p.color,U.color,M(o.color)?o.color:void 0,"#000000"),U.color==="contrast"?(C!=="none"&&(K=C),l.contrastColor=y.getContrast(K!=="auto"&&K||l.color||o.color),U.color=K||!at(G)&&p.inside||0>m(G||0)||f.stacking?l.contrastColor:X):delete l.contrastColor,f.cursor&&(U.cursor=f.cursor)),E={r:p.borderRadius||0,rotation:N,padding:p.padding,zIndex:1},a.styledMode||(E.fill=C==="auto"?l.color:C,E.stroke=z==="auto"?l.color:z,E["stroke-width"]=p.borderWidth),j(E,(tt,_)=>{tt===void 0&&delete E[_]})),!W||w&&at(it)&&!!W.div==!!p.useHTML&&(W.rotation&&p.rotation||W.rotation===p.rotation)||(W=void 0,H=!0),w&&at(it)&&(W?E.text=it:(W=y.label(it,0,0,p.shape,void 0,void 0,p.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+l.colorIndex+" "+(p.className||"")+(p.useHTML?" highcharts-tracker":"")),W&&(W.options=p,W.attr(E),a.styledMode?U.width&&W.css({width:U.width,textOverflow:U.textOverflow}):W.css(U).shadow(p.shadow),$(W,"beforeAddingDataLabel",{labelOptions:p,point:l}),W.added||W.add(t),o.alignDataLabel(l,W,p,void 0,H),W.isActive=!0,n[c]&&n[c]!==W&&n[c].destroy(),n[c]=W))});let x=n.length;for(;x--;)n[x]&&n[x].isActive?n[x].isActive=!1:((i=n[x])==null||i.destroy(),n.splice(x,1));l.dataLabel=n[0],l.dataLabels=n})),$(this,"afterDrawDataLabels")}function k(e,t,o,a,f,y){let h=this.chart,T=t.align,X=t.verticalAlign,g=e.box?0:e.padding||0,L=h.inverted?this.yAxis:this.xAxis,I=L?L.left-h.plotLeft:0,F=h.inverted?this.xAxis:this.yAxis,Q=F?F.top-h.plotTop:0,{x:l=0,y:n=0}=t,x,D;return(x=(o.x||0)+g+I)<0&&(T==="right"&&l>=0?(t.align="left",t.inside=!0):l-=x,D=!0),(x=(o.x||0)+a.width-g+I)>h.plotWidth&&(T==="left"&&l<=0?(t.align="right",t.inside=!0):l+=h.plotWidth-x,D=!0),(x=o.y+g+Q)<0&&(X==="bottom"&&n>=0?(t.verticalAlign="top",t.inside=!0):n-=x,D=!0),(x=(o.y||0)+a.height-g+Q)>h.plotHeight&&(X==="top"&&n<=0?(t.verticalAlign="bottom",t.inside=!0):n+=h.plotHeight-x,D=!0),D&&(t.x=l,t.y=n,e.placed=!y,e.align(t,void 0,f)),D}function r(e,t){let o=[],a;if(V(e)&&!V(t))o=e.map(function(f){return R(f,t)});else if(V(t)&&!V(e))o=t.map(function(f){return R(e,f)});else if(V(e)||V(t)){if(V(e)&&V(t))for(a=Math.max(e.length,t.length);a--;)o[a]=R(e[a],t[a])}else o=R(e,t);return o}function u(e){var o,a;let t=e.chart.options.plotOptions;return b(r(r((o=t==null?void 0:t.series)==null?void 0:o.dataLabels,(a=t==null?void 0:t[e.type])==null?void 0:a.dataLabels),e.options.dataLabels))}function s(e,t,o,a,f){let y=this.chart,h=y.inverted,T=this.xAxis,X=T.reversed,g=((h?t.height:t.width)||0)/2,L=e.pointWidth,I=L?L/2:0;t.startXPos=h?f.x:X?-g-I:T.width-g+I,t.startYPos=h?X?this.yAxis.height-g+I:-g-I:f.y,a?t.visibility==="hidden"&&(t.show(),t.attr({opacity:0}).animate({opacity:1})):t.attr({opacity:1}).animate({opacity:0},void 0,t.hide),y.hasRendered&&(o&&t.attr({x:t.startXPos,y:t.startYPos}),t.placed=!0)}S.compose=function(e){let t=e.prototype;t.initDataLabels||(t.initDataLabels=B,t.initDataLabelsGroup=v,t.alignDataLabel=d,t.drawDataLabels=O,t.justifyDataLabel=k,t.setDataLabelStartPos=s,t.hasDataLabels=A)}}(ct||(ct={})),ct}),yt(Y,"Series/Column/ColumnDataLabel.js",[Y["Core/Series/DataLabel.js"],Y["Core/Globals.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct){var lt;let{composed:nt}=et,{series:at}=ht,{merge:q,pick:$,pushUnique:V}=ct;return function(M){function R(j,P,m,b,S){let A=this.chart.inverted,d=j.series,v=(d.xAxis?d.xAxis.len:this.chart.plotSizeX)||0,B=(d.yAxis?d.yAxis.len:this.chart.plotSizeY)||0,O=j.dlBox||j.shapeArgs,k=$(j.below,j.plotY>$(this.translatedThreshold,B)),r=$(m.inside,!!this.options.stacking);if(O){if(b=q(O),!(m.overflow==="allow"&&m.crop===!1)){b.y<0&&(b.height+=b.y,b.y=0);let u=b.y+b.height-B;u>0&&u<b.height-1&&(b.height-=u)}A&&(b={x:B-b.y-b.height,y:v-b.x-b.width,width:b.height,height:b.width}),r||(A?(b.x+=k?0:b.width,b.width=0):(b.y+=k?b.height:0,b.height=0))}m.align=$(m.align,!A||r?"center":k?"right":"left"),m.verticalAlign=$(m.verticalAlign,A||r?"middle":k?"top":"bottom"),at.prototype.alignDataLabel.call(this,j,P,m,b,S),m.inside&&j.contrastColor&&P.css({color:j.contrastColor})}M.compose=function(j){J.compose(at),V(nt,"ColumnDataLabel")&&(j.prototype.alignDataLabel=R)}}(lt||(lt={})),lt}),yt(Y,"Series/Bar/BarSeries.js",[Y["Series/Column/ColumnSeries.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{extend:ct,merge:lt}=ht;class nt extends J{}return nt.defaultOptions=lt(J.defaultOptions,{}),ct(nt.prototype,{inverted:!0}),et.registerSeriesType("bar",nt),nt}),yt(Y,"Series/Scatter/ScatterSeriesDefaults.js",[],function(){return{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.8em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}}),yt(Y,"Series/Scatter/ScatterSeries.js",[Y["Series/Scatter/ScatterSeriesDefaults.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{column:ct,line:lt}=et.seriesTypes,{addEvent:nt,extend:at,merge:q}=ht;class $ extends lt{applyJitter(){let M=this,R=this.options.jitter,j=this.points.length;R&&this.points.forEach(function(P,m){["x","y"].forEach(function(b,S){if(R[b]&&!P.isNull){let A=`plot${b.toUpperCase()}`,d=M[`${b}Axis`],v=R[b]*d.transA;if(d&&!d.logarithmic){let B=Math.max(0,(P[A]||0)-v),O=Math.min(d.len,(P[A]||0)+v);P[A]=B+(O-B)*function(k){let r=1e4*Math.sin(k);return r-Math.floor(r)}(m+S*j),b==="x"&&(P.clientX=P.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return $.defaultOptions=q(lt.defaultOptions,J),at($.prototype,{drawTracker:ct.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),nt($,"afterTranslate",function(){this.applyJitter()}),et.registerSeriesType("scatter",$),$}),yt(Y,"Series/CenteredUtilities.js",[Y["Core/Globals.js"],Y["Core/Series/Series.js"],Y["Core/Utilities.js"]],function(J,et,ht){var ct,lt;let{deg2rad:nt}=J,{fireEvent:at,isNumber:q,pick:$,relativeLength:V}=ht;return(lt=ct||(ct={})).getCenter=function(){let M=this.options,R=this.chart,j=2*(M.slicedOffset||0),P=R.plotWidth-2*j,m=R.plotHeight-2*j,b=M.center,S=Math.min(P,m),A=M.thickness,d,v=M.size,B=M.innerSize||0,O,k;typeof v=="string"&&(v=parseFloat(v)),typeof B=="string"&&(B=parseFloat(B));let r=[$(b[0],"50%"),$(b[1],"50%"),$(v&&v<0?void 0:M.size,"100%"),$(B&&B<0?void 0:M.innerSize||0,"0%")];for(!R.angular||this instanceof et||(r[3]=0),O=0;O<4;++O)k=r[O],d=O<2||O===2&&/%$/.test(k),r[O]=V(k,[P,m,S,r[2]][O])+(d?j:0);return r[3]>r[2]&&(r[3]=r[2]),q(A)&&2*A<r[2]&&A>0&&(r[3]=r[2]-2*A),at(this,"afterGetCenter",{positions:r}),r},lt.getStartAndEndRadians=function(M,R){let j=q(M)?M:0,P=q(R)&&R>j&&R-j<360?R:j+360;return{start:nt*(j+-90),end:nt*(P+-90)}},ct}),yt(Y,"Series/Pie/PiePoint.js",[Y["Core/Animation/AnimationUtilities.js"],Y["Core/Series/Point.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{setAnimation:ct}=J,{addEvent:lt,defined:nt,extend:at,isNumber:q,pick:$,relativeLength:V}=ht;class M extends et{getConnectorPath(j){let P=j.dataLabelPosition,m=j.options||{},b=m.connectorShape,S=this.connectorShapes[b]||b;return P&&S.call(this,{...P.computed,alignment:P.alignment},P.connectorPosition,m)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(j){let P=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(P.x,P.y,P.r+j,P.r+j,{innerR:P.r-1,start:P.start,end:P.end,borderRadius:P.borderRadius})}constructor(j,P,m){super(j,P,m),this.half=0,this.name??(this.name="Slice");let b=S=>{this.slice(S.type==="select")};lt(this,"select",b),lt(this,"unselect",b)}isValid(){return q(this.y)&&this.y>=0}setVisible(j,P=!0){j!==this.visible&&this.update({visible:j??!this.visible},P,void 0,!1)}slice(j,P,m){let b=this.series;ct(m,b.chart),P=$(P,!0),this.sliced=this.options.sliced=j=nt(j)?j:!this.sliced,b.options.data[b.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return at(M.prototype,{connectorShapes:{fixedOffset:function(R,j,P){let m=j.breakAt,b=j.touchingSliceAt,S=P.softConnector?["C",R.x+(R.alignment==="left"?-5:5),R.y,2*m.x-b.x,2*m.y-b.y,m.x,m.y]:["L",m.x,m.y];return[["M",R.x,R.y],S,["L",b.x,b.y]]},straight:function(R,j){let P=j.touchingSliceAt;return[["M",R.x,R.y],["L",P.x,P.y]]},crookedLine:function(R,j,P){let{breakAt:m,touchingSliceAt:b}=j,{series:S}=this,[A,d,v]=S.center,B=v/2,{plotLeft:O,plotWidth:k}=S.chart,r=R.alignment==="left",{x:u,y:s}=R,e=m.x;if(P.crookDistance){let o=V(P.crookDistance,1);e=r?A+B+(k+O-A-B)*(1-o):O+(A-B)*o}else e=A+(d-s)*Math.tan((this.angle||0)-Math.PI/2);let t=[["M",u,s]];return(r?e<=u&&e>=m.x:e>=u&&e<=m.x)&&t.push(["L",e,s]),t.push(["L",m.x,m.y],["L",b.x,b.y]),t}}}),M}),yt(Y,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),yt(Y,"Series/Pie/PieSeries.js",[Y["Series/CenteredUtilities.js"],Y["Series/Column/ColumnSeries.js"],Y["Core/Globals.js"],Y["Series/Pie/PiePoint.js"],Y["Series/Pie/PieSeriesDefaults.js"],Y["Core/Series/Series.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Renderer/SVG/Symbols.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt,nt,at,q,$){let{getStartAndEndRadians:V}=J,{noop:M}=ht,{clamp:R,extend:j,fireEvent:P,merge:m,pick:b}=$;class S extends nt{animate(d){let v=this,B=v.points,O=v.startAngleRad;d||B.forEach(function(k){let r=k.graphic,u=k.shapeArgs;r&&u&&(r.attr({r:b(k.startR,v.center&&v.center[3]/2),start:O,end:O}),r.animate({r:u.r,start:u.start,end:u.end},v.options.animation))})}drawEmpty(){let d,v,B=this.startAngleRad,O=this.endAngleRad,k=this.options;this.total===0&&this.center?(d=this.center[0],v=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(d,v,this.center[1]/2,0,B,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:q.arc(d,v,this.center[2]/2,0,{start:B,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":k.borderWidth,fill:k.fillColor||"none",stroke:k.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let d=this.chart.renderer;this.points.forEach(function(v){v.graphic&&v.hasNewShapeType()&&(v.graphic=v.graphic.destroy()),v.graphic||(v.graphic=d[v.shapeType](v.shapeArgs).add(v.series.group),v.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(d,v,B,O){let k=this.center,r=this.radii?this.radii[B.index]||0:k[2]/2,u=O.dataLabelPosition,s=(u==null?void 0:u.distance)||0,e=Math.asin(R((d-k[1])/(r+s),-1,1));return k[0]+Math.cos(e)*(r+s)*(v?-1:1)+(s>0?(v?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let d,v,B,O,k=this,r=k.chart;this.drawEmpty(),k.group&&!r.styledMode&&k.group.shadow(k.options.shadow),k.points.forEach(function(u){let s={};v=u.graphic,!u.isNull&&v?(O=u.shapeArgs,d=u.getTranslate(),r.styledMode||(B=k.pointAttribs(u,u.selected&&"select")),u.delayedRendering?(v.setRadialReference(k.center).attr(O).attr(d),r.styledMode||v.attr(B).attr({"stroke-linejoin":"round"}),u.delayedRendering=!1):(v.setRadialReference(k.center),r.styledMode||m(!0,s,B),m(!0,s,O,d),v.animate(s)),v.attr({visibility:u.visible?"inherit":"hidden"}),v.addClass(u.getClassName(),!0)):v&&(u.graphic=v.destroy())})}sortByAngle(d,v){d.sort(function(B,O){return B.angle!==void 0&&(O.angle-B.angle)*v})}translate(d){P(this,"translate"),this.generatePoints();let v=this.options,B=v.slicedOffset,O=V(v.startAngle,v.endAngle),k=this.startAngleRad=O.start,r=(this.endAngleRad=O.end)-k,u=this.points,s=v.ignoreHiddenPoint,e=u.length,t,o,a,f,y,h,T,X=0;for(d||(this.center=d=this.getCenter()),h=0;h<e;h++){T=u[h],t=k+X*r,T.isValid()&&(!s||T.visible)&&(X+=T.percentage/100),o=k+X*r;let g={x:d[0],y:d[1],r:d[2]/2,innerR:d[3]/2,start:Math.round(1e3*t)/1e3,end:Math.round(1e3*o)/1e3};T.shapeType="arc",T.shapeArgs=g,(a=(o+t)/2)>1.5*Math.PI?a-=2*Math.PI:a<-Math.PI/2&&(a+=2*Math.PI),T.slicedTranslation={translateX:Math.round(Math.cos(a)*B),translateY:Math.round(Math.sin(a)*B)},f=Math.cos(a)*d[2]/2,y=Math.sin(a)*d[2]/2,T.tooltipPos=[d[0]+.7*f,d[1]+.7*y],T.half=a<-Math.PI/2||a>Math.PI/2?1:0,T.angle=a}P(this,"afterTranslate")}updateTotals(){let d=this.points,v=d.length,B=this.options.ignoreHiddenPoint,O,k,r=0;for(O=0;O<v;O++)(k=d[O]).isValid()&&(!B||k.visible)&&(r+=k.y);for(O=0,this.total=r;O<v;O++)(k=d[O]).percentage=r>0&&(k.visible||!B)?k.y/r*100:0,k.total=r}}return S.defaultOptions=m(nt.defaultOptions,lt),j(S.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:et.prototype.drawTracker,getCenter:J.getCenter,getSymbol:M,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:et.prototype.pointAttribs,pointClass:ct,requireSorting:!1,searchPoint:M,trackerGroups:["group","dataLabelsGroup"]}),at.registerSeriesType("pie",S),S}),yt(Y,"Series/Pie/PieDataLabel.js",[Y["Core/Series/DataLabel.js"],Y["Core/Globals.js"],Y["Core/Renderer/RendererUtilities.js"],Y["Core/Series/SeriesRegistry.js"],Y["Core/Utilities.js"]],function(J,et,ht,ct,lt){var nt;let{composed:at,noop:q}=et,{distribute:$}=ht,{series:V}=ct,{arrayMax:M,clamp:R,defined:j,pick:P,pushUnique:m,relativeLength:b}=lt;return function(S){let A={radialDistributionY:function(k,r){var u;return(((u=r.dataLabelPosition)==null?void 0:u.top)||0)+k.distributeBox.pos},radialDistributionX:function(k,r,u,s,e){let t=e.dataLabelPosition;return k.getX(u<((t==null?void 0:t.top)||0)+2||u>((t==null?void 0:t.bottom)||0)-2?s:u,r.half,r,e)},justify:function(k,r,u,s){var e;return s[0]+(k.half?-1:1)*(u+(((e=r.dataLabelPosition)==null?void 0:e.distance)||0))},alignToPlotEdges:function(k,r,u,s){let e=k.getBBox().width;return r?e+s:u-e-s},alignToConnectors:function(k,r,u,s){let e=0,t;return k.forEach(function(o){(t=o.dataLabel.getBBox().width)>e&&(e=t)}),r?e+s:u-e-s}};function d(k,r){let{center:u,options:s}=this,e=u[2]/2,t=k.angle||0,o=Math.cos(t),a=Math.sin(t),f=u[0]+o*e,y=u[1]+a*e,h=Math.min((s.slicedOffset||0)+(s.borderWidth||0),r/5);return{natural:{x:f+o*r,y:y+a*r},computed:{},alignment:r<0?"center":k.half?"right":"left",connectorPosition:{breakAt:{x:f+o*h,y:y+a*h},touchingSliceAt:{x:f,y}},distance:r}}function v(){var Q;let k=this,r=k.points,u=k.chart,s=u.plotWidth,e=u.plotHeight,t=u.plotLeft,o=Math.round(u.chartWidth/3),a=k.center,f=a[2]/2,y=a[1],h=[[],[]],T=[0,0,0,0],X=k.dataLabelPositioners,g,L,I,F=0;k.visible&&((Q=k.hasDataLabels)!=null&&Q.call(k))&&(r.forEach(l=>{(l.dataLabels||[]).forEach(n=>{n.shortened&&(n.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),n.shortened=!1)})}),V.prototype.drawDataLabels.apply(k),r.forEach(l=>{(l.dataLabels||[]).forEach((n,x)=>{var c;let D=a[2]/2,i=n.options,p=b((i==null?void 0:i.distance)||0,D);x===0&&h[l.half].push(l),!j((c=i==null?void 0:i.style)==null?void 0:c.width)&&n.getBBox().width>o&&(n.css({width:Math.round(.7*o)+"px"}),n.shortened=!0),n.dataLabelPosition=this.getDataLabelPosition(l,p),F=Math.max(F,p)})}),h.forEach((l,n)=>{let x=l.length,D=[],i,p,c=0,w;x&&(k.sortByAngle(l,n-.5),F>0&&(i=Math.max(0,y-f-F),p=Math.min(y+f+F,u.plotHeight),l.forEach(C=>{(C.dataLabels||[]).forEach(z=>{var U;let G=z.dataLabelPosition;G&&G.distance>0&&(G.top=Math.max(0,y-f-G.distance),G.bottom=Math.min(y+f+G.distance,u.plotHeight),c=z.getBBox().height||21,z.lineHeight=u.renderer.fontMetrics(z.text||z).h+2*z.padding,C.distributeBox={target:(((U=z.dataLabelPosition)==null?void 0:U.natural.y)||0)-G.top+z.lineHeight/2,size:c,rank:C.y},D.push(C.distributeBox))})}),$(D,w=p+c-i,w/5)),l.forEach(C=>{(C.dataLabels||[]).forEach(z=>{let G=z.options||{},U=C.distributeBox,Z=z.dataLabelPosition,rt=(Z==null?void 0:Z.natural.y)||0,it=G.connectorPadding||0,N=z.lineHeight||21,E=(N-z.getBBox().height)/2,W=0,H=rt,K="inherit";if(Z){if(D&&j(U)&&Z.distance>0&&(U.pos===void 0?K="hidden":(I=U.size,H=X.radialDistributionY(C,z))),G.justify)W=X.justify(C,z,f,a);else switch(G.alignTo){case"connectors":W=X.alignToConnectors(l,n,s,t);break;case"plotEdges":W=X.alignToPlotEdges(z,n,s,t);break;default:W=X.radialDistributionX(k,C,H-E,rt,z)}if(Z.attribs={visibility:K,align:Z.alignment},Z.posAttribs={x:W+(G.x||0)+({left:it,right:-it}[Z.alignment]||0),y:H+(G.y||0)-N/2},Z.computed.x=W,Z.computed.y=H-E,P(G.crop,!0)){let tt;W-(L=z.getBBox().width)<it&&n===1?(tt=Math.round(L-W+it),T[3]=Math.max(tt,T[3])):W+L>s-it&&n===0&&(tt=Math.round(W+L-s+it),T[1]=Math.max(tt,T[1])),H-I/2<0?T[0]=Math.max(Math.round(-H+I/2),T[0]):H+I/2>e&&(T[2]=Math.max(Math.round(H+I/2-e),T[2])),Z.sideOverflow=tt}}})}))}),(M(T)===0||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),this.points.forEach(l=>{(l.dataLabels||[]).forEach(n=>{var p;let{connectorColor:x,connectorWidth:D=1}=n.options||{},i=n.dataLabelPosition;if(D){let c;g=n.connector,i&&i.distance>0?(c=!g,g||(n.connector=g=u.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+l.colorIndex+(l.className?" "+l.className:"")).add(k.dataLabelsGroup)),u.styledMode||g.attr({"stroke-width":D,stroke:x||l.color||"#666666"}),g[c?"attr":"animate"]({d:l.getConnectorPath(n)}),g.attr({visibility:(p=i.attribs)==null?void 0:p.visibility})):g&&(n.connector=g.destroy())}})})))}function B(){this.points.forEach(k=>{(k.dataLabels||[]).forEach(r=>{var s;let u=r.dataLabelPosition;u?(u.sideOverflow&&(r.css({width:Math.max(r.getBBox().width-u.sideOverflow,0)+"px",textOverflow:(((s=r.options)==null?void 0:s.style)||{}).textOverflow||"ellipsis"}),r.shortened=!0),r.attr(u.attribs),r[r.moved?"animate":"attr"](u.posAttribs),r.moved=!0):r&&r.attr({y:-9999})}),delete k.distributeBox},this)}function O(k){let r=this.center,u=this.options,s=u.center,e=u.minSize||80,t=e,o=u.size!==null;return!o&&(s[0]!==null?t=Math.max(r[2]-Math.max(k[1],k[3]),e):(t=Math.max(r[2]-k[1]-k[3],e),r[0]+=(k[3]-k[1])/2),s[1]!==null?t=R(t,e,r[2]-Math.max(k[0],k[2])):(t=R(t,e,r[2]-k[0]-k[2]),r[1]+=(k[0]-k[2])/2),t<r[2]?(r[2]=t,r[3]=Math.min(u.thickness?Math.max(0,t-2*u.thickness):Math.max(0,b(u.innerSize||0,t)),t),this.translate(r),this.drawDataLabels&&this.drawDataLabels()):o=!0),o}S.compose=function(k){if(J.compose(V),m(at,"PieDataLabel")){let r=k.prototype;r.dataLabelPositioners=A,r.alignDataLabel=q,r.drawDataLabels=v,r.getDataLabelPosition=d,r.placeDataLabels=B,r.verifyDataLabelOverflow=O}}}(nt||(nt={})),nt}),yt(Y,"Core/Geometry/GeometryUtilities.js",[],function(){var J,et;return(et=J||(J={})).getCenterOfPoints=function(ht){let ct=ht.reduce((lt,nt)=>(lt.x+=nt.x,lt.y+=nt.y,lt),{x:0,y:0});return{x:ct.x/ht.length,y:ct.y/ht.length}},et.getDistanceBetweenPoints=function(ht,ct){return Math.sqrt(Math.pow(ct.x-ht.x,2)+Math.pow(ct.y-ht.y,2))},et.getAngleBetweenPoints=function(ht,ct){return Math.atan2(ct.x-ht.x,ct.y-ht.y)},et.pointInPolygon=function({x:ht,y:ct},lt){let nt=lt.length,at,q,$=!1;for(at=0,q=nt-1;at<nt;q=at++){let[V,M]=lt[at],[R,j]=lt[q];M>ct!=j>ct&&ht<(R-V)*(ct-M)/(j-M)+V&&($=!$)}return $},J}),yt(Y,"Extensions/OverlappingDataLabels.js",[Y["Core/Geometry/GeometryUtilities.js"],Y["Core/Utilities.js"]],function(J,et){let{pointInPolygon:ht}=J,{addEvent:ct,fireEvent:lt,objectEach:nt,pick:at}=et;function q(M){let R=M.length,j=(B,O)=>!(O.x>=B.x+B.width||O.x+O.width<=B.x||O.y>=B.y+B.height||O.y+O.height<=B.y),P=(B,O)=>{for(let k of B)if(ht({x:k[0],y:k[1]},O))return!0;return!1},m,b,S,A,d,v=!1;for(let B=0;B<R;B++)(m=M[B])&&(m.oldOpacity=m.opacity,m.newOpacity=1,m.absoluteBox=function(O){var k,r;if(O&&(!O.alignAttr||O.placed)){let u=O.box?0:O.padding||0,s=O.alignAttr||{x:O.attr("x"),y:O.attr("y")},e=O.getBBox();return O.width=e.width,O.height=e.height,{x:s.x+(((k=O.parentGroup)==null?void 0:k.translateX)||0)+u,y:s.y+(((r=O.parentGroup)==null?void 0:r.translateY)||0)+u,width:(O.width||0)-2*u,height:(O.height||0)-2*u,polygon:e==null?void 0:e.polygon}}}(m));M.sort((B,O)=>(O.labelrank||0)-(B.labelrank||0));for(let B=0;B<R;++B){A=(b=M[B])&&b.absoluteBox;let O=A==null?void 0:A.polygon;for(let k=B+1;k<R;++k){d=(S=M[k])&&S.absoluteBox;let r=!1;if(A&&d&&b!==S&&b.newOpacity!==0&&S.newOpacity!==0&&b.visibility!=="hidden"&&S.visibility!=="hidden"){let u=d.polygon;if(O&&u&&O!==u?P(O,u)&&(r=!0):j(A,d)&&(r=!0),r){let s=b.labelrank<S.labelrank?b:S,e=s.text;s.newOpacity=0,e!=null&&e.element.querySelector("textPath")&&e.hide()}}}}for(let B of M)$(B,this)&&(v=!0);v&<(this,"afterHideAllOverlappingLabels")}function $(M,R){let j,P,m=!1;return M&&(P=M.newOpacity,M.oldOpacity!==P&&(M.hasClass("highcharts-data-label")?(M[P?"removeClass":"addClass"]("highcharts-data-label-hidden"),j=function(){R.styledMode||M.css({pointerEvents:P?"auto":"none"})},m=!0,M[M.isOld?"animate":"attr"]({opacity:P},void 0,j),lt(R,"afterHideOverlappingLabel")):M.attr({opacity:P})),M.isOld=!0),m}function V(){var j;let M=this,R=[];for(let P of M.labelCollectors||[])R=R.concat(P());for(let P of M.yAxis||[])P.stacking&&P.options.stackLabels&&!P.options.stackLabels.allowOverlap&&nt(P.stacking.stacks,m=>{nt(m,b=>{b.label&&R.push(b.label)})});for(let P of M.series||[])if(P.visible&&((j=P.hasDataLabels)!=null&&j.call(P))){let m=b=>{for(let S of b)S.visible&&(S.dataLabels||[]).forEach(A=>{var v;let d=A.options||{};A.labelrank=at(d.labelrank,S.labelrank,(v=S.shapeArgs)==null?void 0:v.height),d.allowOverlap??Number(d.distance)>0?(A.oldOpacity=A.opacity,A.newOpacity=1,$(A,M)):R.push(A)})};m(P.nodes||[]),m(P.points)}this.hideOverlappingLabels(R)}return{compose:function(M){let R=M.prototype;R.hideOverlappingLabels||(R.hideOverlappingLabels=q,ct(M,"render",V))}}}),yt(Y,"Extensions/BorderRadius.js",[Y["Core/Defaults.js"],Y["Core/Globals.js"],Y["Core/Utilities.js"]],function(J,et,ht){let{defaultOptions:ct}=J,{noop:lt}=et,{addEvent:nt,extend:at,isObject:q,merge:$,relativeLength:V}=ht,M={radius:0,scope:"stack",where:void 0},R=lt,j=lt;function P(d,v,B,O,k={}){let r=R(d,v,B,O,k),{innerR:u=0,r:s=B,start:e=0,end:t=0}=k;if(k.open||!k.borderRadius)return r;let o=t-e,a=Math.sin(o/2),f=Math.max(Math.min(V(k.borderRadius||0,s-u),(s-u)/2,s*a/(1+a)),0),y=Math.min(f,o/Math.PI*2*u),h=r.length-1;for(;h--;)(function(T,X,g){let L,I,F,Q=T[X],l=T[X+1];if(l[0]==="Z"&&(l=T[0]),(Q[0]==="M"||Q[0]==="L")&&l[0]==="A"?(L=Q,I=l,F=!0):Q[0]==="A"&&(l[0]==="M"||l[0]==="L")&&(L=l,I=Q),L&&I&&I.params){let n=I[1],x=I[5],D=I.params,{start:i,end:p,cx:c,cy:w}=D,C=x?n-g:n+g,z=C?Math.asin(g/C):0,G=x?z:-z,U=Math.cos(z)*C;F?(D.start=i+G,L[1]=c+U*Math.cos(i),L[2]=w+U*Math.sin(i),T.splice(X+1,0,["A",g,g,0,0,1,c+n*Math.cos(D.start),w+n*Math.sin(D.start)])):(D.end=p-G,I[6]=c+n*Math.cos(D.end),I[7]=w+n*Math.sin(D.end),T.splice(X+1,0,["A",g,g,0,0,1,c+U*Math.cos(p),w+U*Math.sin(p)])),I[4]=Math.abs(D.end-D.start)<Math.PI?0:1}})(r,h,h>1?y:f);return r}function m(){var d,v;if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:B,yAxis:O}=this,k=B.stacking==="percent",r=(v=(d=ct.plotOptions)==null?void 0:d[this.type])==null?void 0:v.borderRadius,u=b(B.borderRadius,q(r)?r:{}),s=O.options.reversed;for(let e of this.points){let{shapeArgs:t}=e;if(e.shapeType==="roundedRect"&&t){let{width:o=0,height:a=0,y:f=0}=t,y=f,h=a;if(u.scope==="stack"&&e.stackTotal){let L=O.translate(k?100:e.stackTotal,!1,!0,!1,!0),I=O.translate(B.threshold||0,!1,!0,!1,!0),F=this.crispCol(0,Math.min(L,I),0,Math.abs(L-I));y=F.y,h=F.height}let T=(e.negative?-1:1)*(s?-1:1)==-1,X=u.where;!X&&this.is("waterfall")&&Math.abs((e.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(X="all"),X||(X="end");let g=Math.min(V(u.radius,o),o/2,X==="all"?a/2:1/0)||0;X==="end"&&(T&&(y-=g),h+=g),at(t,{brBoxHeight:h,brBoxY:y,r:g})}}}}function b(d,v){return q(d)||(d={radius:d||0}),$(M,v,d)}function S(){let d=b(this.options.borderRadius);for(let v of this.points){let B=v.shapeArgs;B&&(B.borderRadius=V(d.radius,(B.r||0)-(B.innerR||0)))}}function A(d,v,B,O,k={}){let r=j(d,v,B,O,k),{r:u=0,brBoxHeight:s=O,brBoxY:e=v}=k,t=v-e,o=e+s-(v+O),a=t-u>-.1?0:u,f=o-u>-.1?0:u,y=Math.max(a&&t,0),h=Math.max(f&&o,0),T=[d+a,v],X=[d+B-a,v],g=[d+B,v+a],L=[d+B,v+O-f],I=[d+B-f,v+O],F=[d+f,v+O],Q=[d,v+O-f],l=[d,v+a],n=(x,D)=>Math.sqrt(Math.pow(x,2)-Math.pow(D,2));if(y){let x=n(a,a-y);T[0]-=x,X[0]+=x,g[1]=l[1]=v+a-y}if(O<a-y){let x=n(a,a-y-O);g[0]=L[0]=d+B-a+x,I[0]=Math.min(g[0],I[0]),F[0]=Math.max(L[0],F[0]),Q[0]=l[0]=d+a-x,g[1]=l[1]=v+O}if(h){let x=n(f,f-h);I[0]+=x,F[0]-=x,L[1]=Q[1]=v+O-f+h}if(O<f-h){let x=n(f,f-h-O);g[0]=L[0]=d+B-f+x,X[0]=Math.min(g[0],X[0]),T[0]=Math.max(L[0],T[0]),Q[0]=l[0]=d+f-x,L[1]=Q[1]=v}return r.length=0,r.push(["M",...T],["L",...X],["A",a,a,0,0,1,...g],["L",...L],["A",f,f,0,0,1,...I],["L",...F],["A",f,f,0,0,1,...Q],["L",...l],["A",a,a,0,0,1,...T],["Z"]),r}return{compose:function(d,v,B){let O=d.types.pie;if(!v.symbolCustomAttribs.includes("borderRadius")){let k=B.prototype.symbols;nt(d,"afterColumnTranslate",m,{order:9}),nt(O,"afterTranslate",S),v.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),R=k.arc,j=k.roundedRect,k.arc=P,k.roundedRect=A}},optionsToObject:b}}),yt(Y,"Core/Responsive.js",[Y["Core/Utilities.js"]],function(J){var et;let{diffObjects:ht,extend:ct,find:lt,merge:nt,pick:at,uniqueKey:q}=J;return function($){function V(R,j){let P=R.condition;(P.callback||function(){return this.chartWidth<=at(P.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=at(P.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=at(P.minWidth,0)&&this.chartHeight>=at(P.minHeight,0)}).call(this)&&j.push(R._id)}function M(R,j){let P=this.options.responsive,m=this.currentResponsive,b=[],S;!j&&P&&P.rules&&P.rules.forEach(v=>{v._id===void 0&&(v._id=q()),this.matchResponsiveRule(v,b)},this);let A=nt(...b.map(v=>lt((P||{}).rules||[],B=>B._id===v)).map(v=>v&&v.chartOptions));A.isResponsiveOptions=!0,b=b.toString()||void 0;let d=m&&m.ruleIds;b===d||(m&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(m.undoOptions,R,!0),this.updatingResponsive=!1),b?((S=ht(A,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:b,mergedOptions:A,undoOptions:S},this.updatingResponsive||this.update(A,R,!0)):this.currentResponsive=void 0)}$.compose=function(R){let j=R.prototype;return j.matchResponsiveRule||ct(j,{matchResponsiveRule:V,setResponsive:M}),R}}(et||(et={})),et}),yt(Y,"masters/highcharts.src.js",[Y["Core/Globals.js"],Y["Core/Utilities.js"],Y["Core/Defaults.js"],Y["Core/Animation/Fx.js"],Y["Core/Animation/AnimationUtilities.js"],Y["Core/Renderer/HTML/AST.js"],Y["Core/Templating.js"],Y["Core/Renderer/RendererRegistry.js"],Y["Core/Renderer/RendererUtilities.js"],Y["Core/Renderer/SVG/SVGElement.js"],Y["Core/Renderer/SVG/SVGRenderer.js"],Y["Core/Renderer/HTML/HTMLElement.js"],Y["Core/Axis/Axis.js"],Y["Core/Axis/DateTimeAxis.js"],Y["Core/Axis/LogarithmicAxis.js"],Y["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],Y["Core/Axis/Tick.js"],Y["Core/Tooltip.js"],Y["Core/Series/Point.js"],Y["Core/Pointer.js"],Y["Core/Legend/Legend.js"],Y["Core/Legend/LegendSymbol.js"],Y["Core/Chart/Chart.js"],Y["Extensions/ScrollablePlotArea.js"],Y["Core/Axis/Stacking/StackingAxis.js"],Y["Core/Axis/Stacking/StackItem.js"],Y["Core/Series/Series.js"],Y["Core/Series/SeriesRegistry.js"],Y["Series/Column/ColumnDataLabel.js"],Y["Series/Pie/PieDataLabel.js"],Y["Core/Series/DataLabel.js"],Y["Extensions/OverlappingDataLabels.js"],Y["Extensions/BorderRadius.js"],Y["Core/Responsive.js"],Y["Core/Color/Color.js"],Y["Core/Time.js"]],function(J,et,ht,ct,lt,nt,at,q,$,V,M,R,j,P,m,b,S,A,d,v,B,O,k,r,u,s,e,t,o,a,f,y,h,T,X,g){return J.AST=nt,J.Axis=j,J.Chart=k,J.Color=X,J.DataLabel=f,J.Fx=ct,J.HTMLElement=R,J.Legend=B,J.LegendSymbol=O,J.OverlappingDataLabels=J.OverlappingDataLabels||y,J.PlotLineOrBand=b,J.Point=d,J.Pointer=v,J.RendererRegistry=q,J.Series=e,J.SeriesRegistry=t,J.StackItem=s,J.SVGElement=V,J.SVGRenderer=M,J.Templating=at,J.Tick=S,J.Time=g,J.Tooltip=A,J.animate=lt.animate,J.animObject=lt.animObject,J.chart=k.chart,J.color=X.parse,J.dateFormat=at.dateFormat,J.defaultOptions=ht.defaultOptions,J.distribute=$.distribute,J.format=at.format,J.getDeferredAnimation=lt.getDeferredAnimation,J.getOptions=ht.getOptions,J.numberFormat=at.numberFormat,J.seriesType=t.seriesType,J.setAnimation=lt.setAnimation,J.setOptions=ht.setOptions,J.stop=lt.stop,J.time=ht.defaultTime,J.timers=ct.timers,h.compose(J.Series,J.SVGElement,J.SVGRenderer),o.compose(J.Series.types.column),f.compose(J.Series),P.compose(J.Axis),R.compose(J.SVGRenderer),B.compose(J.Chart),m.compose(J.Axis),y.compose(J.Chart),a.compose(J.Series.types.pie),b.compose(J.Chart,J.Axis),v.compose(J.Chart),T.compose(J.Chart),r.compose(J.Axis,J.Chart,J.Series),u.compose(J.Axis,J.Chart,J.Series),A.compose(J.Pointer),et.extend(J,et),J}),Y["masters/highcharts.src.js"]._modules=Y,Y["masters/highcharts.src.js"]})})(Kt);var he=Kt.exports;const It=te(he);ae(It);const de=ie({name:"Es3dPie",components:{},props:{options:{type:Object,default:()=>({})},datasets:{type:[Array,Object,String],default:()=>[]},eventData:{type:[String,Boolean,Number],default:""},element:{type:Object,default:()=>({})}},setup(Pt){let Mt=null;const Y=["#4992FFFF","#7CFFB2FF","#FDDD60FF","#FF6E76FF","#58D9F9FF","#05C091FF","#87CEEB","#20B2AA","#FF7F50","#90EE90","#ADD8E6","#FFDAB9","#800080","#FFC0CB","#FFF44F","#8A2BE2","#FFA500","#8DB600","#FF007F","#9400D3","#32CD32","#FF9A8A","#8B0000","#32CD9A","#E6E6FA","#00008B"],yt=(J,et)=>{const{codeConfig:ht,itemColors:ct,tooltip:lt,unit:nt,labelTextColor:at,valueColor:q,size:$,innerSize:V,depth:M}=et,R=document.querySelector(`.chart-${Pt.element.id}`),j=J,P=J;if(R&&(Mt&&(Mt.destroy(),Mt=null),P)){const m=ct.concat(Y).map(d=>({linearGradient:{x1:0,y1:1,x2:1,y2:0},stops:[[0,d.color||d],[1,d.color||d]]})),b={chart:{type:"pie",accessibility:{enabled:!1},style:{"pointer-events":"auto"},margin:[0,0,0,0],reflow:!0,backgroundColor:"rgba(0, 0, 0, 0)",events:{load(){const d=It.each,v=this.series[0].points;d(v,B=>{B.graphic.attr({translateY:-B.shapeArgs.ran}),B.graphic.side1.attr({translateY:-B.shapeArgs.ran}),B.graphic.side2.attr({translateY:-B.shapeArgs.ran})})}},options3d:{enabled:!0,alpha:65,beta:0}},navigation:{align:"right"},legend:{enabled:!1,layout:"horizontal",itemHoverStyle:{color:"#34dcfc"},symbolWidth:16,symbolHeight:14,symbolRadius:3},tooltip:{animation:!0,formatter(){return`<span style="color:${lt.style.color}">${this.point.name} : ${this.point.y} </span>`},...lt},exporting:{enabled:!1},credits:{enabled:!1},title:{show:"false",text:""},subtitle:{text:""},plotOptions:{pie:{depth:M,allowPointSelect:!1,cursor:"pointer",innerSize:`${V}%`,size:`${$}%`,dataLabels:{enabled:!0,formatter(){return`<span style='color: ${at};font-size:12px;'>${this.point.name} </span><span style='color: ${q};font-size:12px;'>${this.point.y} ${nt}</span>`},connectorColor:"#02AAD0",style:{textOverflow:"ellipsis",textOutline:"none"}},showInLegend:!0}},series:[{type:"pie",name:"",colorByPoint:!0,colors:m,data:j,states:{inactive:{opacity:1}}}]},A=new Function("option","datas",ht)(le(b),P,Mt,It);Zt(()=>{Mt=It.chart(document.querySelector(`.chart-${Pt.element.id}`),A),Mt.unit=nt,It.addEvent(Mt,"redraw",()=>{const d=It.each,v=Mt.series[0].points;d(v,B=>{B.graphic.attr({translateY:-B.shapeArgs.ran}),B.graphic.side1.attr({translateY:-B.shapeArgs.ran}),B.graphic.side2.attr({translateY:-B.shapeArgs.ran})})}),Mt.reflow(),setTimeout(()=>{const d=document.createDocumentFragment();j.forEach((k,r)=>{const u=document.createElement("div");u.style="display: inline-block; margin-right: 10px;";const s=document.createElement("span"),e=m[r].stops[0][1];s.style=`display: inline-block;width: 12px; height: 12px; background-color: ${e}; border-radius: 2px; margin-right: 3px;`;const t=document.createElement("span");t.style=`color: ${Pt.legendFontColor}`,t.innerHTML=k.name,u.appendChild(s),u.appendChild(t),d.appendChild(u)});const v=document.createElement("div");v.className="my-highcharts-legend-wrapper",v.style="position: absolute; bottom: 0; left: 0; righit: 0; width: 100%; height: 16px; display: block; overflow-x: auto; overflow: hidden; padding: 0 32px 0px 16px; box-sizing: border-box;";const B=document.createElement("div");B.style="display: inline-block; width: max-content;",B.className="my-highcharts-legend-inner",B.appendChild(d),v.appendChild(B),setTimeout(()=>{if(v.offsetWidth<B.offsetWidth){const k=document.createElement("span");k.style=` position: absolute;
|
|
left: 2px;
|
|
top: 2px;
|
|
display: inline-block;
|
|
width:8px;
|
|
height: 8px;
|
|
border-right: 2px solid ${Pt.legendFontColor};
|
|
border-bottom: 2px solid ${Pt.legendFontColor};
|
|
-webkit-transform: rotate(135deg);cursor: pointer;`;const r=document.createElement("span");r.style=`position: absolute;
|
|
right: 2px;
|
|
top: 2px;
|
|
display: inline-block;
|
|
width:8px;
|
|
height: 8px;
|
|
border-right: 2px solid ${Pt.legendFontColor};
|
|
border-bottom: 2px solid ${Pt.legendFontColor};
|
|
-webkit-transform: rotate(-45deg);cursor: pointer`,v.appendChild(k),v.appendChild(r);let u=0;const s=()=>{u>=0||(u+=20,B.style.transform=`translateX(${u}px)`)},e=()=>{B.offsetWidth-v.offsetWidth<=Math.abs(u)||(u-=20,B.style.transform=`translateX(${u}px)`)};k.addEventListener("click",s),r.addEventListener("click",e)}},500);const O=document.querySelector(`.chart-${Pt.element.id}`);O.style.position="relative",O.appendChild(v)})})}};se([()=>Pt.datasets,()=>Pt.options],([J,et])=>{Zt(()=>{yt(J,et)})},{immediate:!0,deep:!0})}});function ce(Pt,Mt,Y,yt,J,et){return re(),oe("div",{class:ne([`chart-${Pt.element.id}`,"highcharts-wrapper pie-3d-circle-chart"]),style:{width:"100%",height:"100%"}},null,2)}const xe=ee(de,[["render",ce],["__scopeId","data-v-f5f9d8fd"]]);export{xe as default};
|