1234567 |
- !function(t,e){"object"==typeof module&&module.exports?module.exports=t.document?e(t):e:t.Highcharts=e(t)}("undefined"!=typeof window?window:this,function(t){t=function(){var t=window,e=t.document,i=t.navigator&&t.navigator.userAgent||"",s=e&&e.createElementNS&&!!e.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,n=/(edge|msie|trident)/i.test(i)&&!window.opera,o=!s,r=/Firefox/.test(i),a=r&&4>parseInt(i.split("Firefox/")[1],10);return t.Highcharts?t.Highcharts.error(16,!0):{product:"Highcharts",version:"5.0.14",deg2rad:2*Math.PI/360,doc:e,hasBidiBug:a,hasTouch:e&&void 0!==e.documentElement.ontouchstart,isMS:n,isWebKit:/AppleWebKit/.test(i),isFirefox:r,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(i),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:s,vml:o,win:t,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}(),function(t){var e=[],i=t.charts,s=t.doc,n=t.win;t.error=function(e,i){if(e=t.isNumber(e)?"Highcharts error #"+e+": www.highcharts.com/errors/"+e:e,i)throw Error(e);n.console&&void 0},t.Fx=function(t,e,i){this.options=e,this.elem=t,this.prop=i},t.Fx.prototype={dSetter:function(){var t,e=this.paths[0],i=this.paths[1],s=[],n=this.now,o=e.length;if(1===n)s=this.toD;else if(o===i.length&&1>n)for(;o--;)t=parseFloat(e[o]),s[o]=isNaN(t)?e[o]:n*parseFloat(i[o]-t)+t;else s=i;this.elem.attr("d",s,null,!0)},update:function(){var t=this.elem,e=this.prop,i=this.now,s=this.options.step;this[e+"Setter"]?this[e+"Setter"]():t.attr?t.element&&t.attr(e,i,null,!0):t.style[e]=i+this.unit,s&&s.call(t,i,this)},run:function(t,i,s){var n,o=this,r=function(t){return!r.stopped&&o.step(t)};this.startTime=+new Date,this.start=t,this.end=i,this.unit=s,this.now=this.start,this.pos=0,r.elem=this.elem,r.prop=this.prop,r()&&1===e.push(r)&&(r.timerId=setInterval(function(){for(n=0;n<e.length;n++)e[n]()||e.splice(n--,1);e.length||clearInterval(r.timerId)},13))},step:function(e){var i,s=+new Date,n=this.options,o=this.elem,r=n.complete,a=n.duration,h=n.curAnim;return o.attr&&!o.element?e=!1:e||s>=a+this.startTime?(this.now=this.end,this.pos=1,this.update(),i=h[this.prop]=!0,t.objectEach(h,function(t){!0!==t&&(i=!1)}),i&&r&&r.call(o),e=!1):(this.pos=n.easing((s-this.startTime)/a),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e},initPath:function(e,i,s){function n(t){var e,i;for(c=t.length;c--;)e="M"===t[c]||"L"===t[c],i=/[a-zA-Z]/.test(t[c+3]),e&&i&&t.splice(c+1,0,t[c+1],t[c+2],t[c+1],t[c+2])}function o(t,e){for(;t.length<h;){t[0]=e[h-t.length];var i=t.slice(0,f);[].splice.apply(t,[0,0].concat(i)),m&&(i=t.slice(t.length-f),[].splice.apply(t,[t.length,0].concat(i)),c--)}t[0]="M"}function r(t,e){for(var i=(h-t.length)/f;0<i&&i--;)l=t.slice().splice(t.length/v-f,f*v),l[0]=e[h-f-i*f],u&&(l[f-6]=l[f-2],l[f-5]=l[f-1]),[].splice.apply(t,[t.length/v,0].concat(l)),m&&i--}i=i||"";var a,h,l,c,d=e.startX,p=e.endX,u=-1<i.indexOf("C"),f=u?7:3;i=i.split(" "),s=s.slice();var g,m=e.isArea,v=m?2:1;if(u&&(n(i),n(s)),d&&p){for(c=0;c<d.length;c++){if(d[c]===p[0]){a=c;break}if(d[0]===p[p.length-d.length+c]){a=c,g=!0;break}}void 0===a&&(i=[])}return i.length&&t.isNumber(a)&&(h=s.length+a*v*f,g?(o(i,s),r(s,i)):(o(s,i),r(i,s))),[i,s]}},t.Fx.prototype.fillSetter=t.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,t.color(this.start).tweenTo(t.color(this.end),this.pos),null,!0)},t.extend=function(t,e){var i;t||(t={});for(i in e)t[i]=e[i];return t},t.merge=function(){var e,i,s=arguments,n={},o=function(e,i){return"object"!=typeof e&&(e={}),t.objectEach(i,function(s,n){!t.isObject(s,!0)||t.isClass(s)||t.isDOMElement(s)?e[n]=i[n]:e[n]=o(e[n]||{},s)}),e};for(!0===s[0]&&(n=s[1],s=Array.prototype.slice.call(s,2)),i=s.length,e=0;e<i;e++)n=o(n,s[e]);return n},t.pInt=function(t,e){return parseInt(t,e||10)},t.isString=function(t){return"string"==typeof t},t.isArray=function(t){return t=Object.prototype.toString.call(t),"[object Array]"===t||"[object Array Iterator]"===t},t.isObject=function(e,i){return!(!e||"object"!=typeof e||i&&t.isArray(e))},t.isDOMElement=function(e){return t.isObject(e)&&"number"==typeof e.nodeType},t.isClass=function(e){var i=e&&e.constructor;return!(!t.isObject(e,!0)||t.isDOMElement(e)||!i||!i.name||"Object"===i.name)},t.isNumber=function(t){return"number"==typeof t&&!isNaN(t)},t.erase=function(t,e){for(var i=t.length;i--;)if(t[i]===e){t.splice(i,1);break}},t.defined=function(t){return void 0!==t&&null!==t},t.attr=function(e,i,s){var n;return t.isString(i)?t.defined(s)?e.setAttribute(i,s):e&&e.getAttribute&&(n=e.getAttribute(i)):t.defined(i)&&t.isObject(i)&&t.objectEach(i,function(t,i){e.setAttribute(i,t)}),n},t.splat=function(e){return t.isArray(e)?e:[e]},t.syncTimeout=function(t,e,i){return e?setTimeout(t,e,i):void t.call(0,i)},t.pick=function(){var t,e,i=arguments,s=i.length;for(t=0;t<s;t++)if(e=i[t],void 0!==e&&null!==e)return e},t.css=function(e,i){t.isMS&&!t.svg&&i&&void 0!==i.opacity&&(i.filter="alpha(opacity="+100*i.opacity+")"),t.extend(e.style,i)},t.createElement=function(e,i,n,o,r){e=s.createElement(e);var a=t.css;return i&&t.extend(e,i),r&&a(e,{padding:0,border:"none",margin:0}),n&&a(e,n),o&&o.appendChild(e),e},t.extendClass=function(e,i){var s=function(){};return s.prototype=new e,t.extend(s.prototype,i),s},t.pad=function(t,e,i){return Array((e||2)+1-String(t).length).join(i||0)+t},t.relativeLength=function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},t.wrap=function(t,e,i){var s=t[e];t[e]=function(){var t=Array.prototype.slice.call(arguments),e=arguments,n=this;return n.proceed=function(){s.apply(n,arguments.length?arguments:e)},t.unshift(s),t=i.apply(this,t),n.proceed=null,t}},t.getTZOffset=function(e){var i=t.Date;return 6e4*(i.hcGetTimezoneOffset&&i.hcGetTimezoneOffset(e)||i.hcTimezoneOffset||0)},t.dateFormat=function(e,i,s){if(!t.defined(i)||isNaN(i))return t.defaultOptions.lang.invalidDate||"";e=t.pick(e,"%Y-%m-%d %H:%M:%S");var n=t.Date,o=new n(i-t.getTZOffset(i)),r=o[n.hcGetHours](),a=o[n.hcGetDay](),h=o[n.hcGetDate](),l=o[n.hcGetMonth](),c=o[n.hcGetFullYear](),d=t.defaultOptions.lang,p=d.weekdays,u=d.shortWeekdays,f=t.pad,n=t.extend({a:u?u[a]:p[a].substr(0,3),A:p[a],d:f(h),e:f(h,2," "),w:a,b:d.shortMonths[l],B:d.months[l],m:f(l+1),y:c.toString().substr(2,2),Y:c,H:f(r),k:r,I:f(r%12||12),l:r%12||12,M:f(o[n.hcGetMinutes]()),p:12>r?"AM":"PM",P:12>r?"am":"pm",S:f(o.getSeconds()),L:f(Math.round(i%1e3),3)},t.dateFormats);return t.objectEach(n,function(t,s){for(;-1!==e.indexOf("%"+s);)e=e.replace("%"+s,"function"==typeof t?t(i):t)}),s?e.substr(0,1).toUpperCase()+e.substr(1):e},t.formatSingle=function(e,i){var s=/\.([0-9])/,n=t.defaultOptions.lang;return/f$/.test(e)?(s=(s=e.match(s))?s[1]:-1,null!==i&&(i=t.numberFormat(i,s,n.decimalPoint,-1<e.indexOf(",")?n.thousandsSep:""))):i=t.dateFormat(e,i),i},t.format=function(e,i){for(var s,n,o,r,a,h="{",l=!1,c=[];e&&(h=e.indexOf(h),-1!==h);){if(s=e.slice(0,h),l){for(s=s.split(":"),n=s.shift().split("."),r=n.length,a=i,o=0;o<r;o++)a=a[n[o]];s.length&&(a=t.formatSingle(s.join(":"),a)),c.push(a)}else c.push(s);e=e.slice(h+1),h=(l=!l)?"}":"{"}return c.push(e),c.join("")},t.getMagnitude=function(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))},t.normalizeTickInterval=function(e,i,s,n,o){var r,a=e;for(s=t.pick(s,1),r=e/s,i||(i=o?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===n&&(1===s?i=t.grep(i,function(t){return 0===t%1}):.1>=s&&(i=[1/s]))),n=0;n<i.length&&(a=i[n],!(o&&a*s>=e||!o&&r<=(i[n]+(i[n+1]||i[n]))/2));n++);return a=t.correctFloat(a*s,-Math.round(Math.log(.001)/Math.LN10))},t.stableSort=function(t,e){var i,s,n=t.length;for(s=0;s<n;s++)t[s].safeI=s;for(t.sort(function(t,s){return i=e(t,s),0===i?t.safeI-s.safeI:i}),s=0;s<n;s++)delete t[s].safeI},t.arrayMin=function(t){for(var e=t.length,i=t[0];e--;)t[e]<i&&(i=t[e]);return i},t.arrayMax=function(t){for(var e=t.length,i=t[0];e--;)t[e]>i&&(i=t[e]);return i},t.destroyObjectProperties=function(e,i){t.objectEach(e,function(t,s){t&&t!==i&&t.destroy&&t.destroy(),delete e[s]})},t.discardElement=function(e){var i=t.garbageBin;i||(i=t.createElement("div")),e&&i.appendChild(e),i.innerHTML=""},t.correctFloat=function(t,e){return parseFloat(t.toPrecision(e||14))},t.setAnimation=function(e,i){i.renderer.globalAnimation=t.pick(e,i.options.chart.animation,!0)},t.animObject=function(e){return t.isObject(e)?t.merge(e):{duration:e?500:0}},t.timeUnits={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},t.numberFormat=function(e,i,s,n){e=+e||0,i=+i;var o,r,a=t.defaultOptions.lang,h=(e.toString().split(".")[1]||"").split("e")[0].length,l=e.toString().split("e");return-1===i?i=Math.min(h,20):t.isNumber(i)||(i=2),r=(Math.abs(l[1]?l[0]:e)+Math.pow(10,-Math.max(i,h)-1)).toFixed(i),h=String(t.pInt(r)),o=3<h.length?h.length%3:0,s=t.pick(s,a.decimalPoint),n=t.pick(n,a.thousandsSep),e=(0>e?"-":"")+(o?h.substr(0,o)+n:""),e+=h.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+n),i&&(e+=s+r.slice(-i)),l[1]&&(e+="e"+l[1]),e},Math.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},t.getStyle=function(e,i,s){return"width"===i?Math.min(e.offsetWidth,e.scrollWidth)-t.getStyle(e,"padding-left")-t.getStyle(e,"padding-right"):"height"===i?Math.min(e.offsetHeight,e.scrollHeight)-t.getStyle(e,"padding-top")-t.getStyle(e,"padding-bottom"):((e=n.getComputedStyle(e,void 0))&&(e=e.getPropertyValue(i),t.pick(s,!0)&&(e=t.pInt(e))),e)},t.inArray=function(t,e){return e.indexOf?e.indexOf(t):[].indexOf.call(e,t)},t.grep=function(t,e){return[].filter.call(t,e)},t.find=function(t,e){return[].find.call(t,e)},t.map=function(t,e){for(var i=[],s=0,n=t.length;s<n;s++)i[s]=e.call(t[s],t[s],s,t);return i},t.offset=function(t){var e=s.documentElement;return t=t.getBoundingClientRect(),{top:t.top+(n.pageYOffset||e.scrollTop)-(e.clientTop||0),left:t.left+(n.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}},t.stop=function(t,i){for(var s=e.length;s--;)e[s].elem!==t||i&&i!==e[s].prop||(e[s].stopped=!0)},t.each=function(t,e,i){return Array.prototype.forEach.call(t,e,i)},t.objectEach=function(t,e,i){for(var s in t)t.hasOwnProperty(s)&&e.call(i,t[s],s,t)},t.addEvent=function(e,i,s){function o(t){t.target=t.srcElement||n,s.call(e,t)}var r=e.hcEvents=e.hcEvents||{};return e.addEventListener?e.addEventListener(i,s,!1):e.attachEvent&&(e.hcEventsIE||(e.hcEventsIE={}),s.hcGetKey||(s.hcGetKey=t.uniqueKey()),e.hcEventsIE[s.hcGetKey]=o,e.attachEvent("on"+i,o)),r[i]||(r[i]=[]),r[i].push(s),function(){t.removeEvent(e,i,s)}},t.removeEvent=function(e,i,s){function n(t,i){e.removeEventListener?e.removeEventListener(t,i,!1):e.attachEvent&&(i=e.hcEventsIE[i.hcGetKey],e.detachEvent("on"+t,i))}function o(){var s,o;e.nodeName&&(i?(s={},s[i]=!0):s=h,t.objectEach(s,function(t,e){if(h[e])for(o=h[e].length;o--;)n(e,h[e][o])}))}var r,a,h=e.hcEvents;h&&(i?(r=h[i]||[],s?(a=t.inArray(s,r),-1<a&&(r.splice(a,1),h[i]=r),n(i,s)):(o(),h[i]=[])):(o(),e.hcEvents={}))},t.fireEvent=function(e,i,n,o){var r;r=e.hcEvents;var a,h;if(n=n||{},s.createEvent&&(e.dispatchEvent||e.fireEvent))r=s.createEvent("Events"),r.initEvent(i,!0,!0),t.extend(r,n),e.dispatchEvent?e.dispatchEvent(r):e.fireEvent(i,r);else if(r)for(r=r[i]||[],a=r.length,n.target||t.extend(n,{preventDefault:function(){n.defaultPrevented=!0},target:e,type:i}),i=0;i<a;i++)(h=r[i])&&!1===h.call(e,n)&&n.preventDefault();o&&!n.defaultPrevented&&o(n)},t.animate=function(e,i,s){var n,o,r,a,h="";t.isObject(s)||(a=arguments,s={duration:a[2],easing:a[3],complete:a[4]}),t.isNumber(s.duration)||(s.duration=400),s.easing="function"==typeof s.easing?s.easing:Math[s.easing]||Math.easeInOutSine,s.curAnim=t.merge(i),t.objectEach(i,function(a,l){t.stop(e,l),r=new t.Fx(e,s,l),o=null,"d"===l?(r.paths=r.initPath(e,e.d,i.d),r.toD=i.d,n=0,o=1):e.attr?n=e.attr(l):(n=parseFloat(t.getStyle(e,l))||0,"opacity"!==l&&(h="px")),o||(o=a),o&&o.match&&o.match("px")&&(o=o.replace(/px/g,"")),r.run(n,o,h)})},t.seriesType=function(e,i,s,n,o){var r=t.getOptions(),a=t.seriesTypes;return r.plotOptions[e]=t.merge(r.plotOptions[i],s),a[e]=t.extendClass(a[i]||function(){},n),a[e].prototype.type=e,o&&(a[e].prototype.pointClass=t.extendClass(t.Point,o)),a[e]},t.uniqueKey=function(){var t=Math.random().toString(36).substring(2,9),e=0;return function(){return"highcharts-"+t+"-"+e++}}(),n.jQuery&&(n.jQuery.fn.highcharts=function(){var e=[].slice.call(arguments);if(this[0])return e[0]?(new(t[t.isString(e[0])?e.shift():"Chart"])(this[0],e[0],e[1]),this):i[t.attr(this[0],"data-highcharts-chart")]}),s&&!s.defaultView&&(t.getStyle=function(e,i){var s={width:"clientWidth",height:"clientHeight"}[i];return e.style[i]?t.pInt(e.style[i]):("opacity"===i&&(i="filter"),s?(e.style.zoom=1,Math.max(e[s]-2*t.getStyle(e,"padding"),0)):(e=e.currentStyle[i.replace(/\-(\w)/g,function(t,e){return e.toUpperCase()})],"filter"===i&&(e=e.replace(/alpha\(opacity=([0-9]+)\)/,function(t,e){return e/100})),""===e?1:t.pInt(e)))}),Array.prototype.forEach||(t.each=function(t,e,i){for(var s=0,n=t.length;s<n;s++)if(!1===e.call(i,t[s],s,t))return s}),Array.prototype.indexOf||(t.inArray=function(t,e){var i,s=0;if(e)for(i=e.length;s<i;s++)if(e[s]===t)return s;return-1}),Array.prototype.filter||(t.grep=function(t,e){for(var i=[],s=0,n=t.length;s<n;s++)e(t[s],s)&&i.push(t[s]);return i}),Array.prototype.find||(t.find=function(t,e){var i,s=t.length;for(i=0;i<s;i++)if(e(t[i],i))return t[i]})}(t),function(t){var e=t.each,i=t.isNumber,s=t.map,n=t.merge,o=t.pInt;t.Color=function(e){return this instanceof t.Color?void this.init(e):new t.Color(e)},t.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(t){return[o(t[1]),o(t[2]),o(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(t){return[o(t[1]),o(t[2]),o(t[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(e){var i,n,o,r;if((this.input=e=this.names[e&&e.toLowerCase?e.toLowerCase():""]||e)&&e.stops)this.stops=s(e.stops,function(e){return new t.Color(e[1])});else if(e&&"#"===e.charAt()&&(i=e.length,e=parseInt(e.substr(1),16),7===i?n=[(16711680&e)>>16,(65280&e)>>8,255&e,1]:4===i&&(n=[(3840&e)>>4|(3840&e)>>8,(240&e)>>4|240&e,(15&e)<<4|15&e,1])),!n)for(o=this.parsers.length;o--&&!n;)r=this.parsers[o],(i=r.regex.exec(e))&&(n=r.parse(i));this.rgba=n||[]},get:function(t){var s,o=this.input,r=this.rgba;return this.stops?(s=n(o),s.stops=[].concat(s.stops),e(this.stops,function(e,i){s.stops[i]=[s.stops[i][0],e.get(t)]})):s=r&&i(r[0])?"rgb"===t||!t&&1===r[3]?"rgb("+r[0]+","+r[1]+","+r[2]+")":"a"===t?r[3]:"rgba("+r.join(",")+")":o,s},brighten:function(t){var s,n=this.rgba;if(this.stops)e(this.stops,function(e){e.brighten(t)});else if(i(t)&&0!==t)for(s=0;3>s;s++)n[s]+=o(255*t),0>n[s]&&(n[s]=0),255<n[s]&&(n[s]=255);return this},setOpacity:function(t){return this.rgba[3]=t,this},tweenTo:function(t,e){var i,s;return t.rgba.length?(i=this.rgba,t=t.rgba,s=1!==t[3]||1!==i[3],t=(s?"rgba(":"rgb(")+Math.round(t[0]+(i[0]-t[0])*(1-e))+","+Math.round(t[1]+(i[1]-t[1])*(1-e))+","+Math.round(t[2]+(i[2]-t[2])*(1-e))+(s?","+(t[3]+(i[3]-t[3])*(1-e)):"")+")"):t=t.input||"none",t}},t.color=function(e){return new t.Color(e)}}(t),function(t){var e,i,s=t.addEvent,n=t.animate,o=t.attr,r=t.charts,a=t.color,h=t.css,l=t.createElement,c=t.defined,d=t.deg2rad,p=t.destroyObjectProperties,u=t.doc,f=t.each,g=t.extend,m=t.erase,v=t.grep,x=t.hasTouch,y=t.inArray,b=t.isArray,k=t.isFirefox,M=t.isMS,w=t.isObject,S=t.isString,T=t.isWebKit,A=t.merge,C=t.noop,L=t.objectEach,P=t.pick,O=t.pInt,I=t.removeEvent,D=t.stop,z=t.svg,E=t.SVG_NS,B=t.symbolSizes,G=t.win;e=t.SVGElement=function(){return this},g(e.prototype,{opacity:1,SVG_NS:E,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(t,e){this.element="span"===e?l(e):u.createElementNS(this.SVG_NS,e),this.renderer=t},animate:function(e,i,s){return i=t.animObject(P(i,this.renderer.globalAnimation,!0)),0!==i.duration?(s&&(i.complete=s),n(this,e,i)):(this.attr(e,null,s),i.step&&i.step.call(this)),this},colorGradient:function(e,i,s){var n,o,r,a,h,l,d,p,u,g,m,v=this.renderer,x=[];e.radialGradient?o="radialGradient":e.linearGradient&&(o="linearGradient"),o&&(r=e[o],h=v.gradients,d=e.stops,g=s.radialReference,b(r)&&(e[o]=r={x1:r[0],y1:r[1],x2:r[2],y2:r[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===o&&g&&!c(r.gradientUnits)&&(a=r,r=A(r,v.getRadialAttr(g,a),{gradientUnits:"userSpaceOnUse"})),L(r,function(t,e){"id"!==e&&x.push(e,t)}),L(d,function(t){x.push(t)}),x=x.join(","),h[x]?g=h[x].attr("id"):(r.id=g=t.uniqueKey(),h[x]=l=v.createElement(o).attr(r).add(v.defs),l.radAttr=a,l.stops=[],f(d,function(e){0===e[1].indexOf("rgba")?(n=t.color(e[1]),p=n.get("rgb"),u=n.get("a")):(p=e[1],u=1),e=v.createElement("stop").attr({offset:e[0],"stop-color":p,"stop-opacity":u}).add(l),l.stops.push(e)})),m="url("+v.url+"#"+g+")",s.setAttribute(i,m),s.gradient=x,e.toString=function(){return m})},applyTextOutline:function(e){var i,s,n,r,a,h=this.element;if(-1!==e.indexOf("contrast")&&(e=e.replace(/contrast/g,this.renderer.getContrast(h.style.fill))),e=e.split(" "),s=e[e.length-1],(n=e[0])&&"none"!==n&&t.svg){for(this.fakeTS=!0,e=[].slice.call(h.getElementsByTagName("tspan")),this.ySetter=this.xSetter,n=n.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*e+i}),a=e.length;a--;)i=e[a],"highcharts-text-outline"===i.getAttribute("class")&&m(e,h.removeChild(i));r=h.firstChild,f(e,function(t,e){0===e&&(t.setAttribute("x",h.getAttribute("x")),e=h.getAttribute("y"),t.setAttribute("y",e||0),null===e&&h.setAttribute("y",0)),t=t.cloneNode(1),o(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":n,"stroke-linejoin":"round"}),h.insertBefore(t,r)})}},attr:function(t,e,i,s){var n,o,r,a,h=this.element,l=this;return"string"==typeof t&&void 0!==e&&(n=t,t={},t[n]=e),"string"==typeof t?l=(this[t+"Getter"]||this._defaultGetter).call(this,t,h):(L(t,function(e,i){r=!1,s||D(this,i),this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(i)&&(o||(this.symbolAttr(t),o=!0),r=!0),!this.rotation||"x"!==i&&"y"!==i||(this.doTransform=!0),r||(a=this[i+"Setter"]||this._defaultSetter,a.call(this,e,i,h),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(i)&&this.updateShadows(i,e,a))},this),this.afterSetters()),i&&i(),l},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(t,e,i){for(var s=this.shadows,n=s.length;n--;)i.call(s[n],"height"===t?Math.max(e-(s[n].cutHeight||0),0):"d"===t?this.d:e,t,s[n])},addClass:function(t,e){var i=this.attr("class")||"";return-1===i.indexOf(t)&&(e||(t=(i+(i?" ":"")+t).replace(" "," ")),this.attr("class",t)),this},hasClass:function(t){return-1!==y(t,(this.attr("class")||"").split(" "))},removeClass:function(t){return this.attr("class",(this.attr("class")||"").replace(t,""))},symbolAttr:function(t){var e=this;f("x y r start end width height innerR anchorX anchorY".split(" "),function(i){e[i]=P(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})},clip:function(t){return this.attr("clip-path",t?"url("+this.renderer.url+"#"+t.id+")":"none")},crisp:function(t,e){var i,s=this,n={};return e=e||t.strokeWidth||0,i=Math.round(e)%2/2,t.x=Math.floor(t.x||s.x||0)+i,t.y=Math.floor(t.y||s.y||0)+i,t.width=Math.floor((t.width||s.width||0)-2*i),t.height=Math.floor((t.height||s.height||0)-2*i),c(t.strokeWidth)&&(t.strokeWidth=e),L(t,function(t,e){s[e]!==t&&(s[e]=n[e]=t)}),n},css:function(t){var e,i,s=this.styles,n={},r=this.element,a="",l=!s,c=["textOutline","textOverflow","width"];return t&&t.color&&(t.fill=t.color),s&&L(t,function(t,e){t!==s[e]&&(n[e]=t,l=!0)}),l&&(s&&(t=g(s,n)),e=this.textWidth=t&&t.width&&"auto"!==t.width&&"text"===r.nodeName.toLowerCase()&&O(t.width),this.styles=t,e&&!z&&this.renderer.forExport&&delete t.width,M&&!z?h(this.element,t):(i=function(t,e){return"-"+e.toLowerCase()},L(t,function(t,e){-1===y(e,c)&&(a+=e.replace(/([A-Z])/g,i)+":"+t+";")}),a&&o(r,"style",a)),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t&&t.textOutline&&this.applyTextOutline(t.textOutline))),this},strokeWidth:function(){return this["stroke-width"]||0},on:function(t,e){var i=this,s=i.element;return x&&"click"===t?(s.ontouchstart=function(t){i.touchEventFired=Date.now(),t.preventDefault(),e.call(s,t)},s.onclick=function(t){(-1===G.navigator.userAgent.indexOf("Android")||1100<Date.now()-(i.touchEventFired||0))&&e.call(s,t)}):s["on"+t]=e,this},setRadialReference:function(t){var e=this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this},translate:function(t,e){return this.attr({translateX:t,translateY:e})},invert:function(t){return this.inverted=t,this.updateTransform(),this},updateTransform:function(){var t=this.translateX||0,e=this.translateY||0,i=this.scaleX,s=this.scaleY,n=this.inverted,o=this.rotation,r=this.element;n&&(t+=this.width,e+=this.height),t=["translate("+t+","+e+")"],n?t.push("rotate(90) scale(-1,1)"):o&&t.push("rotate("+o+" "+(r.getAttribute("x")||0)+" "+(r.getAttribute("y")||0)+")"),(c(i)||c(s))&&t.push("scale("+P(i,1)+" "+P(s,1)+")"),t.length&&r.setAttribute("transform",t.join(" "))},toFront:function(){var t=this.element;return t.parentNode.appendChild(t),this},align:function(t,e,i){var s,n,o,r,a={};n=this.renderer,o=n.alignedObjects;var h,l;return t?(this.alignOptions=t,this.alignByTranslate=e,(!i||S(i))&&(this.alignTo=s=i||"renderer",m(o,this),o.push(this),i=null)):(t=this.alignOptions,e=this.alignByTranslate,s=this.alignTo),i=P(i,n[s],n),s=t.align,n=t.verticalAlign,o=(i.x||0)+(t.x||0),r=(i.y||0)+(t.y||0),"right"===s?h=1:"center"===s&&(h=2),h&&(o+=(i.width-(t.width||0))/h),a[e?"translateX":"x"]=Math.round(o),"bottom"===n?l=1:"middle"===n&&(l=2),l&&(r+=(i.height-(t.height||0))/l),a[e?"translateY":"y"]=Math.round(r),this[this.placed?"animate":"attr"](a),this.placed=!0,this.alignAttr=a,this},getBBox:function(t,e){var i,s,n,o,r,a=this.renderer,h=this.element,l=this.styles,c=this.textStr,p=a.cache,u=a.cacheKeys;if(e=P(e,this.rotation),s=e*d,n=l&&l.fontSize,void 0!==c&&(r=c.toString(),-1===r.indexOf("<")&&(r=r.replace(/[0-9]/g,"0")),r+=["",e||0,n,l&&l.width,l&&l.textOverflow].join()),r&&!t&&(i=p[r]),!i){if(h.namespaceURI===this.SVG_NS||a.forExport){try{(o=this.fakeTS&&function(t){f(h.querySelectorAll(".highcharts-text-outline"),function(e){e.style.display=t})})&&o("none"),i=h.getBBox?g({},h.getBBox()):{width:h.offsetWidth,height:h.offsetHeight},o&&o("")}catch(t){}(!i||0>i.width)&&(i={width:0,height:0})}else i=this.htmlGetBBox();if(a.isSVG&&(t=i.width,a=i.height,l&&"11px"===l.fontSize&&17===Math.round(a)&&(i.height=a=14),e&&(i.width=Math.abs(a*Math.sin(s))+Math.abs(t*Math.cos(s)),i.height=Math.abs(a*Math.cos(s))+Math.abs(t*Math.sin(s)))),r&&0<i.height){for(;250<u.length;)delete p[u.shift()];p[r]||u.push(r),p[r]=i}}return i},show:function(t){return this.attr({visibility:t?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(t){var e=this;e.animate({opacity:0},{duration:t||150,complete:function(){e.attr({y:-9999})}})},add:function(t){var e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),this.parentInverted=t&&t.inverted,void 0!==this.textStr&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(t){var e=t.parentNode;e&&e.removeChild(t)},destroy:function(){var t=this,e=t.element||{},i=t.renderer.isSVG&&"SPAN"===e.nodeName&&t.parentGroup,s=e.ownerSVGElement;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,D(t),t.clipPath&&s&&(f(s.querySelectorAll("[clip-path]"),function(e){-1<e.getAttribute("clip-path").indexOf(t.clipPath.element.id+")")&&e.removeAttribute("clip-path")}),t.clipPath=t.clipPath.destroy()),t.stops){for(s=0;s<t.stops.length;s++)t.stops[s]=t.stops[s].destroy();t.stops=null}for(t.safeRemoveChild(e),t.destroyShadows();i&&i.div&&0===i.div.childNodes.length;)e=i.parentGroup,t.safeRemoveChild(i.div),delete i.div,i=e;return t.alignTo&&m(t.renderer.alignedObjects,t),L(t,function(e,i){delete t[i]}),null},shadow:function(t,e,i){var s,n,r,a,h,l,c=[],d=this.element;if(t){if(!this.shadows){for(a=P(t.width,3),h=(t.opacity||.15)/a,l=this.parentInverted?"(-1,-1)":"("+P(t.offsetX,1)+", "+P(t.offsetY,1)+")",s=1;s<=a;s++)n=d.cloneNode(0),r=2*a+1-2*s,o(n,{isShadow:"true",stroke:t.color||"#000000","stroke-opacity":h*s,"stroke-width":r,transform:"translate"+l,fill:"none"}),i&&(o(n,"height",Math.max(o(n,"height")-r,0)),n.cutHeight=r),e?e.element.appendChild(n):d.parentNode.insertBefore(n,d),c.push(n);this.shadows=c}}else this.destroyShadows();return this},destroyShadows:function(){f(this.shadows||[],function(t){this.safeRemoveChild(t)},this),this.shadows=void 0},xGetter:function(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)},_defaultGetter:function(t){return t=P(this[t],this.element?this.element.getAttribute(t):null,0),/^[\-0-9\.]+$/.test(t)&&(t=parseFloat(t)),t},dSetter:function(t,e,i){t&&t.join&&(t=t.join(" ")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)},dashstyleSetter:function(t){var e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){for(t=t.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(","),e=t.length;e--;)t[e]=O(t[e])*i;t=t.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}},alignSetter:function(t){this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[t])},opacitySetter:function(t,e,i){this[e]=t,i.setAttribute(e,t)},titleSetter:function(t){var e=this.element.getElementsByTagName("title")[0];e||(e=u.createElementNS(this.SVG_NS,"title"),this.element.appendChild(e)),e.firstChild&&e.removeChild(e.firstChild),e.appendChild(u.createTextNode(String(P(t),"").replace(/<[^>]*>/g,"")))},textSetter:function(t){t!==this.textStr&&(delete this.bBox,this.textStr=t,this.added&&this.renderer.buildText(this))},fillSetter:function(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.colorGradient(t,e,i)},visibilitySetter:function(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t},zIndexSetter:function(t,e){var i,s,n=this.renderer,o=this.parentGroup,r=(o||n).element||n.box,a=this.element;i=this.added;var h;if(c(t)&&(a.zIndex=t,t=+t,this[e]===t&&(i=!1),this[e]=t),i){for((t=this.zIndex)&&o&&(o.handleZ=!0),e=r.childNodes,h=0;h<e.length&&!s;h++)o=e[h],i=o.zIndex,o!==a&&(O(i)>t||!c(t)&&c(i)||0>t&&!c(i)&&r!==n.box)&&(r.insertBefore(a,o),s=!0);s||r.appendChild(a)}return s},_defaultSetter:function(t,e,i){i.setAttribute(e,t)}}),e.prototype.yGetter=e.prototype.xGetter,e.prototype.translateXSetter=e.prototype.translateYSetter=e.prototype.rotationSetter=e.prototype.verticalAlignSetter=e.prototype.scaleXSetter=e.prototype.scaleYSetter=function(t,e){this[e]=t,this.doTransform=!0},e.prototype["stroke-widthSetter"]=e.prototype.strokeSetter=function(t,i,s){this[i]=t,this.stroke&&this["stroke-width"]?(e.prototype.fillSetter.call(this,this.stroke,"stroke",s),s.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===i&&0===t&&this.hasStroke&&(s.removeAttribute("stroke"),this.hasStroke=!1)},i=t.SVGRenderer=function(){this.init.apply(this,arguments)},g(i.prototype,{Element:e,SVG_NS:E,init:function(t,e,i,n,r,a){var l;n=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}).css(this.getStyle(n)),l=n.element,t.appendChild(l),-1===t.innerHTML.indexOf("xmlns")&&o(l,"xmlns",this.SVG_NS),this.isSVG=!0,this.box=l,this.boxWrapper=n,this.alignedObjects=[],this.url=(k||T)&&u.getElementsByTagName("base").length?G.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(u.createTextNode("Created with Highcharts 5.0.14")),this.defs=this.createElement("defs").add(),this.allowHTML=a,this.forExport=r,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(e,i,!1);var c;k&&t.getBoundingClientRect&&(e=function(){h(t,{left:0,top:0}),c=t.getBoundingClientRect(),h(t,{left:Math.ceil(c.left)-c.left+"px",top:Math.ceil(c.top)-c.top+"px"})},e(),this.unSubPixelFix=s(G,"resize",e))},getStyle:function(t){return this.style=g({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},t)},setStyle:function(t){this.boxWrapper.css(this.getStyle(t))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),p(this.gradients||{}),this.gradients=null,t&&(this.defs=t.destroy()),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null},createElement:function(t){var e=new this.Element;return e.init(this,t),e},draw:C,getRadialAttr:function(t,e){return{cx:t[0]-t[2]/2+e.cx*t[2],cy:t[1]-t[2]/2+e.cy*t[2],r:e.r*t[2]}},getSpanWidth:function(t,e){var i=t.getBBox(!0).width;return!z&&this.forExport&&(i=this.measureSpanWidth(e.firstChild.data,t.styles)),i},applyEllipsis:function(t,e,i,s){var n,o,r=t.rotation,a=i,h=0,l=i.length,c=function(t){e.removeChild(e.firstChild),t&&e.appendChild(u.createTextNode(t))};if(t.rotation=0,a=this.getSpanWidth(t,e),o=a>s){for(;h<=l;)n=Math.ceil((h+l)/2),a=i.substring(0,n)+"…",c(a),a=this.getSpanWidth(t,e),h===l?h=l+1:a>s?l=n-1:h=n;0===l&&c("")}return t.rotation=r,o},buildText:function(t){var e,i,s,n,r,a,l=t.element,c=this,d=c.forExport,p=P(t.textStr,"").toString(),g=-1!==p.indexOf("<"),m=l.childNodes,x=o(l,"x"),y=t.styles,b=t.textWidth,k=y&&y.lineHeight,M=y&&y.textOutline,w=y&&"ellipsis"===y.textOverflow,S=y&&"nowrap"===y.whiteSpace,T=y&&y.fontSize,A=m.length,y=b&&!t.added&&this.box,C=function(t){var e;return e=/(px|em)$/.test(t&&t.style.fontSize)?t.style.fontSize:T||c.style.fontSize||12,k?O(k):c.fontMetrics(e,t.getAttribute("style")?t:l).h};if(r=[p,w,S,k,M,T,b].join(),r!==t.textCache){for(t.textCache=r;A--;)l.removeChild(m[A]);g||M||w||b||-1!==p.indexOf(" ")?(e=/<.*class="([^"]+)".*>/,i=/<.*style="([^"]+)".*>/,s=/<.*href="([^"]+)".*>/,y&&y.appendChild(l),p=g?p.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g):[p],p=v(p,function(t){return""!==t}),f(p,function(r,p){var g,m=0;r=r.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||"),g=r.split("|||"),f(g,function(r){if(""!==r||1===g.length){var f,v,y={},k=u.createElementNS(c.SVG_NS,"tspan");if(e.test(r)&&(f=r.match(e)[1],o(k,"class",f)),i.test(r)&&(v=r.match(i)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),o(k,"style",v)),s.test(r)&&!d&&(o(k,"onclick",'location.href="'+r.match(s)[1]+'"'),h(k,{cursor:"pointer"})),r=(r.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"<").replace(/>/g,">")," "!==r){if(k.appendChild(u.createTextNode(r)),m?y.dx=0:p&&null!==x&&(y.x=x),o(k,y),l.appendChild(k),!m&&a&&(!z&&d&&h(k,{display:"block"}),o(k,"dy",C(k))),b){y=r.replace(/([^\^])-/g,"$1- ").split(" "),f=1<g.length||p||1<y.length&&!S;var M,T=[],A=C(k),L=t.rotation;for(w&&(n=c.applyEllipsis(t,k,r,b));!w&&f&&(y.length||T.length);)t.rotation=0,M=c.getSpanWidth(t,k),r=M>b,void 0===n&&(n=r),r&&1!==y.length?(k.removeChild(k.firstChild),T.unshift(y.pop())):(y=T,T=[],y.length&&!S&&(k=u.createElementNS(E,"tspan"),o(k,{dy:A,x:x}),v&&o(k,"style",v),l.appendChild(k)),M>b&&(b=M)),y.length&&k.appendChild(u.createTextNode(y.join(" ").replace(/- /g,"-")));
- t.rotation=L}m++}}}),a=a||l.childNodes.length}),n&&t.attr("title",t.textStr),y&&y.removeChild(l),M&&t.applyTextOutline&&t.applyTextOutline(M)):l.appendChild(u.createTextNode(p.replace(/</g,"<").replace(/>/g,">")))}},getContrast:function(t){return t=a(t).rgba,510<t[0]+t[1]+t[2]?"#000000":"#FFFFFF"},button:function(t,e,i,n,o,r,a,h,l){var c=this.label(t,e,i,l,null,null,null,null,"button"),d=0;c.attr(A({padding:8,r:2},o));var p,u,f,m;return o=A({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},o),p=o.style,delete o.style,r=A(o,{fill:"#e6e6e6"},r),u=r.style,delete r.style,a=A(o,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},a),f=a.style,delete a.style,h=A(o,{style:{color:"#cccccc"}},h),m=h.style,delete h.style,s(c.element,M?"mouseover":"mouseenter",function(){3!==d&&c.setState(1)}),s(c.element,M?"mouseout":"mouseleave",function(){3!==d&&c.setState(d)}),c.setState=function(t){1!==t&&(c.state=d=t),c.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t||0]),c.attr([o,r,a,h][t||0]).css([p,u,f,m][t||0])},c.attr(o).css(g({cursor:"default"},p)),c.on("click",function(t){3!==d&&n.call(c,t)})},crispLine:function(t,e){return t[1]===t[4]&&(t[1]=t[4]=Math.round(t[1])-e%2/2),t[2]===t[5]&&(t[2]=t[5]=Math.round(t[2])+e%2/2),t},path:function(t){var e={fill:"none"};return b(t)?e.d=t:w(t)&&g(e,t),this.createElement("path").attr(e)},circle:function(t,e,i){return t=w(t)?t:{x:t,y:e,r:i},e=this.createElement("circle"),e.xSetter=e.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},e.attr(t)},arc:function(t,e,i,s,n,o){return w(t)?(s=t,e=s.y,i=s.r,t=s.x):s={innerR:s,start:n,end:o},t=this.symbol("arc",t,e,i,i,s),t.r=i,t},rect:function(t,e,i,s,n,r){n=w(t)?t.r:n;var a=this.createElement("rect");return t=w(t)?t:void 0===t?{}:{x:t,y:e,width:Math.max(i,0),height:Math.max(s,0)},void 0!==r&&(t.strokeWidth=r,t=a.crisp(t)),t.fill="none",n&&(t.r=n),a.rSetter=function(t,e,i){o(i,{rx:t,ry:t})},a.attr(t)},setSize:function(t,e,i){var s=this.alignedObjects,n=s.length;for(this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:P(i,!0)?void 0:0});n--;)s[n].align()},g:function(t){var e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e},image:function(t,e,i,s,n){var o={preserveAspectRatio:"none"};return 1<arguments.length&&g(o,{x:e,y:i,width:s,height:n}),o=this.createElement("image").attr(o),o.element.setAttributeNS?o.element.setAttributeNS("http://www.w3.org/1999/xlink","href",t):o.element.setAttribute("hc-svg-href",t),o},symbol:function(t,e,i,s,n,o){var a,d,p,m=this,v=/^url\((.*?)\)$/,x=v.test(t),y=!x&&(this.symbols[t]?t:"circle"),b=y&&this.symbols[y],k=c(e)&&b&&b.call(this.symbols,Math.round(e),Math.round(i),s,n,o);return b?(a=this.path(k),a.attr("fill","none"),g(a,{symbolName:y,x:e,y:i,width:s,height:n}),o&&g(a,o)):x&&(d=t.match(v)[1],a=this.image(d),a.imgwidth=P(B[d]&&B[d].width,o&&o.width),a.imgheight=P(B[d]&&B[d].height,o&&o.height),p=function(){a.attr({width:a.width,height:a.height})},f(["width","height"],function(t){a[t+"Setter"]=function(t,e){var i={},s=this["img"+e],n="width"===e?"translateX":"translateY";this[e]=t,c(s)&&(this.element&&this.element.setAttribute(e,s),this.alignByTranslate||(i[n]=((this[e]||0)-s)/2,this.attr(i)))}}),c(e)&&a.attr({x:e,y:i}),a.isImg=!0,c(a.imgwidth)&&c(a.imgheight)?p():(a.attr({width:0,height:0}),l("img",{onload:function(){var t=r[m.chartIndex];0===this.width&&(h(this,{position:"absolute",top:"-999em"}),u.body.appendChild(this)),B[d]={width:this.width,height:this.height},a.imgwidth=this.width,a.imgheight=this.height,a.element&&p(),this.parentNode&&this.parentNode.removeChild(this),m.imgCount--,!m.imgCount&&t&&t.onload&&t.onload()},src:d}),this.imgCount++)),a},symbols:{circle:function(t,e,i,s){return this.arc(t+i/2,e+s/2,i/2,s/2,{start:0,end:2*Math.PI,open:!1})},square:function(t,e,i,s){return["M",t,e,"L",t+i,e,t+i,e+s,t,e+s,"Z"]},triangle:function(t,e,i,s){return["M",t+i/2,e,"L",t+i,e+s,t,e+s,"Z"]},"triangle-down":function(t,e,i,s){return["M",t,e,"L",t+i,e,t+i/2,e+s,"Z"]},diamond:function(t,e,i,s){return["M",t+i/2,e,"L",t+i,e+s/2,t+i/2,e+s,t,e+s/2,"Z"]},arc:function(t,e,i,s,n){var o=n.start,r=n.r||i,a=n.r||s||i,h=n.end-.001;i=n.innerR,s=P(n.open,.001>Math.abs(n.end-n.start-2*Math.PI));var l=Math.cos(o),d=Math.sin(o),p=Math.cos(h),h=Math.sin(h);return n=.001>n.end-o-Math.PI?0:1,r=["M",t+r*l,e+a*d,"A",r,a,0,n,1,t+r*p,e+a*h],c(i)&&r.push(s?"M":"L",t+i*p,e+i*h,"A",i,i,0,n,0,t+i*l,e+i*d),r.push(s?"":"Z"),r},callout:function(t,e,i,s,n){var o=Math.min(n&&n.r||0,i,s),r=o+6,a=n&&n.anchorX;n=n&&n.anchorY;var h;return h=["M",t+o,e,"L",t+i-o,e,"C",t+i,e,t+i,e,t+i,e+o,"L",t+i,e+s-o,"C",t+i,e+s,t+i,e+s,t+i-o,e+s,"L",t+o,e+s,"C",t,e+s,t,e+s,t,e+s-o,"L",t,e+o,"C",t,e,t,e,t+o,e],a&&a>i?n>e+r&&n<e+s-r?h.splice(13,3,"L",t+i,n-6,t+i+6,n,t+i,n+6,t+i,e+s-o):h.splice(13,3,"L",t+i,s/2,a,n,t+i,s/2,t+i,e+s-o):a&&0>a?n>e+r&&n<e+s-r?h.splice(33,3,"L",t,n+6,t-6,n,t,n-6,t,e+o):h.splice(33,3,"L",t,s/2,a,n,t,s/2,t,e+o):n&&n>s&&a>t+r&&a<t+i-r?h.splice(23,3,"L",a+6,e+s,a,e+s+6,a-6,e+s,t+o,e+s):n&&0>n&&a>t+r&&a<t+i-r&&h.splice(3,3,"L",a-6,e,a,e-6,a+6,e,i-o,e),h}},clipRect:function(e,i,s,n){var o=t.uniqueKey(),r=this.createElement("clipPath").attr({id:o}).add(this.defs);return e=this.rect(e,i,s,n,0).add(r),e.id=o,e.clipPath=r,e.count=0,e},text:function(t,e,i,s){var n=!z&&this.forExport,o={};return!s||!this.allowHTML&&this.forExport?(o.x=Math.round(e||0),i&&(o.y=Math.round(i)),(t||0===t)&&(o.text=t),t=this.createElement("text").attr(o),n&&t.css({position:"absolute"}),s||(t.xSetter=function(t,e,i){var s,n,o=i.getElementsByTagName("tspan"),r=i.getAttribute(e);for(n=0;n<o.length;n++)s=o[n],s.getAttribute(e)===r&&s.setAttribute(e,t);i.setAttribute(e,t)}),t):this.html(t,e,i)},fontMetrics:function(t,e){return t=t||e&&e.style&&e.style.fontSize||this.style&&this.style.fontSize,t=/px/.test(t)?O(t):/em/.test(t)?parseFloat(t)*(e?this.fontMetrics(null,e.parentNode).f:16):12,e=24>t?t+3:Math.round(1.2*t),{h:e,b:Math.round(.8*e),f:t}},rotCorr:function(t,e,i){var s=t;return e&&i&&(s=Math.max(s*Math.cos(e*d),4)),{x:-t/3*Math.sin(e*d),y:s}},label:function(i,s,n,o,r,a,h,l,d){var p,u,m,v,x,y,b,k,M,w,S,T,C,L=this,P=L.g("button"!==d&&"label"),O=P.text=L.text("",0,0,h).attr({zIndex:1}),D=0,z=3,E=0,B={},G=/^url\((.*?)\)$/.test(o),R=G;d&&P.addClass("highcharts-"+d),R=G,w=function(){return(k||0)%2/2},S=function(){var t=O.element.style,e={};u=(void 0===m||void 0===v||b)&&c(O.textStr)&&O.getBBox(),P.width=(m||u.width||0)+2*z+E,P.height=(v||u.height||0)+2*z,M=z+L.fontMetrics(t&&t.fontSize,O).b,R&&(p||(P.box=p=L.symbols[o]||G?L.symbol(o):L.rect(),p.addClass(("button"===d?"":"highcharts-label-box")+(d?" highcharts-"+d+"-box":"")),p.add(P),t=w(),e.x=t,e.y=(l?-M:0)+t),e.width=Math.round(P.width),e.height=Math.round(P.height),p.attr(g(e,B)),B={})},T=function(){var t,e=E+z;t=l?0:M,c(m)&&u&&("center"===b||"right"===b)&&(e+={center:.5,right:1}[b]*(m-u.width)),e===O.x&&t===O.y||(O.attr("x",e),void 0!==t&&O.attr("y",t)),O.x=e,O.y=t},C=function(t,e){p?p.attr(t,e):B[t]=e},P.onAdd=function(){O.add(P),P.attr({text:i||0===i?i:"",x:s,y:n}),p&&c(r)&&P.attr({anchorX:r,anchorY:a})},P.widthSetter=function(e){m=t.isNumber(e)?e:null},P.heightSetter=function(t){v=t},P["text-alignSetter"]=function(t){b=t},P.paddingSetter=function(t){c(t)&&t!==z&&(z=P.padding=t,T())},P.paddingLeftSetter=function(t){c(t)&&t!==E&&(E=t,T())},P.alignSetter=function(t){t={left:0,center:.5,right:1}[t],t!==D&&(D=t,u&&P.attr({x:x}))},P.textSetter=function(t){void 0!==t&&O.textSetter(t),S(),T()},P["stroke-widthSetter"]=function(t,e){t&&(R=!0),k=this["stroke-width"]=t,C(e,t)},P.strokeSetter=P.fillSetter=P.rSetter=function(t,e){"r"!==e&&("fill"===e&&t&&(R=!0),P[e]=t),C(e,t)},P.anchorXSetter=function(t,e){r=P.anchorX=t,C(e,Math.round(t)-w()-x)},P.anchorYSetter=function(t,e){a=P.anchorY=t,C(e,t-y)},P.xSetter=function(t){P.x=t,D&&(t-=D*((m||u.width)+2*z)),x=Math.round(t),P.attr("translateX",x)},P.ySetter=function(t){y=P.y=Math.round(t),P.attr("translateY",y)};var N=P.css;return g(P,{css:function(t){if(t){var e={};t=A(t),f(P.textProps,function(i){void 0!==t[i]&&(e[i]=t[i],delete t[i])}),O.css(e)}return N.call(P,t)},getBBox:function(){return{width:u.width+2*z,height:u.height+2*z,x:u.x-z,y:u.y-z}},shadow:function(t){return t&&(S(),p&&p.shadow(t)),P},destroy:function(){I(P.element,"mouseenter"),I(P.element,"mouseleave"),O&&(O=O.destroy()),p&&(p=p.destroy()),e.prototype.destroy.call(P),P=L=S=T=C=null}})}}),t.Renderer=i}(t),function(t){var e=t.attr,i=t.createElement,s=t.css,n=t.defined,o=t.each,r=t.extend,a=t.isFirefox,h=t.isMS,l=t.isWebKit,c=t.pInt,d=t.SVGRenderer,p=t.win,u=t.wrap;r(t.SVGElement.prototype,{htmlCss:function(t){var e=this.element;return(e=t&&"SPAN"===e.tagName&&t.width)&&(delete t.width,this.textWidth=e,this.updateTransform()),t&&"ellipsis"===t.textOverflow&&(t.whiteSpace="nowrap",t.overflow="hidden"),this.styles=r(this.styles,t),s(this.element,t),this},htmlGetBBox:function(){var t=this.element;return"text"===t.nodeName&&(t.style.position="absolute"),{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var t=this.renderer,e=this.element,i=this.translateX||0,r=this.translateY||0,a=this.x||0,h=this.y||0,d=this.textAlign||"left",p={left:0,center:.5,right:1}[d],u=this.styles;if(s(e,{marginLeft:i,marginTop:r}),this.shadows&&o(this.shadows,function(t){s(t,{marginLeft:i+1,marginTop:r+1})}),this.inverted&&o(e.childNodes,function(i){t.invertChild(i,e)}),"SPAN"===e.tagName){var f=this.rotation,g=c(this.textWidth),m=u&&u.whiteSpace,v=[f,d,e.innerHTML,this.textWidth,this.textAlign].join();v!==this.cTT&&(u=t.fontMetrics(e.style.fontSize).b,n(f)&&this.setSpanRotation(f,p,u),s(e,{width:"",whiteSpace:m||"nowrap"}),e.offsetWidth>g&&/[ \-]/.test(e.textContent||e.innerText)&&s(e,{width:g+"px",display:"block",whiteSpace:m||"normal"}),this.getSpanCorrection(e.offsetWidth,u,p,f,d)),s(e,{left:a+(this.xCorr||0)+"px",top:h+(this.yCorr||0)+"px"}),l&&(u=e.offsetHeight),this.cTT=v}}else this.alignOnAdd=!0},setSpanRotation:function(t,e,i){var n={},o=h?"-ms-transform":l?"-webkit-transform":a?"MozTransform":p.opera?"-o-transform":"";n[o]=n.transform="rotate("+t+"deg)",n[o+(a?"Origin":"-origin")]=n.transformOrigin=100*e+"% "+i+"px",s(this.element,n)},getSpanCorrection:function(t,e,i){this.xCorr=-t*i,this.yCorr=-e}}),r(d.prototype,{html:function(t,s,n){var a=this.createElement("span"),h=a.element,l=a.renderer,c=l.isSVG,d=function(t,e){o(["opacity","visibility"],function(i){u(t,i+"Setter",function(t,i,s,n){t.call(this,i,s,n),e[s]=i})})};return a.textSetter=function(t){t!==h.innerHTML&&delete this.bBox,h.innerHTML=this.textStr=t,a.htmlUpdateTransform()},c&&d(a,a.element.style),a.xSetter=a.ySetter=a.alignSetter=a.rotationSetter=function(t,e){"align"===e&&(e="textAlign"),a[e]=t,a.htmlUpdateTransform()},a.attr({text:t,x:Math.round(s),y:Math.round(n)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"}),h.style.whiteSpace="nowrap",a.css=a.htmlCss,c&&(a.add=function(t){var s,n=l.box.parentNode,c=[];if(this.parentGroup=t){if(s=t.div,!s){for(;t;)c.push(t),t=t.parentGroup;o(c.reverse(),function(t){var o,h=e(t.element,"class");h&&(h={className:h}),s=t.div=t.div||i("div",h,{position:"absolute",left:(t.translateX||0)+"px",top:(t.translateY||0)+"px",display:t.display,opacity:t.opacity,pointerEvents:t.styles&&t.styles.pointerEvents},s||n),o=s.style,r(t,{classSetter:function(t){this.element.setAttribute("class",t),s.className=t},on:function(){return c[0].div&&a.on.apply({element:c[0].div},arguments),t},translateXSetter:function(e,i){o.left=e+"px",t[i]=e,t.doTransform=!0},translateYSetter:function(e,i){o.top=e+"px",t[i]=e,t.doTransform=!0}}),d(t,o)})}}else s=n;return s.appendChild(h),a.added=!0,a.alignOnAdd&&a.htmlUpdateTransform(),a}),a}})}(t),function(t){var e,i,s=t.createElement,n=t.css,o=t.defined,r=t.deg2rad,a=t.discardElement,h=t.doc,l=t.each,c=t.erase,d=t.extend;e=t.extendClass;var p=t.isArray,u=t.isNumber,f=t.isObject,g=t.merge;i=t.noop;var m=t.pick,v=t.pInt,x=t.SVGElement,y=t.SVGRenderer,b=t.win;t.svg||(i={docMode8:h&&8===h.documentMode,init:function(t,e){var i=["<",e,' filled="f" stroked="f"'],n=["position: ","absolute",";"],o="div"===e;("shape"===e||o)&&n.push("left:0;top:0;width:1px;height:1px;"),n.push("visibility: ",o?"hidden":"visible"),i.push(' style="',n.join(""),'"/>'),e&&(i=o||"span"===e||"img"===e?i.join(""):t.prepVML(i),this.element=s(i)),this.renderer=t},add:function(t){var e=this.renderer,i=this.element,s=e.box,n=t&&t.inverted,s=t?t.element||t:s;return t&&(this.parentGroup=t),n&&e.invertChild(i,s),s.appendChild(i),this.added=!0,this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform(),this.onAdd&&this.onAdd(),this.className&&this.attr("class",this.className),this},updateTransform:x.prototype.htmlUpdateTransform,setSpanRotation:function(){var t=this.rotation,e=Math.cos(t*r),i=Math.sin(t*r);n(this.element,{filter:t?["progid:DXImageTransform.Microsoft.Matrix(M11=",e,", M12=",-i,", M21=",i,", M22=",e,", sizingMethod='auto expand')"].join(""):"none"})},getSpanCorrection:function(t,e,i,s,o){var a,h=s?Math.cos(s*r):1,l=s?Math.sin(s*r):0,c=m(this.elemHeight,this.element.offsetHeight);this.xCorr=0>h&&-t,this.yCorr=0>l&&-c,a=0>h*l,this.xCorr+=l*e*(a?1-i:i),this.yCorr-=h*e*(s?a?i:1-i:1),o&&"left"!==o&&(this.xCorr-=t*i*(0>h?-1:1),s&&(this.yCorr-=c*i*(0>l?-1:1)),n(this.element,{textAlign:o}))},pathToVML:function(t){for(var e=t.length,i=[];e--;)u(t[e])?i[e]=Math.round(10*t[e])-5:"Z"===t[e]?i[e]="x":(i[e]=t[e],!t.isArc||"wa"!==t[e]&&"at"!==t[e]||(i[e+5]===i[e+7]&&(i[e+7]+=t[e+7]>t[e+5]?1:-1),i[e+6]===i[e+8]&&(i[e+8]+=t[e+8]>t[e+6]?1:-1)));return i.join(" ")||"x"},clip:function(t){var e,i=this;return t?(e=t.members,c(e,i),e.push(i),i.destroyClip=function(){c(e,i)},t=t.getCSS(i)):(i.destroyClip&&i.destroyClip(),t={clip:i.docMode8?"inherit":"rect(auto)"}),i.css(t)},css:x.prototype.htmlCss,safeRemoveChild:function(t){t.parentNode&&a(t)},destroy:function(){return this.destroyClip&&this.destroyClip(),x.prototype.destroy.apply(this)},on:function(t,e){return this.element["on"+t]=function(){var t=b.event;t.target=t.srcElement,e(t)},this},cutOffPath:function(t,e){var i;return t=t.split(/[ ,]/),i=t.length,9!==i&&11!==i||(t[i-4]=t[i-2]=v(t[i-2])-10*e),t.join(" ")},shadow:function(t,e,i){var n,o,r,a,h,l,c,d=[],p=this.element,u=this.renderer,f=p.style,g=p.path;if(g&&"string"!=typeof g.value&&(g="x"),h=g,t){for(l=m(t.width,3),c=(t.opacity||.15)/l,n=1;3>=n;n++)a=2*l+1-2*n,i&&(h=this.cutOffPath(g.value,a+.5)),r=['<shape isShadow="true" strokeweight="',a,'" filled="false" path="',h,'" coordsize="10 10" style="',p.style.cssText,'" />'],o=s(u.prepVML(r),null,{left:v(f.left)+m(t.offsetX,1),top:v(f.top)+m(t.offsetY,1)}),i&&(o.cutOff=a+1),r=['<stroke color="',t.color||"#000000",'" opacity="',c*n,'"/>'],s(u.prepVML(r),null,null,o),e?e.element.appendChild(o):p.parentNode.insertBefore(o,p),d.push(o);this.shadows=d}return this},updateShadows:i,setAttr:function(t,e){this.docMode8?this.element[t]=e:this.element.setAttribute(t,e)},classSetter:function(t){(this.added?this.element:this).className=t},dashstyleSetter:function(t,e,i){(i.getElementsByTagName("stroke")[0]||s(this.renderer.prepVML(["<stroke/>"]),null,null,i))[e]=t||"solid",this[e]=t},dSetter:function(t,e,i){var s=this.shadows;if(t=t||[],this.d=t.join&&t.join(" "),i.path=t=this.pathToVML(t),s)for(i=s.length;i--;)s[i].path=s[i].cutOff?this.cutOffPath(t,s[i].cutOff):t;this.setAttr(e,t)},fillSetter:function(t,e,i){var s=i.nodeName;"SPAN"===s?i.style.color=t:"IMG"!==s&&(i.filled="none"!==t,this.setAttr("fillcolor",this.renderer.color(t,i,e,this)))},"fill-opacitySetter":function(t,e,i){s(this.renderer.prepVML(["<",e.split("-")[0],' opacity="',t,'"/>']),null,null,i)},opacitySetter:i,rotationSetter:function(t,e,i){i=i.style,this[e]=i[e]=t,i.left=-Math.round(Math.sin(t*r)+1)+"px",i.top=Math.round(Math.cos(t*r))+"px"},strokeSetter:function(t,e,i){this.setAttr("strokecolor",this.renderer.color(t,i,e,this))},"stroke-widthSetter":function(t,e,i){i.stroked=!!t,this[e]=t,u(t)&&(t+="px"),this.setAttr("strokeweight",t)},titleSetter:function(t,e){this.setAttr(e,t)},visibilitySetter:function(t,e,i){"inherit"===t&&(t="visible"),this.shadows&&l(this.shadows,function(i){i.style[e]=t}),"DIV"===i.nodeName&&(t="hidden"===t?"-999em":0,this.docMode8||(i.style[e]=t?"visible":"hidden"),e="top"),i.style[e]=t},xSetter:function(t,e,i){this[e]=t,"x"===e?e="left":"y"===e&&(e="top"),this.updateClipping?(this[e]=t,this.updateClipping()):i.style[e]=t},zIndexSetter:function(t,e,i){i.style[e]=t}},i["stroke-opacitySetter"]=i["fill-opacitySetter"],t.VMLElement=i=e(x,i),i.prototype.ySetter=i.prototype.widthSetter=i.prototype.heightSetter=i.prototype.xSetter,i={Element:i,isIE8:-1<b.navigator.userAgent.indexOf("MSIE 8.0"),init:function(t,e,i){var s,n;if(this.alignedObjects=[],s=this.createElement("div").css({position:"relative"}),n=s.element,t.appendChild(s.element),this.isVML=!0,this.box=n,this.boxWrapper=s,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(e,i,!1),!h.namespaces.hcv){h.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{h.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(t){h.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(t,e,i,s){var n=this.createElement(),o=f(t);return d(n,{members:[],count:0,left:(o?t.x:t)+1,top:(o?t.y:e)+1,width:(o?t.width:i)-1,height:(o?t.height:s)-1,getCSS:function(t){var e=t.element,i=e.nodeName,s=t.inverted,n=this.top-("shape"===i?e.offsetTop:0),o=this.left,e=o+this.width,r=n+this.height,n={clip:"rect("+Math.round(s?o:n)+"px,"+Math.round(s?r:e)+"px,"+Math.round(s?e:r)+"px,"+Math.round(s?n:o)+"px)"};return!s&&t.docMode8&&"DIV"===i&&d(n,{width:e+"px",height:r+"px"}),n},updateClipping:function(){l(n.members,function(t){t.element&&t.css(n.getCSS(t))})}})},color:function(e,i,n,o){var r,a,h,c=this,d=/^rgba/,p="none";if(e&&e.linearGradient?h="gradient":e&&e.radialGradient&&(h="pattern"),h){var u,f,g,m,v,x,y,b=e.linearGradient||e.radialGradient,k="";e=e.stops;var M,w=[],S=function(){a=['<fill colors="'+w.join(",")+'" opacity="',v,'" o:opacity2="',m,'" type="',h,'" ',k,'focus="100%" method="any" />'],s(c.prepVML(a),null,null,i)};if(g=e[0],M=e[e.length-1],0<g[0]&&e.unshift([0,g[1]]),1>M[0]&&e.push([1,M[1]]),l(e,function(e,i){d.test(e[1])?(r=t.color(e[1]),u=r.get("rgb"),f=r.get("a")):(u=e[1],f=1),w.push(100*e[0]+"% "+u),i?(v=f,x=u):(m=f,y=u)}),"fill"===n)if("gradient"===h)n=b.x1||b[0]||0,e=b.y1||b[1]||0,g=b.x2||b[2]||0,b=b.y2||b[3]||0,k='angle="'+(90-180*Math.atan((b-e)/(g-n))/Math.PI)+'"',S();else{var T,p=b.r,A=2*p,C=2*p,L=b.cx,P=b.cy,O=i.radialReference,p=function(){O&&(T=o.getBBox(),L+=(O[0]-T.x)/T.width-.5,P+=(O[1]-T.y)/T.height-.5,A*=O[2]/T.width,C*=O[2]/T.height),k='src="'+t.getOptions().global.VMLRadialGradientURL+'" size="'+A+","+C+'" origin="0.5,0.5" position="'+L+","+P+'" color2="'+y+'" ',S()};o.added?p():o.onAdd=p,p=x}else p=u}else d.test(e)&&"IMG"!==i.tagName?(r=t.color(e),o[n+"-opacitySetter"](r.get("a"),n,i),p=r.get("rgb")):(p=i.getElementsByTagName(n),p.length&&(p[0].opacity=1,p[0].type="solid"),p=e);return p},prepVML:function(t){var e=this.isIE8;return t=t.join(""),e?(t=t.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),t=-1===t.indexOf('style="')?t.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):t.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):t=t.replace("<","<hcv:"),t},text:y.prototype.html,path:function(t){var e={coordsize:"10 10"};return p(t)?e.d=t:f(t)&&d(e,t),this.createElement("shape").attr(e)},circle:function(t,e,i){var s=this.symbol("circle");return f(t)&&(i=t.r,e=t.y,t=t.x),s.isCircle=!0,s.r=i,s.attr({x:t,y:e})},g:function(t){var e;return t&&(e={className:"highcharts-"+t,class:"highcharts-"+t}),this.createElement("div").attr(e)},image:function(t,e,i,s,n){var o=this.createElement("img").attr({src:t});return 1<arguments.length&&o.attr({x:e,y:i,width:s,height:n}),o},createElement:function(t){return"rect"===t?this.symbol(t):y.prototype.createElement.call(this,t)},invertChild:function(t,e){var i=this;e=e.style;var s="IMG"===t.tagName&&t.style;n(t,{flip:"x",left:v(e.width)-(s?v(s.top):1),top:v(e.height)-(s?v(s.left):1),rotation:-90}),l(t.childNodes,function(e){i.invertChild(e,t)})},symbols:{arc:function(t,e,i,s,n){var o=n.start,r=n.end,a=n.r||i||s;i=n.innerR,s=Math.cos(o);var h=Math.sin(o),l=Math.cos(r),c=Math.sin(r);return 0===r-o?["x"]:(o=["wa",t-a,e-a,t+a,e+a,t+a*s,e+a*h,t+a*l,e+a*c],n.open&&!i&&o.push("e","M",t,e),o.push("at",t-i,e-i,t+i,e+i,t+i*l,e+i*c,t+i*s,e+i*h,"x","e"),o.isArc=!0,o)},circle:function(t,e,i,s,n){return n&&o(n.r)&&(i=s=2*n.r),n&&n.isCircle&&(t-=i/2,e-=s/2),["wa",t,e,t+i,e+s,t+i,e+s/2,t+i,e+s/2,"e"]},rect:function(t,e,i,s,n){return y.prototype.symbols[o(n)&&n.r?"callout":"square"].call(0,t,e,i,s,n)}}},t.VMLRenderer=e=function(){this.init.apply(this,arguments)},e.prototype=g(y.prototype,i),t.Renderer=e),y.prototype.measureSpanWidth=function(t,e){var i=h.createElement("span");return t=h.createTextNode(t),i.appendChild(t),n(i,e),this.box.appendChild(i),e=i.offsetWidth,a(i),e}}(t),function(t){function e(){var e=t.defaultOptions.global,i=h.moment;if(e.timezone){if(i)return function(t){return-i.tz(t,e.timezone).utcOffset()};t.error(25)}return e.useUTC&&e.getTimezoneOffset}function i(){var i,s=t.defaultOptions.global,r=s.useUTC,l=r?"getUTC":"get",c=r?"setUTC":"set";t.Date=i=s.Date||h.Date,i.hcTimezoneOffset=r&&s.timezoneOffset,i.hcGetTimezoneOffset=e(),i.hcMakeTime=function(t,e,s,n,h,l){var c;return r?(c=i.UTC.apply(0,arguments),c+=o(c)):c=new i(t,e,a(s,1),a(n,0),a(h,0),a(l,0)).getTime(),c},n("Minutes Hours Day Date Month FullYear".split(" "),function(t){i["hcGet"+t]=l+t}),n("Milliseconds Seconds Minutes Hours Date Month FullYear".split(" "),function(t){i["hcSet"+t]=c+t})}var s=t.color,n=t.each,o=t.getTZOffset,r=t.merge,a=t.pick,h=t.win;t.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),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:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),weekdays:"星期天 星期一 星期二 星期三 星期四 星期五 星期六".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{useUTC:!0,VMLRadialGradientURL:"http://code.highcharts.com/5.0.14/gfx/vml-radial-gradient.png"},chart:{borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},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",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:t.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:t.isTouchDevice?25:10,backgroundColor:s("#f7f7f7").setOpacity(.85).get(),borderWidth:1,headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:""}},t.setOptions=function(e){return t.defaultOptions=r(!0,t.defaultOptions,e),i(),t.defaultOptions},t.getOptions=function(){return t.defaultOptions},t.defaultPlotOptions=t.defaultOptions.plotOptions,i()}(t),function(t){var e=t.correctFloat,i=t.defined,s=t.destroyObjectProperties,n=t.isNumber,o=t.merge,r=t.pick,a=t.deg2rad;t.Tick=function(t,e,i,s){this.axis=t,this.pos=e,this.type=i||"",this.isNewLabel=this.isNew=!0,i||s||this.addLabel()},t.Tick.prototype={addLabel:function(){var t,s=this.axis,n=s.options,a=s.chart,h=s.categories,l=s.names,c=this.pos,d=n.labels,p=s.tickPositions,u=c===p[0],f=c===p[p.length-1],l=h?r(h[c],l[c],c):c,h=this.label,p=p.info;s.isDatetimeAxis&&p&&(t=n.dateTimeLabelFormats[p.higherRanks[c]||p.unitName]),this.isFirst=u,this.isLast=f,n=s.labelFormatter.call({axis:s,chart:a,isFirst:u,isLast:f,dateTimeLabelFormat:t,value:s.isLog?e(s.lin2log(l)):l,pos:c}),i(h)?h&&h.attr({text:n}):(this.labelLength=(this.label=h=i(n)&&d.enabled?a.renderer.text(n,0,0,d.useHTML).css(o(d.style)).add(s.labelGroup):null)&&h.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(t){var e,i=this.axis,s=t.x,n=i.chart.chartWidth,o=i.chart.spacing,h=r(i.labelLeft,Math.min(i.pos,o[3])),o=r(i.labelRight,Math.max(i.pos+i.len,n-o[1])),l=this.label,c=this.rotation,d={left:0,center:.5,right:1}[i.labelAlign],p=l.getBBox().width,u=i.getSlotWidth(),f=u,g=1,m={};c?0>c&&s-d*p<h?e=Math.round(s/Math.cos(c*a)-h):0<c&&s+d*p>o&&(e=Math.round((n-s)/Math.cos(c*a))):(n=s+(1-d)*p,s-d*p<h?f=t.x+f*(1-d)-h:n>o&&(f=o-t.x+f*d,g=-1),f=Math.min(u,f),f<u&&"center"===i.labelAlign&&(t.x+=g*(u-f-d*(u-Math.min(p,f)))),(p>f||i.autoRotation&&(l.styles||{}).width)&&(e=f)),e&&(m.width=e,(i.options.labels.style||{}).textOverflow||(m.textOverflow="ellipsis"),l.css(m))},getPosition:function(t,e,i,s){var n=this.axis,o=n.chart,r=s&&o.oldChartHeight||o.chartHeight;return{x:t?n.translate(e+i,null,null,s)+n.transB:n.left+n.offset+(n.opposite?(s&&o.oldChartWidth||o.chartWidth)-n.right-n.left:0),y:t?r-n.bottom+n.offset-(n.opposite?n.height:0):r-n.translate(e+i,null,null,s)-n.transB}},getLabelPosition:function(t,e,s,n,o,r,h,l){var c=this.axis,d=c.transA,p=c.reversed,u=c.staggerLines,f=c.tickRotCorr||{x:0,y:0},g=o.y;return i(g)||(g=0===c.side?s.rotation?-8:-s.getBBox().height:2===c.side?f.y+8:Math.cos(s.rotation*a)*(f.y-s.getBBox(!1,0).height/2)),t=t+o.x+f.x-(r&&n?r*d*(p?-1:1):0),e=e+g-(r&&!n?r*d*(p?1:-1):0),u&&(s=h/(l||1)%u,c.opposite&&(s=u-s-1),e+=c.labelOffset/u*s),{x:t,y:Math.round(e)}},getMarkPath:function(t,e,i,s,n,o){return o.crispLine(["M",t,e,"L",t+(n?0:-i),e+(n?i:0)],s)},renderGridLine:function(t,e,i){var s=this.axis,n=s.options,o=this.gridLine,r={},a=this.pos,h=this.type,l=s.tickmarkOffset,c=s.chart.renderer,d=h?h+"Grid":"grid",p=n[d+"LineWidth"],u=n[d+"LineColor"],n=n[d+"LineDashStyle"];o||(r.stroke=u,r["stroke-width"]=p,n&&(r.dashstyle=n),h||(r.zIndex=1),t&&(r.opacity=0),this.gridLine=o=c.path().attr(r).addClass("highcharts-"+(h?h+"-":"")+"grid-line").add(s.gridGroup)),!t&&o&&(t=s.getPlotLinePath(a+l,o.strokeWidth()*i,t,!0))&&o[this.isNew?"attr":"animate"]({d:t,opacity:e})},renderMark:function(t,e,i){var s=this.axis,n=s.options,o=s.chart.renderer,a=this.type,h=a?a+"Tick":"tick",l=s.tickSize(h),c=this.mark,d=!c,p=t.x;t=t.y;var u=r(n[h+"Width"],!a&&s.isXAxis?1:0),n=n[h+"Color"];l&&(s.opposite&&(l[0]=-l[0]),d&&(this.mark=c=o.path().addClass("highcharts-"+(a?a+"-":"")+"tick").add(s.axisGroup),c.attr({stroke:n,"stroke-width":u})),c[d?"attr":"animate"]({d:this.getMarkPath(p,t,l[0],c.strokeWidth()*i,s.horiz,o),opacity:e}))},renderLabel:function(t,e,i,s){var o=this.axis,a=o.horiz,h=o.options,l=this.label,c=h.labels,d=c.step,p=o.tickmarkOffset,u=!0,f=t.x;t=t.y,l&&n(f)&&(l.xy=t=this.getLabelPosition(f,t,l,a,c,p,s,d),this.isFirst&&!this.isLast&&!r(h.showFirstLabel,1)||this.isLast&&!this.isFirst&&!r(h.showLastLabel,1)?u=!1:!a||o.isRadial||c.step||c.rotation||e||0===i||this.handleOverflow(t),d&&s%d&&(u=!1),u&&n(t.y)?(t.opacity=i,l[this.isNewLabel?"attr":"animate"](t),this.isNewLabel=!1):(l.attr("y",-9999),this.isNewLabel=!0),this.isNew=!1)},render:function(t,e,i){var s=this.axis,n=s.horiz,o=this.getPosition(n,this.pos,s.tickmarkOffset,e),a=o.x,h=o.y,s=n&&a===s.pos+s.len||!n&&h===s.pos?-1:1;i=r(i,1),this.isActive=!0,this.renderGridLine(e,i,s),this.renderMark(o,i,s),this.renderLabel(o,e,i,t)},destroy:function(){s(this,this.axis)}}}(t);var e=function(t){var e=t.addEvent,i=t.animObject,s=t.arrayMax,n=t.arrayMin,o=t.color,r=t.correctFloat,a=t.defaultOptions,h=t.defined,l=t.deg2rad,c=t.destroyObjectProperties,d=t.each,p=t.extend,u=t.fireEvent,f=t.format,g=t.getMagnitude,m=t.grep,v=t.inArray,x=t.isArray,y=t.isNumber,b=t.isString,k=t.merge,M=t.normalizeTickInterval,w=t.objectEach,S=t.pick,T=t.removeEvent,A=t.splat,C=t.syncTimeout,L=t.Tick,P=function(){this.init.apply(this,arguments)};return t.extend(P.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return t.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(t,i){var s=i.isX,n=this;n.chart=t,n.horiz=t.inverted&&!n.isZAxis?!s:s,n.isXAxis=s,n.coll=n.coll||(s?"xAxis":"yAxis"),n.opposite=i.opposite,n.side=i.side||(n.horiz?n.opposite?0:2:n.opposite?1:3),n.setOptions(i);var o=this.options,r=o.type;n.labelFormatter=o.labels.formatter||n.defaultLabelFormatter,n.userOptions=i,n.minPixelPadding=0,n.reversed=o.reversed,n.visible=!1!==o.visible,n.zoomEnabled=!1!==o.zoomEnabled,n.hasNames="category"===r||!0===o.categories,n.categories=o.categories||n.hasNames,n.names=n.names||[],n.plotLinesAndBandsGroups={},n.isLog="logarithmic"===r,n.isDatetimeAxis="datetime"===r,n.positiveValuesOnly=n.isLog&&!n.allowNegativeLog,n.isLinked=h(o.linkedTo),n.ticks={},n.labelEdge=[],n.minorTicks={},n.plotLinesAndBands=[],n.alternateBands={},n.len=0,n.minRange=n.userMinRange=o.minRange||o.maxZoom,
- n.range=o.range,n.offset=o.offset||0,n.stacks={},n.oldStacks={},n.stacksTouched=0,n.max=null,n.min=null,n.crosshair=S(o.crosshair,A(t.options.tooltip.crosshairs)[s?0:1],!1),i=n.options.events,-1===v(n,t.axes)&&(s?t.axes.splice(t.xAxis.length,0,n):t.axes.push(n),t[n.coll].push(n)),n.series=n.series||[],t.inverted&&!n.isZAxis&&s&&void 0===n.reversed&&(n.reversed=!0),w(i,function(t,i){e(n,i,t)}),n.lin2log=o.linearToLogConverter||n.lin2log,n.isLog&&(n.val2lin=n.log2lin,n.lin2val=n.lin2log)},setOptions:function(t){this.options=k(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],k(a[this.coll],t))},defaultLabelFormatter:function(){var e,i=this.axis,s=this.value,n=i.categories,o=this.dateTimeLabelFormat,r=a.lang,h=r.numericSymbols,r=r.numericSymbolMagnitude||1e3,l=h&&h.length,c=i.options.labels.format,i=i.isLog?Math.abs(s):i.tickInterval;if(c)e=f(c,this);else if(n)e=s;else if(o)e=t.dateFormat(o,s);else if(l&&1e3<=i)for(;l--&&void 0===e;)n=Math.pow(r,l+1),i>=n&&0===10*s%n&&null!==h[l]&&0!==s&&(e=t.numberFormat(s/n,-1)+h[l]);return void 0===e&&(e=1e4<=Math.abs(s)?t.numberFormat(s,-1):t.numberFormat(s,-1,void 0,"")),e},getSeriesExtremes:function(){var t=this,e=t.chart;t.hasVisibleSeries=!1,t.dataMin=t.dataMax=t.threshold=null,t.softThreshold=!t.isXAxis,t.buildStacks&&t.buildStacks(),d(t.series,function(i){if(i.visible||!e.options.chart.ignoreHiddenSeries){var o,r=i.options,a=r.threshold;t.hasVisibleSeries=!0,t.positiveValuesOnly&&0>=a&&(a=null),t.isXAxis?(r=i.xData,r.length&&(i=n(r),y(i)||i instanceof Date||(r=m(r,function(t){return y(t)}),i=n(r)),t.dataMin=Math.min(S(t.dataMin,r[0]),i),t.dataMax=Math.max(S(t.dataMax,r[0]),s(r)))):(i.getExtremes(),o=i.dataMax,i=i.dataMin,h(i)&&h(o)&&(t.dataMin=Math.min(S(t.dataMin,i),i),t.dataMax=Math.max(S(t.dataMax,o),o)),h(a)&&(t.threshold=a),(!r.softThreshold||t.positiveValuesOnly)&&(t.softThreshold=!1))}})},translate:function(t,e,i,s,n,o){var r=this.linkedParent||this,a=1,h=0,l=s?r.oldTransA:r.transA;s=s?r.oldMin:r.min;var c=r.minPixelPadding;return n=(r.isOrdinal||r.isBroken||r.isLog&&n)&&r.lin2val,l||(l=r.transA),i&&(a*=-1,h=r.len),r.reversed&&(a*=-1,h-=a*(r.sector||r.len)),e?(t=(t*a+h-c)/l+s,n&&(t=r.lin2val(t))):(n&&(t=r.val2lin(t)),t=a*(t-s)*l+h+a*c+(y(o)?l*o:0)),t},toPixels:function(t,e){return this.translate(t,!1,!this.horiz,null,!0)+(e?0:this.pos)},toValue:function(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(t,e,i,s,n){var o,r,a,h=this.chart,l=this.left,c=this.top,d=i&&h.oldChartHeight||h.chartHeight,p=i&&h.oldChartWidth||h.chartWidth;o=this.transB;var u=function(t,e,i){return(t<e||t>i)&&(s?t=Math.min(Math.max(e,t),i):a=!0),t};return n=S(n,this.translate(t,null,null,i)),t=i=Math.round(n+o),o=r=Math.round(d-n-o),y(n)?this.horiz?(o=c,r=d-this.bottom,t=i=u(t,l,l+this.width)):(t=l,i=p-this.right,o=r=u(o,c,c+this.height)):a=!0,a&&!s?null:h.renderer.crispLine(["M",t,o,"L",i,r],e||1)},getLinearTickPositions:function(t,e,i){var s,n=r(Math.floor(e/t)*t);i=r(Math.ceil(i/t)*t);var o=[];if(this.single)return[e];for(e=n;e<=i&&(o.push(e),e=r(e+t),e!==s);)s=e;return o},getMinorTickPositions:function(){var t=this,e=t.options,i=t.tickPositions,s=t.minorTickInterval,n=[],o=t.pointRangePadding||0,r=t.min-o,o=t.max+o,a=o-r;if(a&&a/s<t.len/3)if(t.isLog)d(this.paddedTicks,function(e,i,o){i&&n.push.apply(n,t.getLogTickPositions(s,o[i-1],o[i],!0))});else if(t.isDatetimeAxis&&"auto"===e.minorTickInterval)n=n.concat(t.getTimeTicks(t.normalizeTimeTickInterval(s),r,o,e.startOfWeek));else for(e=r+(i[0]-r)%s;e<=o&&e!==n[0];e+=s)n.push(e);return 0!==n.length&&t.trimTicks(n),n},adjustForMinRange:function(){var t,e,i,o,r,a,l,c,p=this.options,u=this.min,f=this.max;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(h(p.min)||h(p.max)?this.minRange=null:(d(this.series,function(t){for(a=t.xData,o=l=t.xIncrement?1:a.length-1;0<o;o--)r=a[o]-a[o-1],(void 0===i||r<i)&&(i=r)}),this.minRange=Math.min(5*i,this.dataMax-this.dataMin))),f-u<this.minRange&&(e=this.dataMax-this.dataMin>=this.minRange,c=this.minRange,t=(c-f+u)/2,t=[u-t,S(p.min,u-t)],e&&(t[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),u=s(t),f=[u+c,S(p.max,u+c)],e&&(f[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),f=n(f),f-u<c&&(t[0]=f-c,t[1]=S(p.min,f-c),u=s(t))),this.min=u,this.max=f},getClosest:function(){var t;return this.categories?t=1:d(this.series,function(e){var i=e.closestPointRange,s=e.visible||!e.chart.options.chart.ignoreHiddenSeries;!e.noSharedTooltip&&h(i)&&s&&(t=h(t)?Math.min(t,i):i)}),t},nameToX:function(t){var e,i=x(this.categories),s=i?this.categories:this.names,n=t.options.x;return t.series.requireSorting=!1,h(n)||(n=!1===this.options.uniqueNames?t.series.autoIncrement():v(t.name,s)),-1===n?i||(e=s.length):e=n,void 0!==e&&(this.names[e]=t.name),e},updateNames:function(){var t=this;0<this.names.length&&(this.names.length=0,this.minRange=this.userMinRange,d(this.series||[],function(e){e.xIncrement=null,e.points&&!e.isDirtyData||(e.processData(),e.generatePoints()),d(e.points,function(i,s){var n;i.options&&(n=t.nameToX(i),void 0!==n&&n!==i.x&&(i.x=n,e.xData[s]=n))})}))},setAxisTranslation:function(t){var e,i=this,s=i.max-i.min,n=i.axisPointRange||0,o=0,r=0,a=i.linkedParent,h=!!i.categories,l=i.transA,c=i.isXAxis;(c||h||n)&&(e=i.getClosest(),a?(o=a.minPointOffset,r=a.pointRangePadding):d(i.series,function(t){var s=h?1:c?S(t.options.pointRange,e,0):i.axisPointRange||0;t=t.options.pointPlacement,n=Math.max(n,s),i.single||(o=Math.max(o,b(t)?0:s/2),r=Math.max(r,"on"===t?0:s))}),a=i.ordinalSlope&&e?i.ordinalSlope/e:1,i.minPointOffset=o*=a,i.pointRangePadding=r*=a,i.pointRange=Math.min(n,s),c&&(i.closestPointRange=e)),t&&(i.oldTransA=l),i.translationSlope=i.transA=l=i.options.staticScale||i.len/(s+r||1),i.transB=i.horiz?i.left:i.bottom,i.minPixelPadding=l*o},minFromRange:function(){return this.max-this.range},setTickInterval:function(e){var i,s,n,o,a=this,l=a.chart,c=a.options,p=a.isLog,f=a.log2lin,m=a.isDatetimeAxis,v=a.isXAxis,x=a.isLinked,b=c.maxPadding,k=c.minPadding,w=c.tickInterval,T=c.tickPixelInterval,A=a.categories,C=a.threshold,L=a.softThreshold;m||A||x||this.getTickAmount(),n=S(a.userMin,c.min),o=S(a.userMax,c.max),x?(a.linkedParent=l[a.coll][c.linkedTo],l=a.linkedParent.getExtremes(),a.min=S(l.min,l.dataMin),a.max=S(l.max,l.dataMax),c.type!==a.linkedParent.options.type&&t.error(11,1)):(!L&&h(C)&&(a.dataMin>=C?(i=C,k=0):a.dataMax<=C&&(s=C,b=0)),a.min=S(n,i,a.dataMin),a.max=S(o,s,a.dataMax)),p&&(a.positiveValuesOnly&&!e&&0>=Math.min(a.min,S(a.dataMin,a.min))&&t.error(10,1),a.min=r(f(a.min),15),a.max=r(f(a.max),15)),a.range&&h(a.max)&&(a.userMin=a.min=n=Math.max(a.dataMin,a.minFromRange()),a.userMax=o=a.max,a.range=null),u(a,"foundExtremes"),a.beforePadding&&a.beforePadding(),a.adjustForMinRange(),!(A||a.axisPointRange||a.usePercentage||x)&&h(a.min)&&h(a.max)&&(f=a.max-a.min)&&(!h(n)&&k&&(a.min-=f*k),!h(o)&&b&&(a.max+=f*b)),y(c.softMin)&&(a.min=Math.min(a.min,c.softMin)),y(c.softMax)&&(a.max=Math.max(a.max,c.softMax)),y(c.floor)&&(a.min=Math.max(a.min,c.floor)),y(c.ceiling)&&(a.max=Math.min(a.max,c.ceiling)),L&&h(a.dataMin)&&(C=C||0,!h(n)&&a.min<C&&a.dataMin>=C?a.min=C:!h(o)&&a.max>C&&a.dataMax<=C&&(a.max=C)),a.tickInterval=a.min===a.max||void 0===a.min||void 0===a.max?1:x&&!w&&T===a.linkedParent.options.tickPixelInterval?w=a.linkedParent.tickInterval:S(w,this.tickAmount?(a.max-a.min)/Math.max(this.tickAmount-1,1):void 0,A?1:(a.max-a.min)*T/Math.max(a.len,T)),v&&!e&&d(a.series,function(t){t.processData(a.min!==a.oldMin||a.max!==a.oldMax)}),a.setAxisTranslation(!0),a.beforeSetTickPositions&&a.beforeSetTickPositions(),a.postProcessTickInterval&&(a.tickInterval=a.postProcessTickInterval(a.tickInterval)),a.pointRange&&!w&&(a.tickInterval=Math.max(a.pointRange,a.tickInterval)),e=S(c.minTickInterval,a.isDatetimeAxis&&a.closestPointRange),!w&&a.tickInterval<e&&(a.tickInterval=e),m||p||w||(a.tickInterval=M(a.tickInterval,null,g(a.tickInterval),S(c.allowDecimals,!(.5<a.tickInterval&&5>a.tickInterval&&1e3<a.max&&9999>a.max)),!!this.tickAmount)),this.tickAmount||(a.tickInterval=a.unsquish()),this.setTickPositions()},setTickPositions:function(){var t,e=this.options,i=e.tickPositions,s=e.tickPositioner,n=e.startOnTick,o=e.endOnTick;this.tickmarkOffset=this.categories&&"between"===e.tickmarkPlacement&&1===this.tickInterval?.5:0,this.minorTickInterval="auto"===e.minorTickInterval&&this.tickInterval?this.tickInterval/5:e.minorTickInterval,this.single=this.min===this.max&&h(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==e.allowDecimals),this.tickPositions=t=i&&i.slice(),!t&&(t=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,e.units),this.min,this.max,e.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),t.length>this.len&&(t=[t[0],t.pop()]),this.tickPositions=t,s&&(s=s.apply(this,[this.min,this.max])))&&(this.tickPositions=t=s),this.paddedTicks=t.slice(0),this.trimTicks(t,n,o),this.isLinked||(this.single&&2>t.length&&(this.min-=.5,this.max+=.5),i||s||this.adjustTickAmount())},trimTicks:function(t,e,i){var s=t[0],n=t[t.length-1],o=this.minPointOffset||0;if(!this.isLinked){if(e&&-(1/0)!==s)this.min=s;else for(;this.min-o>t[0];)t.shift();if(i)this.max=n;else for(;this.max+o<t[t.length-1];)t.pop();0===t.length&&h(s)&&t.push((n+s)/2)}},alignToOthers:function(){var t,e={},i=this.options;return!1===this.chart.options.chart.alignTicks||!1===i.alignTicks||this.isLog||d(this.chart[this.coll],function(i){var s=i.options,s=[i.horiz?s.left:s.top,s.width,s.height,s.pane].join();i.series.length&&(e[s]?t=!0:e[s]=1)}),t},getTickAmount:function(){var t=this.options,e=t.tickAmount,i=t.tickPixelInterval;!h(t.tickInterval)&&this.len<i&&!this.isRadial&&!this.isLog&&t.startOnTick&&t.endOnTick&&(e=2),!e&&this.alignToOthers()&&(e=Math.ceil(this.len/i)+1),4>e&&(this.finalTickAmt=e,e=5),this.tickAmount=e},adjustTickAmount:function(){var t=this.tickInterval,e=this.tickPositions,i=this.tickAmount,s=this.finalTickAmt,n=e&&e.length;if(n<i){for(;e.length<i;)e.push(r(e[e.length-1]+t));this.transA*=(n-1)/(i-1),this.max=e[e.length-1]}else n>i&&(this.tickInterval*=2,this.setTickPositions());if(h(s)){for(t=i=e.length;t--;)(3===s&&1===t%2||2>=s&&0<t&&t<i-1)&&e.splice(t,1);this.finalTickAmt=void 0}},setScale:function(){var t,e;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),e=this.len!==this.oldAxisLength,d(this.series,function(e){(e.isDirtyData||e.isDirty||e.xAxis.isDirty)&&(t=!0)}),e||t||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=e||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks()},setExtremes:function(t,e,i,s,n){var o=this,r=o.chart;i=S(i,!0),d(o.series,function(t){delete t.kdTree}),n=p(n,{min:t,max:e}),u(o,"setExtremes",n,function(){o.userMin=t,o.userMax=e,o.eventArgs=n,i&&r.redraw(s)})},zoom:function(t,e){var i=this.dataMin,s=this.dataMax,n=this.options,o=Math.min(i,S(n.min,i)),n=Math.max(s,S(n.max,s));return t===this.min&&e===this.max||(this.allowZoomOutside||(h(i)&&(t<o&&(t=o),t>n&&(t=n)),h(s)&&(e<o&&(e=o),e>n&&(e=n))),this.displayBtn=void 0!==t||void 0!==e,this.setExtremes(t,e,!1,void 0,{trigger:"zoom"})),!0},setAxisSize:function(){var e=this.chart,i=this.options,s=i.offsets||[0,0,0,0],n=this.horiz,o=this.width=Math.round(t.relativeLength(S(i.width,e.plotWidth-s[3]+s[1]),e.plotWidth)),r=this.height=Math.round(t.relativeLength(S(i.height,e.plotHeight-s[0]+s[2]),e.plotHeight)),a=this.top=Math.round(t.relativeLength(S(i.top,e.plotTop+s[0]),e.plotHeight,e.plotTop)),i=this.left=Math.round(t.relativeLength(S(i.left,e.plotLeft+s[3]),e.plotWidth,e.plotLeft));this.bottom=e.chartHeight-r-a,this.right=e.chartWidth-o-i,this.len=Math.max(n?o:r,0),this.pos=n?i:a},getExtremes:function(){var t=this.isLog,e=this.lin2log;return{min:t?r(e(this.min)):this.min,max:t?r(e(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(t){var e=this.isLog,i=this.lin2log,s=e?i(this.min):this.min,e=e?i(this.max):this.max;return null===t?t=s:s>t?t=s:e<t&&(t=e),this.translate(t,0,1,0,1)},autoLabelAlign:function(t){return t=(S(t,0)-90*this.side+720)%360,15<t&&165>t?"right":195<t&&345>t?"left":"center"},tickSize:function(t){var e=this.options,i=e[t+"Length"],s=S(e[t+"Width"],"tick"===t&&this.isXAxis?1:0);if(s&&i)return"inside"===e[t+"Position"]&&(i=-i),[i,s]},labelMetrics:function(){var t=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[t]&&this.ticks[t].label)},unsquish:function(){var t,e,i,s=this.options.labels,n=this.horiz,o=this.tickInterval,r=o,a=this.len/(((this.categories?1:0)+this.max-this.min)/o),c=s.rotation,p=this.labelMetrics(),u=Number.MAX_VALUE,f=function(t){return t/=a||1,t=1<t?Math.ceil(t):1,t*o};return n?(i=!s.staggerLines&&!s.step&&(h(c)?[c]:a<S(s.autoRotationLimit,80)&&s.autoRotation))&&d(i,function(i){var s;(i===c||i&&-90<=i&&90>=i)&&(e=f(Math.abs(p.h/Math.sin(l*i))),s=e+Math.abs(i/360),s<u&&(u=s,t=i,r=e))}):s.step||(r=f(p.h)),this.autoRotation=i,this.labelRotation=S(t,c),r},getSlotWidth:function(){var t=this.chart,e=this.horiz,i=this.options.labels,s=Math.max(this.tickPositions.length-(this.categories?0:1),1),n=t.margin[3];return e&&2>(i.step||0)&&!i.rotation&&(this.staggerLines||1)*this.len/s||!e&&(n&&n-t.spacing[3]||.33*t.chartWidth)},renderUnsquish:function(){var t,e,i,s=this.chart,n=s.renderer,o=this.tickPositions,r=this.ticks,a=this.options.labels,h=this.horiz,l=this.getSlotWidth(),c=Math.max(1,Math.round(l-2*(a.padding||5))),p={},u=this.labelMetrics(),f=a.style&&a.style.textOverflow,g=0;if(b(a.rotation)||(p.rotation=a.rotation||0),d(o,function(t){(t=r[t])&&t.labelLength>g&&(g=t.labelLength)}),this.maxLabelLength=g,this.autoRotation)g>c&&g>u.h?p.rotation=this.labelRotation:this.labelRotation=0;else if(l&&(t={width:c+"px"},!f))for(t.textOverflow="clip",e=o.length;!h&&e--;)i=o[e],(c=r[i].label)&&(c.styles&&"ellipsis"===c.styles.textOverflow?c.css({textOverflow:"clip"}):r[i].labelLength>l&&c.css({width:l+"px"}),c.getBBox().height>this.len/o.length-(u.h-u.f)&&(c.specCss={textOverflow:"ellipsis"}));p.rotation&&(t={width:(g>.5*s.chartHeight?.33*s.chartHeight:s.chartHeight)+"px"},f||(t.textOverflow="ellipsis")),(this.labelAlign=a.align||this.autoLabelAlign(this.labelRotation))&&(p.align=this.labelAlign),d(o,function(e){var i=(e=r[e])&&e.label;i&&(i.attr(p),t&&i.css(k(t,i.specCss)),delete i.specCss,e.rotation=p.rotation)}),this.tickRotCorr=n.rotCorr(u.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||h(this.min)&&h(this.max)&&!!this.tickPositions},addTitle:function(t){var e,i=this.chart.renderer,s=this.horiz,n=this.opposite,o=this.options.title;this.axisTitle||((e=o.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:n?"right":"left",middle:"center",high:n?"left":"right"})[o.align]),this.axisTitle=i.text(o.text,0,0,o.useHTML).attr({zIndex:7,rotation:o.rotation||0,align:e}).addClass("highcharts-axis-title").css(o.style).add(this.axisGroup),this.axisTitle.isNew=!0),o.style.width||this.isRadial||this.axisTitle.css({width:this.len}),this.axisTitle[t?"show":"hide"](!0)},generateTick:function(t){var e=this.ticks;e[t]?e[t].addLabel():e[t]=new L(this,t)},getOffset:function(){var t,e,i,s=this,n=s.chart,o=n.renderer,r=s.options,a=s.tickPositions,l=s.ticks,c=s.horiz,p=s.side,u=n.inverted&&!s.isZAxis?[1,0,3,2][p]:p,f=0,g=0,m=r.title,v=r.labels,x=0,y=n.axisOffset,n=n.clipOffset,b=[-1,1,1,-1][p],k=r.className,M=s.axisParent,T=this.tickSize("tick");t=s.hasData(),s.showAxis=e=t||S(r.showEmpty,!0),s.staggerLines=s.horiz&&v.staggerLines,s.axisGroup||(s.gridGroup=o.g("grid").attr({zIndex:r.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(k||"")).add(M),s.axisGroup=o.g("axis").attr({zIndex:r.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(k||"")).add(M),s.labelGroup=o.g("axis-labels").attr({zIndex:v.zIndex||7}).addClass("highcharts-"+s.coll.toLowerCase()+"-labels "+(k||"")).add(M)),t||s.isLinked?(d(a,function(t,e){s.generateTick(t,e)}),s.renderUnsquish(),!1===v.reserveSpace||0!==p&&2!==p&&{1:"left",3:"right"}[p]!==s.labelAlign&&"center"!==s.labelAlign||d(a,function(t){x=Math.max(l[t].getLabelSize(),x)}),s.staggerLines&&(x*=s.staggerLines,s.labelOffset=x*(s.opposite?-1:1))):w(l,function(t,e){t.destroy(),delete l[e]}),m&&m.text&&!1!==m.enabled&&(s.addTitle(e),e&&!1!==m.reserveSpace&&(s.titleOffset=f=s.axisTitle.getBBox()[c?"height":"width"],i=m.offset,g=h(i)?0:S(m.margin,c?5:10))),s.renderLine(),s.offset=b*S(r.offset,y[p]),s.tickRotCorr=s.tickRotCorr||{x:0,y:0},o=0===p?-s.labelMetrics().h:2===p?s.tickRotCorr.y:0,g=Math.abs(x)+g,x&&(g=g-o+b*(c?S(v.y,s.tickRotCorr.y+8*b):v.x)),s.axisTitleMargin=S(i,g),y[p]=Math.max(y[p],s.axisTitleMargin+f+b*s.offset,g,t&&a.length&&T?T[0]+b*s.offset:0),a=2*Math.floor(s.axisLine.strokeWidth()/2),0<r.offset&&(a-=2*r.offset),n[u]=Math.max(n[u]||a,a)},getLinePath:function(t){var e=this.chart,i=this.opposite,s=this.offset,n=this.horiz,o=this.left+(i?this.width:0)+s,s=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine(["M",n?this.left:o,n?s:this.top,"L",n?e.chartWidth-this.right:o,n?s:e.chartHeight-this.bottom],t)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var t=this.horiz,e=this.left,i=this.top,s=this.len,n=this.options.title,o=t?e:i,r=this.opposite,a=this.offset,h=n.x||0,l=n.y||0,c=this.axisTitle,d=this.chart.renderer.fontMetrics(n.style&&n.style.fontSize,c),c=Math.max(c.getBBox(null,0).height-d.h-1,0),s={low:o+(t?0:s),middle:o+s/2,high:o+(t?s:0)}[n.align],e=(t?i+this.height:e)+(t?1:-1)*(r?-1:1)*this.axisTitleMargin+[-c,c,d.f,-c][this.side];return{x:t?s+h:e+(r?this.width:0)+a+h,y:t?e+l-(r?this.height:0)+a:s+l}},renderMinorTick:function(t){var e=this.chart.hasRendered&&y(this.oldMin),i=this.minorTicks;i[t]||(i[t]=new L(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)},renderTick:function(t,e){var i=this.isLinked,s=this.ticks,n=this.chart.hasRendered&&y(this.oldMin);(!i||t>=this.min&&t<=this.max)&&(s[t]||(s[t]=new L(this,t)),n&&s[t].isNew&&s[t].render(e,!0,.1),s[t].render(e))},render:function(){var e,s,n=this,o=n.chart,r=n.options,a=n.isLog,h=n.lin2log,l=n.isLinked,c=n.tickPositions,p=n.axisTitle,u=n.ticks,f=n.minorTicks,g=n.alternateBands,m=r.stackLabels,v=r.alternateGridColor,x=n.tickmarkOffset,b=n.axisLine,k=n.showAxis,M=i(o.renderer.globalAnimation);n.labelEdge.length=0,n.overlap=!1,d([u,f,g],function(t){w(t,function(t){t.isActive=!1})}),(n.hasData()||l)&&(n.minorTickInterval&&!n.categories&&d(n.getMinorTickPositions(),function(t){n.renderMinorTick(t)}),c.length&&(d(c,function(t,e){n.renderTick(t,e)}),x&&(0===n.min||n.single)&&(u[-1]||(u[-1]=new L(n,-1,null,!0)),u[-1].render(-1))),v&&d(c,function(i,r){s=void 0!==c[r+1]?c[r+1]+x:n.max-x,0===r%2&&i<n.max&&s<=n.max+(o.polar?-x:x)&&(g[i]||(g[i]=new t.PlotLineOrBand(n)),e=i+x,g[i].options={from:a?h(e):e,to:a?h(s):s,color:v},g[i].render(),g[i].isActive=!0)}),n._addedPlotLB||(d((r.plotLines||[]).concat(r.plotBands||[]),function(t){n.addPlotBandOrLine(t)}),n._addedPlotLB=!0)),d([u,f,g],function(t){var e,i=[],s=M.duration;w(t,function(t,e){t.isActive||(t.render(e,!1,0),t.isActive=!1,i.push(e))}),C(function(){for(e=i.length;e--;)t[i[e]]&&!t[i[e]].isActive&&(t[i[e]].destroy(),delete t[i[e]])},t!==g&&o.hasRendered&&s?s:0)}),b&&(b[b.isPlaced?"animate":"attr"]({d:this.getLinePath(b.strokeWidth())}),b.isPlaced=!0,b[k?"show":"hide"](!0)),p&&k&&(r=n.getTitlePosition(),y(r.y)?(p[p.isNew?"attr":"animate"](r),p.isNew=!1):(p.attr("y",-9999),p.isNew=!0)),m&&m.enabled&&n.renderStackTotals(),n.isDirty=!1},redraw:function(){this.visible&&(this.render(),d(this.plotLinesAndBands,function(t){t.render()})),d(this.series,function(t){t.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(t){var e,i=this,s=i.stacks,n=i.plotLinesAndBands;if(t||T(i),w(s,function(t,e){c(t),s[e]=null}),d([i.ticks,i.minorTicks,i.alternateBands],function(t){c(t)}),n)for(t=n.length;t--;)n[t].destroy();d("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(t){i[t]&&(i[t]=i[t].destroy())});for(e in i.plotLinesAndBandsGroups)i.plotLinesAndBandsGroups[e]=i.plotLinesAndBandsGroups[e].destroy();w(i,function(t,e){-1===v(e,i.keepProps)&&delete i[e]})},drawCrosshair:function(t,e){var i,s,n=this.crosshair,r=S(n.snap,!0),a=this.cross;t||(t=this.cross&&this.cross.e),this.crosshair&&!1!==(h(e)||!r)?(r?h(e)&&(s=this.isXAxis?e.plotX:this.len-e.plotY):s=t&&(this.horiz?t.chartX-this.pos:this.len-t.chartY+this.pos),h(s)&&(i=this.getPlotLinePath(e&&(this.isXAxis?e.x:S(e.stackY,e.y)),null,null,null,s)||null),h(i)?(e=this.categories&&!this.isRadial,a||(this.cross=a=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(e?"category ":"thin ")+n.className).attr({zIndex:S(n.zIndex,2)}).add(),a.attr({stroke:n.color||(e?o("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":S(n.width,1)}),n.dashStyle&&a.attr({dashstyle:n.dashStyle})),a.show().attr({d:i}),e&&!n.width&&a.attr({"stroke-width":this.transA}),this.cross.e=t):this.hideCrosshair()):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}}),t.Axis=P}(t);return function(t){var e=t.Axis,i=t.Date,s=t.dateFormat,n=t.defaultOptions,o=t.defined,r=t.each,a=t.extend,h=t.getMagnitude,l=t.getTZOffset,c=t.normalizeTickInterval,d=t.pick,p=t.timeUnits;e.prototype.getTimeTicks=function(t,e,h,c){var u,f,g,m=[],v={},x=n.global.useUTC,y=new i(e-Math.max(l(e),l(h))),b=i.hcMakeTime,k=t.unitRange,M=t.count;if(o(e)){y[i.hcSetMilliseconds](k>=p.second?0:M*Math.floor(y.getMilliseconds()/M)),k>=p.second&&y[i.hcSetSeconds](k>=p.minute?0:M*Math.floor(y.getSeconds()/M)),k>=p.minute&&y[i.hcSetMinutes](k>=p.hour?0:M*Math.floor(y[i.hcGetMinutes]()/M)),k>=p.hour&&y[i.hcSetHours](k>=p.day?0:M*Math.floor(y[i.hcGetHours]()/M)),k>=p.day&&y[i.hcSetDate](k>=p.month?1:M*Math.floor(y[i.hcGetDate]()/M)),k>=p.month&&(y[i.hcSetMonth](k>=p.year?0:M*Math.floor(y[i.hcGetMonth]()/M)),u=y[i.hcGetFullYear]()),k>=p.year&&y[i.hcSetFullYear](u-u%M),k===p.week&&y[i.hcSetDate](y[i.hcGetDate]()-y[i.hcGetDay]()+d(c,1)),u=y[i.hcGetFullYear](),c=y[i.hcGetMonth]();var w=y[i.hcGetDate](),S=y[i.hcGetHours]();for((i.hcTimezoneOffset||i.hcGetTimezoneOffset)&&(g=(!x||!!i.hcGetTimezoneOffset)&&(h-e>4*p.month||l(e)!==l(h)),y=y.getTime(),f=l(y),y=new i(y+f)),x=y.getTime(),e=1;x<h;)m.push(x),x=k===p.year?b(u+e*M,0):k===p.month?b(u,c+e*M):!g||k!==p.day&&k!==p.week?g&&k===p.hour?b(u,c,w,S+e*M,0,0,f)-f:x+k*M:b(u,c,w+e*M*(k===p.day?1:7)),e++;m.push(x),k<=p.hour&&1e4>m.length&&r(m,function(t){0===t%18e5&&"000000000"===s("%H%M%S%L",t)&&(v[t]="day")})}return m.info=a(t,{higherRanks:v,totalRange:k*M}),m},e.prototype.normalizeTimeTickInterval=function(t,e){var i=e||[["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]];e=i[i.length-1];var s,n=p[e[0]],o=e[1];for(s=0;s<i.length&&(e=i[s],n=p[e[0]],o=e[1],!(i[s+1]&&t<=(n*o[o.length-1]+p[i[s+1][0]])/2));s++);return n===p.year&&t<5*n&&(o=[1,2,5]),t=c(t/n,o,"year"===e[0]?Math.max(h(t/n),1):1),{unitRange:n,count:t,unitName:e[0]}}}(t),function(t){var e=t.Axis,i=t.getMagnitude,s=t.map,n=t.normalizeTickInterval,o=t.pick;e.prototype.getLogTickPositions=function(t,e,r,a){var h=this.options,l=this.len,c=this.lin2log,d=this.log2lin,p=[];if(a||(this._minorAutoInterval=null),.5<=t)t=Math.round(t),p=this.getLinearTickPositions(t,e,r);else if(.08<=t)for(var u,f,g,m,v,l=Math.floor(e),h=.3<t?[1,2,4]:.15<t?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];l<r+1&&!v;l++)for(f=h.length,u=0;u<f&&!v;u++)g=d(c(l)*h[u]),g>e&&(!a||m<=r)&&void 0!==m&&p.push(m),m>r&&(v=!0),m=g;else e=c(e),r=c(r),t=h[a?"minorTickInterval":"tickInterval"],t=o("auto"===t?null:t,this._minorAutoInterval,h.tickPixelInterval/(a?5:1)*(r-e)/((a?l/this.tickPositions.length:l)||1)),t=n(t,null,i(t)),p=s(this.getLinearTickPositions(t,e,r),d),a||(this._minorAutoInterval=t/5);return a||(this.tickInterval=t),p},e.prototype.log2lin=function(t){return Math.log(t)/Math.LN10},e.prototype.lin2log=function(t){return Math.pow(10,t)}}(t),function(t,e){var i=t.arrayMax,s=t.arrayMin,n=t.defined,o=t.destroyObjectProperties,r=t.each,a=t.erase,h=t.merge,l=t.pick;t.PlotLineOrBand=function(t,e){this.axis=t,e&&(this.options=e,this.id=e.id)},t.PlotLineOrBand.prototype={render:function(){var e=this,i=e.axis,s=i.horiz,o=e.options,r=o.label,a=e.label,c=o.to,d=o.from,p=o.value,u=n(d)&&n(c),f=n(p),g=e.svgElem,m=!g,v=[],x=o.color,y=l(o.zIndex,0),b=o.events,v={class:"highcharts-plot-"+(u?"band ":"line ")+(o.className||"")},k={},M=i.chart.renderer,w=u?"bands":"lines",S=i.log2lin;if(i.isLog&&(d=S(d),c=S(c),p=S(p)),f?(v={stroke:x,"stroke-width":o.width},o.dashStyle&&(v.dashstyle=o.dashStyle)):u&&(x&&(v.fill=x),o.borderWidth&&(v.stroke=o.borderColor,v["stroke-width"]=o.borderWidth)),k.zIndex=y,w+="-"+y,(x=i.plotLinesAndBandsGroups[w])||(i.plotLinesAndBandsGroups[w]=x=M.g("plot-"+w).attr(k).add()),m&&(e.svgElem=g=M.path().attr(v).add(x)),f)v=i.getPlotLinePath(p,g.strokeWidth());else{if(!u)return;v=i.getPlotBandPath(d,c,o)}return m&&v&&v.length?(g.attr({d:v}),b&&t.objectEach(b,function(t,i){g.on(i,function(t){b[i].apply(e,[t])})})):g&&(v?(g.show(),g.animate({d:v})):(g.hide(),a&&(e.label=a=a.destroy()))),r&&n(r.text)&&v&&v.length&&0<i.width&&0<i.height&&!v.flat?(r=h({align:s&&u&&"center",x:s?!u&&4:10,verticalAlign:!s&&u&&"middle",y:s?u?16:10:u?6:-4,rotation:s&&!u&&90},r),this.renderLabel(r,v,u,y)):a&&a.hide(),e},renderLabel:function(t,e,n,o){var r=this.label,a=this.axis.chart.renderer;r||(r={align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(n?"band":"line")+"-label "+(t.className||"")},r.zIndex=o,this.label=r=a.text(t.text,0,0,t.useHTML).attr(r).add(),r.css(t.style)),o=[e[1],e[4],n?e[6]:e[1]],e=[e[2],e[5],n?e[7]:e[2]],n=s(o),a=s(e),r.align(t,!1,{x:n,y:a,width:i(o)-n,height:i(e)-a}),r.show()},destroy:function(){a(this.axis.plotLinesAndBands,this),delete this.axis,o(this)}},t.extend(e.prototype,{getPlotBandPath:function(t,e){var i=this.getPlotLinePath(e,null,null,!0),s=this.getPlotLinePath(t,null,null,!0),n=this.horiz,o=1;return t=t<this.min&&e<this.min||t>this.max&&e>this.max,s&&i?(t&&(s.flat=s.toString()===i.toString(),o=0),s.push(n&&i[4]===s[4]?i[4]+o:i[4],n||i[5]!==s[5]?i[5]:i[5]+o,n&&i[1]===s[1]?i[1]+o:i[1],n||i[2]!==s[2]?i[2]:i[2]+o)):s=null,s},addPlotBand:function(t){return this.addPlotBandOrLine(t,"plotBands")},addPlotLine:function(t){return this.addPlotBandOrLine(t,"plotLines")},addPlotBandOrLine:function(e,i){var s=new t.PlotLineOrBand(this,e).render(),n=this.userOptions;return s&&(i&&(n[i]=n[i]||[],n[i].push(e)),this.plotLinesAndBands.push(s)),s},removePlotBandOrLine:function(t){for(var e=this.plotLinesAndBands,i=this.options,s=this.userOptions,n=e.length;n--;)e[n].id===t&&e[n].destroy();r([i.plotLines||[],s.plotLines||[],i.plotBands||[],s.plotBands||[]],function(e){for(n=e.length;n--;)e[n].id===t&&a(e,e[n])})},removePlotBand:function(t){this.removePlotBandOrLine(t)},removePlotLine:function(t){this.removePlotBandOrLine(t)}})}(t,e),function(t){var e=t.dateFormat,i=t.each,s=t.extend,n=t.format,o=t.isNumber,r=t.map,a=t.merge,h=t.pick,l=t.splat,c=t.syncTimeout,d=t.timeUnits;t.Tooltip=function(){this.init.apply(this,arguments)},t.Tooltip.prototype={init:function(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=e.split&&!t.inverted,this.shared=e.shared||this.split},cleanSplit:function(t){i(this.chart.series,function(e){var i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})},getLabel:function(){var t=this.chart.renderer,e=this.options;return this.label||(this.split?this.label=t.g("tooltip"):(this.label=t.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add()),this.label},update:function(t){this.destroy(),a(!0,this.chart.options.tooltip.userOptions,t),this.init(this.chart,a(!0,this.options,t))},destroy:function(){this.label&&(this.label=this.label.destroy()),this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy()),clearTimeout(this.hideTimer),clearTimeout(this.tooltipTimeout)},move:function(t,e,i,n){var o=this,r=o.now,a=!1!==o.options.animation&&!o.isHidden&&(1<Math.abs(t-r.x)||1<Math.abs(e-r.y)),h=o.followPointer||1<o.len;s(r,{x:a?(2*r.x+t)/3:t,y:a?(r.y+e)/2:e,anchorX:h?void 0:a?(2*r.anchorX+i)/3:i,anchorY:h?void 0:a?(r.anchorY+n)/2:n}),o.getLabel().attr(r),a&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){o&&o.move(t,e,i,n)},32))},hide:function(t){var e=this;clearTimeout(this.hideTimer),t=h(t,this.options.hideDelay,500),this.isHidden||(this.hideTimer=c(function(){e.getLabel()[t?"fadeOut":"hide"](),e.isHidden=!0},t))},getAnchor:function(t,e){var s,n,o,a=this.chart,h=a.inverted,c=a.plotTop,d=a.plotLeft,p=0,u=0;return t=l(t),s=t[0].tooltipPos,this.followPointer&&e&&(void 0===e.chartX&&(e=a.pointer.normalize(e)),s=[e.chartX-a.plotLeft,e.chartY-c]),s||(i(t,function(t){n=t.series.yAxis,o=t.series.xAxis,p+=t.plotX+(!h&&o?o.left-d:0),u+=(t.plotLow?(t.plotLow+t.plotHigh)/2:t.plotY)+(!h&&n?n.top-c:0)}),p/=t.length,u/=t.length,s=[h?a.plotWidth-u:p,this.shared&&!h&&1<t.length&&e?e.chartY-c:h?a.plotHeight-p:u]),r(s,Math.round)},getPosition:function(t,e,i){var s,n=this.chart,o=this.distance,r={},a=i.h||0,l=["y",n.chartHeight,e,i.plotY+n.plotTop,n.plotTop,n.plotTop+n.plotHeight],c=["x",n.chartWidth,t,i.plotX+n.plotLeft,n.plotLeft,n.plotLeft+n.plotWidth],d=!this.followPointer&&h(i.ttBelow,!n.inverted==!!i.negative),p=function(t,e,i,s,n,h){var l=i<s-o,c=s+o+i<e,p=s-o-i;if(s+=o,d&&c)r[t]=s;else if(!d&&l)r[t]=p;else if(l)r[t]=Math.min(h-i,0>p-a?p:p-a);else{if(!c)return!1;r[t]=Math.max(n,s+a+i>e?s:s+a)}},u=function(t,e,i,s){var n;return s<o||s>e-o?n=!1:r[t]=s<i/2?1:s>e-i/2?e-i-2:s-i/2,n},f=function(t){var e=l;l=c,c=e,s=t},g=function(){!1!==p.apply(0,l)?!1!==u.apply(0,c)||s||(f(!0),g()):s?r.x=r.y=0:(f(!0),g())};return(n.inverted||1<this.len)&&f(),g(),r},defaultFormatter:function(t){var e,i=this.points||l(this);return e=[t.tooltipFooterHeaderFormatter(i[0])],e=e.concat(t.bodyFormatter(i)),e.push(t.tooltipFooterHeaderFormatter(i[0],!0)),e},refresh:function(t,e){var s,n,o,r=this.options,a=t,c={},d=[];s=r.formatter||this.defaultFormatter;var p,c=this.shared;r.enabled&&(clearTimeout(this.hideTimer),this.followPointer=l(a)[0].series.tooltipOptions.followPointer,o=this.getAnchor(a,e),e=o[0],n=o[1],!c||a.series&&a.series.noSharedTooltip?c=a.getLabelConfig():(i(a,function(t){t.setState("hover"),d.push(t.getLabelConfig())}),c={x:a[0].category,y:a[0].y},c.points=d,a=a[0]),this.len=d.length,c=s.call(c,this),p=a.series,this.distance=h(p.tooltipOptions.distance,16),!1===c?this.hide():(s=this.getLabel(),this.isHidden&&s.attr({opacity:1}).show(),this.split?this.renderSplit(c,t):(r.style.width||s.css({width:this.chart.spacingBox.width}),s.attr({text:c&&c.join?c.join(""):c}),s.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+h(a.colorIndex,p.colorIndex)),
- s.attr({stroke:r.borderColor||a.color||p.color||"#666666"}),this.updatePosition({plotX:e,plotY:n,negative:a.negative,ttBelow:a.ttBelow,h:o[2]||0})),this.isHidden=!1))},renderSplit:function(e,s){var n=this,o=[],r=this.chart,a=r.renderer,l=!0,c=this.options,d=0,p=this.getLabel();i(e.slice(0,s.length+1),function(t,e){if(!1!==t){e=s[e-1]||{isHeader:!0,plotX:s[0].plotX};var i=e.series||n,u=i.tt,f=e.series||{},g="highcharts-color-"+h(e.colorIndex,f.colorIndex,"none");u||(i.tt=u=a.label(null,null,null,"callout").addClass("highcharts-tooltip-box "+g).attr({padding:c.padding,r:c.borderRadius,fill:c.backgroundColor,stroke:c.borderColor||e.color||f.color||"#333333","stroke-width":c.borderWidth}).add(p)),u.isActive=!0,u.attr({text:t}),u.css(c.style).shadow(c.shadow),t=u.getBBox(),f=t.width+u.strokeWidth(),e.isHeader?(d=t.height,f=Math.max(0,Math.min(e.plotX+r.plotLeft-f/2,r.chartWidth-f))):f=e.plotX+r.plotLeft-h(c.distance,16)-f,0>f&&(l=!1),t=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0),t-=r.plotTop,o.push({target:e.isHeader?r.plotHeight+d:t,rank:e.isHeader?1:0,size:i.tt.getBBox().height+1,point:e,x:f,tt:u})}}),this.cleanSplit(),t.distribute(o,r.plotHeight+d),i(o,function(t){var e=t.point,i=e.series;t.tt.attr({visibility:void 0===t.pos?"hidden":"inherit",x:l||e.isHeader?t.x:e.plotX+r.plotLeft+h(c.distance,16),y:t.pos+r.plotTop,anchorX:e.isHeader?e.plotX+r.plotLeft:e.plotX+i.xAxis.pos,anchorY:e.isHeader?t.pos+r.plotTop-15:e.plotY+i.yAxis.pos})})},updatePosition:function(t){var e=this.chart,i=this.getLabel(),i=(this.options.positioner||this.getPosition).call(this,i.width,i.height,t);this.move(Math.round(i.x),Math.round(i.y||0),t.plotX+e.plotLeft,t.plotY+e.plotTop)},getDateFormat:function(t,i,s,n){var o,r,a=e("%m-%d %H:%M:%S.%L",i),h={millisecond:15,second:12,minute:9,hour:6,day:3},l="millisecond";for(r in d){if(t===d.week&&+e("%w",i)===s&&"00:00:00.000"===a.substr(6)){r="week";break}if(d[r]>t){r=l;break}if(h[r]&&a.substr(h[r])!=="01-01 00:00:00.000".substr(h[r]))break;"week"!==r&&(l=r)}return r&&(o=n[r]),o},getXDateFormat:function(t,e,i){e=e.dateTimeLabelFormats;var s=i&&i.closestPointRange;return(s?this.getDateFormat(s,t.x,i.options.startOfWeek,e):e.day)||e.year},tooltipFooterHeaderFormatter:function(t,e){var i=e?"footer":"header";e=t.series;var s=e.tooltipOptions,r=s.xDateFormat,a=e.xAxis,h=a&&"datetime"===a.options.type&&o(t.key),i=s[i+"Format"];return h&&!r&&(r=this.getXDateFormat(t,s,a)),h&&r&&(i=i.replace("{point.key}","{point.key:"+r+"}")),n(i,{point:t,series:e})},bodyFormatter:function(t){return r(t,function(t){var e=t.series.tooltipOptions;return(e.pointFormatter||t.point.tooltipFormatter).call(t.point,e.pointFormat)})}}}(t),function(t){var e=t.addEvent,i=t.attr,s=t.charts,n=t.color,o=t.css,r=t.defined,a=t.each,h=t.extend,l=t.find,c=t.fireEvent,d=t.isObject,p=t.offset,u=t.pick,f=t.removeEvent,g=t.splat,m=t.Tooltip,v=t.win;t.Pointer=function(t,e){this.init(t,e)},t.Pointer.prototype={init:function(t,e){this.options=e,this.chart=t,this.runChartClick=e.chart.events&&!!e.chart.events.click,this.pinchDown=[],this.lastValidTouch={},m&&(t.tooltip=new m(t,e.tooltip),this.followTouchMove=u(e.tooltip.followTouchMove,!0)),this.setDOMEvents()},zoomOption:function(t){var e=this.chart,i=e.options.chart,s=i.zoomType||"",e=e.inverted;/touch/.test(t.type)&&(s=u(i.pinchType,s)),this.zoomX=t=/x/.test(s),this.zoomY=s=/y/.test(s),this.zoomHor=t&&!e||s&&e,this.zoomVert=s&&!e||t&&e,this.hasZoom=t||s},normalize:function(t,e){var i,s;return t=t||v.event,t.target||(t.target=t.srcElement),s=t.touches?t.touches.length?t.touches.item(0):t.changedTouches[0]:t,e||(this.chartPosition=e=p(this.chart.container)),void 0===s.pageX?(i=Math.max(t.x,t.clientX-e.left),e=t.y):(i=s.pageX-e.left,e=s.pageY-e.top),h(t,{chartX:Math.round(i),chartY:Math.round(e)})},getCoordinates:function(t){var e={xAxis:[],yAxis:[]};return a(this.chart.axes,function(i){e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])})}),e},findNearestKDPoint:function(t,e,i){var s;return a(t,function(t){var n=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y");if(t=t.searchPoint(i,n),(n=d(t,!0))&&!(n=!d(s,!0)))var n=s.distX-t.distX,o=s.dist-t.dist,r=(t.series.group&&t.series.group.zIndex)-(s.series.group&&s.series.group.zIndex),n=0<(0!==n&&e?n:0!==o?o:0!==r?r:s.series.index>t.series.index?-1:1);n&&(s=t)}),s},getPointFromEvent:function(t){t=t.target;for(var e;t&&!e;)e=t.point,t=t.parentNode;return e},getChartCoordinatesFromPoint:function(t,e){var i=t.series,s=i.xAxis,i=i.yAxis;if(s&&i)return e?{chartX:s.len+s.pos-t.clientX,chartY:i.len+i.pos-t.plotY}:{chartX:t.clientX+s.pos,chartY:t.plotY+i.pos}},getHoverData:function(e,i,s,n,o,r){var h,c=[];n=!(!n||!e);var p=i&&!i.stickyTracking?[i]:t.grep(s,function(t){return t.visible&&!(!o&&t.directTouch)&&u(t.options.enableMouseTracking,!0)&&t.stickyTracking});return i=(h=n?e:this.findNearestKDPoint(p,o,r))&&h.series,h&&(o&&!i.noSharedTooltip?(p=t.grep(s,function(t){return t.visible&&!(!o&&t.directTouch)&&u(t.options.enableMouseTracking,!0)&&!t.noSharedTooltip}),a(p,function(t){t=l(t.points,function(t){return t.x===h.x}),d(t)&&!t.isNull&&c.push(t)})):c.push(h)),{hoverPoint:h,hoverSeries:i,hoverPoints:c}},runPointActions:function(i,n){var o,r=this.chart,h=r.tooltip,l=!!h&&h.shared,c=n||r.hoverPoint,d=c&&c.series||r.hoverSeries,d=this.getHoverData(c,d,r.series,!!n||d&&d.directTouch&&this.isDirectTouch,l,i),c=d.hoverPoint;o=d.hoverPoints,n=(d=d.hoverSeries)&&d.tooltipOptions.followPointer,l=l&&d&&!d.noSharedTooltip,c&&(c!==r.hoverPoint||h&&h.isHidden)?(a(r.hoverPoints||[],function(e){-1===t.inArray(e,o)&&e.setState()}),a(o||[],function(t){t.setState("hover")}),r.hoverSeries!==d&&d.onMouseOver(),r.hoverPoint&&r.hoverPoint.firePointEvent("mouseOut"),c.firePointEvent("mouseOver"),r.hoverPoints=o,r.hoverPoint=c,h&&h.refresh(l?o:c,i)):n&&h&&!h.isHidden&&(c=h.getAnchor([{}],i),h.updatePosition({plotX:c[0],plotY:c[1]})),this.unDocMouseMove||(this.unDocMouseMove=e(r.container.ownerDocument,"mousemove",function(e){var i=s[t.hoverChartIndex];i&&i.pointer.onDocumentMouseMove(e)})),a(r.axes,function(e){var s=u(e.crosshair.snap,!0),n=s?t.find(o,function(t){return t.series[e.coll]===e}):void 0;n||!s?e.drawCrosshair(i,n):e.hideCrosshair()})},reset:function(t,e){var i=this.chart,s=i.hoverSeries,n=i.hoverPoint,o=i.hoverPoints,r=i.tooltip,h=r&&r.shared?o:n;t&&h&&a(g(h),function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?r&&h&&(r.refresh(h),n&&(n.setState(n.state,!0),a(i.axes,function(t){t.crosshair&&t.drawCrosshair(null,n)}))):(n&&n.onMouseOut(),o&&a(o,function(t){t.setState()}),s&&s.onMouseOut(),r&&r.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),a(i.axes,function(t){t.hideCrosshair()}),this.hoverX=i.hoverPoints=i.hoverPoint=null)},scaleGroups:function(t,e){var i,s=this.chart;a(s.series,function(n){i=t||n.getPlotBox(),n.xAxis&&n.xAxis.zoomEnabled&&n.group&&(n.group.attr(i),n.markerGroup&&(n.markerGroup.attr(i),n.markerGroup.clip(e?s.clipRect:null)),n.dataLabelsGroup&&n.dataLabelsGroup.attr(i))}),s.clipRect.attr(e||s.clipBox)},dragStart:function(t){var e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=this.mouseDownX=t.chartX,e.mouseDownY=this.mouseDownY=t.chartY},drag:function(t){var e,i=this.chart,s=i.options.chart,o=t.chartX,r=t.chartY,a=this.zoomHor,h=this.zoomVert,l=i.plotLeft,c=i.plotTop,d=i.plotWidth,p=i.plotHeight,u=this.selectionMarker,f=this.mouseDownX,g=this.mouseDownY,m=s.panKey&&t[s.panKey+"Key"];u&&u.touch||(o<l?o=l:o>l+d&&(o=l+d),r<c?r=c:r>c+p&&(r=c+p),this.hasDragged=Math.sqrt(Math.pow(f-o,2)+Math.pow(g-r,2)),10<this.hasDragged&&(e=i.isInsidePlot(f-l,g-c),i.hasCartesianSeries&&(this.zoomX||this.zoomY)&&e&&!m&&!u&&(this.selectionMarker=u=i.renderer.rect(l,c,a?1:d,h?1:p,0).attr({fill:s.selectionMarkerFill||n("#335cad").setOpacity(.25).get(),class:"highcharts-selection-marker",zIndex:7}).add()),u&&a&&(o-=f,u.attr({width:Math.abs(o),x:(0<o?0:o)+f})),u&&h&&(o=r-g,u.attr({height:Math.abs(o),y:(0<o?0:o)+g})),e&&!u&&s.panning&&i.pan(t,s.panning)))},drop:function(t){var e=this,i=this.chart,s=this.hasPinched;if(this.selectionMarker){var n,l={originalEvent:t,xAxis:[],yAxis:[]},d=this.selectionMarker,p=d.attr?d.attr("x"):d.x,u=d.attr?d.attr("y"):d.y,f=d.attr?d.attr("width"):d.width,g=d.attr?d.attr("height"):d.height;(this.hasDragged||s)&&(a(i.axes,function(i){if(i.zoomEnabled&&r(i.min)&&(s||e[{xAxis:"zoomX",yAxis:"zoomY"}[i.coll]])){var o=i.horiz,a="touchend"===t.type?i.minPixelPadding:0,h=i.toValue((o?p:u)+a),o=i.toValue((o?p+f:u+g)-a);l[i.coll].push({axis:i,min:Math.min(h,o),max:Math.max(h,o)}),n=!0}}),n&&c(i,"selection",l,function(t){i.zoom(h(t,s?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),s&&this.scaleGroups()}i&&(o(i.container,{cursor:i._cursor}),i.cancelClick=10<this.hasDragged,i.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(t){t=this.normalize(t),this.zoomOption(t),t.preventDefault&&t.preventDefault(),this.dragStart(t)},onDocumentMouseUp:function(e){s[t.hoverChartIndex]&&s[t.hoverChartIndex].pointer.drop(e)},onDocumentMouseMove:function(t){var e=this.chart,i=this.chartPosition;t=this.normalize(t,i),!i||this.inClass(t.target,"highcharts-tracker")||e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)||this.reset()},onContainerMouseLeave:function(e){var i=s[t.hoverChartIndex];i&&(e.relatedTarget||e.toElement)&&(i.pointer.reset(),i.pointer.chartPosition=null)},onContainerMouseMove:function(e){var i=this.chart;r(t.hoverChartIndex)&&s[t.hoverChartIndex]&&s[t.hoverChartIndex].mouseIsDown||(t.hoverChartIndex=i.index),e=this.normalize(e),e.returnValue=!1,"mousedown"===i.mouseIsDown&&this.drag(e),!this.inClass(e.target,"highcharts-tracker")&&!i.isInsidePlot(e.chartX-i.plotLeft,e.chartY-i.plotTop)||i.openMenu||this.runPointActions(e)},inClass:function(t,e){for(var s;t;){if(s=i(t,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}t=t.parentNode}},onTrackerMouseOut:function(t){var e=this.chart.hoverSeries;t=t.relatedTarget||t.toElement,this.isDirectTouch=!1,!e||!t||e.stickyTracking||this.inClass(t,"highcharts-tooltip")||this.inClass(t,"highcharts-series-"+e.index)&&this.inClass(t,"highcharts-tracker")||e.onMouseOut()},onContainerClick:function(t){var e=this.chart,i=e.hoverPoint,s=e.plotLeft,n=e.plotTop;t=this.normalize(t),e.cancelClick||(i&&this.inClass(t.target,"highcharts-tracker")?(c(i.series,"click",h(t,{point:i})),e.hoverPoint&&i.firePointEvent("click",t)):(h(t,this.getCoordinates(t)),e.isInsidePlot(t.chartX-s,t.chartY-n)&&c(e,"click",t)))},setDOMEvents:function(){var i=this,s=i.chart.container,n=s.ownerDocument;s.onmousedown=function(t){i.onContainerMouseDown(t)},s.onmousemove=function(t){i.onContainerMouseMove(t)},s.onclick=function(t){i.onContainerClick(t)},e(s,"mouseleave",i.onContainerMouseLeave),1===t.chartCount&&e(n,"mouseup",i.onDocumentMouseUp),t.hasTouch&&(s.ontouchstart=function(t){i.onContainerTouchStart(t)},s.ontouchmove=function(t){i.onContainerTouchMove(t)},1===t.chartCount&&e(n,"touchend",i.onDocumentTouchEnd))},destroy:function(){var e=this,i=this.chart.container.ownerDocument;e.unDocMouseMove&&e.unDocMouseMove(),f(e.chart.container,"mouseleave",e.onContainerMouseLeave),t.chartCount||(f(i,"mouseup",e.onDocumentMouseUp),t.hasTouch&&f(i,"touchend",e.onDocumentTouchEnd)),clearInterval(e.tooltipTimeout),t.objectEach(e,function(t,i){e[i]=null})}}}(t),function(t){var e=t.charts,i=t.each,s=t.extend,n=t.map,o=t.noop,r=t.pick;s(t.Pointer.prototype,{pinchTranslate:function(t,e,i,s,n,o){this.zoomHor&&this.pinchTranslateDirection(!0,t,e,i,s,n,o),this.zoomVert&&this.pinchTranslateDirection(!1,t,e,i,s,n,o)},pinchTranslateDirection:function(t,e,i,s,n,o,r,a){var h,l,c,d=this.chart,p=t?"x":"y",u=t?"X":"Y",f="chart"+u,g=t?"width":"height",m=d["plot"+(t?"Left":"Top")],v=a||1,x=d.inverted,y=d.bounds[t?"h":"v"],b=1===e.length,k=e[0][f],M=i[0][f],w=!b&&e[1][f],S=!b&&i[1][f];i=function(){!b&&20<Math.abs(k-w)&&(v=a||Math.abs(M-S)/Math.abs(k-w)),l=(m-M)/v+k,h=d["plot"+(t?"Width":"Height")]/v},i(),e=l,e<y.min?(e=y.min,c=!0):e+h>y.max&&(e=y.max-h,c=!0),c?(M-=.8*(M-r[p][0]),b||(S-=.8*(S-r[p][1])),i()):r[p]=[M,S],x||(o[p]=l-m,o[g]=h),o=x?1/v:v,n[g]=h,n[p]=e,s[x?t?"scaleY":"scaleX":"scale"+u]=v,s["translate"+u]=o*m+(M-o*k)},pinch:function(t){var e=this,a=e.chart,h=e.pinchDown,l=t.touches,c=l.length,d=e.lastValidTouch,p=e.hasZoom,u=e.selectionMarker,f={},g=1===c&&(e.inClass(t.target,"highcharts-tracker")&&a.runTrackerClick||e.runChartClick),m={};1<c&&(e.initiated=!0),p&&e.initiated&&!g&&t.preventDefault(),n(l,function(t){return e.normalize(t)}),"touchstart"===t.type?(i(l,function(t,e){h[e]={chartX:t.chartX,chartY:t.chartY}}),d.x=[h[0].chartX,h[1]&&h[1].chartX],d.y=[h[0].chartY,h[1]&&h[1].chartY],i(a.axes,function(t){if(t.zoomEnabled){var e=a.bounds[t.horiz?"h":"v"],i=t.minPixelPadding,s=t.toPixels(r(t.options.min,t.dataMin)),n=t.toPixels(r(t.options.max,t.dataMax)),o=Math.max(s,n);e.min=Math.min(t.pos,Math.min(s,n)-i),e.max=Math.max(t.pos+t.len,o+i)}}),e.res=!0):e.followTouchMove&&1===c?this.runPointActions(e.normalize(t)):h.length&&(u||(e.selectionMarker=u=s({destroy:o,touch:!0},a.plotBox)),e.pinchTranslate(h,l,f,u,m,d),e.hasPinched=p,e.scaleGroups(f,m),e.res&&(e.res=!1,this.reset(!1,0)))},touch:function(e,i){var s,n,o=this.chart;o.index!==t.hoverChartIndex&&this.onContainerMouseLeave({relatedTarget:!0}),t.hoverChartIndex=o.index,1===e.touches.length?(e=this.normalize(e),(n=o.isInsidePlot(e.chartX-o.plotLeft,e.chartY-o.plotTop))&&!o.openMenu?(i&&this.runPointActions(e),"touchmove"===e.type&&(i=this.pinchDown,s=!!i[0]&&4<=Math.sqrt(Math.pow(i[0].chartX-e.chartX,2)+Math.pow(i[0].chartY-e.chartY,2))),r(s,!0)&&this.pinch(e)):i&&this.reset()):2===e.touches.length&&this.pinch(e)},onContainerTouchStart:function(t){this.zoomOption(t),this.touch(t,!0)},onContainerTouchMove:function(t){this.touch(t)},onDocumentTouchEnd:function(i){e[t.hoverChartIndex]&&e[t.hoverChartIndex].pointer.drop(i)}})}(t),function(t){var e=t.addEvent,i=t.charts,s=t.css,n=t.doc,o=t.extend,r=t.noop,a=t.Pointer,h=t.removeEvent,l=t.win,c=t.wrap;if(!t.hasTouch&&(l.PointerEvent||l.MSPointerEvent)){var d={},p=!!l.PointerEvent,u=function(){var e=[];return e.item=function(t){return this[t]},t.objectEach(d,function(t){e.push({pageX:t.pageX,pageY:t.pageY,target:t.target})}),e},f=function(e,s,n,o){"touch"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_TOUCH||!i[t.hoverChartIndex]||(o(e),o=i[t.hoverChartIndex].pointer,o[s]({type:n,target:e.currentTarget,preventDefault:r,touches:u()}))};o(a.prototype,{onContainerPointerDown:function(t){f(t,"onContainerTouchStart","touchstart",function(t){d[t.pointerId]={pageX:t.pageX,pageY:t.pageY,target:t.currentTarget}})},onContainerPointerMove:function(t){f(t,"onContainerTouchMove","touchmove",function(t){d[t.pointerId]={pageX:t.pageX,pageY:t.pageY},d[t.pointerId].target||(d[t.pointerId].target=t.currentTarget)})},onDocumentPointerUp:function(t){f(t,"onDocumentTouchEnd","touchend",function(t){delete d[t.pointerId]})},batchMSEvents:function(t){t(this.chart.container,p?"pointerdown":"MSPointerDown",this.onContainerPointerDown),t(this.chart.container,p?"pointermove":"MSPointerMove",this.onContainerPointerMove),t(n,p?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),c(a.prototype,"init",function(t,e,i){t.call(this,e,i),this.hasZoom&&s(e.container,{"-ms-touch-action":"none","touch-action":"none"})}),c(a.prototype,"setDOMEvents",function(t){t.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(e)}),c(a.prototype,"destroy",function(t){this.batchMSEvents(h),t.call(this)})}}(t),function(t){var e=t.addEvent,i=t.css,s=t.discardElement,n=t.defined,o=t.each,r=t.isFirefox,a=t.marginNames,h=t.merge,l=t.pick,c=t.setAnimation,d=t.stableSort,p=t.win,u=t.wrap;t.Legend=function(t,e){this.init(t,e)},t.Legend.prototype={init:function(t,i){this.chart=t,this.setOptions(i),i.enabled&&(this.render(),e(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(t){var e=l(t.padding,8);this.options=t,this.itemStyle=t.itemStyle,this.itemHiddenStyle=h(this.itemStyle,t.itemHiddenStyle),this.itemMarginTop=t.itemMarginTop||0,this.padding=e,this.initialItemY=e-5,this.itemHeight=this.maxItemWidth=0,this.symbolWidth=l(t.symbolWidth,16),this.pages=[]},update:function(t,e){var i=this.chart;this.setOptions(h(!0,this.options,t)),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,l(e,!0)&&i.redraw()},colorizeItem:function(t,e){t.legendGroup[e?"removeClass":"addClass"]("highcharts-legend-item-hidden");var i=this.options,s=t.legendItem,n=t.legendLine,o=t.legendSymbol,r=this.itemHiddenStyle.color,i=e?i.itemStyle.color:r,a=e?t.color||r:r,h=t.options&&t.options.marker,l={fill:a};s&&s.css({fill:i,color:i}),n&&n.attr({stroke:a}),o&&(h&&o.isMarker&&(l=t.pointAttribs(),e||(l.stroke=l.fill=r)),o.attr(l))},positionItem:function(t){var e=this.options,i=e.symbolPadding,e=!e.rtl,s=t._legendItemPos,n=s[0],s=s[1],o=t.checkbox;(t=t.legendGroup)&&t.element&&t.translate(e?n:this.legendWidth-n-2*i-4,s),o&&(o.x=n,o.y=s)},destroyItem:function(t){var e=t.checkbox;o(["legendItem","legendLine","legendSymbol","legendGroup"],function(e){t[e]&&(t[e]=t[e].destroy())}),e&&s(t.checkbox)},destroy:function(){function t(t){this[t]&&(this[t]=this[t].destroy())}o(this.getAllItems(),function(e){o(["legendItem","legendGroup"],t,e)}),o("clipRect up down pager nav box title group".split(" "),t,this),this.display=null},positionCheckboxes:function(t){var e,s=this.group&&this.group.alignAttr,n=this.clipHeight||this.legendHeight,r=this.titleHeight;s&&(e=s.translateY,o(this.allItems,function(o){var a,h=o.checkbox;h&&(a=e+r+h.y+(t||0)+3,i(h,{left:s.translateX+o.checkboxOffset+h.x-20+"px",top:a+"px",display:a>e-6&&a<e+n-6?"":"none"}))}))},renderTitle:function(){var t=this.options,e=this.padding,i=t.title,s=0;i.text&&(this.title||(this.title=this.chart.renderer.label(i.text,e-3,e-4,null,null,null,t.useHTML,null,"legend-title").attr({zIndex:1}).css(i.style).add(this.group)),t=this.title.getBBox(),s=t.height,this.offsetWidth=t.width,this.contentGroup.attr({translateY:s})),this.titleHeight=s},setText:function(e){var i=this.options;e.legendItem.attr({text:i.labelFormat?t.format(i.labelFormat,e):i.labelFormatter.call(e)})},renderItem:function(t){var e=this.chart,i=e.renderer,s=this.options,n="horizontal"===s.layout,o=this.symbolWidth,r=s.symbolPadding,a=this.itemStyle,c=this.itemHiddenStyle,d=this.padding,p=n?l(s.itemDistance,20):0,u=!s.rtl,f=s.width,g=s.itemMarginBottom||0,m=this.itemMarginTop,v=t.legendItem,x=!t.series,y=!x&&t.series.drawLegendSymbol?t.series:t,b=y.options,k=this.createCheckboxForItem&&b&&b.showCheckbox,b=o+r+p+(k?20:0),M=s.useHTML,w=t.options.className;v||(t.legendGroup=i.g("legend-item").addClass("highcharts-"+y.type+"-series highcharts-color-"+t.colorIndex+(w?" "+w:"")+(x?" highcharts-series-"+t.index:"")).attr({zIndex:1}).add(this.scrollGroup),t.legendItem=v=i.text("",u?o+r:-r,this.baseline||0,M).css(h(t.visible?a:c)).attr({align:u?"left":"right",zIndex:2}).add(t.legendGroup),this.baseline||(o=a.fontSize,this.fontMetrics=i.fontMetrics(o,v),this.baseline=this.fontMetrics.f+3+m,v.attr("y",this.baseline)),this.symbolHeight=s.symbolHeight||this.fontMetrics.f,y.drawLegendSymbol(this,t),this.setItemEvents&&this.setItemEvents(t,v,M),k&&this.createCheckboxForItem(t)),this.colorizeItem(t,t.visible),a.width||v.css({width:(s.itemWidth||s.width||e.spacingBox.width)-b}),this.setText(t),i=v.getBBox(),a=t.checkboxOffset=s.itemWidth||t.legendItemWidth||i.width+b,this.itemHeight=i=Math.round(t.legendItemHeight||i.height||this.symbolHeight),n&&this.itemX-d+a>(f||e.spacingBox.width-2*d-s.x)&&(this.itemX=d,this.itemY+=m+this.lastLineHeight+g,this.lastLineHeight=0),this.maxItemWidth=Math.max(this.maxItemWidth,a),this.lastItemY=m+this.itemY+g,this.lastLineHeight=Math.max(i,this.lastLineHeight),t._legendItemPos=[this.itemX,this.itemY],n?this.itemX+=a:(this.itemY+=m+i+g,this.lastLineHeight=i),this.offsetWidth=f||Math.max((n?this.itemX-d-(t.checkbox?0:p):a)+d,this.offsetWidth)},getAllItems:function(){var t=[];return o(this.chart.series,function(e){var i=e&&e.options;e&&l(i.showInLegend,!n(i.linkedTo)&&void 0,!0)&&(t=t.concat(e.legendItems||("point"===i.legendType?e.data:e)))}),t},adjustMargins:function(t,e){var i=this.chart,s=this.options,r=s.align.charAt(0)+s.verticalAlign.charAt(0)+s.layout.charAt(0);s.floating||o([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(o,h){o.test(r)&&!n(t[h])&&(i[a[h]]=Math.max(i[a[h]],i.legend[(h+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][h]*s[h%2?"x":"y"]+l(s.margin,12)+e[h]))})},render:function(){var t,e,i,s,n=this,r=n.chart,a=r.renderer,l=n.group,c=n.box,p=n.options,u=n.padding;n.itemX=u,n.itemY=n.initialItemY,n.offsetWidth=0,n.lastItemY=0,l||(n.group=l=a.g("legend").attr({zIndex:7}).add(),n.contentGroup=a.g().attr({zIndex:1}).add(l),n.scrollGroup=a.g().add(n.contentGroup)),n.renderTitle(),t=n.getAllItems(),d(t,function(t,e){return(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)}),p.reversed&&t.reverse(),n.allItems=t,n.display=e=!!t.length,n.lastLineHeight=0,o(t,function(t){n.renderItem(t)}),i=(p.width||n.offsetWidth)+u,s=n.lastItemY+n.lastLineHeight+n.titleHeight,s=n.handleOverflow(s),s+=u,c||(n.box=c=a.rect().addClass("highcharts-legend-box").attr({r:p.borderRadius}).add(l),c.isNew=!0),c.attr({stroke:p.borderColor,"stroke-width":p.borderWidth||0,fill:p.backgroundColor||"none"}).shadow(p.shadow),0<i&&0<s&&(c[c.isNew?"attr":"animate"](c.crisp({x:0,y:0,width:i,height:s},c.strokeWidth())),c.isNew=!1),c[e?"show":"hide"](),n.legendWidth=i,n.legendHeight=s,o(t,function(t){n.positionItem(t)}),e&&l.align(h(p,{width:i,height:s}),!0,"spacingBox"),r.isResizing||this.positionCheckboxes()},handleOverflow:function(t){var e,i,s=this,n=this.chart,r=n.renderer,a=this.options,h=a.y,c=this.padding,n=n.spacingBox.height+("top"===a.verticalAlign?-h:h)-c,h=a.maxHeight,d=this.clipRect,p=a.navigation,u=l(p.animation,!0),f=p.arrowSize||12,g=this.nav,m=this.pages,v=this.allItems,x=function(t){"number"==typeof t?d.attr({height:t}):d&&(s.clipRect=d.destroy(),s.contentGroup.clip()),s.contentGroup.div&&(s.contentGroup.div.style.clip=t?"rect("+c+"px,9999px,"+(c+t)+"px,0)":"auto")};return"horizontal"!==a.layout||"middle"===a.verticalAlign||a.floating||(n/=2),h&&(n=Math.min(n,h)),m.length=0,t>n&&!1!==p.enabled?(this.clipHeight=e=Math.max(n-20-this.titleHeight-c,0),this.currentPage=l(this.currentPage,1),this.fullHeight=t,o(v,function(t,s){var n=t._legendItemPos[1];t=Math.round(t.legendItem.getBBox().height);var o=m.length;(!o||n-m[o-1]>e&&(i||n)!==m[o-1])&&(m.push(i||n),o++),s===v.length-1&&n+t-m[o-1]>e&&m.push(n),n!==i&&(i=n)}),d||(d=s.clipRect=r.clipRect(0,c,9999,0),s.contentGroup.clip(d)),x(e),g||(this.nav=g=r.g().attr({zIndex:1}).add(this.group),this.up=r.symbol("triangle",0,0,f,f).on("click",function(){s.scroll(-1,u)}).add(g),this.pager=r.text("",15,10).addClass("highcharts-legend-navigation").css(p.style).add(g),this.down=r.symbol("triangle-down",0,0,f,f).on("click",function(){s.scroll(1,u)}).add(g)),s.scroll(0),t=n):g&&(x(),this.nav=g.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t},scroll:function(t,e){var i=this.pages,s=i.length;t=this.currentPage+t;var n=this.clipHeight,o=this.options.navigation,r=this.pager,a=this.padding;t>s&&(t=s),0<t&&(void 0!==e&&c(e,this.chart),this.nav.attr({translateX:a,translateY:n+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({class:1===t?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),r.attr({text:t+"/"+s}),this.down.attr({x:18+this.pager.getBBox().width,class:t===s?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.up.attr({fill:1===t?o.inactiveColor:o.activeColor}).css({cursor:1===t?"default":"pointer"}),this.down.attr({fill:t===s?o.inactiveColor:o.activeColor}).css({cursor:t===s?"default":"pointer"}),e=-i[t-1]+this.initialItemY,this.scrollGroup.animate({translateY:e}),this.currentPage=t,this.positionCheckboxes(e))}},t.LegendSymbolMixin={drawRectangle:function(t,e){var i=t.symbolHeight,s=t.options.squareSymbol;e.legendSymbol=this.chart.renderer.rect(s?(t.symbolWidth-i)/2:0,t.baseline-i+1,s?i:t.symbolWidth,i,l(t.options.symbolRadius,i/2)).addClass("highcharts-point").attr({zIndex:3}).add(e.legendGroup)},drawLineMarker:function(t){var e=this.options,i=e.marker,s=t.symbolWidth,n=t.symbolHeight,o=n/2,r=this.chart.renderer,a=this.legendGroup;t=t.baseline-Math.round(.3*t.fontMetrics.b);var c;c={"stroke-width":e.lineWidth||0},e.dashStyle&&(c.dashstyle=e.dashStyle),this.legendLine=r.path(["M",0,t,"L",s,t]).addClass("highcharts-graph").attr(c).add(a),i&&!1!==i.enabled&&(e=Math.min(l(i.radius,o),o),0===this.symbol.indexOf("url")&&(i=h(i,{width:n,height:n}),e=0),this.legendSymbol=i=r.symbol(this.symbol,s/2-e,t-e,2*e,2*e,i).addClass("highcharts-point").add(a),i.isMarker=!0)}},(/Trident\/7\.0/.test(p.navigator.userAgent)||r)&&u(t.Legend.prototype,"positionItem",function(t,e){var i=this,s=function(){e._legendItemPos&&t.call(i,e)};s(),setTimeout(s)})}(t),function(t){var e=t.addEvent,i=t.animate,s=t.animObject,n=t.attr,o=t.doc,r=t.Axis,a=t.createElement,h=t.defaultOptions,l=t.discardElement,c=t.charts,d=t.css,p=t.defined,u=t.each,f=t.extend,g=t.find,m=t.fireEvent,v=t.getStyle,x=t.grep,y=t.isNumber,b=t.isObject,k=t.isString,M=t.Legend,w=t.marginNames,S=t.merge,T=t.objectEach,A=t.Pointer,C=t.pick,L=t.pInt,P=t.removeEvent,O=t.seriesTypes,I=t.splat,D=t.svg,z=t.syncTimeout,E=t.win,B=t.Renderer,G=t.Chart=function(){this.getArgs.apply(this,arguments)};t.chart=function(t,e,i){return new G(t,e,i)},f(G.prototype,{callbacks:[],getArgs:function(){var t=[].slice.call(arguments);(k(t[0])||t[0].nodeName)&&(this.renderTo=t.shift()),this.init(t[0],t[1])},init:function(i,s){var n,o,r=i.series,a=i.plotOptions||{};i.series=null,n=S(h,i);for(o in n.plotOptions)n.plotOptions[o].tooltip=a[o]&&S(a[o].tooltip)||void 0;n.tooltip.userOptions=i.chart&&i.chart.forExport&&i.tooltip.userOptions||i.tooltip,n.series=i.series=r,this.userOptions=i,i=n.chart,o=i.events,this.margin=[],this.spacing=[],this.bounds={h:{},v:{}},this.callback=s,this.isResizing=0,this.options=n,this.axes=[],this.series=[],this.hasCartesianSeries=i.showAxes;var l=this;l.index=c.length,c.push(l),t.chartCount++,o&&T(o,function(t,i){e(l,i,t)}),l.xAxis=[],l.yAxis=[],l.pointCount=l.colorCounter=l.symbolCounter=0,l.firstRender()},initSeries:function(e){var i=this.options.chart;return(i=O[e.type||i.type||i.defaultSeriesType])||t.error(17,!0),i=new i,i.init(this,e),i},orderSeries:function(t){var e=this.series;for(t=t||0;t<e.length;t++)e[t]&&(e[t].index=t,e[t].name=e[t].name||"Series "+(e[t].index+1))},isInsidePlot:function(t,e,i){var s=i?e:t;return t=i?t:e,0<=s&&s<=this.plotWidth&&0<=t&&t<=this.plotHeight},redraw:function(e){var i,s,n,o=this.axes,r=this.series,a=this.pointer,h=this.legend,l=this.isDirtyLegend,c=this.hasCartesianSeries,d=this.isDirtyBox,p=this.renderer,g=p.isHidden(),v=[];for(this.setResponsive&&this.setResponsive(!1),t.setAnimation(e,this),g&&this.temporaryDisplay(),this.layOutTitles(),e=r.length;e--;)if(n=r[e],n.options.stacking&&(i=!0,n.isDirty)){s=!0;break}if(s)for(e=r.length;e--;)n=r[e],n.options.stacking&&(n.isDirty=!0);u(r,function(t){t.isDirty&&"point"===t.options.legendType&&(t.updateTotals&&t.updateTotals(),l=!0),t.isDirtyData&&m(t,"updatedData")}),l&&h.options.enabled&&(h.render(),this.isDirtyLegend=!1),i&&this.getStacks(),c&&u(o,function(t){t.updateNames(),t.setScale()}),this.getMargins(),c&&(u(o,function(t){t.isDirty&&(d=!0)}),u(o,function(t){var e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,v.push(function(){m(t,"afterSetExtremes",f(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(d||i)&&t.redraw()})),d&&this.drawChartBox(),m(this,"predraw"),u(r,function(t){(d||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),a&&a.reset(!0),p.draw(),m(this,"redraw"),m(this,"render"),g&&this.temporaryDisplay(!0),u(v,function(t){t.call()})},get:function(t){function e(e){return e.id===t||e.options&&e.options.id===t}var i,s,n=this.series;for(i=g(this.axes,e)||g(this.series,e),s=0;!i&&s<n.length;s++)i=g(n[s].points||[],e);return i},getAxes:function(){var t=this,e=this.options,i=e.xAxis=I(e.xAxis||{}),e=e.yAxis=I(e.yAxis||{});u(i,function(t,e){t.index=e,t.isX=!0}),u(e,function(t,e){t.index=e}),i=i.concat(e),u(i,function(e){new r(t,e)})},getSelectedPoints:function(){var t=[];return u(this.series,function(e){t=t.concat(x(e.data||[],function(t){return t.selected}))}),t},getSelectedSeries:function(){return x(this.series,function(t){return t.selected})},setTitle:function(t,e,i){var s,n=this,o=n.options;s=o.title=S({style:{color:"#333333",fontSize:o.isStock?"16px":"18px"}},o.title,t),o=o.subtitle=S({style:{color:"#666666"}},o.subtitle,e),u([["title",t,s],["subtitle",e,o]],function(t,e){var i=t[0],s=n[i],o=t[1];t=t[2],s&&o&&(n[i]=s=s.destroy()),t&&t.text&&!s&&(n[i]=n.renderer.text(t.text,0,0,t.useHTML).attr({align:t.align,class:"highcharts-"+i,zIndex:t.zIndex||4}).add(),n[i].update=function(t){n.setTitle(!e&&t,e&&t)},n[i].css(t.style))}),n.layOutTitles(i)},layOutTitles:function(t){var e,i=0,s=this.renderer,n=this.spacingBox;u(["title","subtitle"],function(t){var e=this[t],o=this.options[t];t="title"===t?-3:o.verticalAlign?0:i+2;var r;e&&(r=o.style.fontSize,r=s.fontMetrics(r,e).b,e.css({width:(o.width||n.width+o.widthAdjust)+"px"}).align(f({y:t+r},o),!1,"spacingBox"),o.floating||o.verticalAlign||(i=Math.ceil(i+e.getBBox(o.useHTML).height)))},this),e=this.titleOffset!==i,this.titleOffset=i,!this.isDirtyBox&&e&&(this.isDirtyBox=e,this.hasRendered&&C(t,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var e=this.options.chart,i=e.width,e=e.height,s=this.renderTo;p(i)||(this.containerWidth=v(s,"width")),p(e)||(this.containerHeight=v(s,"height")),this.chartWidth=Math.max(0,i||this.containerWidth||600),this.chartHeight=Math.max(0,t.relativeLength(e,this.chartWidth)||this.containerHeight||400)},temporaryDisplay:function(e){var i=this.renderTo;if(e)for(;i&&i.style;)i.hcOrigStyle&&(t.css(i,i.hcOrigStyle),delete i.hcOrigStyle),i.hcOrigDetached&&(o.body.removeChild(i),i.hcOrigDetached=!1),i=i.parentNode;else for(;i&&i.style&&(o.body.contains(i)||(i.hcOrigDetached=!0,o.body.appendChild(i)),("none"===v(i,"display",!1)||i.hcOricDetached)&&(i.hcOrigStyle={display:i.style.display,height:i.style.height,overflow:i.style.overflow},e={display:"block",overflow:"hidden"},i!==this.renderTo&&(e.height=0),t.css(i,e),i.offsetWidth||i.style.setProperty("display","block","important")),i=i.parentNode,i!==o.body););},setClassName:function(t){this.container.className="highcharts-container "+(t||"")},getContainer:function(){var e,i,s,r=this.options,h=r.chart;e=this.renderTo;var l,d=t.uniqueKey();e||(this.renderTo=e=h.renderTo),k(e)&&(this.renderTo=e=o.getElementById(e)),e||t.error(13,!0),i=L(n(e,"data-highcharts-chart")),y(i)&&c[i]&&c[i].hasRendered&&c[i].destroy(),n(e,"data-highcharts-chart",this.index),e.innerHTML="",h.skipClone||e.offsetWidth||this.temporaryDisplay(),this.getChartSize(),i=this.chartWidth,s=this.chartHeight,l=f({position:"relative",overflow:"hidden",width:i+"px",height:s+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},h.style),this.container=e=a("div",{id:d},l,e),this._cursor=e.style.cursor,this.renderer=new(t[h.renderer]||B)(e,i,s,null,h.forExport,r.exporting&&r.exporting.allowHTML),this.setClassName(h.className),this.renderer.setStyle(h.style),this.renderer.chartIndex=this.index},getMargins:function(t){var e=this.spacing,i=this.margin,s=this.titleOffset;this.resetMargins(),s&&!p(i[0])&&(this.plotTop=Math.max(this.plotTop,s+this.options.title.margin+e[0])),this.legend.display&&this.legend.adjustMargins(i,e),this.extraMargin&&(this[this.extraMargin.type]=(this[this.extraMargin.type]||0)+this.extraMargin.value),this.extraTopMargin&&(this.plotTop+=this.extraTopMargin),t||this.getAxisMargins()},getAxisMargins:function(){var t=this,e=t.axisOffset=[0,0,0,0],i=t.margin;
- t.hasCartesianSeries&&u(t.axes,function(t){t.visible&&t.getOffset()}),u(w,function(s,n){p(i[n])||(t[s]+=e[n])}),t.setChartSize()},reflow:function(t){var e=this,i=e.options.chart,s=e.renderTo,n=p(i.width)&&p(i.height),r=i.width||v(s,"width"),i=i.height||v(s,"height"),s=t?t.target:E;n||e.isPrinting||!r||!i||s!==E&&s!==o||(r===e.containerWidth&&i===e.containerHeight||(clearTimeout(e.reflowTimeout),e.reflowTimeout=z(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerWidth=r,e.containerHeight=i)},initReflow:function(){var t,i=this;t=e(E,"resize",function(t){i.reflow(t)}),e(i,"destroy",t)},setSize:function(e,n,o){var r=this,a=r.renderer;r.isResizing+=1,t.setAnimation(o,r),r.oldChartHeight=r.chartHeight,r.oldChartWidth=r.chartWidth,void 0!==e&&(r.options.chart.width=e),void 0!==n&&(r.options.chart.height=n),r.getChartSize(),e=a.globalAnimation,(e?i:d)(r.container,{width:r.chartWidth+"px",height:r.chartHeight+"px"},e),r.setChartSize(!0),a.setSize(r.chartWidth,r.chartHeight,o),u(r.axes,function(t){t.isDirty=!0,t.setScale()}),r.isDirtyLegend=!0,r.isDirtyBox=!0,r.layOutTitles(),r.getMargins(),r.redraw(o),r.oldChartHeight=null,m(r,"resize"),z(function(){r&&m(r,"endResize",null,function(){--r.isResizing})},s(e).duration)},setChartSize:function(t){function e(t){return t=f[t]||0,Math.max(r||t,t)/2}var i,s,n,o,r,a=this.inverted,h=this.renderer,l=this.chartWidth,c=this.chartHeight,d=this.options.chart,p=this.spacing,f=this.clipOffset;this.plotLeft=i=Math.round(this.plotLeft),this.plotTop=s=Math.round(this.plotTop),this.plotWidth=n=Math.max(0,Math.round(l-i-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(c-s-this.marginBottom)),this.plotSizeX=a?o:n,this.plotSizeY=a?n:o,this.plotBorderWidth=d.plotBorderWidth||0,this.spacingBox=h.spacingBox={x:p[3],y:p[0],width:l-p[3]-p[1],height:c-p[0]-p[2]},this.plotBox=h.plotBox={x:i,y:s,width:n,height:o},r=2*Math.floor(this.plotBorderWidth/2),a=Math.ceil(e(3)),h=Math.ceil(e(0)),this.clipBox={x:a,y:h,width:Math.floor(this.plotSizeX-e(1)-a),height:Math.max(0,Math.floor(this.plotSizeY-e(2)-h))},t||u(this.axes,function(t){t.setAxisSize(),t.setAxisTranslation()})},resetMargins:function(){var t=this,e=t.options.chart;u(["margin","spacing"],function(i){var s=e[i],n=b(s)?s:[s,s,s,s];u(["Top","Right","Bottom","Left"],function(s,o){t[i][o]=C(e[i+s],n[o])})}),u(w,function(e,i){t[e]=C(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[]},drawChartBox:function(){var t,e,i=this.options.chart,s=this.renderer,n=this.chartWidth,o=this.chartHeight,r=this.chartBackground,a=this.plotBackground,h=this.plotBorder,l=this.plotBGImage,c=i.backgroundColor,d=i.plotBackgroundColor,p=i.plotBackgroundImage,u=this.plotLeft,f=this.plotTop,g=this.plotWidth,m=this.plotHeight,v=this.plotBox,x=this.clipRect,y=this.clipBox,b="animate";r||(this.chartBackground=r=s.rect().addClass("highcharts-background").add(),b="attr"),t=i.borderWidth||0,e=t+(i.shadow?8:0),c={fill:c||"none"},(t||r["stroke-width"])&&(c.stroke=i.borderColor,c["stroke-width"]=t),r.attr(c).shadow(i.shadow),r[b]({x:e/2,y:e/2,width:n-e-t%2,height:o-e-t%2,r:i.borderRadius}),b="animate",a||(b="attr",this.plotBackground=a=s.rect().addClass("highcharts-plot-background").add()),a[b](v),a.attr({fill:d||"none"}).shadow(i.plotShadow),p&&(l?l.animate(v):this.plotBGImage=s.image(p,u,f,g,m).add()),x?x.animate({width:y.width,height:y.height}):this.clipRect=s.clipRect(y),b="animate",h||(b="attr",this.plotBorder=h=s.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),h.attr({stroke:i.plotBorderColor,"stroke-width":i.plotBorderWidth||0,fill:"none"}),h[b](h.crisp({x:u,y:f,width:g,height:m},-h.strokeWidth())),this.isDirtyBox=!1},propFromSeries:function(){var t,e,i,s=this,n=s.options.chart,o=s.options.series;u(["inverted","angular","polar"],function(r){for(t=O[n.type||n.defaultSeriesType],i=n[r]||t&&t.prototype[r],e=o&&o.length;!i&&e--;)(t=O[o[e].type])&&t.prototype[r]&&(i=!0);s[r]=i})},linkSeries:function(){var t=this,e=t.series;u(e,function(t){t.linkedSeries.length=0}),u(e,function(e){var i=e.options.linkedTo;k(i)&&(i=":previous"===i?t.series[e.index-1]:t.get(i))&&i.linkedParent!==e&&(i.linkedSeries.push(e),e.linkedParent=i,e.visible=C(e.options.visible,i.options.visible,e.visible))})},renderSeries:function(){u(this.series,function(t){t.translate(),t.render()})},renderLabels:function(){var t=this,e=t.options.labels;e.items&&u(e.items,function(i){var s=f(e.style,i.style),n=L(s.left)+t.plotLeft,o=L(s.top)+t.plotTop+12;delete s.left,delete s.top,t.renderer.text(i.html,n,o).attr({zIndex:2}).css(s).add()})},render:function(){var t,e,i,s=this.axes,n=this.renderer,o=this.options;this.setTitle(),this.legend=new M(this,o.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),o=this.plotWidth,t=this.plotHeight-=21,u(s,function(t){t.setScale()}),this.getAxisMargins(),e=1.1<o/this.plotWidth,i=1.05<t/this.plotHeight,(e||i)&&(u(s,function(t){(t.horiz&&e||!t.horiz&&i)&&t.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&u(s,function(t){t.visible&&t.render()}),this.seriesGroup||(this.seriesGroup=n.g("series-group").attr({zIndex:3}).add()),this.renderSeries(),this.renderLabels(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0},addCredits:function(t){var e=this;t=S(!0,this.options.credits,t),t.enabled&&!this.credits&&(this.credits=this.renderer.text(t.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){t.href&&(E.location.href=t.href)}).attr({align:t.position.align,zIndex:8}).css(t.style).add().align(t.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})},destroy:function(){var e,i=this,s=i.axes,n=i.series,o=i.container,r=o&&o.parentNode;for(m(i,"destroy"),i.renderer.forExport?t.erase(c,i):c[i.index]=void 0,t.chartCount--,i.renderTo.removeAttribute("data-highcharts-chart"),P(i),e=s.length;e--;)s[e]=s[e].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),e=n.length;e--;)n[e]=n[e].destroy();u("title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" "),function(t){var e=i[t];e&&e.destroy&&(i[t]=e.destroy())}),o&&(o.innerHTML="",P(o),r&&l(o)),T(i,function(t,e){delete i[e]})},isReadyToRender:function(){var t=this;return!(!D&&E==E.top&&"complete"!==o.readyState)||(o.attachEvent("onreadystatechange",function(){o.detachEvent("onreadystatechange",t.firstRender),"complete"===o.readyState&&t.firstRender()}),!1)},firstRender:function(){var t=this,e=t.options;t.isReadyToRender()&&(t.getContainer(),m(t,"init"),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.getAxes(),u(e.series||[],function(e){t.initSeries(e)}),t.linkSeries(),m(t,"beforeRender"),A&&(t.pointer=new A(t,e)),t.render(),!t.renderer.imgCount&&t.onload&&t.onload(),t.temporaryDisplay(!0))},onload:function(){u([this.callback].concat(this.callbacks),function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),m(this,"load"),m(this,"render"),p(this.index)&&!1!==this.options.chart.reflow&&this.initReflow(),this.onload=null}})}(t),function(t){var e,i=t.each,s=t.extend,n=t.erase,o=t.fireEvent,r=t.format,a=t.isArray,h=t.isNumber,l=t.pick,c=t.removeEvent;t.Point=e=function(){},t.Point.prototype={init:function(t,e,i){return this.series=t,this.color=t.color,this.applyOptions(e,i),t.options.colorByPoint?(e=t.options.colors||t.chart.options.colors,this.color=this.color||e[t.colorCounter],e=e.length,i=t.colorCounter,t.colorCounter++,t.colorCounter===e&&(t.colorCounter=0)):i=t.colorIndex,this.colorIndex=l(this.colorIndex,i),t.chart.pointCount++,this},applyOptions:function(t,i){var n=this.series,o=n.options.pointValKey||n.pointValKey;return t=e.prototype.optionsToObject.call(this,t),s(this,t),this.options=this.options?s(this.options,t):t,t.group&&delete this.group,o&&(this.y=this[o]),this.isNull=l(this.isValid&&!this.isValid(),null===this.x||!h(this.y,!0)),this.selected&&(this.state="select"),"name"in this&&void 0===i&&n.xAxis&&n.xAxis.hasNames&&(this.x=n.xAxis.nameToX(this)),void 0===this.x&&n&&(this.x=void 0===i?n.autoIncrement(this):i),this},optionsToObject:function(t){var e={},i=this.series,s=i.options.keys,n=s||i.pointArrayMap||["y"],o=n.length,r=0,l=0;if(h(t)||null===t)e[n[0]]=t;else if(a(t))for(!s&&t.length>o&&(i=typeof t[0],"string"===i?e.name=t[0]:"number"===i&&(e.x=t[0]),r++);l<o;)s&&void 0===t[r]||(e[n[l]]=t[r]),r++,l++;else"object"==typeof t&&(e=t,t.dataLabels&&(i._hasPointLabels=!0),t.marker&&(i._hasPointMarkers=!0));return e},getClassName:function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")},getZone:function(){var t,e=this.series,i=e.zones,e=e.zoneAxis||"y",s=0;for(t=i[s];this[e]>=t.value;)t=i[++s];return t&&t.color&&!this.options.color&&(this.color=t.color),t},destroy:function(){var t,e=this.series.chart,i=e.hoverPoints;e.pointCount--,i&&(this.setState(),n(i,this),i.length||(e.hoverPoints=null)),this===e.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(c(this),this.destroyElements()),this.legendItem&&e.legend.destroyItem(this);for(t in this)this[t]=null},destroyElements:function(){for(var t,e=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],i=6;i--;)t=e[i],this[t]&&(this[t]=this[t].destroy())},getLabelConfig:function(){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}},tooltipFormatter:function(t){var e=this.series,s=e.tooltipOptions,n=l(s.valueDecimals,""),o=s.valuePrefix||"",a=s.valueSuffix||"";return i(e.pointArrayMap||["y"],function(e){e="{point."+e,(o||a)&&(t=t.replace(e+"}",o+e+"}"+a)),t=t.replace(e+"}",e+":,."+n+"f}")}),r(t,{point:this,series:this.series})},firePointEvent:function(t,e,i){var s=this,n=this.series.options;(n.point.events[t]||s.options&&s.options.events&&s.options.events[t])&&this.importEvents(),"click"===t&&n.allowPointSelect&&(i=function(t){s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),o(this,t,e,i)},visible:!0}}(t),function(t){var e=t.addEvent,i=t.animObject,s=t.arrayMax,n=t.arrayMin,o=t.correctFloat,r=t.Date,a=t.defaultOptions,h=t.defaultPlotOptions,l=t.defined,c=t.each,d=t.erase,p=t.extend,u=t.fireEvent,f=t.grep,g=t.isArray,m=t.isNumber,v=t.isString,x=t.merge,y=t.objectEach,b=t.pick,k=t.removeEvent,M=t.splat,w=t.SVGElement,S=t.syncTimeout,T=t.win;t.Series=t.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":t.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:t.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(t,i){var s,n,o=this,r=t.series;o.chart=t,o.options=i=o.setOptions(i),o.linkedSeries=[],o.bindAxes(),p(o,{name:i.name,state:"",visible:!1!==i.visible,selected:!0===i.selected}),s=i.events,y(s,function(t,i){e(o,i,t)}),(s&&s.click||i.point&&i.point.events&&i.point.events.click||i.allowPointSelect)&&(t.runTrackerClick=!0),o.getColor(),o.getSymbol(),c(o.parallelArrays,function(t){o[t+"Data"]=[]}),o.setData(i.data,!1),o.isCartesian&&(t.hasCartesianSeries=!0),r.length&&(n=r[r.length-1]),o._i=b(n&&n._i,-1)+1,t.orderSeries(this.insert(r))},insert:function(t){var e,i=this.options.index;if(m(i)){for(e=t.length;e--;)if(i>=b(t[e].options.index,t[e]._i)){t.splice(e+1,0,this);break}-1===e&&t.unshift(this),e+=1}else t.push(this);return b(e,t.length-1)},bindAxes:function(){var e,i=this,s=i.options,n=i.chart;c(i.axisTypes||[],function(o){c(n[o],function(t){e=t.options,(s[o]===e.index||void 0!==s[o]&&s[o]===e.id||void 0===s[o]&&0===e.index)&&(i.insert(t.series),i[o]=t,t.isDirty=!0)}),i[o]||i.optionalAxis===o||t.error(18,!0)})},updateParallelArrays:function(t,e){var i=t.series,s=arguments,n=m(e)?function(s){var n="y"===s&&i.toYData?i.toYData(t):t[s];i[s+"Data"][e]=n}:function(t){Array.prototype[e].apply(i[t+"Data"],Array.prototype.slice.call(s,2))};c(i.parallelArrays,n)},autoIncrement:function(){var t,e=this.options,i=this.xIncrement,s=e.pointIntervalUnit,i=b(i,e.pointStart,0);return this.pointInterval=t=b(this.pointInterval,e.pointInterval,1),s&&(e=new r(i),"day"===s?e=+e[r.hcSetDate](e[r.hcGetDate]()+t):"month"===s?e=+e[r.hcSetMonth](e[r.hcGetMonth]()+t):"year"===s&&(e=+e[r.hcSetFullYear](e[r.hcGetFullYear]()+t)),t=e-i),this.xIncrement=i+t,i},setOptions:function(t){var e=this.chart,i=e.options,s=i.plotOptions,n=(e.userOptions||{}).plotOptions||{},o=s[this.type];return this.userOptions=t,e=x(o,s.series,t),this.tooltipOptions=x(a.tooltip,a.plotOptions.series&&a.plotOptions.series.tooltip,a.plotOptions[this.type].tooltip,i.tooltip.userOptions,s.series&&s.series.tooltip,s[this.type].tooltip,t.tooltip),this.stickyTracking=b(t.stickyTracking,n[this.type]&&n[this.type].stickyTracking,n.series&&n.series.stickyTracking,!(!this.tooltipOptions.shared||this.noSharedTooltip)||e.stickyTracking),null===o.marker&&delete e.marker,this.zoneAxis=e.zoneAxis,t=this.zones=(e.zones||[]).slice(),!e.negativeColor&&!e.negativeFillColor||e.zones||t.push({value:e[this.zoneAxis+"Threshold"]||e.threshold||0,className:"highcharts-negative",color:e.negativeColor,fillColor:e.negativeFillColor}),t.length&&l(t[t.length-1].value)&&t.push({color:this.color,fillColor:this.fillColor}),e},getCyclic:function(t,e,i){var s,n=this.chart,o=this.userOptions,r=t+"Index",a=t+"Counter",h=i?i.length:b(n.options.chart[t+"Count"],n[t+"Count"]);e||(s=b(o[r],o["_"+r]),l(s)||(n.series.length||(n[a]=0),o["_"+r]=s=n[a]%h,n[a]+=1),i&&(e=i[s])),void 0!==s&&(this[r]=s),this[t]=e},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||h[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:t.LegendSymbolMixin.drawLineMarker,setData:function(e,i,s,n){var o,r=this,a=r.points,h=a&&a.length||0,l=r.options,d=r.chart,p=null,u=r.xAxis,f=l.turboThreshold,x=this.xData,y=this.yData,k=(o=r.pointArrayMap)&&o.length;if(e=e||[],o=e.length,i=b(i,!0),!1!==n&&o&&h===o&&!r.cropped&&!r.hasGroupedData&&r.visible)c(e,function(t,e){a[e].update&&t!==l.data[e]&&a[e].update(t,!1,null,!1)});else{if(r.xIncrement=null,r.colorCounter=0,c(this.parallelArrays,function(t){r[t+"Data"].length=0}),f&&o>f){for(s=0;null===p&&s<o;)p=e[s],s++;if(m(p))for(s=0;s<o;s++)x[s]=this.autoIncrement(),y[s]=e[s];else if(g(p))if(k)for(s=0;s<o;s++)p=e[s],x[s]=p[0],y[s]=p.slice(1,k+1);else for(s=0;s<o;s++)p=e[s],x[s]=p[0],y[s]=p[1];else t.error(12)}else for(s=0;s<o;s++)void 0!==e[s]&&(p={series:r},r.pointClass.prototype.applyOptions.apply(p,[e[s]]),r.updateParallelArrays(p,s));for(v(y[0])&&t.error(14,!0),r.data=[],r.options.data=r.userOptions.data=e,s=h;s--;)a[s]&&a[s].destroy&&a[s].destroy();u&&(u.minRange=u.userMinRange),r.isDirty=d.isDirtyBox=!0,r.isDirtyData=!!a,s=!1}"point"===l.legendType&&(this.processData(),this.generatePoints()),i&&d.redraw(s)},processData:function(e){var i,s=this.xData,n=this.yData,o=s.length;i=0;var r,a,h,l=this.xAxis,c=this.options;h=c.cropThreshold;var d,p,u=this.getExtremesFromAll||c.getExtremesFromAll,f=this.isCartesian,c=l&&l.val2lin,g=l&&l.isLog;if(f&&!this.isDirty&&!l.isDirty&&!this.yAxis.isDirty&&!e)return!1;for(l&&(e=l.getExtremes(),d=e.min,p=e.max),f&&this.sorted&&!u&&(!h||o>h||this.forceCrop)&&(s[o-1]<d||s[0]>p?(s=[],n=[]):(s[0]<d||s[o-1]>p)&&(i=this.cropData(this.xData,this.yData,d,p),s=i.xData,n=i.yData,i=i.start,r=!0)),h=s.length||1;--h;)o=g?c(s[h])-c(s[h-1]):s[h]-s[h-1],0<o&&(void 0===a||o<a)?a=o:0>o&&this.requireSorting&&t.error(15);this.cropped=r,this.cropStart=i,this.processedXData=s,this.processedYData=n,this.closestPointRange=a},cropData:function(t,e,i,s){var n,o=t.length,r=0,a=o,h=b(this.cropShoulder,1);for(n=0;n<o;n++)if(t[n]>=i){r=Math.max(0,n-h);break}for(i=n;i<o;i++)if(t[i]>s){a=i+h;break}return{xData:t.slice(r,a),yData:e.slice(r,a),start:r,end:a}},generatePoints:function(){var t,e,i,s,n=this.options,o=n.data,r=this.data,a=this.processedXData,h=this.processedYData,l=this.pointClass,c=a.length,d=this.cropStart||0,p=this.hasGroupedData,n=n.keys,u=[];for(r||p||(r=[],r.length=o.length,r=this.data=r),n&&p&&(this.options.keys=!1),s=0;s<c;s++)e=d+s,p?(i=(new l).init(this,[a[s]].concat(M(h[s]))),i.dataGroup=this.groupMap[s]):(i=r[e])||void 0===o[e]||(r[e]=i=(new l).init(this,o[e],a[s])),i&&(i.index=e,u[s]=i);if(this.options.keys=n,r&&(c!==(t=r.length)||p))for(s=0;s<t;s++)s!==d||p||(s+=c),r[s]&&(r[s].destroyElements(),r[s].plotX=void 0);this.data=r,this.points=u},getExtremes:function(t){var e,i=this.yAxis,o=this.processedXData,r=[],a=0;e=this.xAxis.getExtremes();var h,l,c,d,p=e.min,u=e.max;for(t=t||this.stackedYData||this.processedYData||[],e=t.length,d=0;d<e;d++)if(l=o[d],c=t[d],h=(m(c,!0)||g(c))&&(!i.positiveValuesOnly||c.length||0<c),l=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(o[d]||l)>=p&&(o[d]||l)<=u,h&&l)if(h=c.length)for(;h--;)null!==c[h]&&(r[a++]=c[h]);else r[a++]=c;this.dataMin=n(r),this.dataMax=s(r)},translate:function(){this.processedXData||this.processData(),this.generatePoints();var t,e,i,s,n=this.options,r=n.stacking,a=this.xAxis,h=a.categories,c=this.yAxis,d=this.points,p=d.length,u=!!this.modifyValue,f=n.pointPlacement,g="between"===f||m(f),v=n.threshold,x=n.startFromThreshold?v:0,y=Number.MAX_VALUE;for("between"===f&&(f=.5),m(f)&&(f*=b(n.pointRange||a.pointRange)),n=0;n<p;n++){var k=d[n],M=k.x,w=k.y;e=k.low;var S,T=r&&c.stacks[(this.negStacks&&w<(x?0:v)?"-":"")+this.stackKey];c.positiveValuesOnly&&null!==w&&0>=w&&(k.isNull=!0),k.plotX=t=o(Math.min(Math.max(-1e5,a.translate(M,0,0,0,1,f,"flags"===this.type)),1e5)),r&&this.visible&&!k.isNull&&T&&T[M]&&(s=this.getStackIndicator(s,M,this.index),S=T[M],w=S.points[s.key],e=w[0],w=w[1],e===x&&s.key===T[M].base&&(e=b(v,c.min)),c.positiveValuesOnly&&0>=e&&(e=null),k.total=k.stackTotal=S.total,k.percentage=S.total&&k.y/S.total*100,k.stackY=w,S.setOffset(this.pointXOffset||0,this.barW||0)),k.yBottom=l(e)?c.translate(e,0,1,0,1):null,u&&(w=this.modifyValue(w,k)),k.plotY=e="number"==typeof w&&1/0!==w?Math.min(Math.max(-1e5,c.translate(w,0,1,0,1)),1e5):void 0,k.isInside=void 0!==e&&0<=e&&e<=c.len&&0<=t&&t<=a.len,k.clientX=g?o(a.translate(M,0,0,0,1,f)):t,k.negative=k.y<(v||0),k.category=h&&void 0!==h[k.x]?h[k.x]:k.x,k.isNull||(void 0!==i&&(y=Math.min(y,Math.abs(t-i))),i=t),k.zone=this.zones.length&&k.getZone()}this.closestPointRangePx=y},getValidPoints:function(t,e){var i=this.chart;return f(t||this.points||[],function(t){return!(e&&!i.isInsidePlot(t.plotX,t.plotY,i.inverted))&&!t.isNull})},setClip:function(t){var e=this.chart,i=this.options,s=e.renderer,n=e.inverted,o=this.clipBox,r=o||e.clipBox,a=this.sharedClipKey||["_sharedClip",t&&t.duration,t&&t.easing,r.height,i.xAxis,i.yAxis].join(),h=e[a],l=e[a+"m"];h||(t&&(r.width=0,e[a+"m"]=l=s.clipRect(-99,n?-e.plotLeft:-e.plotTop,99,n?e.chartWidth:e.chartHeight)),e[a]=h=s.clipRect(r),h.count={length:0}),t&&!h.count[this.index]&&(h.count[this.index]=!0,h.count.length+=1),!1!==i.clip&&(this.group.clip(t||o?h:e.clipRect),this.markerGroup.clip(l),this.sharedClipKey=a),t||(h.count[this.index]&&(delete h.count[this.index],--h.count.length),0===h.count.length&&a&&e[a]&&(o||(e[a]=e[a].destroy()),e[a+"m"]&&(e[a+"m"]=e[a+"m"].destroy())))},animate:function(t){var e,s=this.chart,n=i(this.options.animation);t?this.setClip(n):(e=this.sharedClipKey,(t=s[e])&&t.animate({width:s.plotSizeX},n),s[e+"m"]&&s[e+"m"].animate({width:s.plotSizeX+99},n),this.animate=null)},afterAnimate:function(){this.setClip(),u(this,"afterAnimate"),this.finishedAnimating=!0},drawPoints:function(){var t,e,i,s,n,o,r,a,h=this.points,l=this.chart,c=this.options.marker,d=this[this.specialGroup]||this.markerGroup,p=b(c.enabled,!!this.xAxis.isRadial||null,this.closestPointRangePx>=2*c.radius);if(!1!==c.enabled||this._hasPointMarkers)for(e=0;e<h.length;e++)i=h[e],t=i.plotY,s=i.graphic,n=i.marker||{},o=!!i.marker,r=p&&void 0===n.enabled||n.enabled,a=i.isInside,r&&m(t)&&null!==i.y?(t=b(n.symbol,this.symbol),i.hasImage=0===t.indexOf("url"),r=this.markerAttribs(i,i.selected&&"select"),s?s[a?"show":"hide"](!0).animate(r):a&&(0<r.width||i.hasImage)&&(i.graphic=s=l.renderer.symbol(t,r.x,r.y,r.width,r.height,o?n:c).add(d)),s&&s.attr(this.pointAttribs(i,i.selected&&"select")),s&&s.addClass(i.getClassName(),!0)):s&&(i.graphic=s.destroy())},markerAttribs:function(t,e){var i=this.options.marker,s=t.marker||{},n=b(s.radius,i.radius);return e&&(i=i.states[e],e=s.states&&s.states[e],n=b(e&&e.radius,i&&i.radius,n+(i&&i.radiusPlus||0))),t.hasImage&&(n=0),t={x:Math.floor(t.plotX)-n,y:t.plotY-n},n&&(t.width=t.height=2*n),t},pointAttribs:function(t,e){var i=this.options.marker,s=t&&t.options,n=s&&s.marker||{},o=this.color,r=s&&s.color,a=t&&t.color,s=b(n.lineWidth,i.lineWidth);return t=t&&t.zone&&t.zone.color,o=r||t||a||o,t=n.fillColor||i.fillColor||o,o=n.lineColor||i.lineColor||o,e&&(i=i.states[e],e=n.states&&n.states[e]||{},s=b(e.lineWidth,i.lineWidth,s+b(e.lineWidthPlus,i.lineWidthPlus,0)),t=e.fillColor||i.fillColor||t,o=e.lineColor||i.lineColor||o),{stroke:o,"stroke-width":s,fill:t}},destroy:function(){var t,e,i,s,n=this,o=n.chart,r=/AppleWebKit\/533/.test(T.navigator.userAgent),a=n.data||[];for(u(n,"destroy"),k(n),c(n.axisTypes||[],function(t){(s=n[t])&&s.series&&(d(s.series,n),s.isDirty=s.forceRedraw=!0)}),n.legendItem&&n.chart.legend.destroyItem(n),e=a.length;e--;)(i=a[e])&&i.destroy&&i.destroy();n.points=null,clearTimeout(n.animationTimeout),y(n,function(e,i){e instanceof w&&!e.survive&&(t=r&&"group"===i?"hide":"destroy",e[t]())}),o.hoverSeries===n&&(o.hoverSeries=null),d(o.series,n),o.orderSeries(),y(n,function(t,e){delete n[e]})},getGraphPath:function(t,e,i){var s,n,o=this,r=o.options,a=r.step,h=[],d=[];return t=t||o.points,(s=t.reversed)&&t.reverse(),(a={right:1,center:2}[a]||a&&3)&&s&&(a=4-a),!r.connectNulls||e||i||(t=this.getValidPoints(t)),c(t,function(s,c){var p=s.plotX,u=s.plotY,f=t[c-1];(s.leftCliff||f&&f.rightCliff)&&!i&&(n=!0),s.isNull&&!l(e)&&0<c?n=!r.connectNulls:s.isNull&&!e?n=!0:(0===c||n?c=["M",s.plotX,s.plotY]:o.getPointSpline?c=o.getPointSpline(t,s,c):a?(c=1===a?["L",f.plotX,u]:2===a?["L",(f.plotX+p)/2,f.plotY,"L",(f.plotX+p)/2,u]:["L",p,f.plotY],c.push("L",p,u)):c=["L",p,u],d.push(s.x),a&&d.push(s.x),h.push.apply(h,c),n=!1)}),h.xMap=d,o.graphPath=h},drawGraph:function(){var t=this,e=this.options,i=(this.gappedPath||this.getGraphPath).call(this),s=[["graph","highcharts-graph",e.lineColor||this.color,e.dashStyle]];c(this.zones,function(i,n){s.push(["zone-graph-"+n,"highcharts-graph highcharts-zone-graph-"+n+" "+(i.className||""),i.color||t.color,i.dashStyle||e.dashStyle])}),c(s,function(s,n){var o=s[0],r=t[o];r?(r.endX=i.xMap,r.animate({d:i})):i.length&&(t[o]=t.chart.renderer.path(i).addClass(s[1]).attr({zIndex:1}).add(t.group),r={stroke:s[2],"stroke-width":e.lineWidth,fill:t.fillGraph&&t.color||"none"},s[3]?r.dashstyle=s[3]:"square"!==e.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),r=t[o].attr(r).shadow(2>n&&e.shadow)),r&&(r.startX=i.xMap,r.isArea=i.isArea)})},applyZones:function(){var t,e,i,s,n,o,r,a,h,l=this,d=this.chart,p=d.renderer,u=this.zones,f=this.clips||[],g=this.graph,m=this.area,v=Math.max(d.chartWidth,d.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],y=d.inverted,k=!1;u.length&&(g||m)&&x&&void 0!==x.min&&(n=x.reversed,o=x.horiz,g&&g.hide(),m&&m.hide(),s=x.getExtremes(),c(u,function(c,u){t=n?o?d.plotWidth:0:o?0:x.toPixels(s.min),t=Math.min(Math.max(b(e,t),0),v),e=Math.min(Math.max(Math.round(x.toPixels(b(c.value,s.max),!0)),0),v),k&&(t=e=x.toPixels(s.max)),r=Math.abs(t-e),a=Math.min(t,e),h=Math.max(t,e),x.isXAxis?(i={x:y?h:a,y:0,width:r,height:v},o||(i.x=d.plotHeight-i.x)):(i={x:0,y:y?h:a,width:v,height:r},o&&(i.y=d.plotWidth-i.y)),y&&p.isVML&&(i=x.isXAxis?{x:0,y:n?a:h,height:i.width,width:d.chartWidth}:{x:i.y-d.plotLeft-d.spacingBox.x,y:0,width:i.height,height:d.chartHeight}),f[u]?f[u].animate(i):(f[u]=p.clipRect(i),g&&l["zone-graph-"+u].clip(f[u]),m&&l["zone-area-"+u].clip(f[u])),k=c.value>s.max}),this.clips=f)},invertGroups:function(t){function i(){c(["group","markerGroup"],function(e){n[e]&&(o.renderer.isVML&&n[e].attr({width:n.yAxis.len,height:n.xAxis.len}),n[e].width=n.yAxis.len,n[e].height=n.xAxis.len,n[e].invert(t))})}var s,n=this,o=n.chart;n.xAxis&&(s=e(o,"resize",i),e(n,"destroy",s),i(t),n.invertGroups=i)},plotGroup:function(t,e,i,s,n){var o=this[t],r=!o;return r&&(this[t]=o=this.chart.renderer.g().attr({zIndex:s||.1}).add(n)),o.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className||""),!0),o.attr({visibility:i})[r?"attr":"animate"](this.getPlotBox()),o},getPlotBox:function(){var t=this.chart,e=this.xAxis,i=this.yAxis;return t.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:t.plotLeft,translateY:i?i.top:t.plotTop,scaleX:1,scaleY:1}},render:function(){var t,e=this,s=e.chart,n=e.options,o=!!e.animate&&s.renderer.isSVG&&i(n.animation).duration,r=e.visible?"inherit":"hidden",a=n.zIndex,h=e.hasRendered,l=s.seriesGroup,c=s.inverted;t=e.plotGroup("group","series",r,a,l),e.markerGroup=e.plotGroup("markerGroup","markers",r,a,l),o&&e.animate(!0),t.inverted=!!e.isCartesian&&c,e.drawGraph&&(e.drawGraph(),e.applyZones()),e.drawDataLabels&&e.drawDataLabels(),e.visible&&e.drawPoints(),e.drawTracker&&!1!==e.options.enableMouseTracking&&e.drawTracker(),e.invertGroups(c),!1===n.clip||e.sharedClipKey||h||t.clip(s.clipRect),o&&e.animate(),h||(e.animationTimeout=S(function(){e.afterAnimate()},o)),e.isDirty=!1,e.hasRendered=!0},redraw:function(){var t=this.chart,e=this.isDirty||this.isDirtyData,i=this.group,s=this.xAxis,n=this.yAxis;i&&(t.inverted&&i.attr({width:t.plotWidth,height:t.plotHeight}),i.animate({translateX:b(s&&s.left,t.plotLeft),translateY:b(n&&n.top,t.plotTop)})),this.translate(),this.render(),e&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(t,e){var i=this.xAxis,s=this.yAxis,n=this.chart.inverted;return this.searchKDTree({clientX:n?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:n?s.len-t.chartX+s.pos:t.chartY-s.pos},e)},buildKDTree:function(){function t(i,s,n){var o,r;if(r=i&&i.length)return o=e.kdAxisArray[s%n],i.sort(function(t,e){return t[o]-e[o]}),r=Math.floor(r/2),{point:i[r],left:t(i.slice(0,r),s+1,n),right:t(i.slice(r+1),s+1,n)}}this.buildingKdTree=!0;var e=this,i=-1<e.options.findNearestPointBy.indexOf("y")?2:1;delete e.kdTree,S(function(){e.kdTree=t(e.getValidPoints(null,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow?0:1)},searchKDTree:function(t,e){function i(t,e,a,h){var c,d,p=e.point,u=s.kdAxisArray[a%h],f=p;return d=l(t[n])&&l(p[n])?Math.pow(t[n]-p[n],2):null,c=l(t[o])&&l(p[o])?Math.pow(t[o]-p[o],2):null,c=(d||0)+(c||0),p.dist=l(c)?Math.sqrt(c):Number.MAX_VALUE,p.distX=l(d)?Math.sqrt(d):Number.MAX_VALUE,u=t[u]-p[u],c=0>u?"left":"right",d=0>u?"right":"left",e[c]&&(c=i(t,e[c],a+1,h),f=c[r]<f[r]?c:p),e[d]&&Math.sqrt(u*u)<f[r]&&(t=i(t,e[d],a+1,h),f=t[r]<f[r]?t:f),f}var s=this,n=this.kdAxisArray[0],o=this.kdAxisArray[1],r=e?"distX":"dist";if(e=-1<s.options.findNearestPointBy.indexOf("y")?2:1,this.kdTree||this.buildingKdTree||this.buildKDTree(),this.kdTree)return i(t,this.kdTree,e,e)}})}(t),function(t){var e=t.Axis,i=t.Chart,s=t.correctFloat,n=t.defined,o=t.destroyObjectProperties,r=t.each,a=t.format,h=t.objectEach,l=t.pick,c=t.Series;t.StackItem=function(t,e,i,s,n){var o=t.chart.inverted;this.axis=t,this.isNegative=i,this.options=e,this.x=s,this.total=null,this.points={},this.stack=n,this.rightCliff=this.leftCliff=0,this.alignOptions={align:e.align||(o?i?"left":"right":"center"),verticalAlign:e.verticalAlign||(o?"middle":i?"bottom":"top"),y:l(e.y,o?4:i?14:-6),x:l(e.x,o?i?-6:6:0)},this.textAlign=e.textAlign||(o?i?"right":"left":"center")},t.StackItem.prototype={destroy:function(){o(this,this.axis)},render:function(t){var e=this.options,i=e.format,i=i?a(i,this):e.formatter.call(this);this.label?this.label.attr({text:i,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(i,null,null,e.useHTML).css(e.style).attr({align:this.textAlign,rotation:e.rotation,visibility:"hidden"}).add(t)},setOffset:function(t,e){var i=this.axis,s=i.chart,n=i.translate(i.usePercentage?100:this.total,0,0,0,1),i=i.translate(0),i=Math.abs(n-i);t=s.xAxis[0].translate(this.x)+t,n=this.getStackBox(s,this,t,n,e,i),(e=this.label)&&(e.align(this.alignOptions,null,n),n=e.alignAttr,e[!1===this.options.crop||s.isInsidePlot(n.x,n.y)?"show":"hide"](!0))},getStackBox:function(t,e,i,s,n,o){var r=e.axis.reversed,a=t.inverted;return t=t.plotHeight,e=e.isNegative&&!r||!e.isNegative&&r,{x:a?e?s:s-o:i,y:a?t-i-n:e?t-s-o:t-s,width:a?o:n,height:a?n:o}}},i.prototype.getStacks=function(){var t=this;r(t.yAxis,function(t){t.stacks&&t.hasVisibleSeries&&(t.oldStacks=t.stacks)}),r(t.series,function(e){!e.options.stacking||!0!==e.visible&&!1!==t.options.chart.ignoreHiddenSeries||(e.stackKey=e.type+l(e.options.stack,""))})},e.prototype.buildStacks=function(){var t,e=this.series,i=l(this.options.reversedStacks,!0),s=e.length;if(!this.isXAxis){for(this.usePercentage=!1,t=s;t--;)e[i?t:s-t-1].setStackedPoints();if(this.usePercentage)for(t=0;t<s;t++)e[t].setPercentStacks()}},e.prototype.renderStackTotals=function(){var t=this.chart,e=t.renderer,i=this.stacks,s=this.stackTotalGroup;s||(this.stackTotalGroup=s=e.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),s.translate(t.plotLeft,t.plotTop),h(i,function(t){h(t,function(t){t.render(s)})})},e.prototype.resetStacks=function(){var t=this,e=t.stacks;t.isXAxis||h(e,function(e){h(e,function(i,s){i.touched<t.stacksTouched?(i.destroy(),delete e[s]):(i.total=null,i.cum=null)})})},e.prototype.cleanStacks=function(){var t;this.isXAxis||(this.oldStacks&&(t=this.stacks=this.oldStacks),h(t,function(t){h(t,function(t){t.cum=t.total})}))},c.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var e,i,o,r,a,h,c,d=this.processedXData,p=this.processedYData,u=[],f=p.length,g=this.options,m=g.threshold,v=g.startFromThreshold?m:0,x=g.stack,g=g.stacking,y=this.stackKey,b="-"+y,k=this.negStacks,M=this.yAxis,w=M.stacks,S=M.oldStacks;for(M.stacksTouched+=1,a=0;a<f;a++)h=d[a],c=p[a],e=this.getStackIndicator(e,h,this.index),r=e.key,o=(i=k&&c<(v?0:m))?b:y,w[o]||(w[o]={}),w[o][h]||(S[o]&&S[o][h]?(w[o][h]=S[o][h],w[o][h].total=null):w[o][h]=new t.StackItem(M,M.options.stackLabels,i,h,x)),o=w[o][h],null!==c&&(o.points[r]=o.points[this.index]=[l(o.cum,v)],n(o.cum)||(o.base=r),o.touched=M.stacksTouched,0<e.index&&!1===this.singleStacks&&(o.points[r][0]=o.points[this.index+","+h+",0"][0])),"percent"===g?(i=i?y:b,k&&w[i]&&w[i][h]?(i=w[i][h],o.total=i.total=Math.max(i.total,o.total)+Math.abs(c)||0):o.total=s(o.total+(Math.abs(c)||0))):o.total=s(o.total+(c||0)),o.cum=l(o.cum,v)+(c||0),null!==c&&(o.points[r].push(o.cum),u[a]=o.cum);"percent"===g&&(M.usePercentage=!0),
- this.stackedYData=u,M.oldStacks={}}},c.prototype.setPercentStacks=function(){var t,e=this,i=e.stackKey,n=e.yAxis.stacks,o=e.processedXData;r([i,"-"+i],function(i){for(var r,a,h=o.length;h--;)r=o[h],t=e.getStackIndicator(t,r,e.index,i),(r=(a=n[i]&&n[i][r])&&a.points[t.key])&&(a=a.total?100/a.total:0,r[0]=s(r[0]*a),r[1]=s(r[1]*a),e.stackedYData[h]=r[1])})},c.prototype.getStackIndicator=function(t,e,i,s){return!n(t)||t.x!==e||s&&t.key!==s?t={x:e,index:0,key:s}:t.index++,t.key=[i,e,t.index].join(),t}}(t),function(t){var e=t.addEvent,i=t.animate,s=t.Axis,n=t.createElement,o=t.css,r=t.defined,a=t.each,h=t.erase,l=t.extend,c=t.fireEvent,d=t.inArray,p=t.isNumber,u=t.isObject,f=t.isArray,g=t.merge,m=t.objectEach,v=t.pick,x=t.Point,y=t.Series,b=t.seriesTypes,k=t.setAnimation,M=t.splat;l(t.Chart.prototype,{addSeries:function(t,e,i){var s,n=this;return t&&(e=v(e,!0),c(n,"addSeries",{options:t},function(){s=n.initSeries(t),n.isDirtyLegend=!0,n.linkSeries(),e&&n.redraw(i)})),s},addAxis:function(t,e,i,n){var o=e?"xAxis":"yAxis",r=this.options;return t=g(t,{index:this[o].length,isX:e}),e=new s(this,t),r[o]=M(r[o]||{}),r[o].push(t),v(i,!0)&&this.redraw(n),e},showLoading:function(t){var s=this,r=s.options,a=s.loadingDiv,h=r.loading,c=function(){a&&o(a,{left:s.plotLeft+"px",top:s.plotTop+"px",width:s.plotWidth+"px",height:s.plotHeight+"px"})};a||(s.loadingDiv=a=n("div",{className:"highcharts-loading highcharts-loading-hidden"},null,s.container),s.loadingSpan=n("span",{className:"highcharts-loading-inner"},null,a),e(s,"redraw",c)),a.className="highcharts-loading",s.loadingSpan.innerHTML=t||r.lang.loading,o(a,l(h.style,{zIndex:10})),o(s.loadingSpan,h.labelStyle),s.loadingShown||(o(a,{opacity:0,display:""}),i(a,{opacity:h.style.opacity||.5},{duration:h.showDuration||0})),s.loadingShown=!0,c()},hideLoading:function(){var t=this.options,e=this.loadingDiv;e&&(e.className="highcharts-loading highcharts-loading-hidden",i(e,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){o(e,{display:"none"})}})),this.loadingShown=!1},propsRequireDirtyBox:"backgroundColor borderColor borderWidth margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions tooltip".split(" "),update:function(t,e,i){var s,n,o=this,h={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},l=t.chart,c=[];l&&(g(!0,o.options.chart,l),"className"in l&&o.setClassName(l.className),("inverted"in l||"polar"in l)&&(o.propFromSeries(),s=!0),"alignTicks"in l&&(s=!0),m(l,function(t,e){-1!==d("chart."+e,o.propsRequireUpdateSeries)&&(n=!0),-1!==d(e,o.propsRequireDirtyBox)&&(o.isDirtyBox=!0)}),"style"in l&&o.renderer.setStyle(l.style)),t.colors&&(this.options.colors=t.colors),t.plotOptions&&g(!0,this.options.plotOptions,t.plotOptions),m(t,function(t,e){o[e]&&"function"==typeof o[e].update?o[e].update(t,!1):"function"==typeof o[h[e]]&&o[h[e]](t),"chart"!==e&&-1!==d(e,o.propsRequireUpdateSeries)&&(n=!0)}),a("xAxis yAxis zAxis series colorAxis pane".split(" "),function(e){t[e]&&(a(M(t[e]),function(t,s){(s=r(t.id)&&o.get(t.id)||o[e][s])&&s.coll===e&&(s.update(t,!1),i&&(s.touched=!0)),!s&&i&&("series"===e?o.addSeries(t,!1).touched=!0:"xAxis"!==e&&"yAxis"!==e||(o.addAxis(t,"xAxis"===e,!1).touched=!0))}),i&&a(o[e],function(t){t.touched?delete t.touched:c.push(t)}))}),a(c,function(t){t.remove(!1)}),s&&a(o.axes,function(t){t.update({},!1)}),n&&a(o.series,function(t){t.update({},!1)}),t.loading&&g(!0,o.options.loading,t.loading),s=l&&l.width,l=l&&l.height,p(s)&&s!==o.chartWidth||p(l)&&l!==o.chartHeight?o.setSize(s,l):v(e,!0)&&o.redraw()},setSubtitle:function(t){this.setTitle(void 0,t)}}),l(x.prototype,{update:function(t,e,i,s){function n(){r.applyOptions(t),null===r.y&&h&&(r.graphic=h.destroy()),u(t,!0)&&(h&&h.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=h.destroy()),t&&t.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index,a.updateParallelArrays(r,o),c.data[o]=u(c.data[o],!0)||u(t,!0)?r.options:t,a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(l.isDirtyBox=!0),"point"===c.legendType&&(l.isDirtyLegend=!0),e&&l.redraw(i)}var o,r=this,a=r.series,h=r.graphic,l=a.chart,c=a.options;e=v(e,!0),!1===s?n():r.firePointEvent("update",{options:t},n)},remove:function(t,e){this.series.removePoint(d(this,this.series.data),t,e)}}),l(y.prototype,{addPoint:function(t,e,i,s){var n,o,r,a,h=this.options,l=this.data,c=this.chart,d=this.xAxis,d=d&&d.hasNames&&d.names,p=h.data,u=this.xData;if(e=v(e,!0),n={series:this},this.pointClass.prototype.applyOptions.apply(n,[t]),a=n.x,r=u.length,this.requireSorting&&a<u[r-1])for(o=!0;r&&u[r-1]>a;)r--;this.updateParallelArrays(n,"splice",r,0,0),this.updateParallelArrays(n,r),d&&n.name&&(d[a]=n.name),p.splice(r,0,t),o&&(this.data.splice(r,0,null),this.processData()),"point"===h.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):(l.shift(),this.updateParallelArrays(n,"shift"),p.shift())),this.isDirtyData=this.isDirty=!0,e&&c.redraw(s)},removePoint:function(t,e,i){var s=this,n=s.data,o=n[t],r=s.points,a=s.chart,h=function(){r&&r.length===n.length&&r.splice(t,1),n.splice(t,1),s.options.data.splice(t,1),s.updateParallelArrays(o||{series:s},"splice",t,1),o&&o.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&a.redraw()};k(i,a),e=v(e,!0),o?o.firePointEvent("remove",null,h):h()},remove:function(t,e,i){function s(){n.destroy(),o.isDirtyLegend=o.isDirtyBox=!0,o.linkSeries(),v(t,!0)&&o.redraw(e)}var n=this,o=n.chart;!1!==i?c(n,"remove",null,s):s()},update:function(t,e){var i,s=this,n=s.chart,o=s.userOptions,r=s.oldType||s.type,h=t.type||o.type||n.options.chart.type,c=b[r].prototype,d=["group","markerGroup","dataLabelsGroup","navigatorSeries","baseSeries"],p=s.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(t).toString())return this.setData(t.data,e);(h&&h!==r||void 0!==t.zIndex)&&(d.length=0),a(d,function(t){d[t]=s[t],delete s[t]}),t=g(o,p,{index:s.index,pointStart:s.xData[0]},{data:s.options.data},t),s.remove(!1,null,!1);for(i in c)s[i]=void 0;l(s,b[h||r].prototype),a(d,function(t){s[t]=d[t]}),s.init(n,t),s.oldType=r,n.linkSeries(),v(e,!0)&&n.redraw(!1)}}),l(s.prototype,{update:function(t,e){var i=this.chart;t=i.options[this.coll][this.options.index]=g(this.userOptions,t),this.destroy(!0),this.init(i,l(t,{events:void 0})),i.isDirtyBox=!0,v(e,!0)&&i.redraw()},remove:function(t){for(var e=this.chart,i=this.coll,s=this.series,n=s.length;n--;)s[n]&&s[n].remove(!1);h(e.axes,this),h(e[i],this),f(e.options[i])?e.options[i].splice(this.options.index,1):delete e.options[i],a(e[i],function(t,e){t.options.index=e}),this.destroy(),e.isDirtyBox=!0,v(t,!0)&&e.redraw()},setTitle:function(t,e){this.update({title:t},e)},setCategories:function(t,e){this.update({categories:t},e)}})}(t),function(t){var e=t.color,i=t.each,s=t.map,n=t.pick,o=t.Series,r=t.seriesType;r("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(e){var o,r,a=[],h=[],l=this.xAxis,c=this.yAxis,d=c.stacks[this.stackKey],p={},u=this.index,f=c.series,g=f.length,m=n(c.options.reversedStacks,!0)?1:-1;if(e=e||this.points,this.options.stacking){for(r=0;r<e.length;r++)p[e[r].x]=e[r];t.objectEach(d,function(t,e){null!==t.total&&h.push(e)}),h.sort(function(t,e){return t-e}),o=s(f,function(){return this.visible}),i(h,function(t,e){var s,n,f=0;if(p[t]&&!p[t].isNull)a.push(p[t]),i([-1,1],function(i){var a=1===i?"rightNull":"leftNull",l=0,c=d[h[e+i]];if(c)for(r=u;0<=r&&r<g;)s=c.points[r],s||(r===u?p[t][a]=!0:o[r]&&(n=d[t].points[r])&&(l-=n[1]-n[0])),r+=m;p[t][1===i?"rightCliff":"leftCliff"]=l});else{for(r=u;0<=r&&r<g;){if(s=d[t].points[r]){f=s[1];break}r+=m}f=c.translate(f,0,1,0,1),a.push({isNull:!0,plotX:l.translate(t,0,0,0,1),x:t,plotY:f,yBottom:f})}})}return a},getGraphPath:function(t){var e,i,s,r,a=o.prototype.getGraphPath,h=this.options,l=h.stacking,c=this.yAxis,d=[],p=[],u=this.index,f=c.stacks[this.stackKey],g=h.threshold,m=c.getThreshold(h.threshold),h=h.connectNulls||"percent"===l,v=function(e,i,n){var o=t[e];e=l&&f[o.x].points[u];var r=o[n+"Null"]||0;n=o[n+"Cliff"]||0;var a,h,o=!0;n||r?(a=(r?e[0]:e[1])+n,h=e[0]+n,o=!!r):!l&&t[i]&&t[i].isNull&&(a=h=g),void 0!==a&&(p.push({plotX:s,plotY:null===a?m:c.getThreshold(a),isNull:o,isCliff:!0}),d.push({plotX:s,plotY:null===h?m:c.getThreshold(h),doCurve:!1}))};for(t=t||this.points,l&&(t=this.getStackPoints(t)),e=0;e<t.length;e++)i=t[e].isNull,s=n(t[e].rectPlotX,t[e].plotX),r=n(t[e].yBottom,m),(!i||h)&&(h||v(e,e-1,"left"),i&&!l&&h||(p.push(t[e]),d.push({x:e,plotX:s,plotY:r})),h||v(e,e+1,"right"));return e=a.call(this,p,!0,!0),d.reversed=!0,i=a.call(this,d,!0,!0),i.length&&(i[0]="L"),i=e.concat(i),a=a.call(this,p,!1,h),i.xMap=e.xMap,this.areaPath=i,a},drawGraph:function(){this.areaPath=[],o.prototype.drawGraph.apply(this);var t=this,s=this.areaPath,r=this.options,a=[["area","highcharts-area",this.color,r.fillColor]];i(this.zones,function(e,i){a.push(["zone-area-"+i,"highcharts-area highcharts-zone-area-"+i+" "+e.className,e.color||t.color,e.fillColor||r.fillColor])}),i(a,function(i){var o=i[0],a=t[o];a?(a.endX=s.xMap,a.animate({d:s})):(a=t[o]=t.chart.renderer.path(s).addClass(i[1]).attr({fill:n(i[3],e(i[2]).setOpacity(n(r.fillOpacity,.75)).get()),zIndex:0}).add(t.group),a.isArea=!0),a.startX=s.xMap,a.shiftUnit=r.step?2:1})},drawLegendSymbol:t.LegendSymbolMixin.drawRectangle})}(t),function(t){var e=t.pick;(t=t.seriesType)("spline","line",{},{getPointSpline:function(t,i,s){var n=i.plotX,o=i.plotY,r=t[s-1];s=t[s+1];var a,h,l,c;if(r&&!r.isNull&&!1!==r.doCurve&&!i.isCliff&&s&&!s.isNull&&!1!==s.doCurve&&!i.isCliff){t=r.plotY,l=s.plotX,s=s.plotY;var d=0;a=(1.5*n+r.plotX)/2.5,h=(1.5*o+t)/2.5,l=(1.5*n+l)/2.5,c=(1.5*o+s)/2.5,l!==a&&(d=(c-h)*(l-n)/(l-a)+o-c),h+=d,c+=d,h>t&&h>o?(h=Math.max(t,o),c=2*o-h):h<t&&h<o&&(h=Math.min(t,o),c=2*o-h),c>s&&c>o?(c=Math.max(s,o),h=2*o-c):c<s&&c<o&&(c=Math.min(s,o),h=2*o-c),i.rightContX=l,i.rightContY=c}return i=["C",e(r.rightContX,r.plotX),e(r.rightContY,r.plotY),e(a,n),e(h,o),n,o],r.rightContX=r.rightContY=null,i}})}(t),function(t){var e=t.seriesTypes.area.prototype,i=t.seriesType;i("areaspline","spline",t.defaultPlotOptions.area,{getStackPoints:e.getStackPoints,getGraphPath:e.getGraphPath,drawGraph:e.drawGraph,drawLegendSymbol:t.LegendSymbolMixin.drawRectangle})}(t),function(t){var e=t.animObject,i=t.color,s=t.each,n=t.extend,o=t.isNumber,r=t.merge,a=t.pick,h=t.Series,l=t.seriesType,c=t.svg;l("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1,shadow:!1},select:{color:"#cccccc",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){h.prototype.init.apply(this,arguments);var t=this,e=t.chart;e.hasRendered&&s(e.series,function(e){e.type===t.type&&(e.isDirty=!0)})},getColumnMetrics:function(){var t,e=this,i=e.options,n=e.xAxis,o=e.yAxis,r=n.reversed,h={},l=0;!1===i.grouping?l=1:s(e.chart.series,function(i){var s,n=i.options,r=i.yAxis;i.type!==e.type||!i.visible&&e.chart.options.chart.ignoreHiddenSeries||o.len!==r.len||o.pos!==r.pos||(n.stacking?(t=i.stackKey,void 0===h[t]&&(h[t]=l++),s=h[t]):!1!==n.grouping&&(s=l++),i.columnIndex=s)});var c=Math.min(Math.abs(n.transA)*(n.ordinalSlope||i.pointRange||n.closestPointRange||n.tickInterval||1),n.len),d=c*i.groupPadding,p=(c-2*d)/(l||1),i=Math.min(i.maxPointWidth||n.len,a(i.pointWidth,p*(1-2*i.pointPadding)));return e.columnMetrics={width:i,offset:(p-i)/2+(d+((e.columnIndex||0)+(r?1:0))*p-c/2)*(r?-1:1)},e.columnMetrics},crispCol:function(t,e,i,s){var n=this.chart,o=this.borderWidth,r=-(o%2?.5:0),o=o%2?.5:1;return n.inverted&&n.renderer.isVML&&(o+=1),this.options.crisp&&(i=Math.round(t+i)+r,t=Math.round(t)+r,i-=t),s=Math.round(e+s)+o,r=.5>=Math.abs(e)&&.5<s,e=Math.round(e)+o,s-=e,r&&s&&(--e,s+=1),{x:t,y:e,width:i,height:s}},translate:function(){var t=this,e=t.chart,i=t.options,n=t.dense=2>t.closestPointRange*t.xAxis.transA,n=t.borderWidth=a(i.borderWidth,n?0:1),o=t.yAxis,r=t.translatedThreshold=o.getThreshold(i.threshold),l=a(i.minPointLength,5),c=t.getColumnMetrics(),d=c.width,p=t.barW=Math.max(d,1+2*n),u=t.pointXOffset=c.offset;e.inverted&&(r-=.5),i.pointPadding&&(p=Math.ceil(p)),h.prototype.translate.apply(t),s(t.points,function(i){var s,n=a(i.yBottom,r),h=999+Math.abs(n),h=Math.min(Math.max(-h,i.plotY),o.len+h),c=i.plotX+u,f=p,g=Math.min(h,n),m=Math.max(h,n)-g;Math.abs(m)<l&&l&&(m=l,s=!o.reversed&&!i.negative||o.reversed&&i.negative,g=Math.abs(g-r)>l?n-l:r-(s?l:0)),i.barX=c,i.pointWidth=d,i.tooltipPos=e.inverted?[o.len+o.pos-e.plotLeft-h,t.xAxis.len-c-f/2,m]:[c+f/2,h+o.pos-e.plotTop,m],i.shapeType="rect",i.shapeArgs=t.crispCol.apply(t,i.isNull?[c,r,f,0]:[c,g,f,m])})},getSymbol:t.noop,drawLegendSymbol:t.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(t,e){var s,n=this.options,o=this.pointAttrToOptions||{};s=o.stroke||"borderColor";var a=o["stroke-width"]||"borderWidth",h=t&&t.color||this.color,l=t[s]||n[s]||this.color||h,c=t[a]||n[a]||this[a]||0,o=n.dashStyle;return t&&this.zones.length&&(h=t.getZone(),h=t.options.color||h&&h.color||this.color),e&&(t=r(n.states[e],t.options.states&&t.options.states[e]||{}),e=t.brightness,h=t.color||void 0!==e&&i(h).brighten(t.brightness).get()||h,l=t[s]||l,c=t[a]||c,o=t.dashStyle||o),s={fill:h,stroke:l,"stroke-width":c},o&&(s.dashstyle=o),s},drawPoints:function(){var t,e=this,i=this.chart,n=e.options,a=i.renderer,h=n.animationLimit||250;s(e.points,function(s){var l=s.graphic;o(s.plotY)&&null!==s.y?(t=s.shapeArgs,l?l[i.pointCount<h?"animate":"attr"](r(t)):s.graphic=l=a[s.shapeType](t).add(s.group||e.group),n.borderRadius&&l.attr({r:n.borderRadius}),l.attr(e.pointAttribs(s,s.selected&&"select")).shadow(n.shadow,null,n.stacking&&!n.borderRadius),l.addClass(s.getClassName(),!0)):l&&(s.graphic=l.destroy())})},animate:function(t){var i=this,s=this.yAxis,o=i.options,r=this.chart.inverted,a={};c&&(t?(a.scaleY=.001,t=Math.min(s.pos+s.len,Math.max(s.pos,s.toPixels(o.threshold))),r?a.translateX=t-s.len:a.translateY=t,i.group.attr(a)):(a[r?"translateX":"translateY"]=s.pos,i.group.animate(a,n(e(i.options.animation),{step:function(t,e){i.group.attr({scaleY:Math.max(.001,e.pos)})}})),i.animate=null))},remove:function(){var t=this,e=t.chart;e.hasRendered&&s(e.series,function(e){e.type===t.type&&(e.isDirty=!0)}),h.prototype.remove.apply(t,arguments)}})}(t),function(t){(t=t.seriesType)("bar","column",null,{inverted:!0})}(t),function(t){var e=t.Series;(t=t.seriesType)("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.85em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&e.prototype.drawGraph.call(this)}})}(t),function(t){var e=t.pick,i=t.relativeLength;t.CenteredSeriesMixin={getCenter:function(){var t,s,n=this.options,o=this.chart,r=2*(n.slicedOffset||0),a=o.plotWidth-2*r,o=o.plotHeight-2*r,h=n.center,h=[e(h[0],"50%"),e(h[1],"50%"),n.size||"100%",n.innerSize||0],l=Math.min(a,o);for(t=0;4>t;++t)s=h[t],n=2>t||2===t&&/%$/.test(s),h[t]=i(s,[a,o,l,h[2]][t])+(n?r:0);return h[3]>h[2]&&(h[3]=h[2]),h}}}(t),function(t){var e=t.addEvent,i=t.defined,s=t.each,n=t.extend,o=t.inArray,r=t.noop,a=t.pick,h=t.Point,l=t.Series,c=t.seriesType,d=t.setAnimation;c("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:t.seriesTypes.column.prototype.pointAttribs,animate:function(t){var e=this,i=e.points,n=e.startAngleRad;t||(s(i,function(t){var i=t.graphic,s=t.shapeArgs;i&&(i.attr({r:t.startR||e.center[3]/2,start:n,end:n}),i.animate({r:s.r,start:s.start,end:s.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var t,e,i=0,s=this.points,n=s.length,o=this.options.ignoreHiddenPoint;for(t=0;t<n;t++)e=s[t],i+=o&&!e.visible?0:e.isNull?0:e.y;for(this.total=i,t=0;t<n;t++)e=s[t],e.percentage=0<i&&(e.visible||!o)?e.y/i*100:0,e.total=i},generatePoints:function(){l.prototype.generatePoints.call(this),this.updateTotals()},translate:function(t){this.generatePoints();var e,i,s,n,o,r,h=0,l=this.options,c=l.slicedOffset,d=c+(l.borderWidth||0),p=l.startAngle||0,u=this.startAngleRad=Math.PI/180*(p-90),p=(this.endAngleRad=Math.PI/180*(a(l.endAngle,p+360)-90))-u,f=this.points,g=l.dataLabels.distance,l=l.ignoreHiddenPoint,m=f.length;for(t||(this.center=t=this.getCenter()),this.getX=function(e,i,n){return s=Math.asin(Math.min((e-t[1])/(t[2]/2+n.labelDistance),1)),t[0]+(i?-1:1)*Math.cos(s)*(t[2]/2+n.labelDistance)},o=0;o<m;o++)r=f[o],r.labelDistance=a(r.options.dataLabels&&r.options.dataLabels.distance,g),this.maxLabelDistance=Math.max(this.maxLabelDistance||0,r.labelDistance),e=u+h*p,l&&!r.visible||(h+=r.percentage/100),i=u+h*p,r.shapeType="arc",r.shapeArgs={x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2,start:Math.round(1e3*e)/1e3,end:Math.round(1e3*i)/1e3},s=(i+e)/2,s>1.5*Math.PI?s-=2*Math.PI:s<-Math.PI/2&&(s+=2*Math.PI),r.slicedTranslation={translateX:Math.round(Math.cos(s)*c),translateY:Math.round(Math.sin(s)*c)},i=Math.cos(s)*t[2]/2,n=Math.sin(s)*t[2]/2,r.tooltipPos=[t[0]+.7*i,t[1]+.7*n],r.half=s<-Math.PI/2||s>Math.PI/2?1:0,r.angle=s,e=Math.min(d,r.labelDistance/5),r.labelPos=[t[0]+i+Math.cos(s)*r.labelDistance,t[1]+n+Math.sin(s)*r.labelDistance,t[0]+i+Math.cos(s)*e,t[1]+n+Math.sin(s)*e,t[0]+i,t[1]+n,0>r.labelDistance?"center":r.half?"right":"left",s]},drawGraph:null,drawPoints:function(){var t,e,i,o,r=this,a=r.chart.renderer,h=r.options.shadow;h&&!r.shadowGroup&&(r.shadowGroup=a.g("shadow").add(r.group)),s(r.points,function(s){if(!s.isNull){e=s.graphic,o=s.shapeArgs,t=s.getTranslate();var l=s.shadowGroup;h&&!l&&(l=s.shadowGroup=a.g("shadow").add(r.shadowGroup)),l&&l.attr(t),i=r.pointAttribs(s,s.selected&&"select"),e?e.setRadialReference(r.center).attr(i).animate(n(o,t)):(s.graphic=e=a[s.shapeType](o).setRadialReference(r.center).attr(t).add(r.group),s.visible||e.attr({visibility:"hidden"}),e.attr(i).attr({"stroke-linejoin":"round"}).shadow(h,l)),e.addClass(s.getClassName())}})},searchPoint:r,sortByAngle:function(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})},drawLegendSymbol:t.LegendSymbolMixin.drawRectangle,getCenter:t.CenteredSeriesMixin.getCenter,getSymbol:r},{init:function(){h.prototype.init.apply(this,arguments);var t,i=this;return i.name=a(i.name,"Slice"),t=function(t){i.slice("select"===t.type)},e(i,"select",t),e(i,"unselect",t),i},isValid:function(){return t.isNumber(this.y,!0)&&0<=this.y},setVisible:function(t,e){var i=this,n=i.series,r=n.chart,h=n.options.ignoreHiddenPoint;e=a(e,h),t!==i.visible&&(i.visible=i.options.visible=t=void 0===t?!i.visible:t,n.options.data[o(i,n.data)]=i.options,s(["graphic","dataLabel","connector","shadowGroup"],function(e){i[e]&&i[e][t?"show":"hide"](!0)}),i.legendItem&&r.legend.colorizeItem(i,t),t||"hover"!==i.state||i.setState(""),h&&(n.isDirty=!0),e&&r.redraw())},slice:function(t,e,s){var n=this.series;d(s,n.chart),a(e,!0),this.sliced=this.options.sliced=i(t)?t:!this.sliced,n.options.data[o(this,n.data)]=this.options,this.graphic.animate(this.getTranslate()),this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(t){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})}(t),function(t){var e=t.addEvent,i=t.arrayMax,s=t.defined,n=t.each,o=t.extend,r=t.format,a=t.map,h=t.merge,l=t.noop,c=t.pick,d=t.relativeLength,p=t.Series,u=t.seriesTypes,f=t.stableSort;t.distribute=function(t,e){function i(t,e){return t.target-e.target}var s,o,r=!0,h=t,l=[];for(o=0,s=t.length;s--;)o+=t[s].size;if(o>e){for(f(t,function(t,e){return(e.rank||0)-(t.rank||0)}),o=s=0;o<=e;)o+=t[s].size,s++;l=t.splice(s-1,t.length)}for(f(t,i),t=a(t,function(t){return{size:t.size,targets:[t.target]}});r;){for(s=t.length;s--;)r=t[s],o=(Math.min.apply(0,r.targets)+Math.max.apply(0,r.targets))/2,r.pos=Math.min(Math.max(0,o-r.size/2),e-r.size);for(s=t.length,r=!1;s--;)0<s&&t[s-1].pos+t[s-1].size>t[s].pos&&(t[s-1].size+=t[s].size,t[s-1].targets=t[s-1].targets.concat(t[s].targets),t[s-1].pos+t[s-1].size>e&&(t[s-1].pos=e-t[s-1].size),t.splice(s,1),r=!0)}s=0,n(t,function(t){var e=0;n(t.targets,function(){h[s].pos=t.pos+e,e+=h[s].size,s++})}),h.push.apply(h,l),f(h,i)},p.prototype.drawDataLabels=function(){var i,o,a,l,d=this,p=d.options,u=p.dataLabels,f=d.points,g=d.hasRendered||0,m=c(u.defer,!!p.animation),v=d.chart.renderer;(u.enabled||d._hasPointLabels)&&(d.dlProcessOptions&&d.dlProcessOptions(u),l=d.plotGroup("dataLabelsGroup","data-labels",m&&!g?"hidden":"visible",u.zIndex||6),m&&(l.attr({opacity:+g}),g||e(d,"afterAnimate",function(){d.visible&&l.show(!0),l[p.animation?"animate":"attr"]({opacity:1},{duration:200})})),o=u,n(f,function(e){var n,f,g,m,x=e.dataLabel,y=e.connector,b=!x;i=e.dlOptions||e.options&&e.options.dataLabels,(n=c(i&&i.enabled,o.enabled)&&null!==e.y)&&(u=h(o,i),f=e.getLabelConfig(),a=u.format?r(u.format,f):u.formatter.call(f,u),m=u.style,f=u.rotation,m.color=c(u.color,m.color,d.color,"#000000"),"contrast"===m.color&&(e.contrastColor=v.getContrast(e.color||d.color),m.color=u.inside||0>c(e.labelDistance,u.distance)||p.stacking?e.contrastColor:"#000000"),p.cursor&&(m.cursor=p.cursor),g={fill:u.backgroundColor,stroke:u.borderColor,"stroke-width":u.borderWidth,r:u.borderRadius||0,rotation:f,padding:u.padding,zIndex:1},t.objectEach(g,function(t,e){void 0===t&&delete g[e]})),!x||n&&s(a)?n&&s(a)&&(x?g.text=a:(x=e.dataLabel=v[f?"text":"label"](a,0,-9999,u.shape,null,null,u.useHTML,null,"data-label"),x.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(u.className||"")+(u.useHTML?"highcharts-tracker":""))),x.attr(g),x.css(m).shadow(u.shadow),x.added||x.add(l),d.alignDataLabel(e,x,u,null,b)):(e.dataLabel=x=x.destroy(),y&&(e.connector=y.destroy()))}))},p.prototype.alignDataLabel=function(t,e,i,s,n){var r,a=this.chart,h=a.inverted,l=c(t.plotX,-9999),d=c(t.plotY,-9999),p=e.getBBox(),u=i.rotation,f=i.align,g=this.visible&&(t.series.forceDL||a.isInsidePlot(l,Math.round(d),h)||s&&a.isInsidePlot(l,h?s.x+1:s.y+s.height-1,h)),m="justify"===c(i.overflow,"justify");g&&(r=i.style.fontSize,r=a.renderer.fontMetrics(r,e).b,s=o({x:h?this.yAxis.len-d:l,y:Math.round(h?this.xAxis.len-l:d),width:0,height:0},s),o(i,{width:p.width,height:p.height}),u?(m=!1,l=a.renderer.rotCorr(r,u),l={x:s.x+i.x+s.width/2+l.x,y:s.y+i.y+{top:0,middle:.5,bottom:1}[i.verticalAlign]*s.height},e[n?"attr":"animate"](l).attr({align:f}),d=(u+720)%360,d=180<d&&360>d,"left"===f?l.y-=d?p.height:0:"center"===f?(l.x-=p.width/2,l.y-=p.height/2):"right"===f&&(l.x-=p.width,l.y-=d?0:p.height)):(e.align(i,null,s),l=e.alignAttr),m?t.isLabelJustified=this.justifyDataLabel(e,i,l,p,s,n):c(i.crop,!0)&&(g=a.isInsidePlot(l.x,l.y)&&a.isInsidePlot(l.x+p.width,l.y+p.height)),i.shape&&!u)&&e[n?"attr":"animate"]({anchorX:h?a.plotWidth-t.plotY:t.plotX,anchorY:h?a.plotHeight-t.plotX:t.plotY}),g||(e.attr({y:-9999}),e.placed=!1)},p.prototype.justifyDataLabel=function(t,e,i,s,n,o){var r,a,h=this.chart,l=e.align,c=e.verticalAlign,d=t.box?0:t.padding||0;return r=i.x+d,0>r&&("right"===l?e.align="left":e.x=-r,a=!0),r=i.x+s.width-d,r>h.plotWidth&&("left"===l?e.align="right":e.x=h.plotWidth-r,a=!0),r=i.y+d,0>r&&("bottom"===c?e.verticalAlign="top":e.y=-r,a=!0),r=i.y+s.height-d,r>h.plotHeight&&("top"===c?e.verticalAlign="bottom":e.y=h.plotHeight-r,a=!0),a&&(t.placed=!o,t.align(e,null,n)),a},u.pie&&(u.pie.prototype.drawDataLabels=function(){var e,o,r,a,h,l,d,u,f,g,m=this,v=m.data,x=m.chart,y=m.options.dataLabels,b=c(y.connectorPadding,10),k=c(y.connectorWidth,1),M=x.plotWidth,w=x.plotHeight,S=m.center,T=S[2]/2,A=S[1],C=[[],[]],L=[0,0,0,0];m.visible&&(y.enabled||m._hasPointLabels)&&(n(v,function(t){t.dataLabel&&t.visible&&t.dataLabel.shortened&&(t.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.dataLabel.shortened=!1)}),p.prototype.drawDataLabels.apply(m),n(v,function(t){t.dataLabel&&t.visible&&(C[t.half].push(t),t.dataLabel._pos=null)}),n(C,function(i,o){var p,v,k,C=i.length,P=[];if(C)for(m.sortByAngle(i,o-.5),0<m.maxLabelDistance&&(p=Math.max(0,A-T-m.maxLabelDistance),v=Math.min(A+T+m.maxLabelDistance,x.plotHeight),n(i,function(t){0<t.labelDistance&&t.dataLabel&&(t.top=Math.max(0,A-T-t.labelDistance),t.bottom=Math.min(A+T+t.labelDistance,x.plotHeight),k=t.dataLabel.getBBox().height||21,t.positionsIndex=P.push({target:t.labelPos[1]-t.top+k/2,size:k,rank:t.y})-1)}),t.distribute(P,v+k-p)),g=0;g<C;g++)e=i[g],v=e.positionsIndex,h=e.labelPos,r=e.dataLabel,f=!1===e.visible?"hidden":"inherit",p=h[1],P&&s(P[v])?void 0===P[v].pos?f="hidden":(l=P[v].size,u=e.top+P[v].pos):u=p,delete e.positionIndex,d=y.justify?S[0]+(o?-1:1)*(T+e.labelDistance):m.getX(u<e.top+2||u>e.bottom-2?p:u,o,e),r._attr={visibility:f,align:h[6]},r._pos={x:d+y.x+({left:b,right:-b}[h[6]]||0),y:u+y.y-10},h.x=d,h.y=u,c(y.crop,!0)&&(a=r.getBBox().width,p=null,d-a<b?(p=Math.round(a-d+b),L[3]=Math.max(p,L[3])):d+a>M-b&&(p=Math.round(d+a-M+b),L[1]=Math.max(p,L[1])),0>u-l/2?L[0]=Math.max(Math.round(-u+l/2),L[0]):u+l/2>w&&(L[2]=Math.max(Math.round(u+l/2-w),L[2])),r.sideOverflow=p)}),0===i(L)||this.verifyDataLabelOverflow(L))&&(this.placeDataLabels(),k&&n(this.points,function(t){var e;o=t.connector,(r=t.dataLabel)&&r._pos&&t.visible&&0<t.labelDistance?(f=r._attr.visibility,(e=!o)&&(t.connector=o=x.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+t.colorIndex).add(m.dataLabelsGroup),o.attr({"stroke-width":k,stroke:y.connectorColor||t.color||"#666666"})),o[e?"attr":"animate"]({d:m.connectorPath(t.labelPos)}),o.attr("visibility",f)):o&&(t.connector=o.destroy())}))},u.pie.prototype.connectorPath=function(t){var e=t.x,i=t.y;return c(this.options.dataLabels.softConnector,!0)?["M",e+("left"===t[6]?5:-5),i,"C",e,i,2*t[2]-t[4],2*t[3]-t[5],t[2],t[3],"L",t[4],t[5]]:["M",e+("left"===t[6]?5:-5),i,"L",t[2],t[3],"L",t[4],t[5]]},u.pie.prototype.placeDataLabels=function(){n(this.points,function(t){var e=t.dataLabel;e&&t.visible&&((t=e._pos)?(e.sideOverflow&&(e._attr.width=e.getBBox().width-e.sideOverflow,e.css({width:e._attr.width+"px",textOverflow:"ellipsis"}),e.shortened=!0),e.attr(e._attr),e[e.moved?"animate":"attr"](t),e.moved=!0):e&&e.attr({y:-9999}))},this)},u.pie.prototype.alignDataLabel=l,u.pie.prototype.verifyDataLabelOverflow=function(t){var e,i=this.center,s=this.options,n=s.center,o=s.minSize||80,r=null!==s.size;return r||(null!==n[0]?e=Math.max(i[2]-Math.max(t[1],t[3]),o):(e=Math.max(i[2]-t[1]-t[3],o),i[0]+=(t[3]-t[1])/2),null!==n[1]?e=Math.max(Math.min(e,i[2]-Math.max(t[0],t[2])),o):(e=Math.max(Math.min(e,i[2]-t[0]-t[2]),o),i[1]+=(t[0]-t[2])/2),e<i[2]?(i[2]=e,i[3]=Math.min(d(s.innerSize||0,e),e),this.translate(i),this.drawDataLabels&&this.drawDataLabels()):r=!0),r}),u.column&&(u.column.prototype.alignDataLabel=function(t,e,i,s,n){var o=this.chart.inverted,r=t.series,a=t.dlBox||t.shapeArgs,l=c(t.below,t.plotY>c(this.translatedThreshold,r.yAxis.len)),d=c(i.inside,!!this.options.stacking);a&&(s=h(a),0>s.y&&(s.height+=s.y,s.y=0),a=s.y+s.height-r.yAxis.len,0<a&&(s.height-=a),o&&(s={x:r.yAxis.len-s.y-s.height,y:r.xAxis.len-s.x-s.width,width:s.height,height:s.width}),d||(o?(s.x+=l?0:s.width,s.width=0):(s.y+=l?s.height:0,s.height=0))),i.align=c(i.align,!o||d?"center":l?"right":"left"),i.verticalAlign=c(i.verticalAlign,o||d?"middle":l?"top":"bottom"),p.prototype.alignDataLabel.call(this,t,e,i,s,n),t.isLabelJustified&&t.contrastColor&&t.dataLabel.css({color:t.contrastColor})})}(t),function(t){var e=t.Chart,i=t.each,s=t.objectEach,n=t.pick,o=t.addEvent;e.prototype.callbacks.push(function(t){function e(){var e=[];i(t.yAxis||[],function(t){t.options.stackLabels&&!t.options.stackLabels.allowOverlap&&s(t.stacks,function(t){s(t,function(t){e.push(t.label)})})}),i(t.series||[],function(t){var s=t.options.dataLabels,o=t.dataLabelCollections||["dataLabel"];(s.enabled||t._hasPointLabels)&&!s.allowOverlap&&t.visible&&i(o,function(s){i(t.points,function(t){t[s]&&(t[s].labelrank=n(t.labelrank,t.shapeArgs&&t.shapeArgs.height),e.push(t[s]))})})}),t.hideOverlappingLabels(e)}e(),o(t,"redraw",e)}),e.prototype.hideOverlappingLabels=function(t){var e,s,n,o,r,a,h,l,c,d=t.length,p=function(t,e,i,s,n,o,r,a){return!(n>t+i||n+r<t||o>e+s||o+a<e)};for(s=0;s<d;s++)(e=t[s])&&(e.oldOpacity=e.opacity,e.newOpacity=1,e.width||(n=e.getBBox(),e.width=n.width,e.height=n.height));for(t.sort(function(t,e){return(e.labelrank||0)-(t.labelrank||0)}),s=0;s<d;s++)for(n=t[s],e=s+1;e<d;++e)o=t[e],n&&o&&n!==o&&n.placed&&o.placed&&0!==n.newOpacity&&0!==o.newOpacity&&(r=n.alignAttr,a=o.alignAttr,h=n.parentGroup,l=o.parentGroup,c=2*(n.box?0:n.padding||0),r=p(r.x+h.translateX,r.y+h.translateY,n.width-c,n.height-c,a.x+l.translateX,a.y+l.translateY,o.width-c,o.height-c))&&((n.labelrank<o.labelrank?n:o).newOpacity=0);i(t,function(t){var e,i;t&&(i=t.newOpacity,t.oldOpacity!==i&&t.placed&&(i?t.show(!0):e=function(){t.hide()},t.alignAttr.opacity=i,t[t.isOld?"animate":"attr"](t.alignAttr,null,e)),t.isOld=!0)})}}(t),function(t){var e,i=t.addEvent,s=t.Chart,n=t.createElement,o=t.css,r=t.defaultOptions,a=t.defaultPlotOptions,h=t.each,l=t.extend,c=t.fireEvent,d=t.hasTouch,p=t.inArray,u=t.isObject,f=t.Legend,g=t.merge,m=t.pick,v=t.Point,x=t.Series,y=t.seriesTypes,b=t.svg;e=t.TrackerMixin={drawTrackerPoint:function(){var t=this,e=t.chart.pointer,i=function(t){var i=e.getPointFromEvent(t);void 0!==i&&(e.isDirectTouch=!0,i.onMouseOver(t))};h(t.points,function(t){t.graphic&&(t.graphic.element.point=t),t.dataLabel&&(t.dataLabel.div?t.dataLabel.div.point=t:t.dataLabel.element.point=t)}),t._hasTracking||(h(t.trackerGroups,function(s){t[s]&&(t[s].addClass("highcharts-tracker").on("mouseover",i).on("mouseout",function(t){e.onTrackerMouseOut(t)}),d&&t[s].on("touchstart",i),t.options.cursor&&t[s].css(o).css({cursor:t.options.cursor}))}),t._hasTracking=!0)},drawTrackerGraph:function(){var t,e=this,i=e.options,s=i.trackByArea,n=[].concat(s?e.areaPath:e.graphPath),o=n.length,r=e.chart,a=r.pointer,l=r.renderer,c=r.options.tooltip.snap,p=e.tracker,u=function(){r.hoverSeries!==e&&e.onMouseOver()},f="rgba(192,192,192,"+(b?1e-4:.002)+")";if(o&&!s)for(t=o+1;t--;)"M"===n[t]&&n.splice(t+1,0,n[t+1]-c,n[t+2],"L"),(t&&"M"===n[t]||t===o)&&n.splice(t,0,"L",n[t-2]+c,n[t-1]);p?p.attr({d:n}):e.graph&&(e.tracker=l.path(n).attr({"stroke-linejoin":"round",visibility:e.visible?"visible":"hidden",stroke:f,fill:s?f:"none","stroke-width":e.graph.strokeWidth()+(s?0:2*c),zIndex:2}).add(e.group),h([e.tracker,e.markerGroup],function(t){t.addClass("highcharts-tracker").on("mouseover",u).on("mouseout",function(t){a.onTrackerMouseOut(t)}),i.cursor&&t.css({cursor:i.cursor}),d&&t.on("touchstart",u)}))}},y.column&&(y.column.prototype.drawTracker=e.drawTrackerPoint),y.pie&&(y.pie.prototype.drawTracker=e.drawTrackerPoint),
- y.scatter&&(y.scatter.prototype.drawTracker=e.drawTrackerPoint),l(f.prototype,{setItemEvents:function(t,e,i){var s=this,n=s.chart.renderer.boxWrapper,o="highcharts-legend-"+(t.series?"point":"series")+"-active";(i?e:t.legendGroup).on("mouseover",function(){t.setState("hover"),n.addClass(o),e.css(s.options.itemHoverStyle)}).on("mouseout",function(){e.css(g(t.visible?s.itemStyle:s.itemHiddenStyle)),n.removeClass(o),t.setState()}).on("click",function(e){var i=function(){t.setVisible&&t.setVisible()};e={browserEvent:e},t.firePointEvent?t.firePointEvent("legendItemClick",e,i):c(t,"legendItemClick",e,i)})},createCheckboxForItem:function(t){t.checkbox=n("input",{type:"checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),i(t.checkbox,"click",function(e){c(t.series||t,"checkboxClick",{checked:e.target.checked,item:t},function(){t.select()})})}}),r.legend.itemStyle.cursor="pointer",l(s.prototype,{showResetZoom:function(){var t=this,e=r.lang,i=t.options.chart.resetZoomButton,s=i.theme,n=s.states,o="chart"===i.relativeTo?null:"plotBox";this.resetZoomButton=t.renderer.button(e.resetZoom,null,null,function(){t.zoomOut()},s,n&&n.hover).attr({align:i.position.align,title:e.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(i.position,!1,o)},zoomOut:function(){var t=this;c(t,"selection",{resetSelection:!0},function(){t.zoom()})},zoom:function(t){var e,i,s=this.pointer,n=!1;!t||t.resetSelection?(h(this.axes,function(t){e=t.zoom()}),s.initiated=!1):h(t.xAxis.concat(t.yAxis),function(t){var i=t.axis;s[i.isXAxis?"zoomX":"zoomY"]&&(e=i.zoom(t.min,t.max),i.displayBtn&&(n=!0))}),i=this.resetZoomButton,n&&!i?this.showResetZoom():!n&&u(i)&&(this.resetZoomButton=i.destroy()),e&&this.redraw(m(this.options.chart.animation,t&&t.animation,100>this.pointCount))},pan:function(t,e){var i,s=this,n=s.hoverPoints;n&&h(n,function(t){t.setState()}),h("xy"===e?[1,0]:[1],function(e){e=s[e?"xAxis":"yAxis"][0];var n,o=e.horiz,r=t[o?"chartX":"chartY"],o=o?"mouseDownX":"mouseDownY",a=s[o],h=(e.pointRange||0)/2,l=e.getExtremes(),c=e.toValue(a-r,!0)+h,h=e.toValue(a+e.len-r,!0)-h,d=h<c,a=d?h:c,c=d?c:h,h=Math.min(l.dataMin,e.toValue(e.toPixels(l.min)-e.minPixelPadding)),d=Math.max(l.dataMax,e.toValue(e.toPixels(l.max)+e.minPixelPadding));n=h-a,0<n&&(c+=n,a=h),n=c-d,0<n&&(c=d,a-=n),e.series.length&&a!==l.min&&c!==l.max&&(e.setExtremes(a,c,!1,!1,{trigger:"pan"}),i=!0),s[o]=r}),i&&s.redraw(!1),o(s.container,{cursor:"move"})}}),l(v.prototype,{select:function(t,e){var i=this,s=i.series,n=s.chart;t=m(t,!i.selected),i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[p(i,s.data)]=i.options,i.setState(t&&"select"),e||h(n.getSelectedPoints(),function(t){t.selected&&t!==i&&(t.selected=t.options.selected=!1,s.options.data[p(t,s.data)]=t.options,t.setState(""),t.firePointEvent("unselect"))})})},onMouseOver:function(t){var e=this.series.chart,i=e.pointer;t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e.inverted),i.runPointActions(t,this)},onMouseOut:function(){var t=this.series.chart;this.firePointEvent("mouseOut"),h(t.hoverPoints||[],function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var e=this,s=g(e.series.options.point,e.options).events;e.events=s,t.objectEach(s,function(t,s){i(e,s,t)}),this.hasImportedEvents=!0}},setState:function(t,e){var i,s=Math.floor(this.plotX),n=this.plotY,o=this.series,r=o.options.states[t]||{},h=a[o.type].marker&&o.options.marker,c=h&&!1===h.enabled,d=h&&h.states&&h.states[t]||{},p=!1===d.enabled,u=o.stateMarkerGraphic,f=this.marker||{},g=o.chart,v=o.halo,x=h&&o.markerAttribs;t=t||"",t===this.state&&!e||this.selected&&"select"!==t||!1===r.enabled||t&&(p||c&&!1===d.enabled)||t&&f.states&&f.states[t]&&!1===f.states[t].enabled||(x&&(i=o.markerAttribs(this,t)),this.graphic?(this.state&&this.graphic.removeClass("highcharts-point-"+this.state),t&&this.graphic.addClass("highcharts-point-"+t),this.graphic.animate(o.pointAttribs(this,t),m(g.options.chart.animation,r.animation)),i&&this.graphic.animate(i,m(g.options.chart.animation,d.animation,h.animation)),u&&u.hide()):(t&&d&&(h=f.symbol||o.symbol,u&&u.currentSymbol!==h&&(u=u.destroy()),u?u[e?"animate":"attr"]({x:i.x,y:i.y}):h&&(o.stateMarkerGraphic=u=g.renderer.symbol(h,i.x,i.y,i.width,i.height).add(o.markerGroup),u.currentSymbol=h),u&&u.attr(o.pointAttribs(this,t))),u&&(u[t&&g.isInsidePlot(s,n,g.inverted)?"show":"hide"](),u.element.point=this)),(s=r.halo)&&s.size?(v||(o.halo=v=g.renderer.path().add((this.graphic||u).parentGroup)),v[e?"animate":"attr"]({d:this.haloPath(s.size)}),v.attr({class:"highcharts-halo highcharts-color-"+m(this.colorIndex,o.colorIndex)}),v.point=this,v.attr(l({fill:this.color||o.color,"fill-opacity":s.opacity,zIndex:-1},s.attributes))):v&&v.point&&v.point.haloPath&&v.animate({d:v.point.haloPath(0)}),this.state=t)},haloPath:function(t){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-t,this.plotY-t,2*t,2*t)}}),l(x.prototype,{onMouseOver:function(){var t=this.chart,e=t.hoverSeries;e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&c(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this},onMouseOut:function(){var t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&c(this,"mouseOut"),!i||this.stickyTracking||i.shared&&!this.noSharedTooltip||i.hide(),this.setState()},setState:function(t){var e=this,i=e.options,s=e.graph,n=i.states,o=i.lineWidth,i=0;if(t=t||"",e.state!==t&&(h([e.group,e.markerGroup,e.dataLabelsGroup],function(i){i&&(e.state&&i.removeClass("highcharts-series-"+e.state),t&&i.addClass("highcharts-series-"+t))}),e.state=t,!n[t]||!1!==n[t].enabled)&&(t&&(o=n[t].lineWidth||o+(n[t].lineWidthPlus||0)),s&&!s.dashstyle))for(o={"stroke-width":o},s.animate(o,m(e.chart.options.chart.animation,n[t]&&n[t].animation));e["zone-graph-"+i];)e["zone-graph-"+i].attr(o),i+=1},setVisible:function(t,e){var i,s=this,n=s.chart,o=s.legendItem,r=n.options.chart.ignoreHiddenSeries,a=s.visible;i=(s.visible=t=s.options.visible=s.userOptions.visible=void 0===t?!a:t)?"show":"hide",h(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(t){s[t]&&s[t][i]()}),n.hoverSeries!==s&&(n.hoverPoint&&n.hoverPoint.series)!==s||s.onMouseOut(),o&&n.legend.colorizeItem(s,t),s.isDirty=!0,s.options.stacking&&h(n.series,function(t){t.options.stacking&&t.visible&&(t.isDirty=!0)}),h(s.linkedSeries,function(e){e.setVisible(t,!1)}),r&&(n.isDirtyBox=!0),!1!==e&&n.redraw(),c(s,i)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(t){this.selected=t=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),c(this,t?"select":"unselect")},drawTracker:e.drawTrackerGraph})}(t),function(t){var e=t.Chart,i=t.each,s=t.inArray,n=t.isArray,o=t.isObject,r=t.pick,a=t.splat;e.prototype.setResponsive=function(e){var s=this.options.responsive,n=[],o=this.currentResponsive;s&&s.rules&&i(s.rules,function(i){void 0===i._id&&(i._id=t.uniqueKey()),this.matchResponsiveRule(i,n,e)},this);var r=t.merge.apply(0,t.map(n,function(e){return t.find(s.rules,function(t){return t._id===e}).chartOptions})),n=n.toString()||void 0;n!==(o&&o.ruleIds)&&(o&&this.update(o.undoOptions,e),n?(this.currentResponsive={ruleIds:n,mergedOptions:r,undoOptions:this.currentOptions(r)},this.update(r,e)):this.currentResponsive=void 0)},e.prototype.matchResponsiveRule=function(t,e){var i=t.condition;(i.callback||function(){return this.chartWidth<=r(i.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=r(i.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=r(i.minWidth,0)&&this.chartHeight>=r(i.minHeight,0)}).call(this)&&e.push(t._id)},e.prototype.currentOptions=function(e){function i(e,r,h,l){var c;t.objectEach(e,function(t,d){if(!l&&-1<s(d,["series","xAxis","yAxis"]))for(e[d]=a(e[d]),h[d]=[],c=0;c<e[d].length;c++)r[d][c]&&(h[d][c]={},i(t[c],r[d][c],h[d][c],l+1));else o(t)?(h[d]=n(t)?[]:{},i(t,r[d]||{},h[d],l+1)):h[d]=r[d]||null})}var r={};return i(e,this.options,r,0),r}}(t),t});
|