highcharts
Version:
JavaScript charting framework
105 lines (103 loc) • 269 kB
JavaScript
/*
Highstock JS v6.2.0 (2018-10-17)
(c) 2009-2016 Torstein Honsi
License: www.highcharts.com/license
*/
(function(Q,K){"object"===typeof module&&module.exports?module.exports=Q.document?K(Q):K:"function"===typeof define&&define.amd?define(function(){return K(Q)}):Q.Highcharts=K(Q)})("undefined"!==typeof window?window:this,function(Q){var K=function(){var a="undefined"===typeof Q?window:Q,C=a.document,D=a.navigator&&a.navigator.userAgent||"",F=C&&C.createElementNS&&!!C.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,u=/(edge|msie|trident)/i.test(D)&&!a.opera,m=-1!==D.indexOf("Firefox"),
e=-1!==D.indexOf("Chrome"),x=m&&4>parseInt(D.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock",version:"6.2.0",deg2rad:2*Math.PI/360,doc:C,hasBidiBug:x,hasTouch:C&&void 0!==C.documentElement.ontouchstart,isMS:u,isWebKit:-1!==D.indexOf("AppleWebKit"),isFirefox:m,isChrome:e,isSafari:!e&&-1!==D.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(D),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:F,win:a,marginNames:["plotTop",
"marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){a.timers=[];var C=a.charts,D=a.doc,F=a.win;a.error=function(u,m){u=a.isNumber(u)?"Highcharts error #"+u+": www.highcharts.com/errors/"+u:u;if(m)throw Error(u);F.console&&console.log(u)};a.Fx=function(a,m,e){this.options=m;this.elem=a;this.prop=e};a.Fx.prototype={dSetter:function(){var a=this.paths[0],m=this.paths[1],e=[],x=this.now,y=a.length,v;if(1===x)e=this.toD;else if(y===m.length&&1>x)for(;y--;)v=parseFloat(a[y]),
e[y]=isNaN(v)?m[y]:x*parseFloat(m[y]-v)+v;else e=m;this.elem.attr("d",e,null,!0)},update:function(){var a=this.elem,m=this.prop,e=this.now,x=this.options.step;if(this[m+"Setter"])this[m+"Setter"]();else a.attr?a.element&&a.attr(m,e,null,!0):a.style[m]=e+this.unit;x&&x.call(a,e,this)},run:function(u,m,e){var x=this,y=x.options,v=function(a){return v.stopped?!1:x.step(a)},w=F.requestAnimationFrame||function(a){setTimeout(a,13)},r=function(){for(var c=0;c<a.timers.length;c++)a.timers[c]()||a.timers.splice(c--,
1);a.timers.length&&w(r)};u!==m||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=u,this.end=m,this.unit=e,this.now=this.start,this.pos=0,v.elem=this.elem,v.prop=this.prop,v()&&1===a.timers.push(v)&&w(r)):(delete y.curAnim[this.prop],y.complete&&0===a.keys(y.curAnim).length&&y.complete.call(this.elem))},step:function(u){var m=+new Date,e,x=this.options,y=this.elem,v=x.complete,w=x.duration,r=x.curAnim;y.attr&&!y.element?u=!1:u||m>=w+this.startTime?(this.now=this.end,this.pos=
1,this.update(),e=r[this.prop]=!0,a.objectEach(r,function(a){!0!==a&&(e=!1)}),e&&v&&v.call(y),u=!1):(this.pos=x.easing((m-this.startTime)/w),this.now=this.start+(this.end-this.start)*this.pos,this.update(),u=!0);return u},initPath:function(u,m,e){function x(b){var a,d;for(n=b.length;n--;)a="M"===b[n]||"L"===b[n],d=/[a-zA-Z]/.test(b[n+3]),a&&d&&b.splice(n+1,0,b[n+1],b[n+2],b[n+1],b[n+2])}function y(b,a){for(;b.length<q;){b[0]=a[q-b.length];var g=b.slice(0,h);[].splice.apply(b,[0,0].concat(g));d&&(g=
b.slice(b.length-h),[].splice.apply(b,[b.length,0].concat(g)),n--)}b[0]="M"}function v(a,g){for(var c=(q-a.length)/h;0<c&&c--;)b=a.slice().splice(a.length/E-h,h*E),b[0]=g[q-h-c*h],k&&(b[h-6]=b[h-2],b[h-5]=b[h-1]),[].splice.apply(a,[a.length/E,0].concat(b)),d&&c--}m=m||"";var w,r=u.startX,c=u.endX,k=-1<m.indexOf("C"),h=k?7:3,q,b,n;m=m.split(" ");e=e.slice();var d=u.isArea,E=d?2:1,g;k&&(x(m),x(e));if(r&&c){for(n=0;n<r.length;n++)if(r[n]===c[0]){w=n;break}else if(r[0]===c[c.length-r.length+n]){w=n;g=
!0;break}void 0===w&&(m=[])}m.length&&a.isNumber(w)&&(q=e.length+w*E*h,g?(y(m,e),v(e,m)):(y(e,m),v(m,e)));return[m,e]},fillSetter:function(){a.Fx.prototype.strokeSetter.apply(this,arguments)},strokeSetter:function(){this.elem.attr(this.prop,a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)}};a.merge=function(){var u,m=arguments,e,x={},y=function(e,w){"object"!==typeof e&&(e={});a.objectEach(w,function(r,c){!a.isObject(r,!0)||a.isClass(r)||a.isDOMElement(r)?e[c]=w[c]:e[c]=y(e[c]||{},
r)});return e};!0===m[0]&&(x=m[1],m=Array.prototype.slice.call(m,2));e=m.length;for(u=0;u<e;u++)x=y(x,m[u]);return x};a.pInt=function(a,m){return parseInt(a,m||10)};a.isString=function(a){return"string"===typeof a};a.isArray=function(a){a=Object.prototype.toString.call(a);return"[object Array]"===a||"[object Array Iterator]"===a};a.isObject=function(u,m){return!!u&&"object"===typeof u&&(!m||!a.isArray(u))};a.isDOMElement=function(u){return a.isObject(u)&&"number"===typeof u.nodeType};a.isClass=function(u){var m=
u&&u.constructor;return!(!a.isObject(u,!0)||a.isDOMElement(u)||!m||!m.name||"Object"===m.name)};a.isNumber=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a};a.erase=function(a,m){for(var e=a.length;e--;)if(a[e]===m){a.splice(e,1);break}};a.defined=function(a){return void 0!==a&&null!==a};a.attr=function(u,m,e){var x;a.isString(m)?a.defined(e)?u.setAttribute(m,e):u&&u.getAttribute&&((x=u.getAttribute(m))||"class"!==m||(x=u.getAttribute(m+"Name"))):a.defined(m)&&a.isObject(m)&&
a.objectEach(m,function(a,e){u.setAttribute(e,a)});return x};a.splat=function(u){return a.isArray(u)?u:[u]};a.syncTimeout=function(a,m,e){if(m)return setTimeout(a,m,e);a.call(0,e)};a.clearTimeout=function(u){a.defined(u)&&clearTimeout(u)};a.extend=function(a,m){var e;a||(a={});for(e in m)a[e]=m[e];return a};a.pick=function(){var a=arguments,m,e,x=a.length;for(m=0;m<x;m++)if(e=a[m],void 0!==e&&null!==e)return e};a.css=function(u,m){a.isMS&&!a.svg&&m&&void 0!==m.opacity&&(m.filter="alpha(opacity\x3d"+
100*m.opacity+")");a.extend(u.style,m)};a.createElement=function(u,m,e,x,y){u=D.createElement(u);var v=a.css;m&&a.extend(u,m);y&&v(u,{padding:0,border:"none",margin:0});e&&v(u,e);x&&x.appendChild(u);return u};a.extendClass=function(u,m){var e=function(){};e.prototype=new u;a.extend(e.prototype,m);return e};a.pad=function(a,m,e){return Array((m||2)+1-String(a).replace("-","").length).join(e||0)+a};a.relativeLength=function(a,m,e){return/%$/.test(a)?m*parseFloat(a)/100+(e||0):parseFloat(a)};a.wrap=
function(a,m,e){var x=a[m];a[m]=function(){var a=Array.prototype.slice.call(arguments),v=arguments,w=this;w.proceed=function(){x.apply(w,arguments.length?arguments:v)};a.unshift(x);a=e.apply(this,a);w.proceed=null;return a}};a.datePropsToTimestamps=function(u){a.objectEach(u,function(m,e){a.isObject(m)&&"function"===typeof m.getTime?u[e]=m.getTime():(a.isObject(m)||a.isArray(m))&&a.datePropsToTimestamps(m)})};a.formatSingle=function(u,m,e){var x=/\.([0-9])/,y=a.defaultOptions.lang;/f$/.test(u)?(e=
(e=u.match(x))?e[1]:-1,null!==m&&(m=a.numberFormat(m,e,y.decimalPoint,-1<u.indexOf(",")?y.thousandsSep:""))):m=(e||a.time).dateFormat(u,m);return m};a.format=function(u,m,e){for(var x="{",y=!1,v,w,r,c,k=[],h;u;){x=u.indexOf(x);if(-1===x)break;v=u.slice(0,x);if(y){v=v.split(":");w=v.shift().split(".");c=w.length;h=m;for(r=0;r<c;r++)h&&(h=h[w[r]]);v.length&&(h=a.formatSingle(v.join(":"),h,e));k.push(h)}else k.push(v);u=u.slice(x+1);x=(y=!y)?"}":"{"}k.push(u);return k.join("")};a.getMagnitude=function(a){return Math.pow(10,
Math.floor(Math.log(a)/Math.LN10))};a.normalizeTickInterval=function(u,m,e,x,y){var v,w=u;e=a.pick(e,1);v=u/e;m||(m=y?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===x&&(1===e?m=a.grep(m,function(a){return 0===a%1}):.1>=e&&(m=[1/e])));for(x=0;x<m.length&&!(w=m[x],y&&w*e>=u||!y&&v<=(m[x]+(m[x+1]||m[x]))/2);x++);return w=a.correctFloat(w*e,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,m){var e=a.length,x,y;for(y=0;y<e;y++)a[y].safeI=y;a.sort(function(a,e){x=m(a,e);return 0===x?
a.safeI-e.safeI:x});for(y=0;y<e;y++)delete a[y].safeI};a.arrayMin=function(a){for(var m=a.length,e=a[0];m--;)a[m]<e&&(e=a[m]);return e};a.arrayMax=function(a){for(var m=a.length,e=a[0];m--;)a[m]>e&&(e=a[m]);return e};a.destroyObjectProperties=function(u,m){a.objectEach(u,function(a,x){a&&a!==m&&a.destroy&&a.destroy();delete u[x]})};a.discardElement=function(u){var m=a.garbageBin;m||(m=a.createElement("div"));u&&m.appendChild(u);m.innerHTML=""};a.correctFloat=function(a,m){return parseFloat(a.toPrecision(m||
14))};a.setAnimation=function(u,m){m.renderer.globalAnimation=a.pick(u,m.options.chart.animation,!0)};a.animObject=function(u){return a.isObject(u)?a.merge(u):{duration:u?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(u,m,e,x){u=+u||0;m=+m;var y=a.defaultOptions.lang,v=(u.toString().split(".")[1]||"").split("e")[0].length,w,r,c=u.toString().split("e");-1===m?m=Math.min(v,20):a.isNumber(m)?m&&c[1]&&0>c[1]&&
(w=m+ +c[1],0<=w?(c[0]=(+c[0]).toExponential(w).split("e")[0],m=w):(c[0]=c[0].split(".")[0]||0,u=20>m?(c[0]*Math.pow(10,c[1])).toFixed(m):0,c[1]=0)):m=2;r=(Math.abs(c[1]?c[0]:u)+Math.pow(10,-Math.max(m,v)-1)).toFixed(m);v=String(a.pInt(r));w=3<v.length?v.length%3:0;e=a.pick(e,y.decimalPoint);x=a.pick(x,y.thousandsSep);u=(0>u?"-":"")+(w?v.substr(0,w)+x:"");u+=v.substr(w).replace(/(\d{3})(?=\d)/g,"$1"+x);m&&(u+=e+r.slice(-m));c[1]&&0!==+u&&(u+="e"+c[1]);return u};Math.easeInOutSine=function(a){return-.5*
(Math.cos(Math.PI*a)-1)};a.getStyle=function(u,m,e){if("width"===m)return Math.max(0,Math.min(u.offsetWidth,u.scrollWidth)-a.getStyle(u,"padding-left")-a.getStyle(u,"padding-right"));if("height"===m)return Math.max(0,Math.min(u.offsetHeight,u.scrollHeight)-a.getStyle(u,"padding-top")-a.getStyle(u,"padding-bottom"));F.getComputedStyle||a.error(27,!0);if(u=F.getComputedStyle(u,void 0))u=u.getPropertyValue(m),a.pick(e,"opacity"!==m)&&(u=a.pInt(u));return u};a.inArray=function(u,m,e){return(a.indexOfPolyfill||
Array.prototype.indexOf).call(m,u,e)};a.grep=function(u,m){return(a.filterPolyfill||Array.prototype.filter).call(u,m)};a.find=Array.prototype.find?function(a,m){return a.find(m)}:function(a,m){var e,x=a.length;for(e=0;e<x;e++)if(m(a[e],e))return a[e]};a.some=function(u,m,e){return(a.somePolyfill||Array.prototype.some).call(u,m,e)};a.map=function(a,m){for(var e=[],x=0,y=a.length;x<y;x++)e[x]=m.call(a[x],a[x],x,a);return e};a.keys=function(u){return(a.keysPolyfill||Object.keys).call(void 0,u)};a.reduce=
function(u,m,e){return(a.reducePolyfill||Array.prototype.reduce).apply(u,2<arguments.length?[m,e]:[m])};a.offset=function(a){var m=D.documentElement;a=a.parentElement||a.parentNode?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(F.pageYOffset||m.scrollTop)-(m.clientTop||0),left:a.left+(F.pageXOffset||m.scrollLeft)-(m.clientLeft||0)}};a.stop=function(u,m){for(var e=a.timers.length;e--;)a.timers[e].elem!==u||m&&m!==a.timers[e].prop||(a.timers[e].stopped=!0)};a.each=function(u,m,e){return(a.forEachPolyfill||
Array.prototype.forEach).call(u,m,e)};a.objectEach=function(a,m,e){for(var x in a)a.hasOwnProperty(x)&&m.call(e||a[x],a[x],x,a)};a.addEvent=function(u,m,e,x){var y,v=u.addEventListener||a.addEventListenerPolyfill;y="function"===typeof u&&u.prototype?u.prototype.protoEvents=u.prototype.protoEvents||{}:u.hcEvents=u.hcEvents||{};a.Point&&u instanceof a.Point&&u.series&&u.series.chart&&(u.series.chart.runTrackerClick=!0);v&&v.call(u,m,e,!1);y[m]||(y[m]=[]);y[m].push(e);x&&a.isNumber(x.order)&&(e.order=
x.order,y[m].sort(function(a,r){return a.order-r.order}));return function(){a.removeEvent(u,m,e)}};a.removeEvent=function(u,m,e){function x(r,c){var k=u.removeEventListener||a.removeEventListenerPolyfill;k&&k.call(u,r,c,!1)}function y(r){var c,k;u.nodeName&&(m?(c={},c[m]=!0):c=r,a.objectEach(c,function(a,c){if(r[c])for(k=r[c].length;k--;)x(c,r[c][k])}))}var v,w;a.each(["protoEvents","hcEvents"],function(r){var c=u[r];c&&(m?(v=c[m]||[],e?(w=a.inArray(e,v),-1<w&&(v.splice(w,1),c[m]=v),x(m,e)):(y(c),
c[m]=[])):(y(c),u[r]={}))})};a.fireEvent=function(u,m,e,x){var y,v,w,r,c;e=e||{};D.createEvent&&(u.dispatchEvent||u.fireEvent)?(y=D.createEvent("Events"),y.initEvent(m,!0,!0),a.extend(y,e),u.dispatchEvent?u.dispatchEvent(y):u.fireEvent(m,y)):a.each(["protoEvents","hcEvents"],function(k){if(u[k])for(v=u[k][m]||[],w=v.length,e.target||a.extend(e,{preventDefault:function(){e.defaultPrevented=!0},target:u,type:m}),r=0;r<w;r++)(c=v[r])&&!1===c.call(u,e)&&e.preventDefault()});x&&!e.defaultPrevented&&x.call(u,
e)};a.animate=function(u,m,e){var x,y="",v,w,r;a.isObject(e)||(r=arguments,e={duration:r[2],easing:r[3],complete:r[4]});a.isNumber(e.duration)||(e.duration=400);e.easing="function"===typeof e.easing?e.easing:Math[e.easing]||Math.easeInOutSine;e.curAnim=a.merge(m);a.objectEach(m,function(c,k){a.stop(u,k);w=new a.Fx(u,e,k);v=null;"d"===k?(w.paths=w.initPath(u,u.d,m.d),w.toD=m.d,x=0,v=1):u.attr?x=u.attr(k):(x=parseFloat(a.getStyle(u,k))||0,"opacity"!==k&&(y="px"));v||(v=c);v&&v.match&&v.match("px")&&
(v=v.replace(/px/g,""));w.run(x,v,y)})};a.seriesType=function(u,m,e,x,y){var v=a.getOptions(),w=a.seriesTypes;v.plotOptions[u]=a.merge(v.plotOptions[m],e);w[u]=a.extendClass(w[m]||function(){},x);w[u].prototype.type=u;y&&(w[u].prototype.pointClass=a.extendClass(a.Point,y));return w[u]};a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),m=0;return function(){return"highcharts-"+a+"-"+m++}}();F.jQuery&&(F.jQuery.fn.highcharts=function(){var u=[].slice.call(arguments);if(this[0])return u[0]?
(new (a[a.isString(u[0])?u.shift():"Chart"])(this[0],u[0],u[1]),this):C[a.attr(this[0],"data-highcharts-chart")]})})(K);(function(a){var C=a.each,D=a.isNumber,F=a.map,u=a.merge,m=a.pInt;a.Color=function(e){if(!(this instanceof a.Color))return new a.Color(e);this.init(e)};a.Color.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(a){return[m(a[1]),m(a[2]),m(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
parse:function(a){return[m(a[1]),m(a[2]),m(a[3]),1]}}],names:{white:"#ffffff",black:"#000000"},init:function(e){var m,y,v,w;if((this.input=e=this.names[e&&e.toLowerCase?e.toLowerCase():""]||e)&&e.stops)this.stops=F(e.stops,function(r){return new a.Color(r[1])});else if(e&&e.charAt&&"#"===e.charAt()&&(m=e.length,e=parseInt(e.substr(1),16),7===m?y=[(e&16711680)>>16,(e&65280)>>8,e&255,1]:4===m&&(y=[(e&3840)>>4|(e&3840)>>8,(e&240)>>4|e&240,(e&15)<<4|e&15,1])),!y)for(v=this.parsers.length;v--&&!y;)w=this.parsers[v],
(m=w.regex.exec(e))&&(y=w.parse(m));this.rgba=y||[]},get:function(a){var e=this.input,y=this.rgba,v;this.stops?(v=u(e),v.stops=[].concat(v.stops),C(this.stops,function(e,r){v.stops[r]=[v.stops[r][0],e.get(a)]})):v=y&&D(y[0])?"rgb"===a||!a&&1===y[3]?"rgb("+y[0]+","+y[1]+","+y[2]+")":"a"===a?y[3]:"rgba("+y.join(",")+")":e;return v},brighten:function(a){var e,y=this.rgba;if(this.stops)C(this.stops,function(e){e.brighten(a)});else if(D(a)&&0!==a)for(e=0;3>e;e++)y[e]+=m(255*a),0>y[e]&&(y[e]=0),255<y[e]&&
(y[e]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this},tweenTo:function(a,m){var e=this.rgba,v=a.rgba;v.length&&e&&e.length?(a=1!==v[3]||1!==e[3],m=(a?"rgba(":"rgb(")+Math.round(v[0]+(e[0]-v[0])*(1-m))+","+Math.round(v[1]+(e[1]-v[1])*(1-m))+","+Math.round(v[2]+(e[2]-v[2])*(1-m))+(a?","+(v[3]+(e[3]-v[3])*(1-m)):"")+")"):m=a.input||"none";return m}};a.color=function(e){return new a.Color(e)}})(K);(function(a){var C,D,F=a.addEvent,u=a.animate,m=a.attr,e=a.charts,x=a.color,y=a.css,
v=a.createElement,w=a.defined,r=a.deg2rad,c=a.destroyObjectProperties,k=a.doc,h=a.each,q=a.extend,b=a.erase,n=a.grep,d=a.hasTouch,E=a.inArray,g=a.isArray,G=a.isFirefox,I=a.isMS,A=a.isObject,t=a.isString,z=a.isWebKit,J=a.merge,l=a.noop,H=a.objectEach,f=a.pick,B=a.pInt,L=a.removeEvent,p=a.splat,N=a.stop,W=a.svg,R=a.SVG_NS,P=a.symbolSizes,O=a.win;C=a.SVGElement=function(){return this};q(C.prototype,{opacity:1,SVG_NS:R,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline cursor".split(" "),
init:function(a,b){this.element="span"===b?v(b):k.createElementNS(this.SVG_NS,b);this.renderer=a},animate:function(b,p,B){p=a.animObject(f(p,this.renderer.globalAnimation,!0));0!==p.duration?(B&&(p.complete=B),u(this,b,p)):(this.attr(b,null,B),p.step&&p.step.call(this));return this},complexColor:function(b,f,p){var B=this.renderer,l,d,t,M,c,z,n,q,L,k,E,N=[],A;a.fireEvent(this.renderer,"complexColor",{args:arguments},function(){b.radialGradient?d="radialGradient":b.linearGradient&&(d="linearGradient");
d&&(t=b[d],c=B.gradients,n=b.stops,k=p.radialReference,g(t)&&(b[d]=t={x1:t[0],y1:t[1],x2:t[2],y2:t[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===d&&k&&!w(t.gradientUnits)&&(M=t,t=J(t,B.getRadialAttr(k,M),{gradientUnits:"userSpaceOnUse"})),H(t,function(a,b){"id"!==b&&N.push(b,a)}),H(n,function(a){N.push(a)}),N=N.join(","),c[N]?E=c[N].attr("id"):(t.id=E=a.uniqueKey(),c[N]=z=B.createElement(d).attr(t).add(B.defs),z.radAttr=M,z.stops=[],h(n,function(b){0===b[1].indexOf("rgba")?(l=a.color(b[1]),
q=l.get("rgb"),L=l.get("a")):(q=b[1],L=1);b=B.createElement("stop").attr({offset:b[0],"stop-color":q,"stop-opacity":L}).add(z);z.stops.push(b)})),A="url("+B.url+"#"+E+")",p.setAttribute(f,A),p.gradient=N,b.toString=function(){return A})})},applyTextOutline:function(f){var p=this.element,B,l,t,d,g;-1!==f.indexOf("contrast")&&(f=f.replace(/contrast/g,this.renderer.getContrast(p.style.fill)));f=f.split(" ");l=f[f.length-1];if((t=f[0])&&"none"!==t&&a.svg){this.fakeTS=!0;f=[].slice.call(p.getElementsByTagName("tspan"));
this.ySetter=this.xSetter;t=t.replace(/(^[\d\.]+)(.*?)$/g,function(a,b,f){return 2*b+f});for(g=f.length;g--;)B=f[g],"highcharts-text-outline"===B.getAttribute("class")&&b(f,p.removeChild(B));d=p.firstChild;h(f,function(a,b){0===b&&(a.setAttribute("x",p.getAttribute("x")),b=p.getAttribute("y"),a.setAttribute("y",b||0),null===b&&p.setAttribute("y",0));a=a.cloneNode(1);m(a,{"class":"highcharts-text-outline",fill:l,stroke:l,"stroke-width":t,"stroke-linejoin":"round"});p.insertBefore(a,d)})}},attr:function(a,
b,f,p){var B,l=this.element,t,d=this,g,z;"string"===typeof a&&void 0!==b&&(B=a,a={},a[B]=b);"string"===typeof a?d=(this[a+"Getter"]||this._defaultGetter).call(this,a,l):(H(a,function(b,f){g=!1;p||N(this,f);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(f)&&(t||(this.symbolAttr(a),t=!0),g=!0);!this.rotation||"x"!==f&&"y"!==f||(this.doTransform=!0);g||(z=this[f+"Setter"]||this._defaultSetter,z.call(this,b,f,l))},this),this.afterSetters());f&&f.call(this);return d},afterSetters:function(){this.doTransform&&
(this.updateTransform(),this.doTransform=!1)},addClass:function(a,b){var f=this.attr("class")||"";-1===f.indexOf(a)&&(b||(a=(f+(f?" ":"")+a).replace(" "," ")),this.attr("class",a));return this},hasClass:function(a){return-1!==E(a,(this.attr("class")||"").split(" "))},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var b=this;h("x y r start end width height innerR anchorX anchorY".split(" "),function(p){b[p]=f(a[p],b[p])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,
b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,b){var f;b=b||a.strokeWidth||0;f=Math.round(b)%2/2;a.x=Math.floor(a.x||this.x||0)+f;a.y=Math.floor(a.y||this.y||0)+f;a.width=Math.floor((a.width||this.width||0)-2*f);a.height=Math.floor((a.height||this.height||0)-2*f);w(a.strokeWidth)&&(a.strokeWidth=b);return a},css:function(a){var b=this.styles,f={},p=this.element,l,t="",d,g=!b,z=["textOutline","textOverflow",
"width"];a&&a.color&&(a.fill=a.color);b&&H(a,function(a,p){a!==b[p]&&(f[p]=a,g=!0)});g&&(b&&(a=q(b,f)),a&&(null===a.width||"auto"===a.width?delete this.textWidth:"text"===p.nodeName.toLowerCase()&&a.width&&(l=this.textWidth=B(a.width))),this.styles=a,l&&!W&&this.renderer.forExport&&delete a.width,p.namespaceURI===this.SVG_NS?(d=function(a,b){return"-"+b.toLowerCase()},H(a,function(a,b){-1===E(b,z)&&(t+=b.replace(/([A-Z])/g,d)+":"+a+";")}),t&&m(p,"style",t)):y(p,a),this.added&&("text"===this.element.nodeName&&
this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline)));return this},getStyle:function(a){return O.getComputedStyle(this.element||this,"").getPropertyValue(a)},strokeWidth:function(){var a=this.getStyle("stroke-width"),b;a.indexOf("px")===a.length-2?a=B(a):(b=k.createElementNS(R,"rect"),m(b,{width:a,"stroke-width":0}),this.element.parentNode.appendChild(b),a=b.getBBox().width,b.parentNode.removeChild(b));return a},on:function(a,b){var f=this,p=f.element;d&&"click"===
a?(p.ontouchstart=function(a){f.touchEventFired=Date.now();a.preventDefault();b.call(p,a)},p.onclick=function(a){(-1===O.navigator.userAgent.indexOf("Android")||1100<Date.now()-(f.touchEventFired||0))&&b.call(p,a)}):p["on"+a]=b;return this},setRadialReference:function(a){var b=this.renderer.gradients[this.element.gradient];this.element.radialReference=a;b&&b.radAttr&&b.animate(this.renderer.getRadialAttr(a,b.radAttr));return this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},
invert:function(a){this.inverted=a;this.updateTransform();return this},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,p=this.scaleX,B=this.scaleY,l=this.inverted,t=this.rotation,d=this.matrix,g=this.element;l&&(a+=this.width,b+=this.height);a=["translate("+a+","+b+")"];w(d)&&a.push("matrix("+d.join(",")+")");l?a.push("rotate(90) scale(-1,1)"):t&&a.push("rotate("+t+" "+f(this.rotationOriginX,g.getAttribute("x"),0)+" "+f(this.rotationOriginY,g.getAttribute("y")||0)+")");(w(p)||
w(B))&&a.push("scale("+f(p,1)+" "+f(B,1)+")");a.length&&g.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,p,B){var l,d,g,z,c={};d=this.renderer;g=d.alignedObjects;var n,q;if(a){if(this.alignOptions=a,this.alignByTranslate=p,!B||t(B))this.alignTo=l=B||"renderer",b(g,this),g.push(this),B=null}else a=this.alignOptions,p=this.alignByTranslate,l=this.alignTo;B=f(B,d[l],d);l=a.align;d=a.verticalAlign;g=(B.x||0)+(a.x||
0);z=(B.y||0)+(a.y||0);"right"===l?n=1:"center"===l&&(n=2);n&&(g+=(B.width-(a.width||0))/n);c[p?"translateX":"x"]=Math.round(g);"bottom"===d?q=1:"middle"===d&&(q=2);q&&(z+=(B.height-(a.height||0))/q);c[p?"translateY":"y"]=Math.round(z);this[this.placed?"animate":"attr"](c);this.placed=!0;this.alignAttr=c;return this},getBBox:function(a,b){var p,B=this.renderer,l,d=this.element,t=this.styles,g,z=this.textStr,c,n=B.cache,H=B.cacheKeys,L=d.namespaceURI===this.SVG_NS,J;b=f(b,this.rotation);l=b*r;g=d&&
C.prototype.getStyle.call(d,"font-size");w(z)&&(J=z.toString(),-1===J.indexOf("\x3c")&&(J=J.replace(/[0-9]/g,"0")),J+=["",b||0,g,this.textWidth,t&&t.textOverflow].join());J&&!a&&(p=n[J]);if(!p){if(L||B.forExport){try{(c=this.fakeTS&&function(a){h(d.querySelectorAll(".highcharts-text-outline"),function(b){b.style.display=a})})&&c("none"),p=d.getBBox?q({},d.getBBox()):{width:d.offsetWidth,height:d.offsetHeight},c&&c("")}catch(ea){}if(!p||0>p.width)p={width:0,height:0}}else p=this.htmlGetBBox();B.isSVG&&
(a=p.width,B=p.height,L&&(p.height=B={"11px,17":14,"13px,20":16}[t&&t.fontSize+","+Math.round(B)]||B),b&&(p.width=Math.abs(B*Math.sin(l))+Math.abs(a*Math.cos(l)),p.height=Math.abs(B*Math.cos(l))+Math.abs(a*Math.sin(l))));if(J&&0<p.height){for(;250<H.length;)delete n[H.shift()];n[J]||H.push(J);n[J]=p}}return p},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||
150,complete:function(){b.attr({y:-9999})}})},add:function(a){var b=this.renderer,f=this.element,p;a&&(this.parentGroup=a);this.parentInverted=a&&a.inverted;void 0!==this.textStr&&b.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)p=this.zIndexSetter();p||(a?a.element:b.box).appendChild(f);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,f=a.element||{},p=a.renderer.isSVG&&"SPAN"===f.nodeName&&a.parentGroup,
B=f.ownerSVGElement,l=a.clipPath;f.onclick=f.onmouseout=f.onmouseover=f.onmousemove=f.point=null;N(a);l&&B&&(h(B.querySelectorAll("[clip-path],[CLIP-PATH]"),function(a){var b=a.getAttribute("clip-path"),f=l.element.id;(-1<b.indexOf("(#"+f+")")||-1<b.indexOf('("#'+f+'")'))&&a.removeAttribute("clip-path")}),a.clipPath=l.destroy());if(a.stops){for(B=0;B<a.stops.length;B++)a.stops[B]=a.stops[B].destroy();a.stops=null}for(a.safeRemoveChild(f);p&&p.div&&0===p.div.childNodes.length;)f=p.parentGroup,a.safeRemoveChild(p.div),
delete p.div,p=f;a.alignTo&&b(a.renderer.alignedObjects,a);H(a,function(b,f){delete a[f]});return null},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},_defaultGetter:function(a){a=f(this[a+"Value"],this[a],this.element?this.element.getAttribute(a):null,0);/^[\-0-9\.]+$/.test(a)&&(a=parseFloat(a));return a},dSetter:function(a,b,f){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[b]!==a&&(f.setAttribute(b,a),
this[b]=a)},alignSetter:function(a){this.alignValue=a;this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[a])},opacitySetter:function(a,b,f){this[b]=a;f.setAttribute(b,a)},titleSetter:function(a){var b=this.element.getElementsByTagName("title")[0];b||(b=k.createElementNS(this.SVG_NS,"title"),this.element.appendChild(b));b.firstChild&&b.removeChild(b.firstChild);b.appendChild(k.createTextNode(String(f(a),"").replace(/<[^>]*>/g,"").replace(/</g,"\x3c").replace(/>/g,
"\x3e")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,b,f){"string"===typeof a?f.setAttribute(b,a):a&&this.complexColor(a,b,f)},visibilitySetter:function(a,b,f){"inherit"===a?f.removeAttribute(b):this[b]!==a&&f.setAttribute(b,a);this[b]=a},zIndexSetter:function(a,b){var f=this.renderer,p=this.parentGroup,l=(p||f).element||f.box,d,t=this.element,g,z,f=l===f.box;d=this.added;var c;w(a)?(t.setAttribute("data-z-index",
a),a=+a,this[b]===a&&(d=!1)):w(this[b])&&t.removeAttribute("data-z-index");this[b]=a;if(d){(a=this.zIndex)&&p&&(p.handleZ=!0);b=l.childNodes;for(c=b.length-1;0<=c&&!g;c--)if(p=b[c],d=p.getAttribute("data-z-index"),z=!w(d),p!==t)if(0>a&&z&&!f&&!c)l.insertBefore(t,b[c]),g=!0;else if(B(d)<=a||z&&(!w(a)||0<=a))l.insertBefore(t,b[c+1]||null),g=!0;g||(l.insertBefore(t,b[f?3:0]||null),g=!0)}return g},_defaultSetter:function(a,b,f){f.setAttribute(b,a)}});C.prototype.yGetter=C.prototype.xGetter;C.prototype.translateXSetter=
C.prototype.translateYSetter=C.prototype.rotationSetter=C.prototype.verticalAlignSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.matrixSetter=function(a,b){this[b]=a;this.doTransform=!0};D=a.SVGRenderer=function(){this.init.apply(this,arguments)};q(D.prototype,{Element:C,SVG_NS:R,init:function(a,b,f,p,B,l){var d;p=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});d=p.element;a.appendChild(d);
m(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&m(d,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=d;this.boxWrapper=p;this.alignedObjects=[];this.url=(G||z)&&k.getElementsByTagName("base").length?O.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(k.createTextNode("Created with Highstock 6.2.0"));this.defs=this.createElement("defs").add();this.allowHTML=l;this.forExport=B;this.gradients={};
this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,f,!1);var t;G&&a.getBoundingClientRect&&(b=function(){y(a,{left:0,top:0});t=a.getBoundingClientRect();y(a,{left:Math.ceil(t.left)-t.left+"px",top:Math.ceil(t.top)-t.top+"px"})},b(),this.unSubPixelFix=F(O,"resize",b))},definition:function(a){function b(a,B){var l;h(p(a),function(a){var p=f.createElement(a.tagName),d={};H(a,function(a,b){"tagName"!==b&&"children"!==b&&"textContent"!==b&&(d[b]=a)});p.attr(d);p.add(B||f.defs);a.textContent&&
p.element.appendChild(k.createTextNode(a.textContent));b(a.children||[],p);l=p});return l}var f=this;return b(a)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();c(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:l,getRadialAttr:function(a,
b){return{cx:a[0]-a[2]/2+b.cx*a[2],cy:a[1]-a[2]/2+b.cy*a[2],r:b.r*a[2]}},truncate:function(a,b,f,p,B,l,d){var t=this,g=a.rotation,c,z=p?1:0,n=(f||p).length,q=n,H=[],h=function(a){b.firstChild&&b.removeChild(b.firstChild);a&&b.appendChild(k.createTextNode(a))},J=function(l,g){g=g||l;if(void 0===H[g])if(b.getSubStringLength)try{H[g]=B+b.getSubStringLength(0,p?g+1:g)}catch(fa){}else t.getSpanWidth&&(h(d(f||p,l)),H[g]=B+t.getSpanWidth(a,b));return H[g]},L,E;a.rotation=0;L=J(b.textContent.length);if(E=
B+L>l){for(;z<=n;)q=Math.ceil((z+n)/2),p&&(c=d(p,q)),L=J(q,c&&c.length-1),z===n?z=n+1:L>l?n=q-1:z=q;0===n?h(""):f&&n===f.length-1||h(c||d(f||p,q))}p&&p.splice(0,q);a.actualWidth=L;a.rotation=g;return E},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",'"':"\x26quot;"},buildText:function(a){var b=a.element,p=this,l=p.forExport,d=f(a.textStr,"").toString(),t=-1!==d.indexOf("\x3c"),g=b.childNodes,c,z=m(b,"x"),q=a.styles,J=a.textWidth,L=q&&q.lineHeight,N=q&&q.textOutline,A=
q&&"ellipsis"===q.textOverflow,I=q&&"nowrap"===q.whiteSpace,r=q&&q.fontSize,G,e,w=g.length,q=J&&!a.added&&this.box,v=function(a){return L?B(L):p.fontMetrics(void 0,a.getAttribute("style")?a:b).h},M=function(a,b){H(p.escapes,function(f,p){b&&-1!==E(f,b)||(a=a.toString().replace(new RegExp(f,"g"),p))});return a},x=function(a,b){var f;f=a.indexOf("\x3c");a=a.substring(f,a.indexOf("\x3e")-f);f=a.indexOf(b+"\x3d");if(-1!==f&&(f=f+b.length+1,b=a.charAt(f),'"'===b||"'"===b))return a=a.substring(f+1),a.substring(0,
a.indexOf(b))};G=[d,A,I,L,N,r,J].join();if(G!==a.textCache){for(a.textCache=G;w--;)b.removeChild(g[w]);t||N||A||J||-1!==d.indexOf(" ")?(q&&q.appendChild(b),d=t?d.replace(/<(b|strong)>/g,'\x3cspan class\x3d"highcharts-strong"\x3e').replace(/<(i|em)>/g,'\x3cspan class\x3d"highcharts-emphasized"\x3e').replace(/<a/g,"\x3cspan").replace(/<\/(b|strong|i|em|a)>/g,"\x3c/span\x3e").split(/<br.*?>/g):[d],d=n(d,function(a){return""!==a}),h(d,function(f,B){var d,t=0,g=0;f=f.replace(/^\s+|\s+$/g,"").replace(/<span/g,
"|||\x3cspan").replace(/<\/span>/g,"\x3c/span\x3e|||");d=f.split("|||");h(d,function(f){if(""!==f||1===d.length){var n={},q=k.createElementNS(p.SVG_NS,"tspan"),H,L;(H=x(f,"class"))&&m(q,"class",H);if(H=x(f,"style"))H=H.replace(/(;| |^)color([ :])/,"$1fill$2"),m(q,"style",H);(L=x(f,"href"))&&!l&&(m(q,"onclick",'location.href\x3d"'+L+'"'),m(q,"class","highcharts-anchor"));f=M(f.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==f){q.appendChild(k.createTextNode(f));t?n.dx=0:B&&null!==z&&(n.x=z);m(q,
n);b.appendChild(q);!t&&e&&(!W&&l&&y(q,{display:"block"}),m(q,"dy",v(q)));if(J){var h=f.replace(/([^\^])-/g,"$1- ").split(" "),n=!I&&(1<d.length||B||1<h.length);L=0;var E=v(q);if(A)c=p.truncate(a,q,f,void 0,0,Math.max(0,J-parseInt(r||12,10)),function(a,b){return a.substring(0,b)+"\u2026"});else if(n)for(;h.length;)h.length&&!I&&0<L&&(q=k.createElementNS(R,"tspan"),m(q,{dy:E,x:z}),H&&m(q,"style",H),q.appendChild(k.createTextNode(h.join(" ").replace(/- /g,"-"))),b.appendChild(q)),p.truncate(a,q,null,
h,0===L?g:0,J,function(a,b){return h.slice(0,b).join(" ").replace(/- /g,"-")}),g=a.actualWidth,L++}t++}}});e=e||b.childNodes.length}),A&&c&&a.attr("title",M(a.textStr,["\x26lt;","\x26gt;"])),q&&q.removeChild(b),N&&a.applyTextOutline&&a.applyTextOutline(N)):b.appendChild(k.createTextNode(M(d)))}},getContrast:function(a){a=x(a).rgba;a[0]*=1;a[1]*=1.2;a[2]*=.5;return 459<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,b,f,p,B,l,d,t,g){var z=this.label(a,b,f,g,null,null,null,null,"button"),c=0;
z.attr(J({padding:8,r:2},B));F(z.element,I?"mouseover":"mouseenter",function(){3!==c&&z.setState(1)});F(z.element,I?"mouseout":"mouseleave",function(){3!==c&&z.setState(c)});z.setState=function(a){1!==a&&(z.state=c=a);z.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][a||0])};return z.on("click",function(a){3!==c&&p.call(z,a)})},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-b%2/2);a[2]===a[5]&&
(a[2]=a[5]=Math.round(a[2])+b%2/2);return a},path:function(a){var b={};g(a)?b.d=a:A(a)&&q(b,a);return this.createElement("path").attr(b)},circle:function(a,b,f){a=A(a)?a:{x:a,y:b,r:f};b=this.createElement("circle");b.xSetter=b.ySetter=function(a,b,f){f.setAttribute("c"+b,a)};return b.attr(a)},arc:function(a,b,f,p,B,l){A(a)?(p=a,b=p.y,f=p.r,a=p.x):p={innerR:p,start:B,end:l};a=this.symbol("arc",a,b,f,f,p);a.r=f;return a},rect:function(a,b,f,p,B,l){B=A(a)?a.r:B;l=this.createElement("rect");a=A(a)?a:
void 0===a?{}:{x:a,y:b,width:Math.max(f,0),height:Math.max(p,0)};B&&(a.r=B);l.rSetter=function(a,b,f){m(f,{rx:a,ry:a})};return l.attr(a)},setSize:function(a,b,p){var B=this.alignedObjects,l=B.length;this.width=a;this.height=b;for(this.boxWrapper.animate({width:a,height:b},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:f(p,!0)?void 0:0});l--;)B[l].align()},g:function(a){var b=this.createElement("g");return a?b.attr({"class":"highcharts-"+a}):b},image:function(a,
b,f,p,B,l){var d={preserveAspectRatio:"none"},t,g=function(a,b){a.setAttributeNS?a.setAttributeNS("http://www.w3.org/1999/xlink","href",b):a.setAttribute("hc-svg-href",b)},z=function(b){g(t.element,a);l.call(t,b)};1<arguments.length&&q(d,{x:b,y:f,width:p,height:B});t=this.createElement("image").attr(d);l?(g(t.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw\x3d\x3d"),d=new O.Image,F(d,"load",z),d.src=a,d.complete&&z({})):g(t.element,a);return t},symbol:function(a,
b,p,B,l,d){var t=this,g,z=/^url\((.*?)\)$/,c=z.test(a),n=!c&&(this.symbols[a]?a:"circle"),H=n&&this.symbols[n],L=w(b)&&H&&H.call(this.symbols,Math.round(b),Math.round(p),B,l,d),J,E;H?(g=this.path(L),q(g,{symbolName:n,x:b,y:p,width:B,height:l}),d&&q(g,d)):c&&(J=a.match(z)[1],g=this.image(J),g.imgwidth=f(P[J]&&P[J].width,d&&d.width),g.imgheight=f(P[J]&&P[J].height,d&&d.height),E=function(){g.attr({width:g.width,height:g.height})},h(["width","height"],function(a){g[a+"Setter"]=function(a,b){var f={},
p=this["img"+b],B="width"===b?"translateX":"translateY";this[b]=a;w(p)&&(this.element&&this.element.setAttribute(b,p),this.alignByTranslate||(f[B]=((this[b]||0)-p)/2,this.attr(f)))}}),w(b)&&g.attr({x:b,y:p}),g.isImg=!0,w(g.imgwidth)&&w(g.imgheight)?E():(g.attr({width:0,height:0}),v("img",{onload:function(){var a=e[t.chartIndex];0===this.width&&(y(this,{position:"absolute",top:"-999em"}),k.body.appendChild(this));P[J]={width:this.width,height:this.height};g.imgwidth=this.width;g.imgheight=this.height;
g.element&&E();this.parentNode&&this.parentNode.removeChild(this);t.imgCount--;if(!t.imgCount&&a&&a.onload)a.onload()},src:J}),this.imgCount++));return g},symbols:{circle:function(a,b,f,p){return this.arc(a+f/2,b+p/2,f/2,p/2,{start:0,end:2*Math.PI,open:!1})},square:function(a,b,f,p){return["M",a,b,"L",a+f,b,a+f,b+p,a,b+p,"Z"]},triangle:function(a,b,f,p){return["M",a+f/2,b,"L",a+f,b+p,a,b+p,"Z"]},"triangle-down":function(a,b,f,p){return["M",a,b,"L",a+f,b,a+f/2,b+p,"Z"]},diamond:function(a,b,f,p){return["M",
a+f/2,b,"L",a+f,b+p/2,a+f/2,b+p,a,b+p/2,"Z"]},arc:function(a,b,p,B,l){var d=l.start,t=l.r||p,g=l.r||B||p,z=l.end-.001;p=l.innerR;B=f(l.open,.001>Math.abs(l.end-l.start-2*Math.PI));var c=Math.cos(d),q=Math.sin(d),n=Math.cos(z),z=Math.sin(z);l=.001>l.end-d-Math.PI?0:1;t=["M",a+t*c,b+g*q,"A",t,g,0,l,1,a+t*n,b+g*z];w(p)&&t.push(B?"M":"L",a+p*n,b+p*z,"A",p,p,0,l,0,a+p*c,b+p*q);t.push(B?"":"Z");return t},callout:function(a,b,f,p,B){var l=Math.min(B&&B.r||0,f,p),d=l+6,t=B&&B.anchorX;B=B&&B.anchorY;var g;
g=["M",a+l,b,"L",a+f-l,b,"C",a+f,b,a+f,b,a+f,b+l,"L",a+f,b+p-l,"C",a+f,b+p,a+f,b+p,a+f-l,b+p,"L",a+l,b+p,"C",a,b+p,a,b+p,a,b+p-l,"L",a,b+l,"C",a,b,a,b,a+l,b];t&&t>f?B>b+d&&B<b+p-d?g.splice(13,3,"L",a+f,B-6,a+f+6,B,a+f,B+6,a+f,b+p-l):g.splice(13,3,"L",a+f,p/2,t,B,a+f,p/2,a+f,b+p-l):t&&0>t?B>b+d&&B<b+p-d?g.splice(33,3,"L",a,B+6,a-6,B,a,B-6,a,b+l):g.splice(33,3,"L",a,p/2,t,B,a,p/2,a,b+l):B&&B>p&&t>a+d&&t<a+f-d?g.splice(23,3,"L",t+6,b+p,t,b+p+6,t-6,b+p,a+l,b+p):B&&0>B&&t>a+d&&t<a+f-d&&g.splice(3,3,"L",
t-6,b,t,b-6,t+6,b,f-l,b);return g}},clipRect:function(b,f,p,B){var l=a.uniqueKey(),d=this.createElement("clipPath").attr({id:l}).add(this.defs);b=this.rect(b,f,p,B,0).add(d);b.id=l;b.clipPath=d;b.count=0;return b},text:function(a,b,f,p){var B={};if(p&&(this.allowHTML||!this.forExport))return this.html(a,b,f);B.x=Math.round(b||0);f&&(B.y=Math.round(f));w(a)&&(B.text=a);a=this.createElement("text").attr(B);p||(a.xSetter=function(a,b,f){var p=f.getElementsByTagName("tspan"),B,l=f.getAttribute(b),d;for(d=
0;d<p.length;d++)B=p[d],B.getAttribute(b)===l&&B.setAttribute(b,a);f.setAttribute(b,a)});return a},fontMetrics:function(a,b){a=b&&C.prototype.getStyle.call(b,"font-size");a=/px/.test(a)?B(a):/em/.test(a)?parseFloat(a)*(b?this.fontMetrics(null,b.parentNode).f:16):12;b=24>a?a+3:Math.round(1.2*a);return{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,b,f){var p=a;b&&f&&(p=Math.max(p*Math.cos(b*r),4));return{x:-a/3*Math.sin(b*r),y:p}},label:function(b,f,p,B,l,d,t,g,z){var c=this,n=c.g("button"!==z&&"label"),
H=n.text=c.text("",0,0,t).attr({zIndex:1}),E,k,N=0,A=3,I=0,r,G,e,W,R,m={},v,y=/^url\((.*?)\)$/.test(B),x=y,u,P,O,M;z&&n.addClass("highcharts-"+z);x=!0;u=function(){return E.strokeWidth()%2/2};P=function(){var a=H.element.style,b={};k=(void 0===r||void 0===G||R)&&w(H.textStr)&&H.getBBox();n.width=(r||k.width||0)+2*A+I;n.height=(G||k.height||0)+2*A;v=A+c.fontMetrics(a&&a.fontSize,H).b;x&&(E||(n.box=E=c.symbols[B]||y?c.symbol(B):c.rect(),E.addClass(("button"===z?"":"highcharts-label-box")+(z?" highcharts-"+
z+"-box":"")),E.add(n),a=u(),b.x=a,b.y=(g?-v:0)+a),b.width=Math.round(n.width),b.height=Math.round(n.height),E.attr(q(b,m)),m={})};O=function(){var a=I+A,b;b=g?0:v;w(r)&&k&&("center"===R||"right"===R)&&(a+={center:.5,right:1}[R]*(r-k.width));if(a!==H.x||b!==H.y)H.attr("x",a),H.hasBoxWidthChanged&&(k=H.getBBox(!0),P()),void 0!==b&&H.attr("y",b);H.x=a;H.y=b};M=function(a,b){E?E.attr(a,b):m[a]=b};n.onAdd=function(){H.add(n);n.attr({text:b||0===b?b:"",x:f,y:p});E&&w(l)&&n.attr({anchorX:l,anchorY:d})};
n.widthSetter=function(b){r=a.isNumber(b)?b:null};n.heightSetter=function(a){G=a};n["text-alignSetter"]=function(a){R=a};n.paddingSetter=function(a){w(a)&&a!==A&&(A=n.padding=a,O())};n.paddingLeftSetter=function(a){w(a)&&a!==I&&(I=a,O())};n.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==N&&(N=a,k&&n.attr({x:e}))};n.textSetter=function(a){void 0!==a&&H.textSetter(a);P();O()};n["stroke-widthSetter"]=function(a,b){a&&(x=!0);this["stroke-width"]=a;M(b,a)};n.rSetter=function(a,b){M(b,a)};
n.anchorXSetter=function(a,b){l=n.anchorX=a;M(b,Math.round(a)-u()-e)};n.anchorYSetter=function(a,b){d=n.anchorY=a;M(b,a-W)};n.xSetter=function(a){n.x=a;N&&(a-=N*((r||k.width)+2*A),n["forceAnimate:x"]=!0);e=Math.round(a);n.attr("translateX",e)};n.ySetter=function(a){W=n.y=Math.round(a);n.attr("translateY",W)};var D=n.css;return q(n,{css:function(a){if(a){var b={};a=J(a);h(n.textProps,function(f){void 0!==a[f]&&(b[f]=a[f],delete a[f])});H.css(b);"width"in b&&P()}return D.call(n,a)},getBBox:function(){return{width:k.width+
2*A,height:k.height+2*A,x:k.x-A,y:k.y-A}},destroy:function(){L(n.element,"mouseenter");L(n.element,"mouseleave");H&&(H=H.destroy());E&&(E=E.destroy());C.prototype.destroy.call(n);n=c=P=O=M=null}})}});a.Renderer=D})(K);(function(a){var C=a.attr,D=a.createElement,F=a.css,u=a.defined,m=a.each,e=a.extend,x=a.isFirefox,y=a.isMS,v=a.isWebKit,w=a.pick,r=a.pInt,c=a.SVGRenderer,k=a.win,h=a.wrap;e(a.SVGElement.prototype,{htmlCss:function(a){var b="SPAN"===this.element.tagName&&a&&"width"in a,n=w(b&&a.width,
void 0);b&&(delete a.width,this.textWidth=n,this.htmlUpdateTransform());a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=e(this.styles,a);F(this.element,a);return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,n=this.x||0,d=this.y||0,c=this.textAlign||"left",g={left:0,center:.5,right:1}[c],h=this.styles,
k=h&&h.whiteSpace;F(b,{marginLeft:this.translateX||0,marginTop:this.translateY||0});this.inverted&&m(b.childNodes,function(d){a.invertChild(d,b)});if("SPAN"===b.tagName){var h=this.rotation,A=this.textWidth&&r(this.textWidth),t=[h,c,b.innerHTML,this.textWidth,this.textAlign].join(),z;(z=A!==this.oldTextWidth)&&!(z=A>this.oldTextWidth)&&((z=this.textPxLength)||(F(b,{width:"",whiteSpace:k||"nowrap"}),z=b.offsetWidth),z=z>A);z&&/[ \-]/.test(b.textContent||b.innerText)?(F(b,{width:A+"px",display:"block",
whiteSpace:k||"normal"}),this.oldTextWidth=A,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;t!==this.cTT&&(k=a.fontMetrics(b.style.fontSize).b,!u(h)||h===(this.oldRotation||0)&&c===this.oldAlign||this.setSpanRotation(h,g,k),this.getSpanCorrection(!u(h)&&this.textPxLength||b.offsetWidth,k,g,h,c));F(b,{left:n+(this.xCorr||0)+"px",top:d+(this.yCorr||0)+"px"});this.cTT=t;this.oldRotation=h;this.oldAlign=c}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,n){var d={},c=this.renderer.getTransformKey();
d[c]=d.transform="rotate("+a+"deg)";d[c+(x?"Origin":"-origin")]=d.transformOrigin=100*b+"% "+n+"px";F(this.element,d)},getSpanCorrection:function(a,b,c){this.xCorr=-a*c;this.yCorr=-b}});e(c.prototype,{getTransformKey:function(){return y&&!/Edge/.test(k.navigator.userAgent)?"-ms-transform":v?"-webkit-transform":x?"MozTransform":k.opera?"-o-transform":""},html:function(a,b,c){var d=this.createElement("span"),n=d.element,g=d.renderer,q=g.isSVG,k=function(a,b){m(["opacity","visibility"],function(d){h(a,
d+"Setter",function(a,l,d,f){a.call(this,l,d,f);b[d]=l})});a.addedSetters=!0};d.textSetter=function(a){a!==n.innerHTML&&delete this.bBox;this.textStr=a;n.innerHTML=w(a,"");d.doTransform=!0};q&&k(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,b){"align"===b&&(b="textAlign");d[b]=a;d.doTransform=!0};d.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};d.attr({text:a,x:Math.round(b),y:Math.round(c)}).css({position:"absolute"});
n.style.whiteSpace="nowrap";d.css=d.htmlCss;q&&(d.add=function(a){var b,c=g.box.parentNode,q=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)q.push(a),a=a.parentGroup;m(q.reverse(),function(a){function l(b,p){a[p]=b;"translateX"===p?f.left=b+"px":f.top=b+"px";a.doTransform=!0}var f,B=C(a.element,"class");B&&(B={className:B});b=a.div=a.div||D("div",B,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},
b||c);f=b.style;e(a,{classSetter:function(a){return function(b){this.element.setAttribute("class",b);a.className=b}}(b),on:function(){q[0].div&&d.on.apply({element:q[0].div},arguments);return a},translateXSetter:l,translateYSetter:l});a.addedSetters||k(a,f)})}}else b=c;b.appendChild(n);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(K);(function(a){var C=a.defined,D=a.each,F=a.extend,u=a.merge,m=a.pick,e=a.timeUnits,x=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype=
{defaultOptions:{},update:function(a){var e=m(a&&a.useUTC,!0),w=this;this.options=a=u(!0,this.options||{},a);this.Date=a.Date||x.Date;this.timezoneOffset=(this.useUTC=e)&&a.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();(this.variableTimezone=!(e&&!a.getTimezoneOffset&&!a.timezone))||this.timezoneOffset?(this.get=function(a,c){var k=c.getTime(),h=k-w.getTimezoneOffset(c);c.setTime(h);a=c["getUTC"+a]();c.setTime(k);return a},this.set=function(a,c,k){var h;if("Milliseconds"===a||
"Seconds"===a||"Minutes"===a&&0===c.getTimezoneOffset()%60)c["set"+a](k);else h=w.getTimezoneOffset(c),h=c.getTime()-h,c.setTime(h),c["setUTC"+a](k),a=w.getTimezoneOffset(c),h=c.getTime()+a,c.setTime(h)}):e?(this.get=function(a,c){return c["getUTC"+a]()},this.set=function(a,c,k){return c["setUTC"+a](k)}):(this.get=function(a,c){return c["get"+a]()},this.set=function(a,c,k){return c["set"+a](k)})},makeTime:function(e,v,w,r,c,k){var h,q,b;this.useUTC?(h=this.Date.UTC.apply(0,arguments),q=this.getTimezoneOffset(h),
h+=q,b=this.getTimezoneOffset(h),q!==b?h+=b-q:q-36E5!==this.getTimezoneOffset(h-36E5)||a.isSafari||(h-=36E5)):h=(new this.Date(e,v,m(w,1),m(r,0),m(c,0),m(k,0))).getTime();return h},timezoneOffsetFunction:function(){var e=this,m=this.options,w=x.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(m.timezone){if(w)return function(a){return 6E4*-w.tz(a,m.timezone).utcOffset()};a.error(25)}return this.useUTC&&m.getTimezoneOffset?function(a){return 6E4*m.getTimezoneOffset(a)}:
function(){return 6E4*(e.timezoneOffset||0)}},dateFormat:function(e,m,w){if(!a.defined(m)||isNaN(m))return a.defaultOptions.lang.invalidDate||"";e=a.pick(e,"%Y-%m-%d %H:%M:%S");var r=this,c=new this.Date(m),k=this.get("Hours",c),h=this.get("Day",c),q=this.get("Date",c),b=this.get("Month",c),n=this.get("FullYear",c),d=a.defaultOptions.lang,E=d.weekdays,g=d.shortWeekdays,G=a.pad,c=a.extend({a:g?g[h]:E[h].substr(0,3),A:E[h],d:G(q),e:G(q,2," "),w:h,b:d.shortMonths[b],B:d.months[b],m:G(b+1),o:b+1,y:n.toString().substr(2,
2),Y:n,H:G(k),k:k,I:G(k%12||12),l:k%12||12,M:G(r.get("Minutes",c)),p:12>k?"AM":"PM",P:12>k?"am":"pm",S:G(c.getSeconds()),L:G(Math.floor(m%1E3),3)},a.dateFormats);a.objectEach(c,function(a,b){for(;-1!==e.indexOf("%"+b);)e=e.replace("%"+b,"function"===typeof a?a.call(r,m):a)});return w?e.substr(0,1).toUpperCase()+e.substr(1):e},resolveDTLFormat:function(e){return a.isObject(e,!0)?e:(e=a.splat(e),{main:e[0],from:e[1],to:e[2]})},getTimeTicks:function(a,v,w,r){var c=this,k=[],h,q={},b;h=new c.Date(v);
var n=a.unitRange,d=a.count||1,E;r=m(r,1);if(C(v)){c.set("Milliseconds",h,n>=e.second?0:d*Math.floor(c.get("Milliseconds",h)/d));n>=e.second&&c.set("Seconds",h,n>=e.minute?0:d*Math.floor(c.get("Seconds",h)/d));n>=e.minute&&c.set("Minutes",h,n>=e.hour?0:d*Math.floor(c.get("Minutes",h)/d));n>=e.hour&&c.set("Hours",h,n>=e.day?0:d*Math.floor(c.get("Hours",h)/d));n>=e.day&&c.set("Date",h,n>=e.month?1:d*Math.floor(c.get("Date",h)/d));n>=e.month&&(c.set("Month",h,n>=e.year?0:d*Math.floor(c.get("Month",h)/
d)),b=c.get("FullYear",h));n>=e.year&&c.set("FullYear",h,b-b%d);n===e.week&&(b=c.get("Day",h),c.set("Date",h,c.get("Date",h)-b+r+(b<r?-7:0)));b=c.get("FullYear",h);r=c.get("Month",h);var g=c.get("Date",h),G=c.get("Hours",h);v=h.getTime();c.variableTimezone&&(E=w-v>4*e.month||c.getTimezoneOffset(v)!==c.getTimezoneOffset(w));v=h.getTime();for(h=1;v<w;)k.push(v),v=n===e.year?c.makeTime(b+h*d,0):n===e.month?c.makeTime(b,r+h*d):!E||n!==e.day&&n!==e.week?E&&n===e.hour&&1<d?c.makeTime(b,r,g,G+h*d):v+n*d:
c.makeTime(b,r,g+h*d*(n===e.day?1:7)),h++;k.push(v);n<=e.hour&&1E4>k.length&&D(k,function(a){0===a%18E5&&"000000000"===c.dateFormat("%H%M%S%L",a)&&(q[a]="day")})}k.info=F(a,{higherRanks:q,totalRange:n*d});return k}}})(K);(function(a){var C=a.merge;a.defaultOptions={symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions,chart:{borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null},title:{text:"Chart title",align:"center",margin:15,
widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{}},loading:{},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,
dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,headerFormat:'\x3cspan class\x3d"highcharts-header"\x3e{point.key}\x3c/span\x3e\x3cbr/\x3e',pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cspan class\x3d"highcharts-strong"\x3e{point.y}\x3c/span\x3e\x3cbr/\x3e'},
credits:{enabled:!0,href:"https://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},text:"Highcharts.com"}};a.setOptions=function(D){a.defaultOptions=C(!0,a.defaultOptions,D);a.time.update(C(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};