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
389 KiB
18 lines
389 KiB
import{aa as ie,a6 as se,p as oe,d as re,t as ne,Q as Kt,o as ae,b as le,k as he}from"./index-bVOhw2NF.js";import{H as de}from"./highcharts-3d-DVmvrGIS.js";import{c as ce}from"./cloneDeep-C6NKQlMO.js";import"./_initCloneObject-K-Y0ueWp.js";import"./_getTag-BJ2nhJXz.js";var Qt={exports:{}};(function(wt){(function(Ct,z){wt.exports?(z.default=z,wt.exports=Ct&&Ct.document?z(Ct):z):(Ct.Highcharts&&Ct.Highcharts.error(16,!0),Ct.Highcharts=z(Ct))})(typeof window<"u"?window:ie,function(Ct){var z={};function gt(V,J,st,nt){!V.hasOwnProperty(J)&&(V[J]=nt.apply(null,st),Ct&&typeof CustomEvent=="function"&&Ct.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:J,module:V[J]}})))}return gt(z,"Core/Globals.js",[],function(){var V,J;return(J=V||(V={})).SVG_NS="http://www.w3.org/2000/svg",J.product="Highcharts",J.version="11.4.8",J.win=Ct!==void 0?Ct:{},J.doc=J.win.document,J.svg=J.doc&&J.doc.createElementNS&&!!J.doc.createElementNS(J.SVG_NS,"svg").createSVGRect,J.userAgent=J.win.navigator&&J.win.navigator.userAgent||"",J.isChrome=J.win.chrome,J.isFirefox=J.userAgent.indexOf("Firefox")!==-1,J.isMS=/(edge|msie|trident)/i.test(J.userAgent)&&!J.win.opera,J.isSafari=!J.isChrome&&J.userAgent.indexOf("Safari")!==-1,J.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(J.userAgent),J.isWebKit=J.userAgent.indexOf("AppleWebKit")!==-1,J.deg2rad=2*Math.PI/360,J.hasBidiBug=J.isFirefox&&4>parseInt(J.userAgent.split("Firefox/")[1],10),J.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],J.noop=function(){},J.supportsPassiveEvents=function(){let st=!1;if(!J.isMS){let nt=Object.defineProperty({},"passive",{get:function(){st=!0}});J.win.addEventListener&&J.win.removeEventListener&&(J.win.addEventListener("testPassive",J.noop,nt),J.win.removeEventListener("testPassive",J.noop,nt))}return st}(),J.charts=[],J.composed=[],J.dateFormats={},J.seriesTypes={},J.symbolSizes={},J.chartCount=0,V}),gt(z,"Core/Utilities.js",[z["Core/Globals.js"]],function(V){let J,{charts:st,doc:nt,win:it}=V;function tt(e,t,s,n){let i=t?"Highcharts error":"Highcharts warning";e===32&&(e=`${i}: Deprecated member`);let a=B(e),r=a?`${i} #${e}: www.highcharts.com/errors/${e}/`:e.toString();if(n!==void 0){let f="";a&&(r+="?"),u(n,function(P,d){f+=`
|
|
- ${d}: ${P}`,a&&(r+=encodeURI(d)+"="+encodeURI(P))}),r+=f}m(V,"displayError",{chart:s,code:e,message:r,params:n},function(){if(t)throw Error(r);it.console&&tt.messages.indexOf(r)===-1&&console.warn(r)}),tt.messages.push(r)}function Q(e,t){return parseInt(e,t||10)}function X(e){return typeof e=="string"}function F(e){let t=Object.prototype.toString.call(e);return t==="[object Array]"||t==="[object Array Iterator]"}function $(e,t){return!!e&&typeof e=="object"&&(!t||!F(e))}function C(e){return $(e)&&typeof e.nodeType=="number"}function j(e){let t=e&&e.constructor;return!!($(e,!0)&&!C(e)&&t&&t.name&&t.name!=="Object")}function B(e){return typeof e=="number"&&!isNaN(e)&&e<1/0&&e>-1/0}function R(e){return e!=null}function g(e,t,s){let n,i=X(t)&&!R(s),a=(r,f)=>{R(r)?e.setAttribute(f,r):i?(n=e.getAttribute(f))||f!=="class"||(n=e.getAttribute(f+"Name")):e.removeAttribute(f)};return X(t)?a(s,t):u(t,a),n}function k(e){return F(e)?e:[e]}function A(e,t){let s;for(s in e||(e={}),t)e[s]=t[s];return e}function v(){let e=arguments,t=e.length;for(let s=0;s<t;s++){let n=e[s];if(n!=null)return n}}function p(e,t){A(e.style,t)}function y(e){return Math.pow(10,Math.floor(Math.log(e)/Math.LN10))}function O(e,t){return e>1e14?e:parseFloat(e.toPrecision(t||14))}(tt||(tt={})).messages=[],Math.easeInOutSine=function(e){return-.5*(Math.cos(Math.PI*e)-1)};let L=Array.prototype.find?function(e,t){return e.find(t)}:function(e,t){let s,n=e.length;for(s=0;s<n;s++)if(t(e[s],s))return e[s]};function u(e,t,s){for(let n in e)Object.hasOwnProperty.call(e,n)&&t.call(s||e[n],e[n],n,e)}function l(e,t,s){function n(r,f){let P=e.removeEventListener;P&&P.call(e,r,f,!1)}function i(r){let f,P;e.nodeName&&(t?(f={})[t]=!0:f=r,u(f,function(d,w){if(r[w])for(P=r[w].length;P--;)n(w,r[w][P].fn)}))}let a=typeof e=="function"&&e.prototype||e;if(Object.hasOwnProperty.call(a,"hcEvents")){let r=a.hcEvents;if(t){let f=r[t]||[];s?(r[t]=f.filter(function(P){return s!==P.fn}),n(t,s)):(i(r),r[t]=[])}else i(r),delete a.hcEvents}}function m(e,t,s,n){if(s=s||{},nt.createEvent&&(e.dispatchEvent||e.fireEvent&&e!==V)){let i=nt.createEvent("Events");i.initEvent(t,!0,!0),s=A(i,s),e.dispatchEvent?e.dispatchEvent(s):e.fireEvent(t,s)}else if(e.hcEvents){s.target||A(s,{preventDefault:function(){s.defaultPrevented=!0},target:e,type:t});let i=[],a=e,r=!1;for(;a.hcEvents;)Object.hasOwnProperty.call(a,"hcEvents")&&a.hcEvents[t]&&(i.length&&(r=!0),i.unshift.apply(i,a.hcEvents[t])),a=Object.getPrototypeOf(a);r&&i.sort((f,P)=>f.order-P.order),i.forEach(f=>{f.fn.call(e,s)===!1&&s.preventDefault()})}n&&!s.defaultPrevented&&n.call(e,s)}u({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(e,t){V[t]=function(s){return tt(32,!1,void 0,{[`Highcharts.${t}`]:`use Array.${e}`}),Array.prototype[e].apply(s,[].slice.call(arguments,1))}});let o=function(){let e=Math.random().toString(36).substring(2,9)+"-",t=0;return function(){return"highcharts-"+(J?"":e)+t++}}();return it.jQuery&&(it.jQuery.fn.highcharts=function(){let e=[].slice.call(arguments);if(this[0])return e[0]?(new V[X(e[0])?e.shift():"Chart"](this[0],e[0],e[1]),this):st[g(this[0],"data-highcharts-chart")]}),{addEvent:function(e,t,s,n={}){let i=typeof e=="function"&&e.prototype||e;Object.hasOwnProperty.call(i,"hcEvents")||(i.hcEvents={});let a=i.hcEvents;V.Point&&e instanceof V.Point&&e.series&&e.series.chart&&(e.series.chart.runTrackerClick=!0);let r=e.addEventListener;r&&r.call(e,t,s,!!V.supportsPassiveEvents&&{passive:n.passive===void 0?t.indexOf("touch")!==-1:n.passive,capture:!1}),a[t]||(a[t]=[]);let f={fn:s,order:typeof n.order=="number"?n.order:1/0};return a[t].push(f),a[t].sort((P,d)=>P.order-d.order),function(){l(e,t,s)}},arrayMax:function(e){let t=e.length,s=e[0];for(;t--;)e[t]>s&&(s=e[t]);return s},arrayMin:function(e){let t=e.length,s=e[0];for(;t--;)e[t]<s&&(s=e[t]);return s},attr:g,clamp:function(e,t,s){return e>t?e<s?e:s:t},clearTimeout:function(e){R(e)&&clearTimeout(e)},correctFloat:O,createElement:function(e,t,s,n,i){let a=nt.createElement(e);return t&&A(a,t),i&&p(a,{padding:"0",border:"none",margin:"0"}),s&&p(a,s),n&&n.appendChild(a),a},crisp:(e,t=0,s)=>{let n=t%2/2,i=s?-1:1;return(Math.round(e*i-n)+n)*i},css:p,defined:R,destroyObjectProperties:function(e,t,s){u(e,function(n,i){n!==t&&(n!=null&&n.destroy)&&n.destroy(),(n!=null&&n.destroy||!s)&&delete e[i]})},diffObjects:function(e,t,s,n){let i={};return function a(r,f,P,d){let w=s?f:r;u(r,function(T,D){if(!d&&n&&n.indexOf(D)>-1&&f[D]){T=k(T),P[D]=[];for(let H=0;H<Math.max(T.length,f[D].length);H++)f[D][H]&&(T[H]===void 0?P[D][H]=f[D][H]:(P[D][H]={},a(T[H],f[D][H],P[D][H],d+1)))}else $(T,!0)&&!T.nodeType?(P[D]=F(T)?[]:{},a(T,f[D]||{},P[D],d+1),Object.keys(P[D]).length!==0||D==="colorAxis"&&d===0||delete P[D]):(r[D]!==f[D]||D in r&&!(D in f))&&D!=="__proto__"&&D!=="constructor"&&(P[D]=w[D])})}(e,t,i,0),i},discardElement:function(e){e&&e.parentElement&&e.parentElement.removeChild(e)},erase:function(e,t){let s=e.length;for(;s--;)if(e[s]===t){e.splice(s,1);break}},error:tt,extend:A,extendClass:function(e,t){let s=function(){};return s.prototype=new e,A(s.prototype,t),s},find:L,fireEvent:m,getClosestDistance:function(e,t){let s,n,i,a=!t;return e.forEach(r=>{if(r.length>1)for(i=r.length-1;i>0;i--)(n=r[i]-r[i-1])<0&&!a?(t==null||t(),t=void 0):n&&(s===void 0||n<s)&&(s=n)}),s},getMagnitude:y,getNestedProperty:function(e,t){let s=e.split(".");for(;s.length&&R(t);){let n=s.shift();if(n===void 0||n==="__proto__")return;if(n==="this"){let a;return $(t)&&(a=t["@this"]),a??t}let i=t[n];if(!R(i)||typeof i=="function"||typeof i.nodeType=="number"||i===it)return;t=i}return t},getStyle:function e(t,s,n){let i;if(s==="width"){let r=Math.min(t.offsetWidth,t.scrollWidth),f=t.getBoundingClientRect&&t.getBoundingClientRect().width;return f<r&&f>=r-1&&(r=Math.floor(f)),Math.max(0,r-(e(t,"padding-left",!0)||0)-(e(t,"padding-right",!0)||0))}if(s==="height")return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(e(t,"padding-top",!0)||0)-(e(t,"padding-bottom",!0)||0));let a=it.getComputedStyle(t,void 0);return a&&(i=a.getPropertyValue(s),v(n,s!=="opacity")&&(i=Q(i))),i},inArray:function(e,t,s){return tt(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),t.indexOf(e,s)},insertItem:function(e,t){let s,n=e.options.index,i=t.length;for(s=e.options.isInternal?i:0;s<i+1;s++)if(!t[s]||B(n)&&n<v(t[s].options.index,t[s]._i)||t[s].options.isInternal){t.splice(s,0,e);break}return s},isArray:F,isClass:j,isDOMElement:C,isFunction:function(e){return typeof e=="function"},isNumber:B,isObject:$,isString:X,keys:function(e){return tt(32,!1,void 0,{"Highcharts.keys":"use Object.keys"}),Object.keys(e)},merge:function(){let e,t=arguments,s={},n=function(a,r){return typeof a!="object"&&(a={}),u(r,function(f,P){P!=="__proto__"&&P!=="constructor"&&(!$(f,!0)||j(f)||C(f)?a[P]=r[P]:a[P]=n(a[P]||{},f))}),a};t[0]===!0&&(s=t[1],t=Array.prototype.slice.call(t,2));let i=t.length;for(e=0;e<i;e++)s=n(s,t[e]);return s},normalizeTickInterval:function(e,t,s,n,i){let a,r=e;s=v(s,y(e));let f=e/s;for(!t&&(t=i?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],n===!1&&(s===1?t=t.filter(function(P){return P%1==0}):s<=.1&&(t=[1/s]))),a=0;a<t.length&&(r=t[a],(!i||!(r*s>=e))&&(i||!(f<=(t[a]+(t[a+1]||t[a]))/2)));a++);return O(r*s,-Math.round(Math.log(.001)/Math.LN10))},objectEach:u,offset:function(e){let t=nt.documentElement,s=e.parentElement||e.parentNode?e.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:s.top+(it.pageYOffset||t.scrollTop)-(t.clientTop||0),left:s.left+(it.pageXOffset||t.scrollLeft)-(t.clientLeft||0),width:s.width,height:s.height}},pad:function(e,t,s){return Array((t||2)+1-String(e).replace("-","").length).join(s||"0")+e},pick:v,pInt:Q,pushUnique:function(e,t){return 0>e.indexOf(t)&&!!e.push(t)},relativeLength:function(e,t,s){return/%$/.test(e)?t*parseFloat(e)/100+(s||0):parseFloat(e)},removeEvent:l,replaceNested:function(e,...t){let s,n;do for(n of(s=e,t))e=e.replace(n[0],n[1]);while(e!==s);return e},splat:k,stableSort:function(e,t){let s,n,i=e.length;for(n=0;n<i;n++)e[n].safeI=n;for(e.sort(function(a,r){return(s=t(a,r))===0?a.safeI-r.safeI:s}),n=0;n<i;n++)delete e[n].safeI},syncTimeout:function(e,t,s){return t>0?setTimeout(e,t,s):(e.call(0,s),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:o,useSerialIds:function(e){return J=v(e,J)},wrap:function(e,t,s){let n=e[t];e[t]=function(){let i=arguments,a=this;return s.apply(this,[function(){return n.apply(a,arguments.length?arguments:i)}].concat([].slice.call(arguments)))}}}}),gt(z,"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"}}),gt(z,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),gt(z,"Core/Time.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J){let{win:st}=V,{defined:nt,error:it,extend:tt,isNumber:Q,isObject:X,merge:F,objectEach:$,pad:C,pick:j,splat:B,timeUnits:R}=J,g=V.isSafari&&st.Intl&&st.Intl.DateTimeFormat.prototype.formatRange,k=V.isSafari&&st.Intl&&!st.Intl.DateTimeFormat.prototype.formatRange;class A{constructor(p){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=st.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(p)}get(p,y){if(this.variableTimezone||this.timezoneOffset){let O=y.getTime(),L=O-this.getTimezoneOffset(y);y.setTime(L);let u=y["getUTC"+p]();return y.setTime(O),u}return this.useUTC?y["getUTC"+p]():y["get"+p]()}set(p,y,O){if(this.variableTimezone||this.timezoneOffset){if(p==="Milliseconds"||p==="Seconds"||p==="Minutes"&&this.getTimezoneOffset(y)%36e5==0)return y["setUTC"+p](O);let L=this.getTimezoneOffset(y),u=y.getTime()-L;y.setTime(u),y["setUTC"+p](O);let l=this.getTimezoneOffset(y);return u=y.getTime()+l,y.setTime(u)}return this.useUTC||g&&p==="FullYear"?y["setUTC"+p](O):y["set"+p](O)}update(p={}){let y=j(p.useUTC,!0);this.options=p=F(!0,this.options,p),this.Date=p.Date||st.Date||Date,this.useUTC=y,this.timezoneOffset=y&&p.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=y&&!!(p.getTimezoneOffset||p.timezone)}makeTime(p,y,O,L,u,l){let m,o,e;return this.useUTC?(m=this.Date.UTC.apply(0,arguments),o=this.getTimezoneOffset(m),m+=o,o!==(e=this.getTimezoneOffset(m))?m+=e-o:o-36e5!==this.getTimezoneOffset(m-36e5)||k||(m-=36e5)):m=new this.Date(p,y,j(O,1),j(L,0),j(u,0),j(l,0)).getTime(),m}timezoneOffsetFunction(){let p=this,y=this.options,O=y.getTimezoneOffset;return this.useUTC?y.timezone?L=>{try{let u=`shortOffset,${y.timezone||""}`,[l,m,o,e,t=0]=(A.formatCache[u]=A.formatCache[u]||Intl.DateTimeFormat("en",{timeZone:y.timezone,timeZoneName:"shortOffset"})).format(L).split(/(GMT|:)/).map(Number),s=-(36e5*(o+t/60));if(Q(s))return s}catch{it(34)}return 0}:this.useUTC&&O?L=>6e4*O(L.valueOf()):()=>6e4*(p.timezoneOffset||0):L=>6e4*new Date(L.toString()).getTimezoneOffset()}dateFormat(p,y,O){if(!nt(y)||isNaN(y))return V.defaultOptions.lang&&V.defaultOptions.lang.invalidDate||"";p=j(p,"%Y-%m-%d %H:%M:%S");let L=this,u=new this.Date(y),l=this.get("Hours",u),m=this.get("Day",u),o=this.get("Date",u),e=this.get("Month",u),t=this.get("FullYear",u),s=V.defaultOptions.lang,n=s&&s.weekdays,i=s&&s.shortWeekdays;return $(tt({a:i?i[m]:n[m].substr(0,3),A:n[m],d:C(o),e:C(o,2," "),w:m,b:s.shortMonths[e],B:s.months[e],m:C(e+1),o:e+1,y:t.toString().substr(2,2),Y:t,H:C(l),k:l,I:C(l%12||12),l:l%12||12,M:C(this.get("Minutes",u)),p:l<12?"AM":"PM",P:l<12?"am":"pm",S:C(this.get("Seconds",u)),L:C(Math.floor(y%1e3),3)},V.dateFormats),function(a,r){for(;p.indexOf("%"+r)!==-1;)p=p.replace("%"+r,typeof a=="function"?a.call(L,y):a)}),O?p.substr(0,1).toUpperCase()+p.substr(1):p}resolveDTLFormat(p){return X(p,!0)?p:{main:(p=B(p))[0],from:p[1],to:p[2]}}getTimeTicks(p,y,O,L){let u,l,m,o,e=this,t=e.Date,s=[],n={},i=new t(y),a=p.unitRange,r=p.count||1;if(L=j(L,1),nt(y)){e.set("Milliseconds",i,a>=R.second?0:r*Math.floor(e.get("Milliseconds",i)/r)),a>=R.second&&e.set("Seconds",i,a>=R.minute?0:r*Math.floor(e.get("Seconds",i)/r)),a>=R.minute&&e.set("Minutes",i,a>=R.hour?0:r*Math.floor(e.get("Minutes",i)/r)),a>=R.hour&&e.set("Hours",i,a>=R.day?0:r*Math.floor(e.get("Hours",i)/r)),a>=R.day&&e.set("Date",i,a>=R.month?1:Math.max(1,r*Math.floor(e.get("Date",i)/r))),a>=R.month&&(e.set("Month",i,a>=R.year?0:r*Math.floor(e.get("Month",i)/r)),l=e.get("FullYear",i)),a>=R.year&&(l-=l%r,e.set("FullYear",i,l)),a===R.week&&(o=e.get("Day",i),e.set("Date",i,e.get("Date",i)-o+L+(o<L?-7:0))),l=e.get("FullYear",i);let f=e.get("Month",i),P=e.get("Date",i),d=e.get("Hours",i);y=i.getTime(),(e.variableTimezone||!e.useUTC)&&nt(O)&&(m=O-y>4*R.month||e.getTimezoneOffset(y)!==e.getTimezoneOffset(O));let w=i.getTime();for(u=1;w<O;)s.push(w),a===R.year?w=e.makeTime(l+u*r,0):a===R.month?w=e.makeTime(l,f+u*r):m&&(a===R.day||a===R.week)?w=e.makeTime(l,f,P+u*r*(a===R.day?1:7)):m&&a===R.hour&&r>1?w=e.makeTime(l,f,P,d+u*r):w+=a*r,u++;s.push(w),a<=R.hour&&s.length<1e4&&s.forEach(function(T){T%18e5==0&&e.dateFormat("%H%M%S%L",T)==="000000000"&&(n[T]="day")})}return s.info=tt(p,{higherRanks:n,totalRange:a*r}),s}getDateFormat(p,y,O,L){let u=this.dateFormat("%m-%d %H:%M:%S.%L",y),l="01-01 00:00:00.000",m={millisecond:15,second:12,minute:9,hour:6,day:3},o="millisecond",e=o;for(o in R){if(p===R.week&&+this.dateFormat("%w",y)===O&&u.substr(6)===l.substr(6)){o="week";break}if(R[o]>p){o=e;break}if(m[o]&&u.substr(m[o])!==l.substr(m[o]))break;o!=="week"&&(e=o)}return this.resolveDTLFormat(L[o]).main}}return A.formatCache={},A}),gt(z,"Core/Defaults.js",[z["Core/Chart/ChartDefaults.js"],z["Core/Globals.js"],z["Core/Color/Palettes.js"],z["Core/Time.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it){let{isTouchDevice:tt}=J,{fireEvent:Q,merge:X}=it,F={colors:st.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:V,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:C=>Math.sqrt(1-Math.pow(C-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:tt?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"}};F.chart.styledMode=!1;let $=new nt(F.time);return{defaultOptions:F,defaultTime:$,getOptions:function(){return F},setOptions:function(C){return Q(J,"setOptions",{options:C}),X(!0,F,C),(C.time||C.global)&&(J.time?J.time.update(X(F.global,F.time,C.global,C.time)):J.time=$),F}}}),gt(z,"Core/Color/Color.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J){let{isNumber:st,merge:nt,pInt:it}=J;class tt{static parse(X){return X?new tt(X):tt.None}constructor(X){let F,$,C,j;this.rgba=[NaN,NaN,NaN,NaN],this.input=X;let B=V.Color;if(B&&B!==tt)return new B(X);if(typeof X=="object"&&X.stops!==void 0)this.stops=X.stops.map(R=>new tt(R[1]));else if(typeof X=="string"){if(this.input=X=tt.names[X.toLowerCase()]||X,X.charAt(0)==="#"){let R=X.length,g=parseInt(X.substr(1),16);R===7?$=[(16711680&g)>>16,(65280&g)>>8,255&g,1]:R===4&&($=[(3840&g)>>4|(3840&g)>>8,(240&g)>>4|240&g,(15&g)<<4|15&g,1])}if(!$)for(C=tt.parsers.length;C--&&!$;)(F=(j=tt.parsers[C]).regex.exec(X))&&($=j.parse(F))}$&&(this.rgba=$)}get(X){let F=this.input,$=this.rgba;if(typeof F=="object"&&this.stops!==void 0){let C=nt(F);return C.stops=[].slice.call(C.stops),this.stops.forEach((j,B)=>{C.stops[B]=[C.stops[B][0],j.get(X)]}),C}return $&&st($[0])?X!=="rgb"&&(X||$[3]!==1)?X==="a"?`${$[3]}`:"rgba("+$.join(",")+")":"rgb("+$[0]+","+$[1]+","+$[2]+")":F}brighten(X){let F=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(X)});else if(st(X)&&X!==0)for(let $=0;$<3;$++)F[$]+=it(255*X),F[$]<0&&(F[$]=0),F[$]>255&&(F[$]=255);return this}setOpacity(X){return this.rgba[3]=X,this}tweenTo(X,F){let $=this.rgba,C=X.rgba;if(!st($[0])||!st(C[0]))return X.input||"none";let j=C[3]!==1||$[3]!==1;return(j?"rgba(":"rgb(")+Math.round(C[0]+($[0]-C[0])*(1-F))+","+Math.round(C[1]+($[1]-C[1])*(1-F))+","+Math.round(C[2]+($[2]-C[2])*(1-F))+(j?","+(C[3]+($[3]-C[3])*(1-F)):"")+")"}}return tt.names={white:"#ffffff",black:"#000000"},tt.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(Q){return[it(Q[1]),it(Q[2]),it(Q[3]),parseFloat(Q[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(Q){return[it(Q[1]),it(Q[2]),it(Q[3]),1]}}],tt.None=new tt(""),tt}),gt(z,"Core/Animation/Fx.js",[z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J,st){let{parse:nt}=V,{win:it}=J,{isNumber:tt,objectEach:Q}=st;class X{constructor($,C,j){this.pos=NaN,this.options=C,this.elem=$,this.prop=j}dSetter(){let $=this.paths,C=$&&$[0],j=$&&$[1],B=this.now||0,R=[];if(B!==1&&C&&j)if(C.length===j.length&&B<1)for(let g=0;g<j.length;g++){let k=C[g],A=j[g],v=[];for(let p=0;p<A.length;p++){let y=k[p],O=A[p];tt(y)&&tt(O)&&!(A[0]==="A"&&(p===4||p===5))?v[p]=y+B*(O-y):v[p]=O}R.push(v)}else R=j;else R=this.toD||[];this.elem.attr("d",R,void 0,!0)}update(){let $=this.elem,C=this.prop,j=this.now,B=this.options.step;this[C+"Setter"]?this[C+"Setter"]():$.attr?$.element&&$.attr(C,j,null,!0):$.style[C]=j+this.unit,B&&B.call($,j,this)}run($,C,j){let B=this,R=B.options,g=function(v){return!g.stopped&&B.step(v)},k=it.requestAnimationFrame||function(v){setTimeout(v,13)},A=function(){for(let v=0;v<X.timers.length;v++)X.timers[v]()||X.timers.splice(v--,1);X.timers.length&&k(A)};$!==C||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=$,this.end=C,this.unit=j,this.now=this.start,this.pos=0,g.elem=this.elem,g.prop=this.prop,g()&&X.timers.push(g)===1&&k(A)):(delete R.curAnim[this.prop],R.complete&&Object.keys(R.curAnim).length===0&&R.complete.call(this.elem))}step($){let C,j,B=+new Date,R=this.options,g=this.elem,k=R.complete,A=R.duration,v=R.curAnim;return g.attr&&!g.element?C=!1:$||B>=A+this.startTime?(this.now=this.end,this.pos=1,this.update(),v[this.prop]=!0,j=!0,Q(v,function(p){p!==!0&&(j=!1)}),j&&k&&k.call(g),C=!1):(this.pos=R.easing((B-this.startTime)/A),this.now=this.start+(this.end-this.start)*this.pos,this.update(),C=!0),C}initPath($,C,j){let B=$.startX,R=$.endX,g=j.slice(),k=$.isArea,A=k?2:1,v=C&&j.length>C.length&&j.hasStackedCliffs,p,y,O,L,u=C&&C.slice();if(!u||v)return[g,g];function l(o,e){for(;o.length<y;){let t=o[0],s=e[y-o.length];if(s&&t[0]==="M"&&(s[0]==="C"?o[0]=["C",t[1],t[2],t[1],t[2],t[1],t[2]]:o[0]=["L",t[1],t[2]]),o.unshift(t),k){let n=o.pop();o.push(o[o.length-1],n)}}}function m(o){for(;o.length<y;){let e=o[Math.floor(o.length/A)-1].slice();if(e[0]==="C"&&(e[1]=e[5],e[2]=e[6]),k){let t=o[Math.floor(o.length/A)].slice();o.splice(o.length/2,0,e,t)}else o.push(e)}}if(B&&R&&R.length){for(O=0;O<B.length;O++){if(B[O]===R[0]){p=O;break}if(B[0]===R[R.length-B.length+O]){p=O,L=!0;break}if(B[B.length-1]===R[R.length-B.length+O]){p=B.length-O;break}}p===void 0&&(u=[])}return u.length&&tt(p)&&(y=g.length+p*A,L?(l(u,g),m(g)):(l(g,u),m(u))),[u,g]}fillSetter(){X.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,nt(this.start).tweenTo(nt(this.end),this.pos),void 0,!0)}}return X.timers=[],X}),gt(z,"Core/Animation/AnimationUtilities.js",[z["Core/Animation/Fx.js"],z["Core/Utilities.js"]],function(V,J){let{defined:st,getStyle:nt,isArray:it,isNumber:tt,isObject:Q,merge:X,objectEach:F,pick:$}=J;function C(B){return Q(B)?X({duration:500,defer:0},B):{duration:B?500:0,defer:0}}function j(B,R){let g=V.timers.length;for(;g--;)V.timers[g].elem!==B||R&&R!==V.timers[g].prop||(V.timers[g].stopped=!0)}return{animate:function(B,R,g){let k,A="",v,p,y;Q(g)||(y=arguments,g={duration:y[2],easing:y[3],complete:y[4]}),tt(g.duration)||(g.duration=400),g.easing=typeof g.easing=="function"?g.easing:Math[g.easing]||Math.easeInOutSine,g.curAnim=X(R),F(R,function(O,L){j(B,L),p=new V(B,g,L),v=void 0,L==="d"&&it(R.d)?(p.paths=p.initPath(B,B.pathArray,R.d),p.toD=R.d,k=0,v=1):B.attr?k=B.attr(L):(k=parseFloat(nt(B,L))||0,L!=="opacity"&&(A="px")),v||(v=O),typeof v=="string"&&v.match("px")&&(v=v.replace(/px/g,"")),p.run(k,v,A)})},animObject:C,getDeferredAnimation:function(B,R,g){let k=C(R),A=g?[g]:B.series,v=0,p=0;return A.forEach(y=>{let O=C(y.options.animation);v=Q(R)&&st(R.defer)?k.defer:Math.max(v,O.duration+O.defer),p=Math.min(k.duration,O.duration)}),B.renderer.forExport&&(v=0),{defer:Math.max(0,v-p),duration:Math.min(v,p)}},setAnimation:function(B,R){R.renderer.globalAnimation=$(B,R.options.chart.animation,!0)},stop:j}}),gt(z,"Core/Renderer/HTML/AST.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J){let{SVG_NS:st,win:nt}=V,{attr:it,createElement:tt,css:Q,error:X,isFunction:F,isString:$,objectEach:C,splat:j}=J,{trustedTypes:B}=nt,R=B&&F(B.createPolicy)&&B.createPolicy("highcharts",{createHTML:v=>v}),g=R?R.createHTML(""):"",k=function(){try{return!!new DOMParser().parseFromString(g,"text/html")}catch{return!1}}();class A{static filterUserAttributes(p){return C(p,(y,O)=>{let L=!0;A.allowedAttributes.indexOf(O)===-1&&(L=!1),["background","dynsrc","href","lowsrc","src"].indexOf(O)!==-1&&(L=$(y)&&A.allowedReferences.some(u=>y.indexOf(u)===0)),L||(X(33,!1,void 0,{"Invalid attribute in config":`${O}`}),delete p[O]),$(y)&&p[O]&&(p[O]=y.replace(/</g,"<"))}),p}static parseStyle(p){return p.split(";").reduce((y,O)=>{let L=O.split(":").map(l=>l.trim()),u=L.shift();return u&&L.length&&(y[u.replace(/-([a-z])/g,l=>l[1].toUpperCase())]=L.join(":")),y},{})}static setElementHTML(p,y){p.innerHTML=A.emptyHTML,y&&new A(y).addToDOM(p)}constructor(p){this.nodes=typeof p=="string"?this.parseMarkup(p):p}addToDOM(p){return function y(O,L){let u;return j(O).forEach(function(l){let m,o=l.tagName,e=l.textContent?V.doc.createTextNode(l.textContent):void 0,t=A.bypassHTMLFiltering;if(o)if(o==="#text")m=e;else if(A.allowedTags.indexOf(o)!==-1||t){let s=o==="svg"?st:L.namespaceURI||st,n=V.doc.createElementNS(s,o),i=l.attributes||{};C(l,function(a,r){r!=="tagName"&&r!=="attributes"&&r!=="children"&&r!=="style"&&r!=="textContent"&&(i[r]=a)}),it(n,t?i:A.filterUserAttributes(i)),l.style&&Q(n,l.style),e&&n.appendChild(e),y(l.children||[],n),m=n}else X(33,!1,void 0,{"Invalid tagName in config":o});m&&L.appendChild(m),u=m}),u}(this.nodes,p)}parseMarkup(p){let y,O=[];if(p=p.trim().replace(/ style=(["'])/g," data-style=$1"),k)y=new DOMParser().parseFromString(R?R.createHTML(p):p,"text/html");else{let u=tt("div");u.innerHTML=p,y={body:u}}let L=(u,l)=>{let m=u.nodeName.toLowerCase(),o={tagName:m};m==="#text"&&(o.textContent=u.textContent||"");let e=u.attributes;if(e){let t={};[].forEach.call(e,s=>{s.name==="data-style"?o.style=A.parseStyle(s.value):t[s.name]=s.value}),o.attributes=t}if(u.childNodes.length){let t=[];[].forEach.call(u.childNodes,s=>{L(s,t)}),t.length&&(o.children=t)}l.push(o)};return[].forEach.call(y.body.childNodes,u=>L(u,O)),O}}return A.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"],A.allowedReferences=["https://","http://","mailto:","/","../","./","#"],A.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"],A.emptyHTML=g,A.bypassHTMLFiltering=!1,A}),gt(z,"Core/Templating.js",[z["Core/Defaults.js"],z["Core/Utilities.js"]],function(V,J){let{defaultOptions:st,defaultTime:nt}=V,{extend:it,getNestedProperty:tt,isArray:Q,isNumber:X,isObject:F,pick:$,pInt:C}=J,j={add:(g,k)=>g+k,divide:(g,k)=>k!==0?g/k:"",eq:(g,k)=>g==k,each:function(g){let k=arguments[arguments.length-1];return!!Q(g)&&g.map((A,v)=>B(k.body,it(F(A)?A:{"@this":A},{"@index":v,"@first":v===0,"@last":v===g.length-1}))).join("")},ge:(g,k)=>g>=k,gt:(g,k)=>g>k,if:g=>!!g,le:(g,k)=>g<=k,lt:(g,k)=>g<k,multiply:(g,k)=>g*k,ne:(g,k)=>g!=k,subtract:(g,k)=>g-k,unless:g=>!g};function B(g="",k,A){let v=/\{([\w\:\.\,;\-\/<>%@"'’= #\(\)]+)\}/g,p=/\(([\w\:\.\,;\-\/<>%@"'= ]+)\)/g,y=[],O=/f$/,L=/\.(\d)/,u=st.lang,l=A&&A.time||nt,m=A&&A.numberFormatter||R,o=(i="")=>{let a;return i==="true"||i!=="false"&&((a=Number(i)).toString()===i?a:tt(i,k))},e,t,s=0,n;for(;(e=v.exec(g))!==null;){let i=p.exec(e[1]);i&&(e=i,n=!0),t&&t.isBlock||(t={ctx:k,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 a=e[1].split(" ")[0].replace("#","");j[a]&&(t.isBlock&&a===t.fn&&s++,t.fn||(t.fn=a));let r=e[1]==="else";if(t.isBlock&&t.fn&&(e[1]===`/${t.fn}`||r))if(s)!r&&s--;else{let f=t.startInner,P=g.substr(f,e.index-f);t.body===void 0?(t.body=P,t.startInner=e.index+e[0].length):t.elseBody=P,t.find+=P+e[0],r||(y.push(t),t=void 0)}else t.isBlock||y.push(t);if(i&&!(t!=null&&t.isBlock))break}return y.forEach(i=>{let a,r,{body:f,elseBody:P,expression:d,fn:w}=i;if(w){let T=[i],D=d.split(" ");for(r=j[w].length;r--;)T.unshift(o(D[r+1]));a=j[w].apply(k,T),i.isBlock&&typeof a=="boolean"&&(a=B(a?f:P,k,A))}else{let T=d.split(":");if(a=o(T.shift()||""),T.length&&typeof a=="number"){let D=T.join(":");if(O.test(D)){let H=parseInt((D.match(L)||["","-1"])[1],10);a!==null&&(a=m(a,H,u.decimalPoint,D.indexOf(",")>-1?u.thousandsSep:""))}else a=l.dateFormat(D,a)}}g=g.replace(i.find,$(a,""))}),n?B(g,k,A):g}function R(g,k,A,v){let p,y;g=+g||0,k=+k;let O=st.lang,L=(g.toString().split(".")[1]||"").split("e")[0].length,u=g.toString().split("e"),l=k;k===-1?k=Math.min(L,20):X(k)?k&&u[1]&&u[1]<0&&((y=k+ +u[1])>=0?(u[0]=(+u[0]).toExponential(y).split("e")[0],k=y):(u[0]=u[0].split(".")[0]||0,g=k<20?(u[0]*Math.pow(10,u[1])).toFixed(k):0,u[1]=0)):k=2;let m=(Math.abs(u[1]?u[0]:g)+Math.pow(10,-Math.max(k,L)-1)).toFixed(k),o=String(C(m)),e=o.length>3?o.length%3:0;return A=$(A,O.decimalPoint),v=$(v,O.thousandsSep),p=(g<0?"-":"")+(e?o.substr(0,e)+v:""),0>+u[1]&&!l?p="0":p+=o.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+v),k?p+=A+m.slice(-k):+p==0&&(p="0"),u[1]&&+p!=0&&(p+="e"+u[1]),p}return{dateFormat:function(g,k,A){return nt.dateFormat(g,k,A)},format:B,helpers:j,numberFormat:R}}),gt(z,"Core/Renderer/RendererRegistry.js",[z["Core/Globals.js"]],function(V){var J,st;let nt;return(st=J||(J={})).rendererTypes={},st.getRendererType=function(it=nt){return st.rendererTypes[it]||st.rendererTypes[nt]},st.registerRendererType=function(it,tt,Q){st.rendererTypes[it]=tt,(!nt||Q)&&(nt=it,V.Renderer=tt)},J}),gt(z,"Core/Renderer/RendererUtilities.js",[z["Core/Utilities.js"]],function(V){var J;let{clamp:st,pick:nt,pushUnique:it,stableSort:tt}=V;return(J||(J={})).distribute=function Q(X,F,$){let C=X,j=C.reducedLen||F,B=(o,e)=>o.target-e.target,R=[],g=X.length,k=[],A=R.push,v,p,y,O=!0,L,u,l=0,m;for(v=g;v--;)l+=X[v].size;if(l>j){for(tt(X,(o,e)=>(e.rank||0)-(o.rank||0)),y=(m=X[0].rank===X[X.length-1].rank)?g/2:-1,p=m?y:g-1;y&&l>j;)L=X[v=Math.floor(p)],it(k,v)&&(l-=L.size),p+=y,m&&p>=X.length&&(y/=2,p=y);k.sort((o,e)=>e-o).forEach(o=>A.apply(R,X.splice(o,1)))}for(tt(X,B),X=X.map(o=>({size:o.size,targets:[o.target],align:nt(o.align,.5)}));O;){for(v=X.length;v--;)L=X[v],u=(Math.min.apply(0,L.targets)+Math.max.apply(0,L.targets))/2,L.pos=st(u-L.size*L.align,0,F-L.size);for(v=X.length,O=!1;v--;)v>0&&X[v-1].pos+X[v-1].size>X[v].pos&&(X[v-1].size+=X[v].size,X[v-1].targets=X[v-1].targets.concat(X[v].targets),X[v-1].align=.5,X[v-1].pos+X[v-1].size>F&&(X[v-1].pos=F-X[v-1].size),X.splice(v,1),O=!0)}return A.apply(C,R),v=0,X.some(o=>{let e=0;return(o.targets||[]).some(()=>(C[v].pos=o.pos+e,$!==void 0&&Math.abs(C[v].pos-C[v].target)>$?(C.slice(0,v+1).forEach(t=>delete t.pos),C.reducedLen=(C.reducedLen||F)-.1*F,C.reducedLen>.1*F&&Q(C,F,$),!0):(e+=C[v].size,v++,!1)))}),tt(C,B),C},J}),gt(z,"Core/Renderer/SVG/SVGElement.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J,st,nt){let{animate:it,animObject:tt,stop:Q}=V,{deg2rad:X,doc:F,svg:$,SVG_NS:C,win:j}=st,{addEvent:B,attr:R,createElement:g,crisp:k,css:A,defined:v,erase:p,extend:y,fireEvent:O,isArray:L,isFunction:u,isObject:l,isString:m,merge:o,objectEach:e,pick:t,pInt:s,pushUnique:n,replaceNested:i,syncTimeout:a,uniqueKey:r}=nt;class f{_defaultGetter(d){let w=t(this[d+"Value"],this[d],this.element?this.element.getAttribute(d):null,0);return/^-?[\d\.]+$/.test(w)&&(w=parseFloat(w)),w}_defaultSetter(d,w,T){T.setAttribute(w,d)}add(d){let w,T=this.renderer,D=this.element;return d&&(this.parentGroup=d),this.textStr!==void 0&&this.element.nodeName==="text"&&T.buildText(this),this.added=!0,(!d||d.handleZ||this.zIndex)&&(w=this.zIndexSetter()),w||(d?d.element:T.box).appendChild(D),this.onAdd&&this.onAdd(),this}addClass(d,w){let T=w?"":this.attr("class")||"";return(d=(d||"").split(/ /g).reduce(function(D,H){return T.indexOf(H)===-1&&D.push(H),D},T?[T]:[]).join(" "))!==T&&this.attr("class",d),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(d,w,T,D=!0){let H,x,c,M,G={},h=this.renderer,S=h.alignedObjects,b=!!d;d?(this.alignOptions=d,this.alignByTranslate=w,this.alignTo=T):(d=this.alignOptions||{},w=this.alignByTranslate,T=this.alignTo);let E=!T||m(T)?T||"renderer":void 0;E&&(b&&n(S,this),T=void 0);let I=t(T,h[E],h),N=d.align,U=d.verticalAlign;return H=(I.x||0)+(d.x||0),x=(I.y||0)+(d.y||0),N==="right"?c=1:N==="center"&&(c=2),c&&(H+=((I.width||0)-(d.width||0))/c),G[w?"translateX":"x"]=Math.round(H),U==="bottom"?M=1:U==="middle"&&(M=2),M&&(x+=((I.height||0)-(d.height||0))/M),G[w?"translateY":"y"]=Math.round(x),D&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(d){let w={left:"start",center:"middle",right:"end"};w[d]&&(this.alignValue=d,this.element.setAttribute("text-anchor",w[d]))}animate(d,w,T){let D=tt(t(w,this.renderer.globalAnimation,!0)),H=D.defer;return F.hidden&&(D.duration=0),D.duration!==0?(T&&(D.complete=T),a(()=>{this.element&&it(this,d,D)},H)):(this.attr(d,void 0,T||D.complete),e(d,function(x,c){D.step&&D.step.call(this,x,{prop:c,pos:1,elem:this})},this)),this}applyTextOutline(d){let w=this.element;d.indexOf("contrast")!==-1&&(d=d.replace(/contrast/g,this.renderer.getContrast(w.style.fill)));let T=d.split(" "),D=T[T.length-1],H=T[0];if(H&&H!=="none"&&st.svg){this.fakeTS=!0,H=H.replace(/(^[\d\.]+)(.*?)$/g,function(h,S,b){return 2*Number(S)+b}),this.removeTextOutline();let x=F.createElementNS(C,"tspan");R(x,{class:"highcharts-text-outline",fill:D,stroke:D,"stroke-width":H,"stroke-linejoin":"round"});let c=w.querySelector("textPath")||w;[].forEach.call(c.childNodes,h=>{let S=h.cloneNode(!0);S.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(b=>S.removeAttribute(b)),x.appendChild(S)});let M=0;[].forEach.call(c.querySelectorAll("text tspan"),h=>{M+=Number(h.getAttribute("dy"))});let G=F.createElementNS(C,"tspan");G.textContent="",R(G,{x:Number(w.getAttribute("x")),dy:-M}),x.appendChild(G),c.insertBefore(x,c.firstChild)}}attr(d,w,T,D){let{element:H}=this,x=f.symbolCustomAttribs,c,M,G=this,h;return typeof d=="string"&&w!==void 0&&(c=d,(d={})[c]=w),typeof d=="string"?G=(this[d+"Getter"]||this._defaultGetter).call(this,d,H):(e(d,function(S,b){h=!1,D||Q(this,b),this.symbolName&&x.indexOf(b)!==-1&&(M||(this.symbolAttr(d),M=!0),h=!0),this.rotation&&(b==="x"||b==="y")&&(this.doTransform=!0),h||(this[b+"Setter"]||this._defaultSetter).call(this,S,b,H)},this),this.afterSetters()),T&&T.call(this),G}clip(d){if(d&&!d.clipPath){let w=r()+"-",T=this.renderer.createElement("clipPath").attr({id:w}).add(this.renderer.defs);y(d,{clipPath:T,id:w,count:0}),d.add(T)}return this.attr("clip-path",d?`url(${this.renderer.url}#${d.id})`:"none")}crisp(d,w){w=Math.round(w||d.strokeWidth||0);let T=d.x||this.x||0,D=d.y||this.y||0,H=(d.width||this.width||0)+T,x=(d.height||this.height||0)+D,c=k(T,w),M=k(D,w);return y(d,{x:c,y:M,width:k(H,w)-c,height:k(x,w)-M}),v(d.strokeWidth)&&(d.strokeWidth=w),d}complexColor(d,w,T){let D=this.renderer,H,x,c,M,G,h,S,b,E,I,N=[],U;O(this.renderer,"complexColor",{args:arguments},function(){if(d.radialGradient?x="radialGradient":d.linearGradient&&(x="linearGradient"),x){if(c=d[x],G=D.gradients,h=d.stops,E=T.radialReference,L(c)&&(d[x]=c={x1:c[0],y1:c[1],x2:c[2],y2:c[3],gradientUnits:"userSpaceOnUse"}),x==="radialGradient"&&E&&!v(c.gradientUnits)&&(M=c,c=o(c,D.getRadialAttr(E,M),{gradientUnits:"userSpaceOnUse"})),e(c,function(Z,_){_!=="id"&&N.push(_,Z)}),e(h,function(Z){N.push(Z)}),G[N=N.join(",")])I=G[N].attr("id");else{c.id=I=r();let Z=G[N]=D.createElement(x).attr(c).add(D.defs);Z.radAttr=M,Z.stops=[],h.forEach(function(_){_[1].indexOf("rgba")===0?(S=(H=J.parse(_[1])).get("rgb"),b=H.get("a")):(S=_[1],b=1);let at=D.createElement("stop").attr({offset:_[0],"stop-color":S,"stop-opacity":b}).add(Z);Z.stops.push(at)})}U="url("+D.url+"#"+I+")",T.setAttribute(w,U),T.gradient=N,d.toString=function(){return U}}})}css(d){let w=this.styles,T={},D=this.element,H,x=!w;if(w&&e(d,function(c,M){w&&w[M]!==c&&(T[M]=c,x=!0)}),x){w&&(d=y(w,T)),d.width===null||d.width==="auto"?delete this.textWidth:D.nodeName.toLowerCase()==="text"&&d.width&&(H=this.textWidth=s(d.width)),y(this.styles,d),H&&!$&&this.renderer.forExport&&delete d.width;let c=o(d);D.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(M=>c&&delete c[M]),c.color&&(c.fill=c.color)),A(D,c)}return this.added&&(this.element.nodeName==="text"&&this.renderer.buildText(this),d.textOutline&&this.applyTextOutline(d.textOutline)),this}dashstyleSetter(d){let w,T=this["stroke-width"];if(T==="inherit"&&(T=1),d=d&&d.toLowerCase()){let D=d.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(w=D.length;w--;)D[w]=""+s(D[w])*t(T,NaN);d=D.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",d)}}destroy(){var M;let d=this,w=d.element||{},T=d.renderer,D=w.ownerSVGElement,H=w.nodeName==="SPAN"&&d.parentGroup||void 0,x,c;if(w.onclick=w.onmouseout=w.onmouseover=w.onmousemove=w.point=null,Q(d),d.clipPath&&D){let G=d.clipPath;[].forEach.call(D.querySelectorAll("[clip-path],[CLIP-PATH]"),function(h){h.getAttribute("clip-path").indexOf(G.element.id)>-1&&h.removeAttribute("clip-path")}),d.clipPath=G.destroy()}if(d.connector=(M=d.connector)==null?void 0:M.destroy(),d.stops){for(c=0;c<d.stops.length;c++)d.stops[c].destroy();d.stops.length=0,d.stops=void 0}for(d.safeRemoveChild(w);H&&H.div&&H.div.childNodes.length===0;)x=H.parentGroup,d.safeRemoveChild(H.div),delete H.div,H=x;d.alignOptions&&p(T.alignedObjects,d),e(d,function(G,h){d[h]&&d[h].parentGroup===d&&d[h].destroy&&d[h].destroy(),delete d[h]})}dSetter(d,w,T){L(d)&&(typeof d[0]=="string"&&(d=this.renderer.pathToSegments(d)),this.pathArray=d,d=d.reduce((D,H,x)=>H&&H.join?(x?D+" ":"")+H.join(" "):(H||"").toString(),"")),/(NaN| {2}|^$)/.test(d)&&(d="M 0 0"),this[w]!==d&&(T.setAttribute(w,d),this[w]=d)}fillSetter(d,w,T){typeof d=="string"?T.setAttribute(w,d):d&&this.complexColor(d,w,T)}hrefSetter(d,w,T){T.setAttributeNS("http://www.w3.org/1999/xlink",w,d)}getBBox(d,w){let T,D,H,x,{alignValue:c,element:M,renderer:G,styles:h,textStr:S}=this,{cache:b,cacheKeys:E}=G,I=M.namespaceURI===this.SVG_NS,N=t(w,this.rotation,0),U=G.styledMode?M&&f.prototype.getStyle.call(M,"font-size"):h.fontSize;if(v(S)&&((x=S.toString()).indexOf("<")===-1&&(x=x.replace(/\d/g,"0")),x+=["",G.rootFontSize,U,N,this.textWidth,c,h.textOverflow,h.fontWeight].join(",")),x&&!d&&(T=b[x]),!T||T.polygon){if(I||G.forExport){try{H=this.fakeTS&&function(_){let at=M.querySelector(".highcharts-text-outline");at&&A(at,{display:_})},u(H)&&H("none"),T=M.getBBox?y({},M.getBBox()):{width:M.offsetWidth,height:M.offsetHeight,x:0,y:0},u(H)&&H("")}catch{}(!T||T.width<0)&&(T={x:0,y:0,width:0,height:0})}else T=this.htmlGetBBox();D=T.height,I&&(T.height=D={"11px,17":14,"13px,20":16}[`${U||""},${Math.round(D)}`]||D),N&&(T=this.getRotatedBox(T,N));let Z={bBox:T};O(this,"afterGetBBox",Z),T=Z.bBox}if(x&&(S===""||T.height>0)){for(;E.length>250;)delete b[E.shift()];b[x]||E.push(x),b[x]=T}return T}getRotatedBox(d,w){let{x:T,y:D,width:H,height:x}=d,{alignValue:c,translateY:M,rotationOriginX:G=0,rotationOriginY:h=0}=this,S={right:1,center:.5}[c||0]||0,b=Number(this.element.getAttribute("y")||0)-(M?0:D),E=w*X,I=(w-90)*X,N=Math.cos(E),U=Math.sin(E),Z=H*N,_=H*U,at=Math.cos(I),lt=Math.sin(I),[[Y,W],[q,K]]=[G,h].map(vt=>[vt-vt*N,vt*U]),et=T+S*(H-Z)+Y+K+b*at,rt=et+Z,ot=rt-x*at,ht=ot-Z,dt=D+b-S*_-W+q+b*lt,ct=dt+_,pt=ct-x*lt,ut=pt-_,xt=Math.min(et,rt,ot,ht),yt=Math.min(dt,ct,pt,ut),mt=Math.max(et,rt,ot,ht)-xt,ft=Math.max(dt,ct,pt,ut)-yt;return{x:xt,y:yt,width:mt,height:ft,polygon:[[et,dt],[rt,ct],[ot,pt],[ht,ut]]}}getStyle(d){return j.getComputedStyle(this.element||this,"").getPropertyValue(d)}hasClass(d){return(""+this.attr("class")).split(" ").indexOf(d)!==-1}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(d,w){this.onEvents={},this.opacity=1,this.SVG_NS=C,this.element=w==="span"||w==="body"?g(w):F.createElementNS(this.SVG_NS,w),this.renderer=d,this.styles={},O(this,"afterInit")}on(d,w){let{onEvents:T}=this;return T[d]&&T[d](),T[d]=B(this.element,d,w),this}opacitySetter(d,w,T){let D=Number(Number(d).toFixed(3));this.opacity=D,T.setAttribute(w,D)}reAlign(){var d;(d=this.alignOptions)!=null&&d.width&&this.alignOptions.align!=="left"&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(d){return this.attr("class",(""+this.attr("class")).replace(m(d)?RegExp(`(^| )${d}( |$)`):d," ").replace(/ +/g," ").trim())}removeTextOutline(){let d=this.element.querySelector("tspan.highcharts-text-outline");d&&this.safeRemoveChild(d)}safeRemoveChild(d){let w=d.parentNode;w&&w.removeChild(d)}setRadialReference(d){let w=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=d,w&&w.radAttr&&w.animate(this.renderer.getRadialAttr(d,w.radAttr)),this}shadow(d){var H;let{renderer:w}=this,T=o(((H=this.parentGroup)==null?void 0:H.rotation)===90?{offsetX:-1,offsetY:-1}:{},l(d)?d:{}),D=w.shadowDefinition(T);return this.attr({filter:d?`url(${w.url}#${D})`:"none"})}show(d=!0){return this.attr({visibility:d?"inherit":"visible"})}"stroke-widthSetter"(d,w,T){this[w]=d,T.setAttribute(w,d)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let d=this.getStyle("stroke-width"),w=0,T;return/px$/.test(d)?w=s(d):d!==""&&(R(T=F.createElementNS(C,"rect"),{width:d,"stroke-width":0}),this.element.parentNode.appendChild(T),w=T.getBBox().width,T.parentNode.removeChild(T)),w}symbolAttr(d){let w=this;f.symbolCustomAttribs.forEach(function(T){w[T]=t(d[T],w[T])}),w.attr({d:w.renderer.symbols[w.symbolName](w.x,w.y,w.width,w.height,w)})}textSetter(d){d!==this.textStr&&(delete this.textPxLength,this.textStr=d,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(d){let w=this.element,T=w.getElementsByTagName("title")[0]||F.createElementNS(this.SVG_NS,"title");w.insertBefore?w.insertBefore(T,w.firstChild):w.appendChild(T),T.textContent=i(t(d,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let d=this.element;return d.parentNode.appendChild(d),this}translate(d,w){return this.attr({translateX:d,translateY:w})}updateTransform(d="transform"){var b;let{element:w,matrix:T,rotation:D=0,rotationOriginX:H,rotationOriginY:x,scaleX:c,scaleY:M,translateX:G=0,translateY:h=0}=this,S=["translate("+G+","+h+")"];v(T)&&S.push("matrix("+T.join(",")+")"),D&&(S.push("rotate("+D+" "+t(H,w.getAttribute("x"),0)+" "+t(x,w.getAttribute("y")||0)+")"),((b=this.text)==null?void 0:b.element.tagName)==="SPAN"&&this.text.attr({rotation:D,rotationOriginX:(H||0)-this.padding,rotationOriginY:(x||0)-this.padding})),(v(c)||v(M))&&S.push("scale("+t(c,1)+" "+t(M,1)+")"),S.length&&!(this.text||this).textPath&&w.setAttribute(d,S.join(" "))}visibilitySetter(d,w,T){d==="inherit"?T.removeAttribute(w):this[w]!==d&&T.setAttribute(w,d),this[w]=d}xGetter(d){return this.element.nodeName==="circle"&&(d==="x"?d="cx":d==="y"&&(d="cy")),this._defaultGetter(d)}zIndexSetter(d,w){let T=this.renderer,D=this.parentGroup,H=(D||T).element||T.box,x=this.element,c=H===T.box,M,G,h,S=!1,b,E=this.added,I;if(v(d)?(x.setAttribute("data-z-index",d),d=+d,this[w]===d&&(E=!1)):v(this[w])&&x.removeAttribute("data-z-index"),this[w]=d,E){for((d=this.zIndex)&&D&&(D.handleZ=!0),I=(M=H.childNodes).length-1;I>=0&&!S;I--)b=!v(h=(G=M[I]).getAttribute("data-z-index")),G!==x&&(d<0&&b&&!c&&!I?(H.insertBefore(x,M[I]),S=!0):(s(h)<=d||b&&(!v(d)||d>=0))&&(H.insertBefore(x,M[I+1]),S=!0));S||(H.insertBefore(x,M[c?3:0]),S=!0)}return S}}return f.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],f.prototype.strokeSetter=f.prototype.fillSetter,f.prototype.yGetter=f.prototype.xGetter,f.prototype.matrixSetter=f.prototype.rotationOriginXSetter=f.prototype.rotationOriginYSetter=f.prototype.rotationSetter=f.prototype.scaleXSetter=f.prototype.scaleYSetter=f.prototype.translateXSetter=f.prototype.translateYSetter=f.prototype.verticalAlignSetter=function(P,d){this[d]=P,this.doTransform=!0},f}),gt(z,"Core/Renderer/SVG/SVGLabel.js",[z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"]],function(V,J){let{defined:st,extend:nt,isNumber:it,merge:tt,pick:Q,removeEvent:X}=J;class F extends V{constructor(C,j,B,R,g,k,A,v,p,y){let O;super(C,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=j,this.x=B,this.y=R,this.anchorX=k,this.anchorY=A,this.baseline=p,this.className=y,this.addClass(y==="button"?"highcharts-no-tooltip":"highcharts-label"),y&&this.addClass("highcharts-"+y),this.text=C.text(void 0,0,0,v).attr({zIndex:1}),typeof g=="string"&&((O=/^url\((.*?)\)$/.test(g))||this.renderer.symbols[g])&&(this.symbolKey=g),this.bBox=F.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=C.styledMode||O,this.deferredAttr={},this.alignFactor=0}alignSetter(C){let j={left:0,center:.5,right:1}[C];j!==this.alignFactor&&(this.alignFactor=j,this.bBox&&it(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(C,j){this.anchorX=C,this.boxAttr(j,Math.round(C)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(C,j){this.anchorY=C,this.boxAttr(j,C-this.ySetting)}boxAttr(C,j){this.box?this.box.attr(C,j):this.deferredAttr[C]=j}css(C){if(C){let j={};C=tt(C),F.textProps.forEach(B=>{C[B]!==void 0&&(j[B]=C[B],delete C[B])}),this.text.css(j),"fontSize"in j||"fontWeight"in j?this.updateTextPadding():("width"in j||"textOverflow"in j)&&this.updateBoxSize()}return V.prototype.css.call(this,C)}destroy(){X(this.element,"mouseenter"),X(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),V.prototype.destroy.call(this)}fillSetter(C,j){C&&(this.needsBox=!0),this.fill=C,this.boxAttr(j,C)}getBBox(C,j){this.textStr&&this.bBox.width===0&&this.bBox.height===0&&this.updateBoxSize();let{padding:B,height:R=0,translateX:g=0,translateY:k=0,width:A=0}=this,v=Q(this.paddingLeft,B),p=j??(this.rotation||0),y={width:A,height:R,x:g+this.bBox.x-v,y:k+this.bBox.y-B+this.baselineOffset};return p&&(y=this.getRotatedBox(y,p)),y}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(C){this.heightSetting=C,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:Q(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&st(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(C,j){it(C)?C!==this[j]&&(this[j]=C,this.updateTextPadding()):this[j]=void 0}rSetter(C,j){this.boxAttr(j,C)}strokeSetter(C,j){this.stroke=C,this.boxAttr(j,C)}"stroke-widthSetter"(C,j){C&&(this.needsBox=!0),this["stroke-width"]=C,this.boxAttr(j,C)}"text-alignSetter"(C){this.textAlign=C}textSetter(C){C!==void 0&&this.text.attr({text:C}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let C,j=this.text,B={},R=this.padding,g=this.bBox=(!it(this.widthSetting)||!it(this.heightSetting)||this.textAlign)&&st(j.textStr)?j.getBBox(void 0,0):F.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||g.height||0)+2*R;let k=this.renderer.fontMetrics(j);if(this.baselineOffset=R+Math.min((this.text.firstLineMetrics||k).b,g.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-k.h)/2),this.needsBox&&!j.textPath){if(!this.box){let A=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();A.addClass((this.className==="button"?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),A.add(this)}C=this.getCrispAdjust(),B.x=C,B.y=(this.baseline?-this.baselineOffset:0)+C,B.width=Math.round(this.width),B.height=Math.round(this.height),this.box.attr(nt(B,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let C=this.text;if(!C.textPath){this.updateBoxSize();let j=this.baseline?0:this.baselineOffset,B=Q(this.paddingLeft,this.padding);st(this.widthSetting)&&this.bBox&&(this.textAlign==="center"||this.textAlign==="right")&&(B+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(B!==C.x||j!==C.y)&&(C.attr("x",B),C.hasBoxWidthChanged&&(this.bBox=C.getBBox(!0)),j!==void 0&&C.attr("y",j)),C.x=B,C.y=j}}widthSetter(C){this.widthSetting=it(C)?C:void 0,this.doUpdate=!0}getPaddedWidth(){let C=this.padding,j=Q(this.paddingLeft,C),B=Q(this.paddingRight,C);return(this.widthSetting||this.bBox.width||0)+j+B}xSetter(C){this.x=C,this.alignFactor&&(C-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(C),this.attr("translateX",this.xSetting)}ySetter(C){this.ySetting=this.y=Math.round(C),this.attr("translateY",this.ySetting)}}return F.emptyBBox={width:0,height:0,x:0,y:0},F.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],F}),gt(z,"Core/Renderer/SVG/Symbols.js",[z["Core/Utilities.js"]],function(V){let{defined:J,isNumber:st,pick:nt}=V;function it(X,F,$,C,j){let B=[];if(j){let R=j.start||0,g=nt(j.r,$),k=nt(j.r,C||$),A=2e-4/(j.borderRadius?1:Math.max(g,1)),v=Math.abs((j.end||0)-R-2*Math.PI)<A,p=(j.end||0)-(v?A:0),y=j.innerR,O=nt(j.open,v),L=Math.cos(R),u=Math.sin(R),l=Math.cos(p),m=Math.sin(p),o=nt(j.longArc,p-R-Math.PI<A?0:1),e=["A",g,k,0,o,nt(j.clockwise,1),X+g*l,F+k*m];e.params={start:R,end:p,cx:X,cy:F},B.push(["M",X+g*L,F+k*u],e),J(y)&&((e=["A",y,y,0,o,J(j.clockwise)?1-j.clockwise:0,X+y*L,F+y*u]).params={start:p,end:R,cx:X,cy:F},B.push(O?["M",X+y*l,F+y*m]:["L",X+y*l,F+y*m],e)),O||B.push(["Z"])}return B}function tt(X,F,$,C,j){return j&&j.r?Q(X,F,$,C,j):[["M",X,F],["L",X+$,F],["L",X+$,F+C],["L",X,F+C],["Z"]]}function Q(X,F,$,C,j){let B=(j==null?void 0:j.r)||0;return[["M",X+B,F],["L",X+$-B,F],["A",B,B,0,0,1,X+$,F+B],["L",X+$,F+C-B],["A",B,B,0,0,1,X+$-B,F+C],["L",X+B,F+C],["A",B,B,0,0,1,X,F+C-B],["L",X,F+B],["A",B,B,0,0,1,X+B,F],["Z"]]}return{arc:it,callout:function(X,F,$,C,j){let B=Math.min(j&&j.r||0,$,C),R=B+6,g=j&&j.anchorX,k=j&&j.anchorY||0,A=Q(X,F,$,C,{r:B});if(!st(g)||g<$&&g>0&&k<C&&k>0)return A;if(X+g>$-R)if(k>F+R&&k<F+C-R)A.splice(3,1,["L",X+$,k-6],["L",X+$+6,k],["L",X+$,k+6],["L",X+$,F+C-B]);else if(g<$){let v=k<F+R,p=v?F:F+C;A.splice(v?2:5,0,["L",g,k],["L",X+$-B,p])}else A.splice(3,1,["L",X+$,C/2],["L",g,k],["L",X+$,C/2],["L",X+$,F+C-B]);else if(X+g<R)if(k>F+R&&k<F+C-R)A.splice(7,1,["L",X,k+6],["L",X-6,k],["L",X,k-6],["L",X,F+B]);else if(g>0){let v=k<F+R,p=v?F:F+C;A.splice(v?1:6,0,["L",g,k],["L",X+B,p])}else A.splice(7,1,["L",X,C/2],["L",g,k],["L",X,C/2],["L",X,F+B]);else k>C&&g<$-R?A.splice(5,1,["L",g+6,F+C],["L",g,F+C+6],["L",g-6,F+C],["L",X+B,F+C]):k<0&&g>R&&A.splice(1,1,["L",g-6,F],["L",g,F-6],["L",g+6,F],["L",$-B,F]);return A},circle:function(X,F,$,C){return it(X+$/2,F+C/2,$/2,C/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(X,F,$,C){return[["M",X+$/2,F],["L",X+$,F+C/2],["L",X+$/2,F+C],["L",X,F+C/2],["Z"]]},rect:tt,roundedRect:Q,square:tt,triangle:function(X,F,$,C){return[["M",X+$/2,F],["L",X+$,F+C],["L",X,F+C],["Z"]]},"triangle-down":function(X,F,$,C){return[["M",X,F],["L",X+$,F],["L",X+$/2,F+C],["Z"]]}}}),gt(z,"Core/Renderer/SVG/TextBuilder.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J,st){let{doc:nt,SVG_NS:it,win:tt}=J,{attr:Q,extend:X,fireEvent:F,isString:$,objectEach:C,pick:j}=st;return class{constructor(B){let R=B.styles;this.renderer=B.renderer,this.svgElement=B,this.width=B.textWidth,this.textLineHeight=R&&R.lineHeight,this.textOutline=R&&R.textOutline,this.ellipsis=!!(R&&R.textOverflow==="ellipsis"),this.noWrap=!!(R&&R.whiteSpace==="nowrap")}buildSVG(){let B=this.svgElement,R=B.element,g=B.renderer,k=j(B.textStr,"").toString(),A=k.indexOf("<")!==-1,v=R.childNodes,p=!B.added&&g.box,y=[k,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,B.getStyle("font-size"),this.width].join(",");if(y!==B.textCache){B.textCache=y,delete B.actualWidth;for(let O=v.length;O--;)R.removeChild(v[O]);if(A||this.ellipsis||this.width||B.textPath||k.indexOf(" ")!==-1&&(!this.noWrap||/<br.*?>/g.test(k))){if(k!==""){p&&p.appendChild(R);let O=new V(k);this.modifyTree(O.nodes),O.addToDOM(R),this.modifyDOM(),this.ellipsis&&(R.textContent||"").indexOf("…")!==-1&&B.attr("title",this.unescapeEntities(B.textStr||"",["<",">"])),p&&p.removeChild(R)}}else R.appendChild(nt.createTextNode(this.unescapeEntities(k)));$(this.textOutline)&&B.applyTextOutline&&B.applyTextOutline(this.textOutline)}}modifyDOM(){let B,R=this.svgElement,g=Q(R.element,"x");for(R.firstLineMetrics=void 0;(B=R.element.firstChild)&&/^[\s\u200B]*$/.test(B.textContent||" ");)R.element.removeChild(B);[].forEach.call(R.element.querySelectorAll("tspan.highcharts-br"),(p,y)=>{p.nextSibling&&p.previousSibling&&(y===0&&p.previousSibling.nodeType===1&&(R.firstLineMetrics=R.renderer.fontMetrics(p.previousSibling)),Q(p,{dy:this.getLineHeight(p.nextSibling),x:g}))});let k=this.width||0;if(!k)return;let A=(p,y)=>{let O=p.textContent||"",L=O.replace(/([^\^])-/g,"$1- ").split(" "),u=!this.noWrap&&(L.length>1||R.element.childNodes.length>1),l=this.getLineHeight(y),m=0,o=R.actualWidth;if(this.ellipsis)O&&this.truncate(p,O,void 0,0,Math.max(0,k-.8*l),(e,t)=>e.substring(0,t)+"…");else if(u){let e=[],t=[];for(;y.firstChild&&y.firstChild!==p;)t.push(y.firstChild),y.removeChild(y.firstChild);for(;L.length;)L.length&&!this.noWrap&&m>0&&(e.push(p.textContent||""),p.textContent=L.join(" ").replace(/- /g,"-")),this.truncate(p,void 0,L,m===0&&o||0,k,(s,n)=>L.slice(0,n).join(" ").replace(/- /g,"-")),o=R.actualWidth,m++;t.forEach(s=>{y.insertBefore(s,p)}),e.forEach(s=>{y.insertBefore(nt.createTextNode(s),p);let n=nt.createElementNS(it,"tspan");n.textContent="",Q(n,{dy:l,x:g}),y.insertBefore(n,p)})}},v=p=>{[].slice.call(p.childNodes).forEach(y=>{y.nodeType===tt.Node.TEXT_NODE?A(y,p):(y.className.baseVal.indexOf("highcharts-br")!==-1&&(R.actualWidth=0),v(y))})};v(R.element)}getLineHeight(B){let R=B.nodeType===tt.Node.TEXT_NODE?B.parentElement:B;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(R||this.svgElement.element).h}modifyTree(B){let R=(g,k)=>{let{attributes:A={},children:v,style:p={},tagName:y}=g,O=this.renderer.styledMode;if(y==="b"||y==="strong"?O?A.class="highcharts-strong":p.fontWeight="bold":(y==="i"||y==="em")&&(O?A.class="highcharts-emphasized":p.fontStyle="italic"),p&&p.color&&(p.fill=p.color),y==="br"){A.class="highcharts-br",g.textContent="";let L=B[k+1];L&&L.textContent&&(L.textContent=L.textContent.replace(/^ +/gm,""))}else y==="a"&&v&&v.some(L=>L.tagName==="#text")&&(g.children=[{children:v,tagName:"tspan"}]);y!=="#text"&&y!=="a"&&(g.tagName="tspan"),X(g,{attributes:A,style:p}),v&&v.filter(L=>L.tagName!=="#text").forEach(R)};B.forEach(R),F(this.svgElement,"afterModifyTree",{nodes:B})}truncate(B,R,g,k,A,v){let p,y,O=this.svgElement,{rotation:L}=O,u=[],l=g?1:0,m=(R||g||"").length,o=m,e=function(t,s){let n=s||t,i=B.parentNode;if(i&&u[n]===void 0&&i.getSubStringLength)try{u[n]=k+i.getSubStringLength(0,g?n+1:n)}catch{}return u[n]};if(O.rotation=0,k+(y=e(B.textContent.length))>A){for(;l<=m;)o=Math.ceil((l+m)/2),g&&(p=v(g,o)),y=e(o,p&&p.length-1),l===m?l=m+1:y>A?m=o-1:l=o;m===0?B.textContent="":R&&m===R.length-1||(B.textContent=p||v(R||g,o))}g&&g.splice(0,o),O.actualWidth=y,O.rotation=L}unescapeEntities(B,R){return C(this.renderer.escapes,function(g,k){R&&R.indexOf(g)!==-1||(B=B.toString().replace(RegExp(g,"g"),k))}),B}}}),gt(z,"Core/Renderer/SVG/SVGRenderer.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Defaults.js"],z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Renderer/SVG/SVGLabel.js"],z["Core/Renderer/SVG/Symbols.js"],z["Core/Renderer/SVG/TextBuilder.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X,F,$){let C,{defaultOptions:j}=J,{charts:B,deg2rad:R,doc:g,isFirefox:k,isMS:A,isWebKit:v,noop:p,SVG_NS:y,symbolSizes:O,win:L}=nt,{addEvent:u,attr:l,createElement:m,crisp:o,css:e,defined:t,destroyObjectProperties:s,extend:n,isArray:i,isNumber:a,isObject:r,isString:f,merge:P,pick:d,pInt:w,replaceNested:T,uniqueKey:D}=$;class H{constructor(c,M,G,h,S,b,E){let I,N,U=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),Z=U.element;E||U.css(this.getStyle(h||{})),c.appendChild(Z),l(c,"dir","ltr"),c.innerHTML.indexOf("xmlns")===-1&&l(Z,"xmlns",this.SVG_NS),this.box=Z,this.boxWrapper=U,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highcharts 11.4.8")),this.defs=this.createElement("defs").add(),this.allowHTML=b,this.forExport=S,this.styledMode=E,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=U.getStyle("font-size"),this.setSize(M,G,!1),k&&c.getBoundingClientRect&&((I=function(){e(c,{left:0,top:0}),N=c.getBoundingClientRect(),e(c,{left:Math.ceil(N.left)-N.left+"px",top:Math.ceil(N.top)-N.top+"px"})})(),this.unSubPixelFix=u(L,"resize",I))}definition(c){return new V([c]).addToDOM(this.defs.element)}getReferenceURL(){if((k||v)&&g.getElementsByTagName("base").length){if(!t(C)){let c=D(),M=new V([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:c},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${c})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(g.body);e(M,{position:"fixed",top:0,left:0,zIndex:9e5});let G=g.elementFromPoint(6,6);C=(G&&G.id)==="hitme",g.body.removeChild(M)}if(C)return T(L.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(c){return this.style=n({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},c),this.style}setStyle(c){this.boxWrapper.css(this.getStyle(c))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let c=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),s(this.gradients||{}),this.gradients=null,this.defs=c.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(c){return new this.Element(this,c)}getRadialAttr(c,M){return{cx:c[0]-c[2]/2+(M.cx||0)*c[2],cy:c[1]-c[2]/2+(M.cy||0)*c[2],r:(M.r||0)*c[2]}}shadowDefinition(c){let M=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(c).map(h=>`${h}-${c[h]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),G=P({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},c);return this.defs.element.querySelector(`#${M}`)||this.definition({tagName:"filter",attributes:{id:M,filterUnits:G.filterUnits},children:this.getShadowFilterContent(G)}),M}getShadowFilterContent(c){return[{tagName:"feDropShadow",attributes:{dx:c.offsetX,dy:c.offsetY,"flood-color":c.color,"flood-opacity":Math.min(5*c.opacity,1),stdDeviation:c.width/2}}]}buildText(c){new F(c).buildSVG()}getContrast(c){let M=st.parse(c).rgba.map(h=>{let S=h/255;return S<=.03928?S/12.92:Math.pow((S+.055)/1.055,2.4)}),G=.2126*M[0]+.7152*M[1]+.0722*M[2];return 1.05/(G+.05)>(G+.05)/.05?"#FFFFFF":"#000000"}button(c,M,G,h,S={},b,E,I,N,U){let Z=this.label(c,M,G,N,void 0,void 0,U,void 0,"button"),_=this.styledMode,at=arguments,lt=0;S=P(j.global.buttonTheme,S),_&&(delete S.fill,delete S.stroke,delete S["stroke-width"]);let Y=S.states||{},W=S.style||{};delete S.states,delete S.style;let q=[V.filterUserAttributes(S)],K=[W];return _||["hover","select","disabled"].forEach((et,rt)=>{q.push(P(q[0],V.filterUserAttributes(at[rt+5]||Y[et]||{}))),K.push(q[rt+1].style),delete q[rt+1].style}),u(Z.element,A?"mouseover":"mouseenter",function(){lt!==3&&Z.setState(1)}),u(Z.element,A?"mouseout":"mouseleave",function(){lt!==3&&Z.setState(lt)}),Z.setState=(et=0)=>{if(et!==1&&(Z.state=lt=et),Z.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][et]),!_){Z.attr(q[et]);let rt=K[et];r(rt)&&Z.css(rt)}},Z.attr(q[0]),!_&&(Z.css(n({cursor:"default"},W)),U&&Z.text.css({pointerEvents:"none"})),Z.on("touchstart",et=>et.stopPropagation()).on("click",function(et){lt!==3&&h.call(Z,et)})}crispLine(c,M){let[G,h]=c;return t(G[1])&&G[1]===h[1]&&(G[1]=h[1]=o(G[1],M)),t(G[2])&&G[2]===h[2]&&(G[2]=h[2]=o(G[2],M)),c}path(c){let M=this.styledMode?{}:{fill:"none"};return i(c)?M.d=c:r(c)&&n(M,c),this.createElement("path").attr(M)}circle(c,M,G){let h=r(c)?c:c===void 0?{}:{x:c,y:M,r:G},S=this.createElement("circle");return S.xSetter=S.ySetter=function(b,E,I){I.setAttribute("c"+E,b)},S.attr(h)}arc(c,M,G,h,S,b){let E;r(c)?(M=(E=c).y,G=E.r,h=E.innerR,S=E.start,b=E.end,c=E.x):E={innerR:h,start:S,end:b};let I=this.symbol("arc",c,M,G,G,E);return I.r=G,I}rect(c,M,G,h,S,b){let E=r(c)?c:c===void 0?{}:{x:c,y:M,r:S,width:Math.max(G||0,0),height:Math.max(h||0,0)},I=this.createElement("rect");return this.styledMode||(b!==void 0&&(E["stroke-width"]=b,n(E,I.crisp(E))),E.fill="none"),I.rSetter=function(N,U,Z){I.r=N,l(Z,{rx:N,ry:N})},I.rGetter=function(){return I.r||0},I.attr(E)}roundedRect(c){return this.symbol("roundedRect").attr(c)}setSize(c,M,G){this.width=c,this.height=M,this.boxWrapper.animate({width:c,height:M},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:d(G,!0)?void 0:0}),this.alignElements()}g(c){let M=this.createElement("g");return c?M.attr({class:"highcharts-"+c}):M}image(c,M,G,h,S,b){let E={preserveAspectRatio:"none"};a(M)&&(E.x=M),a(G)&&(E.y=G),a(h)&&(E.width=h),a(S)&&(E.height=S);let I=this.createElement("image").attr(E),N=function(U){I.attr({href:c}),b.call(I,U)};if(b){I.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let U=new L.Image;u(U,"load",N),U.src=c,U.complete&&N({})}else I.attr({href:c});return I}symbol(c,M,G,h,S,b){let E,I,N,U,Z=this,_=/^url\((.*?)\)$/,at=_.test(c),lt=!at&&(this.symbols[c]?c:"circle"),Y=lt&&this.symbols[lt];if(Y)typeof M=="number"&&(I=Y.call(this.symbols,M||0,G||0,h||0,S||0,b)),E=this.path(I),Z.styledMode||E.attr("fill","none"),n(E,{symbolName:lt||void 0,x:M,y:G,width:h,height:S}),b&&n(E,b);else if(at){N=c.match(_)[1];let W=E=this.image(N);W.imgwidth=d(b&&b.width,O[N]&&O[N].width),W.imgheight=d(b&&b.height,O[N]&&O[N].height),U=q=>q.attr({width:q.width,height:q.height}),["width","height"].forEach(q=>{W[`${q}Setter`]=function(K,et){this[et]=K;let{alignByTranslate:rt,element:ot,width:ht,height:dt,imgwidth:ct,imgheight:pt}=this,ut=et==="width"?ct:pt,xt=1;b&&b.backgroundSize==="within"&&ht&&dt&&ct&&pt?(xt=Math.min(ht/ct,dt/pt),l(ot,{width:Math.round(ct*xt),height:Math.round(pt*xt)})):ot&&ut&&ot.setAttribute(et,ut),!rt&&ct&&pt&&this.translate(((ht||0)-ct*xt)/2,((dt||0)-pt*xt)/2)}}),t(M)&&W.attr({x:M,y:G}),W.isImg=!0,W.symbolUrl=c,t(W.imgwidth)&&t(W.imgheight)?U(W):(W.attr({width:0,height:0}),m("img",{onload:function(){let q=B[Z.chartIndex];this.width===0&&(e(this,{position:"absolute",top:"-999em"}),g.body.appendChild(this)),O[N]={width:this.width,height:this.height},W.imgwidth=this.width,W.imgheight=this.height,W.element&&U(W),this.parentNode&&this.parentNode.removeChild(this),Z.imgCount--,Z.imgCount||!q||q.hasLoaded||q.onload()},src:N}),this.imgCount++)}return E}clipRect(c,M,G,h){return this.rect(c,M,G,h,0)}text(c,M,G,h){let S={};if(h&&(this.allowHTML||!this.forExport))return this.html(c,M,G);S.x=Math.round(M||0),G&&(S.y=Math.round(G)),t(c)&&(S.text=c);let b=this.createElement("text").attr(S);return h&&(!this.forExport||this.allowHTML)||(b.xSetter=function(E,I,N){let U=N.getElementsByTagName("tspan"),Z=N.getAttribute(I);for(let _=0,at;_<U.length;_++)(at=U[_]).getAttribute(I)===Z&&at.setAttribute(I,E);N.setAttribute(I,E)}),b}fontMetrics(c){let M=w(tt.prototype.getStyle.call(c,"font-size")||0),G=M<24?M+3:Math.round(1.2*M),h=Math.round(.8*G);return{h:G,b:h,f:M}}rotCorr(c,M,G){let h=c;return M&&G&&(h=Math.max(h*Math.cos(M*R),4)),{x:-c/3*Math.sin(M*R),y:h}}pathToSegments(c){let M=[],G=[],h={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let S=0;S<c.length;S++)f(G[0])&&a(c[S])&&G.length===h[G[0].toUpperCase()]&&c.splice(S,0,G[0].replace("M","L").replace("m","l")),typeof c[S]=="string"&&(G.length&&M.push(G.slice(0)),G.length=0),G.push(c[S]);return M.push(G.slice(0)),M}label(c,M,G,h,S,b,E,I,N){return new Q(this,c,M,G,h,S,b,E,I,N)}alignElements(){this.alignedObjects.forEach(c=>c.align())}}return n(H.prototype,{Element:tt,SVG_NS:y,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:X,draw:p}),it.registerRendererType("svg",H,!0),H}),gt(z,"Core/Renderer/HTML/HTMLElement.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Globals.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"]],function(V,J,st,nt){let{composed:it}=J,{attr:tt,css:Q,createElement:X,defined:F,extend:$,pInt:C,pushUnique:j}=nt;function B(A,v,p){var O;let y=((O=this.div)==null?void 0:O.style)||p.style;st.prototype[`${v}Setter`].call(this,A,v,p),y&&(y[v]=A)}let R=(A,v)=>{var p;if(!A.div){let y=tt(A.element,"class"),O=A.css,L=X("div",y?{className:y}:void 0,{position:"absolute",left:`${A.translateX||0}px`,top:`${A.translateY||0}px`,...A.styles,display:A.display,opacity:A.opacity,visibility:A.visibility},((p=A.parentGroup)==null?void 0:p.div)||v);A.classSetter=(u,l,m)=>{m.setAttribute("class",u),L.className=u},A.translateXSetter=A.translateYSetter=(u,l)=>{A[l]=u,L.style[l==="translateX"?"left":"top"]=`${u}px`,A.doTransform=!0},A.opacitySetter=A.visibilitySetter=B,A.css=u=>(O.call(A,u),u.cursor&&(L.style.cursor=u.cursor),u.pointerEvents&&(L.style.pointerEvents=u.pointerEvents),A),A.on=function(){return st.prototype.on.apply({element:L,onEvents:A.onEvents},arguments),A},A.div=L}return A.div};class g extends st{static compose(v){j(it,this.compose)&&(v.prototype.html=function(p,y,O){return new g(this,"span").attr({text:p,x:Math.round(y),y:Math.round(O)})})}constructor(v,p){super(v,p),this.css({position:"absolute",...v.styledMode?{}:{fontFamily:v.style.fontFamily,fontSize:v.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(v,p,y){this.xCorr=-v*y,this.yCorr=-p}css(v){let p,{element:y}=this,O=y.tagName==="SPAN"&&v&&"width"in v,L=O&&v.width;return O&&(delete v.width,this.textWidth=C(L)||void 0,p=!0),(v==null?void 0:v.textOverflow)==="ellipsis"&&(v.whiteSpace="nowrap",v.overflow="hidden"),$(this.styles,v),Q(y,v),p&&this.updateTransform(),this}htmlGetBBox(){let{element:v}=this;return{x:v.offsetLeft,y:v.offsetTop,width:v.offsetWidth,height:v.offsetHeight}}updateTransform(){var a;if(!this.added){this.alignOnAdd=!0;return}let{element:v,renderer:p,rotation:y,rotationOriginX:O,rotationOriginY:L,styles:u,textAlign:l="left",textWidth:m,translateX:o=0,translateY:e=0,x:t=0,y:s=0}=this,n={left:0,center:.5,right:1}[l],i=u.whiteSpace;if(Q(v,{marginLeft:`${o}px`,marginTop:`${e}px`}),v.tagName==="SPAN"){let r=[y,l,v.innerHTML,m,this.textAlign].join(","),f=-(((a=this.parentGroup)==null?void 0:a.padding)*1)||0,P,d=!1;if(m!==this.oldTextWidth){let x=this.textPxLength?this.textPxLength:(Q(v,{width:"",whiteSpace:i||"nowrap"}),v.offsetWidth),c=m||0;(c>this.oldTextWidth||x>c)&&(/[ \-]/.test(v.textContent||v.innerText)||v.style.textOverflow==="ellipsis")&&(Q(v,{width:x>c||y?m+"px":"auto",display:"block",whiteSpace:i||"normal"}),this.oldTextWidth=m,d=!0)}this.hasBoxWidthChanged=d,r!==this.cTT&&(P=p.fontMetrics(v).b,F(y)&&(y!==(this.oldRotation||0)||l!==this.oldAlign)&&this.setSpanRotation(y,f,f),this.getSpanCorrection(!F(y)&&this.textPxLength||v.offsetWidth,P,n));let{xCorr:w=0,yCorr:T=0}=this,D=(O??t)-w-t-f,H=(L??s)-T-s-f;Q(v,{left:`${t+w}px`,top:`${s+T}px`,transformOrigin:`${D}px ${H}px`}),this.cTT=r,this.oldRotation=y,this.oldAlign=l}}setSpanRotation(v,p,y){Q(this.element,{transform:`rotate(${v}deg)`,transformOrigin:`${p}% ${y}px`})}add(v){let p,y=this.renderer.box.parentNode,O=[];if(this.parentGroup=v,v&&!(p=v.div)){let L=v;for(;L;)O.push(L),L=L.parentGroup;for(let u of O.reverse())p=R(u,y)}return(p||y).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(v){v!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,V.setElementHTML(this.element,v??""),this.textStr=v,this.doTransform=!0)}alignSetter(v){this.alignValue=this.textAlign=v,this.doTransform=!0}xSetter(v,p){this[p]=v,this.doTransform=!0}}let k=g.prototype;return k.visibilitySetter=k.opacitySetter=B,k.ySetter=k.rotationSetter=k.rotationOriginXSetter=k.rotationOriginYSetter=k.xSetter,g}),gt(z,"Core/Axis/AxisDefaults.js",[],function(){var V,J;return(J=V||(V={})).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"},J.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:st}=this.axis.chart;return st(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},V}),gt(z,"Core/Foundation.js",[z["Core/Utilities.js"]],function(V){var J;let{addEvent:st,isFunction:nt,objectEach:it,removeEvent:tt}=V;return(J||(J={})).registerEventOptions=function(Q,X){Q.eventOptions=Q.eventOptions||{},it(X.events,function(F,$){Q.eventOptions[$]!==F&&(Q.eventOptions[$]&&(tt(Q,$,Q.eventOptions[$]),delete Q.eventOptions[$]),nt(F)&&(Q.eventOptions[$]=F,st(Q,$,F,{order:0})))})},J}),gt(z,"Core/Axis/Tick.js",[z["Core/Templating.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J,st){let{deg2rad:nt}=J,{clamp:it,correctFloat:tt,defined:Q,destroyObjectProperties:X,extend:F,fireEvent:$,isNumber:C,merge:j,objectEach:B,pick:R}=st;return class{constructor(g,k,A,v,p){this.isNew=!0,this.isNewLabel=!0,this.axis=g,this.pos=k,this.type=A||"",this.parameters=p||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),A||v||this.addLabel()}addLabel(){let g=this,k=g.axis,A=k.options,v=k.chart,p=k.categories,y=k.logarithmic,O=k.names,L=g.pos,u=R(g.options&&g.options.labels,A.labels),l=k.tickPositions,m=L===l[0],o=L===l[l.length-1],e=(!u.step||u.step===1)&&k.tickInterval===1,t=l.info,s=g.label,n,i,a,r=this.parameters.category||(p?R(p[L],O[L],L):L);y&&C(r)&&(r=tt(y.lin2log(r))),k.dateTime&&(t?n=(i=v.time.resolveDTLFormat(A.dateTimeLabelFormats[!A.grid&&t.higherRanks[L]||t.unitName])).main:C(r)&&(n=k.dateTime.getXDateFormat(r,A.dateTimeLabelFormats||{}))),g.isFirst=m,g.isLast=o;let f={axis:k,chart:v,dateTimeLabelFormat:n,isFirst:m,isLast:o,pos:L,tick:g,tickPositionInfo:t,value:r};$(this,"labelFormat",f);let P=T=>u.formatter?u.formatter.call(T,T):u.format?(T.text=k.defaultLabelFormatter.call(T),V.format(u.format,T,v)):k.defaultLabelFormatter.call(T),d=P.call(f,f),w=i&&i.list;w?g.shortenLabel=function(){for(a=0;a<w.length;a++)if(F(f,{dateTimeLabelFormat:w[a]}),s.attr({text:P.call(f,f)}),s.getBBox().width<k.getSlotWidth(g)-2*(u.padding||0))return;s.attr({text:""})}:g.shortenLabel=void 0,e&&k._addedPlotLB&&g.moveLabel(d,u),Q(s)||g.movedLabel?s&&s.textStr!==d&&!e&&(!s.textWidth||u.style.width||s.styles.width||s.css({width:null}),s.attr({text:d}),s.textPxLength=s.getBBox().width):(g.label=s=g.createLabel(d,u),g.rotation=0)}createLabel(g,k,A){let v=this.axis,p=v.chart,y=Q(g)&&k.enabled?p.renderer.text(g,A==null?void 0:A.x,A==null?void 0:A.y,k.useHTML).add(v.labelGroup):void 0;return y&&(p.styledMode||y.css(j(k.style)),y.textPxLength=y.getBBox().width),y}destroy(){X(this,this.axis)}getPosition(g,k,A,v){let p=this.axis,y=p.chart,O=v&&y.oldChartHeight||y.chartHeight,L={x:g?tt(p.translate(k+A,void 0,void 0,v)+p.transB):p.left+p.offset+(p.opposite?(v&&y.oldChartWidth||y.chartWidth)-p.right-p.left:0),y:g?O-p.bottom+p.offset-(p.opposite?p.height:0):tt(O-p.translate(k+A,void 0,void 0,v)-p.transB)};return L.y=it(L.y,-1e9,1e9),$(this,"afterGetPosition",{pos:L}),L}getLabelPosition(g,k,A,v,p,y,O,L){let u,l,m=this.axis,o=m.transA,e=m.isLinked&&m.linkedParent?m.linkedParent.reversed:m.reversed,t=m.staggerLines,s=m.tickRotCorr||{x:0,y:0},n=v||m.reserveSpaceDefault?0:-m.labelOffset*(m.labelAlign==="center"?.5:1),i=p.distance,a={};return u=m.side===0?A.rotation?-i:-A.getBBox().height:m.side===2?s.y+i:Math.cos(A.rotation*nt)*(s.y-A.getBBox(!1,0).height/2),Q(p.y)&&(u=m.side===0&&m.horiz?p.y+u:p.y),g=g+R(p.x,[0,1,0,-1][m.side]*i)+n+s.x-(y&&v?y*o*(e?-1:1):0),k=k+u-(y&&!v?y*o*(e?1:-1):0),t&&(l=O/(L||1)%t,m.opposite&&(l=t-l-1),k+=l*(m.labelOffset/t)),a.x=g,a.y=Math.round(k),$(this,"afterGetLabelPosition",{pos:a,tickmarkOffset:y,index:O}),a}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0}getMarkPath(g,k,A,v,p=!1,y){return y.crispLine([["M",g,k],["L",g+(p?0:-A),k+(p?A:0)]],v)}handleOverflow(g){let k=this.axis,A=k.options.labels,v=g.x,p=k.chart.chartWidth,y=k.chart.spacing,O=R(k.labelLeft,Math.min(k.pos,y[3])),L=R(k.labelRight,Math.max(k.isRadial?0:k.pos+k.len,p-y[1])),u=this.label,l=this.rotation,m={left:0,center:.5,right:1}[k.labelAlign||u.attr("align")],o=u.getBBox().width,e=k.getSlotWidth(this),t={},s=e,n=1,i,a,r;l||A.overflow!=="justify"?l<0&&v-m*o<O?r=Math.round(v/Math.cos(l*nt)-O):l>0&&v+m*o>L&&(r=Math.round((p-v)/Math.cos(l*nt))):(i=v-m*o,a=v+(1-m)*o,i<O?s=g.x+s*(1-m)-O:a>L&&(s=L-g.x+s*m,n=-1),(s=Math.min(e,s))<e&&k.labelAlign==="center"&&(g.x+=n*(e-s-m*(e-Math.min(o,s)))),(o>s||k.autoRotation&&(u.styles||{}).width)&&(r=s)),r&&(this.shortenLabel?this.shortenLabel():(t.width=Math.floor(r)+"px",(A.style||{}).textOverflow||(t.textOverflow="ellipsis"),u.css(t)))}moveLabel(g,k){let A=this,v=A.label,p=A.axis,y=!1,O;v&&v.textStr===g?(A.movedLabel=v,y=!0,delete A.label):B(p.ticks,function(L){y||L.isNew||L===A||!L.label||L.label.textStr!==g||(A.movedLabel=L.label,y=!0,L.labelPos=A.movedLabel.xy,delete L.label)}),!y&&(A.labelPos||v)&&(O=A.labelPos||v.xy,A.movedLabel=A.createLabel(g,k,O),A.movedLabel&&A.movedLabel.attr({opacity:0}))}render(g,k,A){let v=this.axis,p=v.horiz,y=this.pos,O=R(this.tickmarkOffset,v.tickmarkOffset),L=this.getPosition(p,y,O,k),u=L.x,l=L.y,m=v.pos,o=m+v.len,e=p?u:l;!v.chart.polar&&this.isNew&&(tt(e)<m||e>o)&&(A=0);let t=R(A,this.label&&this.label.newOpacity,1);A=R(A,1),this.isActive=!0,this.renderGridLine(k,A),this.renderMark(L,A),this.renderLabel(L,k,t,g),this.isNew=!1,$(this,"afterRender")}renderGridLine(g,k){let A=this.axis,v=A.options,p={},y=this.pos,O=this.type,L=R(this.tickmarkOffset,A.tickmarkOffset),u=A.chart.renderer,l=this.gridLine,m,o=v.gridLineWidth,e=v.gridLineColor,t=v.gridLineDashStyle;this.type==="minor"&&(o=v.minorGridLineWidth,e=v.minorGridLineColor,t=v.minorGridLineDashStyle),l||(A.chart.styledMode||(p.stroke=e,p["stroke-width"]=o||0,p.dashstyle=t),O||(p.zIndex=1),g&&(k=0),this.gridLine=l=u.path().attr(p).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(A.gridGroup)),l&&(m=A.getPlotLinePath({value:y+L,lineWidth:l.strokeWidth(),force:"pass",old:g,acrossPanes:!1}))&&l[g||this.isNew?"attr":"animate"]({d:m,opacity:k})}renderMark(g,k){let A=this.axis,v=A.options,p=A.chart.renderer,y=this.type,O=A.tickSize(y?y+"Tick":"tick"),L=g.x,u=g.y,l=R(v[y!=="minor"?"tickWidth":"minorTickWidth"],!y&&A.isXAxis?1:0),m=v[y!=="minor"?"tickColor":"minorTickColor"],o=this.mark,e=!o;O&&(A.opposite&&(O[0]=-O[0]),o||(this.mark=o=p.path().addClass("highcharts-"+(y?y+"-":"")+"tick").add(A.axisGroup),A.chart.styledMode||o.attr({stroke:m,"stroke-width":l})),o[e?"attr":"animate"]({d:this.getMarkPath(L,u,O[0],o.strokeWidth(),A.horiz,p),opacity:k}))}renderLabel(g,k,A,v){let p=this.axis,y=p.horiz,O=p.options,L=this.label,u=O.labels,l=u.step,m=R(this.tickmarkOffset,p.tickmarkOffset),o=g.x,e=g.y,t=!0;L&&C(o)&&(L.xy=g=this.getLabelPosition(o,e,L,y,u,m,v,l),(!this.isFirst||this.isLast||O.showFirstLabel)&&(!this.isLast||this.isFirst||O.showLastLabel)?!y||u.step||u.rotation||k||A===0||this.handleOverflow(g):t=!1,l&&v%l&&(t=!1),t&&C(g.y)?(g.opacity=A,L[this.isNewLabel?"attr":"animate"](g).show(!0),this.isNewLabel=!1):(L.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let g=this.label,k=this.axis;g&&!this.isNew&&(g.animate({opacity:0},void 0,g.destroy),delete this.label),k.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),gt(z,"Core/Axis/Axis.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Axis/AxisDefaults.js"],z["Core/Color/Color.js"],z["Core/Defaults.js"],z["Core/Foundation.js"],z["Core/Globals.js"],z["Core/Axis/Tick.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X){let{animObject:F}=V,{xAxis:$,yAxis:C}=J,{defaultOptions:j}=nt,{registerEventOptions:B}=it,{deg2rad:R}=tt,{arrayMax:g,arrayMin:k,clamp:A,correctFloat:v,defined:p,destroyObjectProperties:y,erase:O,error:L,extend:u,fireEvent:l,getClosestDistance:m,insertItem:o,isArray:e,isNumber:t,isString:s,merge:n,normalizeTickInterval:i,objectEach:a,pick:r,relativeLength:f,removeEvent:P,splat:d,syncTimeout:w}=X,T=(H,x)=>i(x,void 0,void 0,r(H.options.allowDecimals,x<.5||H.tickAmount!==void 0),!!H.tickAmount);u(j,{xAxis:$,yAxis:n($,C)});class D{constructor(x,c,M){this.init(x,c,M)}init(x,c,M=this.coll){let G=M==="xAxis",h=this.isZAxis||(x.inverted?!G:G);this.chart=x,this.horiz=h,this.isXAxis=G,this.coll=M,l(this,"init",{userOptions:c}),this.opposite=r(c.opposite,this.opposite),this.side=r(c.side,this.side,h?this.opposite?0:2:this.opposite?1:3),this.setOptions(c);let S=this.options,b=S.labels;this.type??(this.type=S.type||"linear"),this.uniqueNames??(this.uniqueNames=S.uniqueNames??!0),l(this,"afterSetType"),this.userOptions=c,this.minPixelPadding=0,this.reversed=r(S.reversed,this.reversed),this.visible=S.visible,this.zoomEnabled=S.zoomEnabled,this.hasNames=this.type==="category"||S.categories===!0,this.categories=e(S.categories)&&S.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=p(S.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=S.minRange||S.maxZoom,this.range=S.range,this.offset=S.offset||0,this.max=void 0,this.min=void 0;let E=r(S.crosshair,d(x.options.tooltip.crosshairs)[G?0:1]);this.crosshair=E===!0?{}:E,x.axes.indexOf(this)===-1&&(G?x.axes.splice(x.xAxis.length,0,this):x.axes.push(this),o(this,x[this.coll])),x.orderItems(this.coll),this.series=this.series||[],x.inverted&&!this.isZAxis&&G&&!p(this.reversed)&&(this.reversed=!0),this.labelRotation=t(b.rotation)?b.rotation:void 0,B(this,S),l(this,"afterInit")}setOptions(x){let c=this.horiz?{labels:{autoRotation:[-45],padding:4},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=n(c,j[this.coll],x),l(this,"afterSetOptions",{userOptions:x})}defaultLabelFormatter(){let x=this.axis,{numberFormatter:c}=this.chart,M=t(this.value)?this.value:NaN,G=x.chart.time,h=x.categories,S=this.dateTimeLabelFormat,b=j.lang,E=b.numericSymbols,I=b.numericSymbolMagnitude||1e3,N=x.logarithmic?Math.abs(M):x.tickInterval,U=E&&E.length,Z,_;if(h)_=`${this.value}`;else if(S)_=G.dateFormat(S,M);else if(U&&E&&N>=1e3)for(;U--&&_===void 0;)N>=(Z=Math.pow(I,U+1))&&10*M%Z==0&&E[U]!==null&&M!==0&&(_=c(M/Z,-1)+E[U]);return _===void 0&&(_=Math.abs(M)>=1e4?c(M,-1):c(M,-1,void 0,"")),_}getSeriesExtremes(){let x,c=this;l(this,"getSeriesExtremes",null,function(){c.hasVisibleSeries=!1,c.dataMin=c.dataMax=c.threshold=void 0,c.softThreshold=!c.isXAxis,c.series.forEach(M=>{if(M.reserveSpace()){let G=M.options,h,S=G.threshold,b,E;if(c.hasVisibleSeries=!0,c.positiveValuesOnly&&0>=(S||0)&&(S=void 0),c.isXAxis)(h=M.xData)&&h.length&&(h=c.logarithmic?h.filter(I=>I>0):h,b=(x=M.getXExtremes(h)).min,E=x.max,t(b)||b instanceof Date||(h=h.filter(t),b=(x=M.getXExtremes(h)).min,E=x.max),h.length&&(c.dataMin=Math.min(r(c.dataMin,b),b),c.dataMax=Math.max(r(c.dataMax,E),E)));else{let I=M.applyExtremes();t(I.dataMin)&&(b=I.dataMin,c.dataMin=Math.min(r(c.dataMin,b),b)),t(I.dataMax)&&(E=I.dataMax,c.dataMax=Math.max(r(c.dataMax,E),E)),p(S)&&(c.threshold=S),(!G.softThreshold||c.positiveValuesOnly)&&(c.softThreshold=!1)}}})}),l(this,"afterGetSeriesExtremes")}translate(x,c,M,G,h,S){var lt;let b=this.linkedParent||this,E=G&&b.old?b.old.min:b.min;if(!t(E))return NaN;let I=b.minPixelPadding,N=(b.isOrdinal||((lt=b.brokenAxis)==null?void 0:lt.hasBreaks)||b.logarithmic&&h)&&b.lin2val,U=1,Z=0,_=G&&b.old?b.old.transA:b.transA,at=0;return _||(_=b.transA),M&&(U*=-1,Z=b.len),b.reversed&&(U*=-1,Z-=U*(b.sector||b.len)),c?(at=(x=x*U+Z-I)/_+E,N&&(at=b.lin2val(at))):(N&&(x=b.val2lin(x)),at=U*(x-E)*_+Z+U*I+(t(S)?_*S:0),b.isRadial||(at=v(at))),at}toPixels(x,c){return this.translate(x,!1,!this.horiz,void 0,!0)+(c?0:this.pos)}toValue(x,c){return this.translate(x-(c?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(x){let c=this,M=c.chart,G=c.left,h=c.top,S=x.old,b=x.value,E=x.lineWidth,I=S&&M.oldChartHeight||M.chartHeight,N=S&&M.oldChartWidth||M.chartWidth,U=c.transB,Z=x.translatedValue,_=x.force,at,lt,Y,W,q;function K(rt,ot,ht){return _!=="pass"&&(rt<ot||rt>ht)&&(_?rt=A(rt,ot,ht):q=!0),rt}let et={value:b,lineWidth:E,old:S,force:_,acrossPanes:x.acrossPanes,translatedValue:Z};return l(this,"getPlotLinePath",et,function(rt){at=Y=(Z=A(Z=r(Z,c.translate(b,void 0,void 0,S)),-1e9,1e9))+U,lt=W=I-Z-U,t(Z)?c.horiz?(lt=h,W=I-c.bottom+(c.options.isInternal?0:M.scrollablePixelsY||0),at=Y=K(at,G,G+c.width)):(at=G,Y=N-c.right+(M.scrollablePixelsX||0),lt=W=K(lt,h,h+c.height)):(q=!0,_=!1),rt.path=q&&!_?void 0:M.renderer.crispLine([["M",at,lt],["L",Y,W]],E||1)}),et.path}getLinearTickPositions(x,c,M){let G,h,S,b=v(Math.floor(c/x)*x),E=v(Math.ceil(M/x)*x),I=[];if(v(b+x)===b&&(S=20),this.single)return[c];for(G=b;G<=E&&(I.push(G),(G=v(G+x,S))!==h);)h=G;return I}getMinorTickInterval(){let{minorTicks:x,minorTickInterval:c}=this.options;return x===!0?r(c,"auto"):x!==!1?c:void 0}getMinorTickPositions(){let x=this.options,c=this.tickPositions,M=this.minorTickInterval,G=this.pointRangePadding||0,h=(this.min||0)-G,S=(this.max||0)+G,b=S-h,E=[],I;if(b&&b/M<this.len/3){let N=this.logarithmic;if(N)this.paddedTicks.forEach(function(U,Z,_){Z&&E.push.apply(E,N.getLogTickPositions(M,_[Z-1],_[Z],!0))});else if(this.dateTime&&this.getMinorTickInterval()==="auto")E=E.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(M),h,S,x.startOfWeek));else for(I=h+(c[0]-h)%M;I<=S&&I!==E[0];I+=M)E.push(I)}return E.length!==0&&this.trimTicks(E),E}adjustForMinRange(){let x=this.options,c=this.logarithmic,{max:M,min:G,minRange:h}=this,S,b,E,I;this.isXAxis&&h===void 0&&!c&&(h=p(x.min)||p(x.max)||p(x.floor)||p(x.ceiling)?null:Math.min(5*(m(this.series.map(N=>{var U;return(N.xIncrement?(U=N.xData)==null?void 0:U.slice(0,2):N.xData)||[]}))||0),this.dataMax-this.dataMin)),t(M)&&t(G)&&t(h)&&M-G<h&&(b=this.dataMax-this.dataMin>=h,S=(h-M+G)/2,E=[G-S,r(x.min,G-S)],b&&(E[2]=c?c.log2lin(this.dataMin):this.dataMin),I=[(G=g(E))+h,r(x.max,G+h)],b&&(I[2]=c?c.log2lin(this.dataMax):this.dataMax),(M=k(I))-G<h&&(E[0]=M-h,E[1]=r(x.min,M-h),G=g(E))),this.minRange=h,this.min=G,this.max=M}getClosest(){let x,c;if(this.categories)c=1;else{let M=[];this.series.forEach(function(G){var S;let h=G.closestPointRange;((S=G.xData)==null?void 0:S.length)===1?M.push(G.xData[0]):!G.noSharedTooltip&&p(h)&&G.reserveSpace()&&(c=p(c)?Math.min(c,h):h)}),M.length&&(M.sort((G,h)=>G-h),x=m([M]))}return x&&c?Math.min(x,c):x||c}nameToX(x){let c=e(this.options.categories),M=c?this.categories:this.names,G=x.options.x,h;return x.series.requireSorting=!1,p(G)||(G=this.uniqueNames&&M?c?M.indexOf(x.name):r(M.keys[x.name],-1):x.series.autoIncrement()),G===-1?!c&&M&&(h=M.length):h=G,h!==void 0?(this.names[h]=x.name,this.names.keys[x.name]=h):x.x&&(h=x.x),h}updateNames(){let x=this,c=this.names;c.length>0&&(Object.keys(c.keys).forEach(function(M){delete c.keys[M]}),c.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(M=>{M.xIncrement=null,(!M.points||M.isDirtyData)&&(x.max=Math.max(x.max,M.xData.length-1),M.processData(),M.generatePoints()),M.data.forEach(function(G,h){let S;G!=null&&G.options&&G.name!==void 0&&(S=x.nameToX(G))!==void 0&&S!==G.x&&(G.x=S,M.xData[h]=S)})}))}setAxisTranslation(){let x=this,c=x.max-x.min,M=x.linkedParent,G=!!x.categories,h=x.isXAxis,S=x.axisPointRange||0,b,E=0,I=0,N,U=x.transA;(h||G||S)&&(b=x.getClosest(),M?(E=M.minPointOffset,I=M.pointRangePadding):x.series.forEach(function(Z){let _=G?1:h?r(Z.options.pointRange,b,0):x.axisPointRange||0,at=Z.options.pointPlacement;if(S=Math.max(S,_),!x.single||G){let lt=Z.is("xrange")?!h:h;E=Math.max(E,lt&&s(at)?0:_/2),I=Math.max(I,lt&&at==="on"?0:_)}}),N=x.ordinal&&x.ordinal.slope&&b?x.ordinal.slope/b:1,x.minPointOffset=E*=N,x.pointRangePadding=I*=N,x.pointRange=Math.min(S,x.single&&G?1:c),h&&b&&(x.closestPointRange=b)),x.translationSlope=x.transA=U=x.staticScale||x.len/(c+I||1),x.transB=x.horiz?x.left:x.bottom,x.minPixelPadding=U*E,l(this,"afterSetAxisTranslation")}minFromRange(){let{max:x,min:c}=this;return t(x)&&t(c)&&x-c||void 0}setTickInterval(x){var mt,ft,vt,bt;let{categories:c,chart:M,dataMax:G,dataMin:h,dateTime:S,isXAxis:b,logarithmic:E,options:I,softThreshold:N}=this,U=t(this.threshold)?this.threshold:void 0,Z=this.minRange||0,{ceiling:_,floor:at,linkedTo:lt,softMax:Y,softMin:W}=I,q=t(lt)&&((mt=M[this.coll])==null?void 0:mt[lt]),K=I.tickPixelInterval,et=I.maxPadding,rt=I.minPadding,ot=0,ht,dt=t(I.tickInterval)&&I.tickInterval>=0?I.tickInterval:void 0,ct,pt,ut,xt;if(S||c||q||this.getTickAmount(),ut=r(this.userMin,I.min),xt=r(this.userMax,I.max),q?(this.linkedParent=q,ht=q.getExtremes(),this.min=r(ht.min,ht.dataMin),this.max=r(ht.max,ht.dataMax),this.type!==q.type&&L(11,!0,M)):(N&&p(U)&&t(G)&&t(h)&&(h>=U?(ct=U,rt=0):G<=U&&(pt=U,et=0)),this.min=r(ut,ct,h),this.max=r(xt,pt,G)),t(this.max)&&t(this.min)&&(E&&(this.positiveValuesOnly&&!x&&0>=Math.min(this.min,r(h,this.min))&&L(10,!0,M),this.min=v(E.log2lin(this.min),16),this.max=v(E.log2lin(this.max),16)),this.range&&t(h)&&(this.userMin=this.min=ut=Math.max(h,this.minFromRange()||0),this.userMax=xt=this.max,this.range=void 0)),l(this,"foundExtremes"),this.adjustForMinRange(),t(this.min)&&t(this.max)){if(!t(this.userMin)&&t(W)&&W<this.min&&(this.min=ut=W),!t(this.userMax)&&t(Y)&&Y>this.max&&(this.max=xt=Y),c||this.axisPointRange||(ft=this.stacking)!=null&&ft.usePercentage||q||!(ot=this.max-this.min)||(!p(ut)&&rt&&(this.min-=ot*rt),p(xt)||!et||(this.max+=ot*et)),!t(this.userMin)&&t(at)&&(this.min=Math.max(this.min,at)),!t(this.userMax)&&t(_)&&(this.max=Math.min(this.max,_)),N&&t(h)&&t(G)){let St=U||0;!p(ut)&&this.min<St&&h>=St?this.min=I.minRange?Math.min(St,this.max-Z):St:!p(xt)&&this.max>St&&G<=St&&(this.max=I.minRange?Math.max(St,this.min+Z):St)}!M.polar&&this.min>this.max&&(p(I.min)?this.max=this.min:p(I.max)&&(this.min=this.max)),ot=this.max-this.min}if(this.min!==this.max&&t(this.min)&&t(this.max)?q&&!dt&&K===q.options.tickPixelInterval?this.tickInterval=dt=q.tickInterval:this.tickInterval=r(dt,this.tickAmount?ot/Math.max(this.tickAmount-1,1):void 0,c?1:ot*K/Math.max(this.len,K)):this.tickInterval=1,b&&!x){let St=this.min!==((vt=this.old)==null?void 0:vt.min)||this.max!==((bt=this.old)==null?void 0:bt.max);this.series.forEach(function(Mt){var kt;Mt.forceCrop=(kt=Mt.forceCropping)==null?void 0:kt.call(Mt),Mt.processData(St)}),l(this,"postProcessData",{hasExtremesChanged:St})}this.setAxisTranslation(),l(this,"initialAxisTranslation"),this.pointRange&&!dt&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let yt=r(I.minTickInterval,S&&!this.series.some(St=>St.noSharedTooltip)?this.closestPointRange:0);!dt&&this.tickInterval<yt&&(this.tickInterval=yt),S||E||dt||(this.tickInterval=T(this,this.tickInterval)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()}setTickPositions(){var N,U;let x=this.options,c=x.tickPositions,M=x.tickPositioner,G=this.getMinorTickInterval(),h=!this.isPanning,S=h&&x.startOnTick,b=h&&x.endOnTick,E=[],I;if(this.tickmarkOffset=this.categories&&x.tickmarkPlacement==="between"&&this.tickInterval===1?.5:0,this.single=this.min===this.max&&p(this.min)&&!this.tickAmount&&(this.min%1==0||x.allowDecimals!==!1),c)E=c.slice();else if(t(this.min)&&t(this.max)){if(!((N=this.ordinal)!=null&&N.positions)&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))E=[this.min,this.max],L(19,!1,this.chart);else if(this.dateTime)E=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,x.units),this.min,this.max,x.startOfWeek,(U=this.ordinal)==null?void 0:U.positions,this.closestPointRange,!0);else if(this.logarithmic)E=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let Z=this.tickInterval,_=Z;for(;_<=2*Z&&(E=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&E.length>this.tickAmount);)this.tickInterval=T(this,_*=1.1)}E.length>this.len&&(E=[E[0],E[E.length-1]])[0]===E[1]&&(E.length=1),M&&(this.tickPositions=E,(I=M.apply(this,[this.min,this.max]))&&(E=I))}this.tickPositions=E,this.minorTickInterval=G==="auto"&&this.tickInterval?this.tickInterval/x.minorTicksPerMajor:G,this.paddedTicks=E.slice(0),this.trimTicks(E,S,b),!this.isLinked&&t(this.min)&&t(this.max)&&(this.single&&E.length<2&&!this.categories&&!this.series.some(Z=>Z.is("heatmap")&&Z.options.pointPlacement==="between")&&(this.min-=.5,this.max+=.5),c||I||this.adjustTickAmount()),l(this,"afterSetTickPositions")}trimTicks(x,c,M){let G=x[0],h=x[x.length-1],S=!this.isOrdinal&&this.minPointOffset||0;if(l(this,"trimTicks"),!this.isLinked){if(c&&G!==-1/0)this.min=G;else for(;this.min-S>x[0];)x.shift();if(M)this.max=h;else for(;this.max+S<x[x.length-1];)x.pop();x.length===0&&p(G)&&!this.options.tickPositions&&x.push((h+G)/2)}}alignToOthers(){let x,c=this,M=c.chart,G=[this],h=c.options,S=M.options.chart,b=this.coll==="yAxis"&&S.alignThresholds,E=[];if(c.thresholdAlignment=void 0,(S.alignTicks!==!1&&h.alignTicks||b)&&h.startOnTick!==!1&&h.endOnTick!==!1&&!c.logarithmic){let I=U=>{let{horiz:Z,options:_}=U;return[Z?_.left:_.top,_.width,_.height,_.pane].join(",")},N=I(this);M[this.coll].forEach(function(U){let{series:Z}=U;Z.length&&Z.some(_=>_.visible)&&U!==c&&I(U)===N&&(x=!0,G.push(U))})}if(x&&b){G.forEach(N=>{let U=N.getThresholdAlignment(c);t(U)&&E.push(U)});let I=E.length>1?E.reduce((N,U)=>N+=U,0)/E.length:void 0;G.forEach(N=>{N.thresholdAlignment=I})}return x}getThresholdAlignment(x){if((!t(this.dataMin)||this!==x&&this.series.some(c=>c.isDirty||c.isDirtyData))&&this.getSeriesExtremes(),t(this.threshold)){let c=A((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(c=1-c),c}}getTickAmount(){let x=this.options,c=x.tickPixelInterval,M=x.tickAmount;p(x.tickInterval)||M||!(this.len<c)||this.isRadial||this.logarithmic||!x.startOnTick||!x.endOnTick||(M=2),!M&&this.alignToOthers()&&(M=Math.ceil(this.len/c)+1),M<4&&(this.finalTickAmt=M,M=5),this.tickAmount=M}adjustTickAmount(){let x=this,{finalTickAmt:c,max:M,min:G,options:h,tickPositions:S,tickAmount:b,thresholdAlignment:E}=x,I=S==null?void 0:S.length,N=r(x.threshold,x.softThreshold?0:null),U,Z,_=x.tickInterval,at,lt=()=>S.push(v(S[S.length-1]+_)),Y=()=>S.unshift(v(S[0]-_));if(t(E)&&(at=E<.5?Math.ceil(E*(b-1)):Math.floor(E*(b-1)),h.reversed&&(at=b-1-at)),x.hasData()&&t(G)&&t(M)){let W=()=>{x.transA*=(I-1)/(b-1),x.min=h.startOnTick?S[0]:Math.min(G,S[0]),x.max=h.endOnTick?S[S.length-1]:Math.max(M,S[S.length-1])};if(t(at)&&t(x.threshold)){for(;S[at]!==N||S.length!==b||S[0]>G||S[S.length-1]<M;){for(S.length=0,S.push(x.threshold);S.length<b;)S[at]===void 0||S[at]>x.threshold?Y():lt();if(_>8*x.tickInterval)break;_*=2}W()}else if(I<b){for(;S.length<b;)S.length%2||G===N?lt():Y();W()}if(p(c)){for(Z=U=S.length;Z--;)(c===3&&Z%2==1||c<=2&&Z>0&&Z<U-1)&&S.splice(Z,1);x.finalTickAmt=void 0}}}setScale(){var S,b;let{coll:x,stacking:c}=this,M=!1,G=!1;this.series.forEach(E=>{M=M||E.isDirtyData||E.isDirty,G=G||E.xAxis&&E.xAxis.isDirty||!1}),this.setAxisSize();let h=this.len!==(this.old&&this.old.len);h||M||G||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(c&&x==="yAxis"&&c.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),c&&x==="xAxis"&&c.buildStacks(),this.isDirty||(this.isDirty=h||this.min!==((S=this.old)==null?void 0:S.min)||this.max!==((b=this.old)==null?void 0:b.max))):c&&c.cleanStacks(),M&&delete this.allExtremes,l(this,"afterSetScale")}setExtremes(x,c,M=!0,G,h){this.series.forEach(S=>{delete S.kdTree}),l(this,"setExtremes",h=u(h,{min:x,max:c}),S=>{this.userMin=S.min,this.userMax=S.max,this.eventArgs=S,M&&this.chart.redraw(G)})}setAxisSize(){let x=this.chart,c=this.options,M=c.offsets||[0,0,0,0],G=this.horiz,h=this.width=Math.round(f(r(c.width,x.plotWidth-M[3]+M[1]),x.plotWidth)),S=this.height=Math.round(f(r(c.height,x.plotHeight-M[0]+M[2]),x.plotHeight)),b=this.top=Math.round(f(r(c.top,x.plotTop+M[0]),x.plotHeight,x.plotTop)),E=this.left=Math.round(f(r(c.left,x.plotLeft+M[3]),x.plotWidth,x.plotLeft));this.bottom=x.chartHeight-S-b,this.right=x.chartWidth-h-E,this.len=Math.max(G?h:S,0),this.pos=G?E:b}getExtremes(){let x=this.logarithmic;return{min:x?v(x.lin2log(this.min)):this.min,max:x?v(x.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(x){let c=this.logarithmic,M=c?c.lin2log(this.min):this.min,G=c?c.lin2log(this.max):this.max;return x===null||x===-1/0?x=M:x===1/0?x=G:M>x?x=M:G<x&&(x=G),this.translate(x,0,1,0,1)}autoLabelAlign(x){let c=(r(x,0)-90*this.side+720)%360,M={align:"center"};return l(this,"autoLabelAlign",M,function(G){c>15&&c<165?G.align="right":c>195&&c<345&&(G.align="left")}),M.align}tickSize(x){let c=this.options,M=r(c[x==="tick"?"tickWidth":"minorTickWidth"],x==="tick"&&this.isXAxis&&!this.categories?1:0),G=c[x==="tick"?"tickLength":"minorTickLength"],h;M&&G&&(c[x+"Position"]==="inside"&&(G=-G),h=[G,M]);let S={tickSize:h};return l(this,"afterTickSize",S),S.tickSize}labelMetrics(){let x=this.chart.renderer,c=this.ticks,M=c[Object.keys(c)[0]]||{};return this.chart.renderer.fontMetrics(M.label||M.movedLabel||x.box)}unsquish(){let x=this.options.labels,c=x.padding||0,M=this.horiz,G=this.tickInterval,h=this.len/(((this.categories?1:0)+this.max-this.min)/G),S=x.rotation,b=v(.8*this.labelMetrics().h),E=Math.max(this.max-this.min,0),I=function(at){let lt=(at+2*c)/(h||1);return(lt=lt>1?Math.ceil(lt):1)*G>E&&at!==1/0&&h!==1/0&&E&&(lt=Math.ceil(E/G)),v(lt*G)},N=G,U,Z=Number.MAX_VALUE,_;if(M){if(!x.staggerLines&&(t(S)?_=[S]:h<x.autoRotationLimit&&(_=x.autoRotation)),_){let at,lt;for(let Y of _)(Y===S||Y&&Y>=-90&&Y<=90)&&(lt=(at=I(Math.abs(b/Math.sin(R*Y))))+Math.abs(Y/360))<Z&&(Z=lt,U=Y,N=at)}}else N=I(.75*b);return this.autoRotation=_,this.labelRotation=r(U,t(S)?S:0),x.step?G:N}getSlotWidth(x){let c=this.chart,M=this.horiz,G=this.options.labels,h=Math.max(this.tickPositions.length-(this.categories?0:1),1),S=c.margin[3];if(x&&t(x.slotWidth))return x.slotWidth;if(M&&G.step<2)return G.rotation?0:(this.staggerLines||1)*this.len/h;if(!M){let b=G.style.width;if(b!==void 0)return parseInt(String(b),10);if(S)return S-c.spacing[3]}return .33*c.chartWidth}renderUnsquish(){let x=this.chart,c=x.renderer,M=this.tickPositions,G=this.ticks,h=this.options.labels,S=h.style,b=this.horiz,E=this.getSlotWidth(),I=Math.max(1,Math.round(E-(b?2*(h.padding||0):h.distance||0))),N={},U=this.labelMetrics(),Z=S.textOverflow,_,at,lt=0,Y,W;if(s(h.rotation)||(N.rotation=h.rotation||0),M.forEach(function(q){let K=G[q];K.movedLabel&&K.replaceMovedLabel(),K&&K.label&&K.label.textPxLength>lt&&(lt=K.label.textPxLength)}),this.maxLabelLength=lt,this.autoRotation)lt>I&<>U.h?N.rotation=this.labelRotation:this.labelRotation=0;else if(E&&(_=I,!Z))for(at="clip",W=M.length;!b&&W--;)(Y=G[M[W]].label)&&(Y.styles.textOverflow==="ellipsis"?Y.css({textOverflow:"clip"}):Y.textPxLength>E&&Y.css({width:E+"px"}),Y.getBBox().height>this.len/M.length-(U.h-U.f)&&(Y.specificTextOverflow="ellipsis"));N.rotation&&(_=lt>.5*x.chartHeight?.33*x.chartHeight:lt,Z||(at="ellipsis")),this.labelAlign=h.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(N.align=this.labelAlign),M.forEach(function(q){let K=G[q],et=K&&K.label,rt=S.width,ot={};et&&(et.attr(N),K.shortenLabel?K.shortenLabel():_&&!rt&&S.whiteSpace!=="nowrap"&&(_<et.textPxLength||et.element.tagName==="SPAN")?(ot.width=_+"px",Z||(ot.textOverflow=et.specificTextOverflow||at),et.css(ot)):!et.styles.width||ot.width||rt||et.css({width:null}),delete et.specificTextOverflow,K.rotation=N.rotation)},this),this.tickRotCorr=c.rotCorr(U.b,this.labelRotation||0,this.side!==0)}hasData(){return this.series.some(function(x){return x.hasData()})||this.options.showEmpty&&p(this.min)&&p(this.max)}addTitle(x){let c,M=this.chart.renderer,G=this.horiz,h=this.opposite,S=this.options.title,b=this.chart.styledMode;this.axisTitle||((c=S.textAlign)||(c=(G?{low:"left",middle:"center",high:"right"}:{low:h?"right":"left",middle:"center",high:h?"left":"right"})[S.align]),this.axisTitle=M.text(S.text||"",0,0,S.useHTML).attr({zIndex:7,rotation:S.rotation||0,align:c}).addClass("highcharts-axis-title"),b||this.axisTitle.css(n(S.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),b||S.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[x?"show":"hide"](x)}generateTick(x){let c=this.ticks;c[x]?c[x].addLabel():c[x]=new Q(this,x)}createGroups(){let{axisParent:x,chart:c,coll:M,options:G}=this,h=c.renderer,S=(b,E,I)=>h.g(b).attr({zIndex:I}).addClass(`highcharts-${M.toLowerCase()}${E} `+(this.isRadial?`highcharts-radial-axis${E} `:"")+(G.className||"")).add(x);this.axisGroup||(this.gridGroup=S("grid","-grid",G.gridZIndex),this.axisGroup=S("axis","",G.zIndex),this.labelGroup=S("axis-labels","-labels",G.labels.zIndex))}getOffset(){let x=this,{chart:c,horiz:M,options:G,side:h,ticks:S,tickPositions:b,coll:E}=x,I=c.inverted&&!x.isZAxis?[1,0,3,2][h]:h,N=x.hasData(),U=G.title,Z=G.labels,_=t(G.crossing),at=c.axisOffset,lt=c.clipOffset,Y=[-1,1,1,-1][h],W,q=0,K,et=0,rt=0,ot,ht;if(x.showAxis=W=N||G.showEmpty,x.staggerLines=x.horiz&&Z.staggerLines||void 0,x.createGroups(),N||x.isLinked?(b.forEach(function(dt){x.generateTick(dt)}),x.renderUnsquish(),x.reserveSpaceDefault=h===0||h===2||{1:"left",3:"right"}[h]===x.labelAlign,r(Z.reserveSpace,!_&&null,x.labelAlign==="center"||null,x.reserveSpaceDefault)&&b.forEach(function(dt){rt=Math.max(S[dt].getLabelSize(),rt)}),x.staggerLines&&(rt*=x.staggerLines),x.labelOffset=rt*(x.opposite?-1:1)):a(S,function(dt,ct){dt.destroy(),delete S[ct]}),U!=null&&U.text&&U.enabled!==!1&&(x.addTitle(W),W&&!_&&U.reserveSpace!==!1&&(x.titleOffset=q=x.axisTitle.getBBox()[M?"height":"width"],et=p(K=U.offset)?0:r(U.margin,M?5:10))),x.renderLine(),x.offset=Y*r(G.offset,at[h]?at[h]+(G.margin||0):0),x.tickRotCorr=x.tickRotCorr||{x:0,y:0},ht=h===0?-x.labelMetrics().h:h===2?x.tickRotCorr.y:0,ot=Math.abs(rt)+et,rt&&(ot-=ht,ot+=Y*(M?r(Z.y,x.tickRotCorr.y+Y*Z.distance):r(Z.x,Y*Z.distance))),x.axisTitleMargin=r(K,ot),x.getMaxLabelDimensions&&(x.maxLabelDimensions=x.getMaxLabelDimensions(S,b)),E!=="colorAxis"&<){let dt=this.tickSize("tick");at[h]=Math.max(at[h],(x.axisTitleMargin||0)+q+Y*x.offset,ot,b&&b.length&&dt?dt[0]+Y*x.offset:0);let ct=!x.axisLine||G.offset?0:x.axisLine.strokeWidth()/2;lt[I]=Math.max(lt[I],ct)}l(this,"afterGetOffset")}getLinePath(x){let c=this.chart,M=this.opposite,G=this.offset,h=this.horiz,S=this.left+(M?this.width:0)+G,b=c.chartHeight-this.bottom-(M?this.height:0)+G;return M&&(x*=-1),c.renderer.crispLine([["M",h?this.left:S,h?b:this.top],["L",h?c.chartWidth-this.right:S,h?b:c.chartHeight-this.bottom]],x)}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(x){let c=this.horiz,M=this.left,G=this.top,h=this.len,S=this.options.title,b=c?M:G,E=this.opposite,I=this.offset,N=S.x,U=S.y,Z=this.chart.renderer.fontMetrics(x),_=x?Math.max(x.getBBox(!1,0).height-Z.h-1,0):0,at={low:b+(c?0:h),middle:b+h/2,high:b+(c?h:0)}[S.align],lt=(c?G+this.height:M)+(c?1:-1)*(E?-1:1)*(this.axisTitleMargin||0)+[-_,_,Z.f,-_][this.side],Y={x:c?at+N:lt+(E?this.width:0)+I+N,y:c?lt+U-(E?this.height:0)+I:at+U};return l(this,"afterGetTitlePosition",{titlePosition:Y}),Y}renderMinorTick(x,c){let M=this.minorTicks;M[x]||(M[x]=new Q(this,x,"minor")),c&&M[x].isNew&&M[x].render(null,!0),M[x].render(null,!1,1)}renderTick(x,c,M){let G=this.isLinked,h=this.ticks;(!G||x>=this.min&&x<=this.max||this.grid&&this.grid.isColumn)&&(h[x]||(h[x]=new Q(this,x)),M&&h[x].isNew&&h[x].render(c,!0,-1),h[x].render(c))}render(){let x,c,M=this,G=M.chart,h=M.logarithmic,S=G.renderer,b=M.options,E=M.isLinked,I=M.tickPositions,N=M.axisTitle,U=M.ticks,Z=M.minorTicks,_=M.alternateBands,at=b.stackLabels,lt=b.alternateGridColor,Y=b.crossing,W=M.tickmarkOffset,q=M.axisLine,K=M.showAxis,et=F(S.globalAnimation);if(M.labelEdge.length=0,M.overlap=!1,[U,Z,_].forEach(function(rt){a(rt,function(ot){ot.isActive=!1})}),t(Y)){let rt=this.isXAxis?G.yAxis[0]:G.xAxis[0],ot=[1,-1,-1,1][this.side];if(rt){let ht=rt.toPixels(Y,!0);M.horiz&&(ht=rt.len-ht),M.offset=ot*ht}}if(M.hasData()||E){let rt=M.chart.hasRendered&&M.old&&t(M.old.min);M.minorTickInterval&&!M.categories&&M.getMinorTickPositions().forEach(function(ot){M.renderMinorTick(ot,rt)}),I.length&&(I.forEach(function(ot,ht){M.renderTick(ot,ht,rt)}),W&&(M.min===0||M.single)&&(U[-1]||(U[-1]=new Q(M,-1,null,!0)),U[-1].render(-1))),lt&&I.forEach(function(ot,ht){c=I[ht+1]!==void 0?I[ht+1]+W:M.max-W,ht%2==0&&ot<M.max&&c<=M.max+(G.polar?-W:W)&&(_[ot]||(_[ot]=new tt.PlotLineOrBand(M,{})),x=ot+W,_[ot].options={from:h?h.lin2log(x):x,to:h?h.lin2log(c):c,color:lt,className:"highcharts-alternate-grid"},_[ot].render(),_[ot].isActive=!0)}),M._addedPlotLB||(M._addedPlotLB=!0,(b.plotLines||[]).concat(b.plotBands||[]).forEach(function(ot){M.addPlotBandOrLine(ot)}))}[U,Z,_].forEach(function(rt){let ot=[],ht=et.duration;a(rt,function(dt,ct){dt.isActive||(dt.render(ct,!1,0),dt.isActive=!1,ot.push(ct))}),w(function(){let dt=ot.length;for(;dt--;)rt[ot[dt]]&&!rt[ot[dt]].isActive&&(rt[ot[dt]].destroy(),delete rt[ot[dt]])},rt!==_&&G.hasRendered&&ht?ht:0)}),q&&(q[q.isPlaced?"animate":"attr"]({d:this.getLinePath(q.strokeWidth())}),q.isPlaced=!0,q[K?"show":"hide"](K)),N&&K&&(N[N.isNew?"attr":"animate"](M.getTitlePosition(N)),N.isNew=!1),at&&at.enabled&&M.stacking&&M.stacking.renderStackTotals(),M.old={len:M.len,max:M.max,min:M.min,transA:M.transA,userMax:M.userMax,userMin:M.userMin},M.isDirty=!1,l(this,"afterRender")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(x){x.render()})),this.series.forEach(function(x){x.isDirty=!0})}getKeepProps(){return this.keepProps||D.keepProps}destroy(x){let c=this,M=c.plotLinesAndBands,G=this.eventOptions;if(l(this,"destroy",{keepEvents:x}),x||P(c),[c.ticks,c.minorTicks,c.alternateBands].forEach(function(h){y(h)}),M){let h=M.length;for(;h--;)M[h].destroy()}for(let h in["axisLine","axisTitle","axisGroup","gridGroup","labelGroup","cross","scrollbar"].forEach(function(S){c[S]&&(c[S]=c[S].destroy())}),c.plotLinesAndBandsGroups)c.plotLinesAndBandsGroups[h]=c.plotLinesAndBandsGroups[h].destroy();a(c,function(h,S){c.getKeepProps().indexOf(S)===-1&&delete c[S]}),this.eventOptions=G}drawCrosshair(x,c){let M=this.crosshair,G=r(M&&M.snap,!0),h=this.chart,S,b,E,I=this.cross,N;if(l(this,"drawCrosshair",{e:x,point:c}),x||(x=this.cross&&this.cross.e),M&&(p(c)||!G)!==!1){if(G?p(c)&&(b=r(this.coll!=="colorAxis"?c.crosshairPos:null,this.isXAxis?c.plotX:this.len-c.plotY)):b=x&&(this.horiz?x.chartX-this.pos:this.len-x.chartY+this.pos),p(b)&&(N={value:c&&(this.isXAxis?c.x:r(c.stackY,c.y)),translatedValue:b},h.polar&&u(N,{isCrosshair:!0,chartX:x&&x.chartX,chartY:x&&x.chartY,point:c}),S=this.getPlotLinePath(N)||null),!p(S)){this.hideCrosshair();return}E=this.categories&&!this.isRadial,I||(this.cross=I=h.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(E?"category ":"thin ")+(M.className||"")).attr({zIndex:r(M.zIndex,2)}).add(),!h.styledMode&&(I.attr({stroke:M.color||(E?st.parse("#ccd3ff").setOpacity(.25).get():"#cccccc"),"stroke-width":r(M.width,1)}).css({"pointer-events":"none"}),M.dashStyle&&I.attr({dashstyle:M.dashStyle}))),I.show().attr({d:S}),E&&!M.width&&I.attr({"stroke-width":this.transA}),this.cross.e=x}else this.hideCrosshair();l(this,"afterDrawCrosshair",{e:x,point:c})}hideCrosshair(){this.cross&&this.cross.hide(),l(this,"afterHideCrosshair")}update(x,c){let M=this.chart;x=n(this.userOptions,x),this.destroy(!0),this.init(M,x),M.isDirtyBox=!0,r(c,!0)&&M.redraw()}remove(x){let c=this.chart,M=this.coll,G=this.series,h=G.length;for(;h--;)G[h]&&G[h].remove(!1);O(c.axes,this),O(c[M]||[],this),c.orderItems(M),this.destroy(),c.isDirtyBox=!0,r(x,!0)&&c.redraw()}setTitle(x,c){this.update({title:x},c)}setCategories(x,c){this.update({categories:x},c)}}return D.keepProps=["coll","extKey","hcEvents","len","names","series","userMax","userMin"],D}),gt(z,"Core/Axis/DateTimeAxis.js",[z["Core/Utilities.js"]],function(V){var J;let{addEvent:st,getMagnitude:nt,normalizeTickInterval:it,timeUnits:tt}=V;return function(Q){function X(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function F(){if(this.type!=="datetime"){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new $(this))}Q.compose=function(C){return C.keepProps.includes("dateTime")||(C.keepProps.push("dateTime"),C.prototype.getTimeTicks=X,st(C,"afterSetType",F)),C};class ${constructor(j){this.axis=j}normalizeTimeTickInterval(j,B){let R=B||[["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]],g=R[R.length-1],k=tt[g[0]],A=g[1],v;for(v=0;v<R.length&&(k=tt[(g=R[v])[0]],A=g[1],!R[v+1]||!(j<=(k*A[A.length-1]+tt[R[v+1][0]])/2));v++);k===tt.year&&j<5*k&&(A=[1,2,5]);let p=it(j/k,A,g[0]==="year"?Math.max(nt(j/k),1):1);return{unitRange:k,count:p,unitName:g[0]}}getXDateFormat(j,B){let{axis:R}=this,g=R.chart.time;return R.closestPointRange?g.getDateFormat(R.closestPointRange,j,R.options.startOfWeek,B)||g.resolveDTLFormat(B.year).main:g.resolveDTLFormat(B.day).main}}Q.Additions=$}(J||(J={})),J}),gt(z,"Core/Axis/LogarithmicAxis.js",[z["Core/Utilities.js"]],function(V){var J;let{addEvent:st,normalizeTickInterval:nt,pick:it}=V;return function(tt){function Q(){this.type!=="logarithmic"?this.logarithmic=void 0:this.logarithmic??(this.logarithmic=new F(this))}function X(){let $=this.logarithmic;$&&(this.lin2val=function(C){return $.lin2log(C)},this.val2lin=function(C){return $.log2lin(C)})}tt.compose=function($){return $.keepProps.includes("logarithmic")||($.keepProps.push("logarithmic"),st($,"afterSetType",Q),st($,"afterInit",X)),$};class F{constructor(C){this.axis=C}getLogTickPositions(C,j,B,R){let g=this.axis,k=g.len,A=g.options,v=[];if(R||(this.minorAutoInterval=void 0),C>=.5)C=Math.round(C),v=g.getLinearTickPositions(C,j,B);else if(C>=.08){let p,y,O,L,u,l,m,o=Math.floor(j);for(p=C>.3?[1,2,4]:C>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],y=o;y<B+1&&!m;y++)for(O=0,L=p.length;O<L&&!m;O++)(u=this.log2lin(this.lin2log(y)*p[O]))>j&&(!R||l<=B)&&l!==void 0&&v.push(l),l>B&&(m=!0),l=u}else{let p=this.lin2log(j),y=this.lin2log(B),O=R?g.getMinorTickInterval():A.tickInterval,L=A.tickPixelInterval/(R?5:1),u=R?k/g.tickPositions.length:k;C=nt(C=it(O==="auto"?null:O,this.minorAutoInterval,(y-p)*L/(u||1))),v=g.getLinearTickPositions(C,p,y).map(this.log2lin),R||(this.minorAutoInterval=C/5)}return R||(g.tickInterval=C),v}lin2log(C){return Math.pow(10,C)}log2lin(C){return Math.log(C)/Math.LN10}}tt.Additions=F}(J||(J={})),J}),gt(z,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[z["Core/Utilities.js"]],function(V){var J;let{erase:st,extend:nt,isNumber:it}=V;return function(tt){let Q;function X(g){return this.addPlotBandOrLine(g,"plotBands")}function F(g,k){let A=this.userOptions,v=new Q(this,g);if(this.visible&&(v=v.render()),v){if(this._addedPlotLB||(this._addedPlotLB=!0,(A.plotLines||[]).concat(A.plotBands||[]).forEach(p=>{this.addPlotBandOrLine(p)})),k){let p=A[k]||[];p.push(g),A[k]=p}this.plotLinesAndBands.push(v)}return v}function $(g){return this.addPlotBandOrLine(g,"plotLines")}function C(g,k,A){A=A||this.options;let v=this.getPlotLinePath({value:k,force:!0,acrossPanes:A.acrossPanes}),p=[],y=this.horiz,O=!it(this.min)||!it(this.max)||g<this.min&&k<this.min||g>this.max&&k>this.max,L=this.getPlotLinePath({value:g,force:!0,acrossPanes:A.acrossPanes}),u,l=1,m;if(L&&v)for(O&&(m=L.toString()===v.toString(),l=0),u=0;u<L.length;u+=2){let o=L[u],e=L[u+1],t=v[u],s=v[u+1];(o[0]==="M"||o[0]==="L")&&(e[0]==="M"||e[0]==="L")&&(t[0]==="M"||t[0]==="L")&&(s[0]==="M"||s[0]==="L")&&(y&&t[1]===o[1]?(t[1]+=l,s[1]+=l):y||t[2]!==o[2]||(t[2]+=l,s[2]+=l),p.push(["M",o[1],o[2]],["L",e[1],e[2]],["L",s[1],s[2]],["L",t[1],t[2]],["Z"])),p.isFlat=m}return p}function j(g){this.removePlotBandOrLine(g)}function B(g){let k=this.plotLinesAndBands,A=this.options,v=this.userOptions;if(k){let p=k.length;for(;p--;)k[p].id===g&&k[p].destroy();[A.plotLines||[],v.plotLines||[],A.plotBands||[],v.plotBands||[]].forEach(function(y){for(p=y.length;p--;)(y[p]||{}).id===g&&st(y,y[p])})}}function R(g){this.removePlotBandOrLine(g)}tt.compose=function(g,k){let A=k.prototype;return A.addPlotBand||(Q=g,nt(A,{addPlotBand:X,addPlotLine:$,addPlotBandOrLine:F,getPlotBandPath:C,removePlotBand:j,removePlotLine:R,removePlotBandOrLine:B})),k}}(J||(J={})),J}),gt(z,"Core/Axis/PlotLineOrBand/PlotLineOrBand.js",[z["Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js"],z["Core/Utilities.js"]],function(V,J){let{addEvent:st,arrayMax:nt,arrayMin:it,defined:tt,destroyObjectProperties:Q,erase:X,fireEvent:F,merge:$,objectEach:C,pick:j}=J;class B{static compose(g,k){return st(g,"afterInit",function(){this.labelCollectors.push(()=>{var v;let A=[];for(let p of this.axes)for(let{label:y,options:O}of p.plotLinesAndBands)y&&!((v=O==null?void 0:O.label)!=null&&v.allowOverlap)&&A.push(y);return A})}),V.compose(B,k)}constructor(g,k){this.axis=g,this.options=k,this.id=k.id}render(){F(this,"render");let{axis:g,options:k}=this,{horiz:A,logarithmic:v}=g,{color:p,events:y,zIndex:O=0}=k,L={},u=g.chart.renderer,l=k.to,m=k.from,o=k.value,e=k.borderWidth,t=k.label,{label:s,svgElem:n}=this,i=[],a,r=tt(m)&&tt(l),f=tt(o),P=!n,d={class:"highcharts-plot-"+(r?"band ":"line ")+(k.className||"")},w=r?"bands":"lines";if(!g.chart.styledMode&&(f?(d.stroke=p||"#999999",d["stroke-width"]=j(k.width,1),k.dashStyle&&(d.dashstyle=k.dashStyle)):r&&(d.fill=p||"#e6e9ff",e&&(d.stroke=k.borderColor,d["stroke-width"]=e))),L.zIndex=O,w+="-"+O,(a=g.plotLinesAndBandsGroups[w])||(g.plotLinesAndBandsGroups[w]=a=u.g("plot-"+w).attr(L).add()),n||(this.svgElem=n=u.path().attr(d).add(a)),tt(o))i=g.getPlotLinePath({value:(v==null?void 0:v.log2lin(o))??o,lineWidth:n.strokeWidth(),acrossPanes:k.acrossPanes});else{if(!(tt(m)&&tt(l)))return;i=g.getPlotBandPath((v==null?void 0:v.log2lin(m))??m,(v==null?void 0:v.log2lin(l))??l,k)}return!this.eventsAdded&&y&&(C(y,(T,D)=>{n==null||n.on(D,H=>{y[D].apply(this,[H])})}),this.eventsAdded=!0),(P||!n.d)&&(i!=null&&i.length)?n.attr({d:i}):n&&(i?(n.show(),n.animate({d:i})):n.d&&(n.hide(),s&&(this.label=s=s.destroy()))),t&&(tt(t.text)||tt(t.formatter))&&(i!=null&&i.length)&&g.width>0&&g.height>0&&!i.isFlat?(t=$({align:A&&r?"center":void 0,x:A?!r&&4:10,verticalAlign:!A&&r?"middle":void 0,y:A?r?16:10:r?6:-4,rotation:A&&!r?90:0,...r?{inside:!0}:{}},t),this.renderLabel(t,i,r,O)):s&&s.hide(),this}renderLabel(g,k,A,v){var t;let p=this.axis,y=p.chart.renderer,O=g.inside,L=this.label;L||(this.label=L=y.text(this.getLabelText(g),0,0,g.useHTML).attr({align:g.textAlign||g.align,rotation:g.rotation,class:"highcharts-plot-"+(A?"band":"line")+"-label "+(g.className||""),zIndex:v}),p.chart.styledMode||L.css($({fontSize:"0.8em",textOverflow:A&&!O?"":"ellipsis"},g.style)),L.add());let u=k.xBounds||[k[0][1],k[1][1],A?k[2][1]:k[0][1]],l=k.yBounds||[k[0][2],k[1][2],A?k[2][2]:k[0][2]],m=it(u),o=it(l),e=nt(u)-m;L.align(g,!1,{x:m,y:o,width:e,height:nt(l)-o}),(!L.alignValue||L.alignValue==="left"||tt(O))&&L.css({width:(((t=g.style)==null?void 0:t.width)||(A&&O?e:L.rotation===90?p.height-(L.alignAttr.y-p.top):(g.clip?p.width:p.chart.chartWidth)-(L.alignAttr.x-p.left)))+"px"}),L.show(!0)}getLabelText(g){return tt(g.formatter)?g.formatter.call(this):g.text}destroy(){X(this.axis.plotLinesAndBands,this),delete this.axis,Q(this)}}return B}),gt(z,"Core/Tooltip.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Templating.js"],z["Core/Globals.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt){var Q;let{animObject:X}=V,{format:F}=J,{composed:$,doc:C,isSafari:j}=st,{distribute:B}=nt,{addEvent:R,clamp:g,css:k,discardElement:A,extend:v,fireEvent:p,isArray:y,isNumber:O,isString:L,merge:u,pick:l,pushUnique:m,splat:o,syncTimeout:e}=tt;class t{constructor(n,i,a){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=n,this.init(n,i),this.pointer=a}bodyFormatter(n){return n.map(function(i){let a=i.series.tooltipOptions;return(a[(i.point.formatPrefix||"point")+"Formatter"]||i.point.tooltipFormatter).call(i.point,a[(i.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(i){let a=i&&i.tt;a&&(!a.isActive||n?i.tt=a.destroy():a.isActive=!1)})}defaultFormatter(n){let i,a=this.points||o(this);return(i=(i=[n.tooltipFooterHeaderFormatter(a[0])]).concat(n.bodyFormatter(a))).push(n.tooltipFooterHeaderFormatter(a[0],!0)),i}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(),A(this.container)),tt.clearTimeout(this.hideTimer)}getAnchor(n,i){let a,{chart:r,pointer:f}=this,P=r.inverted,d=r.plotTop,w=r.plotLeft;if((n=o(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&i)i.chartX===void 0&&(i=f.normalize(i)),a=[i.chartX-w,i.chartY-d];else if(n[0].tooltipPos)a=n[0].tooltipPos;else{let T=0,D=0;n.forEach(function(H){let x=H.pos(!0);x&&(T+=x[0],D+=x[1])}),T/=n.length,D/=n.length,this.shared&&n.length>1&&i&&(P?T=i.chartX:D=i.chartY),a=[T-w,D-d]}return a.map(Math.round)}getClassName(n,i,a){let r=this.options,f=n.series,P=f.options;return[r.className,"highcharts-label",a&&"highcharts-tooltip-header",i?"highcharts-tooltip-box":"highcharts-tooltip",!a&&"highcharts-color-"+l(n.colorIndex,f.colorIndex),P&&P.className].filter(L).join(" ")}getLabel({anchorX:n,anchorY:i}={anchorX:0,anchorY:0}){let a=this,r=this.chart.styledMode,f=this.options,P=this.split&&this.allowShared,d=this.container,w=this.chart.renderer;if(this.label){let T=!this.label.hasClass("highcharts-label");(!P&&T||P&&!T)&&this.destroy()}if(!this.label){if(this.outside){let T=this.chart.options.chart.style,D=it.getRendererType();this.container=d=st.doc.createElement("div"),d.className="highcharts-tooltip-container",k(d,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(T&&T.zIndex||0)+3)}),this.renderer=w=new D(d,0,0,T,void 0,void 0,w.styledMode)}if(P?this.label=w.g("tooltip"):(this.label=w.label("",n,i,f.shape,void 0,void 0,f.useHTML,void 0,"tooltip").attr({padding:f.padding,r:f.borderRadius}),r||this.label.attr({fill:f.backgroundColor,"stroke-width":f.borderWidth||0}).css(f.style).css({pointerEvents:f.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),a.outside){let T=this.label;[T.xSetter,T.ySetter].forEach((D,H)=>{T[H?"ySetter":"xSetter"]=x=>{D.call(T,a.distance),T[H?"y":"x"]=x,d&&(d.style[H?"top":"left"]=`${x}px`)}})}this.label.attr({zIndex:8}).shadow(f.shadow).add()}return d&&!d.parentElement&&st.doc.body.appendChild(d),this.label}getPlayingField(){let{body:n,documentElement:i}=C,{chart:a,distance:r,outside:f}=this;return{width:f?Math.max(n.scrollWidth,i.scrollWidth,n.offsetWidth,i.offsetWidth,i.clientWidth)-2*r:a.chartWidth,height:f?Math.max(n.scrollHeight,i.scrollHeight,n.offsetHeight,i.offsetHeight,i.clientHeight):a.chartHeight}}getPosition(n,i,a){var et,rt;let{distance:r,chart:f,outside:P,pointer:d}=this,{inverted:w,plotLeft:T,plotTop:D,polar:H}=f,{plotX:x=0,plotY:c=0}=a,M={},G=w&&a.h||0,{height:h,width:S}=this.getPlayingField(),b=d.getChartPosition(),E=ot=>ot*b.scaleX,I=ot=>ot*b.scaleY,N=ot=>{let ht=ot==="x";return[ot,ht?S:h,ht?n:i].concat(P?[ht?E(n):I(i),ht?b.left-r+E(x+T):b.top-r+I(c+D),0,ht?S:h]:[ht?n:i,ht?x+T:c+D,ht?T:D,ht?T+f.plotWidth:D+f.plotHeight])},U=N("y"),Z=N("x"),_,at=!!a.negative;!H&&((rt=(et=f.hoverSeries)==null?void 0:et.yAxis)!=null&&rt.reversed)&&(at=!at);let lt=!this.followPointer&&l(a.ttBelow,!H&&!w===at),Y=function(ot,ht,dt,ct,pt,ut,xt){let yt=P?ot==="y"?I(r):E(r):r,mt=(dt-ct)/2,ft=ct<pt-r,vt=pt+r+ct<ht,bt=pt-yt-dt+mt,St=pt+yt-mt;if(lt&&vt)M[ot]=St;else if(!lt&&ft)M[ot]=bt;else if(ft)M[ot]=Math.min(xt-ct,bt-G<0?bt:bt-G);else{if(!vt)return!1;M[ot]=Math.max(ut,St+G+dt>ht?St:St+G)}},W=function(ot,ht,dt,ct,pt){if(pt<r||pt>ht-r)return!1;pt<dt/2?M[ot]=1:pt>ht-ct/2?M[ot]=ht-ct-2:M[ot]=pt-dt/2},q=function(ot){[U,Z]=[Z,U],_=ot},K=()=>{Y.apply(0,U)!==!1?W.apply(0,Z)!==!1||_||(q(!0),K()):_?M.x=M.y=0:(q(!0),K())};return(w&&!H||this.len>1)&&q(),K(),M}hide(n){let i=this;tt.clearTimeout(this.hideTimer),n=l(n,this.options.hideDelay),this.isHidden||(this.hideTimer=e(function(){let a=i.getLabel();i.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{a.hide(),i.container&&i.container.remove()}}),i.isHidden=!0},n))}init(n,i){this.chart=n,this.options=i,this.crosshairs=[],this.isHidden=!0,this.split=i.split&&!n.inverted&&!n.polar,this.shared=i.shared||this.split,this.outside=l(i.outside,!!(n.scrollablePixelsX||n.scrollablePixelsY))}shouldStickOnContact(n){return!!(!this.followPointer&&this.options.stickOnContact&&(!n||this.pointer.inClass(n.target,"highcharts-tooltip")))}move(n,i,a,r){let f=this,P=X(!f.isHidden&&f.options.animation),d=f.followPointer||(f.len||0)>1,w={x:n,y:i};d||(w.anchorX=a,w.anchorY=r),P.step=()=>f.drawTracker(),f.getLabel().animate(w,P)}refresh(n,i){let{chart:a,options:r,pointer:f,shared:P}=this,d=o(n),w=d[0],T=[],D=r.format,H=r.formatter||this.defaultFormatter,x=a.styledMode,c={},M=this.allowShared;if(!r.enabled||!w.series)return;tt.clearTimeout(this.hideTimer),this.allowShared=!(!y(n)&&n.series&&n.series.noSharedTooltip),M=M&&!this.allowShared,this.followPointer=!this.split&&w.series.tooltipOptions.followPointer;let G=this.getAnchor(n,i),h=G[0],S=G[1];P&&this.allowShared?(f.applyInactiveState(d),d.forEach(function(I){I.setState("hover"),T.push(I.getLabelConfig())}),(c=w.getLabelConfig()).points=T):c=w.getLabelConfig(),this.len=T.length;let b=L(D)?F(D,c,a):H.call(c,this),E=w.series;if(this.distance=l(E.tooltipOptions.distance,16),b===!1)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(b,d);else{let I=h,N=S;if(i&&f.isDirectTouch&&(I=i.chartX-a.plotLeft,N=i.chartY-a.plotTop),a.polar||E.options.clip===!1||d.some(U=>f.isDirectTouch||U.series.shouldShowTooltip(I,N))){let U=this.getLabel(M&&this.tt||{});(!r.style.width||x)&&U.css({width:(this.outside?this.getPlayingField():a.spacingBox).width+"px"}),U.attr({class:this.getClassName(w),text:b&&b.join?b.join(""):b}),this.outside&&U.attr({x:g(U.x||0,0,this.getPlayingField().width-(U.width||0))}),x||U.attr({stroke:r.borderColor||w.color||E.color||"#666666"}),this.updatePosition({plotX:h,plotY:S,negative:w.negative,ttBelow:w.ttBelow,h:G[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}p(this,"refresh")}renderSplit(n,i){var ht;let a=this,{chart:r,chart:{chartWidth:f,chartHeight:P,plotHeight:d,plotLeft:w,plotTop:T,scrollablePixelsY:D=0,scrollablePixelsX:H,styledMode:x},distance:c,options:M,options:{positioner:G},pointer:h}=a,{scrollLeft:S=0,scrollTop:b=0}=((ht=r.scrollablePlotArea)==null?void 0:ht.scrollingContainer)||{},E=a.outside&&typeof H!="number"?C.documentElement.getBoundingClientRect():{left:S,right:S+f,top:b,bottom:b+P},I=a.getLabel(),N=this.renderer||r.renderer,U=!!(r.xAxis[0]&&r.xAxis[0].opposite),{left:Z,top:_}=h.getChartPosition(),at=T+b,lt=0,Y=d-D;function W(dt,ct,pt,ut,xt=!0){let yt,mt;return pt?(yt=U?0:Y,mt=g(dt-ut/2,E.left,E.right-ut-(a.outside?Z:0))):(yt=ct-at,mt=g(mt=xt?dt-ut-c:dt+c,xt?mt:E.left,E.right)),{x:mt,y:yt}}L(n)&&(n=[!1,n]);let q=n.slice(0,i.length+1).reduce(function(dt,ct,pt){if(ct!==!1&&ct!==""){let ut=i[pt-1]||{isHeader:!0,plotX:i[0].plotX,plotY:d,series:{}},xt=ut.isHeader,yt=xt?a:ut.series,mt=yt.tt=function(Mt,kt,Tt){let At=Mt,{isHeader:Ot,series:jt}=kt;if(!At){let Lt={padding:M.padding,r:M.borderRadius};x||(Lt.fill=M.backgroundColor,Lt["stroke-width"]=M.borderWidth??1),At=N.label("",0,0,M[Ot?"headerShape":"shape"],void 0,void 0,M.useHTML).addClass(a.getClassName(kt,!0,Ot)).attr(Lt).add(I)}return At.isActive=!0,At.attr({text:Tt}),x||At.css(M.style).attr({stroke:M.borderColor||kt.color||jt.color||"#333333"}),At}(yt.tt,ut,ct.toString()),ft=mt.getBBox(),vt=ft.width+mt.strokeWidth();xt&&(lt=ft.height,Y+=lt,U&&(at-=lt));let{anchorX:bt,anchorY:St}=function(Mt){let kt,Tt,{isHeader:At,plotX:Ot=0,plotY:jt=0,series:Lt}=Mt;if(At)kt=Math.max(w+Ot,w),Tt=T+d/2;else{let{xAxis:It,yAxis:Pt}=Lt;kt=It.pos+g(Ot,-c,It.len+c),Lt.shouldShowTooltip(0,Pt.pos-T+jt,{ignoreX:!0})&&(Tt=Pt.pos+jt)}return{anchorX:kt=g(kt,E.left-c,E.right+c),anchorY:Tt}}(ut);if(typeof St=="number"){let Mt=ft.height+1,kt=G?G.call(a,vt,Mt,ut):W(bt,St,xt,vt);dt.push({align:G?0:void 0,anchorX:bt,anchorY:St,boxWidth:vt,point:ut,rank:l(kt.rank,xt?1:0),size:Mt,target:kt.y,tt:mt,x:kt.x})}else mt.isActive=!1}return dt},[]);!G&&q.some(dt=>{let{outside:ct}=a,pt=(ct?Z:0)+dt.anchorX;return pt<E.left&&pt+dt.boxWidth<E.right||pt<Z-E.left+dt.boxWidth&&E.right-pt>pt})&&(q=q.map(dt=>{let{x:ct,y:pt}=W(dt.anchorX,dt.anchorY,dt.point.isHeader,dt.boxWidth,!1);return v(dt,{target:pt,x:ct})})),a.cleanSplit(),B(q,Y);let K={left:Z,right:Z};q.forEach(function(dt){let{x:ct,boxWidth:pt,isHeader:ut}=dt;!ut&&(a.outside&&Z+ct<K.left&&(K.left=Z+ct),!ut&&a.outside&&K.left+pt>K.right&&(K.right=Z+ct))}),q.forEach(function(dt){let{x:ct,anchorX:pt,anchorY:ut,pos:xt,point:{isHeader:yt}}=dt,mt={visibility:xt===void 0?"hidden":"inherit",x:ct,y:(xt||0)+at,anchorX:pt,anchorY:ut};if(a.outside&&ct<pt){let ft=Z-K.left;ft>0&&(yt||(mt.x=ct+ft,mt.anchorX=pt+ft),yt&&(mt.x=(K.right-K.left)/2,mt.anchorX=pt+ft))}dt.tt.attr(mt)});let{container:et,outside:rt,renderer:ot}=a;if(rt&&et&&ot){let{width:dt,height:ct,x:pt,y:ut}=I.getBBox();ot.setSize(dt+pt,ct+ut,!1),et.style.left=K.left+"px",et.style.top=_+"px"}j&&I.attr({opacity:I.opacity===1?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let n=this.chart,i=this.label,a=this.shared?n.hoverPoints:n.hoverPoint;if(!i||!a)return;let r={x:0,y:0,width:0,height:0},f=this.getAnchor(a),P=i.getBBox();f[0]+=n.plotLeft-(i.translateX||0),f[1]+=n.plotTop-(i.translateY||0),r.x=Math.min(0,f[0]),r.y=Math.min(0,f[1]),r.width=f[0]<0?Math.max(Math.abs(f[0]),P.width-f[0]):Math.max(Math.abs(f[0]),P.width),r.height=f[1]<0?Math.max(Math.abs(f[1]),P.height-Math.abs(f[1])):Math.max(Math.abs(f[1]),P.height),this.tracker?this.tracker.attr(r):(this.tracker=i.renderer.rect(r).addClass("highcharts-tracker").add(i),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.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(n,i){let a=n.series,r=a.tooltipOptions,f=a.xAxis,P=f&&f.dateTime,d={isFooter:i,labelConfig:n},w=r.xDateFormat,T=r[i?"footerFormat":"headerFormat"];return p(this,"headerFormatter",d,function(D){P&&!w&&O(n.key)&&(w=P.getXDateFormat(n.key,r.dateTimeLabelFormats)),P&&w&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(H){T=T.replace("{point."+H+"}","{point."+H+":"+w+"}")}),a.chart.styledMode&&(T=this.styledModeFormat(T)),D.text=F(T,{point:n,series:a},this.chart)}),d.text}update(n){this.destroy(),this.init(this.chart,u(!0,this.options,n))}updatePosition(n){let{chart:i,container:a,distance:r,options:f,pointer:P,renderer:d}=this,{height:w=0,width:T=0}=this.getLabel(),{left:D,top:H,scaleX:x,scaleY:c}=P.getChartPosition(),M=(f.positioner||this.getPosition).call(this,T,w,n),G=(n.plotX||0)+i.plotLeft,h=(n.plotY||0)+i.plotTop,S;d&&a&&(f.positioner&&(M.x+=D-r,M.y+=H-r),S=(f.borderWidth||0)+2*r+2,d.setSize(T+S,w+S,!1),(x!==1||c!==1)&&(k(a,{transform:`scale(${x}, ${c})`}),G*=x,h*=c),G+=D-M.x,h+=H-M.y),this.move(Math.round(M.x),Math.round(M.y||0),G,h)}}return(Q=t||(t={})).compose=function(s){m($,"Core.Tooltip")&&R(s,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new Q(n,n.options.tooltip,this))})},t}),gt(z,"Core/Series/Point.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Animation/AnimationUtilities.js"],z["Core/Defaults.js"],z["Core/Templating.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it){let{animObject:tt}=J,{defaultOptions:Q}=st,{format:X}=nt,{addEvent:F,crisp:$,erase:C,extend:j,fireEvent:B,getNestedProperty:R,isArray:g,isFunction:k,isNumber:A,isObject:v,merge:p,pick:y,syncTimeout:O,removeEvent:L,uniqueKey:u}=it;class l{animateBeforeDestroy(){let o=this,e={x:o.startXPos,opacity:0},t=o.getGraphicalProps();t.singular.forEach(function(s){o[s]=o[s].animate(s==="dataLabel"?{x:o[s].startXPos,y:o[s].startYPos,opacity:0}:e)}),t.plural.forEach(function(s){o[s].forEach(function(n){n.element&&n.animate(j({x:o.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(o,e){let t=this.series,s=t.options.pointValKey||t.pointValKey;return j(this,o=l.prototype.optionsToObject.call(this,o)),this.options=this.options?j(this.options,o):o,o.group&&delete this.group,o.dataLabels&&delete this.dataLabels,s&&(this.y=l.prototype.getNestedProperty.call(this,s)),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():A(o.x)&&t.options.relativeXValue&&(this.x=t.autoIncrement(o.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let o=this,e=o.series,t=e.chart,s=e.options.dataSorting,n=t.hoverPoints,i=tt(o.series.chart.renderer.globalAnimation),a=()=>{for(let r in(o.graphic||o.graphics||o.dataLabel||o.dataLabels)&&(L(o),o.destroyElements()),o)delete o[r]};o.legendItem&&t.legend.destroyItem(o),n&&(o.setState(),C(n,o),n.length||(t.hoverPoints=null)),o===t.hoverPoint&&o.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),O(a,i.duration)):a(),t.pointCount--}this.destroyed=!0}destroyElements(o){let e=this,t=e.getGraphicalProps(o);t.singular.forEach(function(s){e[s]=e[s].destroy()}),t.plural.forEach(function(s){e[s].forEach(function(n){n&&n.element&&n.destroy()}),delete e[s]})}firePointEvent(o,e,t){let s=this,n=this.series.options;s.manageEvent(o),o==="click"&&n.allowPointSelect&&(t=function(i){!s.destroyed&&s.select&&s.select(null,i.ctrlKey||i.metaKey||i.shiftKey)}),B(s,o,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(o){let e,t,s=this,n=[],i={singular:[],plural:[]};for((o=o||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),o.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),t=n.length;t--;)s[e=n[t]]&&i.singular.push(e);return["graphic","dataLabel"].forEach(function(a){let r=a+"s";o[a]&&s[r]&&i.plural.push(r)}),i}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(o){return o?o.indexOf("custom.")===0?R(o,this.options):this[o]:void 0}getZone(){let o=this.series,e=o.zones,t=o.zoneAxis||"y",s,n=0;for(s=e[0];this[t]>=s.value;)s=e[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(o,e,t){this.formatPrefix="point",this.visible=!0,this.series=o,this.applyOptions(e,t),this.id??(this.id=u()),this.resolveColor(),o.chart.pointCount++,B(this,"afterInit")}isValid(){return(A(this.x)||this.x instanceof Date)&&A(this.y)}optionsToObject(o){let e=this.series,t=e.options.keys,s=t||e.pointArrayMap||["y"],n=s.length,i={},a,r=0,f=0;if(A(o)||o===null)i[s[0]]=o;else if(g(o))for(!t&&o.length>n&&((a=typeof o[0])=="string"?i.name=o[0]:a==="number"&&(i.x=o[0]),r++);f<n;)t&&o[r]===void 0||(s[f].indexOf(".")>0?l.prototype.setNestedProperty(i,o[r],s[f]):i[s[f]]=o[r]),r++,f++;else typeof o=="object"&&(i=o,o.dataLabels&&(e.hasDataLabels=()=>!0),o.marker&&(e._hasPointMarkers=!0));return i}pos(o,e=this.plotY){if(!this.destroyed){let{plotX:t,series:s}=this,{chart:n,xAxis:i,yAxis:a}=s,r=0,f=0;if(A(t)&&A(e))return o&&(r=i?i.pos:n.plotLeft,f=a?a.pos:n.plotTop),n.inverted&&i&&a?[a.len-e+f,i.len-t+r]:[t+r,e+f]}}resolveColor(){let o=this.series,e=o.chart.options.chart,t=o.chart.styledMode,s,n,i=e.colorCount,a;delete this.nonZonedColor,o.options.colorByPoint?(t||(s=(n=o.options.colors||o.chart.options.colors)[o.colorCounter],i=n.length),a=o.colorCounter,o.colorCounter++,o.colorCounter===i&&(o.colorCounter=0)):(t||(s=o.color),a=o.colorIndex),this.colorIndex=y(this.options.colorIndex,a),this.color=y(this.options.color,s)}setNestedProperty(o,e,t){return t.split(".").reduce(function(s,n,i,a){let r=a.length-1===i;return s[n]=r?e:v(s[n],!0)?s[n]:{},s[n]},o),o}shouldDraw(){return!this.isNull}tooltipFormatter(o){let e=this.series,t=e.tooltipOptions,s=y(t.valueDecimals,""),n=t.valuePrefix||"",i=t.valueSuffix||"";return e.chart.styledMode&&(o=e.chart.tooltip.styledModeFormat(o)),(e.pointArrayMap||["y"]).forEach(function(a){a="{point."+a,(n||i)&&(o=o.replace(RegExp(a+"}","g"),n+a+"}"+i)),o=o.replace(RegExp(a+"}","g"),a+":,."+s+"f}")}),X(o,{point:this,series:this.series},e.chart)}update(o,e,t,s){let n,i=this,a=i.series,r=i.graphic,f=a.chart,P=a.options;function d(){i.applyOptions(o);let w=r&&i.hasMockGraphic,T=i.y===null?!w:w;r&&T&&(i.graphic=r.destroy(),delete i.hasMockGraphic),v(o,!0)&&(r&&r.element&&o&&o.marker&&o.marker.symbol!==void 0&&(i.graphic=r.destroy()),o!=null&&o.dataLabels&&i.dataLabel&&(i.dataLabel=i.dataLabel.destroy())),n=i.index,a.updateParallelArrays(i,n),P.data[n]=v(P.data[n],!0)||v(o,!0)?i.options:y(o,P.data[n]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(f.isDirtyBox=!0),P.legendType==="point"&&(f.isDirtyLegend=!0),e&&f.redraw(t)}e=y(e,!0),s===!1?d():i.firePointEvent("update",{options:o},d)}remove(o,e){this.series.removePoint(this.series.data.indexOf(this),o,e)}select(o,e){let t=this,s=t.series,n=s.chart;o=y(o,!t.selected),this.selectedStaging=o,t.firePointEvent(o?"select":"unselect",{accumulate:e},function(){t.selected=t.options.selected=o,s.options.data[s.data.indexOf(t)]=t.options,t.setState(o&&"select"),e||n.getSelectedPoints().forEach(function(i){let a=i.series;i.selected&&i!==t&&(i.selected=i.options.selected=!1,a.options.data[a.data.indexOf(i)]=i.options,i.setState(n.hoverPoints&&a.options.inactiveOtherPoints?"inactive":""),i.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(o){let{inverted:e,pointer:t}=this.series.chart;t&&(o=o?t.normalize(o):t.getChartCoordinatesFromPoint(this,e),t.runPointActions(o,this))}onMouseOut(){let o=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(o.hoverPoints||[]).forEach(function(e){e.setState()}),o.hoverPoints=o.hoverPoint=null}manageEvent(o){var s,n,i,a,r,f;let e=p(this.series.options.point,this.options),t=(s=e.events)==null?void 0:s[o];k(t)&&(!((n=this.hcEvents)!=null&&n[o])||((a=(i=this.hcEvents)==null?void 0:i[o])==null?void 0:a.map(P=>P.fn).indexOf(t))===-1)?((r=this.importedUserEvent)==null||r.call(this),this.importedUserEvent=F(this,o,t)):this.importedUserEvent&&!t&&((f=this.hcEvents)!=null&&f[o])&&(L(this,o),delete this.hcEvents[o],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(o,e){var b;let t=this.series,s=this.state,n=t.options.states[o||"normal"]||{},i=Q.plotOptions[t.type].marker&&t.options.marker,a=i&&i.enabled===!1,r=i&&i.states&&i.states[o||"normal"]||{},f=r.enabled===!1,P=this.marker||{},d=t.chart,w=i&&t.markerAttribs,T=t.halo,D,H,x,c=t.stateMarkerGraphic,M;if((o=o||"")===this.state&&!e||this.selected&&o!=="select"||n.enabled===!1||o&&(f||a&&r.enabled===!1)||o&&P.states&&P.states[o]&&P.states[o].enabled===!1)return;if(this.state=o,w&&(D=t.markerAttribs(this,o)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),o&&this.graphic.addClass("highcharts-point-"+o),!d.styledMode){H=t.pointAttribs(this,o),x=y(d.options.chart.animation,n.animation);let E=H.opacity;t.options.inactiveOtherPoints&&A(E)&&(this.dataLabels||[]).forEach(function(I){I&&!I.hasClass("highcharts-data-label-hidden")&&(I.animate({opacity:E},x),I.connector&&I.connector.animate({opacity:E},x))}),this.graphic.animate(H,x)}D&&this.graphic.animate(D,y(d.options.chart.animation,r.animation,i.animation)),c&&c.hide()}else o&&r&&(M=P.symbol||t.symbol,c&&c.currentSymbol!==M&&(c=c.destroy()),D&&(c?c[e?"animate":"attr"]({x:D.x,y:D.y}):M&&(t.stateMarkerGraphic=c=d.renderer.symbol(M,D.x,D.y,D.width,D.height).add(t.markerGroup),c.currentSymbol=M)),!d.styledMode&&c&&this.state!=="inactive"&&c.attr(t.pointAttribs(this,o))),c&&(c[o&&this.isInside?"show":"hide"](),c.element.point=this,c.addClass(this.getClassName(),!0));let G=n.halo,h=this.graphic||c,S=h&&h.visibility||"inherit";G&&G.size&&h&&S!=="hidden"&&!this.isCluster?(T||(t.halo=T=d.renderer.path().add(h.parentGroup)),T.show()[e?"animate":"attr"]({d:this.haloPath(G.size)}),T.attr({class:"highcharts-halo highcharts-color-"+y(this.colorIndex,t.colorIndex)+(this.className?" "+this.className:""),visibility:S,zIndex:-1}),T.point=this,d.styledMode||T.attr(j({fill:this.color||t.color,"fill-opacity":G.opacity},V.filterUserAttributes(G.attributes||{})))):(b=T==null?void 0:T.point)!=null&&b.haloPath&&!T.point.destroyed&&T.animate({d:T.point.haloPath(0)},null,T.hide),B(this,"afterSetState",{state:o})}haloPath(o){let e=this.pos();return e?this.series.chart.renderer.symbols.circle($(e[0],1)-o,e[1]-o,2*o,2*o):[]}}return l}),gt(z,"Core/Pointer.js",[z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J,st){var nt;let{parse:it}=V,{charts:tt,composed:Q,isTouchDevice:X}=J,{addEvent:F,attr:$,css:C,extend:j,find:B,fireEvent:R,isNumber:g,isObject:k,objectEach:A,offset:v,pick:p,pushUnique:y,splat:O}=st;class L{applyInactiveState(l){let m=[],o;(l||[]).forEach(function(e){o=e.series,m.push(o),o.linkedParent&&m.push(o.linkedParent),o.linkedSeries&&(m=m.concat(o.linkedSeries)),o.navigatorSeries&&m.push(o.navigatorSeries)}),this.chart.series.forEach(function(e){m.indexOf(e)===-1?e.setState("inactive",!0):e.options.inactiveOtherPoints&&e.setAllPointsToState("inactive")})}destroy(){let l=this;this.eventsToUnbind.forEach(m=>m()),this.eventsToUnbind=[],!J.chartCount&&(L.unbindDocumentMouseUp&&L.unbindDocumentMouseUp.forEach(m=>m()),L.unbindDocumentTouchEnd&&(L.unbindDocumentTouchEnd=L.unbindDocumentTouchEnd())),clearInterval(l.tooltipTimeout),A(l,function(m,o){l[o]=void 0})}getSelectionMarkerAttrs(l,m){let o={args:{chartX:l,chartY:m},attrs:{},shapeType:"rect"};return R(this,"getSelectionMarkerAttrs",o,e=>{let t,{chart:s,zoomHor:n,zoomVert:i}=this,{mouseDownX:a=0,mouseDownY:r=0}=s,f=e.attrs;f.x=s.plotLeft,f.y=s.plotTop,f.width=n?1:s.plotWidth,f.height=i?1:s.plotHeight,n&&(t=l-a,f.width=Math.max(1,Math.abs(t)),f.x=(t>0?0:t)+a),i&&(t=m-r,f.height=Math.max(1,Math.abs(t)),f.y=(t>0?0:t)+r)}),o}drag(l){let{chart:m}=this,{mouseDownX:o=0,mouseDownY:e=0}=m,{panning:t,panKey:s,selectionMarkerFill:n}=m.options.chart,i=m.plotLeft,a=m.plotTop,r=m.plotWidth,f=m.plotHeight,P=k(t)?t.enabled:t,d=s&&l[`${s}Key`],w=l.chartX,T=l.chartY,D,H=this.selectionMarker;if((!H||!H.touch)&&(w<i?w=i:w>i+r&&(w=i+r),T<a?T=a:T>a+f&&(T=a+f),this.hasDragged=Math.sqrt(Math.pow(o-w,2)+Math.pow(e-T,2)),this.hasDragged>10)){D=m.isInsidePlot(o-i,e-a,{visiblePlotOnly:!0});let{shapeType:x,attrs:c}=this.getSelectionMarkerAttrs(w,T);(m.hasCartesianSeries||m.mapView)&&this.hasZoom&&D&&!d&&!H&&(this.selectionMarker=H=m.renderer[x](),H.attr({class:"highcharts-selection-marker",zIndex:7}).add(),m.styledMode||H.attr({fill:n||it("#334eff").setOpacity(.25).get()})),H&&H.attr(c),D&&!H&&P&&m.pan(l,t)}}dragStart(l){let m=this.chart;m.mouseIsDown=l.type,m.cancelClick=!1,m.mouseDownX=l.chartX,m.mouseDownY=l.chartY}getSelectionBox(l){let m={args:{marker:l},result:l.getBBox()};return R(this,"getSelectionBox",m),m.result}drop(l){let m,{chart:o,selectionMarker:e}=this;for(let t of o.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(s=>s.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),m=!0));if(m&&o.redraw(),e&&l){if(this.hasDragged){let t=this.getSelectionBox(e);o.transform({axes:o.axes.filter(s=>s.zoomEnabled&&(s.coll==="xAxis"&&this.zoomX||s.coll==="yAxis"&&this.zoomY)),selection:{originalEvent:l,xAxis:[],yAxis:[],...t},from:t})}g(o.index)&&(this.selectionMarker=e.destroy())}o&&g(o.index)&&(C(o.container,{cursor:o._cursor}),o.cancelClick=this.hasDragged>10,o.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(l,m,o){let e;return l.forEach(function(t){let s=!(t.noSharedTooltip&&m)&&0>t.options.findNearestPointBy.indexOf("y"),n=t.searchPoint(o,s);k(n,!0)&&n.series&&(!k(e,!0)||function(i,a){var d,w;let r=i.distX-a.distX,f=i.dist-a.dist,P=((d=a.series.group)==null?void 0:d.zIndex)-((w=i.series.group)==null?void 0:w.zIndex);return r!==0&&m?r:f!==0?f:P!==0?P:i.series.index>a.series.index?-1:1}(e,n)>0)&&(e=n)}),e}getChartCoordinatesFromPoint(l,m){let{xAxis:o,yAxis:e}=l.series,t=l.shapeArgs;if(o&&e){let s=l.clientX??l.plotX??0,n=l.plotY||0;return l.isNode&&t&&g(t.x)&&g(t.y)&&(s=t.x,n=t.y),m?{chartX:e.len+e.pos-n,chartY:o.len+o.pos-s}:{chartX:s+o.pos,chartY:n+e.pos}}if(t&&t.x&&t.y)return{chartX:t.x,chartY:t.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:l}=this.chart,m=v(l);this.chartPosition={left:m.left,top:m.top,scaleX:1,scaleY:1};let{offsetHeight:o,offsetWidth:e}=l;return e>2&&o>2&&(this.chartPosition.scaleX=m.width/e,this.chartPosition.scaleY=m.height/o),this.chartPosition}getCoordinates(l){let m={xAxis:[],yAxis:[]};for(let o of this.chart.axes)m[o.isXAxis?"xAxis":"yAxis"].push({axis:o,value:o.toValue(l[o.horiz?"chartX":"chartY"])});return m}getHoverData(l,m,o,e,t,s){let n=[],i=function(d){return d.visible&&!(!t&&d.directTouch)&&p(d.options.enableMouseTracking,!0)},a=m,r,f={chartX:s?s.chartX:void 0,chartY:s?s.chartY:void 0,shared:t};R(this,"beforeGetHoverData",f),r=a&&!a.stickyTracking?[a]:o.filter(d=>d.stickyTracking&&(f.filter||i)(d));let P=e&&l||!s?l:this.findNearestKDPoint(r,t,s);return a=P&&P.series,P&&(t&&!a.noSharedTooltip?(r=o.filter(function(d){return f.filter?f.filter(d):i(d)&&!d.noSharedTooltip})).forEach(function(d){let w=B(d.points,function(T){return T.x===P.x&&!T.isNull});k(w)&&(d.boosted&&d.boost&&(w=d.boost.getPoint(w)),n.push(w))}):n.push(P)),R(this,"afterGetHoverData",f={hoverPoint:P}),{hoverPoint:f.hoverPoint,hoverSeries:a,hoverPoints:n}}getPointFromEvent(l){let m=l.target,o;for(;m&&!o;)o=m.point,m=m.parentNode;return o}onTrackerMouseOut(l){let m=this.chart,o=l.relatedTarget,e=m.hoverSeries;this.isDirectTouch=!1,!e||!o||e.stickyTracking||this.inClass(o,"highcharts-tooltip")||this.inClass(o,"highcharts-series-"+e.index)&&this.inClass(o,"highcharts-tracker")||e.onMouseOut()}inClass(l,m){let o=l,e;for(;o;){if(e=$(o,"class")){if(e.indexOf(m)!==-1)return!0;if(e.indexOf("highcharts-container")!==-1)return!1}o=o.parentElement}}constructor(l,m){var o;this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=m,this.chart=l,this.runChartClick=!!((o=m.chart.events)!=null&&o.click),this.pinchDown=[],this.setDOMEvents(),R(this,"afterInit")}normalize(l,m){let o=l.touches,e=o?o.length?o.item(0):p(o.changedTouches,l.changedTouches)[0]:l;m||(m=this.getChartPosition());let t=e.pageX-m.left,s=e.pageY-m.top;return j(l,{chartX:Math.round(t/=m.scaleX),chartY:Math.round(s/=m.scaleY)})}onContainerClick(l){let m=this.chart,o=m.hoverPoint,e=this.normalize(l),t=m.plotLeft,s=m.plotTop;!m.cancelClick&&(o&&this.inClass(e.target,"highcharts-tracker")?(R(o.series,"click",j(e,{point:o})),m.hoverPoint&&o.firePointEvent("click",e)):(j(e,this.getCoordinates(e)),m.isInsidePlot(e.chartX-t,e.chartY-s,{visiblePlotOnly:!0})&&R(m,"click",e)))}onContainerMouseDown(l){var o;let m=(1&(l.buttons||l.button))==1;l=this.normalize(l),J.isFirefox&&l.button!==0&&this.onContainerMouseMove(l),(l.button===void 0||m)&&(this.zoomOption(l),m&&((o=l.preventDefault)==null||o.call(l)),this.dragStart(l))}onContainerMouseLeave(l){let{pointer:m}=tt[p(L.hoverChartIndex,-1)]||{};l=this.normalize(l),this.onContainerMouseMove(l),m&&!this.inClass(l.relatedTarget,"highcharts-tooltip")&&(m.reset(),m.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(l){let m=this.chart,o=m.tooltip,e=this.normalize(l);this.setHoverChartIndex(l),(m.mouseIsDown==="mousedown"||this.touchSelect(e))&&this.drag(e),!m.openMenu&&(this.inClass(e.target,"highcharts-tracker")||m.isInsidePlot(e.chartX-m.plotLeft,e.chartY-m.plotTop,{visiblePlotOnly:!0}))&&!(o&&o.shouldStickOnContact(e))&&(this.inClass(e.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(e))}onDocumentTouchEnd(l){this.onDocumentMouseUp(l)}onContainerTouchMove(l){this.touchSelect(l)?this.onContainerMouseMove(l):this.touch(l)}onContainerTouchStart(l){this.touchSelect(l)?this.onContainerMouseDown(l):(this.zoomOption(l),this.touch(l,!0))}onDocumentMouseMove(l){let m=this.chart,o=m.tooltip,e=this.chartPosition,t=this.normalize(l,e);!e||m.isInsidePlot(t.chartX-m.plotLeft,t.chartY-m.plotTop,{visiblePlotOnly:!0})||o&&o.shouldStickOnContact(t)||t.target!==m.container.ownerDocument&&this.inClass(t.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(l){var m,o;(o=(m=tt[p(L.hoverChartIndex,-1)])==null?void 0:m.pointer)==null||o.drop(l)}pinch(l){let m=this,{chart:o,hasZoom:e,lastTouches:t}=m,s=[].map.call(l.touches||[],f=>m.normalize(f)),n=s.length,i=n===1&&(m.inClass(l.target,"highcharts-tracker")&&o.runTrackerClick||m.runChartClick),a=o.tooltip,r=n===1&&p(a==null?void 0:a.options.followTouchMove,!0);n>1?m.initiated=!0:r&&(m.initiated=!1),e&&m.initiated&&!i&&l.cancelable!==!1&&l.preventDefault(),l.type==="touchstart"?(m.pinchDown=s,m.res=!0,o.mouseDownX=l.chartX):r?this.runPointActions(m.normalize(l)):t&&(R(o,"touchpan",{originalEvent:l,touches:s},()=>{let f=P=>{let d=P[0],w=P[1]||d;return{x:d.chartX,y:d.chartY,width:w.chartX-d.chartX,height:w.chartY-d.chartY}};o.transform({axes:o.axes.filter(P=>P.zoomEnabled&&(this.zoomHor&&P.horiz||this.zoomVert&&!P.horiz)),to:f(s),from:f(t),trigger:l.type})}),m.res&&(m.res=!1,this.reset(!1,0))),m.lastTouches=s}reset(l,m){let o=this.chart,e=o.hoverSeries,t=o.hoverPoint,s=o.hoverPoints,n=o.tooltip,i=n&&n.shared?s:t;l&&i&&O(i).forEach(function(a){a.series.isCartesian&&a.plotX===void 0&&(l=!1)}),l?n&&i&&O(i).length&&(n.refresh(i),n.shared&&s?s.forEach(function(a){a.setState(a.state,!0),a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):t&&(t.setState(t.state,!0),o.axes.forEach(function(a){a.crosshair&&t.series[a.coll]===a&&a.drawCrosshair(null,t)}))):(t&&t.onMouseOut(),s&&s.forEach(function(a){a.setState()}),e&&e.onMouseOut(),n&&n.hide(m),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),o.axes.forEach(function(a){a.hideCrosshair()}),o.hoverPoints=o.hoverPoint=void 0)}runPointActions(l,m,o){let e=this.chart,t=e.series,s=e.tooltip&&e.tooltip.options.enabled?e.tooltip:void 0,n=!!s&&s.shared,i=m||e.hoverPoint,a=i&&i.series||e.hoverSeries,r=(!l||l.type!=="touchmove")&&(!!m||a&&a.directTouch&&this.isDirectTouch),f=this.getHoverData(i,a,t,r,n,l);i=f.hoverPoint,a=f.hoverSeries;let P=f.hoverPoints,d=a&&a.tooltipOptions.followPointer&&!a.tooltipOptions.split,w=n&&a&&!a.noSharedTooltip;if(i&&(o||i!==e.hoverPoint||s&&s.isHidden)){if((e.hoverPoints||[]).forEach(function(T){P.indexOf(T)===-1&&T.setState()}),e.hoverSeries!==a&&a.onMouseOver(),this.applyInactiveState(P),(P||[]).forEach(function(T){T.setState("hover")}),e.hoverPoint&&e.hoverPoint.firePointEvent("mouseOut"),!i.series)return;e.hoverPoints=P,e.hoverPoint=i,i.firePointEvent("mouseOver",void 0,()=>{s&&i&&s.refresh(w?P:i,l)})}else if(d&&s&&!s.isHidden){let T=s.getAnchor([{}],l);e.isInsidePlot(T[0],T[1],{visiblePlotOnly:!0})&&s.updatePosition({plotX:T[0],plotY:T[1]})}this.unDocMouseMove||(this.unDocMouseMove=F(e.container.ownerDocument,"mousemove",T=>{var D,H;return(H=(D=tt[L.hoverChartIndex??-1])==null?void 0:D.pointer)==null?void 0:H.onDocumentMouseMove(T)}),this.eventsToUnbind.push(this.unDocMouseMove)),e.axes.forEach(function(T){let D,H=p((T.crosshair||{}).snap,!0);!H||(D=e.hoverPoint)&&D.series[T.coll]===T||(D=B(P,x=>x.series&&x.series[T.coll]===T)),D||!H?T.drawCrosshair(l,D):T.hideCrosshair()})}setDOMEvents(){let l=this.chart.container,m=l.ownerDocument;l.onmousedown=this.onContainerMouseDown.bind(this),l.onmousemove=this.onContainerMouseMove.bind(this),l.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(F(l,"mouseenter",this.onContainerMouseEnter.bind(this)),F(l,"mouseleave",this.onContainerMouseLeave.bind(this))),L.unbindDocumentMouseUp||(L.unbindDocumentMouseUp=[]),L.unbindDocumentMouseUp.push(F(m,"mouseup",this.onDocumentMouseUp.bind(this)));let o=this.chart.renderTo.parentElement;for(;o&&o.tagName!=="BODY";)this.eventsToUnbind.push(F(o,"scroll",()=>{delete this.chartPosition})),o=o.parentElement;this.eventsToUnbind.push(F(l,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),F(l,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),L.unbindDocumentTouchEnd||(L.unbindDocumentTouchEnd=F(m,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),F(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){var t,s;if(!X)return;let l=this.pointerCaptureEventsToUnbind,m=this.chart,o=m.container,e=p((t=m.options.tooltip)==null?void 0:t.followTouchMove,!0)&&m.series.some(n=>n.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&e?(l.push(F(o,"pointerdown",n=>{var i,a;(i=n.target)!=null&&i.hasPointerCapture(n.pointerId)&&((a=n.target)==null||a.releasePointerCapture(n.pointerId))}),F(o,"pointermove",n=>{var i,a;(a=(i=m.pointer)==null?void 0:i.getPointFromEvent(n))==null||a.onMouseOver(n)})),m.styledMode||C(o,{"touch-action":"none"}),o.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!e&&(l.forEach(n=>n()),l.length=0,m.styledMode||C(o,{"touch-action":p((s=m.options.chart.style)==null?void 0:s["touch-action"],"manipulation")}),o.className=o.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(l){var e;let m=this.chart,o=J.charts[p(L.hoverChartIndex,-1)];if(o&&o!==m){let t={relatedTarget:m.container};l&&!(l!=null&&l.relatedTarget)&&(l={...t,...l}),(e=o.pointer)==null||e.onContainerMouseLeave(l||t)}o&&o.mouseIsDown||(L.hoverChartIndex=m.index)}touch(l,m){let o,{chart:e,pinchDown:t=[]}=this;this.setHoverChartIndex(),(l=this.normalize(l)).touches.length===1?e.isInsidePlot(l.chartX-e.plotLeft,l.chartY-e.plotTop,{visiblePlotOnly:!0})&&!e.openMenu?(m&&this.runPointActions(l),l.type==="touchmove"&&(o=!!t[0]&&Math.pow(t[0].chartX-l.chartX,2)+Math.pow(t[0].chartY-l.chartY,2)>=16),p(o,!0)&&this.pinch(l)):m&&this.reset():l.touches.length===2&&this.pinch(l)}touchSelect(l){return!!(this.chart.zooming.singleTouch&&l.touches&&l.touches.length===1)}zoomOption(l){let m=this.chart,o=m.inverted,e=m.zooming.type||"",t,s;/touch/.test(l.type)&&(e=p(m.zooming.pinchType,e)),this.zoomX=t=/x/.test(e),this.zoomY=s=/y/.test(e),this.zoomHor=t&&!o||s&&o,this.zoomVert=s&&!o||t&&o,this.hasZoom=t||s}}return(nt=L||(L={})).compose=function(u){y(Q,"Core.Pointer")&&F(u,"beforeRender",function(){this.pointer=new nt(this,this.options)})},L}),gt(z,"Core/Legend/LegendSymbol.js",[z["Core/Utilities.js"]],function(V){var J;let{extend:st,merge:nt,pick:it}=V;return function(tt){function Q(X,F,$){var o,e;let C=this.legendItem=this.legendItem||{},{chart:j,options:B}=this,{baseline:R=0,symbolWidth:g,symbolHeight:k}=X,A=this.symbol||"circle",v=k/2,p=j.renderer,y=C.group,O=R-Math.round((((o=X.fontMetrics)==null?void 0:o.b)||k)*($?.4:.3)),L={},u,l=B.marker,m=0;if(j.styledMode||(L["stroke-width"]=Math.min(B.lineWidth||0,24),B.dashStyle?L.dashstyle=B.dashStyle:B.linecap==="square"||(L["stroke-linecap"]="round")),C.line=p.path().addClass("highcharts-graph").attr(L).add(y),$&&(C.area=p.path().addClass("highcharts-area").add(y)),L["stroke-linecap"]&&(m=Math.min(C.line.strokeWidth(),g)/2),g){let t=[["M",m,O],["L",g-m,O]];C.line.attr({d:t}),(e=C.area)==null||e.attr({d:[...t,["L",g-m,R],["L",m,R]]})}if(l&&l.enabled!==!1&&g){let t=Math.min(it(l.radius,v),v);A.indexOf("url")===0&&(l=nt(l,{width:k,height:k}),t=0),C.symbol=u=p.symbol(A,g/2-t,O-t,2*t,2*t,st({context:"legend"},l)).addClass("highcharts-point").add(y),u.isMarker=!0}}tt.areaMarker=function(X,F){Q.call(this,X,F,!0)},tt.lineMarker=Q,tt.rectangle=function(X,F){let $=F.legendItem||{},C=X.options,j=X.symbolHeight,B=C.squareSymbol,R=B?j:X.symbolWidth;$.symbol=this.chart.renderer.rect(B?(X.symbolWidth-j)/2:0,X.baseline-j+1,R,j,it(X.options.symbolRadius,j/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(J||(J={})),J}),gt(z,"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:V}=this.series.chart;return typeof this.y!="number"?"":V(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"}}),gt(z,"Core/Series/SeriesRegistry.js",[z["Core/Globals.js"],z["Core/Defaults.js"],z["Core/Series/Point.js"],z["Core/Utilities.js"]],function(V,J,st,nt){var it;let{defaultOptions:tt}=J,{extend:Q,extendClass:X,merge:F}=nt;return function($){function C(j,B){let R=tt.plotOptions||{},g=B.defaultOptions,k=B.prototype;return k.type=j,k.pointClass||(k.pointClass=st),!$.seriesTypes[j]&&(g&&(R[j]=g),$.seriesTypes[j]=B,!0)}$.seriesTypes=V.seriesTypes,$.registerSeriesType=C,$.seriesType=function(j,B,R,g,k){let A=tt.plotOptions||{};if(B=B||"",A[j]=F(A[B],R),delete $.seriesTypes[j],C(j,X($.seriesTypes[B]||function(){},g)),$.seriesTypes[j].prototype.type=j,k){class v extends st{}Q(v.prototype,k),$.seriesTypes[j].prototype.pointClass=v}return $.seriesTypes[j]}}(it||(it={})),it}),gt(z,"Core/Series/Series.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Defaults.js"],z["Core/Foundation.js"],z["Core/Globals.js"],z["Core/Legend/LegendSymbol.js"],z["Core/Series/Point.js"],z["Core/Series/SeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X,F,$){let{animObject:C,setAnimation:j}=V,{defaultOptions:B}=J,{registerEventOptions:R}=st,{svg:g,win:k}=nt,{seriesTypes:A}=X,{arrayMax:v,arrayMin:p,clamp:y,correctFloat:O,crisp:L,defined:u,destroyObjectProperties:l,diffObjects:m,erase:o,error:e,extend:t,find:s,fireEvent:n,getClosestDistance:i,getNestedProperty:a,insertItem:r,isArray:f,isNumber:P,isString:d,merge:w,objectEach:T,pick:D,removeEvent:H,splat:x,syncTimeout:c}=$;class M{constructor(){this.zoneAxis="y"}init(h,S){let b;n(this,"init",{options:S});let E=this,I=h.series;this.eventsToUnbind=[],E.chart=h,E.options=E.setOptions(S);let N=E.options,U=N.visible!==!1;E.linkedSeries=[],E.bindAxes(),t(E,{name:N.name,state:"",visible:U,selected:N.selected===!0}),R(this,N);let Z=N.events;(Z&&Z.click||N.point&&N.point.events&&N.point.events.click||N.allowPointSelect)&&(h.runTrackerClick=!0),E.getColor(),E.getSymbol(),E.parallelArrays.forEach(function(_){E[_+"Data"]||(E[_+"Data"]=[])}),E.isCartesian&&(h.hasCartesianSeries=!0),I.length&&(b=I[I.length-1]),E._i=D(b&&b._i,-1)+1,E.opacity=E.options.opacity,h.orderItems("series",r(this,I)),N.dataSorting&&N.dataSorting.enabled?E.setDataSortingOptions():E.points||E.data||E.setData(N.data,!1),n(this,"afterInit")}is(h){return A[h]&&this instanceof A[h]}bindAxes(){let h,S=this,b=S.options,E=S.chart;n(this,"bindAxes",null,function(){(S.axisTypes||[]).forEach(function(I){(E[I]||[]).forEach(function(N){h=N.options,(D(b[I],0)===N.index||b[I]!==void 0&&b[I]===h.id)&&(r(S,N.series),S[I]=N,N.isDirty=!0)}),S[I]||S.optionalAxis===I||e(18,!0,E)})}),n(this,"afterBindAxes")}updateParallelArrays(h,S,b){let E=h.series,I=P(S)?function(N){let U=N==="y"&&E.toYData?E.toYData(h):h[N];E[N+"Data"][S]=U}:function(N){Array.prototype[S].apply(E[N+"Data"],b)};E.parallelArrays.forEach(I)}hasData(){return this.visible&&this.dataMax!==void 0&&this.dataMin!==void 0||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(h,S){let b=h.marker,E=S.marker||{};return b&&(E.enabled&&!b.enabled||E.symbol!==b.symbol||E.height!==b.height||E.width!==b.width)}autoIncrement(h){let S=this.options,b=S.pointIntervalUnit,E=S.relativeXValue,I=this.chart.time,N=this.xIncrement,U,Z;return N=D(N,S.pointStart,0),this.pointInterval=Z=D(this.pointInterval,S.pointInterval,1),E&&P(h)&&(Z*=h),b&&(U=new I.Date(N),b==="day"?I.set("Date",U,I.get("Date",U)+Z):b==="month"?I.set("Month",U,I.get("Month",U)+Z):b==="year"&&I.set("FullYear",U,I.get("FullYear",U)+Z),Z=U.getTime()-N),E&&P(h)?N+Z:(this.xIncrement=N+Z,N)}setDataSortingOptions(){let h=this.options;t(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),u(h.pointRange)||(h.pointRange=1)}setOptions(h){var et,rt;let S,b=this.chart,E=b.options.plotOptions,I=b.userOptions||{},N=w(h),U=b.styledMode,Z={plotOptions:E,userOptions:N};n(this,"setOptions",Z);let _=Z.plotOptions[this.type],at=I.plotOptions||{},lt=at.series||{},Y=B.plotOptions[this.type]||{},W=at[this.type]||{};this.userOptions=Z.userOptions;let q=w(_,E.series,W,N);this.tooltipOptions=w(B.tooltip,(et=B.plotOptions.series)==null?void 0:et.tooltip,Y==null?void 0:Y.tooltip,b.userOptions.tooltip,(rt=at.series)==null?void 0:rt.tooltip,W.tooltip,N.tooltip),this.stickyTracking=D(N.stickyTracking,W.stickyTracking,lt.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||q.stickyTracking),_.marker===null&&delete q.marker,this.zoneAxis=q.zoneAxis||"y";let K=this.zones=(q.zones||[]).map(ot=>({...ot}));return(q.negativeColor||q.negativeFillColor)&&!q.zones&&(S={value:q[this.zoneAxis+"Threshold"]||q.threshold||0,className:"highcharts-negative"},U||(S.color=q.negativeColor,S.fillColor=q.negativeFillColor),K.push(S)),K.length&&u(K[K.length-1].value)&&K.push(U?{}:{color:this.color,fillColor:this.fillColor}),n(this,"afterSetOptions",{options:q}),q}getName(){return D(this.options.name,"Series "+(this.index+1))}getCyclic(h,S,b){let E,I,N=this.chart,U=`${h}Index`,Z=`${h}Counter`,_=(b==null?void 0:b.length)||N.options.chart.colorCount;!S&&(u(I=D(h==="color"?this.options.colorIndex:void 0,this[U]))?E=I:(N.series.length||(N[Z]=0),E=N[Z]%_,N[Z]+=1),b&&(S=b[E])),E!==void 0&&(this[U]=E),this[h]=S}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||B.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let h=this.options.marker;this.getCyclic("symbol",h.symbol,this.chart.options.symbols)}findPointIndex(h,S){let b,E,I,N=h.id,U=h.x,Z=this.points,_=this.options.dataSorting;if(N){let at=this.chart.get(N);at instanceof tt&&(b=at)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let at=lt=>!lt.touched&<.index===h.index;if(_&&_.matchByName?at=lt=>!lt.touched&<.name===h.name:this.options.relativeXValue&&(at=lt=>!lt.touched&<.options.x===h.x),!(b=s(Z,at)))return}return b&&(I=b&&b.index)!==void 0&&(E=!0),I===void 0&&P(U)&&(I=this.xData.indexOf(U,S)),I!==-1&&I!==void 0&&this.cropped&&(I=I>=this.cropStart?I-this.cropStart:I),!E&&P(I)&&Z[I]&&Z[I].touched&&(I=void 0),I}updateData(h,S){let b=this.options,E=b.dataSorting,I=this.points,N=[],U=this.requireSorting,Z=h.length===I.length,_,at,lt,Y,W=!0;if(this.xIncrement=null,h.forEach(function(q,K){let et,rt=u(q)&&this.pointClass.prototype.optionsToObject.call({series:this},q)||{},ot=rt.x;rt.id||P(ot)?((et=this.findPointIndex(rt,Y))===-1||et===void 0?N.push(q):I[et]&&q!==b.data[et]?(I[et].update(q,!1,null,!1),I[et].touched=!0,U&&(Y=et+1)):I[et]&&(I[et].touched=!0),(!Z||K!==et||E&&E.enabled||this.hasDerivedData)&&(_=!0)):N.push(q)},this),_)for(at=I.length;at--;)(lt=I[at])&&!lt.touched&<.remove&<.remove(!1,S);else!Z||E&&E.enabled?W=!1:(h.forEach(function(q,K){q===I[K].y||I[K].destroyed||I[K].update(q,!1,null,!1)}),N.length=0);return I.forEach(function(q){q&&(q.touched=!1)}),!!W&&(N.forEach(function(q){this.addPoint(q,!1,null,null,!1)},this),this.xIncrement===null&&this.xData&&this.xData.length&&(this.xIncrement=v(this.xData),this.autoIncrement()),!0)}setData(h,S=!0,b,E){var yt;let I=this,N=I.points,U=N&&N.length||0,Z=I.options,_=I.chart,at=Z.dataSorting,lt=I.xAxis,Y=Z.turboThreshold,W=this.xData,q=this.yData,K=I.pointArrayMap,et=K&&K.length,rt=Z.keys,ot,ht,dt,ct=0,pt=1,ut;_.options.chart.allowMutatingData||(Z.data&&delete I.options.data,I.userOptions.data&&delete I.userOptions.data,ut=w(!0,h));let xt=(h=ut||h||[]).length;if(at&&at.enabled&&(h=this.sortData(h)),_.options.chart.allowMutatingData&&E!==!1&&xt&&U&&!I.cropped&&!I.hasGroupedData&&I.visible&&!I.boosted&&(dt=this.updateData(h,b)),!dt){I.xIncrement=null,I.colorCounter=0,this.parallelArrays.forEach(function(ft){I[ft+"Data"].length=0});let mt=Y&&xt>Y;if(mt){let ft=I.getFirstValidPoint(h),vt=I.getFirstValidPoint(h,xt-1,-1),bt=St=>!!(f(St)&&(rt||P(St[0])));if(P(ft)&&P(vt))for(ot=0;ot<xt;ot++)W[ot]=this.autoIncrement(),q[ot]=h[ot];else if(bt(ft)&&bt(vt))if(et)if(ft.length===et)for(ot=0;ot<xt;ot++)W[ot]=this.autoIncrement(),q[ot]=h[ot];else for(ot=0;ot<xt;ot++)ht=h[ot],W[ot]=ht[0],q[ot]=ht.slice(1,et+1);else if(rt&&(ct=rt.indexOf("x"),pt=rt.indexOf("y"),ct=ct>=0?ct:0,pt=pt>=0?pt:1),ft.length===1&&(pt=0),ct===pt)for(ot=0;ot<xt;ot++)W[ot]=this.autoIncrement(),q[ot]=h[ot][pt];else for(ot=0;ot<xt;ot++)ht=h[ot],W[ot]=ht[ct],q[ot]=ht[pt];else mt=!1}if(!mt)for(ot=0;ot<xt;ot++)ht={series:I},I.pointClass.prototype.applyOptions.apply(ht,[h[ot]]),I.updateParallelArrays(ht,ot);for(q&&d(q[0])&&e(14,!0,_),I.data=[],I.options.data=I.userOptions.data=h,ot=U;ot--;)(yt=N[ot])==null||yt.destroy();lt&&(lt.minRange=lt.userMinRange),I.isDirty=_.isDirtyBox=!0,I.isDirtyData=!!N,b=!1}Z.legendType==="point"&&(this.processData(),this.generatePoints()),S&&_.redraw(b)}sortData(h){let S=this,b=S.options.dataSorting.sortKey||"y",E=function(I,N){return u(N)&&I.pointClass.prototype.optionsToObject.call({series:I},N)||{}};return h.forEach(function(I,N){h[N]=E(S,I),h[N].index=N},this),h.concat().sort((I,N)=>{let U=a(b,I),Z=a(b,N);return Z<U?-1:Z>U?1:0}).forEach(function(I,N){I.x=N},this),S.linkedSeries&&S.linkedSeries.forEach(function(I){let N=I.options,U=N.data;N.dataSorting&&N.dataSorting.enabled||!U||(U.forEach(function(Z,_){U[_]=E(I,Z),h[_]&&(U[_].x=h[_].x,U[_].index=_)}),I.setData(U,!1))}),h}getProcessedData(h){let S=this,b=S.xAxis,E=S.options.cropThreshold,I=b==null?void 0:b.logarithmic,N=S.isCartesian,U,Z,_=0,at,lt,Y,W=S.xData,q=S.yData,K=!1,et=W.length;b&&(lt=(at=b.getExtremes()).min,Y=at.max,K=!!(b.categories&&!b.names.length)),N&&S.sorted&&!h&&(!E||et>E||S.forceCrop)&&(W[et-1]<lt||W[0]>Y?(W=[],q=[]):S.yData&&(W[0]<lt||W[et-1]>Y)&&(W=(U=this.cropData(S.xData,S.yData,lt,Y)).xData,q=U.yData,_=U.start,Z=!0));let rt=i([I?W.map(I.log2lin):W],()=>S.requireSorting&&!K&&e(15,!1,S.chart));return{xData:W,yData:q,cropped:Z,cropStart:_,closestPointRange:rt}}processData(h){let S=this.xAxis;if(this.isCartesian&&!this.isDirty&&!S.isDirty&&!this.yAxis.isDirty&&!h)return!1;let b=this.getProcessedData();this.cropped=b.cropped,this.cropStart=b.cropStart,this.processedXData=b.xData,this.processedYData=b.yData,this.closestPointRange=this.basePointRange=b.closestPointRange,n(this,"afterProcessData")}cropData(h,S,b,E){let I=h.length,N,U,Z=0,_=I;for(N=0;N<I;N++)if(h[N]>=b){Z=Math.max(0,N-1);break}for(U=N;U<I;U++)if(h[U]>E){_=U+1;break}return{xData:h.slice(Z,_),yData:S.slice(Z,_),start:Z,end:_}}generatePoints(){let h=this.options,S=this.processedData||h.data,b=this.processedXData,E=this.processedYData,I=this.pointClass,N=b.length,U=this.cropStart||0,Z=this.hasGroupedData,_=h.keys,at=[],lt=h.dataGrouping&&h.dataGrouping.groupAll?U:0,Y,W,q,K,et=this.data;if(!et&&!Z){let rt=[];rt.length=S.length,et=this.data=rt}for(_&&Z&&(this.options.keys=!1),K=0;K<N;K++)W=U+K,Z?((q=new I(this,[b[K]].concat(x(E[K])))).dataGroup=this.groupMap[lt+K],q.dataGroup.options&&(q.options=q.dataGroup.options,t(q,q.dataGroup.options),delete q.dataLabels)):(q=et[W])||S[W]===void 0||(et[W]=q=new I(this,S[W],b[K])),q&&(q.index=Z?lt+K:W,at[K]=q);if(this.options.keys=_,et&&(N!==(Y=et.length)||Z))for(K=0;K<Y;K++)K!==U||Z||(K+=N),et[K]&&(et[K].destroyElements(),et[K].plotX=void 0);this.data=et,this.points=at,n(this,"afterGeneratePoints")}getXExtremes(h){return{min:p(h),max:v(h)}}getExtremes(h,S){let b=this.xAxis,E=this.yAxis,I=[],N=this.requireSorting&&!this.is("column")?1:0,U=!!E&&E.positiveValuesOnly,Z=S||this.getExtremesFromAll||this.options.getExtremesFromAll,{processedXData:_,processedYData:at}=this,lt,Y,W,q,K,et,rt,ot=0,ht=0,dt=0;if(this.cropped&&Z){let xt=this.getProcessedData(!0);_=xt.xData,at=xt.yData}let ct=(h=h||this.stackedYData||at||[]).length,pt=_||this.xData;for(b&&(ot=(lt=b.getExtremes()).min,ht=lt.max),et=0;et<ct;et++)if(q=pt[et],Y=(P(K=h[et])||f(K))&&((P(K)?K>0:K.length)||!U),W=S||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!b||(pt[et+N]||q)>=ot&&(pt[et-N]||q)<=ht,Y&&W)if(rt=K.length)for(;rt--;)P(K[rt])&&(I[dt++]=K[rt]);else I[dt++]=K;let ut={activeYData:I,dataMin:p(I),dataMax:v(I)};return n(this,"afterGetExtremes",{dataExtremes:ut}),ut}applyExtremes(){let h=this.getExtremes();return this.dataMin=h.dataMin,this.dataMax=h.dataMax,h}getFirstValidPoint(h,S=0,b=1){let E=h.length,I=S;for(;I>=0&&I<E;){if(u(h[I]))return h[I];I+=b}}translate(){var ht;this.processedXData||this.processData(),this.generatePoints();let h=this.options,S=h.stacking,b=this.xAxis,E=b.categories,I=this.enabledDataSorting,N=this.yAxis,U=this.points,Z=U.length,_=this.pointPlacementToXValue(),at=!!_,lt=h.threshold,Y=h.startFromThreshold?lt:0,W,q,K,et,rt=Number.MAX_VALUE;function ot(dt){return y(dt,-1e9,1e9)}for(W=0;W<Z;W++){let dt,ct=U[W],pt=ct.x,ut,xt,yt=ct.y,mt=ct.low,ft=S&&((ht=N.stacking)==null?void 0:ht.stacks[(this.negStacks&&yt<(Y?0:lt)?"-":"")+this.stackKey]);q=b.translate(pt,!1,!1,!1,!0,_),ct.plotX=P(q)?O(ot(q)):void 0,S&&this.visible&&ft&&ft[pt]&&(et=this.getStackIndicator(et,pt,this.index),!ct.isNull&&et.key&&(xt=(ut=ft[pt]).points[et.key]),ut&&f(xt)&&(mt=xt[0],yt=xt[1],mt===Y&&et.key===ft[pt].base&&(mt=D(P(lt)?lt:N.min)),N.positiveValuesOnly&&u(mt)&&mt<=0&&(mt=void 0),ct.total=ct.stackTotal=D(ut.total),ct.percentage=u(ct.y)&&ut.total?ct.y/ut.total*100:void 0,ct.stackY=yt,this.irregularWidths||ut.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),ct.yBottom=u(mt)?ot(N.translate(mt,!1,!0,!1,!0)):void 0,this.dataModify&&(yt=this.dataModify.modifyValue(yt,W)),P(yt)&&ct.plotX!==void 0&&(dt=P(dt=N.translate(yt,!1,!0,!1,!0))?ot(dt):void 0),ct.plotY=dt,ct.isInside=this.isPointInside(ct),ct.clientX=at?O(b.translate(pt,!1,!1,!1,!0,_)):q,ct.negative=(ct.y||0)<(lt||0),ct.category=D(E&&E[ct.x],ct.x),ct.isNull||ct.visible===!1||(K!==void 0&&(rt=Math.min(rt,Math.abs(q-K))),K=q),ct.zone=this.zones.length?ct.getZone():void 0,!ct.graphic&&this.group&&I&&(ct.isNew=!0)}this.closestPointRangePx=rt,n(this,"afterTranslate")}getValidPoints(h,S,b){let E=this.chart;return(h||this.points||[]).filter(function(I){let{plotX:N,plotY:U}=I;return!!((b||!I.isNull&&P(U))&&(!S||E.isInsidePlot(N,U,{inverted:E.inverted})))&&I.visible!==!1})}getClipBox(){let{chart:h,xAxis:S,yAxis:b}=this,{x:E,y:I,width:N,height:U}=w(h.clipBox);return S&&S.len!==h.plotSizeX&&(N=S.len),b&&b.len!==h.plotSizeY&&(U=b.len),h.inverted&&!this.invertible&&([N,U]=[U,N]),{x:E,y:I,width:N,height:U}}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0),this.sharedClipKey}setClip(){let{chart:h,group:S,markerGroup:b}=this,E=h.sharedClips,I=h.renderer,N=this.getClipBox(),U=this.getSharedClipKey(),Z=E[U];Z?Z.animate(N):E[U]=Z=I.clipRect(N),S&&S.clip(this.options.clip===!1?void 0:Z),b&&b.clip()}animate(h){let{chart:S,group:b,markerGroup:E}=this,I=S.inverted,N=C(this.options.animation),U=[this.getSharedClipKey(),N.duration,N.easing,N.defer].join(","),Z=S.sharedClips[U],_=S.sharedClips[U+"m"];if(h&&b){let at=this.getClipBox();if(Z)Z.attr("height",at.height);else{at.width=0,I&&(at.x=S.plotHeight),Z=S.renderer.clipRect(at),S.sharedClips[U]=Z;let lt={x:-99,y:-99,width:I?S.plotWidth+199:99,height:I?99:S.plotHeight+199};_=S.renderer.clipRect(lt),S.sharedClips[U+"m"]=_}b.clip(Z),E==null||E.clip(_)}else if(Z&&!Z.hasClass("highcharts-animating")){let at=this.getClipBox(),lt=N.step;(E!=null&&E.element.childNodes.length||S.series.length>1)&&(N.step=function(Y,W){lt&<.apply(W,arguments),W.prop==="width"&&(_!=null&&_.element)&&_.attr(I?"height":"width",Y+99)}),Z.addClass("highcharts-animating").animate(at,N)}}afterAnimate(){this.setClip(),T(this.chart.sharedClips,(h,S,b)=>{h&&!this.chart.container.querySelector(`[clip-path="url(#${h.id})"]`)&&(h.destroy(),delete b[S])}),this.finishedAnimating=!0,n(this,"afterAnimate")}drawPoints(h=this.points){let S,b,E,I,N,U,Z,_=this.chart,at=_.styledMode,{colorAxis:lt,options:Y}=this,W=Y.marker,q=this[this.specialGroup||"markerGroup"],K=this.xAxis,et=D(W.enabled,!K||!!K.isRadial||null,this.closestPointRangePx>=W.enabledThreshold*W.radius);if(W.enabled!==!1||this._hasPointMarkers)for(S=0;S<h.length;S++)if(I=(E=(b=h[S]).graphic)?"animate":"attr",N=b.marker||{},U=!!b.marker,(et&&N.enabled===void 0||N.enabled)&&!b.isNull&&b.visible!==!1){let rt=D(N.symbol,this.symbol,"rect");Z=this.markerAttribs(b,b.selected&&"select"),this.enabledDataSorting&&(b.startXPos=K.reversed?-(Z.width||0):K.width);let ot=b.isInside!==!1;if(!E&&ot&&((Z.width||0)>0||b.hasImage)&&(b.graphic=E=_.renderer.symbol(rt,Z.x,Z.y,Z.width,Z.height,U?N:W).add(q),this.enabledDataSorting&&_.hasRendered&&(E.attr({x:b.startXPos}),I="animate")),E&&I==="animate"&&E[ot?"show":"hide"](ot).animate(Z),E){let ht=this.pointAttribs(b,at||!b.selected?void 0:"select");at?lt&&E.css({fill:ht.fill}):E[I](ht)}E&&E.addClass(b.getClassName(),!0)}else E&&(b.graphic=E.destroy())}markerAttribs(h,S){let b=this.options,E=b.marker,I=h.marker||{},N=I.symbol||E.symbol,U={},Z,_,at=D(I.radius,E&&E.radius);S&&(Z=E.states[S],at=D((_=I.states&&I.states[S])&&_.radius,Z&&Z.radius,at&&at+(Z&&Z.radiusPlus||0))),h.hasImage=N&&N.indexOf("url")===0,h.hasImage&&(at=0);let lt=h.pos();return P(at)&<&&(b.crisp&&(lt[0]=L(lt[0],h.hasImage?0:N==="rect"?(E==null?void 0:E.lineWidth)||0:1)),U.x=lt[0]-at,U.y=lt[1]-at),at&&(U.width=U.height=2*at),U}pointAttribs(h,S){let b=this.options.marker,E=h&&h.options,I=E&&E.marker||{},N=E&&E.color,U=h&&h.color,Z=h&&h.zone&&h.zone.color,_,at,lt=this.color,Y,W,q=D(I.lineWidth,b.lineWidth),K=1;return lt=N||Z||U||lt,Y=I.fillColor||b.fillColor||lt,W=I.lineColor||b.lineColor||lt,S=S||"normal",_=b.states[S]||{},q=D((at=I.states&&I.states[S]||{}).lineWidth,_.lineWidth,q+D(at.lineWidthPlus,_.lineWidthPlus,0)),Y=at.fillColor||_.fillColor||Y,{stroke:W=at.lineColor||_.lineColor||W,"stroke-width":q,fill:Y,opacity:K=D(at.opacity,_.opacity,K)}}destroy(h){let S,b,E,I=this,N=I.chart,U=/AppleWebKit\/533/.test(k.navigator.userAgent),Z=I.data||[];for(n(I,"destroy",{keepEventsForUpdate:h}),this.removeEvents(h),(I.axisTypes||[]).forEach(function(_){(E=I[_])&&E.series&&(o(E.series,I),E.isDirty=E.forceRedraw=!0)}),I.legendItem&&I.chart.legend.destroyItem(I),S=Z.length;S--;)(b=Z[S])&&b.destroy&&b.destroy();for(let _ of I.zones)l(_,void 0,!0);$.clearTimeout(I.animationTimeout),T(I,function(_,at){_ instanceof F&&!_.survive&&_[U&&at==="group"?"hide":"destroy"]()}),N.hoverSeries===I&&(N.hoverSeries=void 0),o(N.series,I),N.orderItems("series"),T(I,function(_,at){h&&at==="hcEvents"||delete I[at]})}applyZones(){let{area:h,chart:S,graph:b,zones:E,points:I,xAxis:N,yAxis:U,zoneAxis:Z}=this,{inverted:_,renderer:at}=S,lt=this[`${Z}Axis`],{isXAxis:Y,len:W=0}=lt||{},q=((b==null?void 0:b.strokeWidth())||0)/2+1,K=(et,rt=0,ot=0)=>{_&&(ot=W-ot);let{translated:ht=0,lineClip:dt}=et,ct=ot-ht;dt==null||dt.push(["L",rt,Math.abs(ct)<q?ot-q*(ct<=0?-1:1):ht])};if(E.length&&(b||h)&<&&P(lt.min)){let et=lt.getExtremes().max,rt=dt=>{dt.forEach((ct,pt)=>{(ct[0]==="M"||ct[0]==="L")&&(dt[pt]=[ct[0],Y?W-ct[1]:ct[1],Y?ct[2]:W-ct[2]])})};if(E.forEach(dt=>{dt.lineClip=[],dt.translated=y(lt.toPixels(D(dt.value,et),!0)||0,0,W)}),b&&!this.showLine&&b.hide(),h&&h.hide(),Z==="y"&&I.length<N.len)for(let dt of I){let{plotX:ct,plotY:pt,zone:ut}=dt,xt=ut&&E[E.indexOf(ut)-1];ut&&K(ut,ct,pt),xt&&K(xt,ct,pt)}let ot=[],ht=lt.toPixels(lt.getExtremes().min,!0);E.forEach(dt=>{var Mt,kt;let ct=dt.lineClip||[],pt=Math.round(dt.translated||0);N.reversed&&ct.reverse();let{clip:ut,simpleClip:xt}=dt,yt=0,mt=0,ft=N.len,vt=U.len;Y?(yt=pt,ft=ht):(mt=pt,vt=ht);let bt=[["M",yt,mt],["L",ft,mt],["L",ft,vt],["L",yt,vt],["Z"]],St=[bt[0],...ct,bt[1],bt[2],...ot,bt[3],bt[4]];ot=ct.reverse(),ht=pt,_&&(rt(St),h&&rt(bt)),ut?(ut.animate({d:St}),xt==null||xt.animate({d:bt})):(ut=dt.clip=at.path(St),h&&(xt=dt.simpleClip=at.path(bt))),b&&((Mt=dt.graph)==null||Mt.clip(ut)),h&&((kt=dt.area)==null||kt.clip(xt))})}else this.visible&&(b&&b.show(),h&&h.show())}plotGroup(h,S,b,E,I){let N=this[h],U=!N,Z={visibility:b,zIndex:E||.1};return u(this.opacity)&&!this.chart.styledMode&&this.state!=="inactive"&&(Z.opacity=this.opacity),N||(this[h]=N=this.chart.renderer.g().add(I)),N.addClass("highcharts-"+S+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(u(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(N.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),N.attr(Z)[U?"attr":"animate"](this.getPlotBox(S)),N}getPlotBox(h){let S=this.xAxis,b=this.yAxis,E=this.chart,I=E.inverted&&!E.polar&&S&&this.invertible&&h==="series";return E.inverted&&(S=b,b=this.xAxis),{translateX:S?S.left:E.plotLeft,translateY:b?b.top:E.plotTop,rotation:I?90:0,rotationOriginX:I?(S.len-b.len)/2:0,rotationOriginY:I?(S.len+b.len)/2:0,scaleX:I?-1:1,scaleY:1}}removeEvents(h){let{eventsToUnbind:S}=this;h||H(this),S.length&&(S.forEach(b=>{b()}),S.length=0)}render(){var at,lt,Y,W,q;let h=this,{chart:S,options:b,hasRendered:E}=h,I=C(b.animation),N=h.visible?"inherit":"hidden",U=b.zIndex,Z=S.seriesGroup,_=h.finishedAnimating?0:I.duration;n(this,"render"),h.plotGroup("group","series",N,U,Z),h.markerGroup=h.plotGroup("markerGroup","markers",N,U,Z),b.clip!==!1&&h.setClip(),_&&((at=h.animate)==null||at.call(h,!0)),h.drawGraph&&(h.drawGraph(),h.applyZones()),h.visible&&h.drawPoints(),(lt=h.drawDataLabels)==null||lt.call(h),(Y=h.redrawPoints)==null||Y.call(h),b.enableMouseTracking&&((W=h.drawTracker)==null||W.call(h)),_&&((q=h.animate)==null||q.call(h)),E||(_&&I.defer&&(_+=I.defer),h.animationTimeout=c(()=>{h.afterAnimate()},_||0)),h.isDirty=!1,h.hasRendered=!0,n(h,"afterRender")}redraw(){let h=this.isDirty||this.isDirtyData;this.translate(),this.render(),h&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(h,S){let{xAxis:b,yAxis:E}=this,I=this.chart.inverted;return this.searchKDTree({clientX:I?b.len-h.chartY+b.pos:h.chartX-b.pos,plotY:I?E.len-h.chartX+E.pos:h.chartY-E.pos},S,h)}buildKDTree(h){this.buildingKdTree=!0;let S=this,b=S.options.findNearestPointBy.indexOf("y")>-1?2:1;delete S.kdTree,c(function(){S.kdTree=function E(I,N,U){let Z,_,at=I==null?void 0:I.length;if(at)return Z=S.kdAxisArray[N%U],I.sort((lt,Y)=>(lt[Z]||0)-(Y[Z]||0)),{point:I[_=Math.floor(at/2)],left:E(I.slice(0,_),N+1,U),right:E(I.slice(_+1),N+1,U)}}(S.getValidPoints(void 0,!S.directTouch),b,b),S.buildingKdTree=!1},S.options.kdNow||(h==null?void 0:h.type)==="touchstart"?0:1)}searchKDTree(h,S,b){let E=this,[I,N]=this.kdAxisArray,U=S?"distX":"dist",Z=(E.options.findNearestPointBy||"").indexOf("y")>-1?2:1,_=!!E.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(b),this.kdTree)return function at(lt,Y,W,q){var ut;let K=Y.point,et=E.kdAxisArray[W%q],rt,ot,ht=K;(function(xt,yt){var Tt;let mt=xt[I],ft=yt[I],vt=u(mt)&&u(ft)?mt-ft:null,bt=xt[N],St=yt[N],Mt=u(bt)&&u(St)?bt-St:0,kt=_&&((Tt=yt.marker)==null?void 0:Tt.radius)||0;yt.dist=Math.sqrt((vt&&vt*vt||0)+Mt*Mt)-kt,yt.distX=u(vt)?Math.abs(vt)-kt:Number.MAX_VALUE})(lt,K);let dt=(lt[et]||0)-(K[et]||0)+(_&&((ut=K.marker)==null?void 0:ut.radius)||0),ct=dt<0?"left":"right",pt=dt<0?"right":"left";return Y[ct]&&(ht=(rt=at(lt,Y[ct],W+1,q))[U]<ht[U]?rt:K),Y[pt]&&Math.sqrt(dt*dt)<ht[U]&&(ht=(ot=at(lt,Y[pt],W+1,q))[U]<ht[U]?ot:ht),ht}(h,this.kdTree,Z,Z)}pointPlacementToXValue(){let{options:h,xAxis:S}=this,b=h.pointPlacement;return b==="between"&&(b=S.reversed?-.5:.5),P(b)?b*(h.pointRange||S.pointRange):0}isPointInside(h){let{chart:S,xAxis:b,yAxis:E}=this,{plotX:I=-1,plotY:N=-1}=h;return N>=0&&N<=(E?E.len:S.plotHeight)&&I>=0&&I<=(b?b.len:S.plotWidth)}drawTracker(){var Y;let h=this,S=h.options,b=S.trackByArea,E=[].concat((b?h.areaPath:h.graphPath)||[]),I=h.chart,N=I.pointer,U=I.renderer,Z=((Y=I.options.tooltip)==null?void 0:Y.snap)||0,_=()=>{S.enableMouseTracking&&I.hoverSeries!==h&&h.onMouseOver()},at="rgba(192,192,192,"+(g?1e-4:.002)+")",lt=h.tracker;lt?lt.attr({d:E}):h.graph&&(h.tracker=lt=U.path(E).attr({visibility:h.visible?"inherit":"hidden",zIndex:2}).addClass(b?"highcharts-tracker-area":"highcharts-tracker-line").add(h.group),I.styledMode||lt.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:at,fill:b?at:"none","stroke-width":h.graph.strokeWidth()+(b?0:2*Z)}),[h.tracker,h.markerGroup,h.dataLabelsGroup].forEach(W=>{W&&(W.addClass("highcharts-tracker").on("mouseover",_).on("mouseout",q=>{N==null||N.onTrackerMouseOut(q)}),S.cursor&&!I.styledMode&&W.css({cursor:S.cursor}),W.on("touchstart",_))})),n(this,"afterDrawTracker")}addPoint(h,S,b,E,I){let N,U,Z=this.options,_=this.data,at=this.chart,lt=this.xAxis,Y=lt&<.hasNames&<.names,W=Z.data,q=this.xData;S=D(S,!0);let K={series:this};this.pointClass.prototype.applyOptions.apply(K,[h]);let et=K.x;if(U=q.length,this.requireSorting&&et<q[U-1])for(N=!0;U&&q[U-1]>et;)U--;this.updateParallelArrays(K,"splice",[U,0,0]),this.updateParallelArrays(K,U),Y&&K.name&&(Y[et]=K.name),W.splice(U,0,h),(N||this.processedData)&&(this.data.splice(U,0,null),this.processData()),Z.legendType==="point"&&this.generatePoints(),b&&(_[0]&&_[0].remove?_[0].remove(!1):(_.shift(),this.updateParallelArrays(K,"shift"),W.shift())),I!==!1&&n(this,"addPoint",{point:K}),this.isDirty=!0,this.isDirtyData=!0,S&&at.redraw(E)}removePoint(h,S,b){let E=this,I=E.data,N=I[h],U=E.points,Z=E.chart,_=function(){U&&U.length===I.length&&U.splice(h,1),I.splice(h,1),E.options.data.splice(h,1),E.updateParallelArrays(N||{series:E},"splice",[h,1]),N&&N.destroy(),E.isDirty=!0,E.isDirtyData=!0,S&&Z.redraw()};j(b,Z),S=D(S,!0),N?N.firePointEvent("remove",null,_):_()}remove(h,S,b,E){let I=this,N=I.chart;function U(){I.destroy(E),N.isDirtyLegend=N.isDirtyBox=!0,N.linkSeries(E),D(h,!0)&&N.redraw(S)}b!==!1?n(I,"remove",null,U):U()}update(h,S){var rt,ot,ht;n(this,"update",{options:h=m(h,this.userOptions)});let b=this,E=b.chart,I=b.userOptions,N=b.initialType||b.type,U=E.options.plotOptions,Z=A[N].prototype,_=b.finishedAnimating&&{animation:!1},at={},lt,Y,W=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],q=h.type||I.type||E.options.chart.type,K=!(this.hasDerivedData||q&&q!==this.type||h.pointStart!==void 0||h.pointInterval!==void 0||h.relativeXValue!==void 0||h.joinBy||h.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(dt=>b.hasOptionChanged(dt)));q=q||N,K&&(W.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),h.visible!==!1&&W.push("area","graph"),b.parallelArrays.forEach(function(dt){W.push(dt+"Data")}),h.data&&(h.dataSorting&&t(b.options.dataSorting,h.dataSorting),this.setData(h.data,!1))),h=w(I,{index:I.index===void 0?b.index:I.index,pointStart:((rt=U==null?void 0:U.series)==null?void 0:rt.pointStart)??I.pointStart??((ot=b.xData)==null?void 0:ot[0])},!K&&{data:b.options.data},h,_),K&&h.data&&(h.data=b.options.data),(W=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(W)).forEach(function(dt){W[dt]=b[dt],delete b[dt]});let et=!1;if(A[q]){if(et=q!==b.type,b.remove(!1,!1,!1,!0),et)if(E.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(b,A[q].prototype);else{let dt=Object.hasOwnProperty.call(b,"hcEvents")&&b.hcEvents;for(Y in Z)b[Y]=void 0;t(b,A[q].prototype),dt?b.hcEvents=dt:delete b.hcEvents}}else e(17,!0,E,{missingModuleFor:q});if(W.forEach(function(dt){b[dt]=W[dt]}),b.init(E,h),K&&this.points)for(let dt of((lt=b.options).visible===!1?(at.graphic=1,at.dataLabel=1):(this.hasMarkerChanged(lt,I)&&(at.graphic=1),(ht=b.hasDataLabels)!=null&&ht.call(b)||(at.dataLabel=1)),this.points))dt&&dt.series&&(dt.resolveColor(),Object.keys(at).length&&dt.destroyElements(at),lt.showInLegend===!1&&dt.legendItem&&E.legend.destroyItem(dt));b.initialType=N,E.linkSeries(),E.setSortedData(),et&&b.linkedSeries.length&&(b.isDirtyData=!0),n(this,"afterUpdate"),D(S,!0)&&E.redraw(!!K&&void 0)}setName(h){this.name=this.options.name=this.userOptions.name=h,this.chart.isDirtyLegend=!0}hasOptionChanged(h){var U,Z;let S=this.chart,b=this.options[h],E=S.options.plotOptions,I=this.userOptions[h],N=D((U=E==null?void 0:E[this.type])==null?void 0:U[h],(Z=E==null?void 0:E.series)==null?void 0:Z[h]);return I&&!u(N)?b!==I:b!==D(N,b)}onMouseOver(){let h=this.chart,S=h.hoverSeries,b=h.pointer;b==null||b.setHoverChartIndex(),S&&S!==this&&S.onMouseOut(),this.options.events.mouseOver&&n(this,"mouseOver"),this.setState("hover"),h.hoverSeries=this}onMouseOut(){let h=this.options,S=this.chart,b=S.tooltip,E=S.hoverPoint;S.hoverSeries=null,E&&E.onMouseOut(),this&&h.events.mouseOut&&n(this,"mouseOut"),b&&!this.stickyTracking&&(!b.shared||this.noSharedTooltip)&&b.hide(),S.series.forEach(function(I){I.setState("",!0)})}setState(h,S){let b=this,E=b.options,I=b.graph,N=E.inactiveOtherPoints,U=E.states,Z=D(U[h||"normal"]&&U[h||"normal"].animation,b.chart.options.chart.animation),_=E.lineWidth,at=E.opacity;if(h=h||"",b.state!==h&&([b.group,b.markerGroup,b.dataLabelsGroup].forEach(function(lt){lt&&(b.state&<.removeClass("highcharts-series-"+b.state),h&<.addClass("highcharts-series-"+h))}),b.state=h,!b.chart.styledMode)){if(U[h]&&U[h].enabled===!1)return;if(h&&(_=U[h].lineWidth||_+(U[h].lineWidthPlus||0),at=D(U[h].opacity,at)),I&&!I.dashstyle&&P(_))for(let lt of[I,...this.zones.map(Y=>Y.graph)])lt==null||lt.animate({"stroke-width":_},Z);N||[b.group,b.markerGroup,b.dataLabelsGroup,b.labelBySeries].forEach(function(lt){lt&<.animate({opacity:at},Z)})}S&&N&&b.points&&b.setAllPointsToState(h||void 0)}setAllPointsToState(h){this.points.forEach(function(S){S.setState&&S.setState(h)})}setVisible(h,S){var Z;let b=this,E=b.chart,I=E.options.chart.ignoreHiddenSeries,N=b.visible;b.visible=h=b.options.visible=b.userOptions.visible=h===void 0?!N:h;let U=h?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(_=>{var at;(at=b[_])==null||at[U]()}),(E.hoverSeries===b||((Z=E.hoverPoint)==null?void 0:Z.series)===b)&&b.onMouseOut(),b.legendItem&&E.legend.colorizeItem(b,h),b.isDirty=!0,b.options.stacking&&E.series.forEach(_=>{_.options.stacking&&_.visible&&(_.isDirty=!0)}),b.linkedSeries.forEach(_=>{_.setVisible(h,!1)}),I&&(E.isDirtyBox=!0),n(b,U),S!==!1&&E.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(h){this.selected=h=this.options.selected=h===void 0?!this.selected:h,this.checkbox&&(this.checkbox.checked=h),n(this,h?"select":"unselect")}shouldShowTooltip(h,S,b={}){return b.series=this,b.visiblePlotOnly=!0,this.chart.isInsidePlot(h,S,b)}drawLegendSymbol(h,S){var b;(b=it[this.options.legendSymbol||"rectangle"])==null||b.call(this,h,S)}}return M.defaultOptions=Q,M.types=X.seriesTypes,M.registerType=X.registerSeriesType,t(M.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:tt,requireSorting:!0,sorted:!0}),X.series=M,M}),gt(z,"Core/Legend/Legend.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Foundation.js"],z["Core/Globals.js"],z["Core/Series/Series.js"],z["Core/Series/Point.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Templating.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X){var F;let{animObject:$,setAnimation:C}=V,{registerEventOptions:j}=J,{composed:B,marginNames:R}=st,{distribute:g}=tt,{format:k}=Q,{addEvent:A,createElement:v,css:p,defined:y,discardElement:O,find:L,fireEvent:u,isNumber:l,merge:m,pick:o,pushUnique:e,relativeLength:t,stableSort:s,syncTimeout:n}=X;class i{constructor(r,f){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=r,this.setOptions(f),f.enabled&&(this.render(),j(this,f),A(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),A(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(r){let f=o(r.padding,8);this.options=r,this.chart.styledMode||(this.itemStyle=r.itemStyle,this.itemHiddenStyle=m(this.itemStyle,r.itemHiddenStyle)),this.itemMarginTop=r.itemMarginTop,this.itemMarginBottom=r.itemMarginBottom,this.padding=f,this.initialItemY=f-5,this.symbolWidth=o(r.symbolWidth,16),this.pages=[],this.proximate=r.layout==="proximate"&&!this.chart.inverted,this.baseline=void 0}update(r,f){let P=this.chart;this.setOptions(m(!0,this.options,r)),"events"in this.options&&j(this,this.options),this.destroy(),P.isDirtyLegend=P.isDirtyBox=!0,o(f,!0)&&P.redraw(),u(this,"afterUpdate",{redraw:f})}colorizeItem(r,f){let{area:P,group:d,label:w,line:T,symbol:D}=r.legendItem||{};if(d==null||d[f?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,x=H.color,{fillColor:c,fillOpacity:M,lineColor:G,marker:h}=r.options,S=b=>(!f&&(b.fill&&(b.fill=x),b.stroke&&(b.stroke=x)),b);w==null||w.css(m(f?this.itemStyle:H)),T==null||T.attr(S({stroke:G||r.color})),D&&D.attr(S(h&&D.isMarker?r.pointAttribs():{fill:r.color})),P==null||P.attr(S({fill:c||r.color,"fill-opacity":c?1:M??.75}))}u(this,"afterColorizeItem",{item:r,visible:f})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(r){let{group:f,x:P=0,y:d=0}=r.legendItem||{},w=this.options,T=w.symbolPadding,D=!w.rtl,H=r.checkbox;if(f&&f.element){let x={translateX:D?P:this.legendWidth-P-2*T-4,translateY:d};f[y(f.translateY)?"animate":"attr"](x,void 0,()=>{u(this,"afterPositionItem",{item:r})})}H&&(H.x=P,H.y=d)}destroyItem(r){let f=r.checkbox,P=r.legendItem||{};for(let d of["group","label","line","symbol"])P[d]&&(P[d]=P[d].destroy());f&&O(f),r.legendItem=void 0}destroy(){for(let r of this.getAllItems())this.destroyItem(r);for(let r of["clipRect","up","down","pager","nav","box","title","group"])this[r]&&(this[r]=this[r].destroy());this.display=null}positionCheckboxes(){let r,f=this.group&&this.group.alignAttr,P=this.clipHeight||this.legendHeight,d=this.titleHeight;f&&(r=f.translateY,this.allItems.forEach(function(w){let T,D=w.checkbox;D&&(T=r+d+D.y+(this.scrollOffset||0)+3,p(D,{left:f.translateX+w.checkboxOffset+D.x-20+"px",top:T+"px",display:this.proximate||T>r-6&&T<r+P-6?"":"none"}))},this))}renderTitle(){let r=this.options,f=this.padding,P=r.title,d,w=0;P.text&&(this.title||(this.title=this.chart.renderer.label(P.text,f-3,f-4,void 0,void 0,void 0,r.useHTML,void 0,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(P.style),this.title.add(this.group)),P.width||this.title.css({width:this.maxLegendWidth+"px"}),w=(d=this.title.getBBox()).height,this.offsetWidth=d.width,this.contentGroup.attr({translateY:w})),this.titleHeight=w}setText(r){let f=this.options;r.legendItem.label.attr({text:f.labelFormat?k(f.labelFormat,r,this.chart):f.labelFormatter.call(r)})}renderItem(r){let f=r.legendItem=r.legendItem||{},P=this.chart,d=P.renderer,w=this.options,T=w.layout==="horizontal",D=this.symbolWidth,H=w.symbolPadding||0,x=this.itemStyle,c=this.itemHiddenStyle,M=T?o(w.itemDistance,20):0,G=!w.rtl,h=!r.series,S=!h&&r.series.drawLegendSymbol?r.series:r,b=S.options,E=!!this.createCheckboxForItem&&b&&b.showCheckbox,I=w.useHTML,N=r.options.className,U=f.label,Z=D+H+M+(E?20:0);!U&&(f.group=d.g("legend-item").addClass("highcharts-"+S.type+"-series highcharts-color-"+r.colorIndex+(N?" "+N:"")+(h?" highcharts-series-"+r.index:"")).attr({zIndex:1}).add(this.scrollGroup),f.label=U=d.text("",G?D+H:-H,this.baseline||0,I),P.styledMode||U.css(m(r.visible?x:c)),U.attr({align:G?"left":"right",zIndex:2}).add(f.group),!this.baseline&&(this.fontMetrics=d.fontMetrics(U),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,U.attr("y",this.baseline),this.symbolHeight=o(w.symbolHeight,this.fontMetrics.f),w.squareSymbol&&(this.symbolWidth=o(w.symbolWidth,Math.max(this.symbolHeight,16)),Z=this.symbolWidth+H+M+(E?20:0),G&&U.attr("x",this.symbolWidth+H))),S.drawLegendSymbol(this,r),this.setItemEvents&&this.setItemEvents(r,U,I)),E&&!r.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(r),this.colorizeItem(r,r.visible),(P.styledMode||!x.width)&&U.css({width:(w.itemWidth||this.widthOption||P.spacingBox.width)-Z+"px"}),this.setText(r);let _=U.getBBox(),at=this.fontMetrics&&this.fontMetrics.h||0;r.itemWidth=r.checkboxOffset=w.itemWidth||f.labelWidth||_.width+Z,this.maxItemWidth=Math.max(this.maxItemWidth,r.itemWidth),this.totalItemWidth+=r.itemWidth,this.itemHeight=r.itemHeight=Math.round(f.labelHeight||(_.height>1.5*at?_.height:at))}layoutItem(r){let f=this.options,P=this.padding,d=f.layout==="horizontal",w=r.itemHeight,T=this.itemMarginBottom,D=this.itemMarginTop,H=d?o(f.itemDistance,20):0,x=this.maxLegendWidth,c=f.alignColumns&&this.totalItemWidth>x?this.maxItemWidth:r.itemWidth,M=r.legendItem||{};d&&this.itemX-P+c>x&&(this.itemX=P,this.lastLineHeight&&(this.itemY+=D+this.lastLineHeight+T),this.lastLineHeight=0),this.lastItemY=D+this.itemY+T,this.lastLineHeight=Math.max(w,this.lastLineHeight),M.x=this.itemX,M.y=this.itemY,d?this.itemX+=c:(this.itemY+=D+w+T,this.lastLineHeight=w),this.offsetWidth=this.widthOption||Math.max((d?this.itemX-P-(r.checkbox?0:H):c)+P,this.offsetWidth)}getAllItems(){let r=[];return this.chart.series.forEach(function(f){let P=f&&f.options;f&&o(P.showInLegend,!y(P.linkedTo)&&void 0,!0)&&(r=r.concat((f.legendItem||{}).labels||(P.legendType==="point"?f.data:f)))}),u(this,"afterGetAllItems",{allItems:r}),r}getAlignment(){let r=this.options;return this.proximate?r.align.charAt(0)+"tv":r.floating?"":r.align.charAt(0)+r.verticalAlign.charAt(0)+r.layout.charAt(0)}adjustMargins(r,f){let P=this.chart,d=this.options,w=this.getAlignment();w&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(T,D){T.test(w)&&!y(r[D])&&(P[R[D]]=Math.max(P[R[D]],P.legend[(D+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][D]*d[D%2?"x":"y"]+o(d.margin,12)+f[D]+(P.titleOffset[D]||0)))})}proximatePositions(){let r,f=this.chart,P=[],d=this.options.align==="left";for(let w of(this.allItems.forEach(function(T){let D,H,x=d,c,M;T.yAxis&&(T.xAxis.options.reversed&&(x=!x),T.points&&(D=L(x?T.points:T.points.slice(0).reverse(),function(G){return l(G.plotY)})),H=this.itemMarginTop+T.legendItem.label.getBBox().height+this.itemMarginBottom,M=T.yAxis.top-f.plotTop,c=T.visible?(D?D.plotY:T.yAxis.height)+(M-.3*H):M+T.yAxis.height,P.push({target:c,size:H,item:T}))},this),g(P,f.plotHeight)))r=w.item.legendItem||{},l(w.pos)&&(r.y=f.plotTop-f.spacing[0]+w.pos)}render(){let r=this.chart,f=r.renderer,P=this.options,d=this.padding,w=this.getAllItems(),T,D,H,x=this.group,c,M=this.box;this.itemX=d,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=t(P.width,r.spacingBox.width-d),c=r.spacingBox.width-2*d-P.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(c/=2),this.maxLegendWidth=this.widthOption||c,x||(this.group=x=f.g("legend").addClass(P.className||"").attr({zIndex:7}).add(),this.contentGroup=f.g().attr({zIndex:1}).add(x),this.scrollGroup=f.g().add(this.contentGroup)),this.renderTitle(),s(w,(G,h)=>(G.options&&G.options.legendIndex||0)-(h.options&&h.options.legendIndex||0)),P.reversed&&w.reverse(),this.allItems=w,this.display=T=!!w.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,w.forEach(this.renderItem,this),w.forEach(this.layoutItem,this),D=(this.widthOption||this.offsetWidth)+d,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+d,M||(this.box=M=f.rect().addClass("highcharts-legend-box").attr({r:P.borderRadius}).add(x)),r.styledMode||M.attr({stroke:P.borderColor,"stroke-width":P.borderWidth||0,fill:P.backgroundColor||"none"}).shadow(P.shadow),D>0&&H>0&&M[M.placed?"animate":"attr"](M.crisp.call({},{x:0,y:0,width:D,height:H},M.strokeWidth())),x[T?"show":"hide"](),r.styledMode&&x.getStyle("display")==="none"&&(D=H=0),this.legendWidth=D,this.legendHeight=H,T&&this.align(),this.proximate||this.positionItems(),u(this,"afterRender")}align(r=this.chart.spacingBox){let f=this.chart,P=this.options,d=r.y;/(lth|ct|rth)/.test(this.getAlignment())&&f.titleOffset[0]>0?d+=f.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&f.titleOffset[2]>0&&(d-=f.titleOffset[2]),d!==r.y&&(r=m(r,{y:d})),f.hasRendered||(this.group.placed=!1),this.group.align(m(P,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":P.verticalAlign}),!0,r)}handleOverflow(r){let f=this,P=this.chart,d=P.renderer,w=this.options,T=w.y,D=w.verticalAlign==="top",H=this.padding,x=w.maxHeight,c=w.navigation,M=o(c.animation,!0),G=c.arrowSize||12,h=this.pages,S=this.allItems,b=function(lt){typeof lt=="number"?at.attr({height:lt}):at&&(f.clipRect=at.destroy(),f.contentGroup.clip()),f.contentGroup.div&&(f.contentGroup.div.style.clip=lt?"rect("+H+"px,9999px,"+(H+lt)+"px,0)":"auto")},E=function(lt){return f[lt]=d.circle(0,0,1.3*G).translate(G/2,G/2).add(_),P.styledMode||f[lt].attr("fill","rgba(0,0,0,0.0001)"),f[lt]},I,N,U,Z=P.spacingBox.height+(D?-T:T)-H,_=this.nav,at=this.clipRect;return w.layout!=="horizontal"||w.verticalAlign==="middle"||w.floating||(Z/=2),x&&(Z=Math.min(Z,x)),h.length=0,r&&Z>0&&r>Z&&c.enabled!==!1?(this.clipHeight=I=Math.max(Z-20-this.titleHeight-H,0),this.currentPage=o(this.currentPage,1),this.fullHeight=r,S.forEach((lt,Y)=>{let W=(U=lt.legendItem||{}).y||0,q=Math.round(U.label.getBBox().height),K=h.length;(!K||W-h[K-1]>I&&(N||W)!==h[K-1])&&(h.push(N||W),K++),U.pageIx=K-1,N&&((S[Y-1].legendItem||{}).pageIx=K-1),Y===S.length-1&&W+q-h[K-1]>I&&W>h[K-1]&&(h.push(W),U.pageIx=K),W!==N&&(N=W)}),at||(at=f.clipRect=d.clipRect(0,H-2,9999,0),f.contentGroup.clip(at)),b(I),_||(this.nav=_=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,G,G).add(_),E("upTracker").on("click",function(){f.scroll(-1,M)}),this.pager=d.text("",15,10).addClass("highcharts-legend-navigation"),!P.styledMode&&c.style&&this.pager.css(c.style),this.pager.add(_),this.down=d.symbol("triangle-down",0,0,G,G).add(_),E("downTracker").on("click",function(){f.scroll(1,M)})),f.scroll(0),r=Z):_&&(b(),this.nav=_.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),r}scroll(r,f){let P=this.chart,d=this.pages,w=d.length,T=this.clipHeight,D=this.options.navigation,H=this.pager,x=this.padding,c=this.currentPage+r;c>w&&(c=w),c>0&&(f!==void 0&&C(f,P),this.nav.attr({translateX:x,translateY:T+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(M){M.attr({class:c===1?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:c+"/"+w}),[this.down,this.downTracker].forEach(function(M){M.attr({x:18+this.pager.getBBox().width,class:c===w?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),P.styledMode||(this.up.attr({fill:c===1?D.inactiveColor:D.activeColor}),this.upTracker.css({cursor:c===1?"default":"pointer"}),this.down.attr({fill:c===w?D.inactiveColor:D.activeColor}),this.downTracker.css({cursor:c===w?"default":"pointer"})),this.scrollOffset=-d[c-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=c,this.positionCheckboxes(),n(()=>{u(this,"afterScroll",{currentPage:c})},$(o(f,P.renderer.globalAnimation,!0)).duration))}setItemEvents(r,f,P){let d=this,w=r.legendItem||{},T=d.chart.renderer.boxWrapper,D=r instanceof it,H=r instanceof nt,x="highcharts-legend-"+(D?"point":"series")+"-active",c=d.chart.styledMode,M=P?[f,w.symbol]:[w.group],G=h=>{d.allItems.forEach(S=>{r!==S&&[S].concat(S.linkedSeries||[]).forEach(b=>{b.setState(h,!D)})})};for(let h of M)h&&h.on("mouseover",function(){r.visible&&G("inactive"),r.setState("hover"),r.visible&&T.addClass(x),c||f.css(d.options.itemHoverStyle)}).on("mouseout",function(){d.chart.styledMode||f.css(m(r.visible?d.itemStyle:d.itemHiddenStyle)),G(""),T.removeClass(x),r.setState()}).on("click",function(S){let b=function(){r.setVisible&&r.setVisible(),G(r.visible?"inactive":"")};T.removeClass(x),u(d,"itemClick",{browserEvent:S,legendItem:r},b),D?r.firePointEvent("legendItemClick",{browserEvent:S}):H&&u(r,"legendItemClick",{browserEvent:S})})}createCheckboxForItem(r){r.checkbox=v("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:r.selected,defaultChecked:r.selected},this.options.itemCheckboxStyle,this.chart.container),A(r.checkbox,"click",function(f){let P=f.target;u(r.series||r,"checkboxClick",{checked:P.checked,item:r},function(){r.select()})})}}return(F=i||(i={})).compose=function(a){e(B,"Core.Legend")&&A(a,"beforeMargins",function(){this.legend=new F(this,this.options.legend)})},i}),gt(z,"Core/Chart/Chart.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Axis/Axis.js"],z["Core/Defaults.js"],z["Core/Templating.js"],z["Core/Foundation.js"],z["Core/Globals.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/SVGRenderer.js"],z["Core/Time.js"],z["Core/Utilities.js"],z["Core/Renderer/HTML/AST.js"],z["Core/Axis/Tick.js"]],function(V,J,st,nt,it,tt,Q,X,F,$,C,j,B,R){let{animate:g,animObject:k,setAnimation:A}=V,{defaultOptions:v,defaultTime:p}=st,{numberFormat:y}=nt,{registerEventOptions:O}=it,{charts:L,doc:u,marginNames:l,svg:m,win:o}=tt,{seriesTypes:e}=F,{addEvent:t,attr:s,createElement:n,css:i,defined:a,diffObjects:r,discardElement:f,erase:P,error:d,extend:w,find:T,fireEvent:D,getStyle:H,isArray:x,isNumber:c,isObject:M,isString:G,merge:h,objectEach:S,pick:b,pInt:E,relativeLength:I,removeEvent:N,splat:U,syncTimeout:Z,uniqueKey:_}=j;class at{static chart(Y,W,q){return new at(Y,W,q)}constructor(Y,W,q){this.sharedClips={};let K=[...arguments];(G(Y)||Y.nodeName)&&(this.renderTo=K.shift()),this.init(K[0],K[1])}setZoomOptions(){let Y=this.options.chart,W=Y.zooming;this.zooming={...W,type:b(Y.zoomType,W.type),key:b(Y.zoomKey,W.key),pinchType:b(Y.pinchType,W.pinchType),singleTouch:b(Y.zoomBySingleTouch,W.singleTouch,!1),resetButton:h(W.resetButton,Y.resetZoomButton)}}init(Y,W){D(this,"init",{args:arguments},function(){let q=h(v,Y),K=q.chart;this.userOptions=w({},Y),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=W,this.isResizing=0,this.options=q,this.axes=[],this.series=[],this.time=Y.time&&Object.keys(Y.time).length?new C(Y.time):tt.time,this.numberFormatter=K.numberFormatter||y,this.styledMode=K.styledMode,this.hasCartesianSeries=K.showAxes,this.index=L.length,L.push(this),tt.chartCount++,O(this,K),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),D(this,"afterInit"),this.firstRender()})}initSeries(Y){let W=this.options.chart,q=Y.type||W.type,K=e[q];K||d(17,!0,this,{missingModuleFor:q});let et=new K;return typeof et.init=="function"&&et.init(this,Y),et}setSortedData(){this.getSeriesOrderByLinks().forEach(function(Y){Y.points||Y.data||!Y.enabledDataSorting||Y.setData(Y.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(Y,W){return Y.linkedSeries.length||W.linkedSeries.length?W.linkedSeries.length-Y.linkedSeries.length:0})}orderItems(Y,W=0){let q=this[Y],K=this.options[Y]=U(this.options[Y]).slice(),et=this.userOptions[Y]=this.userOptions[Y]?U(this.userOptions[Y]).slice():[];if(this.hasRendered&&(K.splice(W),et.splice(W)),q)for(let rt=W,ot=q.length;rt<ot;++rt){let ht=q[rt];ht&&(ht.index=rt,ht instanceof X&&(ht.name=ht.getName()),ht.options.isInternal||(K[rt]=ht.options,et[rt]=ht.userOptions))}}isInsidePlot(Y,W,q={}){var ft;let{inverted:K,plotBox:et,plotLeft:rt,plotTop:ot,scrollablePlotBox:ht}=this,{scrollLeft:dt=0,scrollTop:ct=0}=q.visiblePlotOnly&&((ft=this.scrollablePlotArea)==null?void 0:ft.scrollingContainer)||{},pt=q.series,ut=q.visiblePlotOnly&&ht||et,xt=q.inverted?W:Y,yt=q.inverted?Y:W,mt={x:xt,y:yt,isInsidePlot:!0,options:q};if(!q.ignoreX){let vt=pt&&(K&&!this.polar?pt.yAxis:pt.xAxis)||{pos:rt,len:1/0},bt=q.paneCoordinates?vt.pos+xt:rt+xt;bt>=Math.max(dt+rt,vt.pos)&&bt<=Math.min(dt+rt+ut.width,vt.pos+vt.len)||(mt.isInsidePlot=!1)}if(!q.ignoreY&&mt.isInsidePlot){let vt=!K&&q.axis&&!q.axis.isXAxis&&q.axis||pt&&(K?pt.xAxis:pt.yAxis)||{pos:ot,len:1/0},bt=q.paneCoordinates?vt.pos+yt:ot+yt;bt>=Math.max(ct+ot,vt.pos)&&bt<=Math.min(ct+ot+ut.height,vt.pos+vt.len)||(mt.isInsidePlot=!1)}return D(this,"afterIsInsidePlot",mt),mt.isInsidePlot}redraw(Y){D(this,"beforeRedraw");let W=this.hasCartesianSeries?this.axes:this.colorAxis||[],q=this.series,K=this.pointer,et=this.legend,rt=this.userOptions.legend,ot=this.renderer,ht=ot.isHidden(),dt=[],ct,pt,ut,xt=this.isDirtyBox,yt=this.isDirtyLegend,mt;for(ot.rootFontSize=ot.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),A(!!this.hasRendered&&Y,this),ht&&this.temporaryDisplay(),this.layOutTitles(!1),ut=q.length;ut--;)if(((mt=q[ut]).options.stacking||mt.options.centerInCategory)&&(pt=!0,mt.isDirty)){ct=!0;break}if(ct)for(ut=q.length;ut--;)(mt=q[ut]).options.stacking&&(mt.isDirty=!0);q.forEach(function(ft){ft.isDirty&&(ft.options.legendType==="point"?(typeof ft.updateTotals=="function"&&ft.updateTotals(),yt=!0):rt&&(rt.labelFormatter||rt.labelFormat)&&(yt=!0)),ft.isDirtyData&&D(ft,"updatedData")}),yt&&et&&et.options.enabled&&(et.render(),this.isDirtyLegend=!1),pt&&this.getStacks(),W.forEach(function(ft){ft.updateNames(),ft.setScale()}),this.getMargins(),W.forEach(function(ft){ft.isDirty&&(xt=!0)}),W.forEach(function(ft){let vt=ft.min+","+ft.max;ft.extKey!==vt&&(ft.extKey=vt,dt.push(function(){D(ft,"afterSetExtremes",w(ft.eventArgs,ft.getExtremes())),delete ft.eventArgs})),(xt||pt)&&ft.redraw()}),xt&&this.drawChartBox(),D(this,"predraw"),q.forEach(function(ft){(xt||ft.isDirty)&&ft.visible&&ft.redraw(),ft.isDirtyData=!1}),K&&K.reset(!0),ot.draw(),D(this,"redraw"),D(this,"render"),ht&&this.temporaryDisplay(!0),dt.forEach(function(ft){ft.call()})}get(Y){let W=this.series;function q(et){return et.id===Y||et.options&&et.options.id===Y}let K=T(this.axes,q)||T(this.series,q);for(let et=0;!K&&et<W.length;et++)K=T(W[et].points||[],q);return K}getAxes(){let Y=this.userOptions;for(let W of(D(this,"getAxes"),["xAxis","yAxis"]))for(let q of Y[W]=U(Y[W]||{}))new J(this,q,W);D(this,"afterGetAxes")}getSelectedPoints(){return this.series.reduce((Y,W)=>(W.getPointsCollection().forEach(q=>{b(q.selectedStaging,q.selected)&&Y.push(q)}),Y),[])}getSelectedSeries(){return this.series.filter(function(Y){return Y.selected})}setTitle(Y,W,q){this.applyDescription("title",Y),this.applyDescription("subtitle",W),this.applyDescription("caption",void 0),this.layOutTitles(q)}applyDescription(Y,W){let q=this,K=this.options[Y]=h(this.options[Y],W),et=this[Y];et&&W&&(this[Y]=et=et.destroy()),K&&!et&&((et=this.renderer.text(K.text,0,0,K.useHTML).attr({align:K.align,class:"highcharts-"+Y,zIndex:K.zIndex||4}).add()).update=function(rt,ot){q.applyDescription(Y,rt),q.layOutTitles(ot)},this.styledMode||et.css(w(Y==="title"?{fontSize:this.options.isStock?"1em":"1.2em"}:{},K.style)),this[Y]=et)}layOutTitles(Y=!0){let W=[0,0,0],q=this.renderer,K=this.spacingBox;["title","subtitle","caption"].forEach(function(rt){let ot=this[rt],ht=this.options[rt],dt=ht.verticalAlign||"top",ct=rt==="title"?dt==="top"?-3:0:dt==="top"?W[0]+2:0;if(ot){ot.css({width:(ht.width||K.width+(ht.widthAdjust||0))+"px"});let pt=q.fontMetrics(ot).b,ut=Math.round(ot.getBBox(ht.useHTML).height);ot.align(w({y:dt==="bottom"?pt:ct+pt,height:ut},ht),!1,"spacingBox"),ht.floating||(dt==="top"?W[0]=Math.ceil(W[0]+ut):dt==="bottom"&&(W[2]=Math.ceil(W[2]+ut)))}},this),W[0]&&(this.options.title.verticalAlign||"top")==="top"&&(W[0]+=this.options.title.margin),W[2]&&this.options.caption.verticalAlign==="bottom"&&(W[2]+=this.options.caption.margin);let et=!this.titleOffset||this.titleOffset.join(",")!==W.join(",");this.titleOffset=W,D(this,"afterLayOutTitles"),!this.isDirtyBox&&et&&(this.isDirtyBox=this.isDirtyLegend=et,this.hasRendered&&Y&&this.isDirtyBox&&this.redraw())}getContainerBox(){let Y=[].map.call(this.renderTo.children,q=>{if(q!==this.container){let K=q.style.display;return q.style.display="none",[q,K]}}),W={width:H(this.renderTo,"width",!0)||0,height:H(this.renderTo,"height",!0)||0};return Y.filter(Boolean).forEach(([q,K])=>{q.style.display=K}),W}getChartSize(){var rt;let Y=this.options.chart,W=Y.width,q=Y.height,K=this.getContainerBox(),et=K.height>1&&!(!((rt=this.renderTo.parentElement)!=null&&rt.style.height)&&this.renderTo.style.height==="100%");this.chartWidth=Math.max(0,W||K.width||600),this.chartHeight=Math.max(0,I(q,this.chartWidth)||(et?K.height:400)),this.containerBox=K}temporaryDisplay(Y){let W=this.renderTo,q;if(Y)for(;W&&W.style;)W.hcOrigStyle&&(i(W,W.hcOrigStyle),delete W.hcOrigStyle),W.hcOrigDetached&&(u.body.removeChild(W),W.hcOrigDetached=!1),W=W.parentNode;else for(;W&&W.style&&(u.body.contains(W)||W.parentNode||(W.hcOrigDetached=!0,u.body.appendChild(W)),(H(W,"display",!1)==="none"||W.hcOricDetached)&&(W.hcOrigStyle={display:W.style.display,height:W.style.height,overflow:W.style.overflow},q={display:"block",overflow:"hidden"},W!==this.renderTo&&(q.height=0),i(W,q),W.offsetWidth||W.style.setProperty("display","block","important")),(W=W.parentNode)!==u.body););}setClassName(Y){this.container.className="highcharts-container "+(Y||"")}getContainer(){var ut;let Y=this.options,W=Y.chart,q="data-highcharts-chart",K=_(),et,rt=this.renderTo;rt||(this.renderTo=rt=W.renderTo),G(rt)&&(this.renderTo=rt=u.getElementById(rt)),rt||d(13,!0,this);let ot=E(s(rt,q));c(ot)&&L[ot]&&L[ot].hasRendered&&L[ot].destroy(),s(rt,q,this.index),rt.innerHTML=B.emptyHTML,W.skipClone||rt.offsetWidth||this.temporaryDisplay(),this.getChartSize();let ht=this.chartHeight,dt=this.chartWidth;i(rt,{overflow:"hidden"}),this.styledMode||(et=w({position:"relative",overflow:"hidden",width:dt+"px",height:ht+"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"},W.style||{}));let ct=n("div",{id:K},et,rt);this.container=ct,this.getChartSize(),dt===this.chartWidth||(dt=this.chartWidth,this.styledMode||i(ct,{width:b((ut=W.style)==null?void 0:ut.width,dt+"px")})),this.containerBox=this.getContainerBox(),this._cursor=ct.style.cursor;let pt=W.renderer||!m?Q.getRendererType(W.renderer):$;if(this.renderer=new pt(ct,dt,ht,void 0,W.forExport,Y.exporting&&Y.exporting.allowHTML,this.styledMode),A(void 0,this),this.setClassName(W.className),this.styledMode)for(let xt in Y.defs)this.renderer.definition(Y.defs[xt]);else this.renderer.setStyle(W.style);this.renderer.chartIndex=this.index,D(this,"afterGetContainer")}getMargins(Y){let{spacing:W,margin:q,titleOffset:K}=this;this.resetMargins(),K[0]&&!a(q[0])&&(this.plotTop=Math.max(this.plotTop,K[0]+W[0])),K[2]&&!a(q[2])&&(this.marginBottom=Math.max(this.marginBottom,K[2]+W[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(q,W),D(this,"getMargins"),Y||this.getAxisMargins()}getAxisMargins(){let Y=this,W=Y.axisOffset=[0,0,0,0],q=Y.colorAxis,K=Y.margin,et=function(rt){rt.forEach(function(ot){ot.visible&&ot.getOffset()})};Y.hasCartesianSeries?et(Y.axes):q&&q.length&&et(q),l.forEach(function(rt,ot){a(K[ot])||(Y[rt]+=W[ot])}),Y.setChartSize()}getOptions(){return r(this.userOptions,v)}reflow(Y){var et;let W=this,q=W.containerBox,K=W.getContainerBox();(et=W.pointer)==null||delete et.chartPosition,!W.isPrinting&&!W.isResizing&&q&&K.width&&((K.width!==q.width||K.height!==q.height)&&(j.clearTimeout(W.reflowTimeout),W.reflowTimeout=Z(function(){W.container&&W.setSize(void 0,void 0,!1)},Y?100:0)),W.containerBox=K)}setReflow(){let Y=this,W=q=>{var K;(K=Y.options)!=null&&K.chart.reflow&&Y.hasLoaded&&Y.reflow(q)};if(typeof ResizeObserver=="function")new ResizeObserver(W).observe(Y.renderTo);else{let q=t(o,"resize",W);t(this,"destroy",q)}}setSize(Y,W,q){let K=this,et=K.renderer;K.isResizing+=1,A(q,K);let rt=et.globalAnimation;K.oldChartHeight=K.chartHeight,K.oldChartWidth=K.chartWidth,Y!==void 0&&(K.options.chart.width=Y),W!==void 0&&(K.options.chart.height=W),K.getChartSize();let{chartWidth:ot,chartHeight:ht,scrollablePixelsX:dt=0,scrollablePixelsY:ct=0}=K;(K.isDirtyBox||ot!==K.oldChartWidth||ht!==K.oldChartHeight)&&(K.styledMode||(rt?g:i)(K.container,{width:`${ot+dt}px`,height:`${ht+ct}px`},rt),K.setChartSize(!0),et.setSize(ot,ht,rt),K.axes.forEach(function(pt){pt.isDirty=!0,pt.setScale()}),K.isDirtyLegend=!0,K.isDirtyBox=!0,K.layOutTitles(),K.getMargins(),K.redraw(rt),K.oldChartHeight=void 0,D(K,"resize"),setTimeout(()=>{K&&D(K,"endResize")},k(rt).duration)),K.isResizing-=1}setChartSize(Y){let W,q,K,et,{chartHeight:rt,chartWidth:ot,inverted:ht,spacing:dt,renderer:ct}=this,pt=this.clipOffset,ut=Math[ht?"floor":"round"];this.plotLeft=W=Math.round(this.plotLeft),this.plotTop=q=Math.round(this.plotTop),this.plotWidth=K=Math.max(0,Math.round(ot-W-this.marginRight)),this.plotHeight=et=Math.max(0,Math.round(rt-q-this.marginBottom)),this.plotSizeX=ht?et:K,this.plotSizeY=ht?K:et,this.spacingBox=ct.spacingBox={x:dt[3],y:dt[0],width:ot-dt[3]-dt[1],height:rt-dt[0]-dt[2]},this.plotBox=ct.plotBox={x:W,y:q,width:K,height:et},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])}),Y||(this.axes.forEach(function(xt){xt.setAxisSize(),xt.setAxisTranslation()}),ct.alignElements()),D(this,"afterSetChartSize",{skipAxes:Y})}resetMargins(){D(this,"resetMargins");let Y=this,W=Y.options.chart,q=W.plotBorderWidth||0,K=q/2;["margin","spacing"].forEach(function(et){let rt=W[et],ot=M(rt)?rt:[rt,rt,rt,rt];["Top","Right","Bottom","Left"].forEach(function(ht,dt){Y[et][dt]=b(W[et+ht],ot[dt])})}),l.forEach(function(et,rt){Y[et]=b(Y.margin[rt],Y.spacing[rt])}),Y.axisOffset=[0,0,0,0],Y.clipOffset=[K,K,K,K],Y.plotBorderWidth=q}drawChartBox(){let Y=this.options.chart,W=this.renderer,q=this.chartWidth,K=this.chartHeight,et=this.styledMode,rt=this.plotBGImage,ot=Y.backgroundColor,ht=Y.plotBackgroundColor,dt=Y.plotBackgroundImage,ct=this.plotLeft,pt=this.plotTop,ut=this.plotWidth,xt=this.plotHeight,yt=this.plotBox,mt=this.clipRect,ft=this.clipBox,vt=this.chartBackground,bt=this.plotBackground,St=this.plotBorder,Mt,kt,Tt,At="animate";vt||(this.chartBackground=vt=W.rect().addClass("highcharts-background").add(),At="attr"),et?Mt=kt=vt.strokeWidth():(kt=(Mt=Y.borderWidth||0)+(Y.shadow?8:0),Tt={fill:ot||"none"},(Mt||vt["stroke-width"])&&(Tt.stroke=Y.borderColor,Tt["stroke-width"]=Mt),vt.attr(Tt).shadow(Y.shadow)),vt[At]({x:kt/2,y:kt/2,width:q-kt-Mt%2,height:K-kt-Mt%2,r:Y.borderRadius}),At="animate",bt||(At="attr",this.plotBackground=bt=W.rect().addClass("highcharts-plot-background").add()),bt[At](yt),!et&&(bt.attr({fill:ht||"none"}).shadow(Y.plotShadow),dt&&(rt?(dt!==rt.attr("href")&&rt.attr("href",dt),rt.animate(yt)):this.plotBGImage=W.image(dt,ct,pt,ut,xt).add())),mt?mt.animate({width:ft.width,height:ft.height}):this.clipRect=W.clipRect(ft),At="animate",St||(At="attr",this.plotBorder=St=W.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),et||St.attr({stroke:Y.plotBorderColor,"stroke-width":Y.plotBorderWidth||0,fill:"none"}),St[At](St.crisp({x:ct,y:pt,width:ut,height:xt},-St.strokeWidth())),this.isDirtyBox=!1,D(this,"afterDrawChartBox")}propFromSeries(){let Y,W,q,K=this,et=K.options.chart,rt=K.options.series;["inverted","angular","polar"].forEach(function(ot){for(W=e[et.type],q=et[ot]||W&&W.prototype[ot],Y=rt&&rt.length;!q&&Y--;)(W=e[rt[Y].type])&&W.prototype[ot]&&(q=!0);K[ot]=q})}linkSeries(Y){let W=this,q=W.series;q.forEach(function(K){K.linkedSeries.length=0}),q.forEach(function(K){let{linkedTo:et}=K.options;if(G(et)){let rt;(rt=et===":previous"?W.series[K.index-1]:W.get(et))&&rt.linkedParent!==K&&(rt.linkedSeries.push(K),K.linkedParent=rt,rt.enabledDataSorting&&K.setDataSortingOptions(),K.visible=b(K.options.visible,rt.options.visible,K.visible))}}),D(this,"afterLinkSeries",{isUpdating:Y})}renderSeries(){this.series.forEach(function(Y){Y.translate(),Y.render()})}render(){var ct;let Y=this.axes,W=this.colorAxis,q=this.renderer,K=this.options.chart.axisLayoutRuns||2,et=pt=>{pt.forEach(ut=>{ut.visible&&ut.render()})},rt=0,ot=!0,ht,dt=0;for(let pt of(this.setTitle(),D(this,"beforeMargins"),(ct=this.getStacks)==null||ct.call(this),this.getMargins(!0),this.setChartSize(),Y)){let{options:ut}=pt,{labels:xt}=ut;if(this.hasCartesianSeries&&pt.horiz&&pt.visible&&xt.enabled&&pt.series.length&&pt.coll!=="colorAxis"&&!this.polar){rt=ut.tickLength,pt.createGroups();let yt=new R(pt,0,"",!0),mt=yt.createLabel("x",xt);if(yt.destroy(),mt&&b(xt.reserveSpace,!c(ut.crossing))&&(rt=mt.getBBox().height+xt.distance+Math.max(ut.offset||0,0)),rt){mt==null||mt.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-rt,0);(ot||ht||K>1)&&dt<K;){let pt=this.plotWidth,ut=this.plotHeight;for(let xt of Y)dt===0?xt.setScale():(xt.horiz&&ot||!xt.horiz&&ht)&&xt.setTickInterval(!0);dt===0?this.getAxisMargins():this.getMargins(),ot=pt/this.plotWidth>(dt?1:1.1),ht=ut/this.plotHeight>(dt?1:1.05),dt++}this.drawChartBox(),this.hasCartesianSeries?et(Y):W&&W.length&&et(W),this.seriesGroup||(this.seriesGroup=q.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(Y){let W=this,q=h(!0,this.options.credits,Y);q.enabled&&!this.credits&&(this.credits=this.renderer.text(q.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){q.href&&(o.location.href=q.href)}).attr({align:q.position.align,zIndex:8}),W.styledMode||this.credits.css(q.style),this.credits.add().align(q.position),this.credits.update=function(K){W.credits=W.credits.destroy(),W.addCredits(K)})}destroy(){let Y,W=this,q=W.axes,K=W.series,et=W.container,rt=et&&et.parentNode;for(D(W,"destroy"),W.renderer.forExport?P(L,W):L[W.index]=void 0,tt.chartCount--,W.renderTo.removeAttribute("data-highcharts-chart"),N(W),Y=q.length;Y--;)q[Y]=q[Y].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),Y=K.length;Y--;)K[Y]=K[Y].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(ot){let ht=W[ot];ht&&ht.destroy&&(W[ot]=ht.destroy())}),et&&(et.innerHTML=B.emptyHTML,N(et),rt&&f(et)),S(W,function(ot,ht){delete W[ht]})}firstRender(){var K;let Y=this,W=Y.options;Y.getContainer(),Y.resetMargins(),Y.setChartSize(),Y.propFromSeries(),Y.getAxes();let q=x(W.series)?W.series:[];W.series=[],q.forEach(function(et){Y.initSeries(et)}),Y.linkSeries(),Y.setSortedData(),D(Y,"beforeRender"),Y.render(),(K=Y.pointer)==null||K.getChartPosition(),Y.renderer.imgCount||Y.hasLoaded||Y.onload(),Y.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(Y){Y&&this.index!==void 0&&Y.apply(this,[this])},this),D(this,"load"),D(this,"render"),a(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:Y,title:W}=this;!Y||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(W&&W.element.textContent||"").replace(/</g,"<")}),Y.accessibility&&Y.accessibility.enabled===!1||d('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(Y,W,q){let K,et=this;return Y&&(W=b(W,!0),D(et,"addSeries",{options:Y},function(){K=et.initSeries(Y),et.isDirtyLegend=!0,et.linkSeries(),K.enabledDataSorting&&K.setData(Y.data,!1),D(et,"afterAddSeries",{series:K}),W&&et.redraw(q)})),K}addAxis(Y,W,q,K){return this.createAxis(W?"xAxis":"yAxis",{axis:Y,redraw:q,animation:K})}addColorAxis(Y,W,q){return this.createAxis("colorAxis",{axis:Y,redraw:W,animation:q})}createAxis(Y,W){let q=new J(this,W.axis,Y);return b(W.redraw,!0)&&this.redraw(W.animation),q}showLoading(Y){let W=this,q=W.options,K=q.loading,et=function(){rt&&i(rt,{left:W.plotLeft+"px",top:W.plotTop+"px",width:W.plotWidth+"px",height:W.plotHeight+"px"})},rt=W.loadingDiv,ot=W.loadingSpan;rt||(W.loadingDiv=rt=n("div",{className:"highcharts-loading highcharts-loading-hidden"},null,W.container)),ot||(W.loadingSpan=ot=n("span",{className:"highcharts-loading-inner"},null,rt),t(W,"redraw",et)),rt.className="highcharts-loading",B.setElementHTML(ot,b(Y,q.lang.loading,"")),W.styledMode||(i(rt,w(K.style,{zIndex:10})),i(ot,K.labelStyle),W.loadingShown||(i(rt,{opacity:0,display:""}),g(rt,{opacity:K.style.opacity||.5},{duration:K.showDuration||0}))),W.loadingShown=!0,et()}hideLoading(){let Y=this.options,W=this.loadingDiv;W&&(W.className="highcharts-loading highcharts-loading-hidden",this.styledMode||g(W,{opacity:0},{duration:Y.loading.hideDuration||100,complete:function(){i(W,{display:"none"})}})),this.loadingShown=!1}update(Y,W,q,K){let et,rt,ot,ht=this,dt={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},ct=Y.isResponsiveOptions,pt=[];D(ht,"update",{options:Y}),ct||ht.setResponsive(!1,!0),Y=r(Y,ht.options),ht.userOptions=h(ht.userOptions,Y);let ut=Y.chart;ut&&(h(!0,ht.options.chart,ut),this.setZoomOptions(),"className"in ut&&ht.setClassName(ut.className),("inverted"in ut||"polar"in ut||"type"in ut)&&(ht.propFromSeries(),et=!0),"alignTicks"in ut&&(et=!0),"events"in ut&&O(this,ut),S(ut,function(mt,ft){ht.propsRequireUpdateSeries.indexOf("chart."+ft)!==-1&&(rt=!0),ht.propsRequireDirtyBox.indexOf(ft)!==-1&&(ht.isDirtyBox=!0),ht.propsRequireReflow.indexOf(ft)===-1||(ht.isDirtyBox=!0,ct||(ot=!0))}),!ht.styledMode&&ut.style&&ht.renderer.setStyle(ht.options.chart.style||{})),!ht.styledMode&&Y.colors&&(this.options.colors=Y.colors),Y.time&&(this.time===p&&(this.time=new C(Y.time)),h(!0,ht.options.time,Y.time)),S(Y,function(mt,ft){ht[ft]&&typeof ht[ft].update=="function"?ht[ft].update(mt,!1):typeof ht[dt[ft]]=="function"?ht[dt[ft]](mt):ft!=="colors"&&ht.collectionsWithUpdate.indexOf(ft)===-1&&h(!0,ht.options[ft],Y[ft]),ft!=="chart"&&ht.propsRequireUpdateSeries.indexOf(ft)!==-1&&(rt=!0)}),this.collectionsWithUpdate.forEach(function(mt){Y[mt]&&(U(Y[mt]).forEach(function(ft,vt){let bt,St=a(ft.id);St&&(bt=ht.get(ft.id)),!bt&&ht[mt]&&(bt=ht[mt][b(ft.index,vt)])&&(St&&a(bt.options.id)||bt.options.isInternal)&&(bt=void 0),bt&&bt.coll===mt&&(bt.update(ft,!1),q&&(bt.touched=!0)),!bt&&q&&ht.collectionsWithInit[mt]&&(ht.collectionsWithInit[mt][0].apply(ht,[ft].concat(ht.collectionsWithInit[mt][1]||[]).concat([!1])).touched=!0)}),q&&ht[mt].forEach(function(ft){ft.touched||ft.options.isInternal?delete ft.touched:pt.push(ft)}))}),pt.forEach(function(mt){mt.chart&&mt.remove&&mt.remove(!1)}),et&&ht.axes.forEach(function(mt){mt.update({},!1)}),rt&&ht.getSeriesOrderByLinks().forEach(function(mt){mt.chart&&mt.update({},!1)},this);let xt=ut&&ut.width,yt=ut&&(G(ut.height)?I(ut.height,xt||ht.chartWidth):ut.height);ot||c(xt)&&xt!==ht.chartWidth||c(yt)&&yt!==ht.chartHeight?ht.setSize(xt,yt,K):b(W,!0)&&ht.redraw(K),D(ht,"afterUpdate",{options:Y,redraw:W,animation:K})}setSubtitle(Y,W){this.applyDescription("subtitle",Y),this.layOutTitles(W)}setCaption(Y,W){this.applyDescription("caption",Y),this.layOutTitles(W)}showResetZoom(){let Y=this,W=v.lang,q=Y.zooming.resetButton,K=q.theme,et=q.relativeTo==="chart"||q.relativeTo==="spacingBox"?null:"plotBox";function rt(){Y.zoomOut()}D(this,"beforeShowResetZoom",null,function(){Y.resetZoomButton=Y.renderer.button(W.resetZoom,null,null,rt,K).attr({align:q.position.align,title:W.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(q.position,!1,et)}),D(this,"afterShowResetZoom")}zoomOut(){D(this,"selection",{resetSelection:!0},()=>this.transform({reset:!0,trigger:"zoom"}))}pan(Y,W){let q=this,K=typeof W=="object"?W:{enabled:W,type:"x"},et=K.type,rt=et&&q[{x:"xAxis",xy:"axes",y:"yAxis"}[et]].filter(ht=>ht.options.panningEnabled&&!ht.options.isInternal),ot=q.options.chart;ot!=null&&ot.panning&&(ot.panning=K),D(this,"pan",{originalEvent:Y},()=>{q.transform({axes:rt,event:Y,to:{x:Y.chartX-(q.mouseDownX||0),y:Y.chartY-(q.mouseDownY||0)},trigger:"pan"}),i(q.container,{cursor:"move"})})}transform(Y){var xt;let{axes:W=this.axes,event:q,from:K={},reset:et,selection:rt,to:ot={},trigger:ht}=Y,{inverted:dt}=this,ct=!1,pt,ut;for(let yt of((xt=this.hoverPoints)==null||xt.forEach(mt=>mt.setState()),W)){let{horiz:mt,len:ft,minPointOffset:vt=0,options:bt,reversed:St}=yt,Mt=mt?"width":"height",kt=mt?"x":"y",Tt=b(ot[Mt],yt.len),At=b(K[Mt],yt.len),Ot=10>Math.abs(Tt)?1:Tt/At,jt=(K[kt]||0)+At/2-yt.pos,Lt=jt-((ot[kt]??yt.pos)+Tt/2-yt.pos)/Ot,It=St&&!dt||!St&&dt?-1:1;if(!et&&(jt<0||jt>yt.len))continue;let Pt=yt.toValue(Lt,!0)+(rt||yt.isOrdinal?0:vt*It),Et=yt.toValue(Lt+ft/Ot,!0)-(rt||yt.isOrdinal?0:vt*It||0),Bt=yt.allExtremes;if(Pt>Et&&([Pt,Et]=[Et,Pt]),Ot===1&&!et&&yt.coll==="yAxis"&&!Bt){for(let Zt of yt.series){let Gt=Zt.getExtremes(Zt.getProcessedData(!0).yData,!0);Bt??(Bt={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),c(Gt.dataMin)&&c(Gt.dataMax)&&(Bt.dataMin=Math.min(Gt.dataMin,Bt.dataMin),Bt.dataMax=Math.max(Gt.dataMax,Bt.dataMax))}yt.allExtremes=Bt}let{dataMin:te,dataMax:ee,min:Ht,max:Yt}=w(yt.getExtremes(),Bt||{}),Ut=te??bt.min,Vt=ee??bt.max,Nt=Et-Pt,$t=yt.categories?0:Math.min(Nt,Vt-Ut),Wt=Ut-$t*(a(bt.min)?0:bt.minPadding),Xt=Vt+$t*(a(bt.max)?0:bt.maxPadding),qt=yt.allowZoomOutside||Ot===1||ht!=="zoom"&&Ot>1,Rt=Math.min(bt.min??Wt,Wt,qt?Ht:Wt),zt=Math.max(bt.max??Xt,Xt,qt?Yt:Xt);(!yt.isOrdinal||yt.options.overscroll||Ot!==1||et)&&(Pt<Rt&&(Pt=Rt,Ot>=1&&(Et=Pt+Nt)),Et>zt&&(Et=zt,Ot>=1&&(Pt=Et-Nt)),(et||yt.series.length&&(Pt!==Ht||Et!==Yt)&&Pt>=Rt&&Et<=zt)&&(rt?rt[yt.coll].push({axis:yt,min:Pt,max:Et}):(yt.isPanning=ht!=="zoom",yt.isPanning&&(ut=!0),yt.setExtremes(et?void 0:Pt,et?void 0:Et,!1,!1,{move:Lt,trigger:ht,scale:Ot}),!et&&(Pt>Rt||Et<zt)&&ht!=="mousewheel"&&(pt=!0)),ct=!0),q&&(this[mt?"mouseDownX":"mouseDownY"]=q[mt?"chartX":"chartY"]))}return ct&&(rt?D(this,"selection",rt,()=>{delete Y.selection,Y.trigger="zoom",this.transform(Y)}):(!pt||ut||this.resetZoomButton?!pt&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw(ht==="zoom"&&(this.options.chart.animation??this.pointCount<100)))),ct}}return w(at.prototype,{callbacks:[],collectionsWithInit:{xAxis:[at.prototype.addAxis,[!0]],yAxis:[at.prototype.addAxis,[!1]],series:[at.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"]}),at}),gt(z,"Extensions/ScrollablePlotArea.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Globals.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt){let{stop:it}=V,{composed:tt}=J,{addEvent:Q,createElement:X,css:F,defined:$,merge:C,pushUnique:j}=nt;function B(){let k=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!k&&(this.scrollablePlotArea=k=new g(this)),k==null||k.applyFixed()}function R(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class g{static compose(A,v,p){j(tt,this.compose)&&(Q(A,"afterInit",R),Q(v,"afterSetChartSize",y=>this.afterSetSize(y.target,y)),Q(v,"render",B),Q(p,"show",R))}static afterSetSize(A,v){let p,y,O,{minWidth:L,minHeight:u}=A.options.chart.scrollablePlotArea||{},{clipBox:l,plotBox:m,inverted:o,renderer:e}=A;if(!e.forExport&&(L?(A.scrollablePixelsX=p=Math.max(0,L-A.chartWidth),p&&(A.scrollablePlotBox=C(A.plotBox),m.width=A.plotWidth+=p,l[o?"height":"width"]+=p,O=!0)):u&&(A.scrollablePixelsY=y=Math.max(0,u-A.chartHeight),$(y)&&(A.scrollablePlotBox=C(A.plotBox),m.height=A.plotHeight+=y,l[o?"width":"height"]+=y,O=!1)),$(O)&&!v.skipAxes))for(let t of A.axes)t.horiz===O&&(t.setAxisSize(),t.setAxisTranslation())}constructor(A){var s;let v,p=A.options.chart,y=st.getRendererType(),O=p.scrollablePlotArea||{},L=this.moveFixedElements.bind(this),u={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};A.scrollablePixelsX&&(u.overflowX="auto"),A.scrollablePixelsY&&(u.overflowY="auto"),this.chart=A;let l=this.parentDiv=X("div",{className:"highcharts-scrolling-parent"},{position:"relative"},A.renderTo),m=this.scrollingContainer=X("div",{className:"highcharts-scrolling"},u,l),o=this.innerContainer=X("div",{className:"highcharts-inner-container"},void 0,m),e=this.fixedDiv=X("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(((s=p.style)==null?void 0:s.zIndex)||0)+2,top:0},void 0,!0),t=this.fixedRenderer=new y(e,A.chartWidth,A.chartHeight,p.style);this.mask=t.path().attr({fill:p.backgroundColor||"#fff","fill-opacity":O.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),m.parentNode.insertBefore(e,m),F(A.renderTo,{overflow:"visible"}),Q(A,"afterShowResetZoom",L),Q(A,"afterApplyDrilldown",L),Q(A,"afterLayOutTitles",L),Q(m,"scroll",()=>{let{pointer:n,hoverPoint:i}=A;n&&(delete n.chartPosition,i&&(v=i),n.runPointActions(void 0,v,!0))}),o.appendChild(A.container)}applyFixed(){var c;let{chart:A,fixedRenderer:v,isDirty:p,scrollingContainer:y}=this,{axisOffset:O,chartWidth:L,chartHeight:u,container:l,plotHeight:m,plotLeft:o,plotTop:e,plotWidth:t,scrollablePixelsX:s=0,scrollablePixelsY:n=0}=A,{scrollPositionX:i=0,scrollPositionY:a=0}=A.options.chart.scrollablePlotArea||{},r=L+s,f=u+n;v.setSize(L,u),(p??!0)&&(this.isDirty=!1,this.moveFixedElements()),it(A.container),F(l,{width:`${r}px`,height:`${f}px`}),A.renderer.boxWrapper.attr({width:r,height:f,viewBox:[0,0,r,f].join(" ")}),(c=A.chartBackground)==null||c.attr({width:r,height:f}),F(y,{width:`${L}px`,height:`${u}px`}),$(p)||(y.scrollLeft=s*i,y.scrollTop=n*a);let P=e-O[0]-1,d=o-O[3]-1,w=e+m+O[2]+1,T=o+t+O[1]+1,D=o+t-s,H=e+m-n,x=[["M",0,0]];s?x=[["M",0,P],["L",o-1,P],["L",o-1,w],["L",0,w],["Z"],["M",D,P],["L",L,P],["L",L,w],["L",D,w],["Z"]]:n&&(x=[["M",d,0],["L",d,e-1],["L",T,e-1],["L",T,0],["Z"],["M",d,H],["L",d,u],["L",T,u],["L",T,H],["Z"]]),A.redrawTrigger!=="adjustHeight"&&this.mask.attr({d:x})}moveFixedElements(){let A,{container:v,inverted:p,scrollablePixelsX:y,scrollablePixelsY:O}=this.chart,L=this.fixedRenderer,u=g.fixedSelectors;for(let l of(y&&!p?A=".highcharts-yaxis":y&&p||O&&!p?A=".highcharts-xaxis":O&&p&&(A=".highcharts-yaxis"),A&&u.push(`${A}:not(.highcharts-radial-axis)`,`${A}-labels:not(.highcharts-radial-axis-labels)`),u))[].forEach.call(v.querySelectorAll(l),m=>{(m.namespaceURI===L.SVG_NS?L.box:L.box.parentNode).appendChild(m),m.style.pointerEvents="auto"})}}return g.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"],g}),gt(z,"Core/Axis/Stacking/StackItem.js",[z["Core/Templating.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st){let{format:nt}=V,{series:it}=J,{destroyObjectProperties:tt,fireEvent:Q,isNumber:X,pick:F}=st;return class{constructor($,C,j,B,R){let g=$.chart.inverted,k=$.reversed;this.axis=$;let A=this.isNegative=!!j!=!!k;this.options=C=C||{},this.x=B,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=R,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:C.align||(g?A?"left":"right":"center"),verticalAlign:C.verticalAlign||(g?"middle":A?"bottom":"top"),y:C.y,x:C.x},this.textAlign=C.textAlign||(g?A?"right":"left":"center")}destroy(){tt(this,this.axis)}render($){let C=this.axis.chart,j=this.options,B=j.format,R=B?nt(B,this,C):j.formatter.call(this);if(this.label)this.label.attr({text:R,visibility:"hidden"});else{this.label=C.renderer.label(R,null,void 0,j.shape,void 0,void 0,j.useHTML,!1,"stack-labels");let g={r:j.borderRadius||0,text:R,padding:F(j.padding,5),visibility:"hidden"};C.styledMode||(g.fill=j.backgroundColor,g.stroke=j.borderColor,g["stroke-width"]=j.borderWidth,this.label.css(j.style||{})),this.label.attr(g),this.label.added||this.label.add($)}this.label.labelrank=C.plotSizeY,Q(this,"afterRender")}setOffset($,C,j,B,R,g){let{alignOptions:k,axis:A,label:v,options:p,textAlign:y}=this,O=A.chart,L=this.getStackBox({xOffset:$,width:C,boxBottom:j,boxTop:B,defaultX:R,xAxis:g}),{verticalAlign:u}=k;if(v&&L){let l=v.getBBox(void 0,0),m=v.padding,o=F(p.overflow,"justify")==="justify",e;k.x=p.x||0,k.y=p.y||0;let{x:t,y:s}=this.adjustStackPosition({labelBox:l,verticalAlign:u,textAlign:y});L.x-=t,L.y-=s,v.align(k,!1,L),(e=O.isInsidePlot(v.alignAttr.x+k.x+t,v.alignAttr.y+k.y+s))||(o=!1),o&&it.prototype.justifyDataLabel.call(A,v,k,v.alignAttr,l,L),v.attr({x:v.alignAttr.x,y:v.alignAttr.y,rotation:p.rotation,rotationOriginX:l.width*{left:0,center:.5,right:1}[p.textAlign||"center"],rotationOriginY:l.height/2}),F(!o&&p.crop,!0)&&(e=X(v.x)&&X(v.y)&&O.isInsidePlot(v.x-m+(v.width||0),v.y)&&O.isInsidePlot(v.x+m,v.y)),v[e?"show":"hide"]()}Q(this,"afterSetOffset",{xOffset:$,width:C})}adjustStackPosition({labelBox:$,verticalAlign:C,textAlign:j}){let B={bottom:0,middle:1,top:2,right:1,center:0,left:-1},R=B[C],g=B[j];return{x:$.width/2+$.width/2*g,y:$.height/2*R}}getStackBox($){let C=this.axis,j=C.chart,{boxTop:B,defaultX:R,xOffset:g,width:k,boxBottom:A}=$,v=C.stacking.usePercentage?100:F(B,this.total,0),p=C.toPixels(v),y=$.xAxis||j.xAxis[0],O=F(R,y.translate(this.x))+g,L=Math.abs(p-C.toPixels(A||X(C.min)&&C.logarithmic&&C.logarithmic.lin2log(C.min)||0)),u=j.inverted,l=this.isNegative;return u?{x:(l?p:p-L)-j.plotLeft,y:y.height-O-k+y.top-j.plotTop,width:L,height:k}:{x:O+y.transB-j.plotLeft,y:(l?p-L:p)-j.plotTop,width:k,height:L}}}}),gt(z,"Core/Axis/Stacking/StackingAxis.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Axis/Axis.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Axis/Stacking/StackItem.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it){var tt;let{getDeferredAnimation:Q}=V,{series:{prototype:X}}=st,{addEvent:F,correctFloat:$,defined:C,destroyObjectProperties:j,fireEvent:B,isArray:R,isNumber:g,objectEach:k,pick:A}=it;function v(){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 s=t.xAxis&&t.xAxis.options||{};t.options.stacking&&t.reserveSpace()&&(t.stackKey=[t.type,A(t.options.stack,""),e?s.top:s.left,e?s.height:s.width].join(","))})}function p(){var t;let e=this.stacking;if(e){let s=e.stacks;k(s,(n,i)=>{j(n),delete s[i]}),(t=e.stackTotalGroup)==null||t.destroy()}}function y(){this.stacking||(this.stacking=new o(this))}function O(e,t,s,n){return!C(e)||e.x!==t||n&&e.stackKey!==n?e={x:t,index:0,key:n,stackKey:n}:e.index++,e.key=[s,t,e.index].join(","),e}function L(){let e,t=this,s=t.yAxis,n=t.stackKey||"",i=s.stacking.stacks,a=t.processedXData,r=t.options.stacking,f=t[r+"Stacker"];f&&[n,"-"+n].forEach(P=>{var H;let d=a.length,w,T,D;for(;d--;)w=a[d],e=t.getStackIndicator(e,w,t.index,P),T=(H=i[P])==null?void 0:H[w],(D=T==null?void 0:T.points[e.key||""])&&f.call(t,D,T,d)})}function u(e,t,s){let n=t.total?100/t.total:0;e[0]=$(e[0]*n),e[1]=$(e[1]*n),this.stackedYData[s]=e[1]}function l(e){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?X.setStackedPoints.call(this,e,"group"):e.stacking.resetStacks())}function m(e,t){var _,at;let s,n,i,a,r,f,P,d,w,T=t||this.options.stacking;if(!T||!this.reserveSpace()||({group:"xAxis"}[T]||"yAxis")!==e.coll)return;let D=this.processedXData,H=this.processedYData,x=[],c=H.length,M=this.options,G=M.threshold||0,h=M.startFromThreshold?G:0,S=M.stack,b=t?`${this.type},${T}`:this.stackKey||"",E="-"+b,I=this.negStacks,N=e.stacking,U=N.stacks,Z=N.oldStacks;for(N.stacksTouched+=1,P=0;P<c;P++){d=D[P],w=H[P],f=(s=this.getStackIndicator(s,d,this.index)).key||"",U[r=(n=I&&w<(h?0:G))?E:b]||(U[r]={}),U[r][d]||((_=Z[r])!=null&&_[d]?(U[r][d]=Z[r][d],U[r][d].total=null):U[r][d]=new nt(e,e.options.stackLabels,!!n,d,S)),i=U[r][d],w!==null?(i.points[f]=i.points[this.index]=[A(i.cumulative,h)],C(i.cumulative)||(i.base=f),i.touched=N.stacksTouched,s.index>0&&this.singleStacks===!1&&(i.points[f][0]=i.points[this.index+","+d+",0"][0])):(delete i.points[f],delete i.points[this.index]);let lt=i.total||0;T==="percent"?(a=n?b:E,lt=I&&((at=U[a])!=null&&at[d])?(a=U[a][d]).total=Math.max(a.total||0,lt)+Math.abs(w)||0:$(lt+(Math.abs(w)||0))):T==="group"?(R(w)&&(w=w[0]),w!==null&<++):lt=$(lt+(w||0)),T==="group"?i.cumulative=(lt||1)-1:i.cumulative=$(A(i.cumulative,h)+(w||0)),i.total=lt,w!==null&&(i.points[f].push(i.cumulative),x[P]=i.cumulative,i.hasValidPoints=!0)}T==="percent"&&(N.usePercentage=!0),T!=="group"&&(this.stackedYData=x),N.oldStacks={}}class o{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,s,n=this.axis,i=n.series,a=n.coll==="xAxis",r=n.options.reversedStacks,f=i.length;for(this.resetStacks(),this.usePercentage=!1,s=f;s--;)t=i[r?s:f-s-1],a&&t.setGroupedPoints(n),t.setStackedPoints(n);if(!a)for(s=0;s<f;s++)i[s].modifyStacks();B(n,"afterBuildStacks")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,k(this.stacks,t=>{k(t,s=>{s.cumulative=s.total})}))}resetStacks(){k(this.stacks,t=>{k(t,(s,n)=>{g(s.touched)&&s.touched<this.stacksTouched?(s.destroy(),delete t[n]):(s.total=null,s.cumulative=null)})})}renderStackTotals(){var f;let t=this.axis,s=t.chart,n=s.renderer,i=this.stacks,a=Q(s,((f=t.options.stackLabels)==null?void 0:f.animation)||!1),r=this.stackTotalGroup=this.stackTotalGroup||n.g("stack-labels").attr({zIndex:6,opacity:0}).add();r.translate(s.plotLeft,s.plotTop),k(i,P=>{k(P,d=>{d.render(r)})}),r.animate({opacity:1},a)}}return(tt||(tt={})).compose=function(e,t,s){let n=t.prototype,i=s.prototype;n.getStacks||(F(e,"init",y),F(e,"destroy",p),n.getStacks=v,i.getStackIndicator=O,i.modifyStacks=L,i.percentStacker=u,i.setGroupedPoints=l,i.setStackedPoints=m)},tt}),gt(z,"Series/Line/LineSeries.js",[z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st){let{defined:nt,merge:it,isObject:tt}=st;class Q extends V{drawGraph(){let F=this.options,$=(this.gappedPath||this.getGraphPath).call(this),C=this.chart.styledMode;[this,...this.zones].forEach((j,B)=>{let R,g=j.graph,k=g?"animate":"attr",A=j.dashStyle||F.dashStyle;g?(g.endX=this.preventGraphAnimation?null:$.xMap,g.animate({d:$})):$.length&&(j.graph=g=this.chart.renderer.path($).addClass("highcharts-graph"+(B?` highcharts-zone-graph-${B-1} `:" ")+(B&&j.className||"")).attr({zIndex:1}).add(this.group)),g&&!C&&(R={stroke:!B&&F.lineColor||j.color||this.color||"#cccccc","stroke-width":F.lineWidth||0,fill:this.fillGraph&&this.color||"none"},A?R.dashstyle=A:F.linecap!=="square"&&(R["stroke-linecap"]=R["stroke-linejoin"]="round"),g[k](R).shadow(B<2&&F.shadow&&it({filterUnits:"userSpaceOnUse"},tt(F.shadow)?F.shadow:{}))),g&&(g.startX=$.xMap,g.isArea=$.isArea)})}getGraphPath(F,$,C){let j=this,B=j.options,R=[],g=[],k,A=B.step,v=(F=F||j.points).reversed;return v&&F.reverse(),(A={right:1,center:2}[A]||A&&3)&&v&&(A=4-A),(F=this.getValidPoints(F,!1,!(B.connectNulls&&!$&&!C))).forEach(function(p,y){let O,L=p.plotX,u=p.plotY,l=F[y-1],m=p.isNull||typeof u!="number";(p.leftCliff||l&&l.rightCliff)&&!C&&(k=!0),m&&!nt($)&&y>0?k=!B.connectNulls:m&&!$?k=!0:(y===0||k?O=[["M",p.plotX,p.plotY]]:j.getPointSpline?O=[j.getPointSpline(F,p,y)]:A?(O=A===1?[["L",l.plotX,u]]:A===2?[["L",(l.plotX+L)/2,l.plotY],["L",(l.plotX+L)/2,u]]:[["L",L,l.plotY]]).push(["L",L,u]):O=[["L",L,u]],g.push(p.x),A&&(g.push(p.x),A===2&&g.push(p.x)),R.push.apply(R,O),k=!1)}),R.xMap=g,j.graphPath=R,R}}return Q.defaultOptions=it(V.defaultOptions,{legendSymbol:"lineMarker"}),J.registerSeriesType("line",Q),Q}),gt(z,"Series/Area/AreaSeriesDefaults.js",[],function(){return{threshold:0,legendSymbol:"areaMarker"}}),gt(z,"Series/Area/AreaSeries.js",[z["Series/Area/AreaSeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st){let{seriesTypes:{line:nt}}=J,{extend:it,merge:tt,objectEach:Q,pick:X}=st;class F extends nt{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:C,options:j}=this;[this,...this.zones].forEach((B,R)=>{let g={},k=B.fillColor||j.fillColor,A=B.area,v=A?"animate":"attr";A?(A.endX=this.preventGraphAnimation?null:C.xMap,A.animate({d:C})):(g.zIndex=0,(A=B.area=this.chart.renderer.path(C).addClass("highcharts-area"+(R?` highcharts-zone-area-${R-1} `:" ")+(R&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(g.fill=k||B.color||this.color,g["fill-opacity"]=k?1:j.fillOpacity??.75,A.css({pointerEvents:this.stickyTracking?"none":"auto"})),A[v](g),A.startX=C.xMap,A.shiftUnit=j.step?2:1})}getGraphPath(C){let j,B,R,g=nt.prototype.getGraphPath,k=this.options,A=k.stacking,v=this.yAxis,p=[],y=[],O=this.index,L=v.stacking.stacks[this.stackKey],u=k.threshold,l=Math.round(v.getThreshold(k.threshold)),m=X(k.connectNulls,A==="percent"),o=function(a,r,f){let P=C[a],d=A&&L[P.x].points[O],w=P[f+"Null"]||0,T=P[f+"Cliff"]||0,D,H,x=!0;T||w?(D=(w?d[0]:d[1])+T,H=d[0]+T,x=!!w):!A&&C[r]&&C[r].isNull&&(D=H=u),D!==void 0&&(y.push({plotX:j,plotY:D===null?l:v.getThreshold(D),isNull:x,isCliff:!0}),p.push({plotX:j,plotY:H===null?l:v.getThreshold(H),doCurve:!1}))};C=C||this.points,A&&(C=this.getStackPoints(C));for(let a=0,r=C.length;a<r;++a)A||(C[a].leftCliff=C[a].rightCliff=C[a].leftNull=C[a].rightNull=void 0),B=C[a].isNull,j=X(C[a].rectPlotX,C[a].plotX),R=A?X(C[a].yBottom,l):l,B&&!m||(m||o(a,a-1,"left"),B&&!A&&m||(y.push(C[a]),p.push({x:a,plotX:j,plotY:R})),m||o(a,a+1,"right"));let e=g.call(this,y,!0,!0);p.reversed=!0;let t=g.call(this,p,!0,!0),s=t[0];s&&s[0]==="M"&&(t[0]=["L",s[1],s[2]]);let n=e.concat(t);n.length&&n.push(["Z"]);let i=g.call(this,y,!1,m);return this.chart.series.length>1&&A&&y.some(a=>a.isCliff)&&(n.hasStackedCliffs=i.hasStackedCliffs=!0),n.xMap=e.xMap,this.areaPath=n,i}getStackPoints(C){let j=this,B=[],R=[],g=this.xAxis,k=this.yAxis,A=k.stacking.stacks[this.stackKey],v={},p=k.series,y=p.length,O=k.options.reversedStacks?1:-1,L=p.indexOf(j);if(C=C||this.points,this.options.stacking){for(let l=0;l<C.length;l++)C[l].leftNull=C[l].rightNull=void 0,v[C[l].x]=C[l];Q(A,function(l,m){l.total!==null&&R.push(m)}),R.sort(function(l,m){return l-m});let u=p.map(l=>l.visible);R.forEach(function(l,m){let o=0,e,t;if(v[l]&&!v[l].isNull)B.push(v[l]),[-1,1].forEach(function(s){let n=s===1?"rightNull":"leftNull",i=A[R[m+s]],a=0;if(i){let r=L;for(;r>=0&&r<y;){let f=p[r].index;!(e=i.points[f])&&(f===j.index?v[l][n]=!0:u[r]&&(t=A[l].points[f])&&(a-=t[1]-t[0])),r+=O}}v[l][s===1?"rightCliff":"leftCliff"]=a});else{let s=L;for(;s>=0&&s<y;){let n=p[s].index;if(e=A[l].points[n]){o=e[1];break}s+=O}o=X(o,0),o=k.translate(o,0,1,0,1),B.push({isNull:!0,plotX:g.translate(l,0,0,0,1),x:l,plotY:o,yBottom:o})}})}return B}}return F.defaultOptions=tt(nt.defaultOptions,V),it(F.prototype,{singleStacks:!1}),J.registerSeriesType("area",F),F}),gt(z,"Series/Spline/SplineSeries.js",[z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J){let{line:st}=V.seriesTypes,{merge:nt,pick:it}=J;class tt extends st{getPointSpline(X,F,$){let C,j,B,R,g=F.plotX||0,k=F.plotY||0,A=X[$-1],v=X[$+1];function p(O){return O&&!O.isNull&&O.doCurve!==!1&&!F.isCliff}if(p(A)&&p(v)){let O=A.plotX||0,L=A.plotY||0,u=v.plotX||0,l=v.plotY||0,m=0;C=(1.5*g+O)/2.5,j=(1.5*k+L)/2.5,B=(1.5*g+u)/2.5,R=(1.5*k+l)/2.5,B!==C&&(m=(R-j)*(B-g)/(B-C)+k-R),j+=m,R+=m,j>L&&j>k?(j=Math.max(L,k),R=2*k-j):j<L&&j<k&&(j=Math.min(L,k),R=2*k-j),R>l&&R>k?(R=Math.max(l,k),j=2*k-R):R<l&&R<k&&(R=Math.min(l,k),j=2*k-R),F.rightContX=B,F.rightContY=R,F.controlPoints={low:[C,j],high:[B,R]}}let y=["C",it(A.rightContX,A.plotX,0),it(A.rightContY,A.plotY,0),it(C,g,0),it(j,k,0),g,k];return A.rightContX=A.rightContY=void 0,y}}return tt.defaultOptions=nt(st.defaultOptions),V.registerSeriesType("spline",tt),tt}),gt(z,"Series/AreaSpline/AreaSplineSeries.js",[z["Series/Spline/SplineSeries.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st){let{area:nt,area:{prototype:it}}=J.seriesTypes,{extend:tt,merge:Q}=st;class X extends V{}return X.defaultOptions=Q(V.defaultOptions,nt.defaultOptions),tt(X.prototype,{getGraphPath:it.getGraphPath,getStackPoints:it.getStackPoints,drawGraph:it.drawGraph}),J.registerSeriesType("areaspline",X),X}),gt(z,"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"}}),gt(z,"Series/Column/ColumnSeries.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Color/Color.js"],z["Series/Column/ColumnSeriesDefaults.js"],z["Core/Globals.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q){let{animObject:X}=V,{parse:F}=J,{noop:$}=nt,{clamp:C,crisp:j,defined:B,extend:R,fireEvent:g,isArray:k,isNumber:A,merge:v,pick:p,objectEach:y}=Q;class O extends it{animate(u){let l,m,o=this,e=this.yAxis,t=e.pos,s=e.reversed,n=o.options,{clipOffset:i,inverted:a}=this.chart,r={},f=a?"translateX":"translateY";u&&i?(r.scaleY=.001,m=C(e.toPixels(n.threshold),t,t+e.len),a?(m+=s?-Math.floor(i[0]):Math.ceil(i[2]),r.translateX=m-e.len):(m+=s?Math.ceil(i[0]):-Math.floor(i[2]),r.translateY=m),o.clipBox&&o.setClip(),o.group.attr(r)):(l=Number(o.group.attr(f)),o.group.animate({scaleY:1},R(X(o.options.animation),{step:function(P,d){o.group&&(r[f]=l+d.pos*(t-l),o.group.attr(r))}})))}init(u,l){super.init.apply(this,arguments);let m=this;(u=m.chart).hasRendered&&u.series.forEach(function(o){o.type===m.type&&(o.isDirty=!0)})}getColumnMetrics(){var w,T;let u=this,l=u.options,m=u.xAxis,o=u.yAxis,e=m.options.reversedStacks,t=m.reversed&&!e||!m.reversed&&e,s={},n,i=0;l.grouping===!1?i=1:u.chart.series.forEach(function(D){let H,x=D.yAxis,c=D.options;D.type===u.type&&D.reserveSpace()&&o.len===x.len&&o.pos===x.pos&&(c.stacking&&c.stacking!=="group"?(s[n=D.stackKey]===void 0&&(s[n]=i++),H=s[n]):c.grouping!==!1&&(H=i++),D.columnIndex=H)});let a=Math.min(Math.abs(m.transA)*(!((w=m.brokenAxis)!=null&&w.hasBreaks)&&((T=m.ordinal)==null?void 0:T.slope)||l.pointRange||m.closestPointRange||m.tickInterval||1),m.len),r=a*l.groupPadding,f=(a-2*r)/(i||1),P=Math.min(l.maxPointWidth||m.len,p(l.pointWidth,f*(1-2*l.pointPadding))),d=(u.columnIndex||0)+(t?1:0);return u.columnMetrics={width:P,offset:(f-P)/2+(r+d*f-a/2)*(t?-1:1),paddedWidth:f,columnCount:i},u.columnMetrics}crispCol(u,l,m,o){let e=this.borderWidth,t=this.chart.inverted;return o=j(l+o,e,t)-(l=j(l,e,t)),this.options.crisp&&(m=j(u+m,e)-(u=j(u,e))),{x:u,y:l,width:m,height:o}}adjustForMissingColumns(u,l,m,o){var e;if(!m.isNull&&o.columnCount>1){let t=this.xAxis.series.filter(a=>a.visible).map(a=>a.index),s=0,n=0;y((e=this.xAxis.stacking)==null?void 0:e.stacks,a=>{if(typeof m.x=="number"){let r=a[m.x.toString()];if(r&&k(r.points[this.index])){let f=Object.keys(r.points).filter(P=>!P.match(",")&&r.points[P]&&r.points[P].length>1).map(parseFloat).filter(P=>t.indexOf(P)!==-1).sort((P,d)=>d-P);s=f.indexOf(this.index),n=f.length}}}),s=this.xAxis.reversed?n-1-s:s;let i=(n-1)*o.paddedWidth+l;u=(m.plotX||0)+i/2-l-s*o.paddedWidth}return u}translate(){let u=this,l=u.chart,m=u.options,o=u.dense=u.closestPointRange*u.xAxis.transA<2,e=u.borderWidth=p(m.borderWidth,o?0:1),t=u.xAxis,s=u.yAxis,n=m.threshold,i=p(m.minPointLength,5),a=u.getColumnMetrics(),r=a.width,f=u.pointXOffset=a.offset,P=u.dataMin,d=u.dataMax,w=u.translatedThreshold=s.getThreshold(n),T=u.barW=Math.max(r,1+2*e);m.pointPadding&&(T=Math.ceil(T)),it.prototype.translate.apply(u),u.points.forEach(function(D){let H=p(D.yBottom,w),x=999+Math.abs(H),c=D.plotX||0,M=C(D.plotY,-x,s.len+x),G,h=Math.min(M,H),S=Math.max(M,H)-h,b=r,E=c+f,I=T;i&&Math.abs(S)<i&&(S=i,G=!s.reversed&&!D.negative||s.reversed&&D.negative,A(n)&&A(d)&&D.y===n&&d<=n&&(s.min||0)<n&&(P!==d||(s.max||0)<=n)&&(G=!G,D.negative=!D.negative),h=Math.abs(h-w)>i?H-i:w-(G?i:0)),B(D.options.pointWidth)&&(E-=Math.round(((b=I=Math.ceil(D.options.pointWidth))-r)/2)),m.centerInCategory&&!m.stacking&&(E=u.adjustForMissingColumns(E,b,D,a)),D.barX=E,D.pointWidth=b,D.tooltipPos=l.inverted?[C(s.len+s.pos-l.plotLeft-M,s.pos-l.plotLeft,s.len+s.pos-l.plotLeft),t.len+t.pos-l.plotTop-E-I/2,S]:[t.left-l.plotLeft+E+I/2,C(M+s.pos-l.plotTop,s.pos-l.plotTop,s.len+s.pos-l.plotTop),S],D.shapeType=u.pointClass.prototype.shapeType||"roundedRect",D.shapeArgs=u.crispCol(E,D.isNull?w:h,I,D.isNull?0:S)}),g(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(u,l){let m=this.options,o=this.pointAttrToOptions||{},e=o.stroke||"borderColor",t=o["stroke-width"]||"borderWidth",s,n,i,a=u&&u.color||this.color,r=u&&u[e]||m[e]||a,f=u&&u.options.dashStyle||m.dashStyle,P=u&&u[t]||m[t]||this[t]||0,d=p(u&&u.opacity,m.opacity,1);u&&this.zones.length&&(n=u.getZone(),a=u.options.color||n&&(n.color||u.nonZonedColor)||this.color,n&&(r=n.borderColor||r,f=n.dashStyle||f,P=n.borderWidth||P)),l&&u&&(i=(s=v(m.states[l],u.options.states&&u.options.states[l]||{})).brightness,a=s.color||i!==void 0&&F(a).brighten(s.brightness).get()||a,r=s[e]||r,P=s[t]||P,f=s.dashStyle||f,d=p(s.opacity,d));let w={fill:a,stroke:r,"stroke-width":P,opacity:d};return f&&(w.dashstyle=f),w}drawPoints(u=this.points){let l,m=this,o=this.chart,e=m.options,t=o.renderer,s=e.animationLimit||250;u.forEach(function(n){let i=n.plotY,a=n.graphic,r=!!a,f=a&&o.pointCount<s?"animate":"attr";A(i)&&n.y!==null?(l=n.shapeArgs,a&&n.hasNewShapeType()&&(a=a.destroy()),m.enabledDataSorting&&(n.startXPos=m.xAxis.reversed?-(l&&l.width||0):m.xAxis.width),!a&&(n.graphic=a=t[n.shapeType](l).add(n.group||m.group),a&&m.enabledDataSorting&&o.hasRendered&&o.pointCount<s&&(a.attr({x:n.startXPos}),r=!0,f="animate")),a&&r&&a[f](v(l)),o.styledMode||a[f](m.pointAttribs(n,n.selected&&"select")).shadow(n.allowShadow!==!1&&e.shadow),a&&(a.addClass(n.getClassName(),!0),a.attr({visibility:n.visible?"inherit":"hidden"}))):a&&(n.graphic=a.destroy())})}drawTracker(u=this.points){let l,m=this,o=m.chart,e=o.pointer,t=function(s){let n=e==null?void 0:e.getPointFromEvent(s);e&&n&&m.options.enableMouseTracking&&(e.isDirectTouch=!0,n.onMouseOver(s))};u.forEach(function(s){l=k(s.dataLabels)?s.dataLabels:s.dataLabel?[s.dataLabel]:[],s.graphic&&(s.graphic.element.point=s),l.forEach(function(n){(n.div||n.element).point=s})}),m._hasTracking||(m.trackerGroups.forEach(function(s){m[s]&&(m[s].addClass("highcharts-tracker").on("mouseover",t).on("mouseout",function(n){e==null||e.onTrackerMouseOut(n)}).on("touchstart",t),!o.styledMode&&m.options.cursor&&m[s].css({cursor:m.options.cursor}))}),m._hasTracking=!0),g(this,"afterDrawTracker")}remove(){let u=this,l=u.chart;l.hasRendered&&l.series.forEach(function(m){m.type===u.type&&(m.isDirty=!0)}),it.prototype.remove.apply(u,arguments)}}return O.defaultOptions=v(it.defaultOptions,st),R(O.prototype,{directTouch:!0,getSymbol:$,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]}),tt.registerSeriesType("column",O),O}),gt(z,"Core/Series/DataLabel.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Templating.js"],z["Core/Utilities.js"]],function(V,J,st){var nt;let{getDeferredAnimation:it}=V,{format:tt}=J,{defined:Q,extend:X,fireEvent:F,isArray:$,isString:C,merge:j,objectEach:B,pick:R,pInt:g,splat:k}=st;return function(A){function v(){return m(this).some(e=>e==null?void 0:e.enabled)}function p(e,t,s,n,i){var M;let{chart:a,enabledDataSorting:r}=this,f=this.isCartesian&&a.inverted,P=e.plotX,d=e.plotY,w=s.rotation||0,T=Q(P)&&Q(d)&&a.isInsidePlot(P,Math.round(d),{inverted:f,paneCoordinates:!0,series:this}),D=w===0&&R(s.overflow,r?"none":"justify")==="justify",H=this.visible&&e.visible!==!1&&Q(P)&&(e.series.forceDL||r&&!D||T||R(s.inside,!!this.options.stacking)&&n&&a.isInsidePlot(P,f?n.x+1:n.y+n.height-1,{inverted:f,paneCoordinates:!0,series:this})),x=e.pos();if(H&&x){var c;let G=t.getBBox(),h=t.getBBox(void 0,0),S={right:1,center:.5}[s.align||0]||0,b={bottom:1,middle:.5}[s.verticalAlign||0]||0;if(n=X({x:x[0],y:Math.round(x[1]),width:0,height:0},n||{}),s.alignTo==="plotEdges"&&this.isCartesian&&(n[f?"x":"y"]=0,n[f?"width":"height"]=((M=this.yAxis)==null?void 0:M.len)||0),X(s,{width:G.width,height:G.height}),c=n,r&&this.xAxis&&!D&&this.setDataLabelStartPos(e,t,i,T,c),t.align(j(s,{width:h.width,height:h.height}),!1,n,!1),t.alignAttr.x+=S*(h.width-G.width),t.alignAttr.y+=b*(h.height-G.height),t[t.placed?"animate":"attr"]({x:t.alignAttr.x+(G.width-h.width)/2,y:t.alignAttr.y+(G.height-h.height)/2,rotationOriginX:(t.width||0)/2,rotationOriginY:(t.height||0)/2}),D&&n.height>=0)this.justifyDataLabel(t,s,t.alignAttr,G,n,i);else if(R(s.crop,!0)){let{x:E,y:I}=t.alignAttr;H=a.isInsidePlot(E,I,{paneCoordinates:!0,series:this})&&a.isInsidePlot(E+G.width-1,I+G.height-1,{paneCoordinates:!0,series:this})}s.shape&&!w&&t[i?"attr":"animate"]({anchorX:x[0],anchorY:x[1]})}i&&r&&(t.placed=!1),H||r&&!D?(t.show(),t.placed=!0):(t.hide(),t.placed=!1)}function y(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function O(e){let t=this.hasRendered||0,s=this.initDataLabelsGroup().attr({opacity:+t});return!t&&s&&(this.visible&&s.show(),this.options.animation?s.animate({opacity:1},e):s.attr({opacity:1})),s}function L(e){var H;let t;e=e||this.points;let s=this,n=s.chart,i=s.options,a=n.renderer,{backgroundColor:r,plotBackgroundColor:f}=n.options.chart,P=a.getContrast(C(f)&&f||C(r)&&r||"#000000"),d=m(s),{animation:w,defer:T}=d[0],D=T?it(n,w,s):{defer:0,duration:0};F(this,"drawDataLabels"),(H=s.hasDataLabels)!=null&&H.call(s)&&(t=this.initDataLabels(D),e.forEach(x=>{var G,h;let c=x.dataLabels||[];k(l(d,x.dlOptions||((G=x.options)==null?void 0:G.dataLabels))).forEach((S,b)=>{let E=S.enabled&&(x.visible||x.dataLabelOnHidden)&&(!x.isNull||x.dataLabelOnNull)&&function(rt,ot){let ht=ot.filter;if(ht){let dt=ht.operator,ct=rt[ht.property],pt=ht.value;return dt===">"&&ct>pt||dt==="<"&&ct<pt||dt===">="&&ct>=pt||dt==="<="&&ct<=pt||dt==="=="&&ct==pt||dt==="==="&&ct===pt||dt==="!="&&ct!=pt||dt==="!=="&&ct!==pt}return!0}(x,S),{backgroundColor:I,borderColor:N,distance:U,style:Z={}}=S,_,at,lt,Y,W={},q=c[b],K=!q,et;E&&(at=R(S[x.formatPrefix+"Format"],S.format),_=x.getLabelConfig(),lt=Q(at)?tt(at,_,n):(S[x.formatPrefix+"Formatter"]||S.formatter).call(_,S),Y=S.rotation,!n.styledMode&&(Z.color=R(S.color,Z.color,C(s.color)?s.color:void 0,"#000000"),Z.color==="contrast"?(I!=="none"&&(et=I),x.contrastColor=a.getContrast(et!=="auto"&&et||x.color||s.color),Z.color=et||!Q(U)&&S.inside||0>g(U||0)||i.stacking?x.contrastColor:P):delete x.contrastColor,i.cursor&&(Z.cursor=i.cursor)),W={r:S.borderRadius||0,rotation:Y,padding:S.padding,zIndex:1},n.styledMode||(W.fill=I==="auto"?x.color:I,W.stroke=N==="auto"?x.color:N,W["stroke-width"]=S.borderWidth),B(W,(rt,ot)=>{rt===void 0&&delete W[ot]})),!q||E&&Q(lt)&&!!q.div==!!S.useHTML&&(q.rotation&&S.rotation||q.rotation===S.rotation)||(q=void 0,K=!0),E&&Q(lt)&&(q?W.text=lt:(q=a.label(lt,0,0,S.shape,void 0,void 0,S.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+x.colorIndex+" "+(S.className||"")+(S.useHTML?" highcharts-tracker":"")),q&&(q.options=S,q.attr(W),n.styledMode?Z.width&&q.css({width:Z.width,textOverflow:Z.textOverflow}):q.css(Z).shadow(S.shadow),F(q,"beforeAddingDataLabel",{labelOptions:S,point:x}),q.added||q.add(t),s.alignDataLabel(x,q,S,void 0,K),q.isActive=!0,c[b]&&c[b]!==q&&c[b].destroy(),c[b]=q))});let M=c.length;for(;M--;)c[M]&&c[M].isActive?c[M].isActive=!1:((h=c[M])==null||h.destroy(),c.splice(M,1));x.dataLabel=c[0],x.dataLabels=c})),F(this,"afterDrawDataLabels")}function u(e,t,s,n,i,a){let r=this.chart,f=t.align,P=t.verticalAlign,d=e.box?0:e.padding||0,w=r.inverted?this.yAxis:this.xAxis,T=w?w.left-r.plotLeft:0,D=r.inverted?this.xAxis:this.yAxis,H=D?D.top-r.plotTop:0,{x=0,y:c=0}=t,M,G;return(M=(s.x||0)+d+T)<0&&(f==="right"&&x>=0?(t.align="left",t.inside=!0):x-=M,G=!0),(M=(s.x||0)+n.width-d+T)>r.plotWidth&&(f==="left"&&x<=0?(t.align="right",t.inside=!0):x+=r.plotWidth-M,G=!0),(M=s.y+d+H)<0&&(P==="bottom"&&c>=0?(t.verticalAlign="top",t.inside=!0):c-=M,G=!0),(M=(s.y||0)+n.height-d+H)>r.plotHeight&&(P==="top"&&c<=0?(t.verticalAlign="bottom",t.inside=!0):c+=r.plotHeight-M,G=!0),G&&(t.x=x,t.y=c,e.placed=!a,e.align(t,void 0,i)),G}function l(e,t){let s=[],n;if($(e)&&!$(t))s=e.map(function(i){return j(i,t)});else if($(t)&&!$(e))s=t.map(function(i){return j(e,i)});else if($(e)||$(t)){if($(e)&&$(t))for(n=Math.max(e.length,t.length);n--;)s[n]=j(e[n],t[n])}else s=j(e,t);return s}function m(e){var s,n;let t=e.chart.options.plotOptions;return k(l(l((s=t==null?void 0:t.series)==null?void 0:s.dataLabels,(n=t==null?void 0:t[e.type])==null?void 0:n.dataLabels),e.options.dataLabels))}function o(e,t,s,n,i){let a=this.chart,r=a.inverted,f=this.xAxis,P=f.reversed,d=((r?t.height:t.width)||0)/2,w=e.pointWidth,T=w?w/2:0;t.startXPos=r?i.x:P?-d-T:f.width-d+T,t.startYPos=r?P?this.yAxis.height-d+T:-d-T:i.y,n?t.visibility==="hidden"&&(t.show(),t.attr({opacity:0}).animate({opacity:1})):t.attr({opacity:1}).animate({opacity:0},void 0,t.hide),a.hasRendered&&(s&&t.attr({x:t.startXPos,y:t.startYPos}),t.placed=!0)}A.compose=function(e){let t=e.prototype;t.initDataLabels||(t.initDataLabels=O,t.initDataLabelsGroup=y,t.alignDataLabel=p,t.drawDataLabels=L,t.justifyDataLabel=u,t.setDataLabelStartPos=o,t.hasDataLabels=v)}}(nt||(nt={})),nt}),gt(z,"Series/Column/ColumnDataLabel.js",[z["Core/Series/DataLabel.js"],z["Core/Globals.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt){var it;let{composed:tt}=J,{series:Q}=st,{merge:X,pick:F,pushUnique:$}=nt;return function(C){function j(B,R,g,k,A){let v=this.chart.inverted,p=B.series,y=(p.xAxis?p.xAxis.len:this.chart.plotSizeX)||0,O=(p.yAxis?p.yAxis.len:this.chart.plotSizeY)||0,L=B.dlBox||B.shapeArgs,u=F(B.below,B.plotY>F(this.translatedThreshold,O)),l=F(g.inside,!!this.options.stacking);if(L){if(k=X(L),!(g.overflow==="allow"&&g.crop===!1)){k.y<0&&(k.height+=k.y,k.y=0);let m=k.y+k.height-O;m>0&&m<k.height-1&&(k.height-=m)}v&&(k={x:O-k.y-k.height,y:y-k.x-k.width,width:k.height,height:k.width}),l||(v?(k.x+=u?0:k.width,k.width=0):(k.y+=u?k.height:0,k.height=0))}g.align=F(g.align,!v||l?"center":u?"right":"left"),g.verticalAlign=F(g.verticalAlign,v||l?"middle":u?"top":"bottom"),Q.prototype.alignDataLabel.call(this,B,R,g,k,A),g.inside&&B.contrastColor&&R.css({color:B.contrastColor})}C.compose=function(B){V.compose(Q),$(tt,"ColumnDataLabel")&&(B.prototype.alignDataLabel=j)}}(it||(it={})),it}),gt(z,"Series/Bar/BarSeries.js",[z["Series/Column/ColumnSeries.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st){let{extend:nt,merge:it}=st;class tt extends V{}return tt.defaultOptions=it(V.defaultOptions,{}),nt(tt.prototype,{inverted:!0}),J.registerSeriesType("bar",tt),tt}),gt(z,"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/>"}}}),gt(z,"Series/Scatter/ScatterSeries.js",[z["Series/Scatter/ScatterSeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st){let{column:nt,line:it}=J.seriesTypes,{addEvent:tt,extend:Q,merge:X}=st;class F extends it{applyJitter(){let C=this,j=this.options.jitter,B=this.points.length;j&&this.points.forEach(function(R,g){["x","y"].forEach(function(k,A){if(j[k]&&!R.isNull){let v=`plot${k.toUpperCase()}`,p=C[`${k}Axis`],y=j[k]*p.transA;if(p&&!p.logarithmic){let O=Math.max(0,(R[v]||0)-y),L=Math.min(p.len,(R[v]||0)+y);R[v]=O+(L-O)*function(u){let l=1e4*Math.sin(u);return l-Math.floor(l)}(g+A*B),k==="x"&&(R.clientX=R.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return F.defaultOptions=X(it.defaultOptions,V),Q(F.prototype,{drawTracker:nt.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),tt(F,"afterTranslate",function(){this.applyJitter()}),J.registerSeriesType("scatter",F),F}),gt(z,"Series/CenteredUtilities.js",[z["Core/Globals.js"],z["Core/Series/Series.js"],z["Core/Utilities.js"]],function(V,J,st){var nt,it;let{deg2rad:tt}=V,{fireEvent:Q,isNumber:X,pick:F,relativeLength:$}=st;return(it=nt||(nt={})).getCenter=function(){let C=this.options,j=this.chart,B=2*(C.slicedOffset||0),R=j.plotWidth-2*B,g=j.plotHeight-2*B,k=C.center,A=Math.min(R,g),v=C.thickness,p,y=C.size,O=C.innerSize||0,L,u;typeof y=="string"&&(y=parseFloat(y)),typeof O=="string"&&(O=parseFloat(O));let l=[F(k[0],"50%"),F(k[1],"50%"),F(y&&y<0?void 0:C.size,"100%"),F(O&&O<0?void 0:C.innerSize||0,"0%")];for(!j.angular||this instanceof J||(l[3]=0),L=0;L<4;++L)u=l[L],p=L<2||L===2&&/%$/.test(u),l[L]=$(u,[R,g,A,l[2]][L])+(p?B:0);return l[3]>l[2]&&(l[3]=l[2]),X(v)&&2*v<l[2]&&v>0&&(l[3]=l[2]-2*v),Q(this,"afterGetCenter",{positions:l}),l},it.getStartAndEndRadians=function(C,j){let B=X(C)?C:0,R=X(j)&&j>B&&j-B<360?j:B+360;return{start:tt*(B+-90),end:tt*(R+-90)}},nt}),gt(z,"Series/Pie/PiePoint.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Series/Point.js"],z["Core/Utilities.js"]],function(V,J,st){let{setAnimation:nt}=V,{addEvent:it,defined:tt,extend:Q,isNumber:X,pick:F,relativeLength:$}=st;class C extends J{getConnectorPath(B){let R=B.dataLabelPosition,g=B.options||{},k=g.connectorShape,A=this.connectorShapes[k]||k;return R&&A.call(this,{...R.computed,alignment:R.alignment},R.connectorPosition,g)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(B){let R=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(R.x,R.y,R.r+B,R.r+B,{innerR:R.r-1,start:R.start,end:R.end,borderRadius:R.borderRadius})}constructor(B,R,g){super(B,R,g),this.half=0,this.name??(this.name="Slice");let k=A=>{this.slice(A.type==="select")};it(this,"select",k),it(this,"unselect",k)}isValid(){return X(this.y)&&this.y>=0}setVisible(B,R=!0){B!==this.visible&&this.update({visible:B??!this.visible},R,void 0,!1)}slice(B,R,g){let k=this.series;nt(g,k.chart),R=F(R,!0),this.sliced=this.options.sliced=B=tt(B)?B:!this.sliced,k.options.data[k.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return Q(C.prototype,{connectorShapes:{fixedOffset:function(j,B,R){let g=B.breakAt,k=B.touchingSliceAt,A=R.softConnector?["C",j.x+(j.alignment==="left"?-5:5),j.y,2*g.x-k.x,2*g.y-k.y,g.x,g.y]:["L",g.x,g.y];return[["M",j.x,j.y],A,["L",k.x,k.y]]},straight:function(j,B){let R=B.touchingSliceAt;return[["M",j.x,j.y],["L",R.x,R.y]]},crookedLine:function(j,B,R){let{breakAt:g,touchingSliceAt:k}=B,{series:A}=this,[v,p,y]=A.center,O=y/2,{plotLeft:L,plotWidth:u}=A.chart,l=j.alignment==="left",{x:m,y:o}=j,e=g.x;if(R.crookDistance){let s=$(R.crookDistance,1);e=l?v+O+(u+L-v-O)*(1-s):L+(v-O)*s}else e=v+(p-o)*Math.tan((this.angle||0)-Math.PI/2);let t=[["M",m,o]];return(l?e<=m&&e>=g.x:e>=m&&e<=g.x)&&t.push(["L",e,o]),t.push(["L",g.x,g.y],["L",k.x,k.y]),t}}}),C}),gt(z,"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}}}}),gt(z,"Series/Pie/PieSeries.js",[z["Series/CenteredUtilities.js"],z["Series/Column/ColumnSeries.js"],z["Core/Globals.js"],z["Series/Pie/PiePoint.js"],z["Series/Pie/PieSeriesDefaults.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/Symbols.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X,F){let{getStartAndEndRadians:$}=V,{noop:C}=st,{clamp:j,extend:B,fireEvent:R,merge:g,pick:k}=F;class A extends tt{animate(p){let y=this,O=y.points,L=y.startAngleRad;p||O.forEach(function(u){let l=u.graphic,m=u.shapeArgs;l&&m&&(l.attr({r:k(u.startR,y.center&&y.center[3]/2),start:L,end:L}),l.animate({r:m.r,start:m.start,end:m.end},y.options.animation))})}drawEmpty(){let p,y,O=this.startAngleRad,L=this.endAngleRad,u=this.options;this.total===0&&this.center?(p=this.center[0],y=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(p,y,this.center[1]/2,0,O,L).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:X.arc(p,y,this.center[2]/2,0,{start:O,end:L,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":u.borderWidth,fill:u.fillColor||"none",stroke:u.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let p=this.chart.renderer;this.points.forEach(function(y){y.graphic&&y.hasNewShapeType()&&(y.graphic=y.graphic.destroy()),y.graphic||(y.graphic=p[y.shapeType](y.shapeArgs).add(y.series.group),y.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(p,y,O,L){let u=this.center,l=this.radii?this.radii[O.index]||0:u[2]/2,m=L.dataLabelPosition,o=(m==null?void 0:m.distance)||0,e=Math.asin(j((p-u[1])/(l+o),-1,1));return u[0]+Math.cos(e)*(l+o)*(y?-1:1)+(o>0?(y?-1:1)*(L.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let p,y,O,L,u=this,l=u.chart;this.drawEmpty(),u.group&&!l.styledMode&&u.group.shadow(u.options.shadow),u.points.forEach(function(m){let o={};y=m.graphic,!m.isNull&&y?(L=m.shapeArgs,p=m.getTranslate(),l.styledMode||(O=u.pointAttribs(m,m.selected&&"select")),m.delayedRendering?(y.setRadialReference(u.center).attr(L).attr(p),l.styledMode||y.attr(O).attr({"stroke-linejoin":"round"}),m.delayedRendering=!1):(y.setRadialReference(u.center),l.styledMode||g(!0,o,O),g(!0,o,L,p),y.animate(o)),y.attr({visibility:m.visible?"inherit":"hidden"}),y.addClass(m.getClassName(),!0)):y&&(m.graphic=y.destroy())})}sortByAngle(p,y){p.sort(function(O,L){return O.angle!==void 0&&(L.angle-O.angle)*y})}translate(p){R(this,"translate"),this.generatePoints();let y=this.options,O=y.slicedOffset,L=$(y.startAngle,y.endAngle),u=this.startAngleRad=L.start,l=(this.endAngleRad=L.end)-u,m=this.points,o=y.ignoreHiddenPoint,e=m.length,t,s,n,i,a,r,f,P=0;for(p||(this.center=p=this.getCenter()),r=0;r<e;r++){f=m[r],t=u+P*l,f.isValid()&&(!o||f.visible)&&(P+=f.percentage/100),s=u+P*l;let d={x:p[0],y:p[1],r:p[2]/2,innerR:p[3]/2,start:Math.round(1e3*t)/1e3,end:Math.round(1e3*s)/1e3};f.shapeType="arc",f.shapeArgs=d,(n=(s+t)/2)>1.5*Math.PI?n-=2*Math.PI:n<-Math.PI/2&&(n+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(n)*O),translateY:Math.round(Math.sin(n)*O)},i=Math.cos(n)*p[2]/2,a=Math.sin(n)*p[2]/2,f.tooltipPos=[p[0]+.7*i,p[1]+.7*a],f.half=n<-Math.PI/2||n>Math.PI/2?1:0,f.angle=n}R(this,"afterTranslate")}updateTotals(){let p=this.points,y=p.length,O=this.options.ignoreHiddenPoint,L,u,l=0;for(L=0;L<y;L++)(u=p[L]).isValid()&&(!O||u.visible)&&(l+=u.y);for(L=0,this.total=l;L<y;L++)(u=p[L]).percentage=l>0&&(u.visible||!O)?u.y/l*100:0,u.total=l}}return A.defaultOptions=g(tt.defaultOptions,it),B(A.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:J.prototype.drawTracker,getCenter:V.getCenter,getSymbol:C,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:J.prototype.pointAttribs,pointClass:nt,requireSorting:!1,searchPoint:C,trackerGroups:["group","dataLabelsGroup"]}),Q.registerSeriesType("pie",A),A}),gt(z,"Series/Pie/PieDataLabel.js",[z["Core/Series/DataLabel.js"],z["Core/Globals.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it){var tt;let{composed:Q,noop:X}=J,{distribute:F}=st,{series:$}=nt,{arrayMax:C,clamp:j,defined:B,pick:R,pushUnique:g,relativeLength:k}=it;return function(A){let v={radialDistributionY:function(u,l){var m;return(((m=l.dataLabelPosition)==null?void 0:m.top)||0)+u.distributeBox.pos},radialDistributionX:function(u,l,m,o,e){let t=e.dataLabelPosition;return u.getX(m<((t==null?void 0:t.top)||0)+2||m>((t==null?void 0:t.bottom)||0)-2?o:m,l.half,l,e)},justify:function(u,l,m,o){var e;return o[0]+(u.half?-1:1)*(m+(((e=l.dataLabelPosition)==null?void 0:e.distance)||0))},alignToPlotEdges:function(u,l,m,o){let e=u.getBBox().width;return l?e+o:m-e-o},alignToConnectors:function(u,l,m,o){let e=0,t;return u.forEach(function(s){(t=s.dataLabel.getBBox().width)>e&&(e=t)}),l?e+o:m-e-o}};function p(u,l){let{center:m,options:o}=this,e=m[2]/2,t=u.angle||0,s=Math.cos(t),n=Math.sin(t),i=m[0]+s*e,a=m[1]+n*e,r=Math.min((o.slicedOffset||0)+(o.borderWidth||0),l/5);return{natural:{x:i+s*l,y:a+n*l},computed:{},alignment:l<0?"center":u.half?"right":"left",connectorPosition:{breakAt:{x:i+s*r,y:a+n*r},touchingSliceAt:{x:i,y:a}},distance:l}}function y(){var H;let u=this,l=u.points,m=u.chart,o=m.plotWidth,e=m.plotHeight,t=m.plotLeft,s=Math.round(m.chartWidth/3),n=u.center,i=n[2]/2,a=n[1],r=[[],[]],f=[0,0,0,0],P=u.dataLabelPositioners,d,w,T,D=0;u.visible&&((H=u.hasDataLabels)!=null&&H.call(u))&&(l.forEach(x=>{(x.dataLabels||[]).forEach(c=>{c.shortened&&(c.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),c.shortened=!1)})}),$.prototype.drawDataLabels.apply(u),l.forEach(x=>{(x.dataLabels||[]).forEach((c,M)=>{var b;let G=n[2]/2,h=c.options,S=k((h==null?void 0:h.distance)||0,G);M===0&&r[x.half].push(x),!B((b=h==null?void 0:h.style)==null?void 0:b.width)&&c.getBBox().width>s&&(c.css({width:Math.round(.7*s)+"px"}),c.shortened=!0),c.dataLabelPosition=this.getDataLabelPosition(x,S),D=Math.max(D,S)})}),r.forEach((x,c)=>{let M=x.length,G=[],h,S,b=0,E;M&&(u.sortByAngle(x,c-.5),D>0&&(h=Math.max(0,a-i-D),S=Math.min(a+i+D,m.plotHeight),x.forEach(I=>{(I.dataLabels||[]).forEach(N=>{var Z;let U=N.dataLabelPosition;U&&U.distance>0&&(U.top=Math.max(0,a-i-U.distance),U.bottom=Math.min(a+i+U.distance,m.plotHeight),b=N.getBBox().height||21,N.lineHeight=m.renderer.fontMetrics(N.text||N).h+2*N.padding,I.distributeBox={target:(((Z=N.dataLabelPosition)==null?void 0:Z.natural.y)||0)-U.top+N.lineHeight/2,size:b,rank:I.y},G.push(I.distributeBox))})}),F(G,E=S+b-h,E/5)),x.forEach(I=>{(I.dataLabels||[]).forEach(N=>{let U=N.options||{},Z=I.distributeBox,_=N.dataLabelPosition,at=(_==null?void 0:_.natural.y)||0,lt=U.connectorPadding||0,Y=N.lineHeight||21,W=(Y-N.getBBox().height)/2,q=0,K=at,et="inherit";if(_){if(G&&B(Z)&&_.distance>0&&(Z.pos===void 0?et="hidden":(T=Z.size,K=P.radialDistributionY(I,N))),U.justify)q=P.justify(I,N,i,n);else switch(U.alignTo){case"connectors":q=P.alignToConnectors(x,c,o,t);break;case"plotEdges":q=P.alignToPlotEdges(N,c,o,t);break;default:q=P.radialDistributionX(u,I,K-W,at,N)}if(_.attribs={visibility:et,align:_.alignment},_.posAttribs={x:q+(U.x||0)+({left:lt,right:-lt}[_.alignment]||0),y:K+(U.y||0)-Y/2},_.computed.x=q,_.computed.y=K-W,R(U.crop,!0)){let rt;q-(w=N.getBBox().width)<lt&&c===1?(rt=Math.round(w-q+lt),f[3]=Math.max(rt,f[3])):q+w>o-lt&&c===0&&(rt=Math.round(q+w-o+lt),f[1]=Math.max(rt,f[1])),K-T/2<0?f[0]=Math.max(Math.round(-K+T/2),f[0]):K+T/2>e&&(f[2]=Math.max(Math.round(K+T/2-e),f[2])),_.sideOverflow=rt}}})}))}),(C(f)===0||this.verifyDataLabelOverflow(f))&&(this.placeDataLabels(),this.points.forEach(x=>{(x.dataLabels||[]).forEach(c=>{var S;let{connectorColor:M,connectorWidth:G=1}=c.options||{},h=c.dataLabelPosition;if(G){let b;d=c.connector,h&&h.distance>0?(b=!d,d||(c.connector=d=m.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+x.colorIndex+(x.className?" "+x.className:"")).add(u.dataLabelsGroup)),m.styledMode||d.attr({"stroke-width":G,stroke:M||x.color||"#666666"}),d[b?"attr":"animate"]({d:x.getConnectorPath(c)}),d.attr({visibility:(S=h.attribs)==null?void 0:S.visibility})):d&&(c.connector=d.destroy())}})})))}function O(){this.points.forEach(u=>{(u.dataLabels||[]).forEach(l=>{var o;let m=l.dataLabelPosition;m?(m.sideOverflow&&(l.css({width:Math.max(l.getBBox().width-m.sideOverflow,0)+"px",textOverflow:(((o=l.options)==null?void 0:o.style)||{}).textOverflow||"ellipsis"}),l.shortened=!0),l.attr(m.attribs),l[l.moved?"animate":"attr"](m.posAttribs),l.moved=!0):l&&l.attr({y:-9999})}),delete u.distributeBox},this)}function L(u){let l=this.center,m=this.options,o=m.center,e=m.minSize||80,t=e,s=m.size!==null;return!s&&(o[0]!==null?t=Math.max(l[2]-Math.max(u[1],u[3]),e):(t=Math.max(l[2]-u[1]-u[3],e),l[0]+=(u[3]-u[1])/2),o[1]!==null?t=j(t,e,l[2]-Math.max(u[0],u[2])):(t=j(t,e,l[2]-u[0]-u[2]),l[1]+=(u[0]-u[2])/2),t<l[2]?(l[2]=t,l[3]=Math.min(m.thickness?Math.max(0,t-2*m.thickness):Math.max(0,k(m.innerSize||0,t)),t),this.translate(l),this.drawDataLabels&&this.drawDataLabels()):s=!0),s}A.compose=function(u){if(V.compose($),g(Q,"PieDataLabel")){let l=u.prototype;l.dataLabelPositioners=v,l.alignDataLabel=X,l.drawDataLabels=y,l.getDataLabelPosition=p,l.placeDataLabels=O,l.verifyDataLabelOverflow=L}}}(tt||(tt={})),tt}),gt(z,"Core/Geometry/GeometryUtilities.js",[],function(){var V,J;return(J=V||(V={})).getCenterOfPoints=function(st){let nt=st.reduce((it,tt)=>(it.x+=tt.x,it.y+=tt.y,it),{x:0,y:0});return{x:nt.x/st.length,y:nt.y/st.length}},J.getDistanceBetweenPoints=function(st,nt){return Math.sqrt(Math.pow(nt.x-st.x,2)+Math.pow(nt.y-st.y,2))},J.getAngleBetweenPoints=function(st,nt){return Math.atan2(nt.x-st.x,nt.y-st.y)},J.pointInPolygon=function({x:st,y:nt},it){let tt=it.length,Q,X,F=!1;for(Q=0,X=tt-1;Q<tt;X=Q++){let[$,C]=it[Q],[j,B]=it[X];C>nt!=B>nt&&st<(j-$)*(nt-C)/(B-C)+$&&(F=!F)}return F},V}),gt(z,"Extensions/OverlappingDataLabels.js",[z["Core/Geometry/GeometryUtilities.js"],z["Core/Utilities.js"]],function(V,J){let{pointInPolygon:st}=V,{addEvent:nt,fireEvent:it,objectEach:tt,pick:Q}=J;function X(C){let j=C.length,B=(O,L)=>!(L.x>=O.x+O.width||L.x+L.width<=O.x||L.y>=O.y+O.height||L.y+L.height<=O.y),R=(O,L)=>{for(let u of O)if(st({x:u[0],y:u[1]},L))return!0;return!1},g,k,A,v,p,y=!1;for(let O=0;O<j;O++)(g=C[O])&&(g.oldOpacity=g.opacity,g.newOpacity=1,g.absoluteBox=function(L){var u,l;if(L&&(!L.alignAttr||L.placed)){let m=L.box?0:L.padding||0,o=L.alignAttr||{x:L.attr("x"),y:L.attr("y")},e=L.getBBox();return L.width=e.width,L.height=e.height,{x:o.x+(((u=L.parentGroup)==null?void 0:u.translateX)||0)+m,y:o.y+(((l=L.parentGroup)==null?void 0:l.translateY)||0)+m,width:(L.width||0)-2*m,height:(L.height||0)-2*m,polygon:e==null?void 0:e.polygon}}}(g));C.sort((O,L)=>(L.labelrank||0)-(O.labelrank||0));for(let O=0;O<j;++O){v=(k=C[O])&&k.absoluteBox;let L=v==null?void 0:v.polygon;for(let u=O+1;u<j;++u){p=(A=C[u])&&A.absoluteBox;let l=!1;if(v&&p&&k!==A&&k.newOpacity!==0&&A.newOpacity!==0&&k.visibility!=="hidden"&&A.visibility!=="hidden"){let m=p.polygon;if(L&&m&&L!==m?R(L,m)&&(l=!0):B(v,p)&&(l=!0),l){let o=k.labelrank<A.labelrank?k:A,e=o.text;o.newOpacity=0,e!=null&&e.element.querySelector("textPath")&&e.hide()}}}}for(let O of C)F(O,this)&&(y=!0);y&&it(this,"afterHideAllOverlappingLabels")}function F(C,j){let B,R,g=!1;return C&&(R=C.newOpacity,C.oldOpacity!==R&&(C.hasClass("highcharts-data-label")?(C[R?"removeClass":"addClass"]("highcharts-data-label-hidden"),B=function(){j.styledMode||C.css({pointerEvents:R?"auto":"none"})},g=!0,C[C.isOld?"animate":"attr"]({opacity:R},void 0,B),it(j,"afterHideOverlappingLabel")):C.attr({opacity:R})),C.isOld=!0),g}function $(){var B;let C=this,j=[];for(let R of C.labelCollectors||[])j=j.concat(R());for(let R of C.yAxis||[])R.stacking&&R.options.stackLabels&&!R.options.stackLabels.allowOverlap&&tt(R.stacking.stacks,g=>{tt(g,k=>{k.label&&j.push(k.label)})});for(let R of C.series||[])if(R.visible&&((B=R.hasDataLabels)!=null&&B.call(R))){let g=k=>{for(let A of k)A.visible&&(A.dataLabels||[]).forEach(v=>{var y;let p=v.options||{};v.labelrank=Q(p.labelrank,A.labelrank,(y=A.shapeArgs)==null?void 0:y.height),p.allowOverlap??Number(p.distance)>0?(v.oldOpacity=v.opacity,v.newOpacity=1,F(v,C)):j.push(v)})};g(R.nodes||[]),g(R.points)}this.hideOverlappingLabels(j)}return{compose:function(C){let j=C.prototype;j.hideOverlappingLabels||(j.hideOverlappingLabels=X,nt(C,"render",$))}}}),gt(z,"Extensions/BorderRadius.js",[z["Core/Defaults.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J,st){let{defaultOptions:nt}=V,{noop:it}=J,{addEvent:tt,extend:Q,isObject:X,merge:F,relativeLength:$}=st,C={radius:0,scope:"stack",where:void 0},j=it,B=it;function R(p,y,O,L,u={}){let l=j(p,y,O,L,u),{innerR:m=0,r:o=O,start:e=0,end:t=0}=u;if(u.open||!u.borderRadius)return l;let s=t-e,n=Math.sin(s/2),i=Math.max(Math.min($(u.borderRadius||0,o-m),(o-m)/2,o*n/(1+n)),0),a=Math.min(i,s/Math.PI*2*m),r=l.length-1;for(;r--;)(function(f,P,d){let w,T,D,H=f[P],x=f[P+1];if(x[0]==="Z"&&(x=f[0]),(H[0]==="M"||H[0]==="L")&&x[0]==="A"?(w=H,T=x,D=!0):H[0]==="A"&&(x[0]==="M"||x[0]==="L")&&(w=x,T=H),w&&T&&T.params){let c=T[1],M=T[5],G=T.params,{start:h,end:S,cx:b,cy:E}=G,I=M?c-d:c+d,N=I?Math.asin(d/I):0,U=M?N:-N,Z=Math.cos(N)*I;D?(G.start=h+U,w[1]=b+Z*Math.cos(h),w[2]=E+Z*Math.sin(h),f.splice(P+1,0,["A",d,d,0,0,1,b+c*Math.cos(G.start),E+c*Math.sin(G.start)])):(G.end=S-U,T[6]=b+c*Math.cos(G.end),T[7]=E+c*Math.sin(G.end),f.splice(P+1,0,["A",d,d,0,0,1,b+Z*Math.cos(S),E+Z*Math.sin(S)])),T[4]=Math.abs(G.end-G.start)<Math.PI?0:1}})(l,r,r>1?a:i);return l}function g(){var p,y;if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:O,yAxis:L}=this,u=O.stacking==="percent",l=(y=(p=nt.plotOptions)==null?void 0:p[this.type])==null?void 0:y.borderRadius,m=k(O.borderRadius,X(l)?l:{}),o=L.options.reversed;for(let e of this.points){let{shapeArgs:t}=e;if(e.shapeType==="roundedRect"&&t){let{width:s=0,height:n=0,y:i=0}=t,a=i,r=n;if(m.scope==="stack"&&e.stackTotal){let w=L.translate(u?100:e.stackTotal,!1,!0,!1,!0),T=L.translate(O.threshold||0,!1,!0,!1,!0),D=this.crispCol(0,Math.min(w,T),0,Math.abs(w-T));a=D.y,r=D.height}let f=(e.negative?-1:1)*(o?-1:1)==-1,P=m.where;!P&&this.is("waterfall")&&Math.abs((e.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(P="all"),P||(P="end");let d=Math.min($(m.radius,s),s/2,P==="all"?n/2:1/0)||0;P==="end"&&(f&&(a-=d),r+=d),Q(t,{brBoxHeight:r,brBoxY:a,r:d})}}}}function k(p,y){return X(p)||(p={radius:p||0}),F(C,y,p)}function A(){let p=k(this.options.borderRadius);for(let y of this.points){let O=y.shapeArgs;O&&(O.borderRadius=$(p.radius,(O.r||0)-(O.innerR||0)))}}function v(p,y,O,L,u={}){let l=B(p,y,O,L,u),{r:m=0,brBoxHeight:o=L,brBoxY:e=y}=u,t=y-e,s=e+o-(y+L),n=t-m>-.1?0:m,i=s-m>-.1?0:m,a=Math.max(n&&t,0),r=Math.max(i&&s,0),f=[p+n,y],P=[p+O-n,y],d=[p+O,y+n],w=[p+O,y+L-i],T=[p+O-i,y+L],D=[p+i,y+L],H=[p,y+L-i],x=[p,y+n],c=(M,G)=>Math.sqrt(Math.pow(M,2)-Math.pow(G,2));if(a){let M=c(n,n-a);f[0]-=M,P[0]+=M,d[1]=x[1]=y+n-a}if(L<n-a){let M=c(n,n-a-L);d[0]=w[0]=p+O-n+M,T[0]=Math.min(d[0],T[0]),D[0]=Math.max(w[0],D[0]),H[0]=x[0]=p+n-M,d[1]=x[1]=y+L}if(r){let M=c(i,i-r);T[0]+=M,D[0]-=M,w[1]=H[1]=y+L-i+r}if(L<i-r){let M=c(i,i-r-L);d[0]=w[0]=p+O-i+M,P[0]=Math.min(d[0],P[0]),f[0]=Math.max(w[0],f[0]),H[0]=x[0]=p+i-M,w[1]=H[1]=y}return l.length=0,l.push(["M",...f],["L",...P],["A",n,n,0,0,1,...d],["L",...w],["A",i,i,0,0,1,...T],["L",...D],["A",i,i,0,0,1,...H],["L",...x],["A",n,n,0,0,1,...f],["Z"]),l}return{compose:function(p,y,O){let L=p.types.pie;if(!y.symbolCustomAttribs.includes("borderRadius")){let u=O.prototype.symbols;tt(p,"afterColumnTranslate",g,{order:9}),tt(L,"afterTranslate",A),y.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),j=u.arc,B=u.roundedRect,u.arc=R,u.roundedRect=v}},optionsToObject:k}}),gt(z,"Core/Responsive.js",[z["Core/Utilities.js"]],function(V){var J;let{diffObjects:st,extend:nt,find:it,merge:tt,pick:Q,uniqueKey:X}=V;return function(F){function $(j,B){let R=j.condition;(R.callback||function(){return this.chartWidth<=Q(R.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=Q(R.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=Q(R.minWidth,0)&&this.chartHeight>=Q(R.minHeight,0)}).call(this)&&B.push(j._id)}function C(j,B){let R=this.options.responsive,g=this.currentResponsive,k=[],A;!B&&R&&R.rules&&R.rules.forEach(y=>{y._id===void 0&&(y._id=X()),this.matchResponsiveRule(y,k)},this);let v=tt(...k.map(y=>it((R||{}).rules||[],O=>O._id===y)).map(y=>y&&y.chartOptions));v.isResponsiveOptions=!0,k=k.toString()||void 0;let p=g&&g.ruleIds;k===p||(g&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(g.undoOptions,j,!0),this.updatingResponsive=!1),k?((A=st(v,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:k,mergedOptions:v,undoOptions:A},this.updatingResponsive||this.update(v,j,!0)):this.currentResponsive=void 0)}F.compose=function(j){let B=j.prototype;return B.matchResponsiveRule||nt(B,{matchResponsiveRule:$,setResponsive:C}),j}}(J||(J={})),J}),gt(z,"masters/highcharts.src.js",[z["Core/Globals.js"],z["Core/Utilities.js"],z["Core/Defaults.js"],z["Core/Animation/Fx.js"],z["Core/Animation/AnimationUtilities.js"],z["Core/Renderer/HTML/AST.js"],z["Core/Templating.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Renderer/SVG/SVGRenderer.js"],z["Core/Renderer/HTML/HTMLElement.js"],z["Core/Axis/Axis.js"],z["Core/Axis/DateTimeAxis.js"],z["Core/Axis/LogarithmicAxis.js"],z["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],z["Core/Axis/Tick.js"],z["Core/Tooltip.js"],z["Core/Series/Point.js"],z["Core/Pointer.js"],z["Core/Legend/Legend.js"],z["Core/Legend/LegendSymbol.js"],z["Core/Chart/Chart.js"],z["Extensions/ScrollablePlotArea.js"],z["Core/Axis/Stacking/StackingAxis.js"],z["Core/Axis/Stacking/StackItem.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Series/Column/ColumnDataLabel.js"],z["Series/Pie/PieDataLabel.js"],z["Core/Series/DataLabel.js"],z["Extensions/OverlappingDataLabels.js"],z["Extensions/BorderRadius.js"],z["Core/Responsive.js"],z["Core/Color/Color.js"],z["Core/Time.js"]],function(V,J,st,nt,it,tt,Q,X,F,$,C,j,B,R,g,k,A,v,p,y,O,L,u,l,m,o,e,t,s,n,i,a,r,f,P,d){return V.AST=tt,V.Axis=B,V.Chart=u,V.Color=P,V.DataLabel=i,V.Fx=nt,V.HTMLElement=j,V.Legend=O,V.LegendSymbol=L,V.OverlappingDataLabels=V.OverlappingDataLabels||a,V.PlotLineOrBand=k,V.Point=p,V.Pointer=y,V.RendererRegistry=X,V.Series=e,V.SeriesRegistry=t,V.StackItem=o,V.SVGElement=$,V.SVGRenderer=C,V.Templating=Q,V.Tick=A,V.Time=d,V.Tooltip=v,V.animate=it.animate,V.animObject=it.animObject,V.chart=u.chart,V.color=P.parse,V.dateFormat=Q.dateFormat,V.defaultOptions=st.defaultOptions,V.distribute=F.distribute,V.format=Q.format,V.getDeferredAnimation=it.getDeferredAnimation,V.getOptions=st.getOptions,V.numberFormat=Q.numberFormat,V.seriesType=t.seriesType,V.setAnimation=it.setAnimation,V.setOptions=st.setOptions,V.stop=it.stop,V.time=st.defaultTime,V.timers=nt.timers,r.compose(V.Series,V.SVGElement,V.SVGRenderer),s.compose(V.Series.types.column),i.compose(V.Series),R.compose(V.Axis),j.compose(V.SVGRenderer),O.compose(V.Chart),g.compose(V.Axis),a.compose(V.Chart),n.compose(V.Series.types.pie),k.compose(V.Chart,V.Axis),y.compose(V.Chart),f.compose(V.Chart),l.compose(V.Axis,V.Chart,V.Series),m.compose(V.Axis,V.Chart,V.Series),v.compose(V.Pointer),J.extend(V,J),V}),gt(z,"Series/DataModifyComposition.js",[z["Core/Axis/Axis.js"],z["Core/Series/Point.js"],z["Core/Series/Series.js"],z["Core/Utilities.js"]],function(V,J,st,nt){var it;let{tooltipFormatter:tt}=J.prototype,{addEvent:Q,arrayMax:X,arrayMin:F,correctFloat:$,defined:C,isArray:j,isNumber:B,isString:R,pick:g}=nt;return function(k){function A(e,t,s){!this.isXAxis&&(this.series.forEach(function(n){e==="compare"&&typeof t!="boolean"?n.setCompare(t,!1):e!=="cumulative"||R(t)||n.setCumulative(t,!1)}),g(s,!0)&&this.chart.redraw())}function v(e){let t=this,{numberFormatter:s}=t.series.chart,n=function(i){e=e.replace("{point."+i+"}",(t[i]>0&&i==="change"?"+":"")+s(t[i],g(t.series.tooltipOptions.changeDecimals,2)))};return C(t.change)&&n("change"),C(t.cumulativeSum)&&n("cumulativeSum"),tt.apply(this,[e])}function p(){let e,t=this.options.compare;(t==="percent"||t==="value"||this.options.cumulative)&&(e=new o(this),t==="percent"||t==="value"?e.initCompare(t):e.initCumulative()),this.dataModify=e}function y(e){let t=e.dataExtremes,s=t.activeYData;if(this.dataModify&&t){let n;this.options.compare?n=[this.dataModify.modifyValue(t.dataMin),this.dataModify.modifyValue(t.dataMax)]:this.options.cumulative&&j(s)&&s.length>=2&&(n=o.getCumulativeExtremes(s)),n&&(t.dataMin=F(n),t.dataMax=X(n))}}function O(e,t){this.options.compare=this.userOptions.compare=e,this.update({},g(t,!0)),this.dataModify&&(e==="value"||e==="percent")?this.dataModify.initCompare(e):this.points.forEach(s=>{delete s.change})}function L(){if(this.xAxis&&this.processedYData&&this.dataModify){let e=this.processedXData,t=this.processedYData,s=t.length,n=this.options.compareStart===!0?0:1,i=-1,a;for(this.pointArrayMap&&(i=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),a=0;a<s-n;a++){let r=t[a]&&i>-1?t[a][i]:t[a];if(B(r)&&r!==0&&e[a+n]>=(this.xAxis.min||0)){this.dataModify.compareValue=r;break}}}}function u(e,t){this.setModifier("compare",e,t)}function l(e,t){e=g(e,!1),this.options.cumulative=this.userOptions.cumulative=e,this.update({},g(t,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(s=>{delete s.cumulativeSum})}function m(e,t){this.setModifier("cumulative",e,t)}k.compose=function(e,t,s){let n=t.prototype,i=s.prototype,a=e.prototype;return a.setCompare||(a.setCompare=O,a.setCumulative=l,Q(e,"afterInit",p),Q(e,"afterGetExtremes",y),Q(e,"afterProcessData",L)),n.setCompare||(n.setCompare=u,n.setModifier=A,n.setCumulative=m,i.tooltipFormatter=v),e};class o{constructor(t){this.series=t}modifyValue(){return 0}static getCumulativeExtremes(t){let s=1/0,n=-1/0;return t.reduce((i,a)=>{let r=i+a;return s=Math.min(s,r,i),n=Math.max(n,r,i),r}),[s,n]}initCompare(t){this.modifyValue=function(s,n){s===null&&(s=0);let i=this.compareValue;if(s!==void 0&&i!==void 0){if(t==="value"?s-=i:s=s/i*100-(this.series.options.compareBase===100?0:100),n!==void 0){let a=this.series.points[n];a&&(a.change=s)}return s}return 0}}initCumulative(){this.modifyValue=function(t,s){if(t===null&&(t=0),t!==void 0&&s!==void 0){let n=s>0?this.series.points[s-1]:null;n&&n.cumulativeSum&&(t=$(n.cumulativeSum+t));let i=this.series.points[s],a=i.series.options.cumulativeStart,r=i.x<=this.series.xAxis.max&&i.x>=this.series.xAxis.min;return i&&(!a||r?i.cumulativeSum=t:i.cumulativeSum=void 0),t}return 0}}}k.Additions=o}(it||(it={})),it}),gt(z,"Stock/Navigator/ChartNavigatorComposition.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J){let st,{isTouchDevice:nt}=V,{addEvent:it,merge:tt,pick:Q}=J,X=[];function F(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){var O;let k,A,v,p=this.legend,y=this.navigator;if(y){k=p&&p.options,A=y.xAxis,v=y.yAxis;let{scrollbarHeight:L,scrollButtonSize:u}=y;this.inverted?(y.left=y.opposite?this.chartWidth-L-y.height:this.spacing[3]+L,y.top=this.plotTop+u):(y.left=Q(A.left,this.plotLeft+u),y.top=y.navigatorOptions.top||this.chartHeight-y.height-L-(((O=this.scrollbar)==null?void 0:O.options.margin)||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(k&&k.verticalAlign==="bottom"&&k.layout!=="proximate"&&k.enabled&&!k.floating?p.legendHeight+Q(k.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),A&&v&&(this.inverted?A.options.left=v.options.left=y.left:A.options.top=v.options.top=y.top,A.setAxisSize(),v.setAxisSize())}}function C(k){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new st(this),Q(k.redraw,!0)&&this.redraw(k.animation))}function j(){let k=this.options;(k.navigator.enabled||k.scrollbar.enabled)&&(this.scroller=this.navigator=new st(this))}function B(){let k=this.options,A=k.navigator,v=k.rangeSelector;if((A&&A.enabled||v&&v.enabled)&&(!nt&&this.zooming.type==="x"||nt&&this.zooming.pinchType==="x"))return!1}function R(k){let A=k.navigator;if(A&&k.xAxis[0]){let v=k.xAxis[0].getExtremes();A.render(v.min,v.max)}}function g(k){let A=k.options.navigator||{},v=k.options.scrollbar||{};!this.navigator&&!this.scroller&&(A.enabled||v.enabled)&&(tt(!0,this.options.navigator,A),tt(!0,this.options.scrollbar,v),delete k.options.navigator,delete k.options.scrollbar)}return{compose:function(k,A){if(J.pushUnique(X,k)){let v=k.prototype;st=A,v.callbacks.push(R),it(k,"afterAddSeries",F),it(k,"afterSetChartSize",$),it(k,"afterUpdate",C),it(k,"beforeRender",j),it(k,"beforeShowResetZoom",B),it(k,"update",g)}}}}),gt(z,"Core/Axis/NavigatorAxisComposition.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J){let{isTouchDevice:st}=V,{addEvent:nt,correctFloat:it,defined:tt,isNumber:Q,pick:X}=J;function F(){this.navigatorAxis||(this.navigatorAxis=new C(this))}function $(j){let B,R=this.chart,g=R.options,k=g.navigator,A=this.navigatorAxis,v=R.zooming.pinchType,p=g.rangeSelector,y=R.zooming.type;if(this.isXAxis&&(k!=null&&k.enabled||p!=null&&p.enabled)){if(y==="y"&&j.trigger==="zoom")B=!1;else if((j.trigger==="zoom"&&y==="xy"||st&&v==="xy")&&this.options.range){let O=A.previousZoom;tt(j.min)?A.previousZoom=[this.min,this.max]:O&&(j.min=O[0],j.max=O[1],A.previousZoom=void 0)}}B!==void 0&&j.preventDefault()}class C{static compose(B){B.keepProps.includes("navigatorAxis")||(B.keepProps.push("navigatorAxis"),nt(B,"init",F),nt(B,"setExtremes",$))}constructor(B){this.axis=B}destroy(){this.axis=void 0}toFixedRange(B,R,g,k){let A=this.axis,v=(A.pointRange||0)/2,p=X(g,A.translate(B,!0,!A.horiz)),y=X(k,A.translate(R,!0,!A.horiz));return tt(g)||(p=it(p+v)),tt(k)||(y=it(y-v)),Q(p)&&Q(y)||(p=y=void 0),{min:p,max:y}}}return C}),gt(z,"Stock/Navigator/NavigatorDefaults.js",[z["Core/Color/Color.js"],z["Core/Series/SeriesRegistry.js"]],function(V,J){let{parse:st}=V,{seriesTypes:nt}=J;return{height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:st("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:nt.areaspline===void 0?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["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,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),gt(z,"Stock/Navigator/NavigatorSymbols.js",[z["Core/Renderer/SVG/Symbols.js"],z["Core/Utilities.js"]],function(V,J){let{relativeLength:st}=J;return{"navigator-handle":function(nt,it,tt,Q,X={}){let F=X.width?X.width/2:tt,$=st(X.borderRadius||0,Math.min(2*F,Q));return[["M",-1.5,(Q=X.height||Q)/2-3.5],["L",-1.5,Q/2+4.5],["M",.5,Q/2-3.5],["L",.5,Q/2+4.5],...V.rect(-F-1,.5,2*F+1,Q,{r:$})]}}}),gt(z,"Stock/Utilities/StockUtilities.js",[z["Core/Utilities.js"]],function(V){let{defined:J}=V;return{setFixedRange:function(st){let nt=this.xAxis[0];J(nt.dataMax)&&J(nt.dataMin)&&st?this.fixedRange=Math.min(st,nt.dataMax-nt.dataMin):this.fixedRange=st}}}),gt(z,"Stock/Navigator/NavigatorComposition.js",[z["Core/Defaults.js"],z["Core/Globals.js"],z["Core/Axis/NavigatorAxisComposition.js"],z["Stock/Navigator/NavigatorDefaults.js"],z["Stock/Navigator/NavigatorSymbols.js"],z["Core/Renderer/RendererRegistry.js"],z["Stock/Utilities/StockUtilities.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X){let{setOptions:F}=V,{composed:$}=J,{getRendererType:C}=tt,{setFixedRange:j}=Q,{addEvent:B,extend:R,pushUnique:g}=X;function k(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(A,v,p){st.compose(v),g($,"Navigator")&&(A.prototype.setFixedRange=j,R(C().prototype.symbols,it),B(p,"afterUpdate",k),F({navigator:nt}))}}}),gt(z,"Core/Axis/ScrollbarAxis.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J){var st;let{composed:nt}=V,{addEvent:it,defined:tt,pick:Q,pushUnique:X}=J;return function(F){let $;function C(g){let k=Q(g.options&&g.options.min,g.min),A=Q(g.options&&g.options.max,g.max);return{axisMin:k,axisMax:A,scrollMin:tt(g.dataMin)?Math.min(k,g.min,g.dataMin,Q(g.threshold,1/0)):k,scrollMax:tt(g.dataMax)?Math.max(A,g.max,g.dataMax,Q(g.threshold,-1/0)):A}}function j(){let g=this.scrollbar,k=g&&!g.options.opposite,A=this.horiz?2:k?3:1;g&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[A]+=g.size+(g.options.margin||0))}function B(){let g=this;g.options&&g.options.scrollbar&&g.options.scrollbar.enabled&&(g.options.scrollbar.vertical=!g.horiz,g.options.startOnTick=g.options.endOnTick=!1,g.scrollbar=new $(g.chart.renderer,g.options.scrollbar,g.chart),it(g.scrollbar,"changed",function(k){let A,v,{axisMin:p,axisMax:y,scrollMin:O,scrollMax:L}=C(g),u=L-O;if(tt(p)&&tt(y))if(g.horiz&&!g.reversed||!g.horiz&&g.reversed?(A=O+u*this.to,v=O+u*this.from):(A=O+u*(1-this.from),v=O+u*(1-this.to)),this.shouldUpdateExtremes(k.DOMType)){let l=k.DOMType!=="mousemove"&&k.DOMType!=="touchmove"&&void 0;g.setExtremes(v,A,!0,l,k)}else this.setRange(this.from,this.to)}))}function R(){let g,k,A,{scrollMin:v,scrollMax:p}=C(this),y=this.scrollbar,O=this.axisTitleMargin+(this.titleOffset||0),L=this.chart.scrollbarsOffsets,u=this.options.margin||0;if(y&&L){if(this.horiz)this.opposite||(L[1]+=O),y.position(this.left,this.top+this.height+2+L[1]-(this.opposite?u:0),this.width,this.height),this.opposite||(L[1]+=u),g=1;else{let l;this.opposite&&(L[0]+=O),l=y.options.opposite?this.left+this.width+2+L[0]-(this.opposite?0:u):this.opposite?0:u,y.position(l,this.top,this.width,this.height),this.opposite&&(L[0]+=u),g=0}if(L[g]+=y.size+(y.options.margin||0),isNaN(v)||isNaN(p)||!tt(this.min)||!tt(this.max)||this.dataMin===this.dataMax)y.setRange(0,1);else if(this.min===this.max){let l=this.pointRange/(this.dataMax+1);k=l*this.min,A=l*(this.max+1),y.setRange(k,A)}else k=(this.min-v)/(p-v),A=(this.max-v)/(p-v),this.horiz&&!this.reversed||!this.horiz&&this.reversed?y.setRange(k,A):y.setRange(1-A,1-k)}}F.compose=function(g,k){X(nt,"Axis.Scrollbar")&&($=k,it(g,"afterGetOffset",j),it(g,"afterInit",B),it(g,"afterRender",R))}}(st||(st={})),st}),gt(z,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),gt(z,"Stock/Scrollbar/Scrollbar.js",[z["Core/Defaults.js"],z["Core/Globals.js"],z["Core/Axis/ScrollbarAxis.js"],z["Stock/Scrollbar/ScrollbarDefaults.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it){let{defaultOptions:tt}=V,{addEvent:Q,correctFloat:X,crisp:F,defined:$,destroyObjectProperties:C,fireEvent:j,merge:B,pick:R,removeEvent:g}=it;class k{static compose(v){st.compose(v,k)}static swapXY(v,p){return p&&v.forEach(y=>{let O,L=y.length;for(let u=0;u<L;u+=2)typeof(O=y[u+1])=="number"&&(y[u+1]=y[u+2],y[u+2]=O)}),v}constructor(v,p,y){this._events=[],this.chartX=0,this.chartY=0,this.from=0,this.scrollbarButtons=[],this.scrollbarLeft=0,this.scrollbarStrokeWidth=1,this.scrollbarTop=0,this.size=0,this.to=0,this.trackBorderWidth=1,this.x=0,this.y=0,this.init(v,p,y)}addEvents(){let v=this.options.inverted?[1,0]:[0,1],p=this.scrollbarButtons,y=this.scrollbarGroup.element,O=this.track.element,L=this.mouseDownHandler.bind(this),u=this.mouseMoveHandler.bind(this),l=this.mouseUpHandler.bind(this),m=[[p[v[0]].element,"click",this.buttonToMinClick.bind(this)],[p[v[1]].element,"click",this.buttonToMaxClick.bind(this)],[O,"click",this.trackClick.bind(this)],[y,"mousedown",L],[y.ownerDocument,"mousemove",u],[y.ownerDocument,"mouseup",l],[y,"touchstart",L],[y.ownerDocument,"touchmove",u],[y.ownerDocument,"touchend",l]];m.forEach(function(o){Q.apply(null,o)}),this._events=m}buttonToMaxClick(v){let p=(this.to-this.from)*R(this.options.step,.2);this.updatePosition(this.from+p,this.to+p),j(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:v})}buttonToMinClick(v){let p=X(this.to-this.from)*R(this.options.step,.2);this.updatePosition(X(this.from-p),X(this.to-p)),j(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:v})}cursorToScrollbarPosition(v){let p=this.options,y=p.minWidth>this.calculatedWidth?p.minWidth:0;return{chartX:(v.chartX-this.x-this.xOffset)/(this.barWidth-y),chartY:(v.chartY-this.y-this.yOffset)/(this.barWidth-y)}}destroy(){let v=this,p=v.chart.scroller;v.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(y){v[y]&&v[y].destroy&&(v[y]=v[y].destroy())}),p&&v===p.scrollbar&&(p.scrollbar=null,C(p.scrollbarButtons))}drawScrollbarButton(v){let p=this.renderer,y=this.scrollbarButtons,O=this.options,L=this.size,u=p.g().add(this.group);if(y.push(u),O.buttonsEnabled){let l=p.rect().addClass("highcharts-scrollbar-button").add(u);this.chart.styledMode||l.attr({stroke:O.buttonBorderColor,"stroke-width":O.buttonBorderWidth,fill:O.buttonBackgroundColor}),l.attr(l.crisp({x:-.5,y:-.5,width:L,height:L,r:O.buttonBorderRadius},l.strokeWidth()));let m=p.path(k.swapXY([["M",L/2+(v?-1:1),L/2-3],["L",L/2+(v?-1:1),L/2+3],["L",L/2+(v?2:-2),L/2]],O.vertical)).addClass("highcharts-scrollbar-arrow").add(y[v]);this.chart.styledMode||m.attr({fill:O.buttonArrowColor})}}init(v,p,y){this.scrollbarButtons=[],this.renderer=v,this.userOptions=p,this.options=B(nt,tt.scrollbar,p),this.options.margin=R(this.options.margin,10),this.chart=y,this.size=R(this.options.size,this.options.height),p.enabled&&(this.render(),this.addEvents())}mouseDownHandler(v){var O;let p=((O=this.chart.pointer)==null?void 0:O.normalize(v))||v,y=this.cursorToScrollbarPosition(p);this.chartX=y.chartX,this.chartY=y.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(v){var u;let p,y=((u=this.chart.pointer)==null?void 0:u.normalize(v))||v,O=this.options.vertical?"chartY":"chartX",L=this.initPositions||[];this.grabbedCenter&&(!v.touches||v.touches[0][O]!==0)&&(p=this.cursorToScrollbarPosition(y)[O]-this[O],this.hasDragged=!0,this.updatePosition(L[0]+p,L[1]+p),this.hasDragged&&j(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:v.type,DOMEvent:v}))}mouseUpHandler(v){this.hasDragged&&j(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:v.type,DOMEvent:v}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(v,p,y,O){let{buttonsEnabled:L,margin:u=0,vertical:l}=this.options,m=this.rendered?"animate":"attr",o=O,e=0;this.group.show(),this.x=v,this.y=p+this.trackBorderWidth,this.width=y,this.height=O,this.xOffset=o,this.yOffset=e,l?(this.width=this.yOffset=y=e=this.size,this.xOffset=o=0,this.yOffset=e=L?this.size:0,this.barWidth=O-(L?2*y:0),this.x=v+=u):(this.height=O=this.size,this.xOffset=o=L?this.size:0,this.barWidth=y-(L?2*O:0),this.y=this.y+u),this.group[m]({translateX:v,translateY:this.y}),this.track[m]({width:y,height:O}),this.scrollbarButtons[1][m]({translateX:l?0:y-o,translateY:l?O-e:0})}removeEvents(){this._events.forEach(function(v){g.apply(null,v)}),this._events.length=0}render(){let v=this.renderer,p=this.options,y=this.size,O=this.chart.styledMode,L=v.g("scrollbar").attr({zIndex:p.zIndex}).hide().add();this.group=L,this.track=v.rect().addClass("highcharts-scrollbar-track").attr({r:p.trackBorderRadius||0,height:y,width:y}).add(L),O||this.track.attr({fill:p.trackBackgroundColor,stroke:p.trackBorderColor,"stroke-width":p.trackBorderWidth});let u=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-F(0,u),y:-F(0,u)}),this.scrollbarGroup=v.g().add(L),this.scrollbar=v.rect().addClass("highcharts-scrollbar-thumb").attr({height:y-u,width:y-u,r:p.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=v.path(k.swapXY([["M",-3,y/4],["L",-3,2*y/3],["M",0,y/4],["L",0,2*y/3],["M",3,y/4],["L",3,2*y/3]],p.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),O||(this.scrollbar.attr({fill:p.barBackgroundColor,stroke:p.barBorderColor,"stroke-width":p.barBorderWidth}),this.scrollbarRifles.attr({stroke:p.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-F(0,this.scrollbarStrokeWidth),-F(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(v,p){let y,O,L=this.options,u=L.vertical,l=L.minWidth,m=this.barWidth,o=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!$(m))return;let e=m*Math.min(p,1);y=Math.ceil(m*(v=Math.max(v,0))),this.calculatedWidth=O=X(e-y),O<l&&(y=(m-l+O)*v,O=l);let t=Math.floor(y+this.xOffset+this.yOffset),s=O/2-.5;this.from=v,this.to=p,u?(this.scrollbarGroup[o]({translateY:t}),this.scrollbar[o]({height:O}),this.scrollbarRifles[o]({translateY:s}),this.scrollbarTop=t,this.scrollbarLeft=0):(this.scrollbarGroup[o]({translateX:t}),this.scrollbar[o]({width:O}),this.scrollbarRifles[o]({translateX:s}),this.scrollbarLeft=t,this.scrollbarTop=0),O<=12?this.scrollbarRifles.hide():this.scrollbarRifles.show(),L.showFull===!1&&(v<=0&&p>=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(v){return R(this.options.liveRedraw,J.svg&&!J.isTouchDevice&&!this.chart.boosted)||v==="mouseup"||v==="touchend"||!$(v)}trackClick(v){var u;let p=((u=this.chart.pointer)==null?void 0:u.normalize(v))||v,y=this.to-this.from,O=this.y+this.scrollbarTop,L=this.x+this.scrollbarLeft;this.options.vertical&&p.chartY>O||!this.options.vertical&&p.chartX>L?this.updatePosition(this.from+y,this.to+y):this.updatePosition(this.from-y,this.to-y),j(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:v})}update(v){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,v),this.chart)}updatePosition(v,p){p>1&&(v=X(1-X(p-v)),p=1),v<0&&(p=X(p-v),v=0),this.from=v,this.to=p}}return k.defaultOptions=nt,tt.scrollbar=B(!0,k.defaultOptions,tt.scrollbar),k}),gt(z,"Stock/Navigator/Navigator.js",[z["Core/Axis/Axis.js"],z["Stock/Navigator/ChartNavigatorComposition.js"],z["Core/Defaults.js"],z["Core/Globals.js"],z["Core/Axis/NavigatorAxisComposition.js"],z["Stock/Navigator/NavigatorComposition.js"],z["Stock/Scrollbar/Scrollbar.js"],z["Core/Renderer/SVG/SVGRenderer.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X,F){let{defaultOptions:$}=st,{isTouchDevice:C}=nt,{prototype:{symbols:j}}=X,{addEvent:B,clamp:R,correctFloat:g,defined:k,destroyObjectProperties:A,erase:v,extend:p,find:y,fireEvent:O,isArray:L,isNumber:u,merge:l,pick:m,removeEvent:o,splat:e}=F;function t(n,...i){let a=[].filter.call(i,u);if(a.length)return Math[n].apply(0,a)}class s{static compose(i,a,r){J.compose(i,s),tt.compose(i,a,r)}constructor(i){this.isDirty=!1,this.scrollbarHeight=0,this.init(i)}drawHandle(i,a,r,f){let P=this.navigatorOptions.handles.height;this.handles[a][f](r?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(i,10)+.5-P)}:{translateX:Math.round(this.left+parseInt(i,10)),translateY:Math.round(this.top+this.height/2-P/2-1)})}drawOutline(i,a,r,f){let P=this.navigatorOptions.maskInside,d=this.outline.strokeWidth(),w=d/2,T=d%2/2,D=this.scrollButtonSize,H=this.size,x=this.top,c=this.height,M=x-w,G=x+c,h=this.left,S,b;r?(S=x+a+T,a=x+i+T,b=[["M",h+c,x-D-T],["L",h+c,S],["L",h,S],["M",h,a],["L",h+c,a],["L",h+c,x+H+D]],P&&b.push(["M",h+c,S-w],["L",h+c,a+w])):(h-=D,i+=h+D-T,a+=h+D-T,b=[["M",h,M],["L",i,M],["L",i,G],["M",a,G],["L",a,M],["L",h+H+2*D,M]],P&&b.push(["M",i-w,M],["L",a+w,M])),this.outline[f]({d:b})}drawMasks(i,a,r,f){let P,d,w,T,D=this.left,H=this.top,x=this.height;r?(w=[D,D,D],T=[H,H+i,H+a],d=[x,x,x],P=[i,a-i,this.size-a]):(w=[D,D+i,D+a],T=[H,H,H],d=[i,a-i,this.size-a],P=[x,x,x]),this.shades.forEach((c,M)=>{c[f]({x:w[M],y:T[M],width:d[M],height:P[M]})})}renderElements(){var D;let i=this,a=i.navigatorOptions,r=a.maskInside,f=i.chart,P=f.inverted,d=f.renderer,w={cursor:P?"ns-resize":"ew-resize"},T=i.navigatorGroup??(i.navigatorGroup=d.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!r,r,!r].forEach((H,x)=>{let c=i.shades[x]??(i.shades[x]=d.rect().addClass("highcharts-navigator-mask"+(x===1?"-inside":"-outside")).add(T));f.styledMode||(c.attr({fill:H?a.maskFill:"rgba(0,0,0,0)"}),x===1&&c.css(w))}),i.outline||(i.outline=d.path().addClass("highcharts-navigator-outline").add(T)),f.styledMode||i.outline.attr({"stroke-width":a.outlineWidth,stroke:a.outlineColor}),(D=a.handles)==null?void 0:D.enabled){let H=a.handles,{height:x,width:c}=H;[0,1].forEach(M=>{var h;let G=H.symbols[M];if(i.handles[M]&&i.handles[M].symbolUrl===G){if(!i.handles[M].isImg&&i.handles[M].symbolName!==G){let S=j[G].call(j,-c/2-1,0,c,x);i.handles[M].attr({d:S}),i.handles[M].symbolName=G}}else(h=i.handles[M])==null||h.destroy(),i.handles[M]=d.symbol(G,-c/2-1,0,c,x,H),i.handles[M].attr({zIndex:7-M}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][M]).add(T),i.addMouseEvents();f.inverted&&i.handles[M].attr({rotation:90,rotationOriginX:Math.floor(-c/2),rotationOriginY:(x+c)/2}),f.styledMode||i.handles[M].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth,width:H.width,height:H.height,x:-c/2-1,y:0}).css(w)})}}update(i,a=!1){var P;let r=this.chart,f=r.options.chart.inverted!==((P=r.scrollbar)==null?void 0:P.options.vertical);if(l(!0,r.options.navigator,i),this.navigatorOptions=r.options.navigator||{},this.setOpposite(),k(i.enabled)||f)return this.destroy(),this.navigatorEnabled=i.enabled||this.navigatorEnabled,this.init(r);if(this.navigatorEnabled&&(this.isDirty=!0,i.adaptToUpdatedData===!1&&this.baseSeries.forEach(d=>{o(d,"updatedData",this.updatedDataHandler)},this),i.adaptToUpdatedData&&this.baseSeries.forEach(d=>{d.eventsToUnbind.push(B(d,"updatedData",this.updatedDataHandler))},this),(i.series||i.baseSeries)&&this.setBaseSeries(void 0,!1),i.height||i.xAxis||i.yAxis)){this.height=i.height??this.height;let d=this.getXAxisOffsets();this.xAxis.update({...i.xAxis,offsets:d,[r.inverted?"width":"height"]:this.height,[r.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...i.yAxis,[r.inverted?"width":"height"]:this.height},!1)}a&&r.redraw()}render(i,a,r,f){let P=this.chart,d=this.xAxis,w=d.pointRange||0,T=d.navigatorAxis.fake?P.xAxis[0]:d,D=this.navigatorEnabled,H=this.rendered,x=P.inverted,c=P.xAxis[0].minRange,M=P.xAxis[0].options.maxRange,G=this.scrollButtonSize,h,S,b,E=this.scrollbarHeight,I,N;if(this.hasDragged&&!k(r))return;if(this.isDirty&&this.renderElements(),i=g(i-w/2),a=g(a+w/2),!u(i)||!u(a)){if(!H)return;r=0,f=m(d.width,T.width)}this.left=m(d.left,P.plotLeft+G+(x?P.plotWidth:0));let U=this.size=I=m(d.len,(x?P.plotHeight:P.plotWidth)-2*G);h=x?E:I+2*G,r=m(r,d.toPixels(i,!0)),f=m(f,d.toPixels(a,!0)),u(r)&&Math.abs(r)!==1/0||(r=0,f=h);let Z=d.toValue(r,!0),_=d.toValue(f,!0),at=Math.abs(g(_-Z));at<c?this.grabbedLeft?r=d.toPixels(_-c-w,!0):this.grabbedRight&&(f=d.toPixels(Z+c+w,!0)):k(M)&&g(at-w)>M&&(this.grabbedLeft?r=d.toPixels(_-M-w,!0):this.grabbedRight&&(f=d.toPixels(Z+M+w,!0))),this.zoomedMax=R(Math.max(r,f),0,U),this.zoomedMin=R(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(r,f),0,U),this.range=this.zoomedMax-this.zoomedMin,U=Math.round(this.zoomedMax);let lt=Math.round(this.zoomedMin);D&&(this.navigatorGroup.attr({visibility:"inherit"}),N=H&&!this.hasDragged?"animate":"attr",this.drawMasks(lt,U,x,N),this.drawOutline(lt,U,x,N),this.navigatorOptions.handles.enabled&&(this.drawHandle(lt,0,x,N),this.drawHandle(U,1,x,N))),this.scrollbar&&(x?(b=this.top-G,S=this.left-E+(D||!T.opposite?0:(T.titleOffset||0)+T.axisTitleMargin),E=I+2*G):(b=this.top+(D?this.height:-E),S=this.left-G),this.scrollbar.position(S,b,h,E),this.scrollbar.setRange(this.zoomedMin/(I||1),this.zoomedMax/(I||1))),this.rendered=!0,this.isDirty=!1,O(this,"afterRender")}addMouseEvents(){let i=this,a=i.chart,r=a.container,f=[],P,d;i.mouseMoveHandler=P=function(w){i.onMouseMove(w)},i.mouseUpHandler=d=function(w){i.onMouseUp(w)},(f=i.getPartsEvents("mousedown")).push(B(a.renderTo,"mousemove",P),B(r.ownerDocument,"mouseup",d),B(a.renderTo,"touchmove",P),B(r.ownerDocument,"touchend",d)),f.concat(i.getPartsEvents("touchstart")),i.eventsToUnbind=f,i.series&&i.series[0]&&f.push(B(i.series[0].xAxis,"foundExtremes",function(){a.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(i){let a=this,r=[];return["shades","handles"].forEach(function(f){a[f].forEach(function(P,d){r.push(B(P.element,i,function(w){a[f+"Mousedown"](w,d)}))})}),r}shadesMousedown(i,a){var G;i=((G=this.chart.pointer)==null?void 0:G.normalize(i))||i;let r=this.chart,f=this.xAxis,P=this.zoomedMin,d=this.size,w=this.range,T=this.left,D=i.chartX,H,x,c,M;r.inverted&&(D=i.chartY,T=this.top),a===1?(this.grabbedCenter=D,this.fixedWidth=w,this.dragOffset=D-P):(M=D-T-w/2,a===0?M=Math.max(0,M):a===2&&M+w>=d&&(M=d-w,this.reversedExtremes?(M-=w,x=this.getUnionExtremes().dataMin):H=this.getUnionExtremes().dataMax),M!==P&&(this.fixedWidth=w,k((c=f.navigatorAxis.toFixedRange(M,M+w,x,H)).min)&&O(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(i,a){var d;i=((d=this.chart.pointer)==null?void 0:d.normalize(i))||i;let r=this.chart,f=r.xAxis[0],P=this.reversedExtremes;a===0?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=P?f.min:f.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=P?f.max:f.min),r.setFixedRange(void 0)}onMouseMove(i){var H;let a=this,r=a.chart,f=a.navigatorSize,P=a.range,d=a.dragOffset,w=r.inverted,T=a.left,D;(!i.touches||i.touches[0].pageX!==0)&&(D=(i=((H=r.pointer)==null?void 0:H.normalize(i))||i).chartX,w&&(T=a.top,D=i.chartY),a.grabbedLeft?(a.hasDragged=!0,a.render(0,0,D-T,a.otherHandlePos)):a.grabbedRight?(a.hasDragged=!0,a.render(0,0,a.otherHandlePos,D-T)):a.grabbedCenter&&(a.hasDragged=!0,D<d?D=d:D>f+d-P&&(D=f+d-P),a.render(0,0,D-d,D-d+P)),a.hasDragged&&a.scrollbar&&m(a.scrollbar.options.liveRedraw,!C&&!this.chart.boosted)&&(i.DOMType=i.type,setTimeout(function(){a.onMouseUp(i)},0)))}onMouseUp(i){let a,r,f,P,d,w,T=this.chart,D=this.xAxis,H=this.scrollbar,x=i.DOMEvent||i,c=T.inverted,M=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!H||!H.hasDragged)||i.trigger==="scrollbar")&&(f=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?P=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(d=this.fixedExtreme),this.zoomedMax===this.size&&(d=this.reversedExtremes?f.dataMin:f.dataMax),this.zoomedMin===0&&(P=this.reversedExtremes?f.dataMax:f.dataMin),k((w=D.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,P,d)).min)&&O(this,"setRange",{min:Math.min(w.min,w.max),max:Math.max(w.min,w.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:x}})),i.DOMType!=="mousemove"&&i.DOMType!=="touchmove"&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&u(this.zoomedMin)&&u(this.zoomedMax)&&(r=Math.round(this.zoomedMin),a=Math.round(this.zoomedMax),this.shades&&this.drawMasks(r,a,c,M),this.outline&&this.drawOutline(r,a,c,M),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(r,0,c,M),this.drawHandle(a,1,c,M)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(i){i()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let i=this.baseSeries||[];this.navigatorEnabled&&i[0]&&(this.navigatorOptions.adaptToUpdatedData!==!1&&i.forEach(function(a){o(a,"updatedData",this.updatedDataHandler)},this),i[0].xAxis&&o(i[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(i){var h;let a=i.options,r=a.navigator||{},f=r.enabled,P=a.scrollbar||{},d=P.enabled,w=f&&r.height||0,T=d&&P.height||0,D=P.buttonsEnabled&&T||0;this.handles=[],this.shades=[],this.chart=i,this.setBaseSeries(),this.height=w,this.scrollbarHeight=T,this.scrollButtonSize=D,this.scrollbarEnabled=d,this.navigatorEnabled=f,this.navigatorOptions=r,this.scrollbarOptions=P,this.setOpposite();let H=this,x=H.baseSeries,c=i.xAxis.length,M=i.yAxis.length,G=x&&x[0]&&x[0].xAxis||i.xAxis[0]||{options:{}};if(i.isDirtyBox=!0,H.navigatorEnabled){let S=this.getXAxisOffsets();H.xAxis=new V(i,l({breaks:G.options.breaks,ordinal:G.options.ordinal,overscroll:G.options.overscroll},r.xAxis,{type:"datetime",yAxis:(h=r.yAxis)==null?void 0:h.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:G.options.ordinal?0:G.options.minPadding,maxPadding:G.options.ordinal?0:G.options.maxPadding,zoomEnabled:!1},i.inverted?{offsets:S,width:w}:{offsets:S,height:w}),"xAxis"),H.yAxis=new V(i,l(r.yAxis,{alignTicks:!1,offset:0,index:M,isInternal:!0,reversed:m(r.yAxis&&r.yAxis.reversed,i.yAxis[0]&&i.yAxis[0].reversed,!1),zoomEnabled:!1},i.inverted?{width:w}:{height:w}),"yAxis"),x||r.series.data?H.updateNavigatorSeries(!1):i.series.length===0&&(H.unbindRedraw=B(i,"beforeRedraw",function(){i.series.length>0&&!H.series&&(H.setBaseSeries(),H.unbindRedraw())})),H.reversedExtremes=i.inverted&&!H.xAxis.reversed||!i.inverted&&H.xAxis.reversed,H.renderElements(),H.addMouseEvents()}else H.xAxis={chart:i,navigatorAxis:{fake:!0},translate:function(S,b){let E=i.xAxis[0],I=E.getExtremes(),N=E.len-2*D,U=t("min",E.options.min,I.dataMin),Z=t("max",E.options.max,I.dataMax)-U;return b?S*Z/N+U:N*(S-U)/Z},toPixels:function(S){return this.translate(S)},toValue:function(S){return this.translate(S,!0)}},H.xAxis.navigatorAxis.axis=H.xAxis,H.xAxis.navigatorAxis.toFixedRange=it.prototype.toFixedRange.bind(H.xAxis.navigatorAxis);if(i.options.scrollbar.enabled){let S=l(i.options.scrollbar,{vertical:i.inverted});!u(S.margin)&&H.navigatorEnabled&&(S.margin=i.inverted?-3:3),i.scrollbar=H.scrollbar=new Q(i.renderer,S,i),B(H.scrollbar,"changed",function(b){let E=H.size,I=E*this.to,N=E*this.from;H.hasDragged=H.scrollbar.hasDragged,H.render(0,0,N,I),this.shouldUpdateExtremes(b.DOMType)&&setTimeout(function(){H.onMouseUp(b)})})}H.addBaseSeriesEvents(),H.addChartEvents()}setOpposite(){let i=this.navigatorOptions,a=this.navigatorEnabled,r=this.chart;this.opposite=m(i.opposite,!!(!a&&r.inverted))}getUnionExtremes(i){let a,r=this.chart.xAxis[0],f=this.xAxis,P=f.options,d=r.options;return i&&r.dataMin===null||(a={dataMin:m(P&&P.min,t("min",d.min,r.dataMin,f.dataMin,f.min)),dataMax:m(P&&P.max,t("max",d.max,r.dataMax,f.dataMax,f.max))}),a}setBaseSeries(i,a){let r=this.chart,f=this.baseSeries=[];i=i||r.options&&r.options.navigator.baseSeries||(r.series.length?y(r.series,P=>!P.options.isInternal).index:0),(r.series||[]).forEach((P,d)=>{!P.options.isInternal&&(P.options.showInNavigator||(d===i||P.options.id===i)&&P.options.showInNavigator!==!1)&&f.push(P)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,a)}updateNavigatorSeries(i,a){var c,M;let r=this,f=r.chart,P=r.baseSeries,d={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:(c=this.navigatorOptions.xAxis)==null?void 0:c.id,yAxis:(M=this.navigatorOptions.yAxis)==null?void 0:M.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},w=r.series=(r.series||[]).filter(G=>{let h=G.baseSeries;return!(0>P.indexOf(h))||(h&&(o(h,"updatedData",r.updatedDataHandler),delete h.navigatorSeries),G.chart&&G.destroy(),!1)}),T,D,H=r.navigatorOptions.series,x;P&&P.length&&P.forEach(G=>{let h=G.navigatorSeries,S=p({color:G.color,visible:G.visible},L(H)?$.navigator.series:H);if(h&&r.navigatorOptions.adaptToUpdatedData===!1)return;d.name="Navigator "+P.length,x=(T=G.options||{}).navigatorOptions||{},S.dataLabels=e(S.dataLabels),(D=l(T,d,S,x)).pointRange=m(S.pointRange,x.pointRange,$.plotOptions[D.type||"line"].pointRange);let b=x.data||S.data;r.hasNavigatorData=r.hasNavigatorData||!!b,D.data=b||T.data&&T.data.slice(0),h&&h.options?h.update(D,a):(G.navigatorSeries=f.initSeries(D),f.setSortedData(),G.navigatorSeries.baseSeries=G,w.push(G.navigatorSeries))}),(H.data&&!(P&&P.length)||L(H))&&(r.hasNavigatorData=!1,(H=e(H)).forEach((G,h)=>{d.name="Navigator "+(w.length+1),(D=l($.navigator.series,{color:f.series[h]&&!f.series[h].options.isInternal&&f.series[h].color||f.options.colors[h]||f.options.colors[0]},d,G)).data=G.data,D.data&&(r.hasNavigatorData=!0,w.push(f.initSeries(D)))})),i&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let i=this,a=i.baseSeries||[];a[0]&&a[0].xAxis&&a[0].eventsToUnbind.push(B(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),a.forEach(r=>{r.eventsToUnbind.push(B(r,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),r.eventsToUnbind.push(B(r,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),this.navigatorOptions.adaptToUpdatedData!==!1&&r.xAxis&&r.eventsToUnbind.push(B(r,"updatedData",this.updatedDataHandler)),r.eventsToUnbind.push(B(r,"remove",function(){a&&v(a,r),this.navigatorSeries&&(v(i.series,this.navigatorSeries),k(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(i){return this.baseSeries.reduce(function(a,r){return Math.min(a,r.xData&&r.xData.length?r.xData[0]:a)},i)}modifyNavigatorAxisExtremes(){let i=this.xAxis;if(i.getExtremes!==void 0){let a=this.getUnionExtremes(!0);a&&(a.dataMin!==i.min||a.dataMax!==i.max)&&(i.min=a.dataMin,i.max=a.dataMax)}}modifyBaseAxisExtremes(){var h;let i,a,r=this.chart.navigator,f=this.getExtremes(),P=f.min,d=f.max,w=f.dataMin,T=f.dataMax,D=d-P,H=r.stickToMin,x=r.stickToMax,c=m((h=this.ordinal)==null?void 0:h.convertOverscroll(this.options.overscroll),0),M=r.series&&r.series[0],G=!!this.setExtremes;!(this.eventArgs&&this.eventArgs.trigger==="rangeSelectorButton")&&(H&&(i=(a=w)+D),x&&(i=T+c,H||(a=Math.max(w,i-D,r.getBaseSeriesMin(M&&M.xData?M.xData[0]:-Number.MAX_VALUE)))),G&&(H||x)&&u(a)&&(this.min=this.userMin=a,this.max=this.userMax=i)),r.stickToMin=r.stickToMax=null}updatedDataHandler(){let i=this.chart.navigator,a=this.navigatorSeries,r=i.reversedExtremes?Math.round(i.zoomedMin)===0:Math.round(i.zoomedMax)>=Math.round(i.size);i.stickToMax=m(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,r),i.stickToMin=i.shouldStickToMin(this,i),a&&!i.hasNavigatorData&&(a.options.pointStart=this.xData[0],a.setData(this.options.data,!1,null,!1))}shouldStickToMin(i,a){let r=a.getBaseSeriesMin(i.xData[0]),f=i.xAxis,P=f.max,d=f.min,w=f.options.range;return!!(u(P)&&u(d))&&(w&&P-r>0?P-r<w:d<=r)}addChartEvents(){this.eventsToUnbind||(this.eventsToUnbind=[]),this.eventsToUnbind.push(B(this.chart,"redraw",function(){let i=this.navigator,a=i&&(i.baseSeries&&i.baseSeries[0]&&i.baseSeries[0].xAxis||this.xAxis[0]);a&&i.render(a.min,a.max)}),B(this.chart,"getMargins",function(){let i=this.navigator,a=i.opposite?"plotTop":"marginBottom";this.inverted&&(a=i.opposite?"marginRight":"plotLeft"),this[a]=(this[a]||0)+(i.navigatorEnabled||!this.inverted?i.height+i.scrollbarHeight:0)+i.navigatorOptions.margin}),B(s,"setRange",function(i){this.chart.xAxis[0].setExtremes(i.min,i.max,i.redraw,i.animation,i.eventArguments)}))}destroy(){this.removeEvents(),this.xAxis&&(v(this.chart.xAxis,this.xAxis),v(this.chart.axes,this.xAxis)),this.yAxis&&(v(this.chart.yAxis,this.yAxis),v(this.chart.axes,this.yAxis)),(this.series||[]).forEach(i=>{i.destroy&&i.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(i=>{this[i]&&this[i].destroy&&this[i].destroy(),this[i]=null}),[this.handles].forEach(i=>{A(i)}),this.navigatorEnabled=!1}}return s}),gt(z,"Core/Axis/OrdinalAxis.js",[z["Core/Axis/Axis.js"],z["Core/Globals.js"],z["Core/Series/Series.js"],z["Core/Utilities.js"]],function(V,J,st,nt){var it;let{addEvent:tt,correctFloat:Q,css:X,defined:F,error:$,isNumber:C,pick:j,timeUnits:B,isString:R}=nt;return function(g){function k(t,s,n,i,a=[],r=0,f){let P={},d=this.options.tickPixelInterval,w=this.chart.time,T=[],D,H,x,c,M,G=0,h=[],S=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!a||a.length<3||s===void 0)return w.getTimeTicks.apply(w,arguments);let b=a.length;for(D=0;D<b;D++){if(M=D&&a[D-1]>n,a[D]<s&&(G=D),D===b-1||a[D+1]-a[D]>5*r||M){if(a[D]>S){for(H=w.getTimeTicks(t,a[G],a[D],i);H.length&&H[0]<=S;)H.shift();H.length&&(S=H[H.length-1]),T.push(h.length),h=h.concat(H)}G=D+1}if(M)break}if(H){if(c=H.info,f&&c.unitRange<=B.hour){for(G=1,D=h.length-1;G<D;G++)w.dateFormat("%d",h[G])!==w.dateFormat("%d",h[G-1])&&(P[h[G]]="day",x=!0);x&&(P[h[0]]="day"),c.higherRanks=P}c.segmentStarts=T,h.info=c}else $(12,!1,this.chart);if(f&&F(d)){let E=h.length,I=[],N=[],U,Z,_,at,lt,Y=E;for(;Y--;)Z=this.translate(h[Y]),_&&(N[Y]=_-Z),I[Y]=_=Z;for(N.sort((W,q)=>W-q),(at=N[Math.floor(N.length/2)])<.6*d&&(at=null),Y=h[E-1]>n?E-1:E,_=void 0;Y--;)lt=Math.abs(_-(Z=I[Y])),_&<<.8*d&&(at===null||lt<.8*at)?(P[h[Y]]&&!P[h[Y+1]]?(U=Y+1,_=Z):U=Y,h.splice(U,1)):_=Z}return h}function A(t){let s=this.ordinal.positions;if(!s)return t;let n=s.length-1,i;return t<0?t=s[0]:t>n?t=s[n]:(n=Math.floor(t),i=t-n),i!==void 0&&s[n]!==void 0?s[n]+(i?i*(s[n+1]-s[n]):0):t}function v(t){let s=this.ordinal,n=this.old?this.old.min:this.min,i=this.old?this.old.transA:this.transA,a=s.getExtendedPositions();if(a&&a.length){let r=Q((t-n)*i+this.minPixelPadding),f=Q(s.getIndexOfPoint(r,a)),P=Q(f%1);if(f>=0&&f<=a.length-1){let d=a[Math.floor(f)],w=a[Math.ceil(f)];return a[Math.floor(f)]+P*(w-d)}}return t}function p(t,s){let n=g.Additions.findIndexOf(t,s,!0);if(t[n]===s)return n;let i=(s-t[n])/(t[n+1]-t[n]);return n+i}function y(){this.ordinal||(this.ordinal=new g.Additions(this))}function O(){let{eventArgs:t,options:s}=this;if(this.isXAxis&&F(s.overscroll)&&s.overscroll!==0&&C(this.max)&&C(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&((t==null?void 0:t.trigger)!=="pan"||this.isInternal)&&(t==null?void 0:t.trigger)!=="navigator")){let n=this.ordinal.convertOverscroll(s.overscroll);this.max+=n,!this.isInternal&&F(this.userMin)&&(t==null?void 0:t.trigger)!=="mousewheel"&&(this.min+=n)}}function L(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function u(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function l(t){let s=this.xAxis[0],n=s.ordinal.convertOverscroll(s.options.overscroll),i=t.originalEvent.chartX,a=this.options.chart.panning,r=!1;if(a&&a.type!=="y"&&s.options.ordinal&&s.series.length&&(!t.touches||t.touches.length<=1)){let f,P,d=this.mouseDownX,w=s.getExtremes(),T=w.dataMin,D=w.dataMax,H=w.min,x=w.max,c=this.hoverPoints,M=s.closestPointRange||s.ordinal&&s.ordinal.overscrollPointsRange,G=Math.round((d-i)/(s.translationSlope*(s.ordinal.slope||M))),h=s.ordinal.getExtendedPositions(),S={ordinal:{positions:h,extendedOrdinalPositions:h}},b=s.index2val,E=s.val2lin;if(H<=T&&G<0||x+n>=D&&G>0)return;S.ordinal.positions?Math.abs(G)>1&&(c&&c.forEach(function(I){I.setState()}),D>(P=S.ordinal.positions)[P.length-1]&&P.push(D),this.setFixedRange(x-H),(f=s.navigatorAxis.toFixedRange(void 0,void 0,b.apply(S,[E.apply(S,[H,!0])+G]),b.apply(S,[E.apply(S,[x,!0])+G]))).min>=Math.min(w.dataMin,H)&&f.max<=Math.max(D,x)+n&&s.setExtremes(f.min,f.max,!0,!1,{trigger:"pan"}),this.mouseDownX=i,X(this.container,{cursor:"move"})):r=!0}else r=!0;r||a&&/y/.test(a.type)?n&&(s.max=s.dataMax+n):t.preventDefault()}function m(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function o(t,s){let n,i=this.ordinal,a=i.positions,r=i.slope,f;if(!a)return t;let P=a.length;if(a[0]<=t&&a[P-1]>=t)n=p(a,t);else{if(!((f=i.getExtendedPositions&&i.getExtendedPositions())&&f.length))return t;let d=f.length;r||(r=(f[d-1]-f[0])/d);let w=p(f,a[0]);if(t>=f[0]&&t<=f[d-1])n=p(f,t)-w;else{if(!s)return t;n=t<f[0]?-w-(f[0]-t)/r:(t-f[d-1])/r+d-w}}return s?n:r*(n||0)+i.offset}g.compose=function(t,s,n){let i=t.prototype;return i.ordinal2lin||(i.getTimeTicks=k,i.index2val=A,i.lin2val=v,i.val2lin=o,i.ordinal2lin=i.val2lin,tt(t,"afterInit",y),tt(t,"foundExtremes",O),tt(t,"afterSetScale",L),tt(t,"initialAxisTranslation",u),tt(n,"pan",l),tt(n,"touchpan",l),tt(s,"updatedData",m)),t};class e{constructor(s){this.index={},this.axis=s}beforeSetTickPositions(){var E;let s=this.axis,n=s.ordinal,i=s.getExtremes(),a=i.min,r=i.max,f=(E=s.brokenAxis)==null?void 0:E.hasBreaks,P=s.options.ordinal,d,w,T,D,H,x,c,M=[],G=Number.MAX_VALUE,h=!1,S=!1,b=!1;if(P||f){let I=0;if(s.series.forEach(function(N,U){if(w=[],U>0&&N.options.id!=="highcharts-navigator-series"&&N.processedXData.length>1&&(S=I!==N.processedXData[1]-N.processedXData[0]),I=N.processedXData[1]-N.processedXData[0],N.boosted&&(b=N.boosted),N.reserveSpace()&&(N.takeOrdinalPosition!==!1||f)&&(d=(M=M.concat(N.processedXData)).length,M.sort(function(Z,_){return Z-_}),G=Math.min(G,j(N.closestPointRange,G)),d)){for(U=0;U<d-1;)M[U]!==M[U+1]&&w.push(M[U+1]),U++;w[0]!==M[0]&&w.unshift(M[0]),M=w}}),s.ordinal.originalOrdinalRange||(s.ordinal.originalOrdinalRange=(M.length-1)*G),S&&b&&(M.pop(),M.shift()),(d=M.length)>2){for(T=M[1]-M[0],c=d-1;c--&&!h;)M[c+1]-M[c]!==T&&(h=!0);!s.options.keepOrdinalPadding&&(M[0]-a>T||r-M[M.length-1]>T)&&(h=!0)}else s.options.overscroll&&(d===2?G=M[1]-M[0]:d===1?(G=s.ordinal.convertOverscroll(s.options.overscroll),M=[M[0],M[0]+G]):G=n.overscrollPointsRange);h||s.forceOrdinal?(s.options.overscroll&&(n.overscrollPointsRange=G,M=M.concat(n.getOverscrollPositions())),n.positions=M,D=s.ordinal2lin(Math.max(a,M[0]),!0),H=Math.max(s.ordinal2lin(Math.min(r,M[M.length-1]),!0),1),n.slope=x=(r-a)/(H-D),n.offset=a-D*x):(n.overscrollPointsRange=j(s.closestPointRange,n.overscrollPointsRange),n.positions=s.ordinal.slope=n.offset=void 0)}s.isOrdinal=P&&h,n.groupIntervalFactor=null}static findIndexOf(s,n,i){let a=0,r=s.length-1,f;for(;a<r;)s[f=Math.ceil((a+r)/2)]<=n?a=f:r=f-1;return s[a]===n||i?a:-1}getExtendedPositions(s=!0){var x;let n=this,i=n.axis,a=i.constructor.prototype,r=i.chart,f=(x=i.series[0])==null?void 0:x.currentDataGrouping,P=f?f.count+f.unitName:"raw",d=s?i.ordinal.convertOverscroll(i.options.overscroll):0,w=i.getExtremes(),T,D,H=n.index;return H||(H=n.index={}),H[P]||((T={series:[],chart:r,forceOrdinal:!1,getExtremes:function(){return{min:w.dataMin,max:w.dataMax+d}},applyGrouping:a.applyGrouping,getGroupPixelWidth:a.getGroupPixelWidth,getTimeTicks:a.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:a.ordinal2lin,getIndexOfPoint:a.getIndexOfPoint,val2lin:a.val2lin}).ordinal.axis=T,i.series.forEach(function(c){var M,G,h;D={xAxis:T,xData:c.xData.slice(),chart:r,groupPixelWidth:c.groupPixelWidth,destroyGroupedData:J.noop,getProcessedData:st.prototype.getProcessedData,applyGrouping:st.prototype.applyGrouping,reserveSpace:st.prototype.reserveSpace,visible:c.visible},s&&(D.xData=D.xData.concat(n.getOverscrollPositions())),D.options={dataGrouping:f?{firstAnchor:(M=c.options.dataGrouping)==null?void 0:M.firstAnchor,anchor:(G=c.options.dataGrouping)==null?void 0:G.anchor,lastAnchor:(h=c.options.dataGrouping)==null?void 0:h.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[f.unitName,[f.count]]]}:{enabled:!1}},T.series.push(D),c.processData.apply(D)}),T.applyGrouping({hasExtremesChanged:!0}),(D==null?void 0:D.closestPointRange)!==(D==null?void 0:D.basePointRange)&&D.currentDataGrouping&&(T.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:T}),!i.ordinal.originalOrdinalRange&&T.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=T.ordinal.originalOrdinalRange),H[P]=T.ordinal.positions),H[P]}getGroupIntervalFactor(s,n,i){let a=i.processedXData,r=a.length,f=[],P,d,w=this.groupIntervalFactor;if(!w){for(d=0;d<r-1;d++)f[d]=a[d+1]-a[d];f.sort(function(T,D){return T-D}),P=f[Math.floor(r/2)],s=Math.max(s,a[0]),n=Math.min(n,a[r-1]),this.groupIntervalFactor=w=r*P/(n-s)}return w}getIndexOfPoint(s,n){let i,a=this.axis,r=0,f=function(w){let{min:T,max:D}=a;return!!(F(T)&&F(D))&&w.points.some(H=>H.x>=T&&H.x<=D)};a.series.forEach(w=>{var D;let T=(D=w.points)==null?void 0:D[0];F(T==null?void 0:T.plotX)&&(T.plotX<i||!F(i))&&f(w)&&(i=T.plotX,r=T.x)}),i??(i=a.minPixelPadding);let P=a.translationSlope*(this.slope||a.closestPointRange||this.overscrollPointsRange),d=Q((s-i)/P);return e.findIndexOf(n,r,!0)+d}getOverscrollPositions(){let s=this.axis,n=this.convertOverscroll(s.options.overscroll),i=this.overscrollPointsRange,a=[],r=s.dataMax;if(F(i))for(;r<=s.dataMax+n;)a.push(r+=i);return a}postProcessTickInterval(s){let n=this.axis,i=this.slope;return i?n.options.breaks?n.closestPointRange||s:s/(i/n.closestPointRange):s}convertOverscroll(s=0){let n=this,i=n.axis,a=function(r){return j(n.originalOrdinalRange,F(i.dataMax)&&F(i.dataMin)?i.dataMax-i.dataMin:0)*r};if(R(s)){let r=parseInt(s,10);if(/%$/.test(s))return a(r/100);if(/px/.test(s)){let f=Math.min(r,.9*i.len)/i.len;return a(f/(1-f))}return 0}return s}}g.Additions=e}(it||(it={})),it}),gt(z,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"→"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),gt(z,"Stock/RangeSelector/RangeSelectorComposition.js",[z["Core/Defaults.js"],z["Core/Globals.js"],z["Stock/RangeSelector/RangeSelectorDefaults.js"],z["Core/Utilities.js"]],function(V,J,st,nt){let it,{defaultOptions:tt}=V,{composed:Q}=J,{addEvent:X,defined:F,extend:$,isNumber:C,merge:j,pick:B,pushUnique:R}=nt,g=[];function k(){let u,l,m=this.range,o=m.type,e=this.max,t=this.chart.time,s=function(i,a){let r=o==="year"?"FullYear":"Month",f=new t.Date(i),P=t.get(r,f);return t.set(r,f,P+a),P===t.get(r,f)&&t.set("Date",f,0),f.getTime()-i};C(m)?(u=e-m,l=m):m&&(u=e+s(e,-(m.count||1)),this.chart&&this.chart.setFixedRange(e-u));let n=B(this.dataMin,Number.MIN_VALUE);return C(u)||(u=n),u<=n&&(u=n,l===void 0&&(l=s(u,m.count)),this.newMax=Math.min(u+l,B(this.dataMax,Number.MAX_VALUE))),C(e)?!C(m)&&m&&m._offsetMin&&(u+=m._offsetMin):u=void 0,u}function A(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new it(this))}function v(){let u=this.rangeSelector;if(u){C(u.deferredYTDClick)&&(u.clickButton(u.deferredYTDClick),delete u.deferredYTDClick);let l=u.options.verticalAlign;u.options.floating||(l==="bottom"?this.extraBottomMargin=!0:l==="middle"||(this.extraTopMargin=!0))}}function p(){let u,l=this.rangeSelector;if(!l)return;let m=this.xAxis[0].getExtremes(),o=this.legend,e=l&&l.options.verticalAlign;C(m.min)&&l.render(m.min,m.max),o.display&&e==="top"&&e===o.options.verticalAlign&&(u=j(this.spacingBox),o.options.layout==="vertical"?u.y=this.plotTop:u.y+=l.getHeight(),o.group.placed=!1,o.align(u))}function y(){for(let u=0,l=g.length;u<l;++u){let m=g[u];if(m[0]===this){m[1].forEach(o=>o()),g.splice(u,1);return}}}function O(){let u=this.rangeSelector;if(u){let l=u.getHeight();this.extraTopMargin&&(this.plotTop+=l),this.extraBottomMargin&&(this.marginBottom+=l)}}function L(u){let l=u.options.rangeSelector,m=this.extraBottomMargin,o=this.extraTopMargin,e=this.rangeSelector;if(l&&l.enabled&&!F(e)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=e=new it(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,e){let t=l&&l.verticalAlign||e.options&&e.options.verticalAlign;e.options.floating||(t==="bottom"?this.extraBottomMargin=!0:t==="middle"||(this.extraTopMargin=!0)),(this.extraBottomMargin!==m||this.extraTopMargin!==o)&&(this.isDirtyBox=!0)}}return{compose:function(u,l,m){if(it=m,R(Q,"RangeSelector")){let o=l.prototype;u.prototype.minFromRange=k,X(l,"afterGetContainer",A),X(l,"beforeRender",v),X(l,"destroy",y),X(l,"getMargins",O),X(l,"redraw",p),X(l,"update",L),o.callbacks.push(p),$(tt,{rangeSelector:st.rangeSelector}),$(tt.lang,st.lang)}}}}),gt(z,"Stock/RangeSelector/RangeSelector.js",[z["Core/Axis/Axis.js"],z["Core/Defaults.js"],z["Core/Globals.js"],z["Stock/RangeSelector/RangeSelectorComposition.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"],z["Core/Axis/OrdinalAxis.js"]],function(V,J,st,nt,it,tt,Q){let{defaultOptions:X}=J,{addEvent:F,createElement:$,css:C,defined:j,destroyObjectProperties:B,discardElement:R,extend:g,fireEvent:k,isNumber:A,merge:v,objectEach:p,pad:y,pick:O,pInt:L,splat:u}=tt;class l{static compose(o,e){nt.compose(o,e,l)}constructor(o){this.buttonOptions=l.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.init(o)}clickButton(o,e){let t=this.chart,s=this.buttonOptions[o],n=t.xAxis[0],i=t.scroller&&t.scroller.getUnionExtremes()||n||{},a=s.type,r=s.dataGrouping,f=i.dataMin,P=i.dataMax,d,w=n&&Math.round(Math.min(n.max,O(P,n.max))),T,D=s._range,H,x,c,M=!0;if(f!==null&&P!==null){if(this.setSelected(o),r&&(this.forcedDataGrouping=!0,V.prototype.setDataGrouping.call(n||{chart:this.chart},r,!1),this.frozenStates=s.preserveDataGrouping),a==="month"||a==="year")n?(x={range:s,max:w,chart:t,dataMin:f,dataMax:P},d=n.minFromRange.call(x),A(x.newMax)&&(w=x.newMax),M=!1):D=s;else if(D)w=Math.min((d=Math.max(w-D,f))+D,P),M=!1;else if(a==="ytd")if(n)(P===void 0||f===void 0)&&(f=Number.MAX_VALUE,P=Number.MIN_VALUE,t.series.forEach(G=>{let h=G.xData;h&&(f=Math.min(h[0],f),P=Math.max(h[h.length-1],P))}),e=!1),d=H=(c=this.getYTDExtremes(P,f,t.time.useUTC)).min,w=c.max;else{this.deferredYTDClick=o;return}else a==="all"&&n&&(t.navigator&&t.navigator.baseSeries[0]&&(t.navigator.baseSeries[0].xAxis.options.range=void 0),d=f,w=P);if(M&&s._offsetMin&&j(d)&&(d+=s._offsetMin),s._offsetMax&&j(w)&&(w+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=o+1),n)n.setExtremes(d,w,O(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),t.setFixedRange(s._range);else{T=u(t.options.xAxis)[0];let G=F(t,"afterGetAxes",function(){let h=t.xAxis[0];h.range=h.options.range=D,h.min=h.options.min=H});F(t,"load",function(){let h=t.xAxis[0];t.setFixedRange(s._range),h.options.range=T.range,h.options.min=T.min,G()})}k(this,"afterBtnClick")}}setSelected(o){this.selected=this.options.selected=o}init(o){let e=this,t=o.options.rangeSelector,s=t.buttons||e.defaultButtons.slice(),n=t.selected,i=function(){let a=e.minInput,r=e.maxInput;a&&a.blur&&k(a,"blur"),r&&r.blur&&k(r,"blur")};e.chart=o,e.options=t,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(F(o.container,"mousedown",i)),this.eventsToUnbind.push(F(o,"resize",i)),s.forEach(e.computeButtonRange),n!==void 0&&s[n]&&this.clickButton(n,!1),this.eventsToUnbind.push(F(o,"load",function(){o.xAxis&&o.xAxis[0]&&F(o.xAxis[0],"setExtremes",function(a){A(this.max)&&A(this.min)&&this.max-this.min!==o.fixedRange&&a.trigger!=="rangeSelectorButton"&&a.trigger!=="updatedData"&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let o=this,e=this.chart,t=this.dropdown,s=this.dropdownLabel,n=e.xAxis[0],i=Math.round(n.max-n.min),a=!n.hasVisibleSeries,r=24*36e5,f=e.scroller&&e.scroller.getUnionExtremes()||n,P=f.dataMin,d=f.dataMax,w=o.getYTDExtremes(d,P,e.time.useUTC),T=w.min,D=w.max,H=o.selected,x=o.options.allButtonsEnabled,c=Array(o.buttonOptions.length).fill(0),M=A(H),G=o.buttons,h=!1,S=null;o.buttonOptions.forEach((b,E)=>{var et;let I=b._range,N=b.type,U=b.count||1,Z=b._offsetMax-b._offsetMin,_=E===H,at=I>d-P,lt=I<n.minRange,Y=!1,W=I===i;if(_&&at&&(h=!0),n.isOrdinal&&((et=n.ordinal)==null?void 0:et.positions)&&I&&i<I){let rt=n.ordinal.positions,ot=Q.Additions.findIndexOf(rt,n.min,!0),ht=Math.min(Q.Additions.findIndexOf(rt,n.max,!0)+1,rt.length-1);rt[ht]-rt[ot]>I&&(W=!0)}else(N==="month"||N==="year")&&i+36e5>={month:28,year:365}[N]*r*U-Z&&i-36e5<={month:31,year:366}[N]*r*U+Z?W=!0:N==="ytd"?(W=D-T+Z===i,Y=!_):N==="all"&&(W=n.max-n.min>=d-P);let q=!x&&!(h&&N==="all")&&(at||lt||a),K=h&&N==="all"||!Y&&W||_&&o.frozenStates;q?c[E]=3:K&&(!M||E===H)&&(S=E)}),S!==null?(c[S]=2,o.setSelected(S)):(o.setSelected(),s&&(s.setState(0),s.attr({text:(X.lang.rangeSelectorZoom||"")+" ▾"})));for(let b=0;b<c.length;b++){let E=c[b],I=G[b];if(I.state!==E&&(I.setState(E),t)){t.options[b+1].disabled=E===3,E===2&&(s&&(s.setState(2),s.attr({text:o.buttonOptions[b].text+" ▾"})),t.selectedIndex=b+1);let N=s.getBBox();C(t,{width:`${N.width}px`,height:`${N.height}px`})}}}computeButtonRange(o){let e=o.type,t=o.count||1,s={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};s[e]?o._range=s[e]*t:(e==="month"||e==="year")&&(o._range=24*{month:30,year:365}[e]*36e5*t),o._offsetMin=O(o.offsetMin,0),o._offsetMax=O(o.offsetMax,0),o._range+=o._offsetMax-o._offsetMin}getInputValue(o){let e=o==="min"?this.minInput:this.maxInput,t=this.chart.options.rangeSelector,s=this.chart.time;return e?(e.type==="text"&&t.inputDateParser||this.defaultInputDateParser)(e.value,s.useUTC,s):0}setInputValue(o,e){let t=this.options,s=this.chart.time,n=o==="min"?this.minInput:this.maxInput,i=o==="min"?this.minDateBox:this.maxDateBox;if(n){let a=n.getAttribute("data-hc-time"),r=j(a)?Number(a):void 0;if(j(e)){let f=r;j(f)&&n.setAttribute("data-hc-time-previous",f),n.setAttribute("data-hc-time",e),r=e}n.value=s.dateFormat(this.inputTypeFormats[n.type]||t.inputEditDateFormat,r),i&&i.attr({text:s.dateFormat(t.inputDateFormat,r)})}}setInputExtremes(o,e,t){let s=o==="min"?this.minInput:this.maxInput;if(s){let n=this.inputTypeFormats[s.type],i=this.chart.time;if(n){let a=i.dateFormat(n,e);s.min!==a&&(s.min=a);let r=i.dateFormat(n,t);s.max!==r&&(s.max=r)}}}showInput(o){let e=o==="min"?this.minDateBox:this.maxDateBox,t=o==="min"?this.minInput:this.maxInput;if(t&&e&&this.inputGroup){let s=t.type==="text",{translateX:n=0,translateY:i=0}=this.inputGroup,{x:a=0,width:r=0,height:f=0}=e,{inputBoxWidth:P}=this.options;C(t,{width:s?r+(P?-2:20)+"px":"auto",height:f-2+"px",border:"2px solid silver"}),s&&P?C(t,{left:n+a+"px",top:i+"px"}):C(t,{left:Math.min(Math.round(a+n-(t.offsetWidth-r)/2),this.chart.chartWidth-t.offsetWidth)+"px",top:i-(t.offsetHeight-f)/2+"px"})}}hideInput(o){let e=o==="min"?this.minInput:this.maxInput;e&&C(e,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(o,e,t){let s=o.split("/").join("-").split(" ").join("T");if(s.indexOf("T")===-1&&(s+="T00:00"),e)s+="Z";else{let i;if(st.isSafari&&!((i=s).length>6&&(i.lastIndexOf("-")===i.length-6||i.lastIndexOf("+")===i.length-6))){let a=new Date(s).getTimezoneOffset()/60;s+=a<=0?`+${y(-a)}:00`:`-${y(a)}:00`}}let n=Date.parse(s);if(!A(n)){let i=o.split("-");n=Date.UTC(L(i[0]),L(i[1])-1,L(i[2]))}return t&&e&&A(n)&&(n+=t.getTimezoneOffset(n)),n}drawInput(o){let{chart:e,div:t,inputGroup:s}=this,n=this,i=e.renderer.style||{},a=e.renderer,r=e.options.rangeSelector,f=X.lang,P=o==="min";function d(c){var U;let{maxInput:M,minInput:G}=n,h=e.xAxis[0],S=((U=e.scroller)==null?void 0:U.getUnionExtremes())||h,b=S.dataMin,E=S.dataMax,I=e.xAxis[0].getExtremes()[c],N=n.getInputValue(c);A(N)&&N!==I&&(P&&M&&A(b)?N>Number(M.getAttribute("data-hc-time"))?N=void 0:N<b&&(N=b):G&&A(E)&&(N<Number(G.getAttribute("data-hc-time"))?N=void 0:N>E&&(N=E)),N!==void 0&&h.setExtremes(P?N:h.min,P?h.max:N,void 0,void 0,{trigger:"rangeSelectorInput"}))}let w=f[P?"rangeSelectorFrom":"rangeSelectorTo"]||"",T=a.label(w,0).addClass("highcharts-range-label").attr({padding:w?2:0,height:w?r.inputBoxHeight:0}).add(s),D=a.label("",0).addClass("highcharts-range-input").attr({padding:2,width:r.inputBoxWidth,height:r.inputBoxHeight,"text-align":"center"}).on("click",function(){n.showInput(o),n[o+"Input"].focus()});e.styledMode||D.attr({stroke:r.inputBoxBorderColor,"stroke-width":1}),D.add(s);let H=$("input",{name:o,className:"highcharts-range-selector"},void 0,t);H.setAttribute("type",function(c){if(c.indexOf("%L")!==-1)return"text";let M=["a","A","d","e","w","b","B","m","o","y","Y"].some(h=>c.indexOf("%"+h)!==-1),G=["H","k","I","l","M","S"].some(h=>c.indexOf("%"+h)!==-1);return M&&G?"datetime-local":M?"date":G?"time":"text"}(r.inputDateFormat||"%e %b %Y")),e.styledMode||(T.css(v(i,r.labelStyle)),D.css(v({color:"#333333"},i,r.inputStyle)),C(H,g({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:i.fontSize,fontFamily:i.fontFamily,top:"-9999em"},r.inputStyle))),H.onfocus=()=>{n.showInput(o)},H.onblur=()=>{H===st.doc.activeElement&&d(o),n.hideInput(o),n.setInputValue(o),H.blur()};let x=!1;return H.onchange=()=>{x||(d(o),n.hideInput(o),H.blur())},H.onkeypress=c=>{c.keyCode===13&&d(o)},H.onkeydown=c=>{x=!0,(c.key==="ArrowUp"||c.key==="ArrowDown"||c.key==="Tab")&&d(o)},H.onkeyup=()=>{x=!1},{dateBox:D,input:H,label:T}}getPosition(){let o=this.chart,e=o.options.rangeSelector,t=e.verticalAlign==="top"?o.plotTop-o.axisOffset[0]:0;return{buttonTop:t+e.buttonPosition.y,inputTop:t+e.inputPosition.y-10}}getYTDExtremes(o,e,t){let s=this.chart.time,n=new s.Date(o),i=s.get("FullYear",n),a=Math.max(e,t?s.Date.UTC(i,0,1):+new s.Date(i,0,1)),r=n.getTime();return{max:Math.min(o||r,r),min:a}}createElements(){var r;let o=this.chart,e=o.renderer,t=o.container,s=o.options,n=s.rangeSelector,i=n.inputEnabled,a=O((r=s.chart.style)==null?void 0:r.zIndex,0)+1;if(n.enabled!==!1&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=$("div",void 0,{position:"relative",height:0,zIndex:a}),this.buttonOptions.length&&this.renderButtons(),t.parentNode&&t.parentNode.insertBefore(this.div,t),i)){this.inputGroup=e.g("input-group").add(this.group);let f=this.drawInput("min");this.minDateBox=f.dateBox,this.minLabel=f.label,this.minInput=f.input;let P=this.drawInput("max");this.maxDateBox=P.dateBox,this.maxLabel=P.label,this.maxInput=P.input}}render(o,e){let t=this.chart,s=t.options.rangeSelector,n=s.inputEnabled;if(s.enabled!==!1){if(n){this.setInputValue("min",o),this.setInputValue("max",e);let i=t.scroller&&t.scroller.getUnionExtremes()||t.xAxis[0]||{};if(j(i.dataMin)&&j(i.dataMax)){let a=t.xAxis[0].minRange||0;this.setInputExtremes("min",i.dataMin,Math.min(i.dataMax,this.getInputValue("max"))-a),this.setInputExtremes("max",Math.max(i.dataMin,this.getInputValue("min"))+a,i.dataMax)}if(this.inputGroup){let a=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(r=>{if(r){let{width:f}=r.getBBox();f&&(r.attr({x:a}),a+=f+s.inputSpacing)}})}}this.alignElements(),this.updateButtonStates()}}renderButtons(){var T;let{buttons:o,chart:e,options:t}=this,s=X.lang,n=e.renderer,i=v(t.buttonTheme),a=i&&i.states,r=i.width||28;delete i.width,delete i.states,this.buttonGroup=n.g("range-selector-buttons").add(this.group);let f=this.dropdown=$("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),P=(T=e.userOptions.rangeSelector)==null?void 0:T.buttonTheme;this.dropdownLabel=n.button("",0,0,()=>{},v(i,{"stroke-width":O(i["stroke-width"],0),width:"auto",paddingLeft:O(t.buttonTheme.paddingLeft,P==null?void 0:P.padding,8),paddingRight:O(t.buttonTheme.paddingRight,P==null?void 0:P.padding,8)}),a&&a.hover,a&&a.select,a&&a.disabled).hide().add(this.group),F(f,"touchstart",()=>{f.style.fontSize="16px"});let d=st.isMS?"mouseover":"mouseenter",w=st.isMS?"mouseout":"mouseleave";F(f,d,()=>{k(this.dropdownLabel.element,d)}),F(f,w,()=>{k(this.dropdownLabel.element,w)}),F(f,"change",()=>{k(this.buttons[f.selectedIndex-1].element,"click")}),this.zoomText=n.label(s.rangeSelectorZoom||"",0).attr({padding:t.buttonTheme.padding,height:t.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(t.labelStyle),i["stroke-width"]=O(i["stroke-width"],0)),$("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,f),this.buttonOptions.forEach((D,H)=>{$("option",{textContent:D.title||D.text},void 0,f),o[H]=n.button(D.text,0,0,x=>{let c,M=D.events&&D.events.click;M&&(c=M.call(D,x)),c!==!1&&this.clickButton(H),this.isActive=!0},i,a&&a.hover,a&&a.select,a&&a.disabled).attr({"text-align":"center",width:r}).add(this.buttonGroup),D.title&&o[H].attr("title",D.title)})}alignElements(){var H;let{buttonGroup:o,buttons:e,chart:t,group:s,inputGroup:n,options:i,zoomText:a}=this,r=t.options,f=r.exporting&&r.exporting.enabled!==!1&&r.navigation&&r.navigation.buttonOptions,{buttonPosition:P,inputPosition:d,verticalAlign:w}=i,T=(x,c)=>f&&this.titleCollision(t)&&w==="top"&&c.align==="right"&&c.y-x.getBBox().height-12<(f.y||0)+(f.height||0)+t.spacing[0]?-40:0,D=t.plotLeft;if(s&&P&&d){let x=P.x-t.spacing[3];if(o){if(this.positionButtons(),!this.initialButtonGroupWidth){let N=0;a&&(N+=a.getBBox().width+5),e.forEach((U,Z)=>{N+=U.width||0,Z!==e.length-1&&(N+=i.buttonSpacing)}),this.initialButtonGroupWidth=N}D-=t.spacing[3];let I=T(o,P);this.alignButtonGroup(I),(H=this.buttonGroup)!=null&&H.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=o.placed=t.hasLoaded}let c=0;n&&(c=T(n,d),d.align==="left"?x=D:d.align==="right"&&(x=-Math.max(t.axisOffset[1],-c)),n.align({y:d.y,width:n.getBBox().width,align:d.align,x:d.x+x-2},!0,t.spacingBox),n.placed=t.hasLoaded),this.handleCollision(c),s.align({verticalAlign:w},!0,t.spacingBox);let M=s.alignAttr.translateY,G=s.getBBox().height+20,h=0;if(w==="bottom"){let I=t.legend&&t.legend.options;h=M-(G=G+(I&&I.verticalAlign==="bottom"&&I.enabled&&!I.floating?t.legend.legendHeight+O(I.margin,10):0)-20)-(i.floating?0:i.y)-(t.titleOffset?t.titleOffset[2]:0)-10}w==="top"?(i.floating&&(h=0),t.titleOffset&&t.titleOffset[0]&&(h=t.titleOffset[0]),h+=t.margin[0]-t.spacing[0]||0):w==="middle"&&(d.y===P.y?h=M:(d.y||P.y)&&(d.y<0||P.y<0?h-=Math.min(d.y,P.y):h=M-G)),s.translate(i.x,i.y+Math.floor(h));let{minInput:S,maxInput:b,dropdown:E}=this;i.inputEnabled&&S&&b&&(S.style.marginTop=s.translateY+"px",b.style.marginTop=s.translateY+"px"),E&&(E.style.marginTop=s.translateY+"px")}}alignButtonGroup(o,e){let{chart:t,options:s,buttonGroup:n}=this,{buttonPosition:i}=s,a=t.plotLeft-t.spacing[3],r=i.x-t.spacing[3];i.align==="right"?r+=o-a:i.align==="center"&&(r-=a/2),n&&n.align({y:i.y,width:O(e,this.initialButtonGroupWidth),align:i.align,x:r},!0,t.spacingBox)}positionButtons(){let{buttons:o,chart:e,options:t,zoomText:s}=this,n=e.hasLoaded?"animate":"attr",{buttonPosition:i}=t,a=e.plotLeft,r=a;s&&s.visibility!=="hidden"&&(s[n]({x:O(a+i.x,a)}),r+=i.x+s.getBBox().width+5);for(let f=0,P=this.buttonOptions.length;f<P;++f)o[f].visibility!=="hidden"?(o[f][n]({x:r}),r+=(o[f].width||0)+t.buttonSpacing):o[f][n]({x:a})}handleCollision(o){let{chart:e,buttonGroup:t,inputGroup:s}=this,{buttonPosition:n,dropdown:i,inputPosition:a}=this.options,r=()=>{let d=0;return this.buttons.forEach(w=>{let T=w.getBBox();T.width>d&&(d=T.width)}),d},f=d=>{if(s!=null&&s.alignOptions&&t){let w=s.alignAttr.translateX+s.alignOptions.x-o+s.getBBox().x+2,T=s.alignOptions.width||0,D=t.alignAttr.translateX+t.getBBox().x;return D+d>w&&w+T>D&&n.y<a.y+s.getBBox().height}return!1},P=()=>{s&&t&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-o?0:-o),translateY:s.alignAttr.translateY+t.getBBox().height+10})};if(t){if(i==="always"){this.collapseButtons(),f(r())&&P();return}i==="never"&&this.expandButtons()}s&&t?a.align===n.align||f(this.initialButtonGroupWidth+20)?i==="responsive"?(this.collapseButtons(),f(r())&&P()):P():i==="responsive"&&this.expandButtons():t&&i==="responsive"&&(this.initialButtonGroupWidth>e.plotWidth?this.collapseButtons():this.expandButtons())}collapseButtons(){let{buttons:o,zoomText:e}=this;this.isCollapsed!==!0&&(this.isCollapsed=!0,e.hide(),o.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:o,zoomText:e}=this;this.isCollapsed!==!1&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),o.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:o,chart:e,dropdownLabel:t,dropdown:s}=this;if(o&&s){let{translateX:n=0,translateY:i=0}=o,a=e.plotLeft+n;t.attr({x:a,y:i}).show(),C(s,{left:a+"px",top:i+"px",visibility:"inherit"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:o}=this;o&&(this.dropdownLabel.hide(),C(o,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let o=this.options,e=this.group,t=o.inputPosition,s=o.buttonPosition,n=o.y,i=s.y,a=t.y,r=0;if(o.height)return o.height;this.alignElements(),r=e?e.getBBox(!0).height+13+n:0;let f=Math.min(a,i);return(a<0&&i<0||a>0&&i>0)&&(r+=Math.abs(f)),r}titleCollision(o){return!(o.options.title.text||o.options.subtitle.text)}update(o,e=!0){let t=this.chart;v(!0,t.options.rangeSelector,o),this.destroy(),this.init(t),e&&this.render()}destroy(){let o=this,e=o.minInput,t=o.maxInput;o.eventsToUnbind&&(o.eventsToUnbind.forEach(s=>s()),o.eventsToUnbind=void 0),B(o.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),t&&(t.onfocus=t.onblur=t.onchange=null),p(o,function(s,n){s&&n!=="chart"&&(s instanceof it?s.destroy():s instanceof Ct.HTMLElement&&R(s)),s!==l.prototype[n]&&(o[n]=null)},this)}}return g(l.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),l}),gt(z,"Core/Chart/StockChart.js",[z["Core/Chart/Chart.js"],z["Core/Templating.js"],z["Core/Defaults.js"],z["Stock/Navigator/NavigatorDefaults.js"],z["Stock/RangeSelector/RangeSelectorDefaults.js"],z["Stock/Scrollbar/ScrollbarDefaults.js"],z["Stock/Utilities/StockUtilities.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X){let{format:F}=J,{getOptions:$}=st,{setFixedRange:C}=Q,{addEvent:j,clamp:B,crisp:R,defined:g,extend:k,find:A,isNumber:v,isString:p,merge:y,pick:O,splat:L}=X;function u(o,e,t){var s,n;return o==="xAxis"?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:o==="yAxis"?{labels:{y:-2},opposite:t.opposite??e.opposite??!0,showLastLabel:!!(e.categories||e.type==="category"),title:{text:((s=t.title)==null?void 0:s.text)!=="Values"?(n=t.title)==null?void 0:n.text:null}}:{}}function l(o,e){if(o==="xAxis"){let t=O(e.navigator&&e.navigator.enabled,nt.enabled,!0),s={type:"datetime",categories:void 0};return t&&(s.startOnTick=!1,s.endOnTick=!1),s}return{}}class m extends V{init(e,t){let s=$(),n=e.xAxis,i=e.yAxis,a=O(e.navigator&&e.navigator.enabled,nt.enabled,!0);e.xAxis=e.yAxis=void 0;let r=y({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:a},scrollbar:{enabled:O(tt.enabled,!0)},rangeSelector:{enabled:O(it.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:O(s.tooltip&&s.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},e,{isStock:!0});e.xAxis=n,e.yAxis=i,r.xAxis=L(e.xAxis||{}).map(f=>y(u("xAxis",f,s.xAxis),f,l("xAxis",e))),r.yAxis=L(e.yAxis||{}).map(f=>y(u("yAxis",f,s.yAxis),f)),super.init(r,t)}createAxis(e,t){return t.axis=y(u(e,t.axis,$()[e]),t.axis,l(e,this.userOptions)),super.createAxis(e,t)}}return j(V,"update",function(o){let e=o.options;"scrollbar"in e&&this.navigator&&(y(!0,this.options.scrollbar,e.scrollbar),this.navigator.update({enabled:!!this.navigator.navigatorEnabled}),delete e.scrollbar)}),function(o){function e(P){if(!this.crosshair||!this.crosshair.label||!this.crosshair.label.enabled||!this.cross||!v(this.min)||!v(this.max))return;let d=this.chart,w=this.logarithmic,T=this.crosshair.label,D=this.horiz,H=this.opposite,x=this.left,c=this.top,M=this.width,G=this.options.tickPosition==="inside",h=this.crosshair.snap!==!1,S=P.e||this.cross&&this.cross.e,b=P.point,E=this.crossLabel,I,N,U=T.format,Z="",_,at=0,lt=this.min,Y=this.max;w&&(lt=w.lin2log(this.min),Y=w.lin2log(this.max));let W=D?"center":H?this.labelAlign==="right"?"right":"left":this.labelAlign==="left"?"left":"center";E||(E=this.crossLabel=d.renderer.label("",0,void 0,T.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(b&&b.series?b.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:T.align||W,padding:O(T.padding,8),r:O(T.borderRadius,3),zIndex:2}).add(this.labelGroup),d.styledMode||E.attr({fill:T.backgroundColor||b&&b.series&&b.series.color||"#666666",stroke:T.borderColor||"","stroke-width":T.borderWidth||0}).css(k({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},T.style||{}))),D?(I=h?(b.plotX||0)+x:S.chartX,N=c+(H?0:this.height)):(I=x+this.offset+(H?M:0),N=h?(b.plotY||0)+c:S.chartY),U||T.formatter||(this.dateTime&&(Z="%b %d, %Y"),U="{value"+(Z?":"+Z:"")+"}");let q=h?this.isXAxis?b.x:b.y:this.toValue(D?S.chartX:S.chartY),K=b&&b.series?b.series.isPointInside(b):v(q)&&q>lt&&q<Y,et="";U?et=F(U,{value:q},d):T.formatter&&v(q)&&(et=T.formatter.call(this,q)),E.attr({text:et,x:I,y:N,visibility:K?"inherit":"hidden"});let rt=E.getBBox();!v(E.x)||D||H||(I=E.x-rt.width/2),v(E.y)&&(D?(G&&!H||!G&&H)&&(N=E.y-rt.height):N=E.y-rt.height/2),_=D?{left:x,right:x+this.width}:{left:this.labelAlign==="left"?x:0,right:this.labelAlign==="right"?x+this.width:d.chartWidth};let ot=E.translateX||0;ot<_.left&&(at=_.left-ot),ot+rt.width>=_.right&&(at=-(ot+rt.width-_.right)),E.attr({x:I+at,y:N,anchorX:D?I:this.opposite?0:d.chartWidth,anchorY:D?this.opposite?d.chartHeight:0:N+rt.height/2})}function t(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function s(P){let d=this.chart,w=this.options,T=d._labelPanes=d._labelPanes||{},D=w.labels;if(d.options.isStock&&this.coll==="yAxis"){let H=w.top+","+w.height;!T[H]&&D.enabled&&(D.distance===15&&this.side===1&&(D.distance=0),D.align===void 0&&(D.align="right"),T[H]=this,P.align="right",P.preventDefault())}}function n(){let P=this.chart,d=this.options&&this.options.top+","+this.options.height;d&&P._labelPanes&&P._labelPanes[d]===this&&delete P._labelPanes[d]}function i(P){let d=this,w=d.isLinked&&!d.series&&d.linkedParent?d.linkedParent.series:d.series,T=d.chart,D=T.renderer,H=d.left,x=d.top,c=[],M=P.translatedValue,G=P.value,h=P.force,S,b,E,I,N=[],U,Z;if(T.options.isStock&&P.acrossPanes!==!1&&d.coll==="xAxis"||d.coll==="yAxis"){for(let _ of(P.preventDefault(),N=(at=>{let lt=at==="xAxis"?"yAxis":"xAxis",Y=d.options[lt];return v(Y)?[T[lt][Y]]:p(Y)?[T.get(Y)]:w.map(W=>W[lt])})(d.coll),d.isXAxis?T.yAxis:T.xAxis))if(!_.options.isInternal){let at=_.isXAxis?"yAxis":"xAxis";d===(g(_.options[at])?T[at][_.options[at]]:T[at][0])&&N.push(_)}for(let _ of(U=N.length?[]:[d.isXAxis?T.yAxis[0]:T.xAxis[0]],N))U.indexOf(_)!==-1||A(U,at=>at.pos===_.pos&&at.len===_.len)||U.push(_);if(v(Z=O(M,d.translate(G||0,void 0,void 0,P.old))))if(d.horiz)for(let _ of U){let at;I=(b=_.pos)+_.len,S=E=Math.round(Z+d.transB),h!=="pass"&&(S<H||S>H+d.width)&&(h?S=E=B(S,H,H+d.width):at=!0),at||c.push(["M",S,b],["L",E,I])}else for(let _ of U){let at;E=(S=_.pos)+_.len,b=I=Math.round(x+d.height-Z),h!=="pass"&&(b<x||b>x+d.height)&&(h?b=I=B(b,x,x+d.height):at=!0),at||c.push(["M",S,b],["L",E,I])}P.path=c.length>0?D.crispPolyLine(c,P.lineWidth||1):void 0}}function a(P){if(this.chart.options.isStock){let d;this.is("column")||this.is("columnrange")?d={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(d={marker:{enabled:!1,radius:2}}),d&&(P.plotOptions[this.type]=y(P.plotOptions[this.type],d))}}function r(){let P=this.chart,d=this.options.dataGrouping;return this.allowDG!==!1&&d&&O(d.enabled,P.options.isStock)}function f(P,d){for(let w=0;w<P.length;w+=2){let T=P[w],D=P[w+1];g(T[1])&&T[1]===D[1]&&(T[1]=D[1]=R(T[1],d)),g(T[2])&&T[2]===D[2]&&(T[2]=D[2]=R(T[2],d))}return P}o.compose=function(P,d,w,T){let D=w.prototype;D.forceCropping||(j(d,"afterDrawCrosshair",e),j(d,"afterHideCrosshair",t),j(d,"autoLabelAlign",s),j(d,"destroy",n),j(d,"getPlotLinePath",i),P.prototype.setFixedRange=C,D.forceCropping=r,j(w,"setOptions",a),T.prototype.crispPolyLine=f)},o.stockChart=function(P,d,w){return new o(P,d,w)}}(m||(m={})),m}),gt(z,"Series/HLC/HLCPoint.js",[z["Core/Series/SeriesRegistry.js"]],function(V){let{column:{prototype:{pointClass:J}}}=V.seriesTypes;return class extends J{}}),gt(z,"Series/HLC/HLCSeriesDefaults.js",[],function(){return{lineWidth:1,tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),gt(z,"Series/HLC/HLCSeries.js",[z["Series/HLC/HLCPoint.js"],z["Series/HLC/HLCSeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt){let{column:it}=st.seriesTypes,{crisp:tt,extend:Q,merge:X}=nt;class F extends it{extendStem(C,j,B){let R=C[0],g=C[1];typeof R[2]=="number"&&(R[2]=Math.max(B+j,R[2])),typeof g[2]=="number"&&(g[2]=Math.min(B-j,g[2]))}getPointPath(C,j){let B=j.strokeWidth(),R=C.series,g=tt(C.plotX||0,B),k=Math.round(C.shapeArgs.width/2),A=[["M",g,Math.round(C.yBottom)],["L",g,Math.round(C.plotHigh)]];if(C.close!==null){let v=tt(C.plotClose,B);A.push(["M",g,v],["L",g+k,v]),R.extendStem(A,B/2,v)}return A}drawSinglePoint(C){let j=C.series,B=j.chart,R,g=C.graphic;C.plotY!==void 0&&(g||(C.graphic=g=B.renderer.path().add(j.group)),B.styledMode||g.attr(j.pointAttribs(C,C.selected&&"select")),R=j.getPointPath(C,g),g[g?"animate":"attr"]({d:R}).addClass(C.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs(C,j){let B=super.pointAttribs.call(this,C,j);return delete B.fill,B}toYData(C){return[C.high,C.low,C.close]}translate(){let C=this,j=C.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],R=B.map(g=>`plot${g.charAt(0).toUpperCase()+g.slice(1)}`);R.push("yBottom"),B.push("low"),super.translate.apply(C),C.points.forEach(function(g){B.forEach(function(k,A){let v=g[k];v!==null&&(C.dataModify&&(v=C.dataModify.modifyValue(v)),g[R[A]]=j.toPixels(v,!0))}),g.tooltipPos[1]=g.plotHigh+j.pos-C.chart.plotTop})}}return F.defaultOptions=X(it.defaultOptions,J),Q(F.prototype,{pointClass:V,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),st.registerSeriesType("hlc",F),F}),gt(z,"Series/OHLC/OHLCPoint.js",[z["Core/Series/SeriesRegistry.js"]],function(V){let{seriesTypes:{hlc:J}}=V;class st extends J.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")}resolveUpColor(){this.open<this.close&&!this.options.color&&this.series.options.upColor&&(this.color=this.series.options.upColor)}resolveColor(){super.resolveColor(),this.series.is("heikinashi")||this.resolveUpColor()}getZone(){let it=super.getZone();return this.resolveUpColor(),it}applyOptions(){return super.applyOptions.apply(this,arguments),this.resolveColor&&this.resolveColor(),this}}return st}),gt(z,"Series/OHLC/OHLCSeriesDefaults.js",[],function(){return{tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'}}}),gt(z,"Series/OHLC/OHLCSeries.js",[z["Core/Globals.js"],z["Series/OHLC/OHLCPoint.js"],z["Series/OHLC/OHLCSeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it){let{composed:tt}=V,{hlc:Q}=nt.seriesTypes,{addEvent:X,crisp:F,extend:$,merge:C,pushUnique:j}=it;function B(k){let A=k.options,v=A.dataGrouping;v&&A.useOhlcData&&A.id!=="highcharts-navigator-series"&&(v.approximation="ohlc")}function R(k){let A=k.options;A.useOhlcData&&A.id!=="highcharts-navigator-series"&&$(this,{pointValKey:g.prototype.pointValKey,pointArrayMap:g.prototype.pointArrayMap,toYData:g.prototype.toYData})}class g extends Q{static compose(A,...v){j(tt,"OHLCSeries")&&(X(A,"afterSetOptions",B),X(A,"init",R))}getPointPath(A,v){let p=super.getPointPath(A,v),y=v.strokeWidth(),O=F(A.plotX||0,y),L=Math.round(A.shapeArgs.width/2);if(A.open!==null){let u=F(A.plotOpen,y);p.push(["M",O,u],["L",O-L,u]),super.extendStem(p,y/2,u)}return p}pointAttribs(A,v){let p=super.pointAttribs.call(this,A,v),y=this.options;return delete p.fill,!A.options.color&&y.upColor&&A.open<A.close&&(p.stroke=y.upColor),p}toYData(A){return[A.open,A.high,A.low,A.close]}}return g.defaultOptions=C(Q.defaultOptions,st),$(g.prototype,{pointClass:J,pointArrayMap:["open","high","low","close"]}),nt.registerSeriesType("ohlc",g),g}),gt(z,"Series/Candlestick/CandlestickSeriesDefaults.js",[],function(){return{states:{hover:{lineWidth:2}},threshold:null,lineColor:"#000000",lineWidth:1,upColor:"#ffffff",stickyTracking:!0}}),gt(z,"Series/Candlestick/CandlestickSeries.js",[z["Series/Candlestick/CandlestickSeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st){let{column:nt,ohlc:it}=J.seriesTypes,{crisp:tt,merge:Q}=st;class X extends it{pointAttribs($,C){let j=nt.prototype.pointAttribs.call(this,$,C),B=this.options,R=$.open<$.close,g=B.lineColor||this.color,k=$.color||this.color;if(j["stroke-width"]=B.lineWidth,j.fill=$.options.color||R&&B.upColor||k,j.stroke=$.options.lineColor||R&&B.upLineColor||g,C){let A=B.states[C];j.fill=A.color||j.fill,j.stroke=A.lineColor||j.stroke,j["stroke-width"]=A.lineWidth||j["stroke-width"]}return j}drawPoints(){let $=this.points,C=this.chart,j=this.yAxis.reversed;for(let B of $){let R=B.graphic,g,k,A,v,p,y,O,L,u,l=!R;if(B.plotY!==void 0){R||(B.graphic=R=C.renderer.path().add(this.group)),this.chart.styledMode||R.attr(this.pointAttribs(B,B.selected&&"select")).shadow(this.options.shadow);let m=R.strokeWidth();O=tt(B.plotX||0,m),A=Math.min(g=B.plotOpen,k=B.plotClose),v=Math.max(g,k),u=Math.round(B.shapeArgs.width/2),p=j?v!==B.yBottom:Math.round(A)!==Math.round(B.plotHigh||0),y=j?Math.round(A)!==Math.round(B.plotHigh||0):v!==B.yBottom,A=tt(A,m),v=tt(v,m),(L=[]).push(["M",O-u,v],["L",O-u,A],["L",O+u,A],["L",O+u,v],["Z"],["M",O,A],["L",O,p?Math.round(j?B.yBottom:B.plotHigh):A],["M",O,v],["L",O,y?Math.round(j?B.plotHigh:B.yBottom):v]),R[l?"attr":"animate"]({d:L}).addClass(B.getClassName(),!0)}}}}return X.defaultOptions=Q(it.defaultOptions,{tooltip:it.defaultOptions.tooltip},V),J.registerSeriesType("candlestick",X),X}),gt(z,"Series/Flags/FlagsPoint.js",[z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J){let{column:{prototype:{pointClass:st}}}=V.seriesTypes,{isNumber:nt}=J;return class extends st{constructor(){super(...arguments),this.ttBelow=!1}isValid(){return nt(this.y)||this.y===void 0}hasNewShapeType(){let it=this.options.shape||this.series.options.shape;return this.graphic&&it&&it!==this.graphic.symbolKey}}}),gt(z,"Series/Flags/FlagsSeriesDefaults.js",[],function(){return{borderRadius:0,pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd3ff"}},style:{fontSize:"0.7em",fontWeight:"bold"}}}),gt(z,"Series/Flags/FlagsSymbols.js",[z["Core/Renderer/RendererRegistry.js"]],function(V){var J;return function(st){let nt=[];function it(Q,X,F,$,C){let j=C&&C.anchorX||Q,B=C&&C.anchorY||X,R=this.circle(j-1,B-1,2,2);return R.push(["M",j,B],["L",Q,X+$],["L",Q,X],["L",Q+F,X],["L",Q+F,X+$],["L",Q,X+$],["Z"]),R}function tt(Q,X){Q[X+"pin"]=function(F,$,C,j,B){let R,g=B&&B.anchorX,k=B&&B.anchorY;if(X==="circle"&&j>C&&(F-=Math.round((j-C)/2),C=j),R=Q[X](F,$,C,j,B),g&&k){let A=g;if(X==="circle")A=F+C/2;else{let p=R[0],y=R[1];p[0]==="M"&&y[0]==="L"&&(A=(p[1]+y[1])/2)}let v=$>k?$:$+j;R.push(["M",A,v],["L",g,k]),R=R.concat(Q.circle(g-1,k-1,2,2))}return R}}st.compose=function(Q){if(nt.indexOf(Q)===-1){nt.push(Q);let F=Q.prototype.symbols;F.flag=it,tt(F,"circle"),tt(F,"square")}let X=V.getRendererType();nt.indexOf(X)&&nt.push(X)}}(J||(J={})),J}),gt(z,"Series/OnSeriesComposition.js",[z["Series/Column/ColumnSeries.js"],z["Core/Globals.js"],z["Core/Series/Series.js"],z["Core/Utilities.js"]],function(V,J,st,nt){var it;let{composed:tt}=J,{prototype:Q}=V,{prototype:X}=st,{defined:F,pushUnique:$,stableSort:C}=nt;return function(j){function B(g){return X.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,g)}function R(){var w,T;Q.translate.apply(this);let g=this,k=g.options,A=g.chart,v=g.points,p=k.onSeries,y=p&&A.get(p),O=y&&y.options.step,L=y&&y.points,u=A.inverted,l=g.xAxis,m=g.yAxis,o=v.length-1,e,t,s=k.onKey||"y",n=L&&L.length,i=0,a,r,f,P,d;if(y&&y.visible&&n){for(i=(y.pointXOffset||0)+(y.barW||0)/2,P=y.currentDataGrouping,r=L[n-1].x+(P?P.totalRange:0),C(v,(D,H)=>D.x-H.x),s="plot"+s[0].toUpperCase()+s.substr(1);n--&&v[o];)if(a=L[n],(e=v[o]).y=a.y,a.x<=e.x&&a[s]!==void 0){if(e.x<=r&&(e.plotY=a[s],a.x<e.x&&!O&&(f=L[n+1])&&f[s]!==void 0))if(F(e.plotX)&&y.is("spline")){let D=[a.plotX||0,a.plotY||0],H=[f.plotX||0,f.plotY||0],x=((w=a.controlPoints)==null?void 0:w.high)||D,c=((T=f.controlPoints)==null?void 0:T.low)||H,M=(b,E)=>Math.pow(1-b,3)*D[E]+3*(1-b)*(1-b)*b*x[E]+3*(1-b)*b*b*c[E]+b*b*b*H[E],G=0,h=1,S;for(let b=0;b<100;b++){let E=(G+h)/2,I=M(E,0);if(I===null)break;if(.25>Math.abs(I-e.plotX)){S=E;break}I<e.plotX?G=E:h=E}F(S)&&(e.plotY=M(S,1),e.y=m.toValue(e.plotY,!0))}else d=(e.x-a.x)/(f.x-a.x),e.plotY+=d*(f[s]-a[s]),e.y+=d*(f.y-a.y);if(o--,n++,o<0)break}}v.forEach((D,H)=>{let x;D.plotX+=i,(D.plotY===void 0||u)&&(D.plotX>=0&&D.plotX<=l.len?u?(D.plotY=l.translate(D.x,0,1,0,1),D.plotX=F(D.y)?m.translate(D.y,0,0,0,1):0):D.plotY=(l.opposite?0:g.yAxis.len)+l.offset:D.shapeArgs={}),(t=v[H-1])&&t.plotX===D.plotX&&(t.stackIndex===void 0&&(t.stackIndex=0),x=t.stackIndex+1),D.stackIndex=x}),this.onSeries=y}j.compose=function(g){if($(tt,"OnSeries")){let k=g.prototype;k.getPlotBox=B,k.translate=R}return g},j.getPlotBox=B,j.translate=R}(it||(it={})),it}),gt(z,"Series/Flags/FlagsSeries.js",[z["Series/Flags/FlagsPoint.js"],z["Series/Flags/FlagsSeriesDefaults.js"],z["Series/Flags/FlagsSymbols.js"],z["Core/Globals.js"],z["Series/OnSeriesComposition.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt,Q,X,F){let{noop:$}=nt,{distribute:C}=tt,{series:j,seriesTypes:{column:B}}=Q,{addEvent:R,defined:g,extend:k,isNumber:A,merge:v,objectEach:p,wrap:y}=F;class O extends B{animate(u){u&&this.setClip()}drawPoints(){let u,l,m,o,e,t,s,n,i,a,r,f=this.points,P=this.chart,d=P.renderer,w=P.inverted,T=this.options,D=T.y,H=this.yAxis,x={},c=[],M=A(T.borderRadius)?T.borderRadius:0;for(o=f.length;o--;)e=f[o],a=(w?e.plotY:e.plotX)>this.xAxis.len,u=e.plotX,s=e.stackIndex,m=e.options.shape||T.shape,(l=e.plotY)!==void 0&&(l=e.plotY+D-(s!==void 0&&s*T.stackDistance)),e.anchorX=s?void 0:e.plotX,n=s?void 0:e.plotY,r=m!=="flag",t=e.graphic,l!==void 0&&u>=0&&!a?(t&&e.hasNewShapeType()&&(t=t.destroy()),t||(t=e.graphic=d.label("",0,void 0,m,void 0,void 0,T.useHTML).addClass("highcharts-point").add(this.markerGroup),e.graphic.div&&(e.graphic.div.point=e),t.isNew=!0),t.attr({align:r?"center":"left",width:T.width,height:T.height,"text-align":T.textAlign,r:M}),P.styledMode||t.attr(this.pointAttribs(e)).css(v(T.style,e.style)).shadow(T.shadow),u>0&&(u-=t.strokeWidth()%2),i={y:l,anchorY:n},T.allowOverlapX&&(i.x=u,i.anchorX=e.anchorX),t.attr({text:e.options.title??T.title??"A"})[t.isNew?"attr":"animate"](i),T.allowOverlapX||(x[e.plotX]?x[e.plotX].size=Math.max(x[e.plotX].size,t.width||0):x[e.plotX]={align:r?.5:0,size:t.width||0,target:u,anchorX:u}),e.tooltipPos=[u,l+H.pos-P.plotTop]):t&&(e.graphic=t.destroy());if(!T.allowOverlapX){let G=100;for(let h of(p(x,function(S){S.plotX=S.anchorX,c.push(S),G=Math.max(S.size,G)}),C(c,w?H.len:this.xAxis.len,G),f)){let S=h.plotX,b=h.graphic,E=b&&x[S];E&&b&&(g(E.pos)?b[b.isNew?"attr":"animate"]({x:E.pos+(E.align||0)*E.size,anchorX:h.anchorX}).show().isNew=!1:b.hide().isNew=!0)}}T.useHTML&&this.markerGroup&&y(this.markerGroup,"on",function(G){return X.prototype.on.apply(G.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let u=this.points;for(let l of(super.drawTracker(),u)){let m=l.graphic;m&&(l.unbindMouseOver&&l.unbindMouseOver(),l.unbindMouseOver=R(m.element,"mouseover",function(){for(let o of(l.stackIndex>0&&!l.raised&&(l._y=m.y,m.attr({y:l._y-8}),l.raised=!0),u))o!==l&&o.raised&&o.graphic&&(o.graphic.attr({y:o._y}),o.raised=!1)}))}}pointAttribs(u,l){let m=this.options,o=u&&u.color||this.color,e=m.lineColor,t=u&&u.lineWidth,s=u&&u.fillColor||m.fillColor;return l&&(s=m.states[l].fillColor,e=m.states[l].lineColor,t=m.states[l].lineWidth),{fill:s||o,stroke:e||o,"stroke-width":t||m.lineWidth||0}}setClip(){j.prototype.setClip.apply(this,arguments),this.options.clip!==!1&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return O.compose=st.compose,O.defaultOptions=v(B.defaultOptions,J),it.compose(O),k(O.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:V,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:j.prototype.init}),Q.registerSeriesType("flags",O),O}),gt(z,"Core/Axis/BrokenAxis.js",[z["Core/Axis/Stacking/StackItem.js"],z["Core/Utilities.js"]],function(V,J){var st;let{addEvent:nt,find:it,fireEvent:tt,isArray:Q,isNumber:X,pick:F}=J;return function($){function C(){this.brokenAxis!==void 0&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function j(){var y;(y=this.brokenAxis)!=null&&y.hasBreaks&&(this.options.ordinal=!1)}function B(){let y=this.brokenAxis;if(y!=null&&y.hasBreaks){let O=this.tickPositions,L=this.tickPositions.info,u=[];for(let l=0;l<O.length;l++)y.isInAnyBreak(O[l])||u.push(O[l]);this.tickPositions=u,this.tickPositions.info=L}}function R(){this.brokenAxis||(this.brokenAxis=new p(this))}function g(){var m,o;let{isDirty:y,options:{connectNulls:O},points:L,xAxis:u,yAxis:l}=this;if(y){let e=L.length;for(;e--;){let t=L[e],s=!(t.y===null&&O===!1)&&(((m=u==null?void 0:u.brokenAxis)==null?void 0:m.isInAnyBreak(t.x,!0))||((o=l==null?void 0:l.brokenAxis)==null?void 0:o.isInAnyBreak(t.y,!0)));t.visible=!s&&t.options.visible!==!1}}}function k(){this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,F(this.pointArrayMap,["y"]))}function A(y,O){var e;let L,u,l,m=this,o=m.points;if((e=y==null?void 0:y.brokenAxis)!=null&&e.hasBreaks){let t=y.brokenAxis;O.forEach(function(s){var i,a;L=(t==null?void 0:t.breakArray)||[],u=y.isXAxis?y.min:F(m.options.threshold,y.min);let n=(a=(i=y==null?void 0:y.options)==null?void 0:i.breaks)==null?void 0:a.filter(function(r){let f=!0;for(let P=0;P<L.length;P++){let d=L[P];if(d.from===r.from&&d.to===r.to){f=!1;break}}return f});o.forEach(function(r){l=F(r["stack"+s.toUpperCase()],r[s]),L.forEach(function(f){if(X(u)&&X(l)){let P="";u<f.from&&l>f.to||u>f.from&&l<f.from?P="pointBreak":(u<f.from&&l>f.from&&l<f.to||u>f.from&&l>f.to&&l<f.from)&&(P="pointInBreak"),P&&tt(y,P,{point:r,brk:f})}}),n==null||n.forEach(function(f){tt(y,"pointOutsideOfBreak",{point:r,brk:f})})})})}}function v(){let y=this.currentDataGrouping,O=y==null?void 0:y.gapSize,L=this.points.slice(),u=this.yAxis,l=this.options.gapSize,m=L.length-1;if(l&&m>0){let o,e;for(this.options.gapUnit!=="value"&&(l*=this.basePointRange),O&&O>l&&O>=this.basePointRange&&(l=O);m--;)if(e&&e.visible!==!1||(e=L[m+1]),o=L[m],e.visible!==!1&&o.visible!==!1){if(e.x-o.x>l){let t=(o.x+e.x)/2;L.splice(m+1,0,{isNull:!0,x:t}),u.stacking&&this.options.stacking&&((u.stacking.stacks[this.stackKey][t]=new V(u,u.options.stackLabels,!1,t,this.stack)).total=0)}e=o}}return this.getGraphPath(L)}$.compose=function(y,O){if(!y.keepProps.includes("brokenAxis")){y.keepProps.push("brokenAxis"),nt(y,"init",R),nt(y,"afterInit",C),nt(y,"afterSetTickPositions",B),nt(y,"afterSetOptions",j);let L=O.prototype;L.drawBreaks=A,L.gappedPath=v,nt(O,"afterGeneratePoints",g),nt(O,"afterRender",k)}return y};class p{static isInBreak(O,L){let u=O.repeat||1/0,l=O.from,m=O.to-O.from,o=L>=l?(L-l)%u:u-(l-L)%u;return O.inclusive?o<=m:o<m&&o!==0}static lin2Val(O){let L=this.brokenAxis,u=L&&L.breakArray;if(!u||!X(O))return O;let l=O,m,o;for(o=0;o<u.length&&!((m=u[o]).from>=l);o++)(m.to<l||p.isInBreak(m,l))&&(l+=m.len);return l}static val2Lin(O){let L=this.brokenAxis,u=L&&L.breakArray;if(!u||!X(O))return O;let l=O,m,o;for(o=0;o<u.length;o++)if((m=u[o]).to<=O)l-=m.len;else{if(m.from>=O)break;if(p.isInBreak(m,O)){l-=O-m.from;break}}return l}constructor(O){this.hasBreaks=!1,this.axis=O}findBreakAt(O,L){return it(L,function(u){return u.from<O&&O<u.to})}isInAnyBreak(O,L){let u=this.axis,l=u.options.breaks||[],m=l.length,o,e,t;if(m&&X(O)){for(;m--;)p.isInBreak(l[m],O)&&(o=!0,e||(e=F(l[m].showPoints,!u.isXAxis)));t=o&&L?o&&!e:o}return t}setBreaks(O,L){let u=this,l=u.axis,m=Q(O)&&!!O.length&&!!Object.keys(O[0]).length;l.isDirty=u.hasBreaks!==m,u.hasBreaks=m,O!==l.options.breaks&&(l.options.breaks=l.userOptions.breaks=O),l.forceRedraw=!0,l.series.forEach(function(o){o.isDirty=!0}),m||l.val2lin!==p.val2Lin||(delete l.val2lin,delete l.lin2val),m&&(l.userOptions.ordinal=!1,l.lin2val=p.lin2Val,l.val2lin=p.val2Lin,l.setExtremes=function(o,e,t,s,n){if(u.hasBreaks){let i,a=this.options.breaks||[];for(;i=u.findBreakAt(o,a);)o=i.to;for(;i=u.findBreakAt(e,a);)e=i.from;e<o&&(e=o)}l.constructor.prototype.setExtremes.call(this,o,e,t,s,n)},l.setAxisTranslation=function(){if(l.constructor.prototype.setAxisTranslation.call(this),u.unitLength=void 0,u.hasBreaks){let o=l.options.breaks||[],e=[],t=[],s=F(l.pointRangePadding,0),n=0,i,a,r=l.userMin||l.min,f=l.userMax||l.max,P,d;o.forEach(function(w){a=w.repeat||1/0,X(r)&&X(f)&&(p.isInBreak(w,r)&&(r+=w.to%a-r%a),p.isInBreak(w,f)&&(f-=f%a-w.from%a))}),o.forEach(function(w){if(P=w.from,a=w.repeat||1/0,X(r)&&X(f)){for(;P-a>r;)P-=a;for(;P<r;)P+=a;for(d=P;d<f;d+=a)e.push({value:d,move:"in"}),e.push({value:d+w.to-w.from,move:"out",size:w.breakSize})}}),e.sort(function(w,T){return w.value===T.value?(w.move==="in"?0:1)-(T.move==="in"?0:1):w.value-T.value}),i=0,P=r,e.forEach(function(w){(i+=w.move==="in"?1:-1)===1&&w.move==="in"&&(P=w.value),i===0&&X(P)&&(t.push({from:P,to:w.value,len:w.value-P-(w.size||0)}),n+=w.value-P-(w.size||0))}),u.breakArray=t,X(r)&&X(f)&&X(l.min)&&(u.unitLength=f-r-n+s,tt(l,"afterBreaks"),l.staticScale?l.transA=l.staticScale:u.unitLength&&(l.transA*=(f-l.min+s)/u.unitLength),s&&(l.minPixelPadding=l.transA*(l.minPointOffset||0)),l.min=r,l.max=f)}}),F(L,!0)&&l.chart.redraw()}}$.Additions=p}(st||(st={})),st}),gt(z,"masters/modules/broken-axis.src.js",[z["Core/Globals.js"],z["Core/Axis/BrokenAxis.js"]],function(V,J){return V.BrokenAxis=V.BrokenAxis||J,V.BrokenAxis.compose(V.Axis,V.Series),V}),gt(z,"Extensions/DataGrouping/ApproximationRegistry.js",[],function(){return{}}),gt(z,"Extensions/DataGrouping/ApproximationDefaults.js",[z["Extensions/DataGrouping/ApproximationRegistry.js"],z["Core/Utilities.js"]],function(V,J){let{arrayMax:st,arrayMin:nt,correctFloat:it,extend:tt,isNumber:Q}=J;function X(C){let j=C.length,B=F(C);return Q(B)&&j&&(B=it(B/j)),B}function F(C){let j=C.length,B;if(!j&&C.hasNulls)B=null;else if(j)for(B=0;j--;)B+=C[j];return B}let $={average:X,averages:function(){let C=[];return[].forEach.call(arguments,function(j){C.push(X(j))}),C[0]===void 0?void 0:C},close:function(C){return C.length?C[C.length-1]:C.hasNulls?null:void 0},high:function(C){return C.length?st(C):C.hasNulls?null:void 0},hlc:function(C,j,B){if(C=V.high(C),j=V.low(j),B=V.close(B),Q(C)||Q(j)||Q(B))return[C,j,B]},low:function(C){return C.length?nt(C):C.hasNulls?null:void 0},ohlc:function(C,j,B,R){if(C=V.open(C),j=V.high(j),B=V.low(B),R=V.close(R),Q(C)||Q(j)||Q(B)||Q(R))return[C,j,B,R]},open:function(C){return C.length?C[0]:C.hasNulls?null:void 0},range:function(C,j){return C=V.low(C),j=V.high(j),Q(C)||Q(j)?[C,j]:C===null&&j===null?null:void 0},sum:F};return tt(V,$),$}),gt(z,"Extensions/DataGrouping/DataGroupingDefaults.js",[],function(){return{common:{groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %e %b, %H:%M:%S.%L","%A, %e %b, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %e %b, %H:%M:%S","%A, %e %b, %H:%M:%S","-%H:%M:%S"],minute:["%A, %e %b, %H:%M","%A, %e %b, %H:%M","-%H:%M"],hour:["%A, %e %b, %H:%M","%A, %e %b, %H:%M","-%H:%M"],day:["%A, %e %b %Y","%A, %e %b","-%A, %e %b %Y"],week:["Week from %A, %e %b %Y","%A, %e %b","-%A, %e %b %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y","%Y","-%Y"]}},seriesSpecific:{line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},candlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5},hlc:{groupPixelWidth:5},heikinashi:{groupPixelWidth:10}},units:[["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]],["week",[1]],["month",[1,3,6]],["year",null]]}}),gt(z,"Extensions/DataGrouping/DataGroupingAxisComposition.js",[z["Extensions/DataGrouping/DataGroupingDefaults.js"],z["Core/Utilities.js"]],function(V,J){let st,{addEvent:nt,extend:it,merge:tt,pick:Q}=J;function X(j){let B=this,R=B.series;R.forEach(function(g){g.groupPixelWidth=void 0}),R.forEach(function(g){g.groupPixelWidth=B.getGroupPixelWidth&&B.getGroupPixelWidth(),g.groupPixelWidth&&(g.hasProcessed=!0),g.applyGrouping(!!j.hasExtremesChanged)})}function F(){let j=this.series,B=j.length,R=0,g=!1,k,A;for(;B--;)(A=j[B].options.dataGrouping)&&(R=Math.max(R,Q(A.groupPixelWidth,V.common.groupPixelWidth)),k=(j[B].processedXData||j[B].data).length,(j[B].groupPixelWidth||k>this.chart.plotSizeX/R||k&&A.forced)&&(g=!0));return g?R:0}function $(){this.series.forEach(function(j){j.hasProcessed=!1})}function C(j,B){let R;if(B=Q(B,!0),j||(j={forced:!1,units:null}),this instanceof st)for(R=this.series.length;R--;)this.series[R].update({dataGrouping:j},!1);else this.chart.options.series.forEach(function(g){g.dataGrouping=typeof j=="boolean"?j:tt(j,g.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),B&&this.chart.redraw()}return{compose:function(j){st=j;let B=j.prototype;B.applyGrouping||(nt(j,"afterSetScale",$),nt(j,"postProcessData",X),it(B,{applyGrouping:X,getGroupPixelWidth:F,setDataGrouping:C}))}}}),gt(z,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[z["Extensions/DataGrouping/ApproximationRegistry.js"],z["Extensions/DataGrouping/DataGroupingDefaults.js"],z["Core/Axis/DateTimeAxis.js"],z["Core/Defaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt){let{series:{prototype:Q}}=it,{addEvent:X,defined:F,error:$,extend:C,isNumber:j,merge:B,pick:R}=tt,g=Q.generatePoints;function k(L){var u;let l,m,o=this.chart,e=this.options.dataGrouping,t=this.allowDG!==!1&&e&&R(e.enabled,o.options.isStock),s=this.reserveSpace(),n=this.currentDataGrouping,i,a,r=!1;t&&!this.requireSorting&&(this.requireSorting=r=!0);let f=!!(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!L)||!t;if(r&&(this.requireSorting=!1),f)return;this.destroyGroupedData();let P=e.groupAll?this.xData:this.processedXData,d=e.groupAll?this.yData:this.processedYData,w=o.plotSizeX,T=this.xAxis,D=T.options.ordinal,H=this.groupPixelWidth;if(H&&P&&P.length&&w){m=!0,this.isDirty=!0,this.points=null;let x=T.getExtremes(),c=x.min,M=x.max,G=D&&T.ordinal&&T.ordinal.getGroupIntervalFactor(c,M,this)||1,h=H*(M-c)/w*G,S=T.getTimeTicks(st.Additions.prototype.normalizeTimeTickInterval(h,e.units||J.units),Math.min(c,P[0]),Math.max(M,P[P.length-1]),T.options.startOfWeek,P,this.closestPointRange),b=Q.groupData.apply(this,[P,d,S,e.approximation]),E=b.groupedXData,I=b.groupedYData,N=0;for(e&&e.smoothed&&E.length&&(e.firstAnchor="firstPoint",e.anchor="middle",e.lastAnchor="lastPoint",$(32,!1,o,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),l=1;l<S.length;l++)S.info.segmentStarts&&S.info.segmentStarts.indexOf(l)!==-1||(N=Math.max(S[l]-S[l-1],N));(i=S.info).gapSize=N,this.closestPointRange=S.info.totalRange,this.groupMap=b.groupMap,this.currentDataGrouping=i,function(U,Z,_){let at=U.options.dataGrouping,lt=U.currentDataGrouping&&U.currentDataGrouping.gapSize;if(!(at&&U.xData&<&&U.groupMap))return;let Y=Z.length-1,W=at.anchor,q=at.firstAnchor,K=at.lastAnchor,et=Z.length-1,rt=0;if(q&&U.xData[0]>=Z[0]){let ot;rt++;let ht=U.groupMap[0].start,dt=U.groupMap[0].length;j(ht)&&j(dt)&&(ot=ht+(dt-1)),Z[0]={start:Z[0],middle:Z[0]+.5*lt,end:Z[0]+lt,firstPoint:U.xData[0],lastPoint:ot&&U.xData[ot]}[q]}if(Y>0&&K&<&&Z[Y]>=_-lt){et--;let ot=U.groupMap[U.groupMap.length-1].start;Z[Y]={start:Z[Y],middle:Z[Y]+.5*lt,end:Z[Y]+lt,firstPoint:ot&&U.xData[ot],lastPoint:U.xData[U.xData.length-1]}[K]}if(W&&W!=="start"){let ot=lt*{middle:.5,end:1}[W];for(;et>=rt;)Z[et]+=ot,et--}}(this,E,M),s&&(F((u=E)[0])&&j(T.min)&&j(T.dataMin)&&u[0]<T.min&&((!F(T.options.min)&&T.min<=T.dataMin||T.min===T.dataMin)&&(T.min=Math.min(u[0],T.min)),T.dataMin=Math.min(u[0],T.dataMin)),F(u[u.length-1])&&j(T.max)&&j(T.dataMax)&&u[u.length-1]>T.max&&((!F(T.options.max)&&j(T.dataMax)&&T.max>=T.dataMax||T.max===T.dataMax)&&(T.max=Math.max(u[u.length-1],T.max)),T.dataMax=Math.max(u[u.length-1],T.dataMax))),e.groupAll&&(this.allGroupedData=I,E=(a=this.cropData(E,I,T.min,T.max)).xData,I=a.yData,this.cropStart=a.start),this.processedXData=E,this.processedYData=I}else this.groupMap=null,this.currentDataGrouping=void 0;this.hasGroupedData=m,this.preventGraphAnimation=(n&&n.totalRange)!==(i&&i.totalRange)}function A(){this.groupedData&&(this.groupedData.forEach(function(L,u){L&&(this.groupedData[u]=L.destroy?L.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function v(){g.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function p(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function y(L,u,l,m){let o=this,e=o.data,t=o.options&&o.options.data,s=[],n=[],i=[],a=L.length,r=!!u,f=[],P=o.pointArrayMap,d=P&&P.length,w=["x"].concat(P||["y"]),T=this.options.dataGrouping&&this.options.dataGrouping.groupAll,D,H,x,c=0,M=0,G=typeof m=="function"?m:m&&V[m]?V[m]:V[o.getDGApproximation&&o.getDGApproximation()||"average"];if(d){let S=P.length;for(;S--;)f.push([])}else f.push([]);let h=d||1;for(let S=0;S<=a;S++)if(!(L[S]<l[0])){for(;l[c+1]!==void 0&&L[S]>=l[c+1]||S===a;){D=l[c],o.dataGroupInfo={start:T?M:o.cropStart+M,length:f[0].length,groupStart:D},x=G.apply(o,f),o.pointClass&&!F(o.dataGroupInfo.options)&&(o.dataGroupInfo.options=B(o.pointClass.prototype.optionsToObject.call({series:o},o.options.data[o.cropStart+M])),w.forEach(function(b){delete o.dataGroupInfo.options[b]})),x!==void 0&&(s.push(D),n.push(x),i.push(o.dataGroupInfo)),M=S;for(let b=0;b<h;b++)f[b].length=0,f[b].hasNulls=!1;if(c+=1,S===a)break}if(S===a)break;if(P){let b,E=o.options.dataGrouping&&o.options.dataGrouping.groupAll?S:o.cropStart+S,I=e&&e[E]||o.pointClass.prototype.applyOptions.apply({series:o},[t[E]]);for(let N=0;N<d;N++)j(b=I[P[N]])?f[N].push(b):b===null&&(f[N].hasNulls=!0)}else j(H=r?u[S]:null)?f[0].push(H):H===null&&(f[0].hasNulls=!0)}return{groupedXData:s,groupedYData:n,groupMap:i}}function O(L){let u=L.options,l=this.type,m=this.chart.options.plotOptions,o=this.useCommonDataGrouping&&J.common,e=J.seriesSpecific,t=nt.defaultOptions.plotOptions[l].dataGrouping;if(m&&(e[l]||o)){let s=this.chart.rangeSelector;t||(t=B(J.common,e[l])),u.dataGrouping=B(o,t,m.series&&m.series.dataGrouping,m[l].dataGrouping,this.userOptions.dataGrouping,!u.isInternal&&s&&j(s.selected)&&s.buttonOptions[s.selected].dataGrouping)}}return{compose:function(L){let u=L.prototype;u.applyGrouping||(X(L.prototype.pointClass,"update",function(){if(this.dataGroup)return $(24,!1,this.series.chart),!1}),X(L,"afterSetOptions",O),X(L,"destroy",A),C(u,{applyGrouping:k,destroyGroupedData:A,generatePoints:v,getDGApproximation:p,groupData:y}))},groupData:y}}),gt(z,"Extensions/DataGrouping/DataGrouping.js",[z["Extensions/DataGrouping/DataGroupingAxisComposition.js"],z["Extensions/DataGrouping/DataGroupingDefaults.js"],z["Extensions/DataGrouping/DataGroupingSeriesComposition.js"],z["Core/Templating.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(V,J,st,nt,it,tt){let{format:Q}=nt,{composed:X}=it,{addEvent:F,extend:$,isNumber:C,pick:j,pushUnique:B}=tt;function R(g){var a;let k=this.chart,A=k.time,v=g.labelConfig,p=v.series,y=v.point,O=p.options,L=p.tooltipOptions,u=O.dataGrouping,l=p.xAxis,m=L.xDateFormat,o,e,t,s,n,i=L[g.isFooter?"footerFormat":"headerFormat"];if(l&&l.options.type==="datetime"&&u&&C(v.key)){e=p.currentDataGrouping,t=u.dateTimeLabelFormats||J.common.dateTimeLabelFormats,e?(s=t[e.unitName],e.count===1?m=s[0]:(m=s[1],o=s[2])):!m&&t&&l.dateTime&&(m=l.dateTime.getXDateFormat(v.x,L.dateTimeLabelFormats));let r=j((a=p.groupMap)==null?void 0:a[y.index].groupStart,v.key),f=r+(e==null?void 0:e.totalRange)-1;n=A.dateFormat(m,r),o&&(n+=A.dateFormat(o,f)),p.chart.styledMode&&(i=this.styledModeFormat(i)),g.text=Q(i,{point:$(v.point,{key:n}),series:p},k),g.preventDefault()}}return{compose:function(g,k,A){V.compose(g),st.compose(k),A&&B(X,"DataGrouping")&&F(A,"headerFormatter",R)},groupData:st.groupData}}),gt(z,"masters/modules/datagrouping.src.js",[z["Core/Globals.js"],z["Extensions/DataGrouping/ApproximationDefaults.js"],z["Extensions/DataGrouping/ApproximationRegistry.js"],z["Extensions/DataGrouping/DataGrouping.js"]],function(V,J,st,nt){return V.dataGrouping=V.dataGrouping||{},V.dataGrouping.approximationDefaults=V.dataGrouping.approximationDefaults||J,V.dataGrouping.approximations=V.dataGrouping.approximations||st,nt.compose(V.Axis,V.Series,V.Tooltip),V}),gt(z,"Extensions/Annotations/NavigationBindingsUtilities.js",[z["Core/Utilities.js"]],function(V){let{defined:J,isNumber:st,pick:nt}=V,it={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"};return{annotationsFieldsTypes:it,getAssignedAxis:function(tt){return tt.filter(Q=>{let X=Q.axis.getExtremes(),F=X.min,$=X.max,C=nt(Q.axis.minPointOffset,0);return st(F)&&st($)&&Q.value>=F-C&&Q.value<=$+C&&!Q.axis.options.isInternal})[0]},getFieldType:function(tt,Q){let X=it[tt],F=typeof Q;return J(X)&&(F=X),{string:"text",number:"number",boolean:"checkbox"}[F]}}}),gt(z,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[z["Core/Utilities.js"],z["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(V,J){let st,{addEvent:nt,isObject:it,pick:tt,defined:Q,merge:X}=V,{getAssignedAxis:F}=J,$=[],C={enabled:!0,sensitivity:1.1},j=g=>(it(g)||(g={enabled:g??!0}),X(C,g)),B=function(g,k,A,v,p,y,O){let L=tt(O.type,g.zooming.type,""),u=[];L==="x"?u=A:L==="y"?u=v:L==="xy"&&(u=g.axes);let l=g.transform({axes:u,to:{x:p-5,y:y-5,width:10,height:10},from:{x:p-5*k,y:y-5*k,width:10*k,height:10*k},trigger:"mousewheel"});return l&&(Q(st)&&clearTimeout(st),st=setTimeout(()=>{var m;(m=g.pointer)==null||m.drop()},400)),l};function R(){let g=j(this.zooming.mouseWheel);g.enabled&&nt(this.container,"wheel",k=>{var p,y;k=((p=this.pointer)==null?void 0:p.normalize(k))||k;let{pointer:A}=this,v=A&&!A.inClass(k.target,"highcharts-no-mousewheel");if(this.isInsidePlot(k.chartX-this.plotLeft,k.chartY-this.plotTop)&&v){let O=g.sensitivity||1.1,L=k.detail||(k.deltaY||0)/120,u=F(A.getCoordinates(k).xAxis),l=F(A.getCoordinates(k).yAxis);B(this,Math.pow(O,L),u?[u.axis]:this.xAxis,l?[l.axis]:this.yAxis,k.chartX,k.chartY,g)&&((y=k.preventDefault)==null||y.call(k))}})}return{compose:function(g){$.indexOf(g)===-1&&($.push(g),nt(g,"afterGetContainer",R))}}}),gt(z,"masters/modules/mouse-wheel-zoom.src.js",[z["Core/Globals.js"],z["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(V,J){return V.MouseWheelZoom=V.MouseWheelZoom||J,V.MouseWheelZoom.compose(V.Chart),V}),gt(z,"masters/modules/stock.src.js",[z["Core/Globals.js"],z["Series/DataModifyComposition.js"],z["Stock/Navigator/Navigator.js"],z["Core/Axis/OrdinalAxis.js"],z["Stock/RangeSelector/RangeSelector.js"],z["Stock/Scrollbar/Scrollbar.js"],z["Core/Chart/StockChart.js"],z["Series/OHLC/OHLCSeries.js"],z["Series/Flags/FlagsSeries.js"]],function(V,J,st,nt,it,tt,Q,X,F){return V.Navigator=V.Navigator||st,V.OrdinalAxis=V.OrdinalAxis||nt,V.RangeSelector=V.RangeSelector||it,V.Scrollbar=V.Scrollbar||tt,V.stockChart=V.stockChart||Q.stockChart,V.StockChart=V.StockChart||V.stockChart,V.extend(V.StockChart,Q),J.compose(V.Series,V.Axis,V.Point),F.compose(V.Renderer),X.compose(V.Series),V.Navigator.compose(V.Chart,V.Axis,V.Series),V.OrdinalAxis.compose(V.Axis,V.Series,V.Chart),V.RangeSelector.compose(V.Axis,V.Chart),V.Scrollbar.compose(V.Axis),V.StockChart.compose(V.Chart,V.Axis,V.Series,V.SVGRenderer),V}),gt(z,"masters/highstock.src.js",[z["masters/highcharts.src.js"]],function(V){return V.product="Highstock",V}),z["masters/highstock.src.js"]._modules=z,z["masters/highstock.src.js"]})})(Qt);var pe=Qt.exports;const Dt=se(pe);de(Dt);const ue=Dt.each,_t=Math.round,Ft=Math.cos,ge=Math.sin,Jt=Math.deg2rad;Dt.wrap(Dt.seriesTypes.pie.prototype,"translate",function(wt){if(wt.apply(this,[].slice.call(arguments,1)),!this.chart.is3d()||this.chart.container.closest(".pie-3d-container"))return;const z=this.chart.options,gt=this.options,V=gt.depth||0,J=z.chart.options3d,st=J.alpha,nt=J.beta;let it=gt.stacking?(gt.stack||0)*V:this._i*V;it+=V/2,gt.grouping!==!1&&(it=0);const tt=this.center;ue(this.data,Q=>{const X=Q.shapeArgs;let F=0;Q.shapeType="arc3d";const $=Q.options.h;X.z=it,X.depth=V*.75+$,X.alpha=st,X.beta=nt,X.center=tt,X.ran=$,F=(X.end+X.start)/2,Q.slicedTranslation={translateX:_t(Ft(F)*gt.slicedOffset*Ft(st*Jt)),translateY:_t(ge(F)*gt.slicedOffset*Ft(st*Jt))}})});(function(wt){wt.wrap(Dt.SVGRenderer.prototype,"arc3dPath",function(Ct){const z=Ct.apply(this,[].slice.call(arguments,1));return z.zTop=(z.zOut+.5)/100,z})})(Dt);const fe=re({name:"Es3dCircle",components:{},props:{options:{type:Object,default:()=>({})},datasets:{type:[Array,Object,String],default:()=>[]},eventData:{type:[String,Boolean,Number],default:""},element:{type:Object,default:()=>({})}},setup(wt){let Ct=null;const z=["#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"],gt=(V,J)=>{const{codeConfig:st,itemColors:nt,tooltip:it,unit:tt,labelTextColor:Q,valueColor:X,size:F,innerSize:$,depth:C}=J,j=document.querySelector(`.chart-${wt.element.id}`),B=V,R=V;if(j&&(Ct&&(Ct.destroy(),Ct=null),R)){const g=nt.concat(z).map(p=>({linearGradient:{x1:0,y1:1,x2:1,y2:0},stops:[[0,p.color||p],[1,p.color||p]]})),k={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 p=Dt.each,y=this.series[0].points;p(y,O=>{O.graphic.attr({translateY:-O.shapeArgs.ran}),O.graphic.side1.attr({translateY:-O.shapeArgs.ran}),O.graphic.side2.attr({translateY:-O.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:${it.style.color}">${this.point.name} : ${this.point.y} </span>`},...it},exporting:{enabled:!1},credits:{enabled:!1},title:{show:"false",text:""},subtitle:{text:""},plotOptions:{pie:{depth:C,allowPointSelect:!1,cursor:"pointer",innerSize:`${$}%`,size:`${F}%`,dataLabels:{enabled:!0,formatter(){return`<span style='color: ${Q};font-size:12px;'>${this.point.name} </span><span style='color: ${X};font-size:12px;'>${this.point.y} ${tt}</span>`},connectorColor:"#02AAD0",style:{textOverflow:"ellipsis",textOutline:"none"}},showInLegend:!0}},series:[{type:"pie",name:"",colorByPoint:!0,colors:g,data:B,states:{inactive:{opacity:1}}}]},v=new Function("option","datas",st)(ce(k),R,Ct,Dt);Kt(()=>{Ct=Dt.chart(document.querySelector(`.chart-${wt.element.id}`),v),Ct.unit=tt,Dt.addEvent(Ct,"redraw",()=>{const p=Dt.each,y=Ct.series[0].points;p(y,O=>{O.graphic.attr({translateY:-O.shapeArgs.ran}),O.graphic.side1.attr({translateY:-O.shapeArgs.ran}),O.graphic.side2.attr({translateY:-O.shapeArgs.ran})})}),Ct.reflow(),setTimeout(()=>{const p=document.createDocumentFragment();B.forEach((u,l)=>{const m=document.createElement("div");m.style="display: inline-block; margin-right: 10px;";const o=document.createElement("span"),e=g[l].stops[0][1];o.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: ${wt.legendFontColor}`,t.innerHTML=u.name,m.appendChild(o),m.appendChild(t),p.appendChild(m)});const y=document.createElement("div");y.className="my-highcharts-legend-wrapper",y.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 O=document.createElement("div");O.style="display: inline-block; width: max-content;",O.className="my-highcharts-legend-inner",O.appendChild(p),y.appendChild(O),setTimeout(()=>{if(y.offsetWidth<O.offsetWidth){const u=document.createElement("span");u.style=` position: absolute;
|
|
left: 2px;
|
|
top: 2px;
|
|
display: inline-block;
|
|
width:8px;
|
|
height: 8px;
|
|
border-right: 2px solid ${wt.legendFontColor};
|
|
border-bottom: 2px solid ${wt.legendFontColor};
|
|
-webkit-transform: rotate(135deg);cursor: pointer;`;const l=document.createElement("span");l.style=`position: absolute;
|
|
right: 2px;
|
|
top: 2px;
|
|
display: inline-block;
|
|
width:8px;
|
|
height: 8px;
|
|
border-right: 2px solid ${wt.legendFontColor};
|
|
border-bottom: 2px solid ${wt.legendFontColor};
|
|
-webkit-transform: rotate(-45deg);cursor: pointer`,y.appendChild(u),y.appendChild(l);let m=0;const o=()=>{m>=0||(m+=20,O.style.transform=`translateX(${m}px)`)},e=()=>{O.offsetWidth-y.offsetWidth<=Math.abs(m)||(m-=20,O.style.transform=`translateX(${m}px)`)};u.addEventListener("click",o),l.addEventListener("click",e)}},500);const L=document.querySelector(`.chart-${wt.element.id}`);L.style.position="relative",L.appendChild(y)})})}};ne([()=>wt.datasets,()=>wt.options],([V,J])=>{Kt(()=>{gt(V,J)})},{immediate:!0,deep:!0})}});function me(wt,Ct,z,gt,V,J){return ae(),le("div",{class:he([`chart-${wt.element.id}`,"highcharts-wrapper pie-3d-circle-chart"]),style:{width:"100%",height:"100%"}},null,2)}const ke=oe(fe,[["render",me],["__scopeId","data-v-7b17e910"]]);export{ke as default};
|