diff --git a/week06-19oct2020/.DS_Store b/week06-19oct2020/.DS_Store new file mode 100644 index 0000000..c6cfc13 Binary files /dev/null and b/week06-19oct2020/.DS_Store differ diff --git a/week06-19oct2020/Tutorial/Linear-regression-3.html b/week06-19oct2020/Tutorial/Linear-regression-3.html new file mode 100644 index 0000000..f49f6fd --- /dev/null +++ b/week06-19oct2020/Tutorial/Linear-regression-3.html @@ -0,0 +1,511 @@ + + + + Linear models + + + + + + + + + + + + + + + + + + + diff --git a/week06-19oct2020/Tutorial/Model complexity vs fit.png b/week06-19oct2020/Tutorial/Model complexity vs fit.png new file mode 100644 index 0000000..aba440e Binary files /dev/null and b/week06-19oct2020/Tutorial/Model complexity vs fit.png differ diff --git a/week06-19oct2020/Tutorial/flplinear.PNG b/week06-19oct2020/Tutorial/flplinear.PNG new file mode 100644 index 0000000..fe19af4 Binary files /dev/null and b/week06-19oct2020/Tutorial/flplinear.PNG differ diff --git a/week06-19oct2020/Tutorial/flplinear.gif b/week06-19oct2020/Tutorial/flplinear.gif new file mode 100644 index 0000000..fe19af4 Binary files /dev/null and b/week06-19oct2020/Tutorial/flplinear.gif differ diff --git a/week06-19oct2020/Tutorial/income-savings.csv b/week06-19oct2020/Tutorial/income-savings.csv new file mode 100644 index 0000000..a01602f --- /dev/null +++ b/week06-19oct2020/Tutorial/income-savings.csv @@ -0,0 +1,23 @@ +YEAR,SAVINGS,INCOME +1974,12298,64968 +1975,14196,69233 +1976,17320,73824 +1977,19995,85267 +1978,23601,91507 +1979,24213,99632 +1980,26881,123067 +1981,30896,142181 +1982,33787,157291 +1983,38091,185749 +1984,45453,207491 +1985,53389,229527 +1986,58036,256413 +1987,72264,291585 +1988,87166,345011 +1989,106092,395239 +1990,130010,465097 +1991,141089,531515 +1992,159682,618587 +1993,189933,716964 +1994,247462,842261 +1995,291002,959733 \ No newline at end of file diff --git a/week06-19oct2020/Tutorial/libs/header-attrs-2.3/header-attrs.js b/week06-19oct2020/Tutorial/libs/header-attrs-2.3/header-attrs.js new file mode 100644 index 0000000..dd57d92 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/header-attrs-2.3/header-attrs.js @@ -0,0 +1,12 @@ +// Pandoc 2.9 adds attributes on both header and div. We remove the former (to +// be compatible with the behavior of Pandoc < 2.8). +document.addEventListener('DOMContentLoaded', function(e) { + var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); + var i, h, a; + for (i = 0; i < hs.length; i++) { + h = hs[i]; + if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 + a = h.attributes; + while (a.length > 0) h.removeAttribute(a[0].name); + } +}); diff --git a/week06-19oct2020/Tutorial/libs/highchart-binding-0.5.0.9999/highchart.js b/week06-19oct2020/Tutorial/libs/highchart-binding-0.5.0.9999/highchart.js new file mode 100755 index 0000000..5229c64 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highchart-binding-0.5.0.9999/highchart.js @@ -0,0 +1,136 @@ +HTMLWidgets.widget({ + + name: 'highchart', + + type: 'output', + + initialize: function(el, width, height) { + + return { + // TODO: add instance fields as required + }; + + }, + + renderValue: function(el, x, instance) { + + if(x.debug) { + window.xclone = JSON.parse(JSON.stringify(x)); + window.elclone = $(el); + console.log(el); + console.log("hc_opts", x.hc_opts); + console.log("theme", x.theme); + console.log("conf_opts", x.conf_opts); + } + + if(x.fonts !== undefined) { + + x.fonts = ((typeof(x.fonts) == "string") ? [x.fonts] : x.fonts); + + x.fonts.forEach(function(s){ + /* http://stackoverflow.com/questions/4724606 */ + var urlfont = 'https://fonts.googleapis.com/css?family=' + s; + if (!$("link[href='" + urlfont + "']").length) { + $('').appendTo("head"); + } + + }); + + } + + ResetHighchartsOptions(); + + if(x.theme !== null) { + + if(x.debug) console.log("adding THEME"); + + Highcharts.setOptions(x.theme); + + } + + if((x.theme && x.theme.chart.divBackgroundImage !== undefined) | + (x.hc_opts.chart && x.hc_opts.chart.divBackgroundImage !== undefined)) { + + if(x.debug) console.log("adding BackgroundImage"); + + var bkgrnd = x.theme.chart.divBackgroundImage || x.hc_opts.chart.divBackgroundImage; + + Highcharts.wrap(Highcharts.Chart.prototype, "getContainer", function (proceed) { + + proceed.call(this); + + $("#" + el.id).css("background-image", "url(" + bkgrnd + ")"); + $("#" + el.id).css("-webkit-background-size", "cover"); + $("#" + el.id).css("-moz-background-size", "cover"); + $("#" + el.id).css("-o-background-size", "cover"); + $("#" + el.id).css("background-size", "cover"); + + }); + + } + + Highcharts.setOptions(x.conf_opts); + + if(x.type == "chart") { + if(x.debug) console.log("charting CHART"); + $("#" + el.id).highcharts(x.hc_opts); + } else if (x.type == "stock") { + if(x.debug) console.log("charting STOCK"); + $("#" + el.id).highcharts('StockChart', x.hc_opts); + } else if (x.type == "map"){ + if(x.debug) console.log("charting MAP"); + + x.hc_opts.series = x.hc_opts.series.map(function(e){ + if(e.geojson === true) { + if(x.debug) console.log("geojson\n\t", e.type, "\n\t", typeof(e.series)); + e.data = Highcharts.geojson(e.data, e.type); + } + return e; + }); + + $("#" + el.id).highcharts('Map', x.hc_opts); + + if(x.hc_opts.mapNavigation !== undefined && x.hc_opts.mapNavigation.enabled === true){ + /* if have navigation option and enabled true: http://stackoverflow.com/questions/7600454 */ + $("#" + el.id).bind( 'mousewheel DOMMouseScroll', function ( e ) { + var e0 = e.originalEvent, + delta = e0.wheelDelta || -e0.detail; + this.scrollTop += ( delta < 0 ? 1 : -1 ) * 30; + e.preventDefault(); + + }); + + } + + } + + if(x.hc_opts.motion !== undefined) { + + $("#" + el.id).css({"position" : "relative" }); + + if(x.debug) console.log("setting MOTION options"); + + var pc = $($("#" + el.id).find("#play-controls")[0]); + + var ct = x.theme.chart; + + if(ct.backgroundColor !== undefined) $(pc.find("#play-pause-button")[0]).css({backgroundColor : x.theme.chart.backgroundColor}); + if(ct.style !== undefined) $(pc.find("#play-output")[0]).css(x.theme.chart.style); + if(ct.style !== undefined && ct.style.color !== undefined) $(pc.find("#play-pause-button")[0]).css({color : x.theme.chart.style.color}); + + + } + + }, + + resize: function(el, width, height, instance) { + + /* http://stackoverflow.com/questions/18445784/ */ + var chart = $("#" +el.id).highcharts(); + var w = chart.renderTo.clientWidth; + var h = chart.renderTo.clientHeight; + chart.setSize(w, h); + + } + +}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/css/motion.css b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/css/motion.css new file mode 100755 index 0000000..385e4be --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/css/motion.css @@ -0,0 +1,48 @@ +/* $("div:has(#play-controls)").css({"position" : "relative"}) +div:has(#play-controls) { + position : relative; +} + */ + +.loading { + margin-top: 10em; + text-align: center; + color: gray; +} + +#play-controls { + position: absolute; + bottom: 0; + text-align: center; + min-width: 310px; + max-width: 800px; + margin: 0 auto; + padding: 5px 0 1em 0; +} + +#play-controls * { + display: inline-block; + vertical-align: middle; +} + +#play-pause-button { + color: #666666; + width: 30px; + height: 30px; + text-align: center; + font-size: 15px; + cursor: pointer; + border: 1px solid silver; + border-radius: 3px; + background: #f8f8f8; +} + +#play-range { + margin: 2.5%; + width: 70%; +} + +#play-output { + color: #666666; + font-family: Arial, Helvetica, sans-serif; +} diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/reset.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/reset.js new file mode 100755 index 0000000..074e274 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/reset.js @@ -0,0 +1,12 @@ +var HCDefaults = $.extend(true, {}, Highcharts.getOptions(), {}); + +function ResetHighchartsOptions() { + // Fortunately, Highcharts returns the reference to defaultOptions itself + // We can manipulate this and delete all the properties + var defaultOptions = Highcharts.getOptions(); + for (var prop in defaultOptions) { + if (typeof defaultOptions[prop] !== 'function') delete defaultOptions[prop]; + } + // Fall back to the defaults that we captured initially, this resets the theme + Highcharts.setOptions(HCDefaults); +} diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/symbols-extra.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/symbols-extra.js new file mode 100755 index 0000000..92bb788 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/symbols-extra.js @@ -0,0 +1,46 @@ +(function (H) { + + // cross http://stackoverflow.com/a/25379352/829971 + Highcharts.Renderer.prototype.symbols.cross = function (x, y, radius) { + var r = radius * 0.4, + e = r * 0.8, + a = e / Math.sqrt(2), + p = r / Math.sqrt(2); + return [ + 'M', x, y + a, + 'L', x + p, y + a + p, + x, y + a + (2 * p), + x + a, y + (2 * a) + (2 * p), + x + a + p, y + (2 * a) + p, + x + a + (2 * p), y + (2 * a) + (2 * p), + x + (2 * a) + (2 * p), y + a + (2 * p), + x + (2 * a) + p, y + a + p, + x + (2 * a) + (2 * p), y + a, + x + a + (2 * p), y, + x + a + p, y + p, + x + a, y, + 'Z']; + }; + + // plus http://stackoverflow.com/a/36270224/829971 + Highcharts.SVGRenderer.prototype.symbols.plus = function (x, y, w, h) { + return [ + 'M', x, y + (5 * h) / 8, + 'L', x, y + (3 * h) / 8, + 'L', x + (3 * w) / 8, y + (3 * h) / 8, + 'L', x + (3 * w) / 8, y, + 'L', x + (5 * w) / 8, y, + 'L', x + (5 * w) / 8, y + (3 * h) / 8, + 'L', x + w, y + (3 * h) / 8, + 'L', x + w, y + (5 * h) / 8, + 'L', x + (5 * w) / 8, y + (5 * h) / 8, + 'L', x + (5 * w) / 8, y + h, + 'L', x + (3 * w) / 8, y + h, + 'L', x + (3 * w) / 8, y + (5 * h) / 8, + 'L', x, y + (5 * h) / 8, + 'z' + ]; + }; + + +}(Highcharts)); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/text-symbols.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/text-symbols.js new file mode 100755 index 0000000..5e82ac9 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/custom/text-symbols.js @@ -0,0 +1,40 @@ +/* Highcharts plugin to handle text symbols */ +(function (H) { + function symbolWrap(proceed, symbol, x, y, w, h, options) { + if (symbol.indexOf('text:') === 0) { + var text = unescape(JSON.parse('"\\u' + symbol.split(':')[1] + '"')), + svgElem = this.text(text, x, y) + .attr({ + translateY: h, + translateX: -1 + }) + .css({ + fontFamily: 'FontAwesome', + fontSize: h * 2 + }); + + if (svgElem.renderer.isVML) { + svgElem.fillSetter = function (value, key, element) { + element.style.color = H.Color(value).get('rgb'); + }; + } + return svgElem; + } + return proceed.apply(this, [].slice.call(arguments, 1)); + } + H.wrap(H.SVGRenderer.prototype, 'symbol', symbolWrap); + if (H.VMLRenderer) { + H.wrap(H.VMLRenderer.prototype, 'symbol', symbolWrap); + } + + // Load the font for SVG files also + /* + H.wrap(H.Chart.prototype, 'getSVG', function (proceed) { + var svg = proceed.call(this); + svg = '' + + svg; + return svg; + }); + */ +}(Highcharts)); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/highcharts-3d.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/highcharts-3d.js new file mode 100755 index 0000000..0194788 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/highcharts-3d.js @@ -0,0 +1,75 @@ +/* + Highcharts JS v5.0.14 (2017-07-28) + + 3D features for Highcharts JS + + @license: www.highcharts.com/license +*/ +(function(y){"object"===typeof module&&module.exports?module.exports=y:y(Highcharts)})(function(y){(function(b){var v=b.deg2rad,t=b.pick;b.perspective=function(u,w,x){var k=w.options.chart.options3d,n=x?w.inverted:!1,f=w.plotWidth/2,p=w.plotHeight/2,l=k.depth/2,d=t(k.depth,1)*t(k.viewDistance,0),a=w.scale3d||1,c=v*k.beta*(n?-1:1),k=v*k.alpha*(n?-1:1),e=Math.cos(k),g=Math.cos(-c),h=Math.sin(k),A=Math.sin(-c);x||(f+=w.plotLeft,p+=w.plotTop);return b.map(u,function(c){var b,r;r=(n?c.y:c.x)-f;var m=(n? +c.x:c.y)-p,G=(c.z||0)-l;b=g*r-A*G;c=-h*A*r+e*m-g*h*G;r=e*A*r+h*m+e*g*G;m=0d&&b-d>Math.PI/2+.0001?(B=B.concat(v(a,e,c,g,d,d+Math.PI/2,h,l)),B=B.concat(v(a,e,c,g,d+Math.PI/2,b,h,l))):bMath.PI/2+.0001?(B=B.concat(v(a,e,c,g,d,d-Math.PI/2,h,l)),B=B.concat(v(a,e,c,g,d-Math.PI/2,b,h,l))):["C",a+c*Math.cos(d)-c*r*m*Math.sin(d)+h,e+g*Math.sin(d)+g*r*m*Math.cos(d)+l,a+c*Math.cos(b)+c*r*m*Math.sin(b)+h,e+g*Math.sin(b)- +g*r*m*Math.cos(b)+l,a+c*Math.cos(b)+h,e+g*Math.sin(b)+l]}var t=Math.cos,u=Math.PI,w=Math.sin,x=b.animObject,k=b.charts,n=b.color,f=b.defined,p=b.deg2rad,l=b.each,d=b.extend,a=b.inArray,c=b.map,e=b.merge,g=b.perspective,h=b.pick,A=b.SVGElement,q=b.SVGRenderer,z=b.wrap,r=4*(Math.sqrt(2)-1)/3/(u/2);q.prototype.toLinePath=function(a,e){var c=[];l(a,function(a){c.push("L",a.x,a.y)});a.length&&(c[0]="M",e&&c.push("Z"));return c};q.prototype.toLineSegments=function(a){var e=[],c=!0;l(a,function(a){e.push(c? +"M":"L",a.x,a.y);c=!c});return e};q.prototype.face3d=function(a){var e=this,c=this.createElement("path");c.vertexes=[];c.insidePlotArea=!1;c.enabled=!0;z(c,"attr",function(a,c){if("object"===typeof c&&(f(c.enabled)||f(c.vertexes)||f(c.insidePlotArea))){this.enabled=h(c.enabled,this.enabled);this.vertexes=h(c.vertexes,this.vertexes);this.insidePlotArea=h(c.insidePlotArea,this.insidePlotArea);delete c.enabled;delete c.vertexes;delete c.insidePlotArea;var d=g(this.vertexes,k[e.chartIndex],this.insidePlotArea), +B=e.toLinePath(d,!0),d=b.shapeArea(d),d=this.enabled&&0d.faces.length;)e.faces.pop().destroy(); +for(;e.faces.lengthd.faces.length;)e.faces.pop().destroy();for(;e.faces.lengthb.shapeArea(a)?g=[a,0]:0>b.shapeArea(d)&&(g=[d,1]);return g};q=z([3,2,1,0],[7,6,5,4]);a=q[0];p=q[1];q=z([1,6,7,0],[4,5,2,3]);l=q[0];r=q[1];q=z([1,2,5,6],[0,7,4,3]);z=q[0];q=q[1];1===q?f+=1E4*(1E3-d):q|| +(f+=1E4*d);f+=10*(!r||0<=n&&180>=n||360>n&&357.5Math.PI&&(a=2*Math.PI-a);return a}var e=a.x,d=a.y,b=a.start,g=a.end-.00001,h=a.r,l=a.innerR,m=a.depth,p=a.alpha,q=a.beta,r=Math.cos(b),A=Math.sin(b);a=Math.cos(g);var z=Math.sin(g),f=h*Math.cos(q),h=h*Math.cos(p),k=l*Math.cos(q),n=l*Math.cos(p),l=m*Math.sin(q),x=m*Math.sin(p),m=["M",e+f*r,d+h*A],m=m.concat(v(e,d,f,h,b,g,0,0)),m=m.concat(["L",e+k*a,d+n*z]),m=m.concat(v(e,d,k,n,g,b,0,0)),m=m.concat(["Z"]),y=0-y?b:g>-y?-y:b,C=gD&&bu-q&&bp&&(k=Math.min(k,1-Math.abs((d+g)/(p+g))%1));af&&(k=0>f?Math.min(k,(c+h)/(-f+c+h)):Math.min(k,1-(c+h)/(f+h)%1));ee*b[d][c]? +d=g:e*b[g][c]===e*b[d][c]&&b[g].zl&&(b[a[1]]+=b[a[0]]+f,b[a[0]]=-f,l=0);l+b[a[1]]>d[a[0]+"Axis"].len&&0!==b[a[1]]&&(b[a[1]]=d[a[0]+"Axis"].len-b[a[0]]);if(0!==b[a[1]]&&(b[a[0]]>=d[a[0]+"Axis"].len||b[a[0]]+b[a[1]]<=f))for(var c in b)b[c]=0});c.shapeType="cuboid";b.z=g;b.depth= +e;b.insidePlotArea=!0;h=u([{x:h[0],y:h[1],z:g}],a,!0)[0];c.tooltipPos=[h.x,h.y]}});d.z=g}});p(k.column.prototype,"animate",function(b){if(this.chart.is3d()){var d=arguments[1],a=this.yAxis,c=this,e=this.yAxis.reversed;f&&(d?t(c.data,function(c){null!==c.y&&(c.height=c.shapeArgs.height,c.shapey=c.shapeArgs.y,c.shapeArgs.height=1,e||(c.shapeArgs.y=c.stackY?c.plotY+a.translate(c.stackY):c.plotY+(c.negative?-c.height:c.height)))}):(t(c.data,function(a){null!==a.y&&(a.shapeArgs.height=a.height,a.shapeArgs.y= +a.shapey,a.graphic&&a.graphic.animate(a.shapeArgs,c.options.animation))}),this.drawDataLabels(),c.animate=null))}else b.apply(this,[].slice.call(arguments,1))});p(k.column.prototype,"plotGroup",function(b,d,a,c,e,g){this.chart.is3d()&&g&&!this[d]&&(this[d]=g,g.attr(this.getPlotBox()),this[d].survive=!0);return b.apply(this,Array.prototype.slice.call(arguments,1))});p(k.column.prototype,"setVisible",function(b,d){var a=this,c;a.chart.is3d()&&t(a.data,function(b){c=(b.visible=b.options.visible=d=void 0=== +d?!b.visible:d)?"visible":"hidden";a.options.data[n(b,a.data)]=b.options;b.graphic&&b.graphic.attr({visibility:c})});b.apply(this,Array.prototype.slice.call(arguments,1))});p(k.column.prototype,"init",function(b){b.apply(this,[].slice.call(arguments,1));if(this.chart.is3d()){var d=this.options,a=d.grouping,c=d.stacking,e=w(this.yAxis.options.reversedStacks,!0),g=0;if(void 0===a||a){a=this.chart.retrieveStacks(c);g=d.stack||0;for(c=0;c=f.min&&d<=f.max:!1,p.push({x:l.plotX,y:l.plotY,z:l.plotZ});k=v(p,k,!0);for(a=0;ad.len*d.tickInterval/(d.max-d.min)&&(p=0),l=u>p&&u<180-p?"left":u>180+p&&u<360-p?"right":"center"):l="center",k.attr({align:l})),a.x+=q.x,a.y+=e):a=a.call(this,c,b,k,f,q,y,h,t);return a});a(b,"getMarkPath",function(a,c,b,k,f,q,y){var d=this.axis;d.isRadial?(a=d.getPosition(this.pos,d.center[2]/ +2+k),c=["M",c,b,"L",a.x,a.y]):c=a.call(this,c,b,k,f,q,y);return c})})(x);(function(b){var r=b.each,v=b.pick,w=b.defined,n=b.seriesType,h=b.seriesTypes,g=b.Series.prototype,m=b.Point.prototype;n("arearange","area",{lineWidth:1,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}}, +{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel","dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var c=this.chart,b=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=b.x-c.plotLeft;a.plotHigh=b.y-c.plotTop;a.plotLowX=a.plotX},translate:function(){var a=this,c=a.yAxis,b=!!a.modifyValue;h.area.prototype.translate.apply(a);r(a.points,function(k){var e=k.low,d=k.high,p=k.plotY;null===d|| +null===e?(k.isNull=!0,k.plotY=null):(k.plotLow=p,k.plotHigh=c.translate(b?a.modifyValue(d,k):d,0,1,0,1),b&&(k.yBottom=k.plotHigh))});this.chart.polar&&r(this.points,function(c){a.highToXY(c);c.tooltipPos=[(c.plotHighX+c.plotLowX)/2,(c.plotHigh+c.plotLow)/2]})},getGraphPath:function(a){var c=[],b=[],f,e=h.area.prototype.getGraphPath,d,p,u;u=this.options;var l=this.chart.polar&&!1!==u.connectEnds,q=u.connectNulls,y=u.step;a=a||this.points;for(f=a.length;f--;)d=a[f],d.isNull||l||q||a[f+1]&&!a[f+1].isNull|| +b.push({plotX:d.plotX,plotY:d.plotY,doCurve:!1}),p={polarPlotY:d.polarPlotY,rectPlotX:d.rectPlotX,yBottom:d.yBottom,plotX:v(d.plotHighX,d.plotX),plotY:d.plotHigh,isNull:d.isNull},b.push(p),c.push(p),d.isNull||l||q||a[f-1]&&!a[f-1].isNull||b.push({plotX:d.plotX,plotY:d.plotY,doCurve:!1});a=e.call(this,a);y&&(!0===y&&(y="left"),u.step={left:"right",center:"center",right:"left"}[y]);c=e.call(this,c);b=e.call(this,b);u.step=y;u=[].concat(a,c);this.chart.polar||"M"!==b[0]||(b[0]="L");this.graphPath=u; +this.areaPath=this.areaPath.concat(a,b);u.isArea=!0;u.xMap=a.xMap;this.areaPath.xMap=a.xMap;return u},drawDataLabels:function(){var a=this.data,c=a.length,b,f=[],e=this.options.dataLabels,d=e.align,p=e.verticalAlign,u=e.inside,l,q,y=this.chart.inverted;if(e.enabled||this._hasPointLabels){for(b=c;b--;)if(l=a[b])q=u?l.plotHighl.plotLow,l.y=l.high,l._plotY=l.plotY,l.plotY=l.plotHigh,f[b]=l.dataLabel,l.dataLabel=l.dataLabelUpper,l.below=q,y?d||(e.align=q?"right":"left"):p||(e.verticalAlign= +q?"top":"bottom"),e.x=e.xHigh,e.y=e.yHigh;g.drawDataLabels&&g.drawDataLabels.apply(this,arguments);for(b=c;b--;)if(l=a[b])q=u?l.plotHighl.plotLow,l.dataLabelUpper=l.dataLabel,l.dataLabel=f[b],l.y=l.low,l.plotY=l._plotY,l.below=!q,y?d||(e.align=q?"left":"right"):p||(e.verticalAlign=q?"bottom":"top"),e.x=e.xLow,e.y=e.yLow;g.drawDataLabels&&g.drawDataLabels.apply(this,arguments)}e.align=d;e.verticalAlign=p},alignDataLabel:function(){h.column.prototype.alignDataLabel.apply(this, +arguments)},drawPoints:function(){var a=this.points.length,c,b;g.drawPoints.apply(this,arguments);for(b=0;bt&&(t*=-1,m-=t);p?(e=k.barX+f,k.shapeType="path",k.shapeArgs={d:a.polarArc(m+t,m,e,e+k.pointWidth)}):(q.height=t,q.y=m,k.tooltipPos=d.inverted?[c.len+c.pos-d.plotLeft-m-t/2,b.len+b.pos-d.plotTop-q.x-q.width/2,t]: +[b.left-d.plotLeft+q.x+q.width/2,c.pos-d.plotTop+m+t/2,t])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:n,getSymbol:n,crispCol:m.crispCol,drawPoints:m.drawPoints,drawTracker:m.drawTracker,getColumnMetrics:m.getColumnMetrics,animate:function(){return m.animate.apply(this,arguments)},polarArc:function(){return m.polarArc.apply(this,arguments)},pointAttribs:m.pointAttribs},{setState:m.pointClass.prototype.setState})})(x);(function(b){var r=b.each,v=b.isNumber,w=b.merge,n=b.pick, +h=b.pInt,g=b.Series,m=b.seriesType,a=b.TrackerMixin;m("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,b=this.options,f=a.center;this.generatePoints();r(this.points,function(c){var d= +w(b.dial,c.dial),e=h(n(d.radius,80))*f[2]/200,k=h(n(d.baseLength,70))*e/100,l=h(n(d.rearLength,10))*e/100,q=d.baseWidth||3,g=d.topWidth||1,m=b.overshoot,t=a.startAngleRad+a.translate(c.y,null,null,null,!0);v(m)?(m=m/180*Math.PI,t=Math.max(a.startAngleRad-m,Math.min(a.endAngleRad+m,t))):!1===b.wrap&&(t=Math.max(a.startAngleRad,Math.min(a.endAngleRad,t)));t=180*t/Math.PI;c.shapeType="path";c.shapeArgs={d:d.path||["M",-l,-q/2,"L",k,-q/2,e,-g/2,e,g/2,k,q/2,-l,q/2,"z"],translateX:f[0],translateY:f[1], +rotation:t};c.plotX=f[0];c.plotY=f[1]})},drawPoints:function(){var a=this,b=a.yAxis.center,f=a.pivot,e=a.options,d=e.pivot,p=a.chart.renderer;r(a.points,function(c){var b=c.graphic,d=c.shapeArgs,k=d.d,f=w(e.dial,c.dial);b?(b.animate(d),d.d=k):(c.graphic=p[c.shapeType](d).attr({rotation:d.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),c.graphic.attr({stroke:f.borderColor||"none","stroke-width":f.borderWidth||0,fill:f.backgroundColor||"#000000"}))});f?f.animate({translateX:b[0],translateY:b[1]}): +(a.pivot=p.circle(0,0,n(d.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(b[0],b[1]).add(a.group),a.pivot.attr({"stroke-width":d.borderWidth||0,stroke:d.borderColor||"#cccccc",fill:d.backgroundColor||"#000000"}))},animate:function(a){var c=this;a||(r(c.points,function(a){var b=a.graphic;b&&(b.attr({rotation:180*c.yAxis.startAngleRad/Math.PI}),b.animate({rotation:a.shapeArgs.rotation},c.options.animation))}),c.animate=null)},render:function(){this.group=this.plotGroup("group","series", +this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);g.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,b){g.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();n(b,!0)&&this.chart.redraw()},drawTracker:a&&a.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,v=b.noop,w=b.pick,n=b.seriesType,h=b.seriesTypes;n("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'}, +whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median","q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var h=this.options,a=b&&b.color||this.color;return{fill:b.fillColor||h.fillColor||a,stroke:h.lineColor||a,"stroke-width":h.lineWidth||0}},drawDataLabels:v,translate:function(){var b=this.yAxis,m=this.pointArrayMap;h.column.prototype.translate.apply(this); +r(this.points,function(a){r(m,function(c){null!==a[c]&&(a[c+"Plot"]=b.translate(a[c],0,1,0,1))})})},drawPoints:function(){var b=this,h=b.options,a=b.chart.renderer,c,k,f,e,d,p,u=0,l,q,y,n,t=!1!==b.doQuartiles,v,A=b.options.whiskerLength;r(b.points,function(g){var m=g.graphic,r=m?"animate":"attr",J=g.shapeArgs,x={},C={},H={},I=g.color||b.color;void 0!==g.plotY&&(l=J.width,q=Math.floor(J.x),y=q+l,n=Math.round(l/2),c=Math.floor(t?g.q1Plot:g.lowPlot),k=Math.floor(t?g.q3Plot:g.lowPlot),f=Math.floor(g.highPlot), +e=Math.floor(g.lowPlot),m||(g.graphic=m=a.g("point").add(b.group),g.stem=a.path().addClass("highcharts-boxplot-stem").add(m),A&&(g.whiskers=a.path().addClass("highcharts-boxplot-whisker").add(m)),t&&(g.box=a.path(void 0).addClass("highcharts-boxplot-box").add(m)),g.medianShape=a.path(void 0).addClass("highcharts-boxplot-median").add(m)),x.stroke=g.stemColor||h.stemColor||I,x["stroke-width"]=w(g.stemWidth,h.stemWidth,h.lineWidth),x.dashstyle=g.stemDashStyle||h.stemDashStyle,g.stem.attr(x),A&&(C.stroke= +g.whiskerColor||h.whiskerColor||I,C["stroke-width"]=w(g.whiskerWidth,h.whiskerWidth,h.lineWidth),g.whiskers.attr(C)),t&&(m=b.pointAttribs(g),g.box.attr(m)),H.stroke=g.medianColor||h.medianColor||I,H["stroke-width"]=w(g.medianWidth,h.medianWidth,h.lineWidth),g.medianShape.attr(H),p=g.stem.strokeWidth()%2/2,u=q+n+p,g.stem[r]({d:["M",u,k,"L",u,f,"M",u,c,"L",u,e]}),t&&(p=g.box.strokeWidth()%2/2,c=Math.floor(c)+p,k=Math.floor(k)+p,q+=p,y+=p,g.box[r]({d:["M",q,k,"L",q,c,"L",y,c,"L",y,k,"L",q,k,"z"]})), +A&&(p=g.whiskers.strokeWidth()%2/2,f+=p,e+=p,v=/%$/.test(A)?n*parseFloat(A)/100:A/2,g.whiskers[r]({d:["M",u-v,f,"L",u+v,f,"M",u-v,e,"L",u+v,e]})),d=Math.round(g.medianPlot),p=g.medianShape.strokeWidth()%2/2,d+=p,g.medianShape[r]({d:["M",q,d,"L",y,d]}))})},setStackedPoints:v})})(x);(function(b){var r=b.each,v=b.noop,w=b.seriesType,n=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'}, +whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:n.arearange?function(){var b=this.pointValKey;n.arearange.prototype.drawDataLabels.call(this);r(this.data,function(g){g.y=g[b]})}:v,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||n.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,v=b.isNumber,w=b.pick,n=b.Point,h=b.Series, +g=b.seriesType,m=b.seriesTypes;g("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var a=this.options,c=this.yAxis,b,f,e,d,p,g,l,q,h,n,t=w(a.minPointLength,5),v=t/2,x=a.threshold,D=a.stacking,z;m.column.prototype.translate.apply(this);q=h=x;f=this.points;b=0;for(a=f.length;bd.height&&(d.y+=d.height,d.height*=-1),e.plotY=d.y=Math.round(d.y)-this.borderWidth%2/2,d.height=Math.max(Math.round(d.height),.001),e.yBottom=d.y+d.height,d.height<=t&&!e.isNull?(d.height=t,d.y-=v,e.plotY=d.y,e.minPointLengthOffset=0>e.y?-v:v):e.minPointLengthOffset=0,d=e.plotY+(e.negative?d.height:0),this.chart.inverted?e.tooltipPos[0]=c.len-d:e.tooltipPos[1]=d},processData:function(a){var b=this.yData,k=this.options.data,f,e=b.length,d,p,g,l,q,n;p=d=g=l=this.options.threshold|| +0;for(n=0;na[g-1].y&&!f||0=this.minPxSize/2?(e.marker=b.extend(e.marker,{radius:f,width:2*f,height:2*f}),e.dlBox={x:e.plotX-f,y:e.plotY-f,width:2*f,height:2*f}):e.shapeArgs=e.plotY=e.dlBox=void 0}, +alignDataLabel:d.column.prototype.alignDataLabel,buildKDTree:m,applyZones:m},{haloPath:function(a){return k.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});w.prototype.beforePadding=function(){var b=this,d=this.len,e=this.chart,f=0,k=d,n=this.isXAxis,m=n?"xData":"yData",w=this.min,x={},D=Math.min(e.plotWidth,e.plotHeight),z=Number.MAX_VALUE,E=-Number.MAX_VALUE,F=this.max-w,B=d/F,G=[];h(this.series,function(d){var f=d.options;!d.bubblePadding||!d.visible&& +e.options.chart.ignoreHiddenSeries||(b.allowZoomOutside=!0,G.push(d),n&&(h(["minSize","maxSize"],function(a){var b=f[a],d=/%$/.test(b),b=c(b);x[a]=d?D*b/100:b}),d.minPxSize=x.minSize,d.maxPxSize=Math.max(x.maxSize,x.minSize),d=d.zData,d.length&&(z=a(f.zMin,Math.min(z,Math.max(v(d),!1===f.displayNegative?f.zThreshold:-Number.MAX_VALUE))),E=a(f.zMax,Math.max(E,r(d))))))});h(G,function(a){var c=a[m],d=c.length,e;n&&a.getRadii(z,E,a.minPxSize,a.maxPxSize);if(0b?a.length-1+b:0;b=0>c-1?a.length-(1+d):c-1;d=c+1>a.length-1?d:c+1;g=a[b];d=a[d];h=g.plotX;g=g.plotY;l=d.plotX;n=d.plotY;d=a[c].plotX;c=a[c].plotY;h=(1.5*d+h)/2.5;g=(1.5*c+g)/2.5;l=(1.5*d+l)/2.5;m=(1.5*c+n)/2.5;n=Math.sqrt(Math.pow(h-d,2)+Math.pow(g-c,2));r=Math.sqrt(Math.pow(l-d,2)+Math.pow(m-c,2));h=Math.atan2(g-c,h-d);m=Math.PI/2+(h+Math.atan2(m-c,l-d))/2;Math.abs(h-m)>Math.PI/2&&(m-=Math.PI);h=d+Math.cos(m)*n;g=c+Math.sin(m)*n;l=d+Math.cos(Math.PI+m)*r;m=c+Math.sin(Math.PI+m)*r;d={rightContX:l, +rightContY:m,leftContX:h,leftContY:g,plotX:d,plotY:c};k&&(d.prevPointCont=this.getConnectors(a,b,!1,f));return d};h(g,"buildKDTree",function(a){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy");a.apply(this)});g.toXY=function(a){var b,g=this.chart,f=a.plotX;b=a.plotY;a.rectPlotX=f;a.rectPlotY=b;b=this.xAxis.postTranslate(a.plotX,this.yAxis.len-b);a.plotX=a.polarPlotX=b.x-g.plotLeft;a.plotY=a.polarPlotY=b.y-g.plotTop;this.kdByAngle?(g= +(f/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>g&&(g+=360),a.clientX=g):a.clientX=a.plotX};n.spline&&(h(n.spline.prototype,"getPointSpline",function(a,b,g,f){this.chart.polar?f?(a=this.getConnectors(b,f,!0,this.connectEnds),a=["C",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=["M",g.plotX,g.plotY]:a=a.call(this,b,g,f);return a}),n.areasplinerange&&(n.areasplinerange.prototype.getPointSpline=n.spline.prototype.getPointSpline));h(g,"translate", +function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});h(g,"getGraphPath",function(a,b){var c=this,f,e,d;if(this.chart.polar){b=b||this.points;for(f=0;fb.center[1]}),h(n,"alignDataLabel",function(a,b,k,f,e,d){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===f.align&&(f.align=20a?"left":200a?"right":"center"),null===f.verticalAlign&&(f.verticalAlign=45>a||315a?"top":"middle"),g.alignDataLabel.call(this,b,k,f,e,d)):a.call(this,b,k,f,e,d)}));h(m,"getCoordinates",function(a,b){var c=this.chart,f={xAxis:[],yAxis:[]};c.polar?v(c.axes,function(a){var d= +a.isXAxis,e=a.center,g=b.chartX-e[0]-c.plotLeft,e=b.chartY-e[1]-c.plotTop;f[d?"xAxis":"yAxis"].push({axis:a,value:a.translate(d?Math.PI-Math.atan2(g,e):Math.sqrt(Math.pow(g,2)+Math.pow(e,2)),!0)})}):f=a.call(this,b);return f});h(b.Chart.prototype,"getAxes",function(a){this.pane||(this.pane=[]);v(b.splat(this.options.pane),function(a){new b.Pane(a,this)},this);a.call(this)});h(b.Chart.prototype,"drawChartBox",function(a){a.call(this);v(this.pane,function(a){a.render()})});h(b.Chart.prototype,"get", +function(a,c){return b.find(this.pane,function(a){return a.options.id===c})||a.call(this,c)})})(x)}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/highcharts.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/highcharts.js new file mode 100755 index 0000000..bc6d743 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/highcharts.js @@ -0,0 +1,402 @@ +/* + Highcharts JS v5.0.14 (2017-07-28) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(M,S){"object"===typeof module&&module.exports?module.exports=M.document?S(M):S:M.Highcharts=S(M)})("undefined"!==typeof window?window:this,function(M){M=function(){var a=window,C=a.document,A=a.navigator&&a.navigator.userAgent||"",F=C&&C.createElementNS&&!!C.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,E=/(edge|msie|trident)/i.test(A)&&!window.opera,m=!F,f=/Firefox/.test(A),l=f&&4>parseInt(A.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highcharts", +version:"5.0.14",deg2rad:2*Math.PI/360,doc:C,hasBidiBug:l,hasTouch:C&&void 0!==C.documentElement.ontouchstart,isMS:E,isWebKit:/AppleWebKit/.test(A),isFirefox:f,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(A),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:F,vml:m,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){var C=[],A=a.charts,F=a.doc,E=a.win;a.error=function(m,f){m=a.isNumber(m)?"Highcharts error #"+ +m+": www.highcharts.com/errors/"+m:m;if(f)throw Error(m);E.console&&console.log(m)};a.Fx=function(a,f,l){this.options=f;this.elem=a;this.prop=l};a.Fx.prototype={dSetter:function(){var a=this.paths[0],f=this.paths[1],l=[],r=this.now,u=a.length,t;if(1===r)l=this.toD;else if(u===f.length&&1>r)for(;u--;)t=parseFloat(a[u]),l[u]=isNaN(t)?a[u]:r*parseFloat(f[u]-t)+t;else l=f;this.elem.attr("d",l,null,!0)},update:function(){var a=this.elem,f=this.prop,l=this.now,r=this.options.step;if(this[f+"Setter"])this[f+ +"Setter"]();else a.attr?a.element&&a.attr(f,l,null,!0):a.style[f]=l+this.unit;r&&r.call(a,l,this)},run:function(a,f,l){var r=this,m=function(a){return m.stopped?!1:r.step(a)},t;this.startTime=+new Date;this.start=a;this.end=f;this.unit=l;this.now=this.start;this.pos=0;m.elem=this.elem;m.prop=this.prop;m()&&1===C.push(m)&&(m.timerId=setInterval(function(){for(t=0;t=g+this.startTime?(this.now=this.end,this.pos=1,this.update(),l=d[this.prop]=!0,a.objectEach(d,function(a){!0!==a&&(l=!1)}),l&&t&&t.call(u),m=!1):(this.pos=r.easing((f-this.startTime)/g),this.now=this.start+(this.end-this.start)*this.pos,this.update(),m=!0);return m},initPath:function(m,f,l){function r(a){var c,e;for(n=a.length;n--;)c="M"===a[n]||"L"===a[n],e=/[a-zA-Z]/.test(a[n+3]),c&&e&&a.splice(n+1,0,a[n+1],a[n+2],a[n+1],a[n+2])} +function u(a,c){for(;a.lengtht?"AM":"PM",P:12>t?"am":"pm",S:n(u.getSeconds()),L:n(Math.round(f%1E3),3)},a.dateFormats);a.objectEach(r,function(a,e){for(;-1!==m.indexOf("%"+e);)m=m.replace("%"+e,"function"===typeof a?a(f):a)});return l?m.substr(0, +1).toUpperCase()+m.substr(1):m};a.formatSingle=function(m,f){var l=/\.([0-9])/,r=a.defaultOptions.lang;/f$/.test(m)?(l=(l=m.match(l))?l[1]:-1,null!==f&&(f=a.numberFormat(f,l,r.decimalPoint,-1=l&&(f=[1/l])));for(r=0;r=m||!u&&t<=(f[r]+(f[r+1]||f[r]))/2);r++);return g=a.correctFloat(g*l,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort= +function(a,f){var l=a.length,r,m;for(m=0;ml&&(l=a[f]);return l};a.destroyObjectProperties=function(m,f){a.objectEach(m,function(a,r){a&&a!==f&&a.destroy&&a.destroy();delete m[r]})};a.discardElement=function(m){var f=a.garbageBin;f||(f=a.createElement("div")); +m&&f.appendChild(m);f.innerHTML=""};a.correctFloat=function(a,f){return parseFloat(a.toPrecision(f||14))};a.setAnimation=function(m,f){f.renderer.globalAnimation=a.pick(m,f.options.chart.animation,!0)};a.animObject=function(m){return a.isObject(m)?a.merge(m):{duration:m?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(m,f,l,r){m=+m||0;f=+f;var u=a.defaultOptions.lang,t=(m.toString().split(".")[1]||"").split("e")[0].length, +g,d,k=m.toString().split("e");-1===f?f=Math.min(t,20):a.isNumber(f)||(f=2);d=(Math.abs(k[1]?k[0]:m)+Math.pow(10,-Math.max(f,t)-1)).toFixed(f);t=String(a.pInt(d));g=3m?"-":"")+(g?t.substr(0,g)+r:"");m+=t.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+r);f&&(m+=l+d.slice(-f));k[1]&&(m+="e"+k[1]);return m};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(m,f,l){if("width"===f)return Math.min(m.offsetWidth, +m.scrollWidth)-a.getStyle(m,"padding-left")-a.getStyle(m,"padding-right");if("height"===f)return Math.min(m.offsetHeight,m.scrollHeight)-a.getStyle(m,"padding-top")-a.getStyle(m,"padding-bottom");if(m=E.getComputedStyle(m,void 0))m=m.getPropertyValue(f),a.pick(l,!0)&&(m=a.pInt(m));return m};a.inArray=function(a,f){return f.indexOf?f.indexOf(a):[].indexOf.call(f,a)};a.grep=function(a,f){return[].filter.call(a,f)};a.find=function(a,f){return[].find.call(a,f)};a.map=function(a,f){for(var l=[],r=0,m= +a.length;r>16,(f&65280)>> +8,f&255,1]:4===l&&(r=[(f&3840)>>4|(f&3840)>>8,(f&240)>>4|f&240,(f&15)<<4|f&15,1])),!r)for(m=this.parsers.length;m--&&!r;)t=this.parsers[m],(l=t.regex.exec(f))&&(r=t.parse(l));this.rgba=r||[]},get:function(a){var f=this.input,r=this.rgba,m;this.stops?(m=E(f),m.stops=[].concat(m.stops),C(this.stops,function(f,g){m.stops[g]=[m.stops[g][0],f.get(a)]})):m=r&&A(r[0])?"rgb"===a||!a&&1===r[3]?"rgb("+r[0]+","+r[1]+","+r[2]+")":"a"===a?r[3]:"rgba("+r.join(",")+")":f;return m},brighten:function(a){var f,r=this.rgba; +if(this.stops)C(this.stops,function(f){f.brighten(a)});else if(A(a)&&0!==a)for(f=0;3>f;f++)r[f]+=m(255*a),0>r[f]&&(r[f]=0),255x.width)x={width:0,height:0}}else x=this.htmlGetBBox();c.isSVG&&(a=x.width,c=x.height,q&&"11px"===q.fontSize&& +17===Math.round(c)&&(x.height=c=14),h&&(x.width=Math.abs(c*Math.sin(w))+Math.abs(a*Math.cos(w)),x.height=Math.abs(c*Math.cos(w))+Math.abs(a*Math.sin(w))));if(G&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a, +h,c){"string"===typeof a?c.setAttribute(h,a):a&&this.colorGradient(a,h,c)},visibilitySetter:function(a,h,c){"inherit"===a?c.removeAttribute(h):this[h]!==a&&c.setAttribute(h,a);this[h]=a},zIndexSetter:function(a,c){var x=this.renderer,w=this.parentGroup,p=(w||x).element||x.box,q,e=this.element,b;q=this.added;var d;t(a)&&(e.zIndex=a,a=+a,this[c]===a&&(q=!1),this[c]=a);if(q){(a=this.zIndex)&&w&&(w.handleZ=!0);c=p.childNodes;for(d=0;da||!t(a)&&t(q)||0> +a&&!t(q)&&p!==x.box)&&(p.insertBefore(e,w),b=!0);b||p.appendChild(e)}return b},_defaultSetter:function(a,h,c){c.setAttribute(h,a)}});C.prototype.yGetter=C.prototype.xGetter;C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.rotationSetter=C.prototype.verticalAlignSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=function(a,h){this[h]=a;this.doTransform=!0};C.prototype["stroke-widthSetter"]=C.prototype.strokeSetter=function(a,h,c){this[h]=a;this.stroke&&this["stroke-width"]? +(C.prototype.fillSetter.call(this,this.stroke,"stroke",c),c.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===h&&0===a&&this.hasStroke&&(c.removeAttribute("stroke"),this.hasStroke=!1)};A=a.SVGRenderer=function(){this.init.apply(this,arguments)};e(A.prototype,{Element:C,SVG_NS:O,init:function(a,h,w,p,q,e){var x;p=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(p));x=p.element;a.appendChild(x);-1===a.innerHTML.indexOf("xmlns")&& +m(x,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=x;this.boxWrapper=p;this.alignedObjects=[];this.url=(c||K)&&k.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(k.createTextNode("Created with Highcharts 5.0.14"));this.defs=this.createElement("defs").add();this.allowHTML=e;this.forExport=q;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount= +0;this.setSize(h,w,!1);var b;c&&a.getBoundingClientRect&&(h=function(){r(a,{left:0,top:0});b=a.getBoundingClientRect();r(a,{left:Math.ceil(b.left)-b.left+"px",top:Math.ceil(b.top)-b.top+"px"})},h(),this.unSubPixelFix=F(R,"resize",h))},getStyle:function(a){return this.style=e({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a= +this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();d(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var h=new this.Element;h.init(this,a);return h},draw:z,getRadialAttr:function(a,h){return{cx:a[0]-a[2]/2+h.cx*a[2],cy:a[1]-a[2]/2+h.cy*a[2],r:h.r*a[2]}},getSpanWidth:function(a,h){var c=a.getBBox(!0).width;!H&&this.forExport&&(c=this.measureSpanWidth(h.firstChild.data, +a.styles));return c},applyEllipsis:function(a,h,c,w){var x=a.rotation,p=c,q,e=0,b=c.length,d=function(a){h.removeChild(h.firstChild);a&&h.appendChild(k.createTextNode(a))},n;a.rotation=0;p=this.getSpanWidth(a,h);if(n=p>w){for(;e<=b;)q=Math.ceil((e+b)/2),p=c.substring(0,q)+"\u2026",d(p),p=this.getSpanWidth(a,h),e===b?e=b+1:p>w?b=q-1:e=q;0===b&&d("")}a.rotation=x;return n},buildText:function(a){var c=a.element,w=this,x=w.forExport,p=L(a.textStr,"").toString(),q=-1!==p.indexOf("\x3c"),e=c.childNodes, +d,n,g,G,v=m(c,"x"),z=a.styles,f=a.textWidth,I=z&&z.lineHeight,B=z&&z.textOutline,D=z&&"ellipsis"===z.textOverflow,l=z&&"nowrap"===z.whiteSpace,P=z&&z.fontSize,t,J,u=e.length,z=f&&!a.added&&this.box,K=function(a){var x;x=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:P||w.style.fontSize||12;return I?h(I):w.fontMetrics(x,a.getAttribute("style")?a:c).h};t=[p,D,l,I,B,P,f].join();if(t!==a.textCache){for(a.textCache=t;u--;)c.removeChild(e[u]);q||B||D||f||-1!==p.indexOf(" ")?(d=/<.*class="([^"]+)".*>/, +n=/<.*style="([^"]+)".*>/,g=/<.*href="([^"]+)".*>/,z&&z.appendChild(c),p=q?p.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[p],p=y(p,function(a){return""!==a}),b(p,function(h,p){var q,e=0;h=h.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");q=h.split("|||");b(q,function(h){if(""!== +h||1===q.length){var b={},z=k.createElementNS(w.SVG_NS,"tspan"),y,I;d.test(h)&&(y=h.match(d)[1],m(z,"class",y));n.test(h)&&(I=h.match(n)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),m(z,"style",I));g.test(h)&&!x&&(m(z,"onclick",'location.href\x3d"'+h.match(g)[1]+'"'),r(z,{cursor:"pointer"}));h=(h.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==h){z.appendChild(k.createTextNode(h));e?b.dx=0:p&&null!==v&&(b.x=v);m(z,b);c.appendChild(z);!e&&J&&(!H&&x&&r(z,{display:"block"}), +m(z,"dy",K(z)));if(f){b=h.replace(/([^\^])-/g,"$1- ").split(" ");y=1f,void 0===G&&(G=h),h&&1!==b.length?(z.removeChild(z.firstChild),B.unshift(b.pop())):(b=B,B=[],b.length&&!l&&(z=k.createElementNS(O,"tspan"),m(z,{dy:P,x:v}),I&&m(z,"style",I),c.appendChild(z)),N>f&&(f=N)),b.length&&z.appendChild(k.createTextNode(b.join(" ").replace(/- /g, +"-")));a.rotation=t}e++}}});J=J||c.childNodes.length}),G&&a.attr("title",a.textStr),z&&z.removeChild(c),B&&a.applyTextOutline&&a.applyTextOutline(B)):c.appendChild(k.createTextNode(p.replace(/</g,"\x3c").replace(/>/g,"\x3e")))}},getContrast:function(a){a=l(a).rgba;return 510Math.abs(p.end-p.start-2*Math.PI));var d=Math.cos(q),n=Math.sin(q),g=Math.cos(e),e=Math.sin(e);p=.001>p.end-q-Math.PI?0:1;b=["M",a+b*d,h+x*n,"A",b,x,0,p,1,a+b*g,h+x*e];t(c)&&b.push(w?"M":"L",a+c* +g,h+c*e,"A",c,c,0,p,0,a+c*d,h+c*n);b.push(w?"":"Z");return b},callout:function(a,h,c,w,p){var q=Math.min(p&&p.r||0,c,w),b=q+6,e=p&&p.anchorX;p=p&&p.anchorY;var d;d=["M",a+q,h,"L",a+c-q,h,"C",a+c,h,a+c,h,a+c,h+q,"L",a+c,h+w-q,"C",a+c,h+w,a+c,h+w,a+c-q,h+w,"L",a+q,h+w,"C",a,h+w,a,h+w,a,h+w-q,"L",a,h+q,"C",a,h,a,h,a+q,h];e&&e>c?p>h+b&&pe?p>h+b&&pw&&e>a+b&&ep&&e>a+b&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a,h,c){var w=a;h&&c&&(w=Math.max(w*Math.cos(h*g),4));return{x:-a/3*Math.sin(h*g),y:w}},label:function(h,c,q,d,n,g,k,z,G){var x=this,H=x.g("button"!==G&&"label"),v=H.text=x.text("",0,0,k).attr({zIndex:1}),f,y,I=0,B=3,D=0,r,l,P,m,J,O={},L,u,N=/^url\((.*?)\)$/.test(d),K=N,U,T,Q,R;G&&H.addClass("highcharts-"+G);K=N;U=function(){return(L||0)%2/2};T=function(){var a=v.element.style,h={};y=(void 0===r||void 0===l||J)&&t(v.textStr)&& +v.getBBox();H.width=(r||y.width||0)+2*B+D;H.height=(l||y.height||0)+2*B;u=B+x.fontMetrics(a&&a.fontSize,v).b;K&&(f||(H.box=f=x.symbols[d]||N?x.symbol(d):x.rect(),f.addClass(("button"===G?"":"highcharts-label-box")+(G?" highcharts-"+G+"-box":"")),f.add(H),a=U(),h.x=a,h.y=(z?-u:0)+a),h.width=Math.round(H.width),h.height=Math.round(H.height),f.attr(e(h,O)),O={})};Q=function(){var a=D+B,h;h=z?0:u;t(r)&&y&&("center"===J||"right"===J)&&(a+={center:.5,right:1}[J]*(r-y.width));if(a!==v.x||h!==v.y)v.attr("x", +a),void 0!==h&&v.attr("y",h);v.x=a;v.y=h};R=function(a,h){f?f.attr(a,h):O[a]=h};H.onAdd=function(){v.add(H);H.attr({text:h||0===h?h:"",x:c,y:q});f&&t(n)&&H.attr({anchorX:n,anchorY:g})};H.widthSetter=function(h){r=a.isNumber(h)?h:null};H.heightSetter=function(a){l=a};H["text-alignSetter"]=function(a){J=a};H.paddingSetter=function(a){t(a)&&a!==B&&(B=H.padding=a,Q())};H.paddingLeftSetter=function(a){t(a)&&a!==D&&(D=a,Q())};H.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==I&&(I=a,y&&H.attr({x:P}))}; +H.textSetter=function(a){void 0!==a&&v.textSetter(a);T();Q()};H["stroke-widthSetter"]=function(a,h){a&&(K=!0);L=this["stroke-width"]=a;R(h,a)};H.strokeSetter=H.fillSetter=H.rSetter=function(a,h){"r"!==h&&("fill"===h&&a&&(K=!0),H[h]=a);R(h,a)};H.anchorXSetter=function(a,h){n=H.anchorX=a;R(h,Math.round(a)-U()-P)};H.anchorYSetter=function(a,h){g=H.anchorY=a;R(h,a-m)};H.xSetter=function(a){H.x=a;I&&(a-=I*((r||y.width)+2*B));P=Math.round(a);H.attr("translateX",P)};H.ySetter=function(a){m=H.y=Math.round(a); +H.attr("translateY",m)};var V=H.css;return e(H,{css:function(a){if(a){var h={};a=p(a);b(H.textProps,function(c){void 0!==a[c]&&(h[c]=a[c],delete a[c])});v.css(h)}return V.call(H,a)},getBBox:function(){return{width:y.width+2*B,height:y.height+2*B,x:y.x-B,y:y.y-B}},shadow:function(a){a&&(T(),f&&f.shadow(a));return H},destroy:function(){w(H.element,"mouseenter");w(H.element,"mouseleave");v&&(v=v.destroy());f&&(f=f.destroy());C.prototype.destroy.call(H);H=x=T=Q=R=null}})}});a.Renderer=A})(M);(function(a){var C= +a.attr,A=a.createElement,F=a.css,E=a.defined,m=a.each,f=a.extend,l=a.isFirefox,r=a.isMS,u=a.isWebKit,t=a.pInt,g=a.SVGRenderer,d=a.win,k=a.wrap;f(a.SVGElement.prototype,{htmlCss:function(a){var b=this.element;if(b=a&&"SPAN"===b.tagName&&a.width)delete a.width,this.textWidth=b,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=f(this.styles,a);F(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position= +"absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,e=this.element,d=this.translateX||0,g=this.translateY||0,n=this.x||0,k=this.y||0,f=this.textAlign||"left",c={left:0,center:.5,right:1}[f],G=this.styles;F(e,{marginLeft:d,marginTop:g});this.shadows&&m(this.shadows,function(a){F(a,{marginLeft:d+1,marginTop:g+1})});this.inverted&&m(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var q= +this.rotation,B=t(this.textWidth),r=G&&G.whiteSpace,p=[q,f,e.innerHTML,this.textWidth,this.textAlign].join();p!==this.cTT&&(G=a.fontMetrics(e.style.fontSize).b,E(q)&&this.setSpanRotation(q,c,G),F(e,{width:"",whiteSpace:r||"nowrap"}),e.offsetWidth>B&&/[ \-]/.test(e.textContent||e.innerText)&&F(e,{width:B+"px",display:"block",whiteSpace:r||"normal"}),this.getSpanCorrection(e.offsetWidth,G,c,q,f));F(e,{left:n+(this.xCorr||0)+"px",top:k+(this.yCorr||0)+"px"});u&&(G=e.offsetHeight);this.cTT=p}}else this.alignOnAdd= +!0},setSpanRotation:function(a,e,g){var b={},n=r?"-ms-transform":u?"-webkit-transform":l?"MozTransform":d.opera?"-o-transform":"";b[n]=b.transform="rotate("+a+"deg)";b[n+(l?"Origin":"-origin")]=b.transformOrigin=100*e+"% "+g+"px";F(this.element,b)},getSpanCorrection:function(a,e,d){this.xCorr=-a*d;this.yCorr=-e}});f(g.prototype,{html:function(a,e,d){var b=this.createElement("span"),n=b.element,g=b.renderer,v=g.isSVG,c=function(a,c){m(["opacity","visibility"],function(q){k(a,q+"Setter",function(a, +p,q,b){a.call(this,p,q,b);c[q]=p})})};b.textSetter=function(a){a!==n.innerHTML&&delete this.bBox;n.innerHTML=this.textStr=a;b.htmlUpdateTransform()};v&&c(b,b.element.style);b.xSetter=b.ySetter=b.alignSetter=b.rotationSetter=function(a,c){"align"===c&&(c="textAlign");b[c]=a;b.htmlUpdateTransform()};b.attr({text:a,x:Math.round(e),y:Math.round(d)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});n.style.whiteSpace="nowrap";b.css=b.htmlCss;v&&(b.add=function(a){var q, +e=g.box.parentNode,d=[];if(this.parentGroup=a){if(q=a.div,!q){for(;a;)d.push(a),a=a.parentGroup;m(d.reverse(),function(a){var p,n=C(a.element,"class");n&&(n={className:n});q=a.div=a.div||A("div",n,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},q||e);p=q.style;f(a,{classSetter:function(a){this.element.setAttribute("class",a);q.className=a},on:function(){d[0].div&&b.on.apply({element:d[0].div}, +arguments);return a},translateXSetter:function(c,h){p.left=c+"px";a[h]=c;a.doTransform=!0},translateYSetter:function(c,h){p.top=c+"px";a[h]=c;a.doTransform=!0}});c(a,p)})}}else q=e;q.appendChild(n);b.added=!0;b.alignOnAdd&&b.htmlUpdateTransform();return b});return b}})})(M);(function(a){var C,A,F=a.createElement,E=a.css,m=a.defined,f=a.deg2rad,l=a.discardElement,r=a.doc,u=a.each,t=a.erase,g=a.extend;C=a.extendClass;var d=a.isArray,k=a.isNumber,b=a.isObject,e=a.merge;A=a.noop;var v=a.pick,y=a.pInt, +n=a.SVGElement,D=a.SVGRenderer,J=a.win;a.svg||(A={docMode8:r&&8===r.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],e=["position: ","absolute",";"],d="div"===b;("shape"===b||d)&&e.push("left:0;top:0;width:1px;height:1px;");e.push("visibility: ",d?"hidden":"visible");c.push(' style\x3d"',e.join(""),'"/\x3e');b&&(c=d||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=F(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,e=c.box,d=a&&a.inverted, +e=a?a.element||a:e;a&&(this.parentGroup=a);d&&c.invertChild(b,e);e.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:n.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*f),q=Math.sin(a*f);E(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-q,", M21\x3d",q,", M22\x3d", +b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,q,e,d){var c=e?Math.cos(e*f):1,n=e?Math.sin(e*f):0,g=v(this.elemHeight,this.element.offsetHeight),k;this.xCorr=0>c&&-a;this.yCorr=0>n&&-g;k=0>c*n;this.xCorr+=n*b*(k?1-q:q);this.yCorr-=c*b*(e?k?q:1-q:1);d&&"left"!==d&&(this.xCorr-=a*q*(0>c?-1:1),e&&(this.yCorr-=g*q*(0>n?-1:1)),E(this.element,{textAlign:d}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)k(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x": +(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,t(b,c),b.push(c),c.destroyClip=function(){t(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(),a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:n.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&l(a)},destroy:function(){this.destroyClip&&this.destroyClip();return n.prototype.destroy.apply(this)}, +on:function(a,b){this.element["on"+a]=function(){var a=J.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=y(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],q,p=this.element,d=this.renderer,n,g=p.style,h,w=p.path,k,H,f,D;w&&"string"!==typeof w.value&&(w="x");H=w;if(a){f=v(a.width,3);D=(a.opacity||.15)/f;for(q=1;3>=q;q++)k=2*f+1-2*q,e&&(H=this.cutOffPath(w.value,k+.5)),h=['\x3cshape isShadow\x3d"true" strokeweight\x3d"', +k,'" filled\x3d"false" path\x3d"',H,'" coordsize\x3d"10 10" style\x3d"',p.style.cssText,'" /\x3e'],n=F(d.prepVML(h),null,{left:y(g.left)+v(a.offsetX,1),top:y(g.top)+v(a.offsetY,1)}),e&&(n.cutOff=k+1),h=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"',D*q,'"/\x3e'],F(d.prepVML(h),null,null,n),b?b.element.appendChild(n):p.parentNode.insertBefore(n,p),c.push(n);this.shadows=c}return this},updateShadows:A,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)}, +classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,e){(e.getElementsByTagName("stroke")[0]||F(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,e))[b]=a||"solid";this[b]=a},dSetter:function(a,b,e){var c=this.shadows;a=a||[];this.d=a.join&&a.join(" ");e.path=a=this.pathToVML(a);if(c)for(e=c.length;e--;)c[e].path=c[e].cutOff?this.cutOffPath(a,c[e].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,e){var c=e.nodeName;"SPAN"===c?e.style.color=a:"IMG"!== +c&&(e.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,e,b,this)))},"fill-opacitySetter":function(a,b,e){F(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,e)},opacitySetter:A,rotationSetter:function(a,b,e){e=e.style;this[b]=e[b]=a;e.left=-Math.round(Math.sin(a*f)+1)+"px";e.top=Math.round(Math.cos(a*f))+"px"},strokeSetter:function(a,b,e){this.setAttr("strokecolor",this.renderer.color(a,e,b,this))},"stroke-widthSetter":function(a,b,e){e.stroked=!!a; +this[b]=a;k(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,e){"inherit"===a&&(a="visible");this.shadows&&u(this.shadows,function(c){c.style[b]=a});"DIV"===e.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(e.style[b]=a?"visible":"hidden"),b="top");e.style[b]=a},xSetter:function(a,b,e){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):e.style[b]=a},zIndexSetter:function(a, +b,e){e.style[b]=a}},A["stroke-opacitySetter"]=A["fill-opacitySetter"],a.VMLElement=A=C(n,A),A.prototype.ySetter=A.prototype.widthSetter=A.prototype.heightSetter=A.prototype.xSetter,A={Element:A,isIE8:-1l[0]&&c.push([1,l[1]]);u(c,function(h,c){n.test(h[1])?(p=a.color(h[1]), +w=p.get("rgb"),v=p.get("a")):(w=h[1],v=1);G.push(100*h[0]+"% "+w);c?(y=v,x=w):(D=v,r=w)});if("fill"===e)if("gradient"===k)e=H.x1||H[0]||0,c=H.y1||H[1]||0,f=H.x2||H[2]||0,H=H.y2||H[3]||0,B='angle\x3d"'+(90-180*Math.atan((H-c)/(f-e))/Math.PI)+'"',m();else{var h=H.r,t=2*h,J=2*h,A=H.cx,C=H.cy,E=b.radialReference,M,h=function(){E&&(M=d.getBBox(),A+=(E[0]-M.x)/M.width-.5,C+=(E[1]-M.y)/M.height-.5,t*=E[2]/M.width,J*=E[2]/M.height);B='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+t+","+ +J+'" origin\x3d"0.5,0.5" position\x3d"'+A+","+C+'" color2\x3d"'+r+'" ';m()};d.added?h():d.onAdd=h;h=x}else h=w}else n.test(c)&&"IMG"!==b.tagName?(p=a.color(c),d[e+"-opacitySetter"](p.get("a"),e,b),h=p.get("rgb")):(h=b.getElementsByTagName(e),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join("");c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'): +a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:D.prototype.html,path:function(a){var c={coordsize:"10 10"};d(a)?c.d=a:b(a)&&g(c,a);return this.createElement("shape").attr(c)},circle:function(a,e,d){var c=this.symbol("circle");b(a)&&(d=a.r,e=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:e})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)}, +image:function(a,b,e,d,n){var c=this.createElement("img").attr({src:a});1e&&m-v*yd&&(c=Math.round((g-m)/Math.cos(e*l)));else if(g=m+(1-v)*y,m-v*yd&&(D=d-a.x+D*v,J=-1),D=Math.min(n,D),DD||r.autoRotation&&(b.styles||{}).width)c=D;c&&(G.width=c,(r.options.labels.style||{}).textOverflow|| +(G.textOverflow="ellipsis"),b.css(G))},getPosition:function(a,f,l,g){var d=this.axis,k=d.chart,b=g&&k.oldChartHeight||k.chartHeight;return{x:a?d.translate(f+l,null,null,g)+d.transB:d.left+d.offset+(d.opposite?(g&&k.oldChartWidth||k.chartWidth)-d.right-d.left:0),y:a?b-d.bottom+d.offset-(d.opposite?d.height:0):b-d.translate(f+l,null,null,g)-d.transB}},getLabelPosition:function(a,f,m,g,d,k,b,e){var v=this.axis,y=v.transA,n=v.reversed,D=v.staggerLines,r=v.tickRotCorr||{x:0,y:0},c=d.y;A(c)||(c=0===v.side? +m.rotation?-8:-m.getBBox().height:2===v.side?r.y+8:Math.cos(m.rotation*l)*(r.y-m.getBBox(!1,0).height/2));a=a+d.x+r.x-(k&&g?k*y*(n?-1:1):0);f=f+c-(k&&!g?k*y*(n?1:-1):0);D&&(m=b/(e||1)%D,v.opposite&&(m=D-m-1),f+=v.labelOffset/D*m);return{x:a,y:Math.round(f)}},getMarkPath:function(a,f,l,g,d,k){return k.crispLine(["M",a,f,"L",a+(d?0:-l),f+(d?l:0)],g)},renderGridLine:function(a,f,l){var g=this.axis,d=g.options,k=this.gridLine,b={},e=this.pos,v=this.type,y=g.tickmarkOffset,n=g.chart.renderer,D=v?v+"Grid": +"grid",r=d[D+"LineWidth"],c=d[D+"LineColor"],d=d[D+"LineDashStyle"];k||(b.stroke=c,b["stroke-width"]=r,d&&(b.dashstyle=d),v||(b.zIndex=1),a&&(b.opacity=0),this.gridLine=k=n.path().attr(b).addClass("highcharts-"+(v?v+"-":"")+"grid-line").add(g.gridGroup));if(!a&&k&&(a=g.getPlotLinePath(e+y,k.strokeWidth()*l,a,!0)))k[this.isNew?"attr":"animate"]({d:a,opacity:f})},renderMark:function(a,l,m){var g=this.axis,d=g.options,k=g.chart.renderer,b=this.type,e=b?b+"Tick":"tick",v=g.tickSize(e),y=this.mark,n=!y, +D=a.x;a=a.y;var r=f(d[e+"Width"],!b&&g.isXAxis?1:0),d=d[e+"Color"];v&&(g.opposite&&(v[0]=-v[0]),n&&(this.mark=y=k.path().addClass("highcharts-"+(b?b+"-":"")+"tick").add(g.axisGroup),y.attr({stroke:d,"stroke-width":r})),y[n?"attr":"animate"]({d:this.getMarkPath(D,a,v[0],y.strokeWidth()*m,g.horiz,k),opacity:l}))},renderLabel:function(a,l,m,g){var d=this.axis,k=d.horiz,b=d.options,e=this.label,v=b.labels,y=v.step,n=d.tickmarkOffset,D=!0,r=a.x;a=a.y;e&&E(r)&&(e.xy=a=this.getLabelPosition(r,a,e,k,v,n, +g,y),this.isFirst&&!this.isLast&&!f(b.showFirstLabel,1)||this.isLast&&!this.isFirst&&!f(b.showLastLabel,1)?D=!1:!k||d.isRadial||v.step||v.rotation||l||0===m||this.handleOverflow(a),y&&g%y&&(D=!1),D&&E(a.y)?(a.opacity=m,e[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(e.attr("y",-9999),this.isNewLabel=!0),this.isNew=!1)},render:function(a,l,m){var g=this.axis,d=g.horiz,k=this.getPosition(d,this.pos,g.tickmarkOffset,l),b=k.x,e=k.y,g=d&&b===g.pos+g.len||!d&&e===g.pos?-1:1;m=f(m,1);this.isActive= +!0;this.renderGridLine(l,m,g);this.renderMark(k,m,g);this.renderLabel(k,l,m,a)},destroy:function(){F(this,this.axis)}}})(M);var S=function(a){var C=a.addEvent,A=a.animObject,F=a.arrayMax,E=a.arrayMin,m=a.color,f=a.correctFloat,l=a.defaultOptions,r=a.defined,u=a.deg2rad,t=a.destroyObjectProperties,g=a.each,d=a.extend,k=a.fireEvent,b=a.format,e=a.getMagnitude,v=a.grep,y=a.inArray,n=a.isArray,D=a.isNumber,J=a.isString,c=a.merge,G=a.normalizeTickInterval,q=a.objectEach,B=a.pick,K=a.removeEvent,p=a.splat, +z=a.syncTimeout,I=a.Tick,L=function(){this.init.apply(this,arguments)};a.extend(L.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 a.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(a,c){var h=c.isX,b=this;b.chart=a;b.horiz=a.inverted&&!b.isZAxis?!h:h;b.isXAxis=h;b.coll=b.coll||(h? +"xAxis":"yAxis");b.opposite=c.opposite;b.side=c.side||(b.horiz?b.opposite?0:2:b.opposite?1:3);b.setOptions(c);var w=this.options,e=w.type;b.labelFormatter=w.labels.formatter||b.defaultLabelFormatter;b.userOptions=c;b.minPixelPadding=0;b.reversed=w.reversed;b.visible=!1!==w.visible;b.zoomEnabled=!1!==w.zoomEnabled;b.hasNames="category"===e||!0===w.categories;b.categories=w.categories||b.hasNames;b.names=b.names||[];b.plotLinesAndBandsGroups={};b.isLog="logarithmic"===e;b.isDatetimeAxis="datetime"=== +e;b.positiveValuesOnly=b.isLog&&!b.allowNegativeLog;b.isLinked=r(w.linkedTo);b.ticks={};b.labelEdge=[];b.minorTicks={};b.plotLinesAndBands=[];b.alternateBands={};b.len=0;b.minRange=b.userMinRange=w.minRange||w.maxZoom;b.range=w.range;b.offset=w.offset||0;b.stacks={};b.oldStacks={};b.stacksTouched=0;b.max=null;b.min=null;b.crosshair=B(w.crosshair,p(a.options.tooltip.crosshairs)[h?0:1],!1);c=b.options.events;-1===y(b,a.axes)&&(h?a.axes.splice(a.xAxis.length,0,b):a.axes.push(b),a[b.coll].push(b));b.series= +b.series||[];a.inverted&&!b.isZAxis&&h&&void 0===b.reversed&&(b.reversed=!0);q(c,function(a,h){C(b,h,a)});b.lin2log=w.linearToLogConverter||b.lin2log;b.isLog&&(b.val2lin=b.log2lin,b.lin2val=b.lin2log)},setOptions:function(a){this.options=c(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],c(l[this.coll],a))},defaultLabelFormatter:function(){var h=this.axis, +c=this.value,e=h.categories,p=this.dateTimeLabelFormat,d=l.lang,n=d.numericSymbols,d=d.numericSymbolMagnitude||1E3,q=n&&n.length,x,g=h.options.labels.format,h=h.isLog?Math.abs(c):h.tickInterval;if(g)x=b(g,this);else if(e)x=c;else if(p)x=a.dateFormat(p,c);else if(q&&1E3<=h)for(;q--&&void 0===x;)e=Math.pow(d,q+1),h>=e&&0===10*c%e&&null!==n[q]&&0!==c&&(x=a.numberFormat(c/e,-1)+n[q]);void 0===x&&(x=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,""));return x},getSeriesExtremes:function(){var a= +this,b=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();g(a.series,function(h){if(h.visible||!b.options.chart.ignoreHiddenSeries){var c=h.options,w=c.threshold,e;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=w&&(w=null);if(a.isXAxis)c=h.xData,c.length&&(h=E(c),D(h)||h instanceof Date||(c=v(c,function(a){return D(a)}),h=E(c)),a.dataMin=Math.min(B(a.dataMin,c[0]),h),a.dataMax=Math.max(B(a.dataMax,c[0]),F(c)));else if(h.getExtremes(), +e=h.dataMax,h=h.dataMin,r(h)&&r(e)&&(a.dataMin=Math.min(B(a.dataMin,h),h),a.dataMax=Math.max(B(a.dataMax,e),e)),r(w)&&(a.threshold=w),!c.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})},translate:function(a,b,c,e,p,d){var h=this.linkedParent||this,w=1,n=0,q=e?h.oldTransA:h.transA;e=e?h.oldMin:h.min;var g=h.minPixelPadding;p=(h.isOrdinal||h.isBroken||h.isLog&&p)&&h.lin2val;q||(q=h.transA);c&&(w*=-1,n=h.len);h.reversed&&(w*=-1,n-=w*(h.sector||h.len));b?(a=(a*w+n-g)/q+e,p&&(a=h.lin2val(a))): +(p&&(a=h.val2lin(a)),a=w*(a-e)*q+n+w*g+(D(d)?q*d:0));return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,c,e,p){var h=this.chart,w=this.left,d=this.top,n,q,g=c&&h.oldChartHeight||h.chartHeight,k=c&&h.oldChartWidth||h.chartWidth,f;n=this.transB;var v=function(a,h,b){if(ab)e?a=Math.min(Math.max(h,a),b):f=!0;return a};p=B(p,this.translate(a, +null,null,c));a=c=Math.round(p+n);n=q=Math.round(g-p-n);D(p)?this.horiz?(n=d,q=g-this.bottom,a=c=v(a,w,w+this.width)):(a=w,c=k-this.right,n=q=v(n,d,d+this.height)):f=!0;return f&&!e?null:h.renderer.crispLine(["M",a,n,"L",c,q],b||1)},getLinearTickPositions:function(a,b,c){var h,w=f(Math.floor(b/a)*a);c=f(Math.ceil(c/a)*a);var e=[];if(this.single)return[b];for(b=w;b<=c;){e.push(b);b=f(b+a);if(b===h)break;h=b}return e},getMinorTickPositions:function(){var a=this,b=a.options,c=a.tickPositions,e=a.minorTickInterval, +p=[],d=a.pointRangePadding||0,n=a.min-d,d=a.max+d,q=d-n;if(q&&q/e=this.minRange,v=this.minRange,e=(v-c+b)/2,e=[b-e,B(a.min,b-e)],p&&(e[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),b=F(e),c=[b+v,B(a.max,b+v)],p&&(c[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax), +c=E(c),c-b=J?(L=J,y=0):b.dataMax<=J&&(u=J,z=0)),b.min=B(K,L,b.dataMin),b.max=B(A,u,b.dataMax));d&&(b.positiveValuesOnly&&!h&&0>=Math.min(b.min,B(b.dataMin,b.min))&&a.error(10,1),b.min=f(n(b.min),15),b.max=f(n(b.max),15));b.range&&r(b.max)&&(b.userMin=b.min=K=Math.max(b.dataMin,b.minFromRange()),b.userMax=A=b.max,b.range=null);k(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange(); +!(m||b.axisPointRange||b.usePercentage||v)&&r(b.min)&&r(b.max)&&(n=b.max-b.min)&&(!r(K)&&y&&(b.min-=n*y),!r(A)&&z&&(b.max+=n*z));D(p.softMin)&&(b.min=Math.min(b.min,p.softMin));D(p.softMax)&&(b.max=Math.max(b.max,p.softMax));D(p.floor)&&(b.min=Math.max(b.min,p.floor));D(p.ceiling)&&(b.max=Math.min(b.max,p.ceiling));t&&r(b.dataMin)&&(J=J||0,!r(K)&&b.min=J?b.min=J:!r(A)&&b.max>J&&b.dataMax<=J&&(b.max=J));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:v&&!l&&I===b.linkedParent.options.tickPixelInterval? +l=b.linkedParent.tickInterval:B(l,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,m?1:(b.max-b.min)*I/Math.max(b.len,I));x&&!h&&g(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!l&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));h=B(p.minTickInterval,b.isDatetimeAxis&&b.closestPointRange); +!l&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,e=a.tickPositioner,p=a.startOnTick,d=a.endOnTick;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval= +"auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.single=this.min===this.max&&r(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval, +this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,e&&(e=e.apply(this,[this.min,this.max])))&&(this.tickPositions=b=e);this.paddedTicks=b.slice(0);this.trimTicks(b,p,d);this.isLinked||(this.single&&2>b.length&&(this.min-=.5,this.max+=.5),c||e||this.adjustTickAmount())},trimTicks:function(a,b,c){var h=a[0],e=a[a.length-1],p=this.minPointOffset||0;if(!this.isLinked){if(b&&-Infinity!==h)this.min=h;else for(;this.min-p>a[0];)a.shift();if(c)this.max=e;else for(;this.max+pb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,e=this.finalTickAmt,p=b&&b.length;if(pc&&(this.tickInterval*=2,this.setTickPositions());if(r(e)){for(a=c=b.length;a--;)(3===e&&1===a%2||2>=e&&0e&&(a=e)),r(c)&&(be&&(b=e))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var b=this.chart,c=this.options,e=c.offsets||[0,0,0,0],p=this.horiz,d=this.width=Math.round(a.relativeLength(B(c.width,b.plotWidth-e[3]+e[1]),b.plotWidth)),n=this.height=Math.round(a.relativeLength(B(c.height,b.plotHeight-e[0]+e[2]),b.plotHeight)),q=this.top=Math.round(a.relativeLength(B(c.top,b.plotTop+e[0]),b.plotHeight,b.plotTop)), +c=this.left=Math.round(a.relativeLength(B(c.left,b.plotLeft+e[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-n-q;this.right=b.chartWidth-d-c;this.len=Math.max(p?d:n,0);this.pos=p?c:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?f(b(this.min)):this.min,max:a?f(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,h=this.lin2log,c=b?h(this.min):this.min,b=b?h(this.max):this.max; +null===a?a=c:c>a?a=c:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,h=b[a+"Length"],c=B(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(c&&h)return"inside"===b[a+"Position"]&&(h=-h),[h,c]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,e=c,p=this.len/(((this.categories?1:0)+this.max-this.min)/c),d,n=a.rotation,q=this.labelMetrics(),k,f=Number.MAX_VALUE,v,z=function(a){a/=p||1;a=1=a)k=z(Math.abs(q.h/Math.sin(u*a))),b=k+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*this.len/e||!b&&(p&&p-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,e=this.tickPositions,p=this.ticks,d=this.options.labels,n=this.horiz,q=this.getSlotWidth(),k=Math.max(1, +Math.round(q-2*(d.padding||5))),f={},v=this.labelMetrics(),z=d.style&&d.style.textOverflow,D,y=0,l,I;J(d.rotation)||(f.rotation=d.rotation||0);g(e,function(a){(a=p[a])&&a.labelLength>y&&(y=a.labelLength)});this.maxLabelLength=y;if(this.autoRotation)y>k&&y>v.h?f.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(D={width:k+"px"},!z))for(D.textOverflow="clip",l=e.length;!n&&l--;)if(I=e[l],k=p[I].label)k.styles&&"ellipsis"===k.styles.textOverflow?k.css({textOverflow:"clip"}):p[I].labelLength> +q&&k.css({width:q+"px"}),k.getBBox().height>this.len/e.length-(v.h-v.f)&&(k.specCss={textOverflow:"ellipsis"});f.rotation&&(D={width:(y>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},z||(D.textOverflow="ellipsis"));if(this.labelAlign=d.align||this.autoLabelAlign(this.labelRotation))f.align=this.labelAlign;g(e,function(a){var b=(a=p[a])&&a.label;b&&(b.attr(f),D&&b.css(c(D,b.specCss)),delete b.specCss,a.rotation=f.rotation)});this.tickRotCorr=b.rotCorr(v.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||r(this.min)&&r(this.max)&&!!this.tickPositions},addTitle:function(a){var b=this.chart.renderer,c=this.horiz,h=this.opposite,e=this.options.title,p;this.axisTitle||((p=e.textAlign)||(p=(c?{low:"left",middle:"center",high:"right"}:{low:h?"right":"left",middle:"center",high:h?"left":"right"})[e.align]),this.axisTitle=b.text(e.text,0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation||0,align:p}).addClass("highcharts-axis-title").css(e.style).add(this.axisGroup), +this.axisTitle.isNew=!0);e.style.width||this.isRadial||this.axisTitle.css({width:this.len});this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var b=this.ticks;b[a]?b[a].addLabel():b[a]=new I(this,a)},getOffset:function(){var a=this,b=a.chart,c=b.renderer,e=a.options,p=a.tickPositions,d=a.ticks,n=a.horiz,k=a.side,f=b.inverted&&!a.isZAxis?[1,0,3,2][k]:k,v,z,D=0,y,l=0,I=e.title,m=e.labels,G=0,J=b.axisOffset,b=b.clipOffset,t=[-1,1,1,-1][k],L=e.className,u=a.axisParent,K=this.tickSize("tick"); +v=a.hasData();a.showAxis=z=v||B(e.showEmpty,!0);a.staggerLines=a.horiz&&m.staggerLines;a.axisGroup||(a.gridGroup=c.g("grid").attr({zIndex:e.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(L||"")).add(u),a.axisGroup=c.g("axis").attr({zIndex:e.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(L||"")).add(u),a.labelGroup=c.g("axis-labels").attr({zIndex:m.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(L||"")).add(u));v||a.isLinked?(g(p,function(b, +c){a.generateTick(b,c)}),a.renderUnsquish(),!1===m.reserveSpace||0!==k&&2!==k&&{1:"left",3:"right"}[k]!==a.labelAlign&&"center"!==a.labelAlign||g(p,function(a){G=Math.max(d[a].getLabelSize(),G)}),a.staggerLines&&(G*=a.staggerLines,a.labelOffset=G*(a.opposite?-1:1))):q(d,function(a,b){a.destroy();delete d[b]});I&&I.text&&!1!==I.enabled&&(a.addTitle(z),z&&!1!==I.reserveSpace&&(a.titleOffset=D=a.axisTitle.getBBox()[n?"height":"width"],y=I.offset,l=r(y)?0:B(I.margin,n?5:10)));a.renderLine();a.offset= +t*B(e.offset,J[k]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===k?-a.labelMetrics().h:2===k?a.tickRotCorr.y:0;l=Math.abs(G)+l;G&&(l=l-c+t*(n?B(m.y,a.tickRotCorr.y+8*t):m.x));a.axisTitleMargin=B(y,l);J[k]=Math.max(J[k],a.axisTitleMargin+D+t*a.offset,l,v&&p.length&&K?K[0]+t*a.offset:0);p=2*Math.floor(a.axisLine.strokeWidth()/2);0=this.min&&a<=this.max)e[a]||(e[a]=new I(this,a)),h&&e[a].isNew&&e[a].render(b,!0,.1),e[a].render(b)},render:function(){var b=this,c=b.chart,e=b.options,p=b.isLog,d=b.lin2log,n=b.isLinked,k=b.tickPositions,f=b.axisTitle,v=b.ticks,y=b.minorTicks,l=b.alternateBands,m=e.stackLabels,r=e.alternateGridColor,B=b.tickmarkOffset, +G=b.axisLine,J=b.showAxis,t=A(c.renderer.globalAnimation),L,u;b.labelEdge.length=0;b.overlap=!1;g([v,y,l],function(a){q(a,function(a){a.isActive=!1})});if(b.hasData()||n)b.minorTickInterval&&!b.categories&&g(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),k.length&&(g(k,function(a,c){b.renderTick(a,c)}),B&&(0===b.min||b.single)&&(v[-1]||(v[-1]=new I(b,-1,null,!0)),v[-1].render(-1))),r&&g(k,function(e,h){u=void 0!==k[h+1]?k[h+1]+B:b.max-B;0===h%2&&e=d.second?0:B*Math.floor(c.getMilliseconds()/B));if(q>=d.second)c[A.hcSetSeconds](q>=d.minute?0:B*Math.floor(c.getSeconds()/B));if(q>=d.minute)c[A.hcSetMinutes](q>=d.hour?0:B*Math.floor(c[A.hcGetMinutes]()/B));if(q>=d.hour)c[A.hcSetHours](q>=d.day?0:B*Math.floor(c[A.hcGetHours]()/B));if(q>=d.day)c[A.hcSetDate](q>= +d.month?1:B*Math.floor(c[A.hcGetDate]()/B));q>=d.month&&(c[A.hcSetMonth](q>=d.year?0:B*Math.floor(c[A.hcGetMonth]()/B)),r=c[A.hcGetFullYear]());if(q>=d.year)c[A.hcSetFullYear](r-r%B);if(q===d.week)c[A.hcSetDate](c[A.hcGetDate]()-c[A.hcGetDay]()+g(v,1));r=c[A.hcGetFullYear]();v=c[A.hcGetMonth]();var z=c[A.hcGetDate](),I=c[A.hcGetHours]();if(A.hcTimezoneOffset||A.hcGetTimezoneOffset)p=(!D||!!A.hcGetTimezoneOffset)&&(e-b>4*d.month||u(b)!==u(e)),c=c.getTime(),t=u(c),c=new A(c+t);D=c.getTime();for(b=1;D< +e;)k.push(D),D=q===d.year?G(r+b*B,0):q===d.month?G(r,v+b*B):!p||q!==d.day&&q!==d.week?p&&q===d.hour?G(r,v,z,I+b*B,0,0,t)-t:D+q*B:G(r,v,z+b*B*(q===d.day?1:7)),b++;k.push(D);q<=d.hour&&1E4>k.length&&f(k,function(a){0===a%18E5&&"000000000"===F("%H%M%S%L",a)&&(n[a]="day")})}k.info=l(a,{higherRanks:n,totalRange:q*B});return k};C.prototype.normalizeTimeTickInterval=function(a,b){var e=b||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1, +2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];b=e[e.length-1];var k=d[b[0]],g=b[1],n;for(n=0;nl&&(!u||n<=r)&&void 0!==n&&b.push(n),n>r&&(D=!0),n=y;else l=d(l),r=d(r),a=f[u?"minorTickInterval":"tickInterval"],a=m("auto"===a?null:a,this._minorAutoInterval,f.tickPixelInterval/(u?5:1)*(r-l)/((u?g/this.tickPositions.length: +g)||1)),a=E(a,null,A(a)),b=F(this.getLinearTickPositions(a,l,r),k),u||(this._minorAutoInterval=a/5);u||(this.tickInterval=a);return b};C.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};C.prototype.lin2log=function(a){return Math.pow(10,a)}})(M);(function(a,C){var A=a.arrayMax,F=a.arrayMin,E=a.defined,m=a.destroyObjectProperties,f=a.each,l=a.erase,r=a.merge,u=a.pick;a.PlotLineOrBand=function(a,g){this.axis=a;g&&(this.options=g,this.id=g.id)};a.PlotLineOrBand.prototype={render:function(){var f= +this,g=f.axis,d=g.horiz,k=f.options,b=k.label,e=f.label,v=k.to,l=k.from,n=k.value,D=E(l)&&E(v),m=E(n),c=f.svgElem,G=!c,q=[],B=k.color,K=u(k.zIndex,0),p=k.events,q={"class":"highcharts-plot-"+(D?"band ":"line ")+(k.className||"")},z={},I=g.chart.renderer,L=D?"bands":"lines",h=g.log2lin;g.isLog&&(l=h(l),v=h(v),n=h(n));m?(q={stroke:B,"stroke-width":k.width},k.dashStyle&&(q.dashstyle=k.dashStyle)):D&&(B&&(q.fill=B),k.borderWidth&&(q.stroke=k.borderColor,q["stroke-width"]=k.borderWidth));z.zIndex=K;L+= +"-"+K;(B=g.plotLinesAndBandsGroups[L])||(g.plotLinesAndBandsGroups[L]=B=I.g("plot-"+L).attr(z).add());G&&(f.svgElem=c=I.path().attr(q).add(B));if(m)q=g.getPlotLinePath(n,c.strokeWidth());else if(D)q=g.getPlotBandPath(l,v,k);else return;G&&q&&q.length?(c.attr({d:q}),p&&a.objectEach(p,function(a,b){c.on(b,function(a){p[b].apply(f,[a])})})):c&&(q?(c.show(),c.animate({d:q})):(c.hide(),e&&(f.label=e=e.destroy())));b&&E(b.text)&&q&&q.length&&0this.max&&g>this.max;k&&d?(a&&(k.flat=k.toString()===d.toString(),e=0),k.push(b&&d[4]===k[4]?d[4]+e:d[4],b||d[5]!==k[5]?d[5]:d[5]+e,b&&d[1]===k[1]?d[1]+e:d[1],b||d[2]!==k[2]?d[2]:d[2]+e)):k=null;return k}, +addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(f,g){var d=(new a.PlotLineOrBand(this,f)).render(),k=this.userOptions;d&&(g&&(k[g]=k[g]||[],k[g].push(f)),this.plotLinesAndBands.push(d));return d},removePlotBandOrLine:function(a){for(var g=this.plotLinesAndBands,d=this.options,k=this.userOptions,b=g.length;b--;)g[b].id===a&&g[b].destroy();f([d.plotLines||[],k.plotLines||[],d.plotBands|| +[],k.plotBands||[]],function(e){for(b=e.length;b--;)e[b].id===a&&l(e,e[b])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(M,S);(function(a){var C=a.dateFormat,A=a.each,F=a.extend,E=a.format,m=a.isNumber,f=a.map,l=a.merge,r=a.pick,u=a.splat,t=a.syncTimeout,g=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,k){this.chart=a;this.options=k;this.crosshairs=[];this.now={x:0,y:0}; +this.isHidden=!0;this.split=k.split&&!a.inverted;this.shared=k.shared||this.split},cleanSplit:function(a){A(this.chart.series,function(d){var b=d&&d.tt;b&&(!b.isActive||a?d.tt=b.destroy():b.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,k=this.options;this.label||(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,k.shape||"callout",null,null,k.useHTML,null,"tooltip").attr({padding:k.padding,r:k.borderRadius}),this.label.attr({fill:k.backgroundColor,"stroke-width":k.borderWidth}).css(k.style).shadow(k.shadow)), +this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();l(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,l(!0,this.options,a))},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(a,k,b,e){var d=this,g=d.now,n=!1!==d.options.animation&&!d.isHidden&&(1f-n?f:f-n);else if(g)k[a]=Math.max(p,e+n+c>b?e:e+n);else return!1},B=function(a,b,c,e){var h;eb-d?h=!1:k[a]=eb-c/2? +b-c-2:e-c/2;return h},t=function(a){var b=l;l=c;c=b;f=a},p=function(){!1!==q.apply(0,l)?!1!==B.apply(0,c)||f||(t(!0),p()):f?k.x=k.y=0:(t(!0),p())};(e.inverted||1p&&(n=!1);a=(d.series&&d.series.yAxis&&d.series.yAxis.pos)+(d.plotY||0);a-=g.plotTop;e.push({target:d.isHeader?g.plotHeight+m:a,rank:d.isHeader?1:0,size:q.tt.getBBox().height+1,point:d,x:p,tt:v})}});this.cleanSplit();a.distribute(e,g.plotHeight+m);A(e,function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:n||b.isHeader?a.x:b.plotX+ +g.plotLeft+r(l.distance,16),y:a.pos+g.plotTop,anchorX:b.isHeader?b.plotX+g.plotLeft:b.plotX+c.xAxis.pos,anchorY:b.isHeader?a.pos+g.plotTop-15:b.plotY+c.yAxis.pos})})},updatePosition:function(a){var d=this.chart,b=this.getLabel(),b=(this.options.positioner||this.getPosition).call(this,b.width,b.height,a);this.move(Math.round(b.x),Math.round(b.y||0),a.plotX+d.plotLeft,a.plotY+d.plotTop)},getDateFormat:function(a,k,b,e){var d=C("%m-%d %H:%M:%S.%L",k),f,n,l={millisecond:15,second:12,minute:9,hour:6,day:3}, +m="millisecond";for(n in g){if(a===g.week&&+C("%w",k)===b&&"00:00:00.000"===d.substr(6)){n="week";break}if(g[n]>a){n=m;break}if(l[n]&&d.substr(l[n])!=="01-01 00:00:00.000".substr(l[n]))break;"week"!==n&&(m=n)}n&&(f=e[n]);return f},getXDateFormat:function(a,g,b){g=g.dateTimeLabelFormats;var e=b&&b.closestPointRange;return(e?this.getDateFormat(e,a.x,b.options.startOfWeek,g):g.day)||g.year},tooltipFooterHeaderFormatter:function(a,g){var b=g?"footer":"header";g=a.series;var e=g.tooltipOptions,d=e.xDateFormat, +k=g.xAxis,n=k&&"datetime"===k.options.type&&m(a.key),b=e[b+"Format"];n&&!d&&(d=this.getXDateFormat(a,e,k));n&&d&&(b=b.replace("{point.key}","{point.key:"+d+"}"));return E(b,{point:a,series:g})},bodyFormatter:function(a){return f(a,function(a){var b=a.series.tooltipOptions;return(b.pointFormatter||a.point.tooltipFormatter).call(a.point,b.pointFormat)})}}})(M);(function(a){var C=a.addEvent,A=a.attr,F=a.charts,E=a.color,m=a.css,f=a.defined,l=a.each,r=a.extend,u=a.find,t=a.fireEvent,g=a.isObject,d=a.offset, +k=a.pick,b=a.removeEvent,e=a.splat,v=a.Tooltip,y=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};v&&(a.tooltip=new v(a,b.tooltip),this.followTouchMove=k(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,e=b.options.chart,c=e.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(c=k(e.pinchType,c)); +this.zoomX=a=/x/.test(c);this.zoomY=c=/y/.test(c);this.zoomHor=a&&!b||c&&b;this.zoomVert=c&&!b||a&&b;this.hasZoom=a||c},normalize:function(a,b){var e,c;a=a||y.event;a.target||(a.target=a.srcElement);c=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=d(this.chart.container));void 0===c.pageX?(e=Math.max(a.x,a.clientX-b.left),b=a.y):(e=c.pageX-b.left,b=c.pageY-b.top);return r(a,{chartX:Math.round(e),chartY:Math.round(b)})},getCoordinates:function(a){var b= +{xAxis:[],yAxis:[]};l(this.chart.axes,function(e){b[e.isXAxis?"xAxis":"yAxis"].push({axis:e,value:e.toValue(a[e.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,b,e){var c;l(a,function(a){var d=!(a.noSharedTooltip&&b)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(e,d);if((d=g(a,!0))&&!(d=!g(c,!0)))var d=c.distX-a.distX,n=c.dist-a.dist,k=(a.series.group&&a.series.group.zIndex)-(c.series.group&&c.series.group.zIndex),d=0<(0!==d&&b?d:0!==n?n:0!==k?k:c.series.index> +a.series.index?-1:1);d&&(c=a)});return c},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var e=a.series,c=e.xAxis,e=e.yAxis;if(c&&e)return b?{chartX:c.len+c.pos-a.clientX,chartY:e.len+e.pos-a.plotY}:{chartX:a.clientX+c.pos,chartY:a.plotY+e.pos}},getHoverData:function(b,e,d,c,f,q){var n,v=[];c=!(!c||!b);var p=e&&!e.stickyTracking?[e]:a.grep(d,function(a){return a.visible&&!(!f&&a.directTouch)&&k(a.options.enableMouseTracking, +!0)&&a.stickyTracking});e=(n=c?b:this.findNearestKDPoint(p,f,q))&&n.series;n&&(f&&!e.noSharedTooltip?(p=a.grep(d,function(a){return a.visible&&!(!f&&a.directTouch)&&k(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),l(p,function(a){a=u(a.points,function(a){return a.x===n.x});g(a)&&!a.isNull&&v.push(a)})):v.push(n));return{hoverPoint:n,hoverSeries:e,hoverPoints:v}},runPointActions:function(b,e){var d=this.chart,c=d.tooltip,g=c?c.shared:!1,n=e||d.hoverPoint,f=n&&n.series||d.hoverSeries,f=this.getHoverData(n, +f,d.series,!!e||f&&f.directTouch&&this.isDirectTouch,g,b),v,n=f.hoverPoint;v=f.hoverPoints;e=(f=f.hoverSeries)&&f.tooltipOptions.followPointer;g=g&&f&&!f.noSharedTooltip;if(n&&(n!==d.hoverPoint||c&&c.isHidden)){l(d.hoverPoints||[],function(b){-1===a.inArray(b,v)&&b.setState()});l(v||[],function(a){a.setState("hover")});if(d.hoverSeries!==f)f.onMouseOver();d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut");n.firePointEvent("mouseOver");d.hoverPoints=v;d.hoverPoint=n;c&&c.refresh(g?v:n,b)}else e&& +c&&!c.isHidden&&(n=c.getAnchor([{}],b),c.updatePosition({plotX:n[0],plotY:n[1]}));this.unDocMouseMove||(this.unDocMouseMove=C(d.container.ownerDocument,"mousemove",function(b){var c=F[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));l(d.axes,function(c){var e=k(c.crosshair.snap,!0),p=e?a.find(v,function(a){return a.series[c.coll]===c}):void 0;p||!e?c.drawCrosshair(b,p):c.hideCrosshair()})},reset:function(a,b){var d=this.chart,c=d.hoverSeries,g=d.hoverPoint,n=d.hoverPoints,f=d.tooltip,k= +f&&f.shared?n:g;a&&k&&l(e(k),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)f&&k&&(f.refresh(k),g&&(g.setState(g.state,!0),l(d.axes,function(a){a.crosshair&&a.drawCrosshair(null,g)})));else{if(g)g.onMouseOut();n&&l(n,function(a){a.setState()});if(c)c.onMouseOut();f&&f.hide(b);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());l(d.axes,function(a){a.hideCrosshair()});this.hoverX=d.hoverPoints=d.hoverPoint=null}},scaleGroups:function(a,b){var e=this.chart,c;l(e.series, +function(d){c=a||d.getPlotBox();d.xAxis&&d.xAxis.zoomEnabled&&d.group&&(d.group.attr(c),d.markerGroup&&(d.markerGroup.attr(c),d.markerGroup.clip(b?e.clipRect:null)),d.dataLabelsGroup&&d.dataLabelsGroup.attr(c))});e.clipRect.attr(b||e.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,e=b.options.chart,c=a.chartX,d=a.chartY,g=this.zoomHor,n=this.zoomVert, +f=b.plotLeft,p=b.plotTop,k=b.plotWidth,v=b.plotHeight,l,h=this.selectionMarker,w=this.mouseDownX,m=this.mouseDownY,r=e.panKey&&a[e.panKey+"Key"];h&&h.touch||(cf+k&&(c=f+k),dp+v&&(d=p+v),this.hasDragged=Math.sqrt(Math.pow(w-c,2)+Math.pow(m-d,2)),10K.max&&(f=K.max-c,w=!0);w?(I-=.8*(I-k[v][0]),p||(h-=.8*(h-k[v][1])),m()):k[v]=[I,h];B||(d[v]=G-u,d[r]=c);d=B?1/q:q;g[r]=c;g[v]=f;t[B?a?"scaleY":"scaleX":"scale"+l]=q;t["translate"+l]=d*u+(I-d*z)},pinch:function(a){var l=this,u=l.chart,t=l.pinchDown,g=a.touches,d=g.length,k=l.lastValidTouch,b=l.hasZoom,e=l.selectionMarker, +v={},y=1===d&&(l.inClass(a.target,"highcharts-tracker")&&u.runTrackerClick||l.runChartClick),n={};1d-6&&c(p||b.spacingBox.width-2*q-g.x)&&(this.itemX=q,this.itemY+=I+this.lastLineHeight+z,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=I+this.itemY+z;this.lastLineHeight=Math.max(d,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=I+d+z,this.lastLineHeight=d);this.offsetWidth=p||Math.max((f?this.itemX-q-(a.checkbox?0:B):c)+q,this.offsetWidth)},getAllItems:function(){var a=[];m(this.chart.series, +function(b){var e=b&&b.options;b&&u(e.showInLegend,E(e.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===e.legendType?b.data:b)))});return a},adjustMargins:function(a,e){var b=this.chart,d=this.options,g=d.align.charAt(0)+d.verticalAlign.charAt(0)+d.layout.charAt(0);d.floating||m([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(f,k){f.test(g)&&!E(a[k])&&(b[l[k]]=Math.max(b[l[k]],b.legend[(k+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][k]*d[k%2?"x":"y"]+u(d.margin, +12)+e[k]))})},render:function(){var a=this,e=a.chart,d=e.renderer,f=a.group,k,l,t,c,u=a.box,q=a.options,B=a.padding;a.itemX=B;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;f||(a.group=f=d.g("legend").attr({zIndex:7}).add(),a.contentGroup=d.g().attr({zIndex:1}).add(f),a.scrollGroup=d.g().add(a.contentGroup));a.renderTitle();k=a.getAllItems();g(k,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});q.reversed&&k.reverse();a.allItems=k;a.display=l= +!!k.length;a.lastLineHeight=0;m(k,function(b){a.renderItem(b)});t=(q.width||a.offsetWidth)+B;c=a.lastItemY+a.lastLineHeight+a.titleHeight;c=a.handleOverflow(c);c+=B;u||(a.box=u=d.rect().addClass("highcharts-legend-box").attr({r:q.borderRadius}).add(f),u.isNew=!0);u.attr({stroke:q.borderColor,"stroke-width":q.borderWidth||0,fill:q.backgroundColor||"none"}).shadow(q.shadow);0d&&!1!==q.enabled?(this.clipHeight=c=Math.max(d-20-this.titleHeight-l,0),this.currentPage=u(this.currentPage,1),this.fullHeight=a,m(L,function(a,b){var e=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=z.length;if(!d||e-z[d-1]>c&&(I||e)!==z[d-1])z.push(I|| +e),d++;b===L.length-1&&e+a-z[d-1]>c&&z.push(e);e!==I&&(I=e)}),r||(r=b.clipRect=g.clipRect(0,l,9999,0),b.contentGroup.clip(r)),h(c),p||(this.nav=p=g.g().attr({zIndex:1}).add(this.group),this.up=g.symbol("triangle",0,0,t,t).on("click",function(){b.scroll(-1,B)}).add(p),this.pager=g.text("",15,10).addClass("highcharts-legend-navigation").css(q.style).add(p),this.down=g.symbol("triangle-down",0,0,t,t).on("click",function(){b.scroll(1,B)}).add(p)),b.scroll(0),a=d):p&&(h(),this.nav=p.destroy(),this.scrollGroup.attr({translateY:1}), +this.clipHeight=0);return a},scroll:function(a,e){var b=this.pages,d=b.length;a=this.currentPage+a;var g=this.clipHeight,f=this.options.navigation,k=this.pager,c=this.padding;a>d&&(a=d);0f&&(g=typeof a[0],"string"===g?d.name=a[0]:"number"=== +g&&(d.x=a[0]),m++);n=b.value;)b=d[++f];b&&b.color&&!this.options.color&&(this.color=b.color);return b},destroy:function(){var a=this.series.chart,d=a.hoverPoints,f;a.pointCount--;d&&(this.setState(),E(d,this),d.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)t(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this); +for(f in this)this[f]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],d,f=6;f--;)d=a[f],this[d]&&(this[d]=this[d].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(a){var d=this.series,g=d.tooltipOptions,b=u(g.valueDecimals,""), +e=g.valuePrefix||"",l=g.valueSuffix||"";A(d.pointArrayMap||["y"],function(d){d="{point."+d;if(e||l)a=a.replace(d+"}",e+d+"}"+l);a=a.replace(d+"}",d+":,."+b+"f}")});return f(a,{point:this,series:this.series})},firePointEvent:function(a,d,f){var b=this,e=this.series.options;(e.point.events[a]||b.options&&b.options.events&&b.options.events[a])&&this.importEvents();"click"===a&&e.allowPointSelect&&(f=function(a){b.select&&b.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});m(this,a,d,f)},visible:!0}})(M); +(function(a){var C=a.addEvent,A=a.animObject,F=a.arrayMax,E=a.arrayMin,m=a.correctFloat,f=a.Date,l=a.defaultOptions,r=a.defaultPlotOptions,u=a.defined,t=a.each,g=a.erase,d=a.extend,k=a.fireEvent,b=a.grep,e=a.isArray,v=a.isNumber,y=a.isString,n=a.merge,D=a.objectEach,J=a.pick,c=a.removeEvent,G=a.splat,q=a.SVGElement,B=a.syncTimeout,K=a.win;a.Series=a.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?"":a.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:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,e,h=a.series,p;c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();d(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});e=b.events;D(e,function(a,b){C(c,b,a)});if(e&& +e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();t(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);h.length&&(p=h[h.length-1]);c._i=J(p&&p._i,-1)+1;a.orderSeries(this.insert(h))},insert:function(a){var b=this.options.index,c;if(v(b)){for(c=a.length;c--;)if(b>=J(a[c].options.index,a[c]._i)){a.splice(c+1,0,this);break}-1===c&&a.unshift(this);c+=1}else a.push(this);return J(c, +a.length-1)},bindAxes:function(){var b=this,c=b.options,e=b.chart,d;t(b.axisTypes||[],function(h){t(e[h],function(a){d=a.options;if(c[h]===d.index||void 0!==c[h]&&c[h]===d.id||void 0===c[h]&&0===d.index)b.insert(a.series),b[h]=a,a.isDirty=!0});b[h]||b.optionalAxis===h||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,d=v(b)?function(e){var d="y"===e&&c.toYData?c.toYData(a):a[e];c[e+"Data"][b]=d}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e, +2))};t(c.parallelArrays,d)},autoIncrement:function(){var a=this.options,b=this.xIncrement,c,e=a.pointIntervalUnit,b=J(b,a.pointStart,0);this.pointInterval=c=J(this.pointInterval,a.pointInterval,1);e&&(a=new f(b),"day"===e?a=+a[f.hcSetDate](a[f.hcGetDate]()+c):"month"===e?a=+a[f.hcSetMonth](a[f.hcGetMonth]()+c):"year"===e&&(a=+a[f.hcSetFullYear](a[f.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options,e=c.plotOptions,d=(b.userOptions||{}).plotOptions|| +{},p=e[this.type];this.userOptions=a;b=n(p,e.series,a);this.tooltipOptions=n(l.tooltip,l.plotOptions.series&&l.plotOptions.series.tooltip,l.plotOptions[this.type].tooltip,c.tooltip.userOptions,e.series&&e.series.tooltip,e[this.type].tooltip,a.tooltip);this.stickyTracking=J(a.stickyTracking,d[this.type]&&d[this.type].stickyTracking,d.series&&d.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:b.stickyTracking);null===p.marker&&delete b.marker;this.zoneAxis=b.zoneAxis;a=this.zones= +(b.zones||[]).slice();!b.negativeColor&&!b.negativeFillColor||b.zones||a.push({value:b[this.zoneAxis+"Threshold"]||b.threshold||0,className:"highcharts-negative",color:b.negativeColor,fillColor:b.negativeFillColor});a.length&&u(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return b},getCyclic:function(a,b,c){var e,d=this.chart,p=this.userOptions,f=a+"Index",g=a+"Counter",k=c?c.length:J(d.options.chart[a+"Count"],d[a+"Count"]);b||(e=J(p[f],p["_"+f]),u(e)||(d.series.length|| +(d[g]=0),p["_"+f]=e=d[g]%k,d[g]+=1),c&&(b=c[e]));void 0!==e&&(this[f]=e);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||r[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(b,c,d,f){var h=this,p=h.points,g=p&&p.length||0,k,q=h.options,l=h.chart,n=null,m=h.xAxis, +z=q.turboThreshold,r=this.xData,B=this.yData,I=(k=h.pointArrayMap)&&k.length;b=b||[];k=b.length;c=J(c,!0);if(!1!==f&&k&&g===k&&!h.cropped&&!h.hasGroupedData&&h.visible)t(b,function(a,b){p[b].update&&a!==q.data[b]&&p[b].update(a,!1,null,!1)});else{h.xIncrement=null;h.colorCounter=0;t(this.parallelArrays,function(a){h[a+"Data"].length=0});if(z&&k>z){for(d=0;null===n&&dk||this.forceCrop))if(c[d-1]r)c=[],e=[];else if(c[0]r)h=this.cropData(this.xData,this.yData,v,r),c=h.xData,e=h.yData,h=h.start,p=!0;for(k=c.length|| +1;--k;)d=m?q(c[k])-q(c[k-1]):c[k]-c[k-1],0d&&this.requireSorting&&a.error(15);this.cropped=p;this.cropStart=h;this.processedXData=c;this.processedYData=e;this.closestPointRange=f},cropData:function(a,b,c,e){var d=a.length,p=0,g=d,f=J(this.cropShoulder,1),k;for(k=0;k=c){p=Math.max(0,k-f);break}for(c=k;ce){g=c+f;break}return{xData:a.slice(p,g),yData:b.slice(p,g),start:p,end:g}},generatePoints:function(){var a=this.options,b=a.data,c=this.data, +e,d=this.processedXData,g=this.processedYData,f=this.pointClass,k=d.length,q=this.cropStart||0,n,l=this.hasGroupedData,a=a.keys,m,v=[],r;c||l||(c=[],c.length=b.length,c=this.data=c);a&&l&&(this.options.keys=!1);for(r=0;r=g&&(c[l]||q)<=f,k&&q)if(k=n.length)for(;k--;)null!==n[k]&&(h[p++]=n[k]);else h[p++]=n;this.dataMin= +E(h);this.dataMax=F(h)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,d=this.yAxis,g=this.points,f=g.length,k=!!this.modifyValue,q=a.pointPlacement,n="between"===q||v(q),l=a.threshold,r=a.startFromThreshold?l:0,B,y,t,G,D=Number.MAX_VALUE;"between"===q&&(q=.5);v(q)&&(q*=J(a.pointRange||c.pointRange));for(a=0;a=C&&(K.isNull=!0);K.plotX=B=m(Math.min(Math.max(-1E5,c.translate(A,0,0,0,1,q,"flags"===this.type)),1E5));b&&this.visible&&!K.isNull&&E&&E[A]&&(G=this.getStackIndicator(G,A,this.index),F=E[A],C=F.points[G.key],y=C[0],C=C[1],y===r&&G.key===E[A].base&&(y=J(l,d.min)),d.positiveValuesOnly&&0>=y&&(y=null),K.total=K.stackTotal=F.total,K.percentage=F.total&&K.y/F.total*100,K.stackY=C,F.setOffset(this.pointXOffset||0,this.barW||0));K.yBottom=u(y)?d.translate(y,0,1,0,1): +null;k&&(C=this.modifyValue(C,K));K.plotY=y="number"===typeof C&&Infinity!==C?Math.min(Math.max(-1E5,d.translate(C,0,1,0,1)),1E5):void 0;K.isInside=void 0!==y&&0<=y&&y<=d.len&&0<=B&&B<=c.len;K.clientX=n?m(c.translate(A,0,0,0,1,q)):B;K.negative=K.y<(l||0);K.category=e&&void 0!==e[K.x]?e[K.x]:K.x;K.isNull||(void 0!==t&&(D=Math.min(D,Math.abs(B-t))),t=B);K.zone=this.zones.length&&K.getZone()}this.closestPointRangePx=D},getValidPoints:function(a,c){var e=this.chart;return b(a||this.points||[],function(a){return c&& +!e.isInsidePlot(a.plotX,a.plotY,e.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,e=b.renderer,d=b.inverted,p=this.clipBox,g=p||b.clipBox,f=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),k=b[f],q=b[f+"m"];k||(a&&(g.width=0,b[f+"m"]=q=e.clipRect(-99,d?-b.plotLeft:-b.plotTop,99,d?b.chartWidth:b.chartHeight)),b[f]=k=e.clipRect(g),k.count={length:0});a&&!k.count[this.index]&&(k.count[this.index]=!0,k.count.length+=1);!1!==c.clip&& +(this.group.clip(a||p?k:b.clipRect),this.markerGroup.clip(q),this.sharedClipKey=f);a||(k.count[this.index]&&(delete k.count[this.index],--k.count.length),0===k.count.length&&f&&b[f]&&(p||(b[f]=b[f].destroy()),b[f+"m"]&&(b[f+"m"]=b[f+"m"].destroy())))},animate:function(a){var b=this.chart,c=A(this.options.animation),e;a?this.setClip(c):(e=this.sharedClipKey,(a=b[e])&&a.animate({width:b.plotSizeX},c),b[e+"m"]&&b[e+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip(); +k(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,c,e,d,f,g=this.options.marker,k,q,n,l,m=this[this.specialGroup]||this.markerGroup,r=J(g.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(e=0;ed&&b.shadow));f&&(f.startX=c.xMap,f.isArea=c.isArea)})},applyZones:function(){var a= +this,b=this.chart,c=b.renderer,e=this.zones,d,f,g=this.clips||[],k,q=this.graph,n=this.area,l=Math.max(b.chartWidth,b.chartHeight),m=this[(this.zoneAxis||"y")+"Axis"],r,v,B=b.inverted,y,u,G,D,K=!1;e.length&&(q||n)&&m&&void 0!==m.min&&(v=m.reversed,y=m.horiz,q&&q.hide(),n&&n.hide(),r=m.getExtremes(),t(e,function(e,h){d=v?y?b.plotWidth:0:y?0:m.toPixels(r.min);d=Math.min(Math.max(J(f,d),0),l);f=Math.min(Math.max(Math.round(m.toPixels(J(e.value,r.max),!0)),0),l);K&&(d=f=m.toPixels(r.max));u=Math.abs(d- +f);G=Math.min(d,f);D=Math.max(d,f);m.isXAxis?(k={x:B?D:G,y:0,width:u,height:l},y||(k.x=b.plotHeight-k.x)):(k={x:0,y:B?D:G,width:l,height:u},y&&(k.y=b.plotWidth-k.y));B&&c.isVML&&(k=m.isXAxis?{x:0,y:v?G:D,height:k.width,width:b.chartWidth}:{x:k.y-b.plotLeft-b.spacingBox.x,y:0,width:k.height,height:b.chartHeight});g[h]?g[h].animate(k):(g[h]=c.clipRect(k),q&&a["zone-graph-"+h].clip(g[h]),n&&a["zone-area-"+h].clip(g[h]));K=e.value>r.max}),this.clips=g)},invertGroups:function(a){function b(){t(["group", +"markerGroup"],function(b){c[b]&&(e.renderer.isVML&&c[b].attr({width:c.yAxis.len,height:c.xAxis.len}),c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,e=c.chart,d;c.xAxis&&(d=C(e,"resize",b),C(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,e,d){var h=this[a],f=!h;f&&(this[a]=h=this.chart.renderer.g().attr({zIndex:e||.1}).add(d));h.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+ +" "+(this.options.className||""),!0);h.attr({visibility:c})[f?"attr":"animate"](this.getPlotBox());return h},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,e=a.options,d=!!a.animate&&b.renderer.isSVG&&A(e.animation).duration,f=a.visible?"inherit":"hidden",g=e.zIndex,k=a.hasRendered,q=b.seriesGroup,n=b.inverted;c=a.plotGroup("group", +"series",f,g,q);a.markerGroup=a.plotGroup("markerGroup","markers",f,g,q);d&&a.animate(!0);c.inverted=a.isCartesian?n:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(n);!1===e.clip||a.sharedClipKey||k||c.clip(b.clipRect);d&&a.animate();k||(a.animationTimeout=B(function(){a.afterAnimate()},d));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart, +b=this.isDirty||this.isDirtyData,c=this.group,e=this.xAxis,d=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:J(e&&e.left,a.plotLeft),translateY:J(d&&d.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,e=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:d?e.len-a.chartX+e.pos:a.chartY-e.pos},b)}, +buildKDTree:function(){function a(c,e,d){var h,f;if(f=c&&c.length)return h=b.kdAxisArray[e%d],c.sort(function(a,b){return a[h]-b[h]}),f=Math.floor(f/2),{point:c[f],left:a(c.slice(0,f),e+1,d),right:a(c.slice(f+1),e+1,d)}}this.buildingKdTree=!0;var b=this,c=-1q?"left":"right";l=0>q?"right":"left";b[n]&&(n=c(a,b[n],h+1,k),m=n[g]m;)n--; +this.updateParallelArrays(p,"splice",n,0,0);this.updateParallelArrays(p,n);h&&p.name&&(h[m]=p.name);k.splice(n,0,a);l&&(this.data.splice(n,0,null),this.processData());"point"===d.legendType&&this.generatePoints();c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(p,"shift"),k.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a,b,e){var d=this,f=d.data,g=f[a],k=d.points,h=d.chart,l=function(){k&&k.length===f.length&&k.splice(a,1);f.splice(a,1); +d.options.data.splice(a,1);d.updateParallelArrays(g||{series:d},"splice",a,1);g&&g.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&h.redraw()};c(e,h);b=y(b,!0);g?g.firePointEvent("remove",null,l):l()},remove:function(a,b,c){function e(){d.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();y(a,!0)&&f.redraw(b)}var d=this,f=d.chart;!1!==c?t(d,"remove",null,e):e()},update:function(a,b){var c=this,d=c.chart,f=c.userOptions,g=c.oldType||c.type,k=a.type||f.type||d.options.chart.type,h=J[g].prototype,n, +q=["group","markerGroup","dataLabelsGroup","navigatorSeries","baseSeries"],m=c.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(a).toString())return this.setData(a.data,b);if(k&&k!==g||void 0!==a.zIndex)q.length=0;l(q,function(a){q[a]=c[a];delete c[a]});a=e(f,m,{index:c.index,pointStart:c.xData[0]},{data:c.options.data},a);c.remove(!1,null,!1);for(n in h)c[n]=void 0;u(c,J[k||g].prototype);l(q,function(a){c[a]=q[a]});c.init(d,a);c.oldType=g;d.linkSeries();y(b,!0)&&d.redraw(!1)}}); +u(F.prototype,{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=e(this.userOptions,a);this.destroy(!0);this.init(c,u(a,{events:void 0}));c.isDirtyBox=!0;y(b,!0)&&c.redraw()},remove:function(a){for(var c=this.chart,e=this.coll,d=this.series,f=d.length;f--;)d[f]&&d[f].remove(!1);r(c.axes,this);r(c[e],this);b(c.options[e])?c.options[e].splice(this.options.index,1):delete c.options[e];l(c[e],function(a,b){a.options.index=b});this.destroy();c.isDirtyBox=!0;y(a,!0)&&c.redraw()}, +setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(M);(function(a){var C=a.color,A=a.each,F=a.map,E=a.pick,m=a.Series,f=a.seriesType;f("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(f){var l=[],m=[],t=this.xAxis,g=this.yAxis,d=g.stacks[this.stackKey],k={},b=this.index,e=g.series,v=e.length,y,n=E(g.options.reversedStacks,!0)?1:-1,D;f=f||this.points;if(this.options.stacking){for(D=0;Da&&u>f?(u=Math.max(a,f),g=2*f-u):uE&&g>f?(g=Math.max(E,f),u=2*f-g):g=Math.abs(d)&&.5a.closestPointRange*a.xAxis.transA,b=a.borderWidth=l(f.borderWidth,b?0:1),e=a.yAxis, +m=a.translatedThreshold=e.getThreshold(f.threshold),t=l(f.minPointLength,5),n=a.getColumnMetrics(),u=n.width,A=a.barW=Math.max(u,1+2*b),c=a.pointXOffset=n.offset;d.inverted&&(m-=.5);f.pointPadding&&(A=Math.ceil(A));r.prototype.translate.apply(a);F(a.points,function(b){var f=l(b.yBottom,m),g=999+Math.abs(f),g=Math.min(Math.max(-g,b.plotY),e.len+g),k=b.plotX+c,n=A,r=Math.min(g,f),v,y=Math.max(g,f)-r;Math.abs(y)t?f-t:m-(v? +t:0));b.barX=k;b.pointWidth=u;b.tooltipPos=d.inverted?[e.len+e.pos-d.plotLeft-g,a.xAxis.len-k-n/2,y]:[k+n/2,g+e.pos-d.plotTop,y];b.shapeType="rect";b.shapeArgs=a.crispCol.apply(a,b.isNull?[k,m,n,0]:[k,r,n,y])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,d){var g=this.options,b,e=this.pointAttrToOptions||{};b=e.stroke||"borderColor";var l=e["stroke-width"]|| +"borderWidth",m=a&&a.color||this.color,n=a[b]||g[b]||this.color||m,r=a[l]||g[l]||this[l]||0,e=g.dashStyle;a&&this.zones.length&&(m=a.getZone(),m=a.options.color||m&&m.color||this.color);d&&(a=f(g.states[d],a.options.states&&a.options.states[d]||{}),d=a.brightness,m=a.color||void 0!==d&&A(m).brighten(a.brightness).get()||m,n=a[b]||n,r=a[l]||r,e=a.dashStyle||e);b={fill:m,stroke:n,"stroke-width":r};e&&(b.dashstyle=e);return b},drawPoints:function(){var a=this,d=this.chart,k=a.options,b=d.renderer,e= +k.animationLimit||250,l;F(a.points,function(g){var n=g.graphic;if(m(g.plotY)&&null!==g.y){l=g.shapeArgs;if(n)n[d.pointCountu;++u)t=l[u],a=2>u||2===u&&/%$/.test(t),l[u]=A(t,[f,E,r,l[2]][u])+(a?m:0);l[3]>l[2]&&(l[3]=l[2]);return l}}})(M); +(function(a){var C=a.addEvent,A=a.defined,F=a.each,E=a.extend,m=a.inArray,f=a.noop,l=a.pick,r=a.Point,u=a.Series,t=a.seriesType,g=a.setAnimation;t("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:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var d=this,b=d.points,e=d.startAngleRad;a||(F(b,function(a){var b=a.graphic,f=a.shapeArgs;b&&(b.attr({r:a.startR||d.center[3]/2,start:e,end:e}),b.animate({r:f.r,start:f.start,end:f.end},d.options.animation))}),d.animate=null)},updateTotals:function(){var a,f=0,b=this.points,e=b.length,g, +l=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?m-=2*Math.PI:m<-Math.PI/2&&(m+=2*Math.PI);z.slicedTranslation={translateX:Math.round(Math.cos(m)*e),translateY:Math.round(Math.sin(m)*e)};n=Math.cos(m)*a[2]/2;q=Math.sin(m)*a[2]/2;z.tooltipPos=[a[0]+.7*n,a[1]+.7*q];z.half=m<-Math.PI/2||m>Math.PI/2?1:0;z.angle=m;g=Math.min(f,z.labelDistance/5);z.labelPos=[a[0]+n+Math.cos(m)*z.labelDistance,a[1]+q+Math.sin(m)*z.labelDistance,a[0]+n+Math.cos(m)* +g,a[1]+q+Math.sin(m)*g,a[0]+n,a[1]+q,0>z.labelDistance?"center":z.half?"right":"left",m]}},drawGraph:null,drawPoints:function(){var a=this,f=a.chart.renderer,b,e,g,l,n=a.options.shadow;n&&!a.shadowGroup&&(a.shadowGroup=f.g("shadow").add(a.group));F(a.points,function(d){if(!d.isNull){e=d.graphic;l=d.shapeArgs;b=d.getTranslate();var k=d.shadowGroup;n&&!k&&(k=d.shadowGroup=f.g("shadow").add(a.shadowGroup));k&&k.attr(b);g=a.pointAttribs(d,d.selected&&"select");e?e.setRadialReference(a.center).attr(g).animate(E(l, +b)):(d.graphic=e=f[d.shapeType](l).setRadialReference(a.center).attr(b).add(a.group),d.visible||e.attr({visibility:"hidden"}),e.attr(g).attr({"stroke-linejoin":"round"}).shadow(n,k));e.addClass(d.getClassName())}})},searchPoint:f,sortByAngle:function(a,f){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*f})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:f},{init:function(){r.prototype.init.apply(this,arguments);var a=this,f;a.name= +l(a.name,"Slice");f=function(b){a.slice("select"===b.type)};C(a,"select",f);C(a,"unselect",f);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,f){var b=this,e=b.series,d=e.chart,g=e.options.ignoreHiddenPoint;f=l(f,g);a!==b.visible&&(b.visible=b.options.visible=a=void 0===a?!b.visible:a,e.options.data[m(b,e.data)]=b.options,F(["graphic","dataLabel","connector","shadowGroup"],function(e){if(b[e])b[e][a?"show":"hide"](!0)}),b.legendItem&&d.legend.colorizeItem(b, +a),a||"hover"!==b.state||b.setState(""),g&&(e.isDirty=!0),f&&d.redraw())},slice:function(a,f,b){var e=this.series;g(b,e.chart);l(f,!0);this.sliced=this.options.sliced=A(a)?a:!this.sliced;e.options.data[m(this,e.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(a){var d=this.shapeArgs;return this.sliced||!this.visible? +[]:this.series.chart.renderer.symbols.arc(d.x,d.y,d.r+a,d.r+a,{innerR:this.shapeArgs.r,start:d.start,end:d.end})}})})(M);(function(a){var C=a.addEvent,A=a.arrayMax,F=a.defined,E=a.each,m=a.extend,f=a.format,l=a.map,r=a.merge,u=a.noop,t=a.pick,g=a.relativeLength,d=a.Series,k=a.seriesTypes,b=a.stableSort;a.distribute=function(a,d){function e(a,b){return a.target-b.target}var f,g=!0,k=a,c=[],m;m=0;for(f=a.length;f--;)m+=a[f].size;if(m>d){b(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(m=f=0;m<= +d;)m+=a[f].size,f++;c=a.splice(f-1,a.length)}b(a,e);for(a=l(a,function(a){return{size:a.size,targets:[a.target]}});g;){for(f=a.length;f--;)g=a[f],m=(Math.min.apply(0,g.targets)+Math.max.apply(0,g.targets))/2,g.pos=Math.min(Math.max(0,m-g.size/2),d-g.size);f=a.length;for(g=!1;f--;)0a[f].pos&&(a[f-1].size+=a[f].size,a[f-1].targets=a[f-1].targets.concat(a[f].targets),a[f-1].pos+a[f-1].size>d&&(a[f-1].pos=d-a[f-1].size),a.splice(f,1),g=!0)}f=0;E(a,function(a){var b=0;E(a.targets, +function(){k[f].pos=a.pos+b;b+=k[f].size;f++})});k.push.apply(k,c);b(k,e)};d.prototype.drawDataLabels=function(){var b=this,d=b.options,g=d.dataLabels,k=b.points,l,m,c=b.hasRendered||0,u,q,B=t(g.defer,!!d.animation),A=b.chart.renderer;if(g.enabled||b._hasPointLabels)b.dlProcessOptions&&b.dlProcessOptions(g),q=b.plotGroup("dataLabelsGroup","data-labels",B&&!c?"hidden":"visible",g.zIndex||6),B&&(q.attr({opacity:+c}),c||C(b,"afterAnimate",function(){b.visible&&q.show(!0);q[d.animation?"animate":"attr"]({opacity:1}, +{duration:200})})),m=g,E(k,function(c){var e,k=c.dataLabel,n,h,p=c.connector,v=!k,B;l=c.dlOptions||c.options&&c.options.dataLabels;if(e=t(l&&l.enabled,m.enabled)&&null!==c.y)g=r(m,l),n=c.getLabelConfig(),u=g.format?f(g.format,n):g.formatter.call(n,g),B=g.style,n=g.rotation,B.color=t(g.color,B.color,b.color,"#000000"),"contrast"===B.color&&(c.contrastColor=A.getContrast(c.color||b.color),B.color=g.inside||0>t(c.labelDistance,g.distance)||d.stacking?c.contrastColor:"#000000"),d.cursor&&(B.cursor=d.cursor), +h={fill:g.backgroundColor,stroke:g.borderColor,"stroke-width":g.borderWidth,r:g.borderRadius||0,rotation:n,padding:g.padding,zIndex:1},a.objectEach(h,function(a,b){void 0===a&&delete h[b]});!k||e&&F(u)?e&&F(u)&&(k?h.text=u:(k=c.dataLabel=A[n?"text":"label"](u,0,-9999,g.shape,null,null,g.useHTML,null,"data-label"),k.addClass("highcharts-data-label-color-"+c.colorIndex+" "+(g.className||"")+(g.useHTML?"highcharts-tracker":""))),k.attr(h),k.css(B).shadow(g.shadow),k.added||k.add(q),b.alignDataLabel(c, +k,g,null,v)):(c.dataLabel=k=k.destroy(),p&&(c.connector=p.destroy()))})};d.prototype.alignDataLabel=function(a,b,d,f,g){var e=this.chart,c=e.inverted,k=t(a.plotX,-9999),l=t(a.plotY,-9999),n=b.getBBox(),r,p=d.rotation,v=d.align,u=this.visible&&(a.series.forceDL||e.isInsidePlot(k,Math.round(l),c)||f&&e.isInsidePlot(k,c?f.x+1:f.y+f.height-1,c)),y="justify"===t(d.overflow,"justify");if(u&&(r=d.style.fontSize,r=e.renderer.fontMetrics(r,b).b,f=m({x:c?this.yAxis.len-l:k,y:Math.round(c?this.xAxis.len-k:l), +width:0,height:0},f),m(d,{width:n.width,height:n.height}),p?(y=!1,k=e.renderer.rotCorr(r,p),k={x:f.x+d.x+f.width/2+k.x,y:f.y+d.y+{top:0,middle:.5,bottom:1}[d.verticalAlign]*f.height},b[g?"attr":"animate"](k).attr({align:v}),l=(p+720)%360,l=180l,"left"===v?k.y-=l?n.height:0:"center"===v?(k.x-=n.width/2,k.y-=n.height/2):"right"===v&&(k.x-=n.width,k.y-=l?0:n.height)):(b.align(d,null,f),k=b.alignAttr),y?a.isLabelJustified=this.justifyDataLabel(b,d,k,n,f,g):t(d.crop,!0)&&(u=e.isInsidePlot(k.x, +k.y)&&e.isInsidePlot(k.x+n.width,k.y+n.height)),d.shape&&!p))b[g?"attr":"animate"]({anchorX:c?e.plotWidth-a.plotY:a.plotX,anchorY:c?e.plotHeight-a.plotX:a.plotY});u||(b.attr({y:-9999}),b.placed=!1)};d.prototype.justifyDataLabel=function(a,b,d,f,g,k){var c=this.chart,e=b.align,l=b.verticalAlign,m,n,p=a.box?0:a.padding||0;m=d.x+p;0>m&&("right"===e?b.align="left":b.x=-m,n=!0);m=d.x+f.width-p;m>c.plotWidth&&("left"===e?b.align="right":b.x=c.plotWidth-m,n=!0);m=d.y+p;0>m&&("bottom"===l?b.verticalAlign= +"top":b.y=-m,n=!0);m=d.y+f.height-p;m>c.plotHeight&&("top"===l?b.verticalAlign="bottom":b.y=c.plotHeight-m,n=!0);n&&(a.placed=!k,a.align(b,null,g));return n};k.pie&&(k.pie.prototype.drawDataLabels=function(){var b=this,f=b.data,g,k=b.chart,l=b.options.dataLabels,m=t(l.connectorPadding,10),c=t(l.connectorWidth,1),r=k.plotWidth,q=k.plotHeight,u,C=b.center,p=C[2]/2,z=C[1],I,L,h,w,M=[[],[]],H,O,Q,R,x=[0,0,0,0];b.visible&&(l.enabled||b._hasPointLabels)&&(E(f,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&& +(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),d.prototype.drawDataLabels.apply(b),E(f,function(a){a.dataLabel&&a.visible&&(M[a.half].push(a),a.dataLabel._pos=null)}),E(M,function(c,d){var e,f,n=c.length,v=[],u;if(n)for(b.sortByAngle(c,d-.5),0g.bottom-2?e:O,d,g),I._attr={visibility:Q,align:h[6]}, +I._pos={x:H+l.x+({left:m,right:-m}[h[6]]||0),y:O+l.y-10},h.x=H,h.y=O,t(l.crop,!0)&&(L=I.getBBox().width,e=null,H-Lr-m&&(e=Math.round(H+L-r+m),x[1]=Math.max(e,x[1])),0>O-w/2?x[0]=Math.max(Math.round(-O+w/2),x[0]):O+w/2>q&&(x[2]=Math.max(Math.round(O+w/2-q),x[2])),I.sideOverflow=e)}),0===A(x)||this.verifyDataLabelOverflow(x))&&(this.placeDataLabels(),c&&E(this.points,function(a){var e;u=a.connector;if((I=a.dataLabel)&&I._pos&&a.visible&&0t(this.translatedThreshold,c.yAxis.len)),n=t(f.inside,!!this.options.stacking);l&&(g=r(l),0>g.y&&(g.height+=g.y,g.y=0),l=g.y+g.height-c.yAxis.len,0a+d||e+gb+c||f+kthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,e;d&&l(d,function(a){a.setState()});l("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],h=(b.pointRange||0)/2,k=b.getExtremes(),l=b.toValue(g-f,!0)+h,h=b.toValue(g+ +b.len-f,!0)-h,m=h=f(m.minWidth,0)&&this.chartHeight>=f(m.minHeight,0)}).call(this)&& +l.push(a._id)};C.prototype.currentOptions=function(f){function r(f,d,k,b){var e;a.objectEach(f,function(a,g){if(!b&&-1parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.14",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:p,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:E,isWebKit:/AppleWebKit/.test(B),isFirefox:g,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:r,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){var D=[],B=a.charts,G=a.doc,E=a.win;a.error=function(r,g){r=a.isNumber(r)?"Highcharts error #"+ +r+": www.highcharts.com/errors/"+r:r;if(g)throw Error(r);E.console&&console.log(r)};a.Fx=function(a,g,p){this.options=g;this.elem=a;this.prop=p};a.Fx.prototype={dSetter:function(){var a=this.paths[0],g=this.paths[1],p=[],t=this.now,v=a.length,u;if(1===t)p=this.toD;else if(v===g.length&&1>t)for(;v--;)u=parseFloat(a[v]),p[v]=isNaN(u)?a[v]:t*parseFloat(g[v]-u)+u;else p=g;this.elem.attr("d",p,null,!0)},update:function(){var a=this.elem,g=this.prop,p=this.now,t=this.options.step;if(this[g+"Setter"])this[g+ +"Setter"]();else a.attr?a.element&&a.attr(g,p,null,!0):a.style[g]=p+this.unit;t&&t.call(a,p,this)},run:function(a,g,p){var t=this,r=function(a){return r.stopped?!1:t.step(a)},u;this.startTime=+new Date;this.start=a;this.end=g;this.unit=p;this.now=this.start;this.pos=0;r.elem=this.elem;r.prop=this.prop;r()&&1===D.push(r)&&(r.timerId=setInterval(function(){for(u=0;u=l+this.startTime?(this.now=this.end,this.pos=1,this.update(),p=e[this.prop]=!0,a.objectEach(e,function(a){!0!==a&&(p=!1)}),p&&u&&u.call(v),r=!1):(this.pos=t.easing((g-this.startTime)/l),this.now=this.start+(this.end-this.start)*this.pos,this.update(),r=!0);return r},initPath:function(r,g,p){function t(a){var b,m;for(c=a.length;c--;)b="M"===a[c]||"L"===a[c],m=/[a-zA-Z]/.test(a[c+3]),b&&m&&a.splice(c+1,0,a[c+1],a[c+2],a[c+1],a[c+2])} +function v(a,b){for(;a.lengthu?"AM":"PM",P:12>u?"am":"pm",S:c(v.getSeconds()),L:c(Math.round(g%1E3),3)},a.dateFormats);a.objectEach(t,function(a,f){for(;-1!==r.indexOf("%"+f);)r=r.replace("%"+f,"function"===typeof a?a(g):a)});return p?r.substr(0, +1).toUpperCase()+r.substr(1):r};a.formatSingle=function(r,g){var p=/\.([0-9])/,t=a.defaultOptions.lang;/f$/.test(r)?(p=(p=r.match(p))?p[1]:-1,null!==g&&(g=a.numberFormat(g,p,t.decimalPoint,-1=p&&(g=[1/p])));for(t=0;t=r||!v&&u<=(g[t]+(g[t+1]||g[t]))/2);t++);return l=a.correctFloat(l*p,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort= +function(a,g){var p=a.length,t,v;for(v=0;vp&&(p=a[g]);return p};a.destroyObjectProperties=function(r,g){a.objectEach(r,function(a,t){a&&a!==g&&a.destroy&&a.destroy();delete r[t]})};a.discardElement=function(r){var g=a.garbageBin;g||(g=a.createElement("div")); +r&&g.appendChild(r);g.innerHTML=""};a.correctFloat=function(a,g){return parseFloat(a.toPrecision(g||14))};a.setAnimation=function(r,g){g.renderer.globalAnimation=a.pick(r,g.options.chart.animation,!0)};a.animObject=function(r){return a.isObject(r)?a.merge(r):{duration:r?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(r,g,p,t){r=+r||0;g=+g;var v=a.defaultOptions.lang,u=(r.toString().split(".")[1]||"").split("e")[0].length, +l,e,k=r.toString().split("e");-1===g?g=Math.min(u,20):a.isNumber(g)||(g=2);e=(Math.abs(k[1]?k[0]:r)+Math.pow(10,-Math.max(g,u)-1)).toFixed(g);u=String(a.pInt(e));l=3r?"-":"")+(l?u.substr(0,l)+t:"");r+=u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+t);g&&(r+=p+e.slice(-g));k[1]&&(r+="e"+k[1]);return r};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(r,g,p){if("width"===g)return Math.min(r.offsetWidth, +r.scrollWidth)-a.getStyle(r,"padding-left")-a.getStyle(r,"padding-right");if("height"===g)return Math.min(r.offsetHeight,r.scrollHeight)-a.getStyle(r,"padding-top")-a.getStyle(r,"padding-bottom");if(r=E.getComputedStyle(r,void 0))r=r.getPropertyValue(g),a.pick(p,!0)&&(r=a.pInt(r));return r};a.inArray=function(a,g){return g.indexOf?g.indexOf(a):[].indexOf.call(g,a)};a.grep=function(a,g){return[].filter.call(a,g)};a.find=function(a,g){return[].find.call(a,g)};a.map=function(a,g){for(var p=[],t=0,v= +a.length;t>16,(g&65280)>> +8,g&255,1]:4===p&&(t=[(g&3840)>>4|(g&3840)>>8,(g&240)>>4|g&240,(g&15)<<4|g&15,1])),!t)for(v=this.parsers.length;v--&&!t;)u=this.parsers[v],(p=u.regex.exec(g))&&(t=u.parse(p));this.rgba=t||[]},get:function(a){var g=this.input,t=this.rgba,v;this.stops?(v=E(g),v.stops=[].concat(v.stops),D(this.stops,function(g,l){v.stops[l]=[v.stops[l][0],g.get(a)]})):v=t&&B(t[0])?"rgb"===a||!a&&1===t[3]?"rgb("+t[0]+","+t[1]+","+t[2]+")":"a"===a?t[3]:"rgba("+t.join(",")+")":g;return v},brighten:function(a){var g,t=this.rgba; +if(this.stops)D(this.stops,function(g){g.brighten(a)});else if(B(a)&&0!==a)for(g=0;3>g;g++)t[g]+=r(255*a),0>t[g]&&(t[g]=0),255F.width)F={width:0,height:0}}else F=this.htmlGetBBox();b.isSVG&&(a=F.width,b=F.height,m&&"11px"===m.fontSize&& +17===Math.round(b)&&(F.height=b=14),h&&(F.width=Math.abs(b*Math.sin(w))+Math.abs(a*Math.cos(w)),F.height=Math.abs(b*Math.cos(w))+Math.abs(a*Math.sin(w))));if(z&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a, +h,b){"string"===typeof a?b.setAttribute(h,a):a&&this.colorGradient(a,h,b)},visibilitySetter:function(a,h,b){"inherit"===a?b.removeAttribute(h):this[h]!==a&&b.setAttribute(h,a);this[h]=a},zIndexSetter:function(a,b){var w=this.renderer,n=this.parentGroup,m=(n||w).element||w.box,F,d=this.element,c;F=this.added;var f;u(a)&&(d.zIndex=a,a=+a,this[b]===a&&(F=!1),this[b]=a);if(F){(a=this.zIndex)&&n&&(n.handleZ=!0);b=m.childNodes;for(f=0;fa||!u(a)&&u(F)||0> +a&&!u(F)&&m!==w.box)&&(m.insertBefore(d,n),c=!0);c||m.appendChild(d)}return c},_defaultSetter:function(a,h,b){b.setAttribute(h,a)}});D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,h){this[h]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,h,b){this[h]=a;this.stroke&&this["stroke-width"]? +(D.prototype.fillSetter.call(this,this.stroke,"stroke",b),b.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===h&&0===a&&this.hasStroke&&(b.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};d(B.prototype,{Element:D,SVG_NS:Q,init:function(a,h,b,w,n,d){var F;w=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(w));F=w.element;a.appendChild(F);-1===a.innerHTML.indexOf("xmlns")&& +r(F,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=F;this.boxWrapper=w;this.alignedObjects=[];this.url=(m||K)&&k.getElementsByTagName("base").length?O.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(k.createTextNode("Created with Highstock 5.0.14"));this.defs=this.createElement("defs").add();this.allowHTML=d;this.forExport=n;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount= +0;this.setSize(h,b,!1);var c;m&&a.getBoundingClientRect&&(h=function(){t(a,{left:0,top:0});c=a.getBoundingClientRect();t(a,{left:Math.ceil(c.left)-c.left+"px",top:Math.ceil(c.top)-c.top+"px"})},h(),this.unSubPixelFix=G(O,"resize",h))},getStyle:function(a){return this.style=d({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a= +this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var h=new this.Element;h.init(this,a);return h},draw:A,getRadialAttr:function(a,h){return{cx:a[0]-a[2]/2+h.cx*a[2],cy:a[1]-a[2]/2+h.cy*a[2],r:h.r*a[2]}},getSpanWidth:function(a,h){var b=a.getBBox(!0).width;!L&&this.forExport&&(b=this.measureSpanWidth(h.firstChild.data, +a.styles));return b},applyEllipsis:function(a,h,b,w){var n=a.rotation,m=b,c,d=0,F=b.length,f=function(a){h.removeChild(h.firstChild);a&&h.appendChild(k.createTextNode(a))},y;a.rotation=0;m=this.getSpanWidth(a,h);if(y=m>w){for(;d<=F;)c=Math.ceil((d+F)/2),m=b.substring(0,c)+"\u2026",f(m),m=this.getSpanWidth(a,h),d===F?d=F+1:m>w?F=c-1:d=c;0===F&&f("")}a.rotation=n;return y},buildText:function(a){var b=a.element,w=this,n=w.forExport,m=H(a.textStr,"").toString(),c=-1!==m.indexOf("\x3c"),d=b.childNodes, +F,y,e,z,q=r(b,"x"),A=a.styles,x=a.textWidth,J=A&&A.lineHeight,l=A&&A.textOutline,P=A&&"ellipsis"===A.textOverflow,g=A&&"nowrap"===A.whiteSpace,K=A&&A.fontSize,I,v,p=d.length,A=x&&!a.added&&this.box,u=function(a){var n;n=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:K||w.style.fontSize||12;return J?h(J):w.fontMetrics(n,a.getAttribute("style")?a:b).h};I=[m,P,g,J,l,K,x].join();if(I!==a.textCache){for(a.textCache=I;p--;)b.removeChild(d[p]);c||l||P||x||-1!==m.indexOf(" ")?(F=/<.*class="([^"]+)".*>/, +y=/<.*style="([^"]+)".*>/,e=/<.*href="([^"]+)".*>/,A&&A.appendChild(b),m=c?m.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[m],m=C(m,function(a){return""!==a}),f(m,function(h,m){var c,d=0;h=h.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");c=h.split("|||");f(c,function(h){if(""!== +h||1===c.length){var f={},A=k.createElementNS(w.SVG_NS,"tspan"),H,J;F.test(h)&&(H=h.match(F)[1],r(A,"class",H));y.test(h)&&(J=h.match(y)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),r(A,"style",J));e.test(h)&&!n&&(r(A,"onclick",'location.href\x3d"'+h.match(e)[1]+'"'),t(A,{cursor:"pointer"}));h=(h.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==h){A.appendChild(k.createTextNode(h));d?f.dx=0:m&&null!==q&&(f.x=q);r(A,f);b.appendChild(A);!d&&v&&(!L&&n&&t(A,{display:"block"}), +r(A,"dy",u(A)));if(x){f=h.replace(/([^\^])-/g,"$1- ").split(" ");H=1x,void 0===z&&(z=h),h&&1!==f.length?(A.removeChild(A.firstChild),l.unshift(f.pop())):(f=l,l=[],f.length&&!g&&(A=k.createElementNS(Q,"tspan"),r(A,{dy:R,x:q}),J&&r(A,"style",J),b.appendChild(A)),C>x&&(x=C)),f.length&&A.appendChild(k.createTextNode(f.join(" ").replace(/- /g, +"-")));a.rotation=K}d++}}});v=v||b.childNodes.length}),z&&a.attr("title",a.textStr),A&&A.removeChild(b),l&&a.applyTextOutline&&a.applyTextOutline(l)):b.appendChild(k.createTextNode(m.replace(/</g,"\x3c").replace(/>/g,"\x3e")))}},getContrast:function(a){a=p(a).rgba;return 510Math.abs(n.end-n.start-2*Math.PI));var y=Math.cos(m),e=Math.sin(m),F=Math.cos(f),f=Math.sin(f);n=.001>n.end-m-Math.PI?0:1;c=["M",a+c*y,h+d*e,"A",c,d,0,n,1,a+c*F,h+d*f];u(b)&&c.push(w?"M":"L",a+b* +F,h+b*f,"A",b,b,0,n,0,a+b*y,h+b*e);c.push(w?"":"Z");return c},callout:function(a,h,b,w,n){var m=Math.min(n&&n.r||0,b,w),c=m+6,d=n&&n.anchorX;n=n&&n.anchorY;var f;f=["M",a+m,h,"L",a+b-m,h,"C",a+b,h,a+b,h,a+b,h+m,"L",a+b,h+w-m,"C",a+b,h+w,a+b,h+w,a+b-m,h+w,"L",a+m,h+w,"C",a,h+w,a,h+w,a,h+w-m,"L",a,h+m,"C",a,h,a,h,a+m,h];d&&d>b?n>h+c&&nd?n>h+c&&nw&&d>a+c&&dn&&d>a+c&&da?a+3:Math.round(1.2*a);return{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,h,b){var w=a;h&&b&&(w=Math.max(w*Math.cos(h*l),4));return{x:-a/3*Math.sin(h*l),y:w}},label:function(h,b,n,m,c,e,A,k,z){var L=this,q=L.g("button"!==z&&"label"),H=q.text=L.text("",0,0,A).attr({zIndex:1}),x,F,J=0,l=3,C=0,P,g,K,I,t,Q={},v,p,r=/^url\((.*?)\)$/.test(m),R=r,N,U,T,O;z&&q.addClass("highcharts-"+z);R=r;N=function(){return(v||0)%2/2};U=function(){var a=H.element.style,h={};F=(void 0===P||void 0===g||t)&&u(H.textStr)&& +H.getBBox();q.width=(P||F.width||0)+2*l+C;q.height=(g||F.height||0)+2*l;p=l+L.fontMetrics(a&&a.fontSize,H).b;R&&(x||(q.box=x=L.symbols[m]||r?L.symbol(m):L.rect(),x.addClass(("button"===z?"":"highcharts-label-box")+(z?" highcharts-"+z+"-box":"")),x.add(q),a=N(),h.x=a,h.y=(k?-p:0)+a),h.width=Math.round(q.width),h.height=Math.round(q.height),x.attr(d(h,Q)),Q={})};T=function(){var a=C+l,h;h=k?0:p;u(P)&&F&&("center"===t||"right"===t)&&(a+={center:.5,right:1}[t]*(P-F.width));if(a!==H.x||h!==H.y)H.attr("x", +a),void 0!==h&&H.attr("y",h);H.x=a;H.y=h};O=function(a,h){x?x.attr(a,h):Q[a]=h};q.onAdd=function(){H.add(q);q.attr({text:h||0===h?h:"",x:b,y:n});x&&u(c)&&q.attr({anchorX:c,anchorY:e})};q.widthSetter=function(h){P=a.isNumber(h)?h:null};q.heightSetter=function(a){g=a};q["text-alignSetter"]=function(a){t=a};q.paddingSetter=function(a){u(a)&&a!==l&&(l=q.padding=a,T())};q.paddingLeftSetter=function(a){u(a)&&a!==C&&(C=a,T())};q.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==J&&(J=a,F&&q.attr({x:K}))}; +q.textSetter=function(a){void 0!==a&&H.textSetter(a);U();T()};q["stroke-widthSetter"]=function(a,h){a&&(R=!0);v=this["stroke-width"]=a;O(h,a)};q.strokeSetter=q.fillSetter=q.rSetter=function(a,h){"r"!==h&&("fill"===h&&a&&(R=!0),q[h]=a);O(h,a)};q.anchorXSetter=function(a,h){c=q.anchorX=a;O(h,Math.round(a)-N()-K)};q.anchorYSetter=function(a,h){e=q.anchorY=a;O(h,a-I)};q.xSetter=function(a){q.x=a;J&&(a-=J*((P||F.width)+2*l));K=Math.round(a);q.attr("translateX",K)};q.ySetter=function(a){I=q.y=Math.round(a); +q.attr("translateY",I)};var B=q.css;return d(q,{css:function(a){if(a){var h={};a=y(a);f(q.textProps,function(b){void 0!==a[b]&&(h[b]=a[b],delete a[b])});H.css(h)}return B.call(q,a)},getBBox:function(){return{width:F.width+2*l,height:F.height+2*l,x:F.x-l,y:F.y-l}},shadow:function(a){a&&(U(),x&&x.shadow(a));return q},destroy:function(){w(q.element,"mouseenter");w(q.element,"mouseleave");H&&(H=H.destroy());x&&(x=x.destroy());D.prototype.destroy.call(q);q=L=U=T=O=null}})}});a.Renderer=B})(M);(function(a){var D= +a.attr,B=a.createElement,G=a.css,E=a.defined,r=a.each,g=a.extend,p=a.isFirefox,t=a.isMS,v=a.isWebKit,u=a.pInt,l=a.SVGRenderer,e=a.win,k=a.wrap;g(a.SVGElement.prototype,{htmlCss:function(a){var d=this.element;if(d=a&&"SPAN"===d.tagName&&a.width)delete a.width,this.textWidth=d,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=g(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position= +"absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,d=this.element,e=this.translateX||0,k=this.translateY||0,c=this.x||0,q=this.y||0,l=this.textAlign||"left",m={left:0,center:.5,right:1}[l],J=this.styles;G(d,{marginLeft:e,marginTop:k});this.shadows&&r(this.shadows,function(a){G(a,{marginLeft:e+1,marginTop:k+1})});this.inverted&&r(d.childNodes,function(b){a.invertChild(b,d)});if("SPAN"===d.tagName){var b= +this.rotation,z=u(this.textWidth),g=J&&J.whiteSpace,y=[b,l,d.innerHTML,this.textWidth,this.textAlign].join();y!==this.cTT&&(J=a.fontMetrics(d.style.fontSize).b,E(b)&&this.setSpanRotation(b,m,J),G(d,{width:"",whiteSpace:g||"nowrap"}),d.offsetWidth>z&&/[ \-]/.test(d.textContent||d.innerText)&&G(d,{width:z+"px",display:"block",whiteSpace:g||"normal"}),this.getSpanCorrection(d.offsetWidth,J,m,b,l));G(d,{left:c+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});v&&(J=d.offsetHeight);this.cTT=y}}else this.alignOnAdd= +!0},setSpanRotation:function(a,d,k){var f={},c=t?"-ms-transform":v?"-webkit-transform":p?"MozTransform":e.opera?"-o-transform":"";f[c]=f.transform="rotate("+a+"deg)";f[c+(p?"Origin":"-origin")]=f.transformOrigin=100*d+"% "+k+"px";G(this.element,f)},getSpanCorrection:function(a,d,e){this.xCorr=-a*e;this.yCorr=-d}});g(l.prototype,{html:function(a,d,e){var f=this.createElement("span"),c=f.element,q=f.renderer,x=q.isSVG,m=function(a,b){r(["opacity","visibility"],function(m){k(a,m+"Setter",function(a, +m,c,n){a.call(this,m,c,n);b[c]=m})})};f.textSetter=function(a){a!==c.innerHTML&&delete this.bBox;c.innerHTML=this.textStr=a;f.htmlUpdateTransform()};x&&m(f,f.element.style);f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(a,b){"align"===b&&(b="textAlign");f[b]=a;f.htmlUpdateTransform()};f.attr({text:a,x:Math.round(d),y:Math.round(e)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});c.style.whiteSpace="nowrap";f.css=f.htmlCss;x&&(f.add=function(a){var b, +d=q.box.parentNode,e=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)e.push(a),a=a.parentGroup;r(e.reverse(),function(a){var c,n=D(a.element,"class");n&&(n={className:n});b=a.div=a.div||B("div",n,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},b||d);c=b.style;g(a,{classSetter:function(a){this.element.setAttribute("class",a);b.className=a},on:function(){e[0].div&&f.on.apply({element:e[0].div}, +arguments);return a},translateXSetter:function(b,h){c.left=b+"px";a[h]=b;a.doTransform=!0},translateYSetter:function(b,h){c.top=b+"px";a[h]=b;a.doTransform=!0}});m(a,c)})}}else b=d;b.appendChild(c);f.added=!0;f.alignOnAdd&&f.htmlUpdateTransform();return f});return f}})})(M);(function(a){var D,B,G=a.createElement,E=a.css,r=a.defined,g=a.deg2rad,p=a.discardElement,t=a.doc,v=a.each,u=a.erase,l=a.extend;D=a.extendClass;var e=a.isArray,k=a.isNumber,f=a.isObject,d=a.merge;B=a.noop;var x=a.pick,C=a.pInt, +c=a.SVGElement,q=a.SVGRenderer,I=a.win;a.svg||(B={docMode8:t&&8===t.documentMode,init:function(a,c){var b=["\x3c",c,' filled\x3d"f" stroked\x3d"f"'],m=["position: ","absolute",";"],d="div"===c;("shape"===c||d)&&m.push("left:0;top:0;width:1px;height:1px;");m.push("visibility: ",d?"hidden":"visible");b.push(' style\x3d"',m.join(""),'"/\x3e');c&&(b=d||"span"===c||"img"===c?b.join(""):a.prepVML(b),this.element=G(b));this.renderer=a},add:function(a){var m=this.renderer,b=this.element,c=m.box,d=a&&a.inverted, +c=a?a.element||a:c;a&&(this.parentGroup=a);d&&m.invertChild(b,c);c.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:c.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,c=Math.cos(a*g),b=Math.sin(a*g);E(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",c,", M12\x3d",-b,", M21\x3d",b,", M22\x3d", +c,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,c,b,d,f){var m=d?Math.cos(d*g):1,e=d?Math.sin(d*g):0,n=x(this.elemHeight,this.element.offsetHeight),q;this.xCorr=0>m&&-a;this.yCorr=0>e&&-n;q=0>m*e;this.xCorr+=e*c*(q?1-b:b);this.yCorr-=m*c*(d?q?b:1-b:1);f&&"left"!==f&&(this.xCorr-=a*b*(0>m?-1:1),d&&(this.yCorr-=n*b*(0>e?-1:1)),E(this.element,{textAlign:f}))},pathToVML:function(a){for(var m=a.length,b=[];m--;)k(a[m])?b[m]=Math.round(10*a[m])-5:"Z"===a[m]?b[m]="x": +(b[m]=a[m],!a.isArc||"wa"!==a[m]&&"at"!==a[m]||(b[m+5]===b[m+7]&&(b[m+7]+=a[m+7]>a[m+5]?1:-1),b[m+6]===b[m+8]&&(b[m+8]+=a[m+8]>a[m+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var m=this,b;a?(b=a.members,u(b,m),b.push(m),m.destroyClip=function(){u(b,m)},a=a.getCSS(m)):(m.destroyClip&&m.destroyClip(),a={clip:m.docMode8?"inherit":"rect(auto)"});return m.css(a)},css:c.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&p(a)},destroy:function(){this.destroyClip&&this.destroyClip();return c.prototype.destroy.apply(this)}, +on:function(a,c){this.element["on"+a]=function(){var a=I.event;a.target=a.srcElement;c(a)};return this},cutOffPath:function(a,c){var b;a=a.split(/[ ,]/);b=a.length;if(9===b||11===b)a[b-4]=a[b-2]=C(a[b-2])-10*c;return a.join(" ")},shadow:function(a,c,b){var m=[],d,f=this.element,e=this.renderer,n,q=f.style,h,w=f.path,k,L,l,J;w&&"string"!==typeof w.value&&(w="x");L=w;if(a){l=x(a.width,3);J=(a.opacity||.15)/l;for(d=1;3>=d;d++)k=2*l+1-2*d,b&&(L=this.cutOffPath(w.value,k+.5)),h=['\x3cshape isShadow\x3d"true" strokeweight\x3d"', +k,'" filled\x3d"false" path\x3d"',L,'" coordsize\x3d"10 10" style\x3d"',f.style.cssText,'" /\x3e'],n=G(e.prepVML(h),null,{left:C(q.left)+x(a.offsetX,1),top:C(q.top)+x(a.offsetY,1)}),b&&(n.cutOff=k+1),h=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"',J*d,'"/\x3e'],G(e.prepVML(h),null,null,n),c?c.element.appendChild(n):f.parentNode.insertBefore(n,f),m.push(n);this.shadows=m}return this},updateShadows:B,setAttr:function(a,c){this.docMode8?this.element[a]=c:this.element.setAttribute(a,c)}, +classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,c,b){(b.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,b))[c]=a||"solid";this[c]=a},dSetter:function(a,c,b){var m=this.shadows;a=a||[];this.d=a.join&&a.join(" ");b.path=a=this.pathToVML(a);if(m)for(b=m.length;b--;)m[b].path=m[b].cutOff?this.cutOffPath(a,m[b].cutOff):a;this.setAttr(c,a)},fillSetter:function(a,c,b){var m=b.nodeName;"SPAN"===m?b.style.color=a:"IMG"!== +m&&(b.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,b,c,this)))},"fill-opacitySetter":function(a,c,b){G(this.renderer.prepVML(["\x3c",c.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,b)},opacitySetter:B,rotationSetter:function(a,c,b){b=b.style;this[c]=b[c]=a;b.left=-Math.round(Math.sin(a*g)+1)+"px";b.top=Math.round(Math.cos(a*g))+"px"},strokeSetter:function(a,c,b){this.setAttr("strokecolor",this.renderer.color(a,b,c,this))},"stroke-widthSetter":function(a,c,b){b.stroked=!!a; +this[c]=a;k(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,c){this.setAttr(c,a)},visibilitySetter:function(a,c,b){"inherit"===a&&(a="visible");this.shadows&&v(this.shadows,function(b){b.style[c]=a});"DIV"===b.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(b.style[c]=a?"visible":"hidden"),c="top");b.style[c]=a},xSetter:function(a,c,b){this[c]=a;"x"===c?c="left":"y"===c&&(c="top");this.updateClipping?(this[c]=a,this.updateClipping()):b.style[c]=a},zIndexSetter:function(a, +c,b){b.style[c]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(c,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1J[0]&&c.push([1,J[1]]);v(c,function(h,b){e.test(h[1])?(y=a.color(h[1]), +w=y.get("rgb"),k=y.get("a")):(w=h[1],k=1);t.push(100*h[0]+"% "+w);b?(l=k,F=w):(z=k,C=w)});if("fill"===b)if("gradient"===q)b=L.x1||L[0]||0,c=L.y1||L[1]||0,x=L.x2||L[2]||0,L=L.y2||L[3]||0,g='angle\x3d"'+(90-180*Math.atan((L-c)/(x-b))/Math.PI)+'"',I();else{var h=L.r,p=2*h,u=2*h,r=L.cx,B=L.cy,D=d.radialReference,E,h=function(){D&&(E=f.getBBox(),r+=(D[0]-E.x)/E.width-.5,B+=(D[1]-E.y)/E.height-.5,p*=D[2]/E.width,u*=D[2]/E.height);g='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+p+","+ +u+'" origin\x3d"0.5,0.5" position\x3d"'+r+","+B+'" color2\x3d"'+C+'" ';I()};f.added?h():f.onAdd=h;h=F}else h=w}else e.test(c)&&"IMG"!==d.tagName?(y=a.color(c),f[b+"-opacitySetter"](y.get("a"),b,d),h=y.get("rgb")):(h=d.getElementsByTagName(b),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join("");c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'): +a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:f(a)&&l(c,a);return this.createElement("shape").attr(c)},circle:function(a,c,b){var d=this.symbol("circle");f(a)&&(b=a.r,c=a.y,a=a.x);d.isCircle=!0;d.r=b;return d.attr({x:a,y:c})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)}, +image:function(a,c,b,d,f){var m=this.createElement("img").attr({src:a});1d&&u-x*Ce&&(m=Math.round((l-u)/Math.cos(d*p)));else if(l=u+(1-x)*C,u-x*Ce&&(q=e-a.x+q*x,I=-1),q=Math.min(c,q),qq||t.autoRotation&&(f.styles||{}).width)m=q;m&&(J.width=m,(t.options.labels.style||{}).textOverflow|| +(J.textOverflow="ellipsis"),f.css(J))},getPosition:function(a,g,p,l){var e=this.axis,k=e.chart,f=l&&k.oldChartHeight||k.chartHeight;return{x:a?e.translate(g+p,null,null,l)+e.transB:e.left+e.offset+(e.opposite?(l&&k.oldChartWidth||k.chartWidth)-e.right-e.left:0),y:a?f-e.bottom+e.offset-(e.opposite?e.height:0):f-e.translate(g+p,null,null,l)-e.transB}},getLabelPosition:function(a,g,u,l,e,k,f,d){var x=this.axis,C=x.transA,c=x.reversed,q=x.staggerLines,t=x.tickRotCorr||{x:0,y:0},m=e.y;B(m)||(m=0===x.side? +u.rotation?-8:-u.getBBox().height:2===x.side?t.y+8:Math.cos(u.rotation*p)*(t.y-u.getBBox(!1,0).height/2));a=a+e.x+t.x-(k&&l?k*C*(c?-1:1):0);g=g+m-(k&&!l?k*C*(c?1:-1):0);q&&(u=f/(d||1)%q,x.opposite&&(u=q-u-1),g+=x.labelOffset/q*u);return{x:a,y:Math.round(g)}},getMarkPath:function(a,g,p,l,e,k){return k.crispLine(["M",a,g,"L",a+(e?0:-p),g+(e?p:0)],l)},renderGridLine:function(a,g,p){var l=this.axis,e=l.options,k=this.gridLine,f={},d=this.pos,x=this.type,C=l.tickmarkOffset,c=l.chart.renderer,q=x?x+"Grid": +"grid",I=e[q+"LineWidth"],m=e[q+"LineColor"],e=e[q+"LineDashStyle"];k||(f.stroke=m,f["stroke-width"]=I,e&&(f.dashstyle=e),x||(f.zIndex=1),a&&(f.opacity=0),this.gridLine=k=c.path().attr(f).addClass("highcharts-"+(x?x+"-":"")+"grid-line").add(l.gridGroup));if(!a&&k&&(a=l.getPlotLinePath(d+C,k.strokeWidth()*p,a,!0)))k[this.isNew?"attr":"animate"]({d:a,opacity:g})},renderMark:function(a,p,u){var l=this.axis,e=l.options,k=l.chart.renderer,f=this.type,d=f?f+"Tick":"tick",x=l.tickSize(d),C=this.mark,c=!C, +q=a.x;a=a.y;var I=g(e[d+"Width"],!f&&l.isXAxis?1:0),e=e[d+"Color"];x&&(l.opposite&&(x[0]=-x[0]),c&&(this.mark=C=k.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(l.axisGroup),C.attr({stroke:e,"stroke-width":I})),C[c?"attr":"animate"]({d:this.getMarkPath(q,a,x[0],C.strokeWidth()*u,l.horiz,k),opacity:p}))},renderLabel:function(a,p,u,l){var e=this.axis,k=e.horiz,f=e.options,d=this.label,x=f.labels,C=x.step,c=e.tickmarkOffset,q=!0,I=a.x;a=a.y;d&&E(I)&&(d.xy=a=this.getLabelPosition(I,a,d,k,x,c, +l,C),this.isFirst&&!this.isLast&&!g(f.showFirstLabel,1)||this.isLast&&!this.isFirst&&!g(f.showLastLabel,1)?q=!1:!k||e.isRadial||x.step||x.rotation||p||0===u||this.handleOverflow(a),C&&l%C&&(q=!1),q&&E(a.y)?(a.opacity=u,d[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(d.attr("y",-9999),this.isNewLabel=!0),this.isNew=!1)},render:function(a,p,u){var l=this.axis,e=l.horiz,k=this.getPosition(e,this.pos,l.tickmarkOffset,p),f=k.x,d=k.y,l=e&&f===l.pos+l.len||!e&&d===l.pos?-1:1;u=g(u,1);this.isActive= +!0;this.renderGridLine(p,u,l);this.renderMark(k,u,l);this.renderLabel(k,p,u,a)},destroy:function(){G(this,this.axis)}}})(M);var S=function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,E=a.arrayMin,r=a.color,g=a.correctFloat,p=a.defaultOptions,t=a.defined,v=a.deg2rad,u=a.destroyObjectProperties,l=a.each,e=a.extend,k=a.fireEvent,f=a.format,d=a.getMagnitude,x=a.grep,C=a.inArray,c=a.isArray,q=a.isNumber,I=a.isString,m=a.merge,J=a.normalizeTickInterval,b=a.objectEach,z=a.pick,K=a.removeEvent,y=a.splat, +A=a.syncTimeout,n=a.Tick,H=function(){this.init.apply(this,arguments)};a.extend(H.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 a.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(a,c){var h=c.isX,w=this;w.chart=a;w.horiz=a.inverted&&!w.isZAxis?!h:h;w.isXAxis=h;w.coll=w.coll||(h? +"xAxis":"yAxis");w.opposite=c.opposite;w.side=c.side||(w.horiz?w.opposite?0:2:w.opposite?1:3);w.setOptions(c);var n=this.options,d=n.type;w.labelFormatter=n.labels.formatter||w.defaultLabelFormatter;w.userOptions=c;w.minPixelPadding=0;w.reversed=n.reversed;w.visible=!1!==n.visible;w.zoomEnabled=!1!==n.zoomEnabled;w.hasNames="category"===d||!0===n.categories;w.categories=n.categories||w.hasNames;w.names=w.names||[];w.plotLinesAndBandsGroups={};w.isLog="logarithmic"===d;w.isDatetimeAxis="datetime"=== +d;w.positiveValuesOnly=w.isLog&&!w.allowNegativeLog;w.isLinked=t(n.linkedTo);w.ticks={};w.labelEdge=[];w.minorTicks={};w.plotLinesAndBands=[];w.alternateBands={};w.len=0;w.minRange=w.userMinRange=n.minRange||n.maxZoom;w.range=n.range;w.offset=n.offset||0;w.stacks={};w.oldStacks={};w.stacksTouched=0;w.max=null;w.min=null;w.crosshair=z(n.crosshair,y(a.options.tooltip.crosshairs)[h?0:1],!1);c=w.options.events;-1===C(w,a.axes)&&(h?a.axes.splice(a.xAxis.length,0,w):a.axes.push(w),a[w.coll].push(w));w.series= +w.series||[];a.inverted&&!w.isZAxis&&h&&void 0===w.reversed&&(w.reversed=!0);b(c,function(a,h){D(w,h,a)});w.lin2log=n.linearToLogConverter||w.lin2log;w.isLog&&(w.val2lin=w.log2lin,w.lin2val=w.lin2log)},setOptions:function(a){this.options=m(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],m(p[this.coll],a))},defaultLabelFormatter:function(){var h=this.axis, +b=this.value,c=h.categories,n=this.dateTimeLabelFormat,d=p.lang,m=d.numericSymbols,d=d.numericSymbolMagnitude||1E3,e=m&&m.length,y,q=h.options.labels.format,h=h.isLog?Math.abs(b):h.tickInterval;if(q)y=f(q,this);else if(c)y=b;else if(n)y=a.dateFormat(n,b);else if(e&&1E3<=h)for(;e--&&void 0===y;)c=Math.pow(d,e+1),h>=c&&0===10*b%c&&null!==m[e]&&0!==b&&(y=a.numberFormat(b/c,-1)+m[e]);void 0===y&&(y=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return y},getSeriesExtremes:function(){var a= +this,b=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();l(a.series,function(h){if(h.visible||!b.options.chart.ignoreHiddenSeries){var w=h.options,c=w.threshold,n;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=c&&(c=null);if(a.isXAxis)w=h.xData,w.length&&(h=E(w),q(h)||h instanceof Date||(w=x(w,function(a){return q(a)}),h=E(w)),a.dataMin=Math.min(z(a.dataMin,w[0]),h),a.dataMax=Math.max(z(a.dataMax,w[0]),G(w)));else if(h.getExtremes(), +n=h.dataMax,h=h.dataMin,t(h)&&t(n)&&(a.dataMin=Math.min(z(a.dataMin,h),h),a.dataMax=Math.max(z(a.dataMax,n),n)),t(c)&&(a.threshold=c),!w.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})},translate:function(a,b,c,n,d,f){var h=this.linkedParent||this,w=1,m=0,y=n?h.oldTransA:h.transA;n=n?h.oldMin:h.min;var e=h.minPixelPadding;d=(h.isOrdinal||h.isBroken||h.isLog&&d)&&h.lin2val;y||(y=h.transA);c&&(w*=-1,m=h.len);h.reversed&&(w*=-1,m-=w*(h.sector||h.len));b?(a=(a*w+m-e)/y+n,d&&(a=h.lin2val(a))): +(d&&(a=h.val2lin(a)),a=w*(a-n)*y+m+w*e+(q(f)?y*f:0));return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,c,n,d){var h=this.chart,w=this.left,f=this.top,m,y,e=c&&h.oldChartHeight||h.chartHeight,k=c&&h.oldChartWidth||h.chartWidth,A;m=this.transB;var x=function(a,h,b){if(ab)n?a=Math.min(Math.max(h,a),b):A=!0;return a};d=z(d,this.translate(a, +null,null,c));a=c=Math.round(d+m);m=y=Math.round(e-d-m);q(d)?this.horiz?(m=f,y=e-this.bottom,a=c=x(a,w,w+this.width)):(a=w,c=k-this.right,m=y=x(m,f,f+this.height)):A=!0;return A&&!n?null:h.renderer.crispLine(["M",a,m,"L",c,y],b||1)},getLinearTickPositions:function(a,b,c){var h,w=g(Math.floor(b/a)*a);c=g(Math.ceil(c/a)*a);var n=[];if(this.single)return[b];for(b=w;b<=c;){n.push(b);b=g(b+a);if(b===h)break;h=b}return n},getMinorTickPositions:function(){var a=this,b=a.options,c=a.tickPositions,n=a.minorTickInterval, +d=[],f=a.pointRangePadding||0,m=a.min-f,f=a.max+f,y=f-m;if(y&&y/n=this.minRange,k=this.minRange,n=(k-c+b)/2,n=[b-n,z(a.min,b-n)],d&&(n[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),b=G(n),c=[b+k,z(a.max,b+k)],d&&(c[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax), +c=E(c),c-b=K?(r=K,H=0):b.dataMax<=K&&(v=K,x=0)),b.min=z(B,r,b.dataMin),b.max=z(D,v,b.dataMax));f&&(b.positiveValuesOnly&&!h&&0>=Math.min(b.min,z(b.dataMin,b.min))&&a.error(10,1),b.min=g(m(b.min),15),b.max=g(m(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=B=Math.max(b.dataMin,b.minFromRange()),b.userMax=D=b.max,b.range=null);k(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange(); +!(I||b.axisPointRange||b.usePercentage||A)&&t(b.min)&&t(b.max)&&(m=b.max-b.min)&&(!t(B)&&H&&(b.min-=m*H),!t(D)&&x&&(b.max+=m*x));q(n.softMin)&&(b.min=Math.min(b.min,n.softMin));q(n.softMax)&&(b.max=Math.max(b.max,n.softMax));q(n.floor)&&(b.min=Math.max(b.min,n.floor));q(n.ceiling)&&(b.max=Math.min(b.max,n.ceiling));u&&t(b.dataMin)&&(K=K||0,!t(B)&&b.min=K?b.min=K:!t(D)&&b.max>K&&b.dataMax<=K&&(b.max=K));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:A&&!C&&p===b.linkedParent.options.tickPixelInterval? +C=b.linkedParent.tickInterval:z(C,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,I?1:(b.max-b.min)*p/Math.max(b.len,p));e&&!h&&l(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!C&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));h=z(n.minTickInterval,b.isDatetimeAxis&&b.closestPointRange); +!C&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,n=a.tickPositioner,d=a.startOnTick,f=a.endOnTick;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval= +"auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.single=this.min===this.max&&t(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval, +this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,n&&(n=n.apply(this,[this.min,this.max])))&&(this.tickPositions=b=n);this.paddedTicks=b.slice(0);this.trimTicks(b,d,f);this.isLinked||(this.single&&2>b.length&&(this.min-=.5,this.max+=.5),c||n||this.adjustTickAmount())},trimTicks:function(a,b,c){var h=a[0],n=a[a.length-1],d=this.minPointOffset||0;if(!this.isLinked){if(b&&-Infinity!==h)this.min=h;else for(;this.min-d>a[0];)a.shift();if(c)this.max=n;else for(;this.max+db&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,n=this.finalTickAmt,d=b&&b.length;if(dc&&(this.tickInterval*=2,this.setTickPositions());if(t(n)){for(a=c=b.length;a--;)(3===n&&1===a%2||2>=n&&0n&&(a=n)),t(c)&&(bn&&(b=n))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var b=this.chart,c=this.options,n=c.offsets||[0,0,0,0],d=this.horiz,f=this.width=Math.round(a.relativeLength(z(c.width,b.plotWidth-n[3]+n[1]),b.plotWidth)),m=this.height=Math.round(a.relativeLength(z(c.height,b.plotHeight-n[0]+n[2]),b.plotHeight)),y=this.top=Math.round(a.relativeLength(z(c.top,b.plotTop+n[0]),b.plotHeight,b.plotTop)), +c=this.left=Math.round(a.relativeLength(z(c.left,b.plotLeft+n[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-m-y;this.right=b.chartWidth-f-c;this.len=Math.max(d?f:m,0);this.pos=d?c:y},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?g(b(this.min)):this.min,max:a?g(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,h=this.lin2log,c=b?h(this.min):this.min,b=b?h(this.max):this.max; +null===a?a=c:c>a?a=c:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,h=b[a+"Length"],c=z(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(c&&h)return"inside"===b[a+"Position"]&&(h=-h),[h,c]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,n=c,d=this.len/(((this.categories?1:0)+this.max-this.min)/c),f,m=a.rotation,y=this.labelMetrics(),e,q=Number.MAX_VALUE,k,A=function(a){a/=d||1;a=1=a)e=A(Math.abs(y.h/Math.sin(v*a))),b=e+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*this.len/n||!b&&(d&&d-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,n=this.ticks,d=this.options.labels,f=this.horiz,y=this.getSlotWidth(),e=Math.max(1, +Math.round(y-2*(d.padding||5))),q={},k=this.labelMetrics(),A=d.style&&d.style.textOverflow,x,H=0,z,C;I(d.rotation)||(q.rotation=d.rotation||0);l(c,function(a){(a=n[a])&&a.labelLength>H&&(H=a.labelLength)});this.maxLabelLength=H;if(this.autoRotation)H>e&&H>k.h?q.rotation=this.labelRotation:this.labelRotation=0;else if(y&&(x={width:e+"px"},!A))for(x.textOverflow="clip",z=c.length;!f&&z--;)if(C=c[z],e=n[C].label)e.styles&&"ellipsis"===e.styles.textOverflow?e.css({textOverflow:"clip"}):n[C].labelLength> +y&&e.css({width:y+"px"}),e.getBBox().height>this.len/c.length-(k.h-k.f)&&(e.specCss={textOverflow:"ellipsis"});q.rotation&&(x={width:(H>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},A||(x.textOverflow="ellipsis"));if(this.labelAlign=d.align||this.autoLabelAlign(this.labelRotation))q.align=this.labelAlign;l(c,function(a){var b=(a=n[a])&&a.label;b&&(b.attr(q),x&&b.css(m(x,b.specCss)),delete b.specCss,a.rotation=q.rotation)});this.tickRotCorr=b.rotCorr(k.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},addTitle:function(a){var b=this.chart.renderer,h=this.horiz,c=this.opposite,n=this.options.title,d;this.axisTitle||((d=n.textAlign)||(d=(h?{low:"left",middle:"center",high:"right"}:{low:c?"right":"left",middle:"center",high:c?"left":"right"})[n.align]),this.axisTitle=b.text(n.text,0,0,n.useHTML).attr({zIndex:7,rotation:n.rotation||0,align:d}).addClass("highcharts-axis-title").css(n.style).add(this.axisGroup), +this.axisTitle.isNew=!0);n.style.width||this.isRadial||this.axisTitle.css({width:this.len});this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var b=this.ticks;b[a]?b[a].addLabel():b[a]=new n(this,a)},getOffset:function(){var a=this,c=a.chart,n=c.renderer,d=a.options,f=a.tickPositions,m=a.ticks,y=a.horiz,e=a.side,q=c.inverted&&!a.isZAxis?[1,0,3,2][e]:e,k,A,x=0,H,C=0,g=d.title,p=d.labels,I=0,J=c.axisOffset,c=c.clipOffset,K=[-1,1,1,-1][e],u=d.className,r=a.axisParent,v=this.tickSize("tick"); +k=a.hasData();a.showAxis=A=k||z(d.showEmpty,!0);a.staggerLines=a.horiz&&p.staggerLines;a.axisGroup||(a.gridGroup=n.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(u||"")).add(r),a.axisGroup=n.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(u||"")).add(r),a.labelGroup=n.g("axis-labels").attr({zIndex:p.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(u||"")).add(r));k||a.isLinked?(l(f,function(b, +h){a.generateTick(b,h)}),a.renderUnsquish(),!1===p.reserveSpace||0!==e&&2!==e&&{1:"left",3:"right"}[e]!==a.labelAlign&&"center"!==a.labelAlign||l(f,function(a){I=Math.max(m[a].getLabelSize(),I)}),a.staggerLines&&(I*=a.staggerLines,a.labelOffset=I*(a.opposite?-1:1))):b(m,function(a,b){a.destroy();delete m[b]});g&&g.text&&!1!==g.enabled&&(a.addTitle(A),A&&!1!==g.reserveSpace&&(a.titleOffset=x=a.axisTitle.getBBox()[y?"height":"width"],H=g.offset,C=t(H)?0:z(g.margin,y?5:10)));a.renderLine();a.offset= +K*z(d.offset,J[e]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};n=0===e?-a.labelMetrics().h:2===e?a.tickRotCorr.y:0;C=Math.abs(I)+C;I&&(C=C-n+K*(y?z(p.y,a.tickRotCorr.y+8*K):p.x));a.axisTitleMargin=z(H,C);J[e]=Math.max(J[e],a.axisTitleMargin+x+K*a.offset,C,k&&f.length&&v?v[0]+K*a.offset:0);f=2*Math.floor(a.axisLine.strokeWidth()/2);0=this.min&&a<=this.max)h[a]||(h[a]=new n(this,a)),d&&h[a].isNew&&h[a].render(b,!0,.1),h[a].render(b)},render:function(){var c=this,d=c.chart,f=c.options,m=c.isLog,e=c.lin2log,y=c.isLinked,k=c.tickPositions,x=c.axisTitle,H=c.ticks,z=c.minorTicks,C=c.alternateBands,g=f.stackLabels,p=f.alternateGridColor,I=c.tickmarkOffset, +J=c.axisLine,K=c.showAxis,t=B(d.renderer.globalAnimation),u,r;c.labelEdge.length=0;c.overlap=!1;l([H,z,C],function(a){b(a,function(a){a.isActive=!1})});if(c.hasData()||y)c.minorTickInterval&&!c.categories&&l(c.getMinorTickPositions(),function(a){c.renderMinorTick(a)}),k.length&&(l(k,function(a,b){c.renderTick(a,b)}),I&&(0===c.min||c.single)&&(H[-1]||(H[-1]=new n(c,-1,null,!0)),H[-1].render(-1))),p&&l(k,function(b,h){r=void 0!==k[h+1]?k[h+1]+I:c.max-I;0===h%2&&b=e.second?0:z*Math.floor(m.getMilliseconds()/z));if(b>=e.second)m[B.hcSetSeconds](b>=e.minute?0:z*Math.floor(m.getSeconds()/z));if(b>=e.minute)m[B.hcSetMinutes](b>=e.hour?0:z*Math.floor(m[B.hcGetMinutes]()/z));if(b>=e.hour)m[B.hcSetHours](b>=e.day?0:z*Math.floor(m[B.hcGetHours]()/z));if(b>=e.day)m[B.hcSetDate](b>= +e.month?1:z*Math.floor(m[B.hcGetDate]()/z));b>=e.month&&(m[B.hcSetMonth](b>=e.year?0:z*Math.floor(m[B.hcGetMonth]()/z)),I=m[B.hcGetFullYear]());if(b>=e.year)m[B.hcSetFullYear](I-I%z);if(b===e.week)m[B.hcSetDate](m[B.hcGetDate]()-m[B.hcGetDay]()+l(x,1));I=m[B.hcGetFullYear]();x=m[B.hcGetMonth]();var A=m[B.hcGetDate](),n=m[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)y=(!q||!!B.hcGetTimezoneOffset)&&(d-f>4*e.month||v(f)!==v(d)),m=m.getTime(),K=v(m),m=new B(m+K);q=m.getTime();for(f=1;q< +d;)k.push(q),q=b===e.year?J(I+f*z,0):b===e.month?J(I,x+f*z):!y||b!==e.day&&b!==e.week?y&&b===e.hour?J(I,x,A,n+f*z,0,0,K)-K:q+b*z:J(I,x,A+f*z*(b===e.day?1:7)),f++;k.push(q);b<=e.hour&&1E4>k.length&&g(k,function(a){0===a%18E5&&"000000000"===G("%H%M%S%L",a)&&(c[a]="day")})}k.info=p(a,{higherRanks:c,totalRange:b*z});return k};D.prototype.normalizeTimeTickInterval=function(a,f){var d=f||[["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]];f=d[d.length-1];var k=e[f[0]],l=f[1],c;for(c=0;cp&&(!v||c<=t)&&void 0!==c&&f.push(c),c>t&&(q=!0),c=C;else p=e(p),t=e(t),a=g[v?"minorTickInterval":"tickInterval"],a=r("auto"===a?null:a,this._minorAutoInterval,g.tickPixelInterval/(v?5:1)*(t-p)/((v?l/this.tickPositions.length: +l)||1)),a=E(a,null,B(a)),f=G(this.getLinearTickPositions(a,p,t),k),v||(this._minorAutoInterval=a/5);v||(this.tickInterval=a);return f};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(M);(function(a,D){var B=a.arrayMax,G=a.arrayMin,E=a.defined,r=a.destroyObjectProperties,g=a.each,p=a.erase,t=a.merge,v=a.pick;a.PlotLineOrBand=function(a,l){this.axis=a;l&&(this.options=l,this.id=l.id)};a.PlotLineOrBand.prototype={render:function(){var g= +this,l=g.axis,e=l.horiz,k=g.options,f=k.label,d=g.label,x=k.to,C=k.from,c=k.value,q=E(C)&&E(x),p=E(c),m=g.svgElem,J=!m,b=[],z=k.color,K=v(k.zIndex,0),y=k.events,b={"class":"highcharts-plot-"+(q?"band ":"line ")+(k.className||"")},A={},n=l.chart.renderer,H=q?"bands":"lines",h=l.log2lin;l.isLog&&(C=h(C),x=h(x),c=h(c));p?(b={stroke:z,"stroke-width":k.width},k.dashStyle&&(b.dashstyle=k.dashStyle)):q&&(z&&(b.fill=z),k.borderWidth&&(b.stroke=k.borderColor,b["stroke-width"]=k.borderWidth));A.zIndex=K;H+= +"-"+K;(z=l.plotLinesAndBandsGroups[H])||(l.plotLinesAndBandsGroups[H]=z=n.g("plot-"+H).attr(A).add());J&&(g.svgElem=m=n.path().attr(b).add(z));if(p)b=l.getPlotLinePath(c,m.strokeWidth());else if(q)b=l.getPlotBandPath(C,x,k);else return;J&&b&&b.length?(m.attr({d:b}),y&&a.objectEach(y,function(a,b){m.on(b,function(a){y[b].apply(g,[a])})})):m&&(b?(m.show(),m.animate({d:b})):(m.hide(),d&&(g.label=d=d.destroy())));f&&E(f.text)&&b&&b.length&&0this.max&&l>this.max;k&&e?(a&&(k.flat=k.toString()===e.toString(),d=0),k.push(f&&e[4]===k[4]?e[4]+d:e[4],f||e[5]!==k[5]?e[5]:e[5]+d,f&&e[1]===k[1]?e[1]+d:e[1],f||e[2]!==k[2]?e[2]:e[2]+d)):k=null;return k}, +addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(g,l){var e=(new a.PlotLineOrBand(this,g)).render(),k=this.userOptions;e&&(l&&(k[l]=k[l]||[],k[l].push(g)),this.plotLinesAndBands.push(e));return e},removePlotBandOrLine:function(a){for(var l=this.plotLinesAndBands,e=this.options,k=this.userOptions,f=l.length;f--;)l[f].id===a&&l[f].destroy();g([e.plotLines||[],k.plotLines||[],e.plotBands|| +[],k.plotBands||[]],function(d){for(f=d.length;f--;)d[f].id===a&&p(d,d[f])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(M,S);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,E=a.format,r=a.isNumber,g=a.map,p=a.merge,t=a.pick,v=a.splat,u=a.syncTimeout,l=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,k){this.chart=a;this.options=k;this.crosshairs=[];this.now={x:0,y:0}; +this.isHidden=!0;this.split=k.split&&!a.inverted;this.shared=k.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var f=e&&e.tt;f&&(!f.isActive||a?e.tt=f.destroy():f.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,k=this.options;this.label||(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,k.shape||"callout",null,null,k.useHTML,null,"tooltip").attr({padding:k.padding,r:k.borderRadius}),this.label.attr({fill:k.backgroundColor,"stroke-width":k.borderWidth}).css(k.style).shadow(k.shadow)), +this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();p(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,p(!0,this.options,a))},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(a,k,f,d){var e=this,l=e.now,c=!1!==e.options.animation&&!e.isHidden&&(1q-c?q:q-c);else if(y)l[a]=Math.max(f,h+c+d>b?h:h+c);else return!1},z=function(a,b,c,h){var n;hb-e?n=!1:l[a]=hb-c/2? +b-c-2:h-c/2;return n},K=function(a){var b=g;g=m;m=b;q=a},y=function(){!1!==b.apply(0,g)?!1!==z.apply(0,m)||q||(K(!0),y()):q?l.x=l.y=0:(K(!0),y())};(d.inverted||1y&&(c=!1);a=(b.series&&b.series.yAxis&&b.series.yAxis.pos)+(b.plotY||0);a-=l.plotTop;d.push({target:b.isHeader?l.plotHeight+p:a,rank:b.isHeader?1:0,size:e.tt.getBBox().height+1,point:b,x:y,tt:x})}});this.cleanSplit();a.distribute(d,l.plotHeight+p);B(d,function(a){var b=a.point,d=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:c||b.isHeader?a.x:b.plotX+ +l.plotLeft+t(q.distance,16),y:a.pos+l.plotTop,anchorX:b.isHeader?b.plotX+l.plotLeft:b.plotX+d.xAxis.pos,anchorY:b.isHeader?a.pos+l.plotTop-15:b.plotY+d.yAxis.pos})})},updatePosition:function(a){var e=this.chart,f=this.getLabel(),f=(this.options.positioner||this.getPosition).call(this,f.width,f.height,a);this.move(Math.round(f.x),Math.round(f.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)},getDateFormat:function(a,k,f,d){var e=D("%m-%d %H:%M:%S.%L",k),g,c,q={millisecond:15,second:12,minute:9,hour:6,day:3}, +p="millisecond";for(c in l){if(a===l.week&&+D("%w",k)===f&&"00:00:00.000"===e.substr(6)){c="week";break}if(l[c]>a){c=p;break}if(q[c]&&e.substr(q[c])!=="01-01 00:00:00.000".substr(q[c]))break;"week"!==c&&(p=c)}c&&(g=d[c]);return g},getXDateFormat:function(a,k,f){k=k.dateTimeLabelFormats;var d=f&&f.closestPointRange;return(d?this.getDateFormat(d,a.x,f.options.startOfWeek,k):k.day)||k.year},tooltipFooterHeaderFormatter:function(a,k){var f=k?"footer":"header";k=a.series;var d=k.tooltipOptions,e=d.xDateFormat, +l=k.xAxis,c=l&&"datetime"===l.options.type&&r(a.key),f=d[f+"Format"];c&&!e&&(e=this.getXDateFormat(a,d,l));c&&e&&(f=f.replace("{point.key}","{point.key:"+e+"}"));return E(f,{point:a,series:k})},bodyFormatter:function(a){return g(a,function(a){var f=a.series.tooltipOptions;return(f.pointFormatter||a.point.tooltipFormatter).call(a.point,f.pointFormat)})}}})(M);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,E=a.color,r=a.css,g=a.defined,p=a.each,t=a.extend,v=a.find,u=a.fireEvent,l=a.isObject,e=a.offset, +k=a.pick,f=a.removeEvent,d=a.splat,x=a.Tooltip,C=a.win;a.Pointer=function(a,d){this.init(a,d)};a.Pointer.prototype={init:function(a,d){this.options=d;this.chart=a;this.runChartClick=d.chart.events&&!!d.chart.events.click;this.pinchDown=[];this.lastValidTouch={};x&&(a.tooltip=new x(a,d.tooltip),this.followTouchMove=k(d.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var c=this.chart,d=c.options.chart,f=d.zoomType||"",c=c.inverted;/touch/.test(a.type)&&(f=k(d.pinchType,f)); +this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!c||f&&c;this.zoomVert=f&&!c||a&&c;this.hasZoom=a||f},normalize:function(a,d){var c,f;a=a||C.event;a.target||(a.target=a.srcElement);f=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;d||(this.chartPosition=d=e(this.chart.container));void 0===f.pageX?(c=Math.max(a.x,a.clientX-d.left),d=a.y):(c=f.pageX-d.left,d=f.pageY-d.top);return t(a,{chartX:Math.round(c),chartY:Math.round(d)})},getCoordinates:function(a){var c= +{xAxis:[],yAxis:[]};p(this.chart.axes,function(d){c[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return c},findNearestKDPoint:function(a,d,f){var c;p(a,function(a){var b=!(a.noSharedTooltip&&d)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(f,b);if((b=l(a,!0))&&!(b=!l(c,!0)))var b=c.distX-a.distX,m=c.dist-a.dist,e=(a.series.group&&a.series.group.zIndex)-(c.series.group&&c.series.group.zIndex),b=0<(0!==b&&d?b:0!==m?m:0!==e?e:c.series.index> +a.series.index?-1:1);b&&(c=a)});return c},getPointFromEvent:function(a){a=a.target;for(var c;a&&!c;)c=a.point,a=a.parentNode;return c},getChartCoordinatesFromPoint:function(a,d){var c=a.series,f=c.xAxis,c=c.yAxis;if(f&&c)return d?{chartX:f.len+f.pos-a.clientX,chartY:c.len+c.pos-a.plotY}:{chartX:a.clientX+f.pos,chartY:a.plotY+c.pos}},getHoverData:function(c,d,f,m,e,b){var q,x=[];m=!(!m||!c);var y=d&&!d.stickyTracking?[d]:a.grep(f,function(a){return a.visible&&!(!e&&a.directTouch)&&k(a.options.enableMouseTracking, +!0)&&a.stickyTracking});d=(q=m?c:this.findNearestKDPoint(y,e,b))&&q.series;q&&(e&&!d.noSharedTooltip?(y=a.grep(f,function(a){return a.visible&&!(!e&&a.directTouch)&&k(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),p(y,function(a){a=v(a.points,function(a){return a.x===q.x});l(a)&&!a.isNull&&x.push(a)})):x.push(q));return{hoverPoint:q,hoverSeries:d,hoverPoints:x}},runPointActions:function(c,d){var f=this.chart,m=f.tooltip,e=m?m.shared:!1,b=d||f.hoverPoint,q=b&&b.series||f.hoverSeries,q=this.getHoverData(b, +q,f.series,!!d||q&&q.directTouch&&this.isDirectTouch,e,c),l,b=q.hoverPoint;l=q.hoverPoints;d=(q=q.hoverSeries)&&q.tooltipOptions.followPointer;e=e&&q&&!q.noSharedTooltip;if(b&&(b!==f.hoverPoint||m&&m.isHidden)){p(f.hoverPoints||[],function(b){-1===a.inArray(b,l)&&b.setState()});p(l||[],function(a){a.setState("hover")});if(f.hoverSeries!==q)q.onMouseOver();f.hoverPoint&&f.hoverPoint.firePointEvent("mouseOut");b.firePointEvent("mouseOver");f.hoverPoints=l;f.hoverPoint=b;m&&m.refresh(e?l:b,c)}else d&& +m&&!m.isHidden&&(b=m.getAnchor([{}],c),m.updatePosition({plotX:b[0],plotY:b[1]}));this.unDocMouseMove||(this.unDocMouseMove=D(f.container.ownerDocument,"mousemove",function(b){var c=G[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));p(f.axes,function(b){var d=k(b.crosshair.snap,!0),n=d?a.find(l,function(a){return a.series[b.coll]===b}):void 0;n||!d?b.drawCrosshair(c,n):b.hideCrosshair()})},reset:function(a,f){var c=this.chart,m=c.hoverSeries,e=c.hoverPoint,b=c.hoverPoints,q=c.tooltip,k= +q&&q.shared?b:e;a&&k&&p(d(k),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)q&&k&&(q.refresh(k),e&&(e.setState(e.state,!0),p(c.axes,function(a){a.crosshair&&a.drawCrosshair(null,e)})));else{if(e)e.onMouseOut();b&&p(b,function(a){a.setState()});if(m)m.onMouseOut();q&&q.hide(f);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());p(c.axes,function(a){a.hideCrosshair()});this.hoverX=c.hoverPoints=c.hoverPoint=null}},scaleGroups:function(a,d){var c=this.chart,f;p(c.series, +function(m){f=a||m.getPlotBox();m.xAxis&&m.xAxis.zoomEnabled&&m.group&&(m.group.attr(f),m.markerGroup&&(m.markerGroup.attr(f),m.markerGroup.clip(d?c.clipRect:null)),m.dataLabelsGroup&&m.dataLabelsGroup.attr(f))});c.clipRect.attr(d||c.clipBox)},dragStart:function(a){var c=this.chart;c.mouseIsDown=a.type;c.cancelClick=!1;c.mouseDownX=this.mouseDownX=a.chartX;c.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var c=this.chart,d=c.options.chart,f=a.chartX,e=a.chartY,b=this.zoomHor,k=this.zoomVert, +l=c.plotLeft,y=c.plotTop,A=c.plotWidth,n=c.plotHeight,x,h=this.selectionMarker,w=this.mouseDownX,g=this.mouseDownY,C=d.panKey&&a[d.panKey+"Key"];h&&h.touch||(fl+A&&(f=l+A),ey+n&&(e=y+n),this.hasDragged=Math.sqrt(Math.pow(w-f,2)+Math.pow(g-e,2)),10K.max&&(g=K.max-m,w=!0);w?(n-=.8*(n-k[x][0]),y||(h-=.8*(h-k[x][1])),r()):k[x]=[n,h];z||(e[x]=t-p,e[q]=m);e=z?1/b:b;l[q]=m;l[x]=g;u[z?a?"scaleY":"scaleX":"scale"+C]=b;u["translate"+C]=e*p+(n-e*A)},pinch:function(a){var p=this,v=p.chart,u=p.pinchDown,l=a.touches,e=l.length,k=p.lastValidTouch,f=p.hasZoom,d=p.selectionMarker, +x={},C=1===e&&(p.inClass(a.target,"highcharts-tracker")&&v.runTrackerClick||p.runChartClick),c={};1f-6&&m(y||d.spacingBox.width-2*b-e.x)&&(this.itemX=b,this.itemY+=n+this.lastLineHeight+A,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,m);this.lastItemY=n+this.itemY+A;this.lastLineHeight=Math.max(f,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];c?this.itemX+=m:(this.itemY+=n+f+A,this.lastLineHeight=f);this.offsetWidth=y||Math.max((c?this.itemX-b-(a.checkbox?0:z):m)+b,this.offsetWidth)},getAllItems:function(){var a=[];r(this.chart.series, +function(d){var f=d&&d.options;d&&v(f.showInLegend,E(f.linkedTo)?!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===f.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var f=this.chart,e=this.options,c=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||r([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(k,l){k.test(c)&&!E(a[l])&&(f[p[l]]=Math.max(f[p[l]],f.legend[(l+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][l]*e[l%2?"x":"y"]+v(e.margin, +12)+d[l]))})},render:function(){var a=this,d=a.chart,e=d.renderer,k=a.group,c,q,g,m,p=a.box,b=a.options,z=a.padding;a.itemX=z;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;k||(a.group=k=e.g("legend").attr({zIndex:7}).add(),a.contentGroup=e.g().attr({zIndex:1}).add(k),a.scrollGroup=e.g().add(a.contentGroup));a.renderTitle();c=a.getAllItems();l(c,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});b.reversed&&c.reverse();a.allItems=c;a.display=q= +!!c.length;a.lastLineHeight=0;r(c,function(b){a.renderItem(b)});g=(b.width||a.offsetWidth)+z;m=a.lastItemY+a.lastLineHeight+a.titleHeight;m=a.handleOverflow(m);m+=z;p||(a.box=p=e.rect().addClass("highcharts-legend-box").attr({r:b.borderRadius}).add(k),p.isNew=!0);p.attr({stroke:b.borderColor,"stroke-width":b.borderWidth||0,fill:b.backgroundColor||"none"}).shadow(b.shadow);0f&&!1!==b.enabled?(this.clipHeight=m=Math.max(f-20-this.titleHeight-l,0),this.currentPage=v(this.currentPage,1),this.fullHeight=a,r(H,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=A.length;if(!d||c-A[d-1]>m&&(n||c)!==A[d-1])A.push(n|| +c),d++;b===H.length-1&&c+a-A[d-1]>m&&A.push(c);c!==n&&(n=c)}),g||(g=d.clipRect=e.clipRect(0,l,9999,0),d.contentGroup.clip(g)),h(m),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,z)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(b.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,z)}).add(y)),d.scroll(0),a=f):y&&(h(),this.nav=y.destroy(),this.scrollGroup.attr({translateY:1}), +this.clipHeight=0);return a},scroll:function(a,d){var f=this.pages,e=f.length;a=this.currentPage+a;var c=this.clipHeight,k=this.options.navigation,l=this.pager,m=this.padding;a>e&&(a=e);0l&&(k=typeof a[0],"string"===k?e.name=a[0]:"number"=== +k&&(e.x=a[0]),g++);c=f.value;)f=e[++k];f&&f.color&&!this.options.color&&(this.color=f.color);return f},destroy:function(){var a=this.series.chart,e=a.hoverPoints,k;a.pointCount--;e&&(this.setState(),E(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)u(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this); +for(k in this)this[k]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,k=6;k--;)e=a[k],this[e]&&(this[e]=this[e].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(a){var e=this.series,k=e.tooltipOptions,f=v(k.valueDecimals,""), +d=k.valuePrefix||"",l=k.valueSuffix||"";B(e.pointArrayMap||["y"],function(e){e="{point."+e;if(d||l)a=a.replace(e+"}",d+e+"}"+l);a=a.replace(e+"}",e+":,."+f+"f}")});return g(a,{point:this,series:this.series})},firePointEvent:function(a,e,k){var f=this,d=this.series.options;(d.point.events[a]||f.options&&f.options.events&&f.options.events[a])&&this.importEvents();"click"===a&&d.allowPointSelect&&(k=function(a){f.select&&f.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});r(this,a,e,k)},visible:!0}})(M); +(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,E=a.arrayMin,r=a.correctFloat,g=a.Date,p=a.defaultOptions,t=a.defaultPlotOptions,v=a.defined,u=a.each,l=a.erase,e=a.extend,k=a.fireEvent,f=a.grep,d=a.isArray,x=a.isNumber,C=a.isString,c=a.merge,q=a.objectEach,I=a.pick,m=a.removeEvent,J=a.splat,b=a.SVGElement,z=a.syncTimeout,K=a.win;a.Series=a.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?"":a.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:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,h=a.series,f;c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();e(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});d=b.events;q(d,function(a,b){D(c,b,a)});if(d&& +d.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();u(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);h.length&&(f=h[h.length-1]);c._i=I(f&&f._i,-1)+1;a.orderSeries(this.insert(h))},insert:function(a){var b=this.options.index,c;if(x(b)){for(c=a.length;c--;)if(b>=I(a[c].options.index,a[c]._i)){a.splice(c+1,0,this);break}-1===c&&a.unshift(this);c+=1}else a.push(this);return I(c, +a.length-1)},bindAxes:function(){var b=this,c=b.options,d=b.chart,e;u(b.axisTypes||[],function(h){u(d[h],function(a){e=a.options;if(c[h]===e.index||void 0!==c[h]&&c[h]===e.id||void 0===c[h]&&0===e.index)b.insert(a.series),b[h]=a,a.isDirty=!0});b[h]||b.optionalAxis===h||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,d=arguments,h=x(b)?function(h){var d="y"===h&&c.toYData?c.toYData(a):a[h];c[h+"Data"][b]=d}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(d, +2))};u(c.parallelArrays,h)},autoIncrement:function(){var a=this.options,b=this.xIncrement,c,d=a.pointIntervalUnit,b=I(b,a.pointStart,0);this.pointInterval=c=I(this.pointInterval,a.pointInterval,1);d&&(a=new g(b),"day"===d?a=+a[g.hcSetDate](a[g.hcGetDate]()+c):"month"===d?a=+a[g.hcSetMonth](a[g.hcGetMonth]()+c):"year"===d&&(a=+a[g.hcSetFullYear](a[g.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,d=b.options,e=d.plotOptions,h=(b.userOptions||{}).plotOptions|| +{},f=e[this.type];this.userOptions=a;b=c(f,e.series,a);this.tooltipOptions=c(p.tooltip,p.plotOptions.series&&p.plotOptions.series.tooltip,p.plotOptions[this.type].tooltip,d.tooltip.userOptions,e.series&&e.series.tooltip,e[this.type].tooltip,a.tooltip);this.stickyTracking=I(a.stickyTracking,h[this.type]&&h[this.type].stickyTracking,h.series&&h.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:b.stickyTracking);null===f.marker&&delete b.marker;this.zoneAxis=b.zoneAxis;a=this.zones= +(b.zones||[]).slice();!b.negativeColor&&!b.negativeFillColor||b.zones||a.push({value:b[this.zoneAxis+"Threshold"]||b.threshold||0,className:"highcharts-negative",color:b.negativeColor,fillColor:b.negativeFillColor});a.length&&v(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return b},getCyclic:function(a,b,c){var d,h=this.chart,n=this.userOptions,e=a+"Index",f=a+"Counter",m=c?c.length:I(h.options.chart[a+"Count"],h[a+"Count"]);b||(d=I(n[e],n["_"+e]),v(d)||(h.series.length|| +(h[f]=0),n["_"+e]=d=h[f]%m,h[f]+=1),c&&(b=c[d]));void 0!==d&&(this[e]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||t[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(b,c,n,e){var h=this,f=h.points,m=f&&f.length||0,k,y=h.options,l=h.chart,q=null,g=h.xAxis, +A=y.turboThreshold,H=this.xData,z=this.yData,p=(k=h.pointArrayMap)&&k.length;b=b||[];k=b.length;c=I(c,!0);if(!1!==e&&k&&m===k&&!h.cropped&&!h.hasGroupedData&&h.visible)u(b,function(a,b){f[b].update&&a!==y.data[b]&&f[b].update(a,!1,null,!1)});else{h.xIncrement=null;h.colorCounter=0;u(this.parallelArrays,function(a){h[a+"Data"].length=0});if(A&&k>A){for(n=0;null===q&&ny||this.forceCrop))if(c[e-1]x)c=[],d=[];else if(c[0]x)h=this.cropData(this.xData,this.yData,p,x),c=h.xData,d=h.yData,h=h.start,f=!0;for(y=c.length|| +1;--y;)e=z?l(c[y])-l(c[y-1]):c[y]-c[y-1],0e&&this.requireSorting&&a.error(15);this.cropped=f;this.cropStart=h;this.processedXData=c;this.processedYData=d;this.closestPointRange=m},cropData:function(a,b,c,d){var h=a.length,n=0,e=h,f=I(this.cropShoulder,1),m;for(m=0;m=c){n=Math.max(0,m-f);break}for(c=m;cd){e=c+f;break}return{xData:a.slice(n,e),yData:b.slice(n,e),start:n,end:e}},generatePoints:function(){var a=this.options,b=a.data,c=this.data, +d,h=this.processedXData,e=this.processedYData,f=this.pointClass,m=h.length,k=this.cropStart||0,l,q=this.hasGroupedData,a=a.keys,g,z=[],p;c||q||(c=[],c.length=b.length,c=this.data=c);a&&q&&(this.options.keys=!1);for(p=0;p=m&&(c[g]||l)<=k,y&&l)if(y=q.length)for(;y--;)null!==q[y]&&(h[f++]=q[y]);else h[f++]=q;this.dataMin= +E(h);this.dataMax=G(h)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,d=c.categories,h=this.yAxis,e=this.points,f=e.length,m=!!this.modifyValue,k=a.pointPlacement,l="between"===k||x(k),q=a.threshold,g=a.startFromThreshold?q:0,z,p,C,t,K=Number.MAX_VALUE;"between"===k&&(k=.5);x(k)&&(k*=I(a.pointRange||c.pointRange));for(a=0;a=B&&(u.isNull=!0);u.plotX=z=r(Math.min(Math.max(-1E5,c.translate(J,0,0,0,1,k,"flags"===this.type)),1E5));b&&this.visible&&!u.isNull&&D&&D[J]&&(t=this.getStackIndicator(t,J,this.index),E=D[J],B=E.points[t.key],p=B[0],B=B[1],p===g&&t.key===D[J].base&&(p=I(q,h.min)),h.positiveValuesOnly&&0>=p&&(p=null),u.total=u.stackTotal=E.total,u.percentage=E.total&&u.y/E.total*100,u.stackY=B,E.setOffset(this.pointXOffset||0,this.barW||0));u.yBottom=v(p)?h.translate(p,0,1,0,1): +null;m&&(B=this.modifyValue(B,u));u.plotY=p="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,h.translate(B,0,1,0,1)),1E5):void 0;u.isInside=void 0!==p&&0<=p&&p<=h.len&&0<=z&&z<=c.len;u.clientX=l?r(c.translate(J,0,0,0,1,k)):z;u.negative=u.y<(q||0);u.category=d&&void 0!==d[u.x]?d[u.x]:u.x;u.isNull||(void 0!==C&&(K=Math.min(K,Math.abs(z-C))),C=z);u.zone=this.zones.length&&u.getZone()}this.closestPointRangePx=K},getValidPoints:function(a,b){var c=this.chart;return f(a||this.points||[],function(a){return b&& +!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,h=b.inverted,e=this.clipBox,f=e||b.clipBox,m=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,f.height,c.xAxis,c.yAxis].join(),k=b[m],l=b[m+"m"];k||(a&&(f.width=0,b[m+"m"]=l=d.clipRect(-99,h?-b.plotLeft:-b.plotTop,99,h?b.chartWidth:b.chartHeight)),b[m]=k=d.clipRect(f),k.count={length:0});a&&!k.count[this.index]&&(k.count[this.index]=!0,k.count.length+=1);!1!==c.clip&& +(this.group.clip(a||e?k:b.clipRect),this.markerGroup.clip(l),this.sharedClipKey=m);a||(k.count[this.index]&&(delete k.count[this.index],--k.count.length),0===k.count.length&&m&&b[m]&&(e||(b[m]=b[m].destroy()),b[m+"m"]&&(b[m+"m"]=b[m+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip(); +k(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,c,d,h,e,f=this.options.marker,m,k,l,q,g=this[this.specialGroup]||this.markerGroup,z=I(f.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*f.radius);if(!1!==f.enabled||this._hasPointMarkers)for(d=0;de&&b.shadow));n&&(n.startX=c.xMap,n.isArea=c.isArea)})},applyZones:function(){var a= +this,b=this.chart,c=b.renderer,d=this.zones,h,e,f=this.clips||[],m,k=this.graph,l=this.area,q=Math.max(b.chartWidth,b.chartHeight),g=this[(this.zoneAxis||"y")+"Axis"],z,p,x=b.inverted,C,t,r,K,v=!1;d.length&&(k||l)&&g&&void 0!==g.min&&(p=g.reversed,C=g.horiz,k&&k.hide(),l&&l.hide(),z=g.getExtremes(),u(d,function(d,n){h=p?C?b.plotWidth:0:C?0:g.toPixels(z.min);h=Math.min(Math.max(I(e,h),0),q);e=Math.min(Math.max(Math.round(g.toPixels(I(d.value,z.max),!0)),0),q);v&&(h=e=g.toPixels(z.max));t=Math.abs(h- +e);r=Math.min(h,e);K=Math.max(h,e);g.isXAxis?(m={x:x?K:r,y:0,width:t,height:q},C||(m.x=b.plotHeight-m.x)):(m={x:0,y:x?K:r,width:q,height:t},C&&(m.y=b.plotWidth-m.y));x&&c.isVML&&(m=g.isXAxis?{x:0,y:p?r:K,height:m.width,width:b.chartWidth}:{x:m.y-b.plotLeft-b.spacingBox.x,y:0,width:m.height,height:b.chartHeight});f[n]?f[n].animate(m):(f[n]=c.clipRect(m),k&&a["zone-graph-"+n].clip(f[n]),l&&a["zone-area-"+n].clip(f[n]));v=d.value>z.max}),this.clips=f)},invertGroups:function(a){function b(){u(["group", +"markerGroup"],function(b){c[b]&&(d.renderer.isVML&&c[b].attr({width:c.yAxis.len,height:c.xAxis.len}),c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,d=c.chart,h;c.xAxis&&(h=D(d,"resize",b),D(c,"destroy",h),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,h){var e=this[a],n=!e;n&&(this[a]=e=this.chart.renderer.g().attr({zIndex:d||.1}).add(h));e.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+ +" "+(this.options.className||""),!0);e.attr({visibility:c})[n?"attr":"animate"](this.getPlotBox());return e},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,h=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,e=a.visible?"inherit":"hidden",f=d.zIndex,m=a.hasRendered,k=b.seriesGroup,l=b.inverted;c=a.plotGroup("group", +"series",e,f,k);a.markerGroup=a.plotGroup("markerGroup","markers",e,f,k);h&&a.animate(!0);c.inverted=a.isCartesian?l:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(l);!1===d.clip||a.sharedClipKey||m||c.clip(b.clipRect);h&&a.animate();m||(a.animationTimeout=z(function(){a.afterAnimate()},h));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart, +b=this.isDirty||this.isDirtyData,c=this.group,d=this.xAxis,h=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:I(d&&d.left,a.plotLeft),translateY:I(h&&h.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,h=this.chart.inverted;return this.searchKDTree({clientX:h?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:h?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var h,n;if(n=c&&c.length)return h=b.kdAxisArray[d%e],c.sort(function(a,b){return a[h]-b[h]}),n=Math.floor(n/2),{point:c[n],left:a(c.slice(0,n),d+1,e),right:a(c.slice(n+1),d+1,e)}}this.buildingKdTree=!0;var b=this,c=-1l?"left":"right";g=0>l?"right":"left";b[q]&&(q=c(a,b[q],n+1,m),z=q[f]p;)g--; +this.updateParallelArrays(k,"splice",g,0,0);this.updateParallelArrays(k,g);h&&k.name&&(h[p]=k.name);m.splice(g,0,a);l&&(this.data.splice(g,0,null),this.processData());"point"===b.legendType&&this.generatePoints();d&&(n[0]&&n[0].remove?n[0].remove(!1):(n.shift(),this.updateParallelArrays(k,"shift"),m.shift()));this.isDirtyData=this.isDirty=!0;c&&f.redraw(e)},removePoint:function(a,c,d){var b=this,e=b.data,n=e[a],f=b.points,h=b.chart,k=function(){f&&f.length===e.length&&f.splice(a,1);e.splice(a,1); +b.options.data.splice(a,1);b.updateParallelArrays(n||{series:b},"splice",a,1);n&&n.destroy();b.isDirty=!0;b.isDirtyData=!0;c&&h.redraw()};m(d,h);c=C(c,!0);n?n.firePointEvent("remove",null,k):k()},remove:function(a,c,d){function b(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(c)}var e=this,f=e.chart;!1!==d?u(e,"remove",null,b):b()},update:function(a,c){var b=this,e=b.chart,f=b.userOptions,n=b.oldType||b.type,m=a.type||f.type||e.options.chart.type,h=I[n].prototype,k, +l=["group","markerGroup","dataLabelsGroup","navigatorSeries","baseSeries"],q=b.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(a).toString())return this.setData(a.data,c);if(m&&m!==n||void 0!==a.zIndex)l.length=0;p(l,function(a){l[a]=b[a];delete b[a]});a=d(f,q,{index:b.index,pointStart:b.xData[0]},{data:b.options.data},a);b.remove(!1,null,!1);for(k in h)b[k]=void 0;v(b,I[m||n].prototype);p(l,function(a){b[a]=l[a]});b.init(e,a);b.oldType=n;e.linkSeries();C(c,!0)&&e.redraw(!1)}}); +v(G.prototype,{update:function(a,c){var b=this.chart;a=b.options[this.coll][this.options.index]=d(this.userOptions,a);this.destroy(!0);this.init(b,v(a,{events:void 0}));b.isDirtyBox=!0;C(c,!0)&&b.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);t(b.axes,this);t(b[c],this);f(b.options[c])?b.options[c].splice(this.options.index,1):delete b.options[c];p(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()}, +setTitle:function(a,c){this.update({title:a},c)},setCategories:function(a,c){this.update({categories:a},c)}})})(M);(function(a){var D=a.color,B=a.each,G=a.map,E=a.pick,r=a.Series,g=a.seriesType;g("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(g){var p=[],r=[],u=this.xAxis,l=this.yAxis,e=l.stacks[this.stackKey],k={},f=this.index,d=l.series,x=d.length,C,c=E(l.options.reversedStacks,!0)?1:-1,q;g=g||this.points;if(this.options.stacking){for(q=0;qa&&v>g?(v=Math.max(a,g),l=2*g-v):vE&&l>g?(l=Math.max(E,g),v=2*g-l):l=Math.abs(e)&&.5a.closestPointRange*a.xAxis.transA,f=a.borderWidth=p(k.borderWidth,f?0:1),d=a.yAxis, +g=a.translatedThreshold=d.getThreshold(k.threshold),C=p(k.minPointLength,5),c=a.getColumnMetrics(),q=c.width,r=a.barW=Math.max(q,1+2*f),m=a.pointXOffset=c.offset;e.inverted&&(g-=.5);k.pointPadding&&(r=Math.ceil(r));t.prototype.translate.apply(a);G(a.points,function(c){var b=p(c.yBottom,g),f=999+Math.abs(b),f=Math.min(Math.max(-f,c.plotY),d.len+f),k=c.plotX+m,l=r,x=Math.min(f,b),n,H=Math.max(f,b)-x;Math.abs(H)C?b-C:g-(n? +C:0));c.barX=k;c.pointWidth=q;c.tooltipPos=e.inverted?[d.len+d.pos-e.plotLeft-f,a.xAxis.len-k-l/2,H]:[k+l/2,f+d.pos-e.plotTop,H];c.shapeType="rect";c.shapeArgs=a.crispCol.apply(a,c.isNull?[k,g,l,0]:[k,x,l,H])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,e){var k=this.options,f,d=this.pointAttrToOptions||{};f=d.stroke||"borderColor";var l=d["stroke-width"]|| +"borderWidth",p=a&&a.color||this.color,c=a[f]||k[f]||this.color||p,q=a[l]||k[l]||this[l]||0,d=k.dashStyle;a&&this.zones.length&&(p=a.getZone(),p=a.options.color||p&&p.color||this.color);e&&(a=g(k.states[e],a.options.states&&a.options.states[e]||{}),e=a.brightness,p=a.color||void 0!==e&&B(p).brighten(a.brightness).get()||p,c=a[f]||c,q=a[l]||q,d=a.dashStyle||d);f={fill:p,stroke:c,"stroke-width":q};d&&(f.dashstyle=d);return f},drawPoints:function(){var a=this,e=this.chart,k=a.options,f=e.renderer,d= +k.animationLimit||250,p;G(a.points,function(l){var c=l.graphic;if(r(l.plotY)&&null!==l.y){p=l.shapeArgs;if(c)c[e.pointCountv;++v)u=p[v],a=2>v||2===v&&/%$/.test(u),p[v]=B(u,[g,E,t,p[2]][v])+(a?r:0);p[3]>p[2]&&(p[3]=p[2]);return p}}})(M); +(function(a){var D=a.addEvent,B=a.defined,G=a.each,E=a.extend,r=a.inArray,g=a.noop,p=a.pick,t=a.Point,v=a.Series,u=a.seriesType,l=a.setAnimation;u("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:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,f=e.points,d=e.startAngleRad;a||(G(f,function(a){var f=a.graphic,c=a.shapeArgs;f&&(f.attr({r:a.startR||e.center[3]/2,start:d,end:d}),f.animate({r:c.r,start:c.start,end:c.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,k=0,f=this.points,d=f.length,g, +l=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);A.slicedTranslation={translateX:Math.round(Math.cos(q)*d),translateY:Math.round(Math.sin(q)*d)};c=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;A.tooltipPos=[a[0]+.7*c,a[1]+.7*b];A.half=q<-Math.PI/2||q>Math.PI/2?1:0;A.angle=q;l=Math.min(g,A.labelDistance/5);A.labelPos=[a[0]+c+Math.cos(q)*A.labelDistance,a[1]+b+Math.sin(q)*A.labelDistance,a[0]+c+Math.cos(q)* +l,a[1]+b+Math.sin(q)*l,a[0]+c,a[1]+b,0>A.labelDistance?"center":A.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,k=a.chart.renderer,f,d,g,l,c=a.options.shadow;c&&!a.shadowGroup&&(a.shadowGroup=k.g("shadow").add(a.group));G(a.points,function(e){if(!e.isNull){d=e.graphic;l=e.shapeArgs;f=e.getTranslate();var q=e.shadowGroup;c&&!q&&(q=e.shadowGroup=k.g("shadow").add(a.shadowGroup));q&&q.attr(f);g=a.pointAttribs(e,e.selected&&"select");d?d.setRadialReference(a.center).attr(g).animate(E(l, +f)):(e.graphic=d=k[e.shapeType](l).setRadialReference(a.center).attr(f).add(a.group),e.visible||d.attr({visibility:"hidden"}),d.attr(g).attr({"stroke-linejoin":"round"}).shadow(c,q));d.addClass(e.getClassName())}})},searchPoint:g,sortByAngle:function(a,k){a.sort(function(a,d){return void 0!==a.angle&&(d.angle-a.angle)*k})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:g},{init:function(){t.prototype.init.apply(this,arguments);var a=this,k;a.name= +p(a.name,"Slice");k=function(e){a.slice("select"===e.type)};D(a,"select",k);D(a,"unselect",k);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,k){var e=this,d=e.series,g=d.chart,l=d.options.ignoreHiddenPoint;k=p(k,l);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,d.options.data[r(e,d.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(c){if(e[c])e[c][a?"show":"hide"](!0)}),e.legendItem&&g.legend.colorizeItem(e, +a),a||"hover"!==e.state||e.setState(""),l&&(d.isDirty=!0),k&&g.redraw())},slice:function(a,k,f){var d=this.series;l(f,d.chart);p(k,!0);this.sliced=this.options.sliced=B(a)?a:!this.sliced;d.options.data[r(this,d.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(a){var e=this.shapeArgs;return this.sliced||!this.visible? +[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(M);(function(a){var D=a.addEvent,B=a.arrayMax,G=a.defined,E=a.each,r=a.extend,g=a.format,p=a.map,t=a.merge,v=a.noop,u=a.pick,l=a.relativeLength,e=a.Series,k=a.seriesTypes,f=a.stableSort;a.distribute=function(a,e){function d(a,c){return a.target-c.target}var c,k=!0,g=a,m=[],l;l=0;for(c=a.length;c--;)l+=a[c].size;if(l>e){f(a,function(a,c){return(c.rank||0)-(a.rank||0)});for(l=c=0;l<= +e;)l+=a[c].size,c++;m=a.splice(c-1,a.length)}f(a,d);for(a=p(a,function(a){return{size:a.size,targets:[a.target]}});k;){for(c=a.length;c--;)k=a[c],l=(Math.min.apply(0,k.targets)+Math.max.apply(0,k.targets))/2,k.pos=Math.min(Math.max(0,l-k.size/2),e-k.size);c=a.length;for(k=!1;c--;)0a[c].pos&&(a[c-1].size+=a[c].size,a[c-1].targets=a[c-1].targets.concat(a[c].targets),a[c-1].pos+a[c-1].size>e&&(a[c-1].pos=e-a[c-1].size),a.splice(c,1),k=!0)}c=0;E(a,function(a){var b=0;E(a.targets, +function(){g[c].pos=a.pos+b;b+=g[c].size;c++})});g.push.apply(g,m);f(g,d)};e.prototype.drawDataLabels=function(){var d=this,e=d.options,f=e.dataLabels,c=d.points,k,l,m=d.hasRendered||0,p,b,z=u(f.defer,!!e.animation),r=d.chart.renderer;if(f.enabled||d._hasPointLabels)d.dlProcessOptions&&d.dlProcessOptions(f),b=d.plotGroup("dataLabelsGroup","data-labels",z&&!m?"hidden":"visible",f.zIndex||6),z&&(b.attr({opacity:+m}),m||D(d,"afterAnimate",function(){d.visible&&b.show(!0);b[e.animation?"animate":"attr"]({opacity:1}, +{duration:200})})),l=f,E(c,function(c){var m,n=c.dataLabel,q,h,w=c.connector,z=!n,y;k=c.dlOptions||c.options&&c.options.dataLabels;if(m=u(k&&k.enabled,l.enabled)&&null!==c.y)f=t(l,k),q=c.getLabelConfig(),p=f.format?g(f.format,q):f.formatter.call(q,f),y=f.style,q=f.rotation,y.color=u(f.color,y.color,d.color,"#000000"),"contrast"===y.color&&(c.contrastColor=r.getContrast(c.color||d.color),y.color=f.inside||0>u(c.labelDistance,f.distance)||e.stacking?c.contrastColor:"#000000"),e.cursor&&(y.cursor=e.cursor), +h={fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth,r:f.borderRadius||0,rotation:q,padding:f.padding,zIndex:1},a.objectEach(h,function(a,b){void 0===a&&delete h[b]});!n||m&&G(p)?m&&G(p)&&(n?h.text=p:(n=c.dataLabel=r[q?"text":"label"](p,0,-9999,f.shape,null,null,f.useHTML,null,"data-label"),n.addClass("highcharts-data-label-color-"+c.colorIndex+" "+(f.className||"")+(f.useHTML?"highcharts-tracker":""))),n.attr(h),n.css(y).shadow(f.shadow),n.added||n.add(b),d.alignDataLabel(c, +n,f,null,z)):(c.dataLabel=n=n.destroy(),w&&(c.connector=w.destroy()))})};e.prototype.alignDataLabel=function(a,e,f,c,k){var d=this.chart,m=d.inverted,g=u(a.plotX,-9999),b=u(a.plotY,-9999),l=e.getBBox(),q,p=f.rotation,x=f.align,n=this.visible&&(a.series.forceDL||d.isInsidePlot(g,Math.round(b),m)||c&&d.isInsidePlot(g,m?c.x+1:c.y+c.height-1,m)),H="justify"===u(f.overflow,"justify");if(n&&(q=f.style.fontSize,q=d.renderer.fontMetrics(q,e).b,c=r({x:m?this.yAxis.len-b:g,y:Math.round(m?this.xAxis.len-g:b), +width:0,height:0},c),r(f,{width:l.width,height:l.height}),p?(H=!1,g=d.renderer.rotCorr(q,p),g={x:c.x+f.x+c.width/2+g.x,y:c.y+f.y+{top:0,middle:.5,bottom:1}[f.verticalAlign]*c.height},e[k?"attr":"animate"](g).attr({align:x}),b=(p+720)%360,b=180b,"left"===x?g.y-=b?l.height:0:"center"===x?(g.x-=l.width/2,g.y-=l.height/2):"right"===x&&(g.x-=l.width,g.y-=b?0:l.height)):(e.align(f,null,c),g=e.alignAttr),H?a.isLabelJustified=this.justifyDataLabel(e,f,g,l,c,k):u(f.crop,!0)&&(n=d.isInsidePlot(g.x, +g.y)&&d.isInsidePlot(g.x+l.width,g.y+l.height)),f.shape&&!p))e[k?"attr":"animate"]({anchorX:m?d.plotWidth-a.plotY:a.plotX,anchorY:m?d.plotHeight-a.plotX:a.plotY});n||(e.attr({y:-9999}),e.placed=!1)};e.prototype.justifyDataLabel=function(a,e,f,c,k,g){var d=this.chart,l=e.align,b=e.verticalAlign,q,p,y=a.box?0:a.padding||0;q=f.x+y;0>q&&("right"===l?e.align="left":e.x=-q,p=!0);q=f.x+c.width-y;q>d.plotWidth&&("left"===l?e.align="right":e.x=d.plotWidth-q,p=!0);q=f.y+y;0>q&&("bottom"===b?e.verticalAlign= +"top":e.y=-q,p=!0);q=f.y+c.height-y;q>d.plotHeight&&("top"===b?e.verticalAlign="bottom":e.y=d.plotHeight-q,p=!0);p&&(a.placed=!g,a.align(e,null,k));return p};k.pie&&(k.pie.prototype.drawDataLabels=function(){var d=this,f=d.data,k,c=d.chart,g=d.options.dataLabels,l=u(g.connectorPadding,10),m=u(g.connectorWidth,1),p=c.plotWidth,b=c.plotHeight,z,r=d.center,y=r[2]/2,t=r[1],n,H,h,w,v=[[],[]],L,D,N,O,F=[0,0,0,0];d.visible&&(g.enabled||d._hasPointLabels)&&(E(f,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&& +(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),e.prototype.drawDataLabels.apply(d),E(f,function(a){a.dataLabel&&a.visible&&(v[a.half].push(a),a.dataLabel._pos=null)}),E(v,function(e,f){var m,q,z=e.length,x=[],A;if(z)for(d.sortByAngle(e,f-.5),0k.bottom-2?m:D,f,k),n._attr={visibility:N,align:h[6]}, +n._pos={x:L+g.x+({left:l,right:-l}[h[6]]||0),y:D+g.y-10},h.x=L,h.y=D,u(g.crop,!0)&&(H=n.getBBox().width,m=null,L-Hp-l&&(m=Math.round(L+H-p+l),F[1]=Math.max(m,F[1])),0>D-w/2?F[0]=Math.max(Math.round(-D+w/2),F[0]):D+w/2>b&&(F[2]=Math.max(Math.round(D+w/2-b),F[2])),n.sideOverflow=m)}),0===B(F)||this.verifyDataLabelOverflow(F))&&(this.placeDataLabels(),m&&E(this.points,function(a){var b;z=a.connector;if((n=a.dataLabel)&&n._pos&&a.visible&&0u(this.translatedThreshold,m.yAxis.len)),q=u(k.inside,!!this.options.stacking);l&&(c=t(l),0>c.y&&(c.height+=c.y,c.y=0),l=c.y+c.height-m.yAxis.len,0a+e||k+gd+f||b+lthis.pointCount))},pan:function(a,c){var b=this,d=b.hoverPoints,e;d&&p(d,function(a){a.setState()});p("xy"===c?[1,0]:[1],function(c){c=b[c?"xAxis":"yAxis"][0];var d=c.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",k=b[d],h=(c.pointRange||0)/2,m=c.getExtremes(),g=c.toValue(k-f,!0)+h,h=c.toValue(k+ +c.len-f,!0)-h,l=h=g(r.minWidth,0)&&this.chartHeight>=g(r.minHeight,0)}).call(this)&& +p.push(a._id)};D.prototype.currentOptions=function(g){function t(g,e,k,f){var d;a.objectEach(g,function(a,l){if(!f&&-1p.length||void 0===f)return a.call(this,k,f,d,l);x=p.length;for(m=0;md;p[m]5*c||y){if(p[m]> +n){for(t=a.call(this,k,p[e],p[m],l);t.length&&t[0]<=n;)t.shift();t.length&&(n=t[t.length-1]);A=A.concat(t)}e=m+1}if(y)break}a=t.info;if(q&&a.unitRange<=u.hour){m=A.length-1;for(e=1;ed?a-1:a;for(h=void 0;q--;)e=m[q],d=Math.abs(h-e),h&&d<.8* +H&&(null===z||d<.8*z)?(b[A[q]]&&!b[A[q+1]]?(d=q+1,h=e):d=q,A.splice(d,1)):h=e}return A});t(B.prototype,{beforeSetTickPositions:function(){var a,k=[],f=!1,d,g=this.getExtremes(),l=g.min,c=g.max,q,r=this.isXAxis&&!!this.options.breaks,g=this.options.ordinal,m=this.chart.options.chart.ignoreHiddenSeries;if(g||r){p(this.series,function(c,b){if(!(m&&!1===c.visible||!1===c.takeOrdinalPosition&&!r)&&(k=k.concat(c.processedXData),a=k.length,k.sort(function(a,b){return a-b}),a))for(b=a-1;b--;)k[b]===k[b+1]&& +k.splice(b,1)});a=k.length;if(2d||c-k[k.length-1]>d)&&(f=!0)}f?(this.ordinalPositions=k,d=this.ordinal2lin(Math.max(l,k[0]),!0),q=Math.max(this.ordinal2lin(Math.min(c,k[k.length-1]),!0),1),this.ordinalSlope=c=(c-l)/(q-d),this.ordinalOffset=l-d*c):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=g&&f;this.groupIntervalFactor=null},val2lin:function(a,k){var e=this.ordinalPositions; +if(e){var d=e.length,g,l;for(g=d;g--;)if(e[g]===a){l=g;break}for(g=d-1;g--;)if(a>e[g]||0===g){a=(a-e[g])/(e[g+1]-e[g]);l=g+a;break}k=k?l:this.ordinalSlope*(l||0)+this.ordinalOffset}else k=a;return k},lin2val:function(a,k){var e=this.ordinalPositions;if(e){var d=this.ordinalSlope,g=this.ordinalOffset,l=e.length-1,c;if(k)0>a?a=e[0]:a>l?a=e[l]:(l=Math.floor(a),c=a-l);else for(;l--;)if(k=d*l+g,a>=k){d=d*(l+1)+g;c=(a-k)/(d-k);break}return void 0!==c&&void 0!==e[l]?e[l]+(c?c*(e[l+1]-e[l]):0):a}return a}, +getExtendedPositions:function(){var a=this.chart,k=this.series[0].currentDataGrouping,f=this.ordinalIndex,d=k?k.count+k.unitName:"raw",g=this.getExtremes(),l,c;f||(f=this.ordinalIndex={});f[d]||(l={series:[],chart:a,getExtremes:function(){return{min:g.dataMin,max:g.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin,ordinal2lin:B.prototype.ordinal2lin},p(this.series,function(d){c={xAxis:l,xData:d.xData,chart:a,destroyGroupedData:v};c.options={dataGrouping:k?{enabled:!0,forced:!0,approximation:"open", +units:[[k.unitName,[k.count]]]}:{enabled:!1}};d.processData.apply(c);l.series.push(c)}),this.beforeSetTickPositions.apply(l),f[d]=l.ordinalPositions);return f[d]},getGroupIntervalFactor:function(a,k,f){var d;f=f.processedXData;var e=f.length,g=[];d=this.groupIntervalFactor;if(!d){for(d=0;dl?(t=z,y=e.ordinalPositions?e:z):(t=e.ordinalPositions?e:z,y=z),z=y.ordinalPositions,q>z[z.length-1]&&z.push(q),this.fixedRange=m-r,l=e.toFixedRange(null,null,b.apply(t,[u.apply(t,[r,!0])+l,!0]),b.apply(y,[u.apply(y,[m,!0])+l,!0])),l.min>=Math.min(c.dataMin,r)&&l.max<=Math.max(q,m)&&e.setExtremes(l.min,l.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,E(this.container,{cursor:"move"})):g=!0}else g=!0;g&&a.apply(this,Array.prototype.slice.call(arguments,1))})})(M); +(function(a){function D(){return Array.prototype.slice.call(arguments,1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,E=a.wrap,r=a.each,g=a.extend,p=a.isArray,t=a.fireEvent,v=a.Axis,u=a.Series;g(v.prototype,{isInBreak:function(a,e){var k=a.repeat||Infinity,f=a.from,d=a.to-a.from;e=e>=f?(e-f)%k:k-(f-e)%k;return a.inclusive?e<=d:e=a)break;else if(f.isInBreak(e,a)){d-=a-e.from;break}return d},f.lin2val=function(a){var d,e;for(e=0;e=a);e++)d.tol;)z-=g;for(;zd.to||g>d.from&&cd.from&&cd.from&&c>d.to&&cg&&(d=(e[k].x+ +e[k+1].x)/2,e.splice(k+1,0,{isNull:!0,x:d}),this.options.stacking&&(d=f.stacks[this.stackKey][d]=new a.StackItem(f,f.options.stackLabels,!1,d,this.stack),d.total=0));return this.getGraphPath(e)};E(a.seriesTypes.column.prototype,"drawPoints",B);E(a.Series.prototype,"drawPoints",B)})(M);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,E=a.defaultPlotOptions,r=a.defined,g=a.each,p=a.extend,t=a.format,v=a.isNumber,u=a.merge,l=a.pick,e=a.Point,k=a.Tooltip,f=a.wrap,d=a.Series.prototype,x=d.processData, +C=d.generatePoints,c=d.destroy,q={approximation:"average",groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %b %e, %H:%M:%S.%L","%A, %b %e, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %b %e, %H:%M:%S","%A, %b %e, %H:%M:%S","-%H:%M:%S"],minute:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],hour:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],day:["%A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],week:["Week from %A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y", +"%Y","-%Y"]}},I={line:{},spline:{},area:{},areaspline:{},column:{approximation:"sum",groupPixelWidth:10},arearange:{approximation:"range"},areasplinerange:{approximation:"range"},columnrange:{approximation:"range",groupPixelWidth:10},candlestick:{approximation:"ohlc",groupPixelWidth:10},ohlc:{approximation:"ohlc",groupPixelWidth:5}},m=a.defaultDataGroupingUnits=[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day", +[1]],["week",[1]],["month",[1,3,6]],["year",null]],J={sum:function(a){var b=a.length,c;if(!b&&a.hasNulls)c=null;else if(b)for(c=0;b--;)c+=a[b];return c},average:function(a){var b=a.length;a=J.sum(a);v(a)&&b&&(a/=b);return a},averages:function(){var a=[];g(arguments,function(b){a.push(J.average(b))});return a},open:function(a){return a.length?a[0]:a.hasNulls?null:void 0},high:function(a){return a.length?D(a):a.hasNulls?null:void 0},low:function(a){return a.length?B(a):a.hasNulls?null:void 0},close:function(a){return a.length? +a[a.length-1]:a.hasNulls?null:void 0},ohlc:function(a,c,d,e){a=J.open(a);c=J.high(c);d=J.low(d);e=J.close(e);if(v(a)||v(c)||v(d)||v(e))return[a,c,d,e]},range:function(a,c){a=J.low(a);c=J.high(c);if(v(a)||v(c))return[a,c];if(null===a&&null===c)return null}};d.groupData=function(a,c,d,e){var b=this.data,f=this.options.data,k=[],h=[],l=[],m=a.length,p,r,t=!!c,u=[];e="function"===typeof e?e:J[e]||I[this.type]&&J[I[this.type].approximation]||J[q.approximation];var z=this.pointArrayMap,y=z&&z.length,x= +0;r=0;var C,K;y?g(z,function(){u.push([])}):u.push([]);C=y||1;for(K=0;K<=m&&!(a[K]>=d[0]);K++);for(K;K<=m;K++){for(;void 0!==d[x+1]&&a[K]>=d[x+1]||K===m;){p=d[x];this.dataGroupInfo={start:r,length:u[0].length};r=e.apply(this,u);void 0!==r&&(k.push(p),h.push(r),l.push(this.dataGroupInfo));r=K;for(p=0;pthis.chart.plotSizeX/e||c&&n.forced)&&(f=!0);return f? +e:0};G.prototype.setDataGrouping=function(a,c){var b;c=l(c,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(b=this.series.length;b--;)this.series[b].update({dataGrouping:a},!1);else g(this.chart.options.series,function(b){b.dataGrouping=a},!1);c&&this.chart.redraw()}})(M);(function(a){var D=a.each,B=a.Point,G=a.seriesType,E=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0},{directTouch:!1,pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"close",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointAttribs:function(a,g){g=E.column.prototype.pointAttribs.call(this,a,g);var p=this.options;delete g.fill;!a.options.color&&p.upColor&&a.opend)););B(f,function(a,c){var d;void 0===a.plotY&&(a.x>=b.min&&a.x<=b.max?a.plotY=k.chartHeight-m.bottom-(m.opposite?m.height:0)+m.offset-u.top:a.shapeArgs={});a.plotX+=z;(r=f[c-1])&&r.plotX===a.plotX&&(void 0=== +r.stackIndex&&(r.stackIndex=0),d=r.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var e=this.points,g=this.chart,f=g.renderer,d,l,p=this.options,c=p.y,q,r,m,t,b,u,v,y=this.yAxis;for(r=e.length;r--;)m=e[r],v=m.plotX>this.xAxis.len,d=m.plotX,t=m.stackIndex,q=m.options.shape||p.shape,l=m.plotY,void 0!==l&&(l=m.plotY+c-(void 0!==t&&t*p.stackDistance)),b=t?void 0:m.plotX,u=t?void 0:m.plotY,t=m.graphic,void 0!==l&&0<=d&&!v?(t||(t=m.graphic=f.label("",null,null,q,null,null,p.useHTML).attr(this.pointAttribs(m)).css(G(p.style, +m.style)).attr({align:"flag"===q?"left":"center",width:p.width,height:p.height,"text-align":p.textAlign}).addClass("highcharts-point").add(this.markerGroup),m.graphic.div&&(m.graphic.div.point=m),t.shadow(p.shadow)),0d&&(e-=Math.round((g-d)/2),d=g);e=u[a](e,f,d,g);c&&l&&e.push("M",c,f>l?f:f+g,"L",c,l);return e}});r===v&&B(["flag","circlepin","squarepin"],function(a){v.prototype.symbols[a]=u[a]})})(M);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,E=a.correctFloat,r=a.defaultOptions,g=a.defined,p=a.destroyObjectProperties,t=a.each,v=a.fireEvent,u=a.hasTouch,l=a.isTouchDevice, +e=a.merge,k=a.pick,f=a.removeEvent,d=a.wrap,x,C={height:l?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!l,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2",trackBorderWidth:1};r.scrollbar=e(!0,C,r.scrollbar);a.swapXY=x=function(a,d){var c= +a.length,e;if(d)for(d=0;d=l?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===c.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(c){var d=a.chart.pointer.normalize(c),e=a.options.vertical?"chartY":"chartX",f=a.initPositions;!a.grabbedCenter||c.touches&&0===c.touches[0][e]|| +(d=a.cursorToScrollbarPosition(d)[e],e=a[e],e=d-e,a.hasDragged=!0,a.updatePosition(f[0]+e,f[1]+e),a.hasDragged&&v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:c.type,DOMEvent:c}))};a.mouseUpHandler=function(c){a.hasDragged&&v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:c.type,DOMEvent:c});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(c){c=a.chart.pointer.normalize(c);c=a.cursorToScrollbarPosition(c);a.chartX=c.chartX;a.chartY=c.chartY; +a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(c){var d=E(a.to-a.from)*a.options.step;a.updatePosition(E(a.from-d),E(a.to-d));v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})};a.buttonToMaxClick=function(c){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})};a.trackClick=function(c){var d=a.chart.pointer.normalize(c),e=a.to-a.from,f=a.y+a.scrollbarTop,b=a.x+a.scrollbarLeft; +a.options.vertical&&d.chartY>f||!a.options.vertical&&d.chartX>b?a.updatePosition(a.from+e,a.to+e):a.updatePosition(a.from-e,a.to-e);v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})}},cursorToScrollbarPosition:function(a){var c=this.options,c=c.minWidth>this.calculatedWidth?c.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-c),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-c)}},updatePosition:function(a,d){1a&&(d=E(d-a),a=0); +this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,e(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,f=this.mouseDownHandler,g=this.mouseMoveHandler,b=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e,"mousedown",f],[e.ownerDocument,"mousemove",g],[e.ownerDocument, +"mouseup",b]];u&&a.push([e,"touchstart",f],[e.ownerDocument,"touchmove",g],[e.ownerDocument,"touchend",b]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){f.apply(null,a)});this._events.length=0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&this===a.scrollbar&&(a.scrollbar=null,p(a.scrollbarButtons))}}; +d(G.prototype,"init",function(a){var c=this;a.apply(c,Array.prototype.slice.call(arguments,1));c.options.scrollbar&&c.options.scrollbar.enabled&&(c.options.scrollbar.vertical=!c.horiz,c.options.startOnTick=c.options.endOnTick=!1,c.scrollbar=new D(c.chart.renderer,c.options.scrollbar,c.chart),B(c.scrollbar,"changed",function(a){var d=Math.min(k(c.options.min,c.min),c.min,c.dataMin),e=Math.max(k(c.options.max,c.max),c.max,c.dataMax)-d,b;c.horiz&&!c.reversed||!c.horiz&&c.reversed?(b=d+e*this.to,d+=e* +this.from):(b=d+e*(1-this.from),d+=e*(1-this.to));c.setExtremes(d,b,!0,!1,a)}))});d(G.prototype,"render",function(a){var c=Math.min(k(this.options.min,this.min),this.min,k(this.dataMin,this.min)),d=Math.max(k(this.options.max,this.max),this.max,k(this.dataMax,this.max)),e=this.scrollbar,f=this.titleOffset||0;a.apply(this,Array.prototype.slice.call(arguments,1));if(e){this.horiz?(e.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:f+this.axisTitleMargin+this.offset), +this.width,this.height),f=1):(e.position(this.left+this.width+2+this.chart.scrollbarsOffsets[0]+(this.opposite?f+this.axisTitleMargin+this.offset:0),this.top,this.width,this.height),f=0);if(!this.opposite&&!this.horiz||this.opposite&&this.horiz)this.chart.scrollbarsOffsets[f]+=this.scrollbar.size+this.scrollbar.options.margin;isNaN(c)||isNaN(d)||!g(this.min)||!g(this.max)?e.setRange(0,0):(f=(this.min-c)/(d-c),c=(this.max-c)/(d-c),this.horiz&&!this.reversed||!this.horiz&&this.reversed?e.setRange(f, +c):e.setRange(1-c,1-f))}});d(G.prototype,"getOffset",function(a){var c=this.horiz?2:1,d=this.scrollbar;a.apply(this,Array.prototype.slice.call(arguments,1));d&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[c]+=d.size+d.options.margin)});d(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy());a.apply(this,Array.prototype.slice.call(arguments,1))});a.Scrollbar=D})(M);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,E=a.Chart,r=a.color, +g=a.defaultOptions,p=a.defined,t=a.destroyObjectProperties,v=a.each,u=a.erase,l=a.error,e=a.extend,k=a.grep,f=a.hasTouch,d=a.isArray,x=a.isNumber,C=a.isObject,c=a.merge,q=a.pick,I=a.removeEvent,m=a.Scrollbar,J=a.Series,b=a.seriesTypes,z=a.wrap,K=a.swapXY,y=[].concat(a.defaultDataGroupingUnits),A=function(a){var b=k(arguments,x);if(b.length)return Math[a].apply(0,b)};y[4]=["day",[1,2,3,4]];y[5]=["week",[1,2,3]];b=void 0===b.areaspline?"line":"areaspline";e(g,{navigator:{height:40,margin:25,maskInside:!0, +handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:r("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:b,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:y},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis", +tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}});D.prototype={drawHandle:function(a,b,c,d){this.handles[b][d](c?{translateX:Math.round(this.left+this.height/2-8),translateY:Math.round(this.top+parseInt(a, +10)+.5)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},getHandlePath:function(a){return K(["M",-4.5,.5,"L",3.5,.5,"L",3.5,15.5,"L",-4.5,15.5,"L",-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12],a)},drawOutline:function(a,b,c,d){var e=this.navigatorOptions.maskInside,h=this.outline.strokeWidth(),f=h/2,h=h%2/2,g=this.outlineHeight,n=this.scrollbarHeight,k=this.size,l=this.left-n,m=this.top;c?(l-=f,c=m+b+h,b=m+a+h,a=["M",l+g,m-n-h,"L",l+g,c,"L", +l,c,"L",l,b,"L",l+g,b,"L",l+g,m+k+n].concat(e?["M",l+g,c-f,"L",l+g,b+f]:[])):(a+=l+n-h,b+=l+n-h,m+=f,a=["M",l,m,"L",a,m,"L",a,m+g,"L",b,m+g,"L",b,m,"L",l+k+2*n,m].concat(e?["M",a-f,m,"L",b+f,m]:[]));this.outline[d]({d:a})},drawMasks:function(a,b,c,d){var e=this.left,h=this.top,f=this.height,g,n,k,l;c?(k=[e,e,e],l=[h,h+a,h+b],n=[f,f,f],g=[a,b-a,this.size-b]):(k=[e,e+a,e+b],l=[h,h,h],n=[a,b-a,this.size-b],g=[f,f,f]);v(this.shades,function(a,b){a[d]({x:k[b],y:l[b],width:n[b],height:g[b]})})},renderElements:function(){var a= +this,b=a.navigatorOptions,c=b.maskInside,d=a.chart,e=d.inverted,f=d.renderer,g;a.navigatorGroup=g=f.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();var k={cursor:e?"ns-resize":"ew-resize"};v([!c,c,!c],function(c,d){a.shades[d]=f.rect().addClass("highcharts-navigator-mask"+(1===d?"-inside":"-outside")).attr({fill:c?b.maskFill:"rgba(0,0,0,0)"}).css(1===d&&k).add(g)});a.outline=f.path().addClass("highcharts-navigator-outline").attr({"stroke-width":b.outlineWidth,stroke:b.outlineColor}).add(g); +v([0,1],function(c){a.handles[c]=f.path(a.getHandlePath(e)).attr({zIndex:7-c}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][c]).add(g);var d=b.handles;a.handles[c].attr({fill:d.backgroundColor,stroke:d.borderColor,"stroke-width":1}).css(k)})},update:function(a){v(this.series||[],function(a){a.baseSeries&&delete a.baseSeries.navigatorSeries});this.destroy();c(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e= +this.chart,h,f,g=this.scrollbarHeight,n,k=this.xAxis;h=k.fake?e.xAxis[0]:k;var l=this.navigatorEnabled,m,r=this.rendered;f=e.inverted;var w=e.xAxis[0].minRange;if(!this.hasDragged||p(c)){if(!x(a)||!x(b))if(r)c=0,d=k.width;else return;this.left=q(k.left,e.plotLeft+g+(f?e.plotWidth:0));this.size=m=n=q(k.len,(f?e.plotHeight:e.plotWidth)-2*g);e=f?g:n+2*g;c=q(c,k.toPixels(a,!0));d=q(d,k.toPixels(b,!0));x(c)&&Infinity!==Math.abs(c)||(c=0,d=e);a=k.toValue(c,!0);b=k.toValue(d,!0);if(Math.abs(b-a)=g&&(a=g-k,l=this.getUnionExtremes().dataMax),a!==e&&(this.fixedWidth=k,b=d.toFixedRange(a,a+k,null,l),c.xAxis[0].setExtremes(Math.min(b.min,b.max),Math.max(b.min,b.max),!0,null,{trigger:"navigator"})))},handlesMousedown:function(a,b){this.chart.pointer.normalize(a); +a=this.chart;var c=a.xAxis[0],d=a.inverted&&!c.reversed||!a.inverted&&c.reversed;0===b?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=d?c.min:c.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=d?c.max:c.min);a.fixedRange=null},onMouseMove:function(a){var b=this,c=b.chart,d=b.left,e=b.navigatorSize,f=b.range,g=b.dragOffset,k=c.inverted;a.touches&&0===a.touches[0].pageX||(a=c.pointer.normalize(a),c=a.chartX,k&&(d=b.top,c=a.chartY),b.grabbedLeft? +(b.hasDragged=!0,b.render(0,0,c-d,b.otherHandlePos)):b.grabbedRight?(b.hasDragged=!0,b.render(0,0,b.otherHandlePos,c-d)):b.grabbedCenter&&(b.hasDragged=!0,ce+g-f&&(c=e+g-f),b.render(0,0,c-g,c-g+f)),b.hasDragged&&b.scrollbar&&b.scrollbar.options.liveRedraw&&(a.DOMType=a.type,setTimeout(function(){b.onMouseUp(a)},0)))},onMouseUp:function(a){var b=this.chart,c=this.xAxis,d=this.scrollbar,e,f,g=a.DOMEvent||a;(!this.hasDragged||d&&d.hasDragged)&&"scrollbar"!==a.trigger||(this.zoomedMin===this.otherHandlePos? +e=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(f=this.fixedExtreme),this.zoomedMax===this.size&&(f=this.getUnionExtremes().dataMax),c=c.toFixedRange(this.zoomedMin,this.zoomedMax,e,f),p(c.min)&&b.xAxis[0].setExtremes(Math.min(c.min,c.max),Math.max(c.min,c.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:g}));"mousemove"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged= +this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(v(this.eventsToUnbind,function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&v(a,function(a){I(a,"updatedData",this.updatedDataHandler)},this),a[0].xAxis&&I(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(a){var b=a.options,d=b.navigator,e=d.enabled, +f=b.scrollbar,g=f.enabled,b=e?d.height:0,k=g?f.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=b;this.scrollbarHeight=k;this.scrollbarEnabled=g;this.navigatorEnabled=e;this.navigatorOptions=d;this.scrollbarOptions=f;this.outlineHeight=b+k;this.opposite=q(d.opposite,!e&&a.inverted);var n=this,f=n.baseSeries,g=a.xAxis.length,l=a.yAxis.length,p=f&&f[0]&&f[0].xAxis||a.xAxis[0];a.extraMargin={type:n.opposite?"plotTop":"marginBottom",value:(e||!a.inverted?n.outlineHeight: +0)+d.margin};a.inverted&&(a.extraMargin.type=n.opposite?"marginRight":"plotLeft");a.isDirtyBox=!0;n.navigatorEnabled?(n.xAxis=new G(a,c({breaks:p.options.breaks,ordinal:p.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",isX:!0,type:"datetime",index:g,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[k,0,-k,0],width:b}:{offsets:[0,-k,0,k],height:b})),n.yAxis=new G(a,c(d.yAxis,{id:"navigator-y-axis",alignTicks:!1, +offset:0,index:l,zoomEnabled:!1},a.inverted?{width:b}:{height:b})),f||d.series.data?n.updateNavigatorSeries():0===a.series.length&&z(a,"redraw",function(b,c){0a.inArray(d,f)?(d&&(I(d,"updatedData",b.updatedDataHandler),delete d.navigatorSeries),c.destroy(),!1):!0});f&&f.length&& +v(f,function(a,f){var h=a.navigatorSeries,n=d(l)?{}:l;h&&!1===b.navigatorOptions.adaptToUpdatedData||(p.name="Navigator "+(f+1),g=a.options||{},m=g.navigatorOptions||{},k=c(g,p,n,m),f=m.data||n.data,b.hasNavigatorData=b.hasNavigatorData||!!f,k.data=f||g.data&&g.data.slice(0),h?h.update(k):(a.navigatorSeries=e.initSeries(k),a.navigatorSeries.baseSeries=a,q.push(a.navigatorSeries)))});if(l.data&&(!f||!f.length)||d(l))b.hasNavigatorData=!1,l=a.splat(l),v(l,function(a,d){k=c({color:e.series[d]&&!e.series[d].options.isInternal&& +e.series[d].color||e.options.colors[d]||e.options.colors[0]},a,p);k.data=a.data;k.data&&(b.hasNavigatorData=!0,q.push(e.initSeries(k)))});this.addBaseSeriesEvents()},addBaseSeriesEvents:function(){var a=this,b=a.baseSeries||[];b[0]&&b[0].xAxis&&B(b[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes);v(b,function(b){B(b,"show",function(){this.navigatorSeries&&this.navigatorSeries.show()});B(b,"hide",function(){this.navigatorSeries&&this.navigatorSeries.hide()});!1!==this.navigatorOptions.adaptToUpdatedData&& +b.xAxis&&B(b,"updatedData",this.updatedDataHandler);B(b,"remove",function(){this.navigatorSeries&&(u(a.series,this.navigatorSeries),this.navigatorSeries.remove(!1),delete this.navigatorSeries)})},this)},modifyNavigatorAxisExtremes:function(){var a=this.xAxis,b;a.getExtremes&&(!(b=this.getUnionExtremes(!0))||b.dataMin===a.min&&b.dataMax===a.max||(a.min=b.dataMin,a.max=b.dataMax))},modifyBaseAxisExtremes:function(){var a=this.chart.navigator,b=this.getExtremes(),c=b.dataMin,d=b.dataMax,b=b.max-b.min, +e=a.stickToMin,f=a.stickToMax,g,k,l=a.series&&a.series[0],m=!!this.setExtremes;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(e&&(k=c,g=k+b),f&&(g=d,e||(k=Math.max(g-b,l&&l.xData?l.xData[0]:-Number.MAX_VALUE))),m&&(e||f)&&x(k)&&(this.min=this.userMin=k,this.max=this.userMax=g));a.stickToMin=a.stickToMax=null},updatedDataHandler:function(){var a=this.chart.navigator,b=this.navigatorSeries;a.stickToMax=Math.round(a.zoomedMax)>=Math.round(a.size);a.stickToMin=x(this.xAxis.min)&&this.xAxis.min<= +this.xData[0]&&(!this.chart.fixedRange||!a.stickToMax);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){B(this.chart,"redraw",function(){var a=this.navigator,b=a&&(a.baseSeries&&a.baseSeries[0]&&a.baseSeries[0].xAxis||a.scrollbar&&this.xAxis[0]);b&&a.render(b.min,b.max)})},destroy:function(){this.removeEvents();this.xAxis&&(u(this.chart.xAxis,this.xAxis),u(this.chart.axes,this.xAxis));this.yAxis&&(u(this.chart.yAxis,this.yAxis), +u(this.chart.axes,this.yAxis));v(this.series||[],function(a){a.destroy&&a.destroy()});v("series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "),function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);v([this.handles],function(a){t(a)},this)}};a.Navigator=D;z(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,h=e.navigator,e=e.rangeSelector,g;this.isXAxis&&(h&&h.enabled||e&&e.enabled)&& +("x"===f?d.resetZoomButton="blocked":"y"===f?g=!1:"xy"===f&&(d=this.previousZoom,p(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!==g?g:a.call(this,b,c)});z(E.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});z(E.prototype,"setChartSize",function(a){var b=this.legend,c=this.navigator,d,e,f,g;a.apply(this, +[].slice.call(arguments,1));c&&(e=b.options,f=c.xAxis,g=c.yAxis,d=c.scrollbarHeight,this.inverted?(c.left=c.opposite?this.chartWidth-d-c.height:this.spacing[3]+d,c.top=this.plotTop+d):(c.left=this.plotLeft+d,c.top=c.navigatorOptions.top||this.chartHeight-c.height-d-this.spacing[2]-("bottom"===e.verticalAlign&&e.enabled&&!e.floating?b.legendHeight+q(e.margin,10):0)),f&&g&&(this.inverted?f.options.left=g.options.left=c.left:f.options.top=g.options.top=c.top,f.setAxisSize(),g.setAxisSize()))});z(J.prototype, +"addPoint",function(a,b,c,d,e){var f=this.options.turboThreshold;f&&this.xData.length>f&&C(b,!0)&&this.chart.navigator&&l(20,!0);a.call(this,b,c,d,e)});z(E.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.navigator&&this.navigator.setBaseSeries();q(c,!0)&&this.redraw();return a});z(J.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries();q(c,!0)&&this.chart.redraw()});E.prototype.callbacks.push(function(a){var b= +a.navigator;b&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(M);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,E=a.Chart,r=a.css,g=a.createElement,p=a.dateFormat,t=a.defaultOptions,v=t.global.useUTC,u=a.defined,l=a.destroyObjectProperties,e=a.discardElement,k=a.each,f=a.extend,d=a.fireEvent,x=a.Date,C=a.isNumber,c=a.merge,q=a.pick,I=a.pInt,m=a.splat,J=a.wrap;f(t,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});t.lang=c(t.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,c){var b=this,d=b.chart,e=b.buttonOptions[a],f=d.xAxis[0],g=d.scroller&&d.scroller.getUnionExtremes()||f||{},h=g.dataMin,l=g.dataMax,p,r=f&&Math.round(Math.min(f.max,q(l,f.max))),t=e.type,u,g=e._range,z,x,D,E=e.dataGrouping;if(null!==h&&null!==l){d.fixedRange=g;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(f||{chart:this.chart}, +E,!1));if("month"===t||"year"===t)f?(t={range:e,max:r,dataMin:h,dataMax:l},p=f.minFromRange.call(t),C(t.newMax)&&(r=t.newMax)):g=e;else if(g)p=Math.max(r-g,h),r=Math.min(p+g,l);else if("ytd"===t)if(f)void 0===l&&(h=Number.MAX_VALUE,l=Number.MIN_VALUE,k(d.series,function(a){a=a.xData;h=Math.min(a[0],h);l=Math.max(a[a.length-1],l)}),c=!1),r=b.getYTDExtremes(l,h,v),p=z=r.min,r=r.max;else{B(d,"beforeRender",function(){b.clickButton(a)});return}else"all"===t&&f&&(p=h,r=l);b.setSelected(a);f?f.setExtremes(p, +r,q(c,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:e}):(u=m(d.options.xAxis)[0],D=u.range,u.range=g,x=u.min,u.min=z,B(d,"load",function(){u.range=D;u.min=x}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,e=c.buttons|| +[].concat(b.defaultButtons),f=c.selected,g=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&d(a,"blur");c&&c.blur&&d(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=e;this.unMouseDown=B(a.container,"mousedown",g);this.unResize=B(a,"resize",g);k(e,b.computeButtonRange);void 0!==f&&e[f]&&this.clickButton(f,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,c=a.xAxis[0],d=Math.round(c.max-c.min),e=!c.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||c,f=a.dataMin,g=a.dataMax,a=this.getYTDExtremes(g,f,v),l=a.min,h=a.max,m=this.selected,p=C(m),q=this.options.allButtonsEnabled,r=this.buttons;k(this.buttonOptions,function(a,b){var k=a._range,n=a.type,t=a.count||1;a=r[b];var u=0;b=b===m;var w=k>g-f,y=k=864E5*{month:28,year:365}[n]*t&&d<=864E5*{month:31,year:366}[n]*t?k=!0:"ytd"===n?(k=h-l===d,v=!b):"all"===n&&(k=c.max-c.min>=g-f,A=!b&&p&&k);n=!q&&(w||y||A||e);k=b&&k||k&&!p&&!v;n?u=3:k&&(p=!0,u=2);a.state!==u&&a.setState(u)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,c){var b= +this.chart.options.rangeSelector,d=this[a+"Input"];u(c)&&(d.previousValue=d.HCTime,d.HCTime=c);d.value=p(b.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:p(b.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];r(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){r(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function b(){var a=q.value,b=(m.inputDateParser||Date.parse)(a),c=e.xAxis[0],f=e.scroller&&e.scroller.xAxis?e.scroller.xAxis:c,h=f.dataMin,f=f.dataMax;b!==q.previousValue&&(q.previousValue=b,C(b)||(b=a.split("-"),b=Date.UTC(I(b[0]),I(b[1])-1,I(b[2]))),C(b)&&(v||(b+=6E4*(new Date).getTimezoneOffset()),p?b>d.maxInput.HCTime?b=void 0:bf&&(b=f),void 0!==b&&c.setExtremes(p?b:c.min,p?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var d=this,e=d.chart,k=e.renderer.style||{},l=e.renderer,m=e.options.rangeSelector,h=d.div,p="min"===a,q,u,x=this.inputGroup;this[a+"Label"]=u=l.label(t.lang[p?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(x);x.offset+=u.width+5;this[a+"DateBox"]=l=l.label("",x.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){d.showInput(a);d[a+"Input"].focus()}).add(x);x.offset+=l.width+(p?10:0);this[a+"Input"]=q=g("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:e.plotTop+"px"},h);u.css(c(k,m.labelStyle));l.css(c({color:"#333333"},k,m.inputStyle));r(q,f({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:k.fontSize,fontFamily:k.fontFamily,left:"-9em"},m.inputStyle));q.onfocus=function(){d.showInput(a)};q.onblur= +function(){d.hideInput(a)};q.onchange=b;q.onkeypress=function(a){13===a.keyCode&&b()}},getPosition:function(){var a=this.chart,c=a.options.rangeSelector,a=q((c.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-c.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,c,d){var b=new x(a),e=b[x.hcGetFullYear]();d=d?x.UTC(e,0,1):+new x(e,0,1);c=Math.max(c||0,d);b=b.getTime();return{max:Math.min(a||b,b),min:c}},render:function(a,c){var b=this,d=b.chart,e=d.renderer,l=d.container,m=d.options, +h=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=b.buttons,m=t.lang,v=b.div,v=b.inputGroup,z=p.buttonTheme,x=p.buttonPosition||{},B=p.inputEnabled,F=z&&z.states,C=d.plotLeft,D,E=this.getPosition(),G=b.group,I=b.rendered;!1!==p.enabled&&(I||(b.group=G=e.g("range-selector-buttons").add(),b.zoomText=e.text(m.rangeSelectorZoom,q(x.x,C),15).css(p.labelStyle).add(G),D=q(x.x,C)+b.zoomText.getBBox().width+5,k(b.buttonOptions,function(a,c){r[c]=e.button(a.text, +D,0,function(){b.clickButton(c);b.isActive=!0},z,F&&F.hover,F&&F.select,F&&F.disabled).attr({"text-align":"center"}).add(G);D+=r[c].width+q(p.buttonSpacing,5)}),!1!==B&&(b.div=v=g("div",null,{position:"relative",height:0,zIndex:1}),l.parentNode.insertBefore(v,l),b.inputGroup=v=e.g("input-group").add(),v.offset=0,b.drawInput("min"),b.drawInput("max"))),b.updateButtonStates(),G[I?"animate":"attr"]({translateY:E.buttonTop}),!1!==B&&(v.align(f({y:E.inputTop,width:v.offset,x:h&&E.inputTop<(h.y||0)+h.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),u(B)||(d=G.getBBox(),v[v.alignAttr.translateXd&&(e?a=c-b:c=a+b);C(a)||(a=c=void 0);return{min:a,max:c}};G.prototype.minFromRange=function(){var a=this.range,c={month:"Month",year:"FullYear"}[a.type],d,e=this.max,f,g,k=function(a,b){var d=new Date(a),e=d["get"+ +c]();d["set"+c](e+b);e===d["get"+c]()&&d.setDate(0);return d.getTime()-a};C(a)?(d=e-a,g=a):(d=e+k(e,-a.count),this.chart&&(this.chart.fixedRange=e-d));f=q(this.dataMin,Number.MIN_VALUE);C(d)||(d=f);d<=f&&(d=f,void 0===g&&(g=k(d,a.count)),this.newMax=Math.min(d+g,this.dataMax));C(e)||(d=void 0);return d};J(E.prototype,"init",function(a,c,d){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,c,d)});E.prototype.callbacks.push(function(a){function b(){c= +a.xAxis[0].getExtremes();C(c.min)&&d.render(c.min,c.max)}var c,d=a.rangeSelector,e,f;d&&(f=B(a.xAxis[0],"afterSetExtremes",function(a){d.render(a.min,a.max)}),e=B(a,"redraw",b),b());B(a,"destroy",function(){d&&(e(),f())})});a.RangeSelector=D})(M);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,E=a.Chart,r=a.defined,g=a.each,p=a.extend,t=a.format,v=a.grep,u=a.inArray,l=a.isNumber,e=a.isString,k=a.map,f=a.merge,d=a.pick,x=a.Point,C=a.Renderer,c=a.Series,q=a.splat,I=a.SVGRenderer,m=a.VMLRenderer, +J=a.wrap,b=c.prototype,z=b.init,K=b.processData,y=x.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(b,c,g){var h=e(b)||b.nodeName,l=arguments[h?1:0],n=l.series,m=a.getOptions(),p,r=d(l.navigator&&l.navigator.enabled,m.navigator.enabled,!0),t=r?{startOnTick:!1,endOnTick:!1}:null,u={marker:{enabled:!1,radius:2}},v={shadow:!1,borderWidth:0};l.xAxis=k(q(l.xAxis||{}),function(a){return f({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0}, +m.xAxis,a,{type:"datetime",categories:null},t)});l.yAxis=k(q(l.yAxis||{}),function(a){p=d(a.opposite,!0);return f({labels:{y:-2},opposite:p,showLastLabel:!1,title:{text:null}},m.yAxis,a)});l.series=null;l=f({chart:{panning:!0,pinchType:"x"},navigator:{enabled:r},scrollbar:{enabled:d(m.scrollbar.enabled,!0)},rangeSelector:{enabled:d(m.rangeSelector.enabled,!0)},title:{text:null},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:u,spline:u,area:u,areaspline:u,arearange:u,areasplinerange:u, +column:v,columnrange:v,candlestick:v,ohlc:v}},l,{isStock:!0});l.series=n;return h?new E(b,l,g):new E(l,c)};J(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options.isStock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=this,"right"):a.apply(this,[].slice.call(arguments,1))});J(G.prototype,"destroy",function(a){var b=this.chart, +c=this.options&&this.options.top+","+this.options.height;c&&b._labelPanes&&b._labelPanes[c]===this&&delete b._labelPanes[c];return a.apply(this,Array.prototype.slice.call(arguments,1))});J(G.prototype,"getPlotLinePath",function(b,c,f,h,m,p){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,t=n.chart,v=t.renderer,w=n.left,y=n.top,x,A,z,B,C=[],D=[],E,H;if("xAxis"!==n.coll&&"yAxis"!==n.coll)return b.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis": +"xAxis";a=n.options[b];return l(a)?[t[b][a]]:e(a)?[t.get(a)]:k(q,function(a){return a[b]})}(n.coll);g(n.isXAxis?t.yAxis:t.xAxis,function(a){if(r(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=r(a.options[b])?t[b][a.options[b]]:t[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?t.yAxis[0]:t.xAxis[0]];g(D,function(b){-1!==u(b,E)||a.find(E,function(a){return a.pos===b.pos&&a.len&&b.len})||E.push(b)});H=d(p,n.translate(c,null,null,h));l(H)&&(n.horiz?g(E,function(a){var b; +A=a.pos;B=A+a.len;x=z=Math.round(H+n.transB);if(xw+n.width)m?x=z=Math.min(Math.max(w,x),w+n.width):b=!0;b||C.push("M",x,A,"L",z,B)}):g(E,function(a){var b;x=a.pos;z=x+a.len;A=B=Math.round(y+n.height-H);if(Ay+n.height)m?A=B=Math.min(Math.max(y,A),n.top+n.height):b=!0;b||C.push("M",x,A,"L",z,B)}));return 0=f&&(y=-(m.translateX+b.width-f));m.attr({x:n+y,y:l,anchorX:k?n:this.opposite?0:a.chartWidth,anchorY:k?this.opposite?a.chartHeight:0:l+b.height/2})}});b.init=function(){z.apply(this,arguments);this.setCompare(this.options.compare)};b.setCompare=function(a){this.modifyValue="value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b/d*100-(100===this.options.compareBase?0:100),c&&(c.change= +b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};b.processData=function(){var a,b=-1,c,d,e,f;K.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=u("close",this.pointArrayMap),-1===b&&(b=u(this.pointValKey||"y",this.pointArrayMap))),a=0;a=this.xAxis.min&&0!==f){this.compareValue=f;break}};J(b,"getExtremes",function(a){var b;a.apply(this, +[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(g(this.series,function(b){b.setCompare(a)}),d(b,!0)&&this.chart.redraw())};x.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0/g,"\x26gt;").replace(/"/g,"\x26quot;").replace(/'/g,"\x26#x27;").replace(/\//g,"\x26#x2F;")}function A(a){for(var c=a.childNodes.length;c--;)a.appendChild(a.childNodes[c])}function k(a){var c;a&&a.onclick&&l.createEvent&&(c=l.createEvent("Events"),c.initEvent("click",!0,!1),a.onclick(c))}var z=e.win,l=z.document, +g=e.each,B=e.erase,x=e.addEvent,C=e.removeEvent,y=e.fireEvent,D=e.dateFormat,w=e.merge,t={"default":["series","data point","data points"],line:["line","data point","data points"],spline:["line","data point","data points"],area:["line","data point","data points"],areaspline:["line","data point","data points"],pie:["pie","slice","slices"],column:["column series","column","columns"],bar:["bar series","bar","bars"],scatter:["scatter series","data point","data points"],boxplot:["boxplot series","box", +"boxes"],arearange:["arearange series","data point","data points"],areasplinerange:["areasplinerange series","data point","data points"],bubble:["bubble series","bubble","bubbles"],columnrange:["columnrange series","column","columns"],errorbar:["errorbar series","errorbar","errorbars"],funnel:["funnel","data point","data points"],pyramid:["pyramid","data point","data points"],waterfall:["waterfall series","column","columns"],map:["map","area","areas"],mapline:["line","data point","data points"],mappoint:["point series", +"data point","data points"],mapbubble:["bubble series","bubble","bubbles"]},E={boxplot:" Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile and maximum. ",arearange:" Arearange charts are line charts displaying a range between a lower and higher value for each point. ",areasplinerange:" These charts are line charts displaying a range between a lower and higher value for each point. ", +bubble:" Bubble charts are scatter charts where each data point also has a size value. ",columnrange:" Columnrange charts are column charts displaying a range between a lower and higher value for each point. ",errorbar:" Errorbar series are used to display the variability of the data. ",funnel:" Funnel charts are used to display reduction of data in stages. ",pyramid:" Pyramid charts consist of a single pyramid with item heights corresponding to each point value. ",waterfall:" A waterfall chart is a column chart where each column contributes towards a total end value. "}; +e.Series.prototype.commonKeys="name id category x value y".split(" ");e.Series.prototype.specialKeys="z open high q3 median q1 low close".split(" ");e.seriesTypes.pie&&(e.seriesTypes.pie.prototype.specialKeys=[]);e.setOptions({accessibility:{enabled:!0,pointDescriptionThreshold:30,keyboardNavigation:{enabled:!0,tabThroughPoints:!0}}});e.wrap(e.Series.prototype,"render",function(a){a.apply(this,Array.prototype.slice.call(arguments,1));this.chart.options.accessibility.enabled&&this.setA11yDescription()}); +e.Series.prototype.setA11yDescription=function(){var a=this.chart.options.accessibility,c=this.points&&this.points.length&&this.points[0].graphic&&this.points[0].graphic.element,d=c&&c.parentNode||this.graph&&this.graph.element||this.group&&this.group.element;d&&(d.lastChild===c&&A(d),this.points&&(this.points.lengtha&&bc.dataMax&&(d=c.dataMax,b=d-f);this.setExtremes(b,d)};e.wrap(e.Series.prototype,"init",function(a){a.apply(this,Array.prototype.slice.call(arguments,1));var c=this.chart;c.options.accessibility.enabled&&(c.types=c.types||[],0>c.types.indexOf(this.type)&&c.types.push(this.type),x(this,"remove",function(){var a=this,b=!1;g(c.series,function(f){f!==a&&0>c.types.indexOf(a.type)&&(b=!0)});b||B(c.types,a.type)}))});e.Chart.prototype.getTypeDescription= +function(){var a=this.types&&this.types[0],c=this.series[0]&&this.series[0].mapTitle;if(a){if("map"===a)return c?"Map of "+c:"Map of unspecified region.";if(1a)d.xAxis+=this.xAxis[0].getDescription()+".";else{for(b=0;bc)d.yAxis+=this.yAxis[0].getDescription()+".";else{for(b=0;bf.length-3?2:1;if(!c[0]||!c[0].points)return!1;if(d){if(f[b]!==d)for(e=0;ea&&b.exportDivElements)for(a=b.exportDivElements.length;-1a?-1:1)}],[[9],function(a,c){b.mapNavButtons[b.focusedMapNavButtonIx].setState(0);if(c.shiftKey&&!b.focusedMapNavButtonIx||!c.shiftKey&&b.focusedMapNavButtonIx)return b.mapZoom(),this.move(c.shiftKey?-1:1);b.focusedMapNavButtonIx+=c.shiftKey?-1:1;a=b.mapNavButtons[b.focusedMapNavButtonIx];a.element.focus&&a.element.focus();a.setState(2)}],[[13,32],function(){k(b.mapNavButtons[b.focusedMapNavButtonIx].element)}]],{validate:function(){return b.mapZoom&&b.mapNavButtons&& +2===b.mapNavButtons.length},transformTabs:!1,init:function(a){var c=b.mapNavButtons[0],d=b.mapNavButtons[1],c=0c)return this.move(a);b.rangeSelector[c?"maxInput":"minInput"].focus()}]],{validate:function(){return b.rangeSelector&&b.rangeSelector.inputGroup&&"hidden"!==b.rangeSelector.inputGroup.element.getAttribute("visibility")&&!1!==b.options.rangeSelector.inputEnabled&&b.rangeSelector.minInput&&b.rangeSelector.maxInput},transformTabs:!1,init:function(a){b.highlightedInputRangeIx= +0=(d.options.boostThreshold||Number.MAX_VALUE)&&c++;return 5< +c||a.series.length>=E(a.options.boost&&a.options.boost.seriesThreshold,50)}function A(a){return z(a.chart)||r(a.processedXData,a.options.data,a.points)>=(a.options.boostThreshold||Number.MAX_VALUE)}function da(a){function c(b,c){c=a.createShader("vertex"===c?a.VERTEX_SHADER:a.FRAGMENT_SHADER);a.shaderSource(c,b);a.compileShader(c);return a.getShaderParameter(c,a.COMPILE_STATUS)?c:!1}function d(){function d(b){return a.getUniformLocation(l,b)}var e=c("#version 100\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value \x3d aVertexPosition.w;\nfloat zMax \x3d bubbleZMax;\nfloat zMin \x3d bubbleZMin;\nfloat radius \x3d 0.0;\nfloat pos \x3d 0.0;\nfloat zRange \x3d zMax - zMin;\nif (bubbleSizeAbs){\nvalue \x3d value - bubbleZThreshold;\nzMax \x3d max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin \x3d 0.0;\n}\nif (value \x3c zMin){\nradius \x3d bubbleZMin / 2.0 - 1.0;\n} else {\npos \x3d zRange \x3e 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea \x26\x26 pos \x3e 0.0){\npos \x3d sqrt(pos);\n}\nradius \x3d ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord\n){\nfloat sign \x3d 1.0;\nfloat cvsOffset \x3d 0.0;\nif (cvsCoord) {\nsign *\x3d -1.0;\ncvsOffset \x3d len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value){\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold){\nfloat v;\nif (skipTranslation){\nv \x3d value;// + yAxisPos;\n} else {\nv \x3d translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord);// + yAxisPos;\n}\nif (checkTreshold \x3e 0.0 \x26\x26 hasThreshold) {\nv \x3d min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize \x3d bubbleRadius();\n} else {\ngl_PointSize \x3d pSize;\n}\nvColor \x3d aColor;\nif (isInverted) {\ngl_Position \x3d uPMatrix * vec4(xToPixels(aVertexPosition.y) + yAxisPos, yToPixels(aVertexPosition.x, aVertexPosition.z) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position \x3d uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}", +"vertex"),f=c("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col \x3d fillColor;\nif (hasColor) {\ncol \x3d vColor;\n}\nif (isCircle) {\ngl_FragColor \x3d col * texture2D(uSampler, gl_PointCoord.st);\n} else {\ngl_FragColor \x3d col;\n}\n}","fragment");if(!e||!f)return l=!1;l=a.createProgram();a.attachShader(l,e);a.attachShader(l,f);a.linkProgram(l); +a.useProgram(l);a.bindAttribLocation(l,0,"aVertexPosition");h=d("uPMatrix");g=d("pSize");n=d("fillColor");Q=d("isBubble");k=d("bubbleSizeAbs");v=d("bubbleSizeByArea");C=d("uSampler");b=d("skipTranslation");p=d("isCircle");H=d("isInverted");return!0}function f(b,c){b=e[b]=e[b]||a.getUniformLocation(l,b);a.uniform1f(b,c)}var e={},l,h,g,n,Q,k,v,b,p,H,C;a&&d();return{psUniform:function(){return g},pUniform:function(){return h},fillColorUniform:function(){return n},setBubbleUniforms:function(b,c,d){var e= +b.options,l=Number.MAX_VALUE,h=-Number.MAX_VALUE;"bubble"===b.type&&(l=E(e.zMin,Math.min(l,Math.max(c,!1===e.displayNegative?e.zThreshold:-Number.MAX_VALUE))),h=E(e.zMax,Math.max(h,d)),a.uniform1i(Q,1),a.uniform1i(p,1),a.uniform1i(v,"width"!==b.options.sizeBy),a.uniform1i(k,b.options.sizeByAbsoluteValue),f("bubbleZMin",l),f("bubbleZMax",h),f("bubbleZThreshold",b.options.zThreshold),f("bubbleMinSize",b.minPxSize),f("bubbleMaxSize",b.maxPxSize))},bind:function(){a.useProgram(l)},program:function(){return l}, +create:d,setUniform:f,setPMatrix:function(b){a.uniformMatrix4fv(h,!1,b)},setColor:function(b){a.uniform4f(n,b[0]/255,b[1]/255,b[2]/255,b[3])},setPointSize:function(b){a.uniform1f(g,b)},setSkipTranslation:function(c){a.uniform1i(b,!0===c?1:0)},setTexture:function(){a.uniform1i(C,0)},setDrawAsCircle:function(b){a.uniform1i(p,b?1:0)},reset:function(){a.uniform1i(Q,0);a.uniform1i(p,0)},setInverted:function(b){a.uniform1i(H,b)},destroy:function(){a&&l&&a.deleteProgram(l)}}}function U(a,c,d){var f=!1,e= +!1,l=d||2,h=!1,g=0,n;return{destroy:function(){f&&a.deleteBuffer(f)},bind:function(){if(!f)return!1;a.vertexAttribPointer(e,l,a.FLOAT,!1,0,0)},data:n,build:function(d,k,g){n=d||[];if(!(n&&0!==n.length||h))return f=!1;l=g||l;f&&a.deleteBuffer(f);f=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,f);a.bufferData(a.ARRAY_BUFFER,h||new Float32Array(n),a.STATIC_DRAW);e=a.getAttribLocation(c.program(),k);a.enableVertexAttribArray(e);return!0},render:function(c,d,e){var b=h?h.length:n.length;if(!f||!b)return!1; +if(!c||c>b||0>c)c=0;if(!d||d>b)d=b;a.drawArrays(a[(e||"points").toUpperCase()],c/l,(d-c)/l);return!0},allocate:function(a){g=-1;h=new Float32Array(4*a)},push:function(a,c,d,b){h&&(h[++g]=a,h[++g]=c,h[++g]=d,h[++g]=b)}}}function ea(a){function c(a){var b,c;return A(a)?(b=!!a.options.stacking,c=a.xData||a.options.xData||a.processedXData,b=(b?a.data:c||a.options.data).length,"treemap"===a.type?b*=12:"heatmap"===a.type?b*=6:V[a.type]&&(b*=2),b):0}function d(){b.clear(b.COLOR_BUFFER_BIT|b.DEPTH_BUFFER_BIT)} +function f(a,b){function c(a){a&&(b.colorData.push(a[0]),b.colorData.push(a[1]),b.colorData.push(a[2]),b.colorData.push(a[3]))}function d(a,b,d,e,f){c(f);q.usePreallocated?v.push(a,b,d?1:0,e||1):(C.push(a),C.push(b),C.push(d?1:0),C.push(e||1))}function e(a,b,e,f,w){c(w);d(a+e,b);c(w);d(a,b);c(w);d(a,b+f);c(w);d(a,b+f);c(w);d(a+e,b+f);c(w);d(a+e,b)}function f(a){q.useGPUTranslations||(b.skipTranslation=!0,a.x=D.toPixels(a.x,!0),a.y=x.toPixels(a.y,!0));d(a.x,a.y,0,2)}var w=a.pointArrayMap&&"low,high"=== +a.pointArrayMap.join(","),k=a.chart,m=a.options,l=!!m.stacking,g=m.data,n=a.xAxis.getExtremes(),p=n.min,t=n.max,n=a.yAxis.getExtremes(),u=n.min,z=n.max,n=a.xData||m.xData||a.processedXData,H=a.yData||m.yData||a.processedYData,r=a.zData||m.zData||a.processedZData,x=a.yAxis,D=a.xAxis,A=!n||0===n.length,y=a.points||!1,F=!1,G,L,M,J=l?a.data:n||g,I={x:Number.MIN_VALUE,y:0},E={x:Number.MIN_VALUE,y:0};m.boostData&&0b.node.levelDynamic)return 1;if(a.node.levelDynamicb.zMax&&(b.zMax=c[2]),c[2]b.zMax&&(b.zMax= +r[e]),r[e]=p&&N<=t&&(W=!0);g&&g>=p&&g<=t&&(n=!0);w?(A&&(m=c.slice(1,3)),m=m[1]):l&&(f=c.x,m=c.stackY);a.requireSorting||(y=m>=u&&m<=z);f>t&&E.x=p&&f<=t&&(v=!0),v||W||n)q.useGPUTranslations||(b.skipTranslation=!0,f=D.toPixels(f,!0),m=x.toPixels(m,!0)),fa&&(G=0,0>m&&(G=m,m=0),q.useGPUTranslations||(G=x.toPixels(G,!0)),d(f,G,0,0,!1)),b.hasMarkers&&!1!==F&&(a.closestPointRangePx=Math.min(a.closestPointRangePx, +Math.abs(f-F))),d(f,m,0,"bubble"===a.type?h||1:2,!1),F=f}),F||(f(I),f(E))))}function e(){t=[];F.data=C=[];x=[]}function l(a){k&&(k.setUniform("xAxisTrans",a.transA),k.setUniform("xAxisMin",a.min),k.setUniform("xAxisMinPad",a.minPixelPadding),k.setUniform("xAxisPointRange",a.pointRange),k.setUniform("xAxisLen",a.len),k.setUniform("xAxisPos",a.pos),k.setUniform("xAxisCVSCoord",!a.horiz))}function g(a){k&&(k.setUniform("yAxisTrans",a.transA),k.setUniform("yAxisMin",a.min),k.setUniform("yAxisMinPad", +a.minPixelPadding),k.setUniform("yAxisPointRange",a.pointRange),k.setUniform("yAxisLen",a.len),k.setUniform("yAxisPos",a.pos),k.setUniform("yAxisCVSCoord",!a.horiz))}function u(a,b){k.setUniform("hasThreshold",a);k.setUniform("translatedThreshold",b)}function n(c){if(c)p=c.chartWidth||800,H=c.chartHeight||400;else return!1;if(!b||!p||!H)return!1;q.timeRendering&&console.time("gl rendering");k.bind();b.viewport(0,0,p,H);k.setPMatrix([2/p,0,0,0,0,-(2/H),0,0,0,0,-2,0,-1,1,-1,1]);12*((d.marker?d.marker.radius:10)||10)),w=a.series.fillOpacity?(new X(a.series.color)).setOpacity(E(d.fillOpacity,.85)).get():a.series.color; +v.bind();d.colorByPoint&&(w=a.series.chart.options.colors[c]);w=h.color(w).rgba;q.useAlpha||(w[3]=1);"add"===d.boostBlending?(b.blendFunc(b.SRC_ALPHA,b.ONE),b.blendEquation(b.FUNC_ADD)):"mult"===d.boostBlending?b.blendFunc(b.DST_COLOR,b.ZERO):"darken"===d.boostBlending?(b.blendFunc(b.ONE,b.ONE),b.blendEquation(b.FUNC_MIN)):b.blendFuncSeparate(b.SRC_ALPHA,b.ONE_MINUS_SRC_ALPHA,b.ONE,b.ONE_MINUS_SRC_ALPHA);k.reset();0(c.boostThreshold||Number.MAX_VALUE)&&K(f.min)&&K(f.max)&&(!a||K(d.min)&&K(d.max))},destroyGraphics:function(){var a=this,c=this.points,d,f;if(c)for(f=0;f=v&&g<=b),null!==g&&d>=x&&d<=k&&p))if(a=Math.ceil(e.toPixels(d,!0)),C){if(void 0===q||a===u){y||(l=g);if(void 0===w||g>K)K=g,w=c;if(void 0===q||l=a?(e-a)%b:b-(a-e)%b;return c.inclusive? +e<=d:e=d)break;else if(a.isInBreak(b,d)){n-=d-b.from;break}return n},a.lin2val=function(d){var b,c;for(c=0;c=d);c++)b.tom;)k-=l;for(;kb.to||f>b.from&&hb.from&&hb.from&&h>b.to&&hc&&(d=(e[b].x+e[b+1].x)/2,e.splice(b+1,0,{isNull:!0,x:d}),this.options.stacking&&(d=a.stacks[this.stackKey][d]=new f.StackItem(a,a.options.stackLabels,!1,d,this.stack),d.total=0));return this.getGraphPath(e)};g(f.seriesTypes.column.prototype,"drawPoints",u);g(f.Series.prototype,"drawPoints",u)})(h)}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/canvas-tools.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/canvas-tools.js new file mode 100755 index 0000000..32f8641 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/canvas-tools.js @@ -0,0 +1,133 @@ +/* + A class to parse color values + @author Stoyan Stefanov + @link http://www.phpied.com/rgb-color-parser-in-javascript/ + Use it if you like it + + canvg.js - Javascript SVG parser and renderer on Canvas + MIT Licensed + Gabe Lerner (gabelerner@gmail.com) + http://code.google.com/p/canvg/ + + Requires: rgbcolor.js - http://www.phpied.com/rgb-color-parser-in-javascript/ + + Highcharts JS v4.2.7 (2016-09-21) + CanVGRenderer Extension module + + (c) 2011-2016 Torstein Honsi, Erik Olsson + + License: www.highcharts.com/license +*/ +function RGBColor(m){this.ok=!1;m.charAt(0)=="#"&&(m=m.substr(1,6));var m=m.replace(/ /g,""),m=m.toLowerCase(),a={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b", +darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff", +gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa", +lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080", +oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd", +slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"},c;for(c in a)m==c&&(m=a[c]);var d=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(b){return[parseInt(b[1]),parseInt(b[2]),parseInt(b[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/, +example:["#00ff00","336699"],process:function(b){return[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(b){return[parseInt(b[1]+b[1],16),parseInt(b[2]+b[2],16),parseInt(b[3]+b[3],16)]}}];for(c=0;c255?255:this.r;this.g=this.g<0||isNaN(this.g)?0: +this.g>255?255:this.g;this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b;this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"};this.toHex=function(){var b=this.r.toString(16),a=this.g.toString(16),d=this.b.toString(16);b.length==1&&(b="0"+b);a.length==1&&(a="0"+a);d.length==1&&(d="0"+d);return"#"+b+a+d};this.getHelpXML=function(){for(var b=[],c=0;c "+o.toRGB()+" -> "+o.toHex());l.appendChild(n);l.appendChild(q);k.appendChild(l)}catch(p){}return k}} +if(!window.console)window.console={},window.console.log=function(){},window.console.dir=function(){};if(!Array.prototype.indexOf)Array.prototype.indexOf=function(m){for(var a=0;a]*>/,""),d=new ActiveXObject("Microsoft.XMLDOM");d.async="false";d.loadXML(a);return d}};a.Property=function(c,d){this.name=c;this.value=d;this.hasValue=function(){return this.value!=null&&this.value!==""};this.numValue=function(){if(!this.hasValue())return 0;var b=parseFloat(this.value);(this.value+"").match(/%$/)&& +(b/=100);return b};this.valueOrDefault=function(b){return this.hasValue()?this.value:b};this.numValueOrDefault=function(b){return this.hasValue()?this.numValue():b};var b=this;this.Color={addOpacity:function(d){var c=b.value;if(d!=null&&d!=""){var f=new RGBColor(b.value);f.ok&&(c="rgba("+f.r+", "+f.g+", "+f.b+", "+d+")")}return new a.Property(b.name,c)}};this.Definition={getDefinition:function(){var d=b.value.replace(/^(url\()?#([^\)]+)\)?$/,"$2");return a.Definitions[d]},isUrl:function(){return b.value.indexOf("url(")== +0},getFillStyle:function(b){var d=this.getDefinition();return d!=null&&d.createGradient?d.createGradient(a.ctx,b):d!=null&&d.createPattern?d.createPattern(a.ctx,b):null}};this.Length={DPI:function(){return 96},EM:function(b){var d=12,c=new a.Property("fontSize",a.Font.Parse(a.ctx.font).fontSize);c.hasValue()&&(d=c.Length.toPixels(b));return d},toPixels:function(d){if(!b.hasValue())return 0;var c=b.value+"";return c.match(/em$/)?b.numValue()*this.EM(d):c.match(/ex$/)?b.numValue()*this.EM(d)/2:c.match(/px$/)? +b.numValue():c.match(/pt$/)?b.numValue()*1.25:c.match(/pc$/)?b.numValue()*15:c.match(/cm$/)?b.numValue()*this.DPI(d)/2.54:c.match(/mm$/)?b.numValue()*this.DPI(d)/25.4:c.match(/in$/)?b.numValue()*this.DPI(d):c.match(/%$/)?b.numValue()*a.ViewPort.ComputeSize(d):b.numValue()}};this.Time={toMilliseconds:function(){if(!b.hasValue())return 0;var a=b.value+"";if(a.match(/s$/))return b.numValue()*1E3;a.match(/ms$/);return b.numValue()}};this.Angle={toRadians:function(){if(!b.hasValue())return 0;var a=b.value+ +"";return a.match(/deg$/)?b.numValue()*(Math.PI/180):a.match(/grad$/)?b.numValue()*(Math.PI/200):a.match(/rad$/)?b.numValue():b.numValue()*(Math.PI/180)}}};a.Font=new function(){this.Styles=["normal","italic","oblique","inherit"];this.Variants=["normal","small-caps","inherit"];this.Weights="normal,bold,bolder,lighter,100,200,300,400,500,600,700,800,900,inherit".split(",");this.CreateFont=function(d,b,c,e,f,g){g=g!=null?this.Parse(g):this.CreateFont("","","","","",a.ctx.font);return{fontFamily:f|| +g.fontFamily,fontSize:e||g.fontSize,fontStyle:d||g.fontStyle,fontWeight:c||g.fontWeight,fontVariant:b||g.fontVariant,toString:function(){return[this.fontStyle,this.fontVariant,this.fontWeight,this.fontSize,this.fontFamily].join(" ")}}};var c=this;this.Parse=function(d){for(var b={},d=a.trim(a.compressSpaces(d||"")).split(" "),k=!1,e=!1,f=!1,g=!1,h="",j=0;jthis.x2)this.x2=b}if(a!=null){if(isNaN(this.y1)||isNaN(this.y2))this.y2=this.y1=a;if(athis.y2)this.y2=a}};this.addX=function(b){this.addPoint(b,null)};this.addY=function(b){this.addPoint(null,b)};this.addBoundingBox=function(b){this.addPoint(b.x1,b.y1);this.addPoint(b.x2,b.y2)};this.addQuadraticCurve=function(b,a,d,c,k,l){d=b+2/3*(d-b);c=a+2/3*(c- +a);this.addBezierCurve(b,a,d,d+1/3*(k-b),c,c+1/3*(l-a),k,l)};this.addBezierCurve=function(b,a,d,c,k,l,o,n){var q=[b,a],p=[d,c],t=[k,l],m=[o,n];this.addPoint(q[0],q[1]);this.addPoint(m[0],m[1]);for(i=0;i<=1;i++)b=function(b){return Math.pow(1-b,3)*q[i]+3*Math.pow(1-b,2)*b*p[i]+3*(1-b)*Math.pow(b,2)*t[i]+Math.pow(b,3)*m[i]},a=6*q[i]-12*p[i]+6*t[i],d=-3*q[i]+9*p[i]-9*t[i]+3*m[i],c=3*p[i]-3*q[i],d==0?a!=0&&(a=-c/a,0=this.tokens.length-1};this.isCommandOrEnd=function(){return this.isEnd()? +!0:this.tokens[this.i+1].match(/^[A-Za-z]$/)!=null};this.isRelativeCommand=function(){return this.command==this.command.toLowerCase()};this.getToken=function(){this.i+=1;return this.tokens[this.i]};this.getScalar=function(){return parseFloat(this.getToken())};this.nextCommand=function(){this.previousCommand=this.command;this.command=this.getToken()};this.getPoint=function(){return this.makeAbsolute(new a.Point(this.getScalar(),this.getScalar()))};this.getAsControlPoint=function(){var b=this.getPoint(); +return this.control=b};this.getAsCurrentPoint=function(){var b=this.getPoint();return this.current=b};this.getReflectedControlPoint=function(){return this.previousCommand.toLowerCase()!="c"&&this.previousCommand.toLowerCase()!="s"?this.current:new a.Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)};this.makeAbsolute=function(b){if(this.isRelativeCommand())b.x=this.current.x+b.x,b.y=this.current.y+b.y;return b};this.addMarker=function(b,a,d){d!=null&&this.angles.length>0&&this.angles[this.angles.length- +1]==null&&(this.angles[this.angles.length-1]=this.points[this.points.length-1].angleTo(d));this.addMarkerAngle(b,a==null?null:a.angleTo(b))};this.addMarkerAngle=function(b,a){this.points.push(b);this.angles.push(a)};this.getMarkerPoints=function(){return this.points};this.getMarkerAngles=function(){for(var b=0;b1&&(j*=Math.sqrt(q),l*=Math.sqrt(q));o=(o==h?-1:1)*Math.sqrt((Math.pow(j,2)*Math.pow(l,2)-Math.pow(j,2)*Math.pow(n.y,2)-Math.pow(l,2)*Math.pow(n.x,2))/(Math.pow(j,2)*Math.pow(n.y,2)+Math.pow(l,2)*Math.pow(n.x,2)));isNaN(o)&&(o=0);var p=new a.Point(o*j*n.y/l,o*-l*n.x/j),g=new a.Point((g.x+e.x)/2+Math.cos(f)* +p.x-Math.sin(f)*p.y,(g.y+e.y)/2+Math.sin(f)*p.x+Math.cos(f)*p.y),m=function(b,a){return(b[0]*a[0]+b[1]*a[1])/(Math.sqrt(Math.pow(b[0],2)+Math.pow(b[1],2))*Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)))},s=function(b,a){return(b[0]*a[1]=1&&(n=0);h==0&&n>0&&(n-=2*Math.PI);h==1&&n<0&&(n+=2*Math.PI);q=new a.Point(g.x-j*Math.cos((o+n)/ +2),g.y-l*Math.sin((o+n)/2));b.addMarkerAngle(q,(o+n)/2+(h==0?1:-1)*Math.PI/2);b.addMarkerAngle(e,n+(h==0?1:-1)*Math.PI/2);c.addPoint(e.x,e.y);d!=null&&(m=j>l?j:l,e=j>l?1:j/l,j=j>l?l/j:1,d.translate(g.x,g.y),d.rotate(f),d.scale(e,j),d.arc(0,0,m,o,o+n,1-h),d.scale(1/e,1/j),d.rotate(-f),d.translate(-g.x,-g.y))}break;case "Z":d!=null&&d.closePath(),b.current=b.start}return c};this.getMarkers=function(){for(var a=this.PathParser.getMarkerPoints(),b=this.PathParser.getMarkerAngles(),c=[],e=0;ethis.maxDuration)if(this.attribute("repeatCount").value=="indefinite")this.duration=0;else return this.attribute("fill").valueOrDefault("remove")=="remove"&&!this.removed?(this.removed=!0,this.getProperty().value=this.initialValue,!0):!1;this.duration+=a;a=!1;if(this.begin0&&b[c-1]!=" "&&c0&&b[c-1]!=" "&&(c==b.length-1||b[c+1]==" "))g="initial";typeof a.glyphs[e]!="undefined"&&(f=a.glyphs[e][g],f==null&&a.glyphs[e].type=="glyph"&&(f=a.glyphs[e]))}else f=a.glyphs[e];if(f==null)f=a.missingGlyph;return f};this.renderChildren=function(c){var b=this.parent.style("font-family").Definition.getDefinition();if(b!=null){var k=this.parent.style("font-size").numValueOrDefault(a.Font.Parse(a.ctx.font).fontSize), +e=this.parent.style("font-style").valueOrDefault(a.Font.Parse(a.ctx.font).fontStyle),f=this.getText();b.isRTL&&(f=f.split("").reverse().join(""));for(var g=a.ToNumberArray(this.parent.attribute("dx").value),h=0;h0?c.childNodes[0].nodeValue:c.text;this.getText=function(){return this.text}};a.Element.tspan.prototype=new a.Element.TextElementBase;a.Element.tref=function(c){this.base=a.Element.TextElementBase;this.base(c);this.getText=function(){var a=this.attribute("xlink:href").Definition.getDefinition();if(a!=null)return a.children[0].getText()}};a.Element.tref.prototype=new a.Element.TextElementBase; +a.Element.a=function(c){this.base=a.Element.TextElementBase;this.base(c);this.hasText=!0;for(var d=0;d1?c.childNodes[1].nodeValue: +""),c=c.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,""),c=a.compressSpaces(c),c=c.split("}"),d=0;d0){l=g[h].indexOf("url");j=g[h].indexOf(")",l);l=g[h].substr(l+5,j-l-6);l=a.parseXml(a.ajax(l)).getElementsByTagName("font");for(j=0;j=e&&d<=c&&!q&&""!==g&&(a=a.split(h),m(a,function(b,a){a>= +k&&a<=t&&(f[a-k]||(f[a-k]=[]),f[a-k][y]=b)}),y+=1)}),this.dataFound())},parseTable:function(){var b=this.options,a=b.table,d=this.columns,f=b.startRow||0,e=b.endRow||Number.MAX_VALUE,c=b.startColumn||0,k=b.endColumn||Number.MAX_VALUE;a&&("string"===typeof a&&(a=p.getElementById(a)),m(a.getElementsByTagName("tr"),function(b,a){a>=f&&a<=e&&m(b.children,function(b,e){("TD"===b.tagName||"TH"===b.tagName)&&e>=c&&e<=k&&(d[e-c]||(d[e-c]=[]),d[e-c][a-f]=b.innerHTML)})}),this.dataFound())},parseGoogleSpreadsheet:function(){var b= +this,a=this.options,d=a.googleSpreadsheetKey,f=this.columns,e=a.startRow||0,c=a.endRow||Number.MAX_VALUE,k=a.startColumn||0,g=a.endColumn||Number.MAX_VALUE,h,q;d&&jQuery.ajax({dataType:"json",url:"https://spreadsheets.google.com/feeds/cells/"+d+"/"+(a.googleSpreadsheetWorksheet||"od6")+"/public/values?alt\x3djson-in-script\x26callback\x3d?",error:a.error,success:function(a){a=a.feed.entry;var d,t=a.length,r=0,n=0,l;for(l=0;l=k&&l<=g&&(f[l-k]=[],f[l-k].length=Math.min(n,c-e));for(l=0;l=k&&q<=g&&h>=e&&h<=c&&(f[q-k][h-e]=d.content.$t);m(f,function(a){for(l=0;l +b[e+1])):(k=this.parseDate(c),m&&x(k)&&"float"!==u?(p[e]=c,b[e]=k,b.isDatetime=!0,void 0!==b[e+1]&&(c=k>b[e+1],c!==r&&void 0!==r&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,e=b.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):b.unsorted=!0),r=c)):(b[e]=""===g?null:g,0!==e&&(b.isDatetime||b.isNumeric)&&(b.mixed=!0)));m&&b.mixed&&(f[a]=d[a]);if(m&&r&&this.options.sort)for(a=0;a(.*?$)/);e&&e[1]&&(e='\x3cforeignObject x\x3d"0" y\x3d"0" width\x3d"'+b.chart.width+'" height\x3d"'+b.chart.height+'"\x3e\x3cbody xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e'+e[1]+"\x3c/body\x3e\x3c/foreignObject\x3e",a=a.replace("\x3c/svg\x3e",e+"\x3c/svg\x3e"))}a=a.replace(/zIndex="[^"]+"/g, +"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(\S+)("|")\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/.*?$/,"\x3c/svg\x3e").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1\x3d"rgb($2)" $1-opacity\x3d"$3"').replace(/ /g, +"\u00a0").replace(/­/g,"\u00ad");return a=a.replace(//g,"\x3c$1title\x3e").replace(/height=([^" ]+)/g,'height\x3d"$1"').replace(/width=([^" ]+)/g,'width\x3d"$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href\x3d"$1"/\x3e').replace(/ id=([^" >]+)/g,' id\x3d"$1"').replace(/class=([^" >]+)/g,'class\x3d"$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()})},getChartHTML:function(){return this.container.innerHTML}, +getSVG:function(a){var b,e,c,w,m,g=n(this.options,a);p.createElementNS||(p.createElementNS=function(a,b){return p.createElement(b)});e=r("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},p.body);c=this.renderTo.style.width;m=this.renderTo.style.height;c=g.exporting.sourceWidth||g.chart.width||/px$/.test(c)&&parseInt(c,10)||600;m=g.exporting.sourceHeight||g.chart.height||/px$/.test(m)&&parseInt(m,10)||400;t(g.chart,{animation:!1,renderTo:e,forExport:!0, +renderer:"SVGRenderer",width:c,height:m});g.exporting.enabled=!1;delete g.data;g.series=[];h(this.series,function(a){w=n(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});w.isInternal||g.series.push(w)});h(this.axes,function(a){a.userOptions.internalKey||(a.userOptions.internalKey=f.uniqueKey())});b=new f.Chart(g,this.callback);a&&h(["xAxis","yAxis","series"],function(c){var d={};a[c]&&(d[c]=a[c],b.update(d))});h(this.axes,function(a){var c=f.find(b.axes,function(b){return b.options.internalKey=== +a.userOptions.internalKey}),d=a.getExtremes(),e=d.userMin,d=d.userMax;!c||void 0===e&&void 0===d||c.setExtremes(e,d,!0,!1)});c=b.getChartHTML();c=this.sanitizeSVG(c,g);g=null;b.destroy();C(e);return c},getSVGForExport:function(a,b){var e=this.options.exporting;return this.getSVG(n({chart:{borderRadius:0}},e.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||e.sourceWidth,sourceHeight:a&&a.sourceHeight||e.sourceHeight}}))},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=n(this.options.exporting, +a);f.post(a.url,{filename:a.filename||"chart",type:a.type,width:a.width||0,scale:a.scale,svg:b},a.formAttributes)},print:function(){var a=this,b=a.container,e=[],c=b.parentNode,f=p.body,m=f.childNodes,g=a.options.exporting.printMaxWidth,d,u;if(!a.isPrinting){a.isPrinting=!0;a.pointer.reset(null,0);F(a,"beforePrint");if(u=g&&a.chartWidth>g)d=[a.options.chart.width,void 0,!1],a.setSize(g,void 0,!1);h(m,function(a,b){1===a.nodeType&&(e[b]=a.style.display,a.style.display="none")});f.appendChild(b);E.focus(); +E.print();setTimeout(function(){c.appendChild(b);h(m,function(a,b){1===a.nodeType&&(a.style.display=e[b])});a.isPrinting=!1;u&&a.setSize.apply(a,d);F(a,"afterPrint")},1E3)}},contextMenu:function(a,b,e,c,w,m,g){var d=this,u=d.options.navigation,k=d.chartWidth,q=d.chartHeight,n="cache-"+a,l=d[n],y=Math.max(w,m),z,A;l||(d[n]=l=r("div",{className:a},{position:"absolute",zIndex:1E3,padding:y+"px"},d.container),z=r("div",{className:"highcharts-menu"},null,l),v(z,t({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888", +boxShadow:"3px 3px 10px #888"},u.menuStyle)),A=function(){v(l,{display:"none"});g&&g.setState(0);d.openMenu=!1},d.exportEvents.push(x(l,"mouseleave",function(){l.hideTimer=setTimeout(A,500)}),x(l,"mouseenter",function(){clearTimeout(l.hideTimer)}),x(p,"mouseup",function(b){d.pointer.inClass(b.target,a)||A()})),h(b,function(a){"string"===typeof a&&(a=d.options.exporting.menuItemDefinitions[a]);if(f.isObject(a,!0)){var b;a.separator?b=r("hr",null,null,z):(b=r("div",{className:"highcharts-menu-item", +onclick:function(b){b&&b.stopPropagation();A();a.onclick&&a.onclick.apply(d,arguments)},innerHTML:a.text||d.options.lang[a.textKey]},null,z),b.onmouseover=function(){v(this,u.menuItemHoverStyle)},b.onmouseout=function(){v(this,u.menuItemStyle)},v(b,t({cursor:"pointer"},u.menuItemStyle)));d.exportDivElements.push(b)}}),d.exportDivElements.push(z,l),d.exportMenuWidth=l.offsetWidth,d.exportMenuHeight=l.offsetHeight);b={display:"block"};e+d.exportMenuWidth>k?b.right=k-e-w-y+"px":b.left=e-y+"px";c+m+d.exportMenuHeight> +q&&"top"!==g.alignOptions.verticalAlign?b.bottom=q-c-y+"px":b.top=c+m-y+"px";v(l,b);d.openMenu=!0},addButton:function(a){var b=this,e=b.renderer,c=n(b.options.navigation.buttonOptions,a),f=c.onclick,m=c.menuItems,g,d,k=c.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==c.enabled){var h=c.theme,q=h.states,p=q&&q.hover,q=q&&q.select,l;delete h.states;f?l=function(a){a.stopPropagation();f.call(b,a)}:m&&(l=function(){b.contextMenu(d.menuClassName, +m,d.translateX,d.translateY,d.width,d.height,d);d.setState(2)});c.text&&c.symbol?h.paddingLeft=D(h.paddingLeft,25):c.text||t(h,{width:c.width,height:c.height,padding:0});d=e.button(c.text,0,0,l,h,p,q).addClass(a.className).attr({"stroke-linecap":"round",title:b.options.lang[c._titleKey],zIndex:3});d.menuClassName=a.menuClassName||"highcharts-menu-"+b.btnCount++;c.symbol&&(g=e.symbol(c.symbol,c.symbolX-k/2,c.symbolY-k/2,k,k).addClass("highcharts-button-symbol").attr({zIndex:1}).add(d),g.attr({stroke:c.symbolStroke, +fill:c.symbolFill,"stroke-width":c.symbolStrokeWidth||1}));d.add().align(t(c,{width:d.width,x:D(c.x,b.buttonOffset)}),!0,"spacingBox");b.buttonOffset+=(d.width+c.buttonSpacing)*("right"===c.align?-1:1);b.exportSVGElements.push(d,g)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;var e=b.exportDivElements,c=b.exportEvents,f;a&&(h(a,function(a,c){a&&(a.onclick=a.ontouchstart=null,f="cache-"+a.menuClassName,b[f]&&delete b[f],b.exportSVGElements[c]=a.destroy())}),a.length=0);e&& +(h(e,function(a,c){clearTimeout(a.hideTimer);I(a,"mouseleave");b.exportDivElements[c]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null;C(a)}),e.length=0);c&&(h(c,function(a){a()}),c.length=0)}});K.menu=function(a,b,e,c){return["M",a,b+2.5,"L",a+e,b+2.5,"M",a,b+c/2+.5,"L",a+e,b+c/2+.5,"M",a,b+c-1.5,"L",a+e,b+c-1.5]};B.prototype.renderExporting=function(){var a=this,b=a.options.exporting,e=b.buttons,c=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport(); +c&&!1!==b.enabled&&(a.exportEvents=[],G(e,function(b){a.addButton(b)}),a.isDirtyExporting=!1);x(a,"destroy",a.destroyExport)};B.prototype.callbacks.push(function(a){a.renderExporting();x(a,"redraw",a.renderExporting);h(["exporting","navigation"],function(b){a[b]={update:function(e,c){a.isDirtyExporting=!0;n(!0,a.options[b],e);D(c,!0)&&a.redraw()}}})})})(k)}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/funnel.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/funnel.js new file mode 100755 index 0000000..67f8655 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/funnel.js @@ -0,0 +1,13 @@ +/* + Highcharts JS v5.0.14 (2017-07-28) + Highcharts funnel module + + (c) 2010-2017 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(e){"object"===typeof module&&module.exports?module.exports=e:e(Highcharts)})(function(e){(function(g){var e=g.seriesType,C=g.seriesTypes,H=g.noop,D=g.pick,I=g.each;e("funnel","pie",{animation:!1,center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,size:!0,dataLabels:{connectorWidth:1},states:{select:{color:"#cccccc",borderColor:"#000000",shadow:!1}}},{animate:H,translate:function(){var b=function(a,b){return/%$/.test(a)?b*parseInt(a,10)/100:parseInt(a, +10)},E=0,c=this.chart,f=this.options,d=f.reversed,e=f.ignoreHiddenPoint,t=c.plotWidth,c=c.plotHeight,q=0,g=f.center,h=b(g[0],t),r=b(g[1],c),C=b(f.width,t),l,v,m=b(f.height,c),w=b(f.neckWidth,t),F=b(f.neckHeight,c),x=r-m/2+m-F,b=this.data,z,A,D="left"===f.dataLabels.position?1:0,B,n,G,u,k,y,p;this.getWidthAt=v=function(a){var b=r-m/2;return a>x||m===F?w:w+(C-w)*(1-(a-b)/(m-F))};this.getX=function(a,b,c){return h+(b?-1:1)*(v(d?2*r-a:a)/2+c.labelDistance)};this.center=[h,r,m];this.centerX=h;I(b,function(a){e&& +!1===a.visible||(E+=a.y)});I(b,function(a){p=null;A=E?a.y/E:0;n=r-m/2+q*m;k=n+A*m;l=v(n);B=h-l/2;G=B+l;l=v(k);u=h-l/2;y=u+l;n>x?(B=u=h-w/2,G=y=h+w/2):k>x&&(p=k,l=v(x),u=h-l/2,y=u+l,k=x);d&&(n=2*r-n,k=2*r-k,p=p?2*r-p:null);z=["M",B,n,"L",G,n,y,k];p&&z.push(y,p,u,p);z.push(u,k,"Z");a.shapeType="path";a.shapeArgs={d:z};a.percentage=100*A;a.plotX=h;a.plotY=(n+(p||k))/2;a.tooltipPos=[h,a.plotY];a.slice=H;a.half=D;e&&!1===a.visible||(q+=A)})},sortByAngle:function(b){b.sort(function(b,c){return b.plotY- +c.plotY})},drawDataLabels:function(){var b=this.data,e=this.options.dataLabels.distance,c,f,d,g=b.length,t,q;for(this.center[2]-=2*e;g--;)d=b[g],f=(c=d.half)?1:-1,q=d.plotY,d.labelDistance=D(d.options.dataLabels&&d.options.dataLabels.distance,e),this.maxLabelDistance=Math.max(d.labelDistance,this.maxLabelDistance||0),t=this.getX(q,c,d),d.labelPos=[0,q,t+(d.labelDistance-5)*f,q,t+d.labelDistance*f,q,c?"right":"left",0];C.pie.prototype.drawDataLabels.call(this)}});e("pyramid","funnel",{neckWidth:"0%", +neckHeight:"0%",reversed:!0})})(e)}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/heatmap.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/heatmap.js new file mode 100755 index 0000000..e9ea142 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/heatmap.js @@ -0,0 +1,25 @@ +/* + Highcharts JS v5.0.14 (2017-07-28) + + (c) 2009-2017 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(p){"object"===typeof module&&module.exports?module.exports=p:p(Highcharts)})(function(p){(function(b){var h=b.Axis,r=b.Chart,k=b.color,n,d=b.each,w=b.extend,x=b.isNumber,l=b.Legend,g=b.LegendSymbolMixin,q=b.noop,u=b.merge,v=b.pick,t=b.wrap;n=b.ColorAxis=function(){this.init.apply(this,arguments)};w(n.prototype,h.prototype);w(n.prototype,{defaultColorAxisOptions:{lineWidth:0,minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50}, +width:.01,color:"#999999"},labels:{overflow:"justify",rotation:0},minColor:"#e6ebf5",maxColor:"#003399",tickLength:5,showInLegend:!0},keepProps:["legendGroup","legendItemHeight","legendItemWidth","legendItem","legendSymbol"].concat(h.prototype.keepProps),init:function(a,c){var e="vertical"!==a.options.legend.layout,f;this.coll="colorAxis";f=u(this.defaultColorAxisOptions,{side:e?2:1,reversed:!e},c,{opposite:!e,showEmpty:!1,title:null});h.prototype.init.call(this,a,f);c.dataClasses&&this.initDataClasses(c); +this.initStops();this.horiz=e;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var c=this.chart,e,f=0,m=c.options.chart.colorCount,b=this.options,y=a.dataClasses.length;this.dataClasses=e=[];this.legendItems=[];d(a.dataClasses,function(a,d){a=u(a);e.push(a);a.color||("category"===b.dataClassColor?(d=c.options.colors,m=d.length,a.color=d[f],a.colorIndex=f,f++,f===m&&(f=0)):a.color=k(b.minColor).tweenTo(k(b.maxColor),2>y?.5:d/(y-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)}, +initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];d(this.stops,function(a){a.color=k(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,c=this.chart,e=c.options.legend||{},f,m;a?(this.left=e=a.attr("x"),this.top=f=a.attr("y"),this.width=m=a.attr("width"),this.height=a=a.attr("height"),this.right=c.chartWidth-e-m,this.bottom=c.chartHeight- +f-a,this.len=this.horiz?m:a,this.pos=this.horiz?e:f):this.len=(this.horiz?e.symbolWidth:e.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,c){var e=this.stops,f,m,b=this.dataClasses,d,g;if(b)for(g=b.length;g--;){if(d=b[g],f=d.from,e=d.to,(void 0===f||a>=f)&&(void 0===e||a<=e)){m=d.color;c&&(c.dataClass=g,c.colorIndex=d.colorIndex);break}}else{a=this.normalizedValue(a);for(g=e.length;g--&& +!(a>e[g][0]););f=e[g]||e[g+1];e=e[g+1]||f;a=1-(e[0]-a)/(e[0]-f[0]||1);m=f.color.tweenTo(e.color,a)}return m},getOffset:function(){var a=this.legendGroup,c=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=c)},setLegendColor:function(){var a,c=this.reversed;a=c?1:0;c=c?0:1;a=this.horiz?[a,0,c,0]:[0,c,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2], +y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,c){var e=a.padding,f=a.options,b=this.horiz,d=v(f.symbolWidth,b?this.defaultLegendLength:12),g=v(f.symbolHeight,b?12:this.defaultLegendLength),q=v(f.labelPadding,b?16:30),f=v(f.itemDistance,10);this.setLegendColor();c.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,d,g).attr({zIndex:1}).add(c.legendGroup);this.legendItemWidth=d+e+(b?f:q);this.legendItemHeight=g+e+(b?q:0)},setState:q,visible:!0,setVisible:q,getSeriesExtremes:function(){var a= +this.series,c=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;c--;)void 0!==a[c].valueMin&&(this.dataMin=Math.min(this.dataMin,a[c].valueMin),this.dataMax=Math.max(this.dataMax,a[c].valueMax))},drawCrosshair:function(a,c){var e=c&&c.plotX,b=c&&c.plotY,d,g=this.pos,q=this.len;c&&(d=this.toPixels(c[c.series.colorKey]),dg+q&&(d=g+q+2),c.plotX=d,c.plotY=this.len-d,h.prototype.drawCrosshair.call(this,a,c),c.plotX=e,c.plotY=b,this.cross&&(this.cross.addClass("highcharts-coloraxis-marker").add(this.legendGroup), +this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,c,e,b,d){return x(d)?this.horiz?["M",d-4,this.top-6,"L",d+4,this.top-6,d,this.top,"Z"]:["M",this.left,d,"L",this.left-6,d+6,this.left-6,d-6,"Z"]:h.prototype.getPlotLinePath.call(this,a,c,e,b)},update:function(a,c){var e=this.chart,b=e.legend;d(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&b.allItems&&(d(b.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),e.isDirtyLegend=!0);e.options[this.coll]= +u(this.userOptions,a);h.prototype.update.call(this,a,c);this.legendItem&&(this.setLegendColor(),b.colorizeItem(this,!0))},remove:function(){this.legendItem&&this.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var a=this,c=this.chart,e=this.legendItems,f=c.options.legend,t=f.valueDecimals,h=f.valueSuffix||"",l;e.length||d(this.dataClasses,function(f,u){var m=!0,k=f.from,n=f.to;l="";void 0===k?l="\x3c ":void 0===n&&(l="\x3e ");void 0!==k&&(l+=b.numberFormat(k, +t)+h);void 0!==k&&void 0!==n&&(l+=" - ");void 0!==n&&(l+=b.numberFormat(n,t)+h);e.push(w({chart:c,name:l,options:{},drawLegendSymbol:g.drawRectangle,visible:!0,setState:q,isDataClass:!0,setVisible:function(){m=this.visible=!m;d(a.series,function(a){d(a.points,function(a){a.dataClass===u&&a.setVisible(m)})});c.legend.colorizeItem(this,m)}},f))});return e},name:""});d(["fill","stroke"],function(a){b.Fx.prototype[a+"Setter"]=function(){this.elem.attr(a,k(this.start).tweenTo(k(this.end),this.pos),null, +!0)}});t(r.prototype,"getAxes",function(a){var c=this.options.colorAxis;a.call(this);this.colorAxis=[];c&&new n(this,c)});t(l.prototype,"getAllItems",function(a){var c=[],b=this.chart.colorAxis[0];b&&b.options&&(b.options.showInLegend&&(b.options.dataClasses?c=c.concat(b.getDataClassLegendSymbols()):c.push(b)),d(b.series,function(a){a.options.showInLegend=!1}));return c.concat(a.call(this))});t(l.prototype,"colorizeItem",function(a,c,b){a.call(this,c,b);b&&c.legendColor&&c.legendSymbol.attr({fill:c.legendColor})}); +t(l.prototype,"update",function(a){a.apply(this,[].slice.call(arguments,1));this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},arguments[2])})})(p);(function(b){var h=b.defined,r=b.each,k=b.noop,n=b.seriesTypes;b.colorPointMixin={isValid:function(){return null!==this.value},setVisible:function(b){var d=this,h=b?"show":"hide";r(["graphic","dataLabel"],function(b){if(d[b])d[b][h]()})},setState:function(d){b.Point.prototype.setState.call(this,d);this.graphic&&this.graphic.attr({zIndex:"hover"=== +d?1:0})}};b.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis","yAxis","colorAxis"],optionalAxis:"colorAxis",trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:k,parallelArrays:["x","y","value"],colorKey:"value",pointAttribs:n.column.prototype.pointAttribs,translateColors:function(){var b=this,h=this.options.nullColor,k=this.colorAxis,l=this.colorKey;r(this.data,function(d){var g=d[l];if(g=d.options.color||(d.isNull?h:k&&void 0!==g?k.toColor(g,d):d.color||b.color))d.color= +g})},colorAttribs:function(b){var d={};h(b.color)&&(d[this.colorProp||"fill"]=b.color);return d}}})(p);(function(b){var h=b.colorPointMixin,r=b.each,k=b.merge,n=b.noop,d=b.pick,p=b.Series,x=b.seriesType,l=b.seriesTypes;x("heatmap","scatter",{animation:!1,borderWidth:0,nullColor:"#f7f7f7",dataLabels:{formatter:function(){return this.point.value},inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},marker:null,pointRange:null,tooltip:{pointFormat:"{point.x}, {point.y}: {point.value}\x3cbr/\x3e"}, +states:{normal:{animation:!0},hover:{halo:!1,brightness:.2}}},k(b.colorSeriesMixin,{pointArrayMap:["y","value"],hasPointSpecificOptions:!0,getExtremesFromAll:!0,directTouch:!0,init:function(){var b;l.scatter.prototype.init.apply(this,arguments);b=this.options;b.pointRange=d(b.pointRange,b.colsize||1);this.yAxis.axisPointRange=b.rowsize||1},translate:function(){var b=this.options,d=this.xAxis,h=this.yAxis,k=function(b,a,c){return Math.min(Math.max(a,b),c)};this.generatePoints();r(this.points,function(g){var a= +(b.colsize||1)/2,c=(b.rowsize||1)/2,e=k(Math.round(d.len-d.translate(g.x-a,0,1,0,1)),-d.len,2*d.len),a=k(Math.round(d.len-d.translate(g.x+a,0,1,0,1)),-d.len,2*d.len),f=k(Math.round(h.translate(g.y-c,0,1,0,1)),-h.len,2*h.len),c=k(Math.round(h.translate(g.y+c,0,1,0,1)),-h.len,2*h.len);g.plotX=g.clientX=(e+a)/2;g.plotY=(f+c)/2;g.shapeType="rect";g.shapeArgs={x:Math.min(e,a),y:Math.min(f,c),width:Math.abs(a-e),height:Math.abs(c-f)}});this.translateColors()},drawPoints:function(){l.column.prototype.drawPoints.call(this); +r(this.points,function(b){b.graphic.attr(this.colorAttribs(b))},this)},animate:n,getBox:n,drawLegendSymbol:b.LegendSymbolMixin.drawRectangle,alignDataLabel:l.column.prototype.alignDataLabel,getExtremes:function(){p.prototype.getExtremes.call(this,this.valueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;p.prototype.getExtremes.call(this)}}),h)})(p)}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/map.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/map.js new file mode 100755 index 0000000..60cd217 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/map.js @@ -0,0 +1,69 @@ +/* + Highmaps JS v5.0.14 (2017-07-28) + Highmaps as a plugin for Highcharts 4.1.x or Highstock 2.1.x (x being the patch version of this file) + + (c) 2011-2017 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(w){"object"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){(function(a){var h=a.Axis,p=a.each,f=a.pick;a=a.wrap;a(h.prototype,"getSeriesExtremes",function(a){var e=this.isXAxis,x,t,u=[],l;e&&p(this.series,function(a,b){a.useMapGeometry&&(u[b]=a.xData,a.xData=[])});a.call(this);e&&(x=f(this.dataMin,Number.MAX_VALUE),t=f(this.dataMax,-Number.MAX_VALUE),p(this.series,function(a,b){a.useMapGeometry&&(x=Math.min(x,f(a.minX,x)),t=Math.max(t,f(a.maxX,t)),a.xData=u[b], +l=!0)}),l&&(this.dataMin=x,this.dataMax=t))});a(h.prototype,"setAxisTranslation",function(a){var q=this.chart,e=q.plotWidth/q.plotHeight,q=q.xAxis[0],f;a.call(this);"yAxis"===this.coll&&void 0!==q.transA&&p(this.series,function(a){a.preserveAspectRatio&&(f=!0)});if(f&&(this.transA=q.transA=Math.min(this.transA,q.transA),a=e/((q.max-q.min)/(this.max-this.min)),a=1>a?this:q,e=(a.max-a.min)*a.transA,a.pixelPadding=a.len-e,a.minPixelPadding=a.pixelPadding/2,e=a.fixTo)){e=e[1]-a.toValue(e[0],!0);e*=a.transA; +if(Math.abs(e)>a.minPixelPadding||a.min===a.dataMin&&a.max===a.dataMax)e=0;a.minPixelPadding-=e}});a(h.prototype,"render",function(a){a.call(this);this.fixTo=null})})(w);(function(a){var h=a.Axis,p=a.Chart,f=a.color,e,q=a.each,x=a.extend,t=a.isNumber,u=a.Legend,l=a.LegendSymbolMixin,c=a.noop,b=a.merge,m=a.pick,r=a.wrap;e=a.ColorAxis=function(){this.init.apply(this,arguments)};x(e.prototype,h.prototype);x(e.prototype,{defaultColorAxisOptions:{lineWidth:0,minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72, +startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{overflow:"justify",rotation:0},minColor:"#e6ebf5",maxColor:"#003399",tickLength:5,showInLegend:!0},keepProps:["legendGroup","legendItemHeight","legendItemWidth","legendItem","legendSymbol"].concat(h.prototype.keepProps),init:function(a,k){var d="vertical"!==a.options.legend.layout,g;this.coll="colorAxis";g=b(this.defaultColorAxisOptions,{side:d?2:1,reversed:!d},k,{opposite:!d,showEmpty:!1,title:null}); +h.prototype.init.call(this,a,g);k.dataClasses&&this.initDataClasses(k);this.initStops();this.horiz=d;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var g=this.chart,d,n=0,v=g.options.chart.colorCount,c=this.options,m=a.dataClasses.length;this.dataClasses=d=[];this.legendItems=[];q(a.dataClasses,function(a,k){a=b(a);d.push(a);a.color||("category"===c.dataClassColor?(k=g.options.colors,v=k.length,a.color=k[n],a.colorIndex=n,n++,n===v&&(n=0)):a.color=f(c.minColor).tweenTo(f(c.maxColor), +2>m?.5:k/(m-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];q(this.stops,function(a){a.color=f(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,k=this.chart,d=k.options.legend||{},n,b;a?(this.left=d=a.attr("x"),this.top=n=a.attr("y"), +this.width=b=a.attr("width"),this.height=a=a.attr("height"),this.right=k.chartWidth-d-b,this.bottom=k.chartHeight-n-a,this.len=this.horiz?b:a,this.pos=this.horiz?d:n):this.len=(this.horiz?d.symbolWidth:d.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,k){var d=this.stops,n,g,b=this.dataClasses,c,m;if(b)for(m=b.length;m--;){if(c=b[m],n=c.from,d=c.to,(void 0===n||a>=n)&&(void 0===d|| +a<=d)){g=c.color;k&&(k.dataClass=m,k.colorIndex=c.colorIndex);break}}else{a=this.normalizedValue(a);for(m=d.length;m--&&!(a>d[m][0]););n=d[m]||d[m+1];d=d[m+1]||n;a=1-(d[0]-a)/(d[0]-n[0]||1);g=n.color.tweenTo(d.color,a)}return g},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=b)},setLegendColor:function(){var a, +b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var d=a.padding,n=a.options,g=this.horiz,k=m(n.symbolWidth,g?this.defaultLegendLength:12),c=m(n.symbolHeight,g?12:this.defaultLegendLength),l=m(n.labelPadding,g?16:30),n=m(n.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,k,c).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth= +k+d+(g?n:l);this.legendItemHeight=c+d+(g?l:0)},setState:c,visible:!0,setVisible:c,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var d=b&&b.plotX,n=b&&b.plotY,g,c=this.pos,k=this.len;b&&(g=this.toPixels(b[b.series.colorKey]),gc+k&&(g=c+k+2),b.plotX=g,b.plotY=this.len-g, +h.prototype.drawCrosshair.call(this,a,b),b.plotX=d,b.plotY=n,this.cross&&(this.cross.addClass("highcharts-coloraxis-marker").add(this.legendGroup),this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,b,d,n,c){return t(c)?this.horiz?["M",c-4,this.top-6,"L",c+4,this.top-6,c,this.top,"Z"]:["M",this.left,c,"L",this.left-6,c+6,this.left-6,c-6,"Z"]:h.prototype.getPlotLinePath.call(this,a,b,d,n)},update:function(a,c){var d=this.chart,n=d.legend;q(this.series,function(a){a.isDirtyData= +!0});a.dataClasses&&n.allItems&&(q(n.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),d.isDirtyLegend=!0);d.options[this.coll]=b(this.userOptions,a);h.prototype.update.call(this,a,c);this.legendItem&&(this.setLegendColor(),n.colorizeItem(this,!0))},remove:function(){this.legendItem&&this.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var b=this,k=this.chart,d=this.legendItems,n=k.options.legend,m=n.valueDecimals,r=n.valueSuffix|| +"",e;d.length||q(this.dataClasses,function(n,g){var v=!0,y=n.from,f=n.to;e="";void 0===y?e="\x3c ":void 0===f&&(e="\x3e ");void 0!==y&&(e+=a.numberFormat(y,m)+r);void 0!==y&&void 0!==f&&(e+=" - ");void 0!==f&&(e+=a.numberFormat(f,m)+r);d.push(x({chart:k,name:e,options:{},drawLegendSymbol:l.drawRectangle,visible:!0,setState:c,isDataClass:!0,setVisible:function(){v=this.visible=!v;q(b.series,function(a){q(a.points,function(a){a.dataClass===g&&a.setVisible(v)})});k.legend.colorizeItem(this,v)}},n))}); +return d},name:""});q(["fill","stroke"],function(b){a.Fx.prototype[b+"Setter"]=function(){this.elem.attr(b,f(this.start).tweenTo(f(this.end),this.pos),null,!0)}});r(p.prototype,"getAxes",function(a){var b=this.options.colorAxis;a.call(this);this.colorAxis=[];b&&new e(this,b)});r(u.prototype,"getAllItems",function(a){var b=[],d=this.chart.colorAxis[0];d&&d.options&&(d.options.showInLegend&&(d.options.dataClasses?b=b.concat(d.getDataClassLegendSymbols()):b.push(d)),q(d.series,function(a){a.options.showInLegend= +!1}));return b.concat(a.call(this))});r(u.prototype,"colorizeItem",function(a,b,d){a.call(this,b,d);d&&b.legendColor&&b.legendSymbol.attr({fill:b.legendColor})});r(u.prototype,"update",function(a){a.apply(this,[].slice.call(arguments,1));this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},arguments[2])})})(w);(function(a){var h=a.defined,p=a.each,f=a.noop,e=a.seriesTypes;a.colorPointMixin={isValid:function(){return null!==this.value},setVisible:function(a){var e=this,q=a?"show":"hide";p(["graphic", +"dataLabel"],function(a){if(e[a])e[a][q]()})},setState:function(e){a.Point.prototype.setState.call(this,e);this.graphic&&this.graphic.attr({zIndex:"hover"===e?1:0})}};a.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis","yAxis","colorAxis"],optionalAxis:"colorAxis",trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:f,parallelArrays:["x","y","value"],colorKey:"value",pointAttribs:e.column.prototype.pointAttribs,translateColors:function(){var a=this,e=this.options.nullColor, +f=this.colorAxis,h=this.colorKey;p(this.data,function(l){var c=l[h];if(c=l.options.color||(l.isNull?e:f&&void 0!==c?f.toColor(c,l):l.color||a.color))l.color=c})},colorAttribs:function(a){var e={};h(a.color)&&(e[this.colorProp||"fill"]=a.color);return e}}})(w);(function(a){function h(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)}function p(a){this.init(a)}var f=a.addEvent,e=a.Chart,q=a.doc,x=a.each,t=a.extend,u=a.merge,l=a.pick,c=a.wrap;p.prototype.init= +function(a){this.chart=a;a.mapNavButtons=[]};p.prototype.update=function(b){var c=this.chart,e=c.options.mapNavigation,g,k,d,n,v,q=function(a){this.handler.call(c,a);h(a)},y=c.mapNavButtons;b&&(e=c.options.mapNavigation=u(c.options.mapNavigation,b));for(;y.length;)y.pop().destroy();l(e.enableButtons,e.enabled)&&!c.renderer.forExport&&a.objectEach(e.buttons,function(a,b){g=u(e.buttonOptions,a);k=g.theme;k.style=u(g.theme.style,g.style);n=(d=k.states)&&d.hover;v=d&&d.select;a=c.renderer.button(g.text, +0,0,q,k,n,v,0,"zoomIn"===b?"topbutton":"bottombutton").addClass("highcharts-map-navigation").attr({width:g.width,height:g.height,title:c.options.lang[b],padding:g.padding,zIndex:5}).add();a.handler=g.onclick;a.align(t(g,{width:a.width,height:2*a.height}),null,g.alignTo);f(a.element,"dblclick",h);y.push(a)});this.updateEvents(e)};p.prototype.updateEvents=function(a){var b=this.chart;l(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||f(b.container, +"dblclick",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());l(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||f(b.container,void 0===q.onmousewheel?"DOMMouseScroll":"mousewheel",function(a){b.pointer.onContainerMouseWheel(a);h(a);return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())};t(e.prototype,{fitToBox:function(a,c){x([["x","width"],["y","height"]],function(b){var g=b[0]; +b=b[1];a[g]+a[b]>c[g]+c[b]&&(a[b]>c[b]?(a[b]=c[b],a[g]=c[g]):a[g]=c[g]+c[b]-a[b]);a[b]>c[b]&&(a[b]=c[b]);a[g]=d.dataMax-d.dataMin&&v.y<= +b.dataMin&&v.height>=b.dataMax-b.dataMin;g&&(d.fixTo=[g-d.pos,c]);k&&(b.fixTo=[k-b.pos,e]);void 0===a||m?(d.setExtremes(void 0,void 0,!1),b.setExtremes(void 0,void 0,!1)):(d.setExtremes(v.x,v.x+v.width,!1),b.setExtremes(v.y,v.y+v.height,!1));this.redraw()}});c(e.prototype,"render",function(a){this.mapNavigation=new p(this);this.mapNavigation.update();a.call(this)})})(w);(function(a){var h=a.extend,p=a.pick,f=a.Pointer;a=a.wrap;h(f.prototype,{onContainerDblClick:function(a){var e=this.chart;a=this.normalize(a); +e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(a.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop)&&e.mapZoom(.5,e.xAxis[0].toValue(a.chartX),e.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var e=this.chart,f;a=this.normalize(a);f=a.detail||-(a.wheelDelta/120);e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop)&&e.mapZoom(Math.pow(e.options.mapNavigation.mouseWheelSensitivity, +f),e.xAxis[0].toValue(a.chartX),e.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(f.prototype,"zoomOption",function(a){var e=this.chart.options.mapNavigation;p(e.enableTouchZoom,e.enabled)&&(this.chart.options.chart.pinchType="xy");a.apply(this,[].slice.call(arguments,1))});a(f.prototype,"pinchTranslate",function(a,f,p,h,u,l,c){a.call(this,f,p,h,u,l,c);"map"===this.chart.options.chart.type&&this.hasZoom&&(a=h.scaleX>h.scaleY,this.pinchTranslateDirection(!a,f,p,h,u,l,c,a?h.scaleX:h.scaleY))})})(w); +(function(a){var h=a.colorPointMixin,p=a.each,f=a.extend,e=a.isNumber,q=a.map,x=a.merge,t=a.noop,u=a.pick,l=a.isArray,c=a.Point,b=a.Series,m=a.seriesType,r=a.seriesTypes,g=a.splat,k=void 0!==a.doc.documentElement.style.vectorEffect;m("map","scatter",{allAreas:!0,animation:!1,nullColor:"#f7f7f7",borderColor:"#cccccc",borderWidth:1,marker:null,stickyTracking:!1,joinBy:"hc-key",dataLabels:{formatter:function(){return this.point.value},inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},turboThreshold:0, +tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}\x3cbr/\x3e"},states:{normal:{animation:!0},hover:{brightness:.2,halo:null},select:{color:"#cccccc"}}},x(a.colorSeriesMixin,{type:"map",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:t,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:["value"],getBox:function(d){var b=Number.MAX_VALUE,c=-b,g=b,k=-b,l=b,m=b,f=this.xAxis,r=this.yAxis,q;p(d||[],function(d){if(d.path){"string"===typeof d.path&&(d.path=a.splitPath(d.path)); +var n=d.path||[],v=n.length,f=!1,r=-b,y=b,h=-b,p=b,A=d.properties;if(!d._foundBox){for(;v--;)e(n[v])&&(f?(r=Math.max(r,n[v]),y=Math.min(y,n[v])):(h=Math.max(h,n[v]),p=Math.min(p,n[v])),f=!f);d._midX=y+(r-y)*u(d.middleX,A&&A["hc-middle-x"],.5);d._midY=p+(h-p)*u(d.middleY,A&&A["hc-middle-y"],.5);d._maxX=r;d._minX=y;d._maxY=h;d._minY=p;d.labelrank=u(d.labelrank,(r-y)*(h-p));d._foundBox=!0}c=Math.max(c,d._maxX);g=Math.min(g,d._minX);k=Math.max(k,d._maxY);l=Math.min(l,d._minY);m=Math.min(d._maxX-d._minX, +d._maxY-d._minY,m);q=!0}});q&&(this.minY=Math.min(l,u(this.minY,b)),this.maxY=Math.max(k,u(this.maxY,-b)),this.minX=Math.min(g,u(this.minX,b)),this.maxX=Math.max(c,u(this.maxX,-b)),f&&void 0===f.options.minRange&&(f.minRange=Math.min(5*m,(this.maxX-this.minX)/5,f.minRange||b)),r&&void 0===r.options.minRange&&(r.minRange=Math.min(5*m,(this.maxY-this.minY)/5,r.minRange||b)))},getExtremes:function(){b.prototype.getExtremes.call(this,this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data); +this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var d=!1,b=this.xAxis,c=this.yAxis,g=b.min,k=b.transA,b=b.minPixelPadding,l=c.min,m=c.transA,c=c.minPixelPadding,f,r=[];if(a)for(f=a.length;f--;)e(a[f])?(r[f]=d?(a[f]-g)*k+b:(a[f]-l)*m+c,d=!d):r[f]=a[f];return r},setData:function(d,c,k,m){var n=this.options,f=this.chart.options.chart,v=f&&f.map,r=n.mapData,h=n.joinBy,u=null===h,t=n.keys||this.pointArrayMap,B=[],w={},z=this.chart.mapTransforms; +!r&&v&&(r="string"===typeof v?a.maps[v]:v);u&&(h="_i");h=this.joinBy=g(h);h[1]||(h[1]=h[0]);d&&p(d,function(a,b){var c=0;if(e(a))d[b]={value:a};else if(l(a)){d[b]={};!n.keys&&a.length>t.length&&"string"===typeof a[0]&&(d[b]["hc-key"]=a[0],++c);for(var g=0;gl&&.99m&&(m=l=1,h=Math.round(h),q=Math.round(q)),t=this.transformGroup,f.renderer.globalAnimation?(x=t.attr("translateX"),z=t.attr("translateY"),w=t.attr("scaleX"),G=t.attr("scaleY"),t.attr({animator:0}).animate({animator:1},{step:function(a,b){t.attr({translateX:x+(h-x)*b.pos,translateY:z+(q-z)*b.pos,scaleX:w+(l-w)*b.pos,scaleY:G+(m-G)*b.pos})}})):t.attr({translateX:h, +translateY:q,scaleX:l,scaleY:m}));k||a.group.element.setAttribute("stroke-width",a.options[a.pointAttrToOptions&&a.pointAttrToOptions["stroke-width"]||"borderWidth"]/(l||1));this.drawMapDataLabels()},drawMapDataLabels:function(){b.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},render:function(){var a=this,c=b.prototype.render;a.chart.renderer.isVML&&3E3=this.minPxSize/2?(d.marker=a.extend(d.marker,{radius:l,width:2*l,height:2*l}),d.dlBox={x:d.plotX-l,y:d.plotY-l,width:2*l,height:2*l}):d.shapeArgs=d.plotY=d.dlBox=void 0}, +alignDataLabel:r.column.prototype.alignDataLabel,buildKDTree:t,applyZones:t},{haloPath:function(a){return c.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});f.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,e=0,m=b,f=this.isXAxis,r=f?"xData":"yData",t=this.min,w={},H=Math.min(c.plotWidth,c.plotHeight),A=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-t,C=b/E,F=[];q(this.series,function(b){var d=b.options;!b.bubblePadding||!b.visible&& +c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),f&&(q(["minSize","maxSize"],function(a){var b=d[a],c=/%$/.test(b),b=l(b);w[a]=c?H*b/100:b}),b.minPxSize=w.minSize,b.maxPxSize=Math.max(w.maxSize,w.minSize),b=b.zData,b.length&&(A=u(d.zMin,Math.min(A,Math.max(p(b),!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))),D=u(d.zMax,Math.max(D,h(b))))))});q(F,function(b){var c=b[r],d=c.length,l;f&&b.getRadii(A,D,b.minPxSize,b.maxPxSize);if(0d,l=c[b][1]>d,e!==l&&k<(c[b][0]-c[a][0])*(d-c[a][1])/(c[b][1]-c[a][1])+c[a][0]&&(g=!g);return g}var p=a.Chart,f=a.each,e=a.extend,q=a.format,w=a.merge,t=a.win,u=a.wrap;p.prototype.transformFromLatLon=function(e,c){if(void 0===t.proj4)return a.error(21),{x:0,y:null};e=t.proj4(c.crs,[e.lon,e.lat]);var b=c.cosAngle||c.rotation&&Math.cos(c.rotation),m=c.sinAngle|| +c.rotation&&Math.sin(c.rotation);e=c.rotation?[e[0]*b+e[1]*m,-e[0]*m+e[1]*b]:e;return{x:((e[0]-(c.xoffset||0))*(c.scale||1)+(c.xpan||0))*(c.jsonres||1)+(c.jsonmarginX||0),y:(((c.yoffset||0)-e[1])*(c.scale||1)+(c.ypan||0))*(c.jsonres||1)-(c.jsonmarginY||0)}};p.prototype.transformToLatLon=function(e,c){if(void 0===t.proj4)a.error(21);else{e={x:((e.x-(c.jsonmarginX||0))/(c.jsonres||1)-(c.xpan||0))/(c.scale||1)+(c.xoffset||0),y:((-e.y-(c.jsonmarginY||0))/(c.jsonres||1)+(c.ypan||0))/(c.scale||1)+(c.yoffset|| +0)};var b=c.cosAngle||c.rotation&&Math.cos(c.rotation),m=c.sinAngle||c.rotation&&Math.sin(c.rotation);c=t.proj4(c.crs,"WGS84",c.rotation?{x:e.x*b+e.y*-m,y:e.x*m+e.y*b}:e);return{lat:c.y,lon:c.x}}};p.prototype.fromPointToLatLon=function(e){var c=this.mapTransforms,b;if(c){for(b in c)if(c.hasOwnProperty(b)&&c[b].hitZone&&h({x:e.x,y:-e.y},c[b].hitZone.coordinates[0]))return this.transformToLatLon(e,c[b]);return this.transformToLatLon(e,c["default"])}a.error(22)};p.prototype.fromLatLonToPoint=function(e){var c= +this.mapTransforms,b,m;if(!c)return a.error(22),{x:0,y:null};for(b in c)if(c.hasOwnProperty(b)&&c[b].hitZone&&(m=this.transformFromLatLon(e,c[b]),h({x:m.x,y:-m.y},c[b].hitZone.coordinates[0])))return m;return this.transformFromLatLon(e,c["default"])};a.geojson=function(a,c,b){var m=[],h=[],g=function(a){var b,c=a.length;h.push("M");for(b=0;br.userAgent.indexOf("Chrome");try{if(!c&&0>r.userAgent.toLowerCase().indexOf("firefox"))return w.createObjectURL(new e.Blob([a],{type:"image/svg+xml;charset-utf-16"}))}catch(d){}return"data:image/svg+xml;charset\x3dUTF-8,"+ +encodeURIComponent(a)};c.imageToDataUrl=function(a,c,d,b,u,l,k,m,p){var g=new e.Image,h,f=function(){setTimeout(function(){var e=t.createElement("canvas"),f=e.getContext&&e.getContext("2d"),x;try{if(f){e.height=g.height*b;e.width=g.width*b;f.drawImage(g,0,0,e.width,e.height);try{x=e.toDataURL(c),u(x,c,d,b)}catch(F){h(a,c,d,b)}}else k(a,c,d,b)}finally{p&&p(a,c,d,b)}},E)},q=function(){m(a,c,d,b);p&&p(a,c,d,b)};h=function(){g=new e.Image;h=l;g.crossOrigin="Anonymous";g.onload=f;g.onerror=q;g.src=a}; +g.onload=f;g.onerror=q;g.src=a};c.downloadSVGLocal=function(a,f,d,b){function u(b,a){a=new e.jsPDF("l","pt",[b.width.baseVal.value+2*a,b.height.baseVal.value+2*a]);e.svg2pdf(b,a,{removeInvalid:!0});return a.output("datauristring")}function l(){y.innerHTML=a;var e=y.getElementsByTagName("text"),g,f=y.getElementsByTagName("svg")[0].style;z(e,function(b){z(["font-family","font-size"],function(a){!b.style[a]&&f[a]&&(b.style[a]=f[a])});b.style["font-family"]=b.style["font-family"]&&b.style["font-family"].split(" ").splice(-1); +g=b.getElementsByTagName("title");z(g,function(a){b.removeChild(a)})});e=u(y.firstChild,0);try{c.downloadURL(e,v),b&&b()}catch(G){d()}}var k,m,p=!0,g,h=f.libURL||c.getOptions().exporting.libURL,y=t.createElement("div"),q=f.type||"image/png",v=(f.filename||"chart")+"."+("image/svg+xml"===q?"svg":q.split("/")[1]),A=f.scale||1,h="/"!==h.slice(-1)?h+"/":h;if("image/svg+xml"===q)try{r.msSaveOrOpenBlob?(m=new MSBlobBuilder,m.append(a),k=m.getBlob("image/svg+xml")):k=c.svgToDataUrl(a),c.downloadURL(k,v), +b&&b()}catch(x){d()}else"application/pdf"===q?e.jsPDF&&e.svg2pdf?l():(p=!0,n(h+"jspdf.js",function(){n(h+"svg2pdf.js",function(){l()})})):(k=c.svgToDataUrl(a),g=function(){try{w.revokeObjectURL(k)}catch(x){}},c.imageToDataUrl(k,q,{},A,function(a){try{c.downloadURL(a,v),b&&b()}catch(F){d()}},function(){var f=t.createElement("canvas"),u=f.getContext("2d"),l=a.match(/^]*width\s*=\s*\"?(\d+)\"?[^>]*>/)[1]*A,k=a.match(/^]*height\s*=\s*\"?(\d+)\"?[^>]*>/)[1]*A,m=function(){u.drawSvg(a,0,0, +l,k);try{c.downloadURL(r.msSaveOrOpenBlob?f.msToBlob():f.toDataURL(q),v),b&&b()}catch(H){d()}finally{g()}};f.width=l;f.height=k;e.canvg?m():(p=!0,n(h+"rgbcolor.js",function(){n(h+"canvg.js",function(){m()})}))},d,d,function(){p&&g()}))};c.Chart.prototype.getSVGForLocalExport=function(a,e,d,b){var f=this,l,k=0,m,p,g,h,n,q=function(a,c,d){++k;d.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",a);k===l.length&&b(f.sanitizeSVG(m.innerHTML,p))};c.wrap(c.Chart.prototype,"getChartHTML", +function(a){var b=a.apply(this,Array.prototype.slice.call(arguments,1));p=this.options;m=this.container.cloneNode(!0);return b});f.getSVGForExport(a,e);l=m.getElementsByTagName("image");try{if(l.length)for(h=0,n=l.length;h=c)&&(void 0===d||a<=d)){e=h.color;f&&(f.dataClass=g);break}}else{this.isLog&&(a=this.val2lin(a));a=1-(this.max-a)/(this.max-this.min);for(g=d.length;g--&&!(a>d[g][0]););c=d[g]||d[g+1];d=d[g+1]||c;a=1-(d[0]-a)/(d[0]-c[0]||1);e=c.color.tweenTo(d.color,a)}return e}};e.seriesType("solidgauge","gauge",{colorByPoint:!0},{translate:function(){var a=this.yAxis;e.extend(a,v);!a.dataClasses&&a.options.dataClasses&&a.initDataClasses(a.options);a.initStops(a.options);e.seriesTypes.gauge.prototype.translate.call(this)}, +drawPoints:function(){var a=this,f=a.yAxis,d=f.center,c=a.options,t=a.chart.renderer,b=c.overshoot,h=r(b)?b/180*Math.PI:0,g;r(c.threshold)&&(g=f.startAngleRad+f.translate(c.threshold,null,null,null,!0));this.thresholdAngleRad=u(g,f.startAngleRad);m(a.points,function(b){var g=b.graphic,k=f.startAngleRad+f.translate(b.y,null,null,null,!0),m=l(u(b.options.radius,c.radius,100))*d[2]/200,n=l(u(b.options.innerRadius,c.innerRadius,60))*d[2]/200,p=f.toColor(b.y,b),q=Math.min(f.startAngleRad,f.endAngleRad), +r=Math.max(f.startAngleRad,f.endAngleRad);"none"===p&&(p=b.color||a.color||"none");"none"!==p&&(b.color=p);k=Math.max(q-h,Math.min(r+h,k));!1===c.wrap&&(k=Math.max(q,Math.min(r,k)));q=Math.min(k,a.thresholdAngleRad);k=Math.max(k,a.thresholdAngleRad);k-q>2*Math.PI&&(k=q+2*Math.PI);b.shapeArgs=n={x:d[0],y:d[1],r:m,innerR:n,start:q,end:k,rounded:c.rounded};b.startR=m;g?(b=n.d,g.animate(e.extend({fill:p},n)),b&&(n.d=b)):(b.graphic=t.arc(n).addClass(b.getClassName(),!0).attr({fill:p,"sweep-flag":0}).add(a.group), +"square"!==c.linecap&&b.graphic.attr({"stroke-linecap":"round","stroke-linejoin":"round"}),b.graphic.attr({stroke:c.borderColor||"none","stroke-width":c.borderWidth||0}))})},animate:function(a){a||(this.startAngleRad=this.thresholdAngleRad,e.seriesTypes.pie.prototype.animate.call(this,a))}})})(l)}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/treemap.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/treemap.js new file mode 100755 index 0000000..a0ba5b2 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/modules/treemap.js @@ -0,0 +1,31 @@ +/* + Highcharts JS v5.0.14 (2017-07-28) + + (c) 2014 Highsoft AS + Authors: Jon Arild Nygard / Oystein Moseng + + License: www.highcharts.com/license +*/ +(function(q){"object"===typeof module&&module.exports?module.exports=q:q(Highcharts)})(function(q){(function(g){var q=g.seriesType,l=g.seriesTypes,D=g.map,v=g.merge,E=g.extend,y=g.noop,n=g.each,w=g.grep,F=g.isNumber,z=g.isString,k=g.pick,u=g.Series,G=g.stableSort,A=g.Color,H=function(a,b,c){c=c||this;g.objectEach(a,function(d,e){b.call(c,d,e,a)})},B=function(a,b,c,d){d=d||this;a=a||[];n(a,function(e,f){c=b.call(d,c,e,f,a)});return c},x=function(a,b,c){c=c||this;a=b.call(c,a);!1!==a&&x(a,b,c)};q("treemap", +"scatter",{showInLegend:!1,marker:!1,dataLabels:{enabled:!0,defer:!1,verticalAlign:"middle",formatter:function(){return this.point.name||this.point.id},inside:!0},tooltip:{headerFormat:"",pointFormat:"\x3cb\x3e{point.name}\x3c/b\x3e: {point.value}\x3c/b\x3e\x3cbr/\x3e"},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1,levelIsConstant:!0,drillUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,opacity:.15, +states:{hover:{borderColor:"#999999",brightness:l.heatmap?0:.1,opacity:.75,shadow:!1}}},{pointArrayMap:["value"],axisTypes:l.heatmap?["xAxis","yAxis","colorAxis"]:["xAxis","yAxis"],directTouch:!0,optionalAxis:"colorAxis",getSymbol:y,parallelArrays:["x","y","value","colorValue"],colorKey:"colorValue",translateColors:l.heatmap&&l.heatmap.prototype.translateColors,trackerGroups:["group","dataLabelsGroup"],getListOfParents:function(a,b){a=B(a,function(a,b,e){b=k(b.parent,"");void 0===a[b]&&(a[b]=[]); +a[b].push(e);return a},{});H(a,function(a,d,e){""!==d&&-1===g.inArray(d,b)&&(n(a,function(a){e[""].push(a)}),delete e[d])});return a},getTree:function(){var a=D(this.data,function(a){return a.id}),a=this.getListOfParents(this.data,a);this.nodeMap=[];return this.buildNode("",-1,0,a,null)},init:function(a,b){u.prototype.init.call(this,a,b);this.options.allowDrillToNode&&g.addEvent(this,"click",this.onClickDrillToNode)},buildNode:function(a,b,c,d,e){var f=this,h=[],C=f.points[b],p;n(d[a]||[],function(b){p= +f.buildNode(f.points[b].id,b,c+1,d,a);h.push(p)});b={id:a,i:b,children:h,level:c,parent:e,visible:!1};f.nodeMap[b.id]=b;C&&(C.node=b);return b},setTreeValues:function(a){var b=this,c=b.options,d=0,e=[],f,h=b.points[a.i];n(a.children,function(a){a=b.setTreeValues(a);e.push(a);a.ignore||(d+=a.val)});G(e,function(a,b){return a.sortIndex-b.sortIndex});f=k(h&&h.options.value,d);h&&(h.value=f);E(a,{children:e,childrenTotal:d,ignore:!(k(h&&h.visible,!0)&&0l.lP.lR&&e.algorithmCalcPoints(a,!1,l,d,h);g===k&&e.algorithmCalcPoints(a,!0,l,d,h);g+=1});return d},algorithmFill:function(a,b,c){var d=[],e,f=b.direction,h=b.x,g=b.y,k=b.width,l=b.height,m,q,r,t;n(c,function(c){e=c.val/b.val*b.height*b.width;m=h;q=g;0===f?(t=l,r=e/t,k-=r,h+=r):(r=k,t=e/r,l-=t,g+=t);d.push({x:m,y:q,width:r,height:t});a&&(f=1-f)});return d},strip:function(a,b){return this.algorithmLowAspectRatio(!1, +a,b)},squarified:function(a,b){return this.algorithmLowAspectRatio(!0,a,b)},sliceAndDice:function(a,b){return this.algorithmFill(!0,a,b)},stripes:function(a,b){return this.algorithmFill(!1,a,b)},translate:function(){var a=this,b=a.rootNode=k(a.rootNode,a.options.rootId,""),c,d;u.prototype.translate.call(a);a.levelMap=B(a.options.levels,function(a,b){a[b.level]=b;return a},{});d=a.tree=a.getTree();c=a.nodeMap[b];""===b||c&&c.children.length||(a.drillToNode("",!1),b=a.rootNode,c=a.nodeMap[b]);x(a.nodeMap[a.rootNode], +function(b){var c=!1,e=b.parent;b.visible=!0;if(e||""===e)c=a.nodeMap[e];return c});x(a.nodeMap[a.rootNode].children,function(a){var b=!1;n(a,function(a){a.visible=!0;a.children.length&&(b=(b||[]).concat(a.children))});return b});a.setTreeValues(d);a.axisRatio=a.xAxis.len/a.yAxis.len;a.nodeMap[""].pointValues=b={x:0,y:0,width:100,height:100};a.nodeMap[""].values=b=v(b,{width:b.width*a.axisRatio,direction:"vertical"===a.options.layoutStartingDirection?0:1,val:d.val});a.calculateChildrenAreas(d,b); +a.colorAxis?a.translateColors():a.options.colorByPoint||a.setColorRecursive(a.tree);a.options.allowDrillToNode&&(c=c.pointValues,a.xAxis.setExtremes(c.x,c.x+c.width,!1),a.yAxis.setExtremes(c.y,c.y+c.height,!1),a.xAxis.setScale(),a.yAxis.setScale());a.setPointValues()},drawDataLabels:function(){var a=this,b=w(a.points,function(a){return a.node.visible}),c,d;n(b,function(b){d=a.levelMap[b.node.levelDynamic];c={style:{}};b.node.isLeaf||(c.enabled=!1);d&&d.dataLabels&&(c=v(c,d.dataLabels),a._hasPointLabels= +!0);b.shapeArgs&&(c.style.width=b.shapeArgs.width,b.dataLabel&&b.dataLabel.css({width:b.shapeArgs.width+"px"}));b.dlOptions=v(c,b.options.dataLabels)});u.prototype.drawDataLabels.call(this)},alignDataLabel:function(a){l.column.prototype.alignDataLabel.apply(this,arguments);a.dataLabel&&a.dataLabel.attr({zIndex:(a.node.zIndex||0)+1})},pointAttribs:function(a,b){var c=this.levelMap[a.node.levelDynamic]||{},d=this.options,e=b&&d.states[b]||{},f=a.getClassName();a={stroke:a.borderColor||c.borderColor|| +e.borderColor||d.borderColor,"stroke-width":k(a.borderWidth,c.borderWidth,e.borderWidth,d.borderWidth),dashstyle:a.borderDashStyle||c.borderDashStyle||e.borderDashStyle||d.borderDashStyle,fill:a.color||this.color};-1!==f.indexOf("highcharts-above-level")?(a.fill="none",a["stroke-width"]=0):-1!==f.indexOf("highcharts-internal-node-interactive")?(b=k(e.opacity,d.opacity),a.fill=A(a.fill).setOpacity(b).get(),a.cursor="pointer"):-1!==f.indexOf("highcharts-internal-node")?a.fill="none":b&&(a.fill=A(a.fill).brighten(e.brightness).get()); +return a},drawPoints:function(){var a=this,b=w(a.points,function(a){return a.node.visible});n(b,function(b){var c="levelGroup-"+b.node.levelDynamic;a[c]||(a[c]=a.chart.renderer.g(c).attr({zIndex:1E3-b.node.levelDynamic}).add(a.group));b.group=a[c]});l.column.prototype.drawPoints.call(this);a.options.allowDrillToNode&&n(b,function(b){b.graphic&&(b.drillId=a.options.interactByLeaf?a.drillToByLeaf(b):a.drillToByGroup(b))})},onClickDrillToNode:function(a){var b=(a=a.point)&&a.drillId;z(b)&&(a.setState(""), +this.drillToNode(b))},drillToByGroup:function(a){var b=!1;1!==a.node.level-this.nodeMap[this.rootNode].level||a.node.isLeaf||(b=a.id);return b},drillToByLeaf:function(a){var b=!1;if(a.node.parent!==this.rootNode&&a.node.isLeaf)for(a=a.node;!b;)a=this.nodeMap[a.parent],a.parent===this.rootNode&&(b=a.id);return b},drillUp:function(){var a=this.nodeMap[this.rootNode];a&&z(a.parent)&&this.drillToNode(a.parent)},drillToNode:function(a,b){var c=this.nodeMap[a];this.rootNode=a;""===a?this.drillUpButton= +this.drillUpButton.destroy():this.showDrillUpButton(c&&c.name||a);this.isDirty=!0;k(b,!0)&&this.chart.redraw()},showDrillUpButton:function(a){var b=this;a=a||"\x3c Back";var c=b.options.drillUpButton,d,e;c.text&&(a=c.text);this.drillUpButton?this.drillUpButton.attr({text:a}).align():(e=(d=c.theme)&&d.states,this.drillUpButton=this.chart.renderer.button(a,null,null,function(){b.drillUp()},d,e&&e.hover,e&&e.select).attr({align:c.position.align,zIndex:7}).add().align(c.position,!1,c.relativeTo||"plotBox"))}, +buildKDTree:y,drawLegendSymbol:g.LegendSymbolMixin.drawRectangle,getExtremes:function(){u.prototype.getExtremes.call(this,this.colorValueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;u.prototype.getExtremes.call(this)},getExtremesFromAll:!0,bindAxes:function(){var a={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,dataMin:0,minPadding:0,max:100,dataMax:100,maxPadding:0,startOnTick:!1,title:null,tickPositions:[]};u.prototype.bindAxes.call(this);g.extend(this.yAxis.options,a);g.extend(this.xAxis.options, +a)}},{getClassName:function(){var a=g.Point.prototype.getClassName.call(this),b=this.series,c=b.options;this.node.level<=b.nodeMap[b.rootNode].level?a+=" highcharts-above-level":this.node.isLeaf||k(c.interactByLeaf,!c.allowDrillToNode)?this.node.isLeaf||(a+=" highcharts-internal-node"):a+=" highcharts-internal-node-interactive";return a},isValid:function(){return F(this.value)},setState:function(a){g.Point.prototype.setState.call(this,a);this.graphic&&this.graphic.attr({zIndex:"hover"===a?1:0})}, +setVisible:l.pie.prototype.pointClass.prototype.setVisible})})(q)}); diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/annotations.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/annotations.js new file mode 100755 index 0000000..ff23223 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/annotations.js @@ -0,0 +1 @@ +!function(a){"object"==typeof module&&module.exports?module.exports=a:a(Highcharts)}(function(a){"use strict";function m(a){var b,c;return c={xAxis:0,yAxis:0,shape:{params:{stroke:"#000000",fill:"rgba(0,0,0,0)","stroke-width":2}},selectionMarker:{"stroke-width":1,stroke:"black",fill:"transparent",dashstyle:"ShortDash","shape-rendering":"crispEdges"}},b={circle:{params:{x:0,y:0}}},b[a]&&(c.shape=f(c.shape,b[a])),c}function n(){var a=[],b=["circle","line","square","text"],c=["circle","path","rect",null],d=[{r:0,fill:"rgba(255,0,0,0.4)",stroke:"black"},{d:["M",0,0,"L",10,10],fill:"rgba(255,0,0,0.4)",stroke:"black"},{width:10,height:10,fill:"rgba(255,0,0,0.4)",stroke:"black"}],e=[l.getRadius,l.getPath,l.getRect,l.getText],f=[l.getRadiusAndUpdate,l.getPathAndUpdate,l.getRectAndUpdate,l.showInput];return g(b,function(b,g){a.push({annotationEvents:{step:e[g],stop:f[g]},annotation:{anchorX:"left",anchorY:"top",xAxis:0,yAxis:0,shape:{type:c[g],params:d[g]}},symbol:{shape:b,size:12,style:{"stroke-width":2,stroke:"black",fill:"red",zIndex:121}},style:{fill:"black",stroke:"blue",strokeWidth:2},size:12,states:{selected:{fill:"#9BD"},hover:{fill:"#9BD"}}})}),{enabledButtons:!0,buttons:a,buttonsOffsets:[0,0]}}function o(a){return"[object Array]"===Object.prototype.toString.call(a)}function p(a){return"number"==typeof a}function q(a){return a!==b&&null!==a}function r(a,b,c,d,e){for(var f=a.length,g=0,h=[];g=0&&b.annotations.buttons[b.annotations.selected][0].setState(0),b.annotations.allowZoom=!1,b.annotations.selected=a,c.setState(2))}}function w(a,b,c){var q,r,d=a.annotations.options.buttonsOffsets,e=a.rangeSelector&&a.rangeSelector.inputGroup?a.rangeSelector.inputGroup.offset:0,f=a.renderer,g=b.symbol,h=30,i=g.size,j=4,k=b.size-j,l=a.plotWidth+a.plotLeft-(c+1)*h-e-d[0],m=a.plotTop-(a.rangeSelector?23+k+j:0)+d[1],n=b.events&&b.events.click?b.events.click:v(c,a),o=b.states.selected,p=b.states.hover;return q=f.button("",l,m,n,{},p,o).attr({width:k,height:k,zIndex:10}),r=f.symbol(g.shape,k-i/2+j,k-i/2+j,i,i).attr(g.style).add(q),q.attr(q.style).add(),[q,r]}function x(a){var b=a.annotations.options.buttons;a.annotations.buttons=a.annotations.buttons||[],g(b,function(b,c){a.annotations.buttons.push(w(a,b,c))})}var b,c,d=a.Chart,e=a.extend,f=a.merge,g=a.each,h=window.HighchartsAdapter&&window.HighchartsAdapter.inArray||a.inArray,i=a.addEvent,j=a.removeEvent,k=!!a.VMLRenderer;a.ALLOWED_SHAPES=["path","rect","circle"],c={top:0,left:0,center:.5,middle:.5,bottom:1,right:1},a.SVGRenderer.prototype.symbols.line=function(a,b,c,d){var e=2;return["M",a+e,b+e,"L",a+c-e,b+d-e]},a.SVGRenderer.prototype.symbols.text=function(a,b,c,d){var e=1;return["M",a,b+e,"L",a+c,b+e,"M",a+c/2,b+e,"L",a+c/2,b+e+d]},a.VMLRenderer&&(a.VMLRenderer.prototype.symbols.text=a.SVGRenderer.prototype.symbols.text,a.VMLRenderer.prototype.symbols.line=a.SVGRenderer.prototype.symbols.line),a.wrap(a.Pointer.prototype,"drag",function(a,b){this.chart.annotations&&!this.chart.annotations.allowZoom||a.call(this,b)}),a.wrap(a.Pointer.prototype,"onContainerMouseDown",function(a,b){a.call(this,b),this.chart.selectedAnnotation&&this.chart.selectedAnnotation.events.deselect.call(this.chart.selectedAnnotation,b)});var l={getRadius:function(a){var b=this,c=b.chart,d=c.container.getBoundingClientRect(),e=a.clientX-d.left,f=a.clientY-d.top,g=c.xAxis[b.options.xAxis],h=c.yAxis[b.options.yAxis],i=Math.abs(e-g.toPixels(b.options.xValue)),j=Math.abs(f-h.toPixels(b.options.yValue)),k=parseInt(Math.sqrt(i*i+j*j),10);return b.shape.attr({r:k}),k},getRadiusAndUpdate:function(a){var b=l.getRadius.call(this,a);this.update({shape:{params:{r:b,x:-b,y:-b}}})},getPath:function(a){var b=this,c=b.chart,d=c.container.getBoundingClientRect(),e=a.clientX-d.left,f=a.clientY-d.top,g=c.xAxis[b.options.xAxis],h=c.yAxis[b.options.yAxis],i=e-g.toPixels(b.options.xValue),j=f-h.toPixels(b.options.yValue),k=["M",0,0,"L",parseInt(i,10),parseInt(j,10)];return b.shape.attr({d:k}),k},getPathAndUpdate:function(a){var b=this,c=b.chart,d=l.getPath.call(b,a),e=c.xAxis[b.options.xAxis],f=c.yAxis[b.options.yAxis],g=e.toValue(d[4]+e.toPixels(b.options.xValue)),h=f.toValue(d[5]+f.toPixels(b.options.yValue));this.update({xValueEnd:g,yValueEnd:h,shape:{params:{d:d}}})},getRect:function(a){var b=this,c=b.chart,d=c.container.getBoundingClientRect(),e=a.clientX-d.left,f=a.clientY-d.top,g=c.xAxis[b.options.xAxis],h=c.yAxis[b.options.yAxis],i=g.toPixels(b.options.xValue),j=h.toPixels(b.options.yValue),k=e-i,l=f-j,m=Math.round(k)+1,n=Math.round(l)+1,o={};return o.x=m<0?m:0,o.width=Math.abs(m),o.y=n<0?n:0,o.height=Math.abs(n),b.shape.attr({x:o.x,y:o.y,width:o.width,height:o.height}),o},getRectAndUpdate:function(a){var b=l.getRect.call(this,a);this.update({shape:{params:b}})},getText:function(){},showInput:function(a){var f,b=this,c=b.chart,d=c.annotationInputIndex=c.annotationInputIndex?c.annotationInputIndex:1,e=document.createElement("span");e.innerHTML='',e.style.position="absolute",e.style.left=a.pageX+"px",e.style.top=a.pageY+"px",document.body.appendChild(e),e.querySelectorAll("input")[0].focus(),f=e.querySelectorAll("button")[0],f.onclick=function(){var a=this.parentNode;b.update({title:{text:a.querySelectorAll("input")[0].value}}),a.parentNode.removeChild(a)},c.annotationInputIndex++}},y=function(){this.init.apply(this,arguments)};y.prototype={init:function(a,b){var c=b.shape&&b.shape.type;this.chart=a,this.options=f({},m(c),b),this.userOptions=b},render:function(b){function r(a,b){if(q(b))for(var d in b)!function(d){i(a.element,d,function(a){b[d].call(c,a)})}(d)}var c=this,d=this.chart,e=c.chart.renderer,f=c.group,g=c.title,j=c.shape,k=c.options,l=k.title,m=k.shape,n=k.allowDragX,o=k.allowDragY,p=c.hasEvents;f||(f=c.group=e.g(),f.attr({class:"highcharts-annotation"})),!j&&m&&h(m.type,a.ALLOWED_SHAPES)!==-1&&(j=c.shape="rect"===m.type?e[k.shape.type]().attr(m.params):e[k.shape.type](m.params),j.add(f)),!g&&l&&(g=c.title=e.label(l),g.add(f)),!n&&!o||p?p||($(f.element).on("mousedown",function(a){c.events.select(a,c)}),r(f,k.events)):($(f.element).on("mousedown",function(a){c.events.storeAnnotation(a,c,d),c.events.select(a,c)}),i(document,"mouseup",function(a){c.events.releaseAnnotation(a,d)}),r(f,k.events)),this.hasEvents=!0,f.add(d.annotations.groups[k.yAxis]),c.linkObjects(),b!==!1&&c.redraw()},redraw:function(b){var u,v,w,x,y,z,d=this.options,f=this.chart,g=this.group,h=this.title,i=this.shape,j=this.linkedObject,l=f.xAxis[d.xAxis],m=f.yAxis[d.yAxis],n=d.width,o=d.height,s=c[d.anchorY],t=c[d.anchorX];if(j&&(v=j instanceof a.Point?"point":j instanceof a.Series?"series":null,"point"===v?(d.x=j.plotX+f.plotLeft,d.y=j.plotY+f.plotTop,w=j.series):"series"===v&&(w=j),w.pointXOffset&&(d.x+=w.pointXOffset+(j.shapeArgs.width/2||0)),g.attr({visibility:w.group.attr("visibility")})),y=q(d.xValue)?l.toPixels(d.xValue):d.x,z=q(d.yValue)?m.toPixels(d.yValue):d.y,f.inverted&&q(d.xValue)&&q(d.yValue)){var A=y;y=z,z=A}if(!isNaN(y)&&!isNaN(z)&&p(y)&&p(z)){if(h){var B=d.title;k?h.attr({text:B.text}):h.attr(B),h.css(d.title.style)}if(i){if(u=e({},d.shape.params),"values"===d.shape.units){var C=f.inverted?m:l,D=f.inverted?l:m;q(u.x)&&u.width?(u.width=l.toPixels(u.width+u.x)-l.toPixels(u.x),u.x=l.toPixels(u.x)):u.width?u.width=C.toPixels(u.width)-C.toPixels(0):q(u.x)&&(u.x=l.toPixels(u.x)),q(u.y)&&u.height?(u.height=-m.toPixels(u.height+u.y)+m.toPixels(u.y),u.y=m.toPixels(u.y)):u.height?(u.height=-D.toPixels(u.height)+D.toPixels(0),u.height*=f.inverted?-1:1):q(u.y)&&(u.y=m.toPixels(u.y)),"path"===d.shape.type&&(u.d=r(u.d,l,m,y,z))}q(d.yValueEnd)&&q(d.xValueEnd)&&(u.d=u.d||d.shape.d||["M",0,0,"L",0,0],u.d[4]=l.toPixels(d.xValueEnd)-l.toPixels(d.xValue),u.d[5]=m.toPixels(d.yValueEnd)-m.toPixels(d.yValue)),"circle"===d.shape.type&&(u.x+=u.r,u.y+=u.r),i.attr(u)}g.bBox=null,p(n)||(x=g.getBBox(),n=x.width),p(o)||(x||(x=g.getBBox()),o=x.height),p(t)||(t=c.center),p(s)||(s=c.center),y-=n*t,z-=o*s,this.selectionMarker&&this.events.select({},this),b&&f.animation&&q(g.translateX)&&q(g.translateY)?g.animate({translateX:y,translateY:z}):g.translate(y,z)}},destroy:function(){var a=this,b=this.chart,c=b.annotations.allItems,d=c.indexOf(a);b.activeAnnotation=null,d>-1&&(c.splice(d,1),b.options.annotations.splice(d,1)),g(["title","shape","group"],function(b){a[b]&&a[b].destroy?(a[b].destroy(),a[b]=null):a[b]&&(a[b].remove(),a[b]=null)}),a.group=a.title=a.shape=a.chart=a.options=a.hasEvents=null},show:function(){this.linkedObject||(this.visible=!0,this.group.attr({visibility:"visible"}))},hide:function(){this.linkedObject||(this.visible=!1,this.group.attr({visibility:"hidden"}))},update:function(a,b){var c=this,d=this.chart,e=d.annotations.allItems,g=e.indexOf(c),h=f(this.options,a);return g>=0&&(d.options.annotations[g]=h),this.options=h,this.linkObjects(),this.render(b),this},select:function(){return this.events.select(null,this),this},deselect:function(){return this.events.deselect(null,this),this.chart.selectedAnnotation=null,this},linkObjects:function(){var a=this,b=a.chart,c=a.linkedObject,d=c&&(c.id||c.options.id),e=a.options,f=e.linkedTo;q(f)?q(c)&&f===d||(a.linkedObject=b.get(f)):a.linkedObject=null},events:{select:function(a,b){var e,c=b.chart,d=c.selectedAnnotation,f=10;d&&d!==b&&d.deselect(),b.selectionMarker||(e=b.group.getBBox(),b.selectionMarker=c.renderer.rect(e.x-f/2,e.y-f/2,e.width+f,e.height+f).attr(b.options.selectionMarker),b.selectionMarker.add(b.group)),c.selectedAnnotation=b},deselect:function(){this.selectionMarker&&this.group&&(this.selectionMarker.destroy(),this.selectionMarker=!1,this.group.bBox=null)},destroyAnnotation:function(a,b){b.destroy()},translateAnnotation:function(a,b){if(a.stopPropagation(),a.preventDefault(),b.activeAnnotation){var c=b.container.getBoundingClientRect(),d=a.clientX-c.left,e=a.clientY-c.top;if(!b.isInsidePlot(d-b.plotLeft,e-b.plotTop))return;var f=b.activeAnnotation,g=f.options.allowDragX?a.clientX-f.startX+f.group.translateX:f.group.translateX,h=f.options.allowDragY?a.clientY-f.startY+f.group.translateY:f.group.translateY;f.transX=g,f.transY=h,f.group.attr({transform:"translate("+g+","+h+")"}),f.hadMove=!0}},storeAnnotation:function(a,b,c){if(c.annotationDraging||(a.stopPropagation(),a.preventDefault()),!k&&0===a.button||k&&1===a.button){var d=a.clientX,e=a.clientY;c.activeAnnotation=b,c.activeAnnotation.startX=d,c.activeAnnotation.startY=e,c.activeAnnotation.transX=0,c.activeAnnotation.transY=0,i(document,"mousemove",function(a){b.events.translateAnnotation(a,c)})}},releaseAnnotation:function(a,b){if(a.stopPropagation(),a.preventDefault(),!b.activeAnnotation||0===b.activeAnnotation.transX&&0===b.activeAnnotation.transY)b.activeAnnotation=null;else{var c=b.activeAnnotation,d=c.transX,e=c.transY,f=c.options,g=f.xValue,h=f.yValue,i=f.xValueEnd,j=f.yValueEnd,k=f.allowDragX,l=f.allowDragY,m=c.chart.xAxis[c.options.xAxis],n=c.chart.yAxis[c.options.yAxis],o=m.toValue(d),p=n.toValue(e);0===d&&0===e||(k&&l?c.update({xValue:q(g)?o:null,yValue:q(h)?p:null,xValueEnd:q(i)?i-g+o:null,yValueEnd:q(j)?j-h+p:null,x:q(g)?null:d,y:q(h)?null:e},!1):k?c.update({xValue:q(g)?o:null,yValue:q(h)?h:null,xValueEnd:q(i)?i-g+o:null,yValueEnd:q(j)?j:null,x:q(g)?null:d,y:q(h)?null:c.options.y},!1):l&&c.update({xValue:q(g)?g:null,yValue:q(h)?p:null,xValueEnd:q(i)?i:null,yValueEnd:q(j)?j-h+p:null,x:q(g)?null:c.options.x,y:q(h)?null:e},!1)),b.activeAnnotation=null,b.redraw(!1)}}}},e(d.prototype,{addAnnotation:function(a,b){var e,f,g,h,c=this,d=c.annotations.allItems;for(o(a)||(a=[a]),h=a.length,g=0;gc.options.annotations.length&&c.options.annotations.push(a[g]),e.render(b)},redrawAnnotations:function(){for(var h,i,a=this,b=a.yAxis,c=b.length,d=a.annotations,e=d.options.buttonsOffsets,f=0;f0&&a.addAnnotation(a.options.annotations),a.annotations.options=f(n(),a.options.annotationsOptions?a.options.annotationsOptions:{}),a.annotations.options.enabledButtons?(x(a),u(a)):a.annotations.buttons=[],i(a,"redraw",function(){a.redrawAnnotations()})}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){if(null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&d!==1/0&&d!==-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);e0&&m+c+e.legendWidth0&&n+f+e.legendHeightg&&(a=g),a}var b=a.addEvent,c=a.each,d=a.pick;a.Chart.prototype.callbacks.push(function(a){function q(a){var b=a.originalEvent||a,c=b.changedTouches?b.changedTouches[0].pageX:a.pageX,g=b.changedTouches?b.changedTouches[0].pageY:a.pageY,q=f.series,r=q.options.draggableX&&f.draggableX!==!1,s=q.options.draggableY&&f.draggableY!==!1,t=d(q.options.dragSensitiviy,1),u=r?h-c:0,v=s?i-g:0,w=j-u,x=k-v,y=void 0===h?f.x:q.xAxis.toValue(w,!0),z=void 0===i?f.y:q.yAxis.toValue(x,!0);if(y=e(y,q,"X"),z=e(z,q,"Y"),f.low){var B=l-v,C=m-v;o=void 0===i?f.high:q.yAxis.toValue(B,!0),p=void 0===i?f.low:q.yAxis.toValue(C,!0),o=e(o,q,"Y"),p=e(p,q,"Y")}return Math.sqrt(Math.pow(u,2)+Math.pow(v,2))>t?{x:r?y:f.x,y:s?z:f.y,high:s&&!n?o:f.high,low:s&&n?p:f.low}:null}function r(a){var b;f&&(a&&(b=q(a),b&&(f.update(b),f.series.options.kdNow=!0,f.series.buildKDTree())),b&&(b.dragStart=g,f.firePointEvent("drop",b))),f=h=i=void 0}function s(b){var c,e,o,d=b.originalEvent||b;(d.target.getAttribute("class")||"").indexOf("highcharts-handle")!==-1&&(e=d.target.point),o=a.hoverPoint&&a.hoverPoint.series,e||!a.hoverPoint||o.useDragHandle&&o.useDragHandle()||(e=a.hoverPoint),e&&(c=e.series.options,g={},c.draggableX&&e.draggableX!==!1&&(f=e,h=d.changedTouches?d.changedTouches[0].pageX:b.pageX,j=f.plotX,g.x=f.x),c.draggableY&&e.draggableY!==!1&&(f=e,i=d.changedTouches?d.changedTouches[0].pageY:b.pageY,k=f.plotY+(a.plotHeight-(f.yBottom||a.plotHeight)),g.y=f.y,f.plotHigh&&(l=f.plotHigh,m=f.plotLow,n=Math.abs(m-(i-60))1?" ("+c+")":""):"Category"},p=[];k=0,b(this.series,function(d){var q,e=d.options.keys,h=e||d.pointArrayMap||["y"],i=h.length,l=d.requireSorting,m={},n=a.inArray(d.xAxis,f);if(b(h,function(a){m[a]=d[a+"Axis"]&&d[a+"Axis"].categories||[]}),d.options.includeInCSVExport!==!1&&d.visible!==!1){for(a.find(p,function(a){return a[0]===n})||p.push([n,k]),q=0;q",g=0;g'+f+""):c+="<"+e+">"+(void 0===f?"":f)+"";c+="",d||(c+="")}),c+=""},a.Chart.prototype.downloadCSV=function(){var a=this.getCSV(!0);f(this,"data:text/csv,\ufeff"+encodeURIComponent(a),"csv",a,"text/csv")},a.Chart.prototype.downloadXLS=function(){var a="data:application/vnd.ms-excel;base64,",b=''+this.getTable(!0)+"",c=function(a){return window.btoa(unescape(encodeURIComponent(a)))};f(this,a+c(b),"xls",b,"application/vnd.ms-excel")},a.Chart.prototype.viewData=function(){this.dataTableDiv||(this.dataTableDiv=document.createElement("div"),this.dataTableDiv.className="highcharts-data-table",this.renderTo.parentNode.insertBefore(this.dataTableDiv,this.renderTo.nextSibling)),this.dataTableDiv.innerHTML=this.getTable()},a.getOptions().exporting&&a.getOptions().exporting.buttons.contextButton.menuItems.push({textKey:"downloadCSV",onclick:function(){this.downloadCSV()}},{textKey:"downloadXLS",onclick:function(){this.downloadXLS()}},{textKey:"viewData",onclick:function(){this.viewData()}}),d.map&&(d.map.prototype.exportKey="name"),d.mapbubble&&(d.mapbubble.prototype.exportKey="name"),d.treemap&&(d.treemap.prototype.exportKey="name")}); \ No newline at end of file diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/grouped-categories.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/grouped-categories.js new file mode 100755 index 0000000..003599c --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/grouped-categories.js @@ -0,0 +1 @@ +!function(a){"object"==typeof module&&module.exports?module.exports=a:a(Highcharts)}(function(a){"use strict";function s(a){return JSON.parse(JSON.stringify(a))}function t(a,b){return this.userOptions=s(a),this.name=a.name||a,this.parent=b,this}function u(a){for(var b=a.length,c=0;b--;)c+=a[b];return c}function v(a,b,c){for(a.unshift(new t(b,c));c;)c.leaves=c.leaves?c.leaves+1:1,c=c.parent}function w(a,b,c,d,f){var h,g=a.length;for(f=f?f:0,c.depth=c.depth?c.depth:0;g--;)h=a[g],h.categories?(d&&(h.parent=d),w(h.categories,b,c,h,f+1)):v(b,h,d);c.depth=e(c.depth,f)}function x(a,b,d){b[0]===b[2]&&(b[0]=b[2]=c(b[0])-d%2/2),b[1]===b[3]&&(b[1]=b[3]=c(b[1])+d%2/2),a.push("M",b[0],b[1],"L",b[2],b[3])}function y(a,b){return a.getPosition(a.axis.horiz,b,a.axis.tickmarkOffset)}function z(a,b,c){for(var e,d=a.length;d--;)e=a[d][b],e&&z(e,b,c),c(a[d])}var b=void 0,c=Math.round,d=Math.min,e=Math.max,f=a.merge,g=a.pick,h=a.each,i=window.HighchartsAdapter&&window.HighchartsAdapter.inArray||a.inArray,j=a.Axis.prototype,k=a.Tick.prototype,l=j.init,m=j.render,n=j.setCategories,o=k.getLabelSize,p=k.addLabel,q=k.destroy,r=k.render;t.prototype.toString=function(){for(var a=[],b=this;b;)a.push(b.name),b=b.parent;return a.join(", ")},j.init=function(a,b){l.call(this,a,b),"object"==typeof b&&b.categories&&this.setupGroups(b)},j.setupGroups=function(a){var b=s(a.categories),c=[],d={},e=this.options.labels,h=e.groupedOptions,i=e.style;w(b,c,d),this.categoriesTree=b,this.categories=c,this.isGrouped=0!==d.depth,this.labelsDepth=d.depth,this.labelsSizes=[],this.labelsGridPath=[],this.tickLength=a.tickLength||this.tickLength||null,this.tickWidth=g(a.tickWidth,this.isXAxis?1:0),this.directionFactor=[-1,1,1,-1][this.side],this.options.lineWidth=g(a.lineWidth,1),this.groupFontHeights=[];for(var j=0;j<=d.depth;j++){var k=h&&h[j-1],l=k&&h[j-1].style?f(i,h[j-1].style):i;this.groupFontHeights[j]=Math.round(.3*this.chart.renderer.fontMetrics(l?l.fontSize:0).b)}},j.render=function(){if(this.isGrouped&&(this.labelsGridPath=[]),this.originalTickLength===b&&(this.originalTickLength=this.options.tickLength),this.options.tickLength=this.isGrouped?.001:this.originalTickLength,m.call(this),!this.isGrouped)return this.labelsGrid&&this.labelsGrid.attr({visibility:"hidden"}),!1;var q,a=this,c=a.options,d=a.top,e=a.left,f=e+a.width,g=d+a.height,h=a.hasVisibleSeries||a.hasData,i=a.labelsDepth,j=a.labelsGrid,k=a.horiz,l=a.labelsGridPath,n=c.drawHorizontalBorders===!1?i+1:0,o=a.opposite?k?d:f:k?g:e,p=a.tickWidth;for(a.userTickLength&&(i-=1),j||(j=a.labelsGrid=a.chart.renderer.path().attr({strokeWidth:p,"stroke-width":p,stroke:c.tickColor||""}).add(a.axisGroup),c.tickColor&&j.addClass("highcharts-axis-line"));n<=i;)o+=a.groupSize(n),q=k?[e,o,f,o]:[o,d,o,g],x(l,q,p),n++;return j.attr({d:l,visibility:h?"visible":"hidden"}),a.labelGroup.attr({visibility:h?"visible":"hidden"}),z(a.categoriesTree,"categories",function(b){var c=b.tick;return!!c&&(c.startAt+c.leaves-1a.max?(c.label.hide(),c.destroyed=0):c.label.attr({visibility:h?"visible":"hidden"}),!0)}),!0},j.setCategories=function(a,b){this.categories&&this.cleanGroups(),this.setupGroups({categories:a}),this.categories=this.userOptions.categories=a,n.call(this,this.categories,b)},j.cleanGroups=function(){var b,a=this.ticks;for(b in a)a[b].parent&&delete a[b].parent;z(this.categoriesTree,"categories",function(a){var b=a.tick;return!!b&&(b.label.destroy(),h(b,function(a,c){delete b[c]}),delete a.tick,!0)}),this.labelsGrid=null},j.groupSize=function(a,c){var d=this.labelsSizes,f=this.directionFactor,g=!!this.options.labels.groupedOptions&&this.options.labels.groupedOptions[a-1],h=0;return g&&(h=f===-1?g.x?g.x:0:g.y?g.y:0),c!==b&&(d[a]=e(d[a]||0,c+10+Math.abs(h))),a===!0?u(d)*f:d[a]?d[a]*f:0},k.addLabel=function(){var a;return p.call(this),!(!this.axis.categories||!(a=this.axis.categories[this.pos]))&&(this.label&&this.label.attr("text",this.axis.labelFormatter.call({axis:this.axis,chart:this.axis.chart,isFirst:this.isFirst,isLast:this.isLast,value:a.name})),this.axis.isGrouped&&this.axis.options.labels.enabled&&this.addGroupedLabels(a),!0)},k.addGroupedLabels=function(a){for(var m,b=this,c=this.axis,d=c.chart,e=c.options.labels,g=e.useHTML,h=e.style,i=e.groupedOptions,j={align:"center",rotation:e.rotation,x:0,y:0},k=c.horiz?"height":"width",l=0;b;){if(l>0&&!a.tick){this.value=a.name;var n=e.formatter?e.formatter.call(this,a):a.name,o=i&&i[l-1],p=o?f(j,i[l-1]):j,q=o&&i[l-1].style?f(h,i[l-1].style):h;delete p.style,m=d.renderer.text(n,0,0,g).attr(p).css(q).add(c.labelGroup),b.startAt=this.pos,b.childCount=a.categories.length,b.leaves=a.leaves,b.visible=this.childCount,b.label=m,b.labelOffsets={x:p.x,y:p.y},a.tick=b}b&&c.groupSize(l,b.label.getBBox()[k]),a=a.parent,b=a?b.parent=a.tick||{}:null,l++}},k.render=function(a,b,c){function G(a){var b=0;return l?(b=i(a.name,a.parent.categories),b=b<0?0:b):b}r.call(this,a,b,c);var f=this.axis.categories[this.pos];if(this.axis.isGrouped&&f&&!(this.pos>this.axis.max)){var A,B,C,D,E,F,g=this,h=g,j=g.axis,k=g.pos,l=g.isFirst,m=j.max,n=j.min,o=j.horiz,p=j.labelsGridPath,q=j.groupSize(0),s=j.tickWidth,t=y(g,k),u=o?t.y:t.x,v=j.chart.renderer.fontMetrics(j.options.labels.style?j.options.labels.style.fontSize:0).b,w=1,z=o&&t.x===j.pos+j.len||!o&&t.y===j.pos?-1:0;for(l&&(A=o?[j.left,t.y,j.left,t.y+j.groupSize(!0)]:j.isXAxis?[t.x,j.top,t.x+j.groupSize(!0),j.top]:[t.x,j.top+j.len,t.x+j.groupSize(!0),j.top+j.len],x(p,A,s)),o&&j.leftb[0]?1:a[0]b[0]?1:a[0]b[0]?1:a[0]b[0]?1:a[0]=0;j--)v+=j>1?Math.round(100*p[j])/100+"x^"+j+" + ":1==j?Math.round(100*p[j])/100+"x + ":Math.round(100*p[j])/100;return{equation:p,points:f,string:v}}function g(a,b){function f(a){var c,b={},d=a.length,e=[];for(c=0;cb&&(b=Math.min(2/d.length,1),console.warn("updated bandwith to "+b));var e=a.map(function(a){return a[1]}),h=[],i=0,j=Math.floor(b*c.length)-1;for(var k in c){var l=c[k];k>0&&jc[j]-c[k]?i:j;for(var n=Math.abs(1/(c[m]-l)),o=0,p=0,q=0,r=0,s=0,t=i;t<=j;){var w,u=c[t],v=e[t];w=tMath.abs(a[c][f])&&(f=d);for(e=c;e=c;e--)a[e][d]-=a[e][c]*a[c][d]/a[c][c]}for(d=h-1;d>=0;d--){for(g=0,e=d+1;eb[0]?1:a[0]=0){d.dataSeries[b]=a;for(var c=0;c=parseFloat(this.playRange.max)&&(this.options.loop?this.reset():this.pause()))},c.prototype.updateChart=function(a){var b,c,d,f,e=this.round(a);if(this.currentAxisValue!==e){this.currentAxisValue=e,this.chart.options.motion.startIndex=e;for(b in this.dataSeries)if(this.dataSeries.hasOwnProperty(b))for(c=this.dataSeries[b],f=0;f=0;k--)h=c[k]-c[k-1],h>0&&(i===e||h=0;--e)null===f[e].y&&f.splice(e,1);g=f.length,b(f,function(a,b){b>0&&f[b].segmentColor!==f[b-1].segmentColor&&(d.push({points:f.slice(c,b+1),color:f[b-1].segmentColor}),c=b)}),c!==g-1&&d.push({points:f.slice(c,g),color:f[g-1].segmentColor}),f.length&&0===d.length&&(d=[f])}else{var h=null;b(f,function(a,e){var i=e>0&&(null===a.y||null===f[e-1].y||a.segmentColor!==f[e-1].segmentColor&&f[e].segmentColor!==h),j=!(!f[e-1]||!f[e-1].segmentColor||null===f[e-1].y);if(!h&&a.segmetColor&&(h=a.segmentColor),i){var k=f.slice(c,e+1);k.length>0&&(b(k,function(a,b){null===a.y&&k.splice(b,1)}),d.push({points:k,color:j?f[e-1].segmentColor:h}),c=e)}else if(e===g-1){var l=e+1;null===a.y&&l--,k=f.slice(c,l),k.length>0&&(b(k,function(a,b){null===a.y&&k.splice(b,1)}),d.push({points:k,color:j?f[e-1].segmentColor:h}),c=e)}a&&(h=a.segmentColor)})}a.segments=d},a.seriesTypes.coloredline.prototype.getGraphPath=function(){var d,a=this,c=[],e=[];return b(a.segments,function(b){d=a.getSegmentPath(b.points),b.points.length>1?c.push([d,b.color]):e.push(b.points)}),a.singlePoints=e,a.graphPath=c,c},a.seriesTypes.coloredline.prototype.drawGraph=function(){function k(b,d,h){var j,i={stroke:d[1],"stroke-width":e,fill:"none",zIndex:1};return f?i.dashstyle=f:g&&(i["stroke-linecap"]=i["stroke-linejoin"]="round"),b[1]&&(i.stroke=b[1]),j=a.chart.renderer.path(b[0]).attr(i).add(a.group),j.shadow&&j.shadow(!h&&c.shadow),j}var a=this,c=a.options,d=[["graph",c.lineColor||a.color]],e=c.lineWidth,f=c.dashStyle,g="square"!==c.linecap,h=a.getGraphPath(),i=h.length,j=0;b(d,function(c,d){var g,e=c[0],f=a[e];f?b(h,function(b,f){a[e][f]?a[e][f].attr({d:b[0],stroke:b[1]}):a[e][f]=k(b,c,d)}):h.length&&(f=[],b(h,function(a,b){f[b]=k(a,c,d)}),a[e]=f,a[e].destroy=function(){for(g in a[e]){var b=a[e][g];b&&b.destroy&&b.destroy()}}),j=a.graph&&a.graph.length||-1;for(var l=j;l>=i;l--)a[e][l]&&(a[e][l].destroy(),a[e].splice(l,1))})},a.wrap(c.coloredline.prototype,"translate",function(a){a.apply(this,[].slice.call(arguments,1)),this.getSegments&&this.getSegments()}),c.coloredarea=a.extendClass(c.coloredline),a.seriesTypes.coloredarea.prototype.init=function(b,c){c.threshold=c.threshold||null,a.Series.prototype.init.call(this,b,c)},a.seriesTypes.coloredarea.prototype.closeSegment=function(a,b,c){a.push(n,b[b.length-1].plotX,c,n,b[0].plotX,c)},a.seriesTypes.coloredarea.prototype.drawGraph=function(c){a.seriesTypes.coloredline.prototype.drawGraph.call(this,c);var d=this,e=this.options,f=[["graph",e.lineColor||d.color]];b(f,function(a){var c=a[0],e=d[c];e&&b(d.graphPath,function(a,b){d[c][b]&&d[c][b].attr({fill:a[1]})})})},a.seriesTypes.coloredarea.prototype.getSegmentPath=function(b){var f,j,c=a.Series.prototype.getSegmentPath.call(this,b),e=[].concat(c),g=this.options,h=c.length,i=this.yAxis.getThreshold(g.threshold);if(3===h&&e.push(n,c[1],c[2]),g.stacking&&!this.closedStacks)for(f=b.length-1;f>=0;f--)j=d(b[f].yBottom,i),f1?c.push([d,b.color]):e.push(b.points)}),a.singlePoints=e,a.graphPath=c,c},a.seriesTypes.coloredarea.prototype.drawLegendSymbol=a.LegendSymbolMixin.drawRectangle}); \ No newline at end of file diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/pattern-fill-v2.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/pattern-fill-v2.js new file mode 100755 index 0000000..fb61f3b --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/pattern-fill-v2.js @@ -0,0 +1 @@ +!function(a){"object"==typeof module&&module.exports?module.exports=a:a(Highcharts)}(function(a){"use strict";function e(b){var c=a.getOptions().colors;d(["M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11","M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9","M 3 0 L 3 10 M 8 0 L 8 10","M 0 3 L 10 3 M 0 8 L 10 8","M 0 3 L 5 3 L 5 0 M 5 10 L 5 7 L 10 7","M 3 3 L 8 3 L 8 8 L 3 8 Z","M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0","M 10 3 L 5 3 L 5 0 M 5 10 L 5 7 L 0 7","M 2 5 L 5 2 L 8 5 L 5 8 Z","M 0 0 L 5 10 L 10 0"],function(a,d){b.addPattern("highcharts-default-pattern-"+d,{path:a,color:c[d]})})}var b=0,c=a.wrap,d=a.each;a.SVGRenderer.prototype.addPattern=function(a,c){function j(a){i.rect(0,0,g,h).attr({fill:a}).add(e)}var e,f,g=c.width||10,h=c.height||10,i=this;return a||(a="highcharts-pattern-"+b,b+=1),e=this.createElement("pattern").attr({id:a,patternUnits:"userSpaceOnUse",width:c.width||10,height:c.height||10}).add(this.defs),e.id=e.element.id,c.path?(f=c.path,f.fill&&j(f.fill),this.createElement("path").attr({d:f.d||f,stroke:f.stroke||c.color||"#343434","stroke-width":f.strokeWidth||2}).add(e),e.color=c.color):c.image?this.image(c.image,0,0,c.width,c.height).add(e):c.color&&j(c.color),void 0!==c.opacity&&d(e.element.children,function(a){a.setAttribute("opacity",c.opacity)}),e},a.VMLElement&&(a.VMLRenderer.prototype.addPattern=function(a,c){var d;a||(a="highcharts-pattern-"+b,b+=1),d=this.patterns||{},d[a]=c,this.patterns=d},a.wrap(a.VMLRenderer.prototype.Element.prototype,"fillSetter",function(a,b,c,d){if("string"==typeof b&&"url(#"===b.substring(0,5)){var g,e=b.substring(5,b.length-1),f=this.renderer.patterns[e];f.image?(d.getElementsByTagName("fill").length&&d.removeChild(d.getElementsByTagName("fill")[0]),g=this.renderer.prepVML(["<",c,' type="tile" src="',f.image,'" />']),d.appendChild(document.createElement(g)),1===d.parentNode.nodeType&&(d.outerHTML=d.outerHTML)):f.color?a.call(this,f.color,c,d):a.call(this,"#A0A0A0",c,d)}else a.call(this,b,c,d)})),c(a.Chart.prototype,"getContainer",function(a){a.apply(this);var b=this,c=b.renderer,f=b.options,g=f.defs&&f.defs.patterns;e(c),g&&d(g,function(a){c.addPattern(a.id,a)})})}); \ No newline at end of file diff --git a/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/tooltip-delay.js b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/tooltip-delay.js new file mode 100755 index 0000000..ee6bbe5 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/highcharts-5.0.14/plugins/tooltip-delay.js @@ -0,0 +1 @@ +!function(a){var b={};a.wrap(a.Tooltip.prototype,"refresh",function(a){if(this.shared)a.apply(this,Array.prototype.slice.call(arguments,1));else{var c=c=arguments[1].series.name,d=this.chart.options.tooltip.delayForDisplay?this.chart.options.tooltip.delayForDisplay:1e3;b[c]&&(clearTimeout(b[c]),delete b[c]),b[c]=window.setTimeout(function(){var b=this.refreshArguments[0];(b===this.chart.hoverPoint||$.inArray(this.chart.hoverPoint,b)>-1)&&a.apply(this.tooltip,this.refreshArguments)}.bind({refreshArguments:Array.prototype.slice.call(arguments,1),chart:this.chart,tooltip:this}),d)}})}(Highcharts); \ No newline at end of file diff --git a/week06-19oct2020/Tutorial/libs/htmlwdgtgrid-1/htmlwdgtgrid.css b/week06-19oct2020/Tutorial/libs/htmlwdgtgrid-1/htmlwdgtgrid.css new file mode 100755 index 0000000..b667a46 --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/htmlwdgtgrid-1/htmlwdgtgrid.css @@ -0,0 +1,279 @@ +/* + Simple Grid + Project Page - http://thisisdallas.github.com/Simple-Grid/ + Author - Dallas Bass + Site - http://dallasbass.com +*/ + +*, *:after, *:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body { + margin: 0; +} + +[class*='col-'] { + float: left; + min-height: 1px; + padding-right: 0px; /* column-space */ +} + +.grid { + width: 100%; + /*max-width: 1140px;*/ + /*min-width: 748px; /* when using padded grid on ipad in portrait mode, width should be viewport-width - padding = (768 - 20) = 748. actually, it should be even smaller to allow for padding of grid containing element */ + margin: 0 auto; + overflow: hidden; +} + +.grid:after { + content: ""; + display: table; + clear: both; +} + +.grid-pad { + padding-top: 0px; + padding-left: 0px; /* grid-space to left */ + padding-right: 0; /* grid-space to right: (grid-space-left - column-space) e.g. 20px-20px=0 */ +} + +.push-right { + float: right; +} + +/* Content Columns */ + +.col-1-1 { + width: 100%; +} +.col-2-3, .col-8-12 { + width: 66.66%; +} + +.col-1-2, .col-6-12 { + width: 50%; +} + +.col-1-3, .col-4-12 { + width: 33.33%; +} + +.col-1-4, .col-3-12 { + width: 25%; +} + +.col-1-5 { + width: 20%; +} + +.col-1-6, .col-2-12 { + width: 16.667%; +} + +.col-1-7 { + width: 14.28%; +} + +.col-1-8 { + width: 12.5%; +} + +.col-1-9 { + width: 11.1%; +} + +.col-1-10 { + width: 10%; +} + +.col-1-11 { + width: 9.09%; +} + +.col-1-12 { + width: 8.33% +} + +/* Layout Columns */ + +.col-11-12 { + width: 91.66% +} + +.col-10-12 { + width: 83.333%; +} + +.col-9-12 { + width: 75%; +} + +.col-5-12 { + width: 41.66%; +} + +.col-7-12 { + width: 58.33% +} + +/* Pushing blocks */ + +.push-2-3, .push-8-12 { + margin-left: 66.66%; +} + +.push-1-2, .push-6-12 { + margin-left: 50%; +} + +.push-1-3, .push-4-12 { + margin-left: 33.33%; +} + +.push-1-4, .push-3-12 { + margin-left: 25%; +} + +.push-1-5 { + margin-left: 20%; +} + +.push-1-6, .push-2-12 { + margin-left: 16.667%; +} + +.push-1-7 { + margin-left: 14.28%; +} + +.push-1-8 { + margin-left: 12.5%; +} + +.push-1-9 { + margin-left: 11.1%; +} + +.push-1-10 { + margin-left: 10%; +} + +.push-1-11 { + margin-left: 9.09%; +} + +.push-1-12 { + margin-left: 8.33% +} + +@media handheld, only screen and (max-width: 767px) { + .grid { + width: 100%; + min-width: 0; + margin-left: 0; + margin-right: 0; + padding-left: 20px; /* grid-space to left */ + padding-right: 10px; /* grid-space to right: (grid-space-left - column-space) e.g. 20px-10px=10px */ + } + + [class*='col-'] { + width: auto; + float: none; + margin: 10px 0; + padding-left: 0; + padding-right: 10px; /* column-space */ + } + + /* Mobile Layout */ + + [class*='mobile-col-'] { + float: left; + margin: 0 0 10px; + padding-left: 0; + padding-right: 10px; /* column-space */ + padding-bottom: 0; + } + + .mobile-col-1-1 { + width: 100%; + } + .mobile-col-2-3, .mobile-col-8-12 { + width: 66.66%; + } + + .mobile-col-1-2, .mobile-col-6-12 { + width: 50%; + } + + .mobile-col-1-3, .mobile-col-4-12 { + width: 33.33%; + } + + .mobile-col-1-4, .mobile-col-3-12 { + width: 25%; + } + + .mobile-col-1-5 { + width: 20%; + } + + .mobile-col-1-6, .mobile-col-2-12 { + width: 16.667%; + } + + .mobile-col-1-7 { + width: 14.28%; + } + + .mobile-col-1-8 { + width: 12.5%; + } + + .mobile-col-1-9 { + width: 11.1%; + } + + .mobile-col-1-10 { + width: 10%; + } + + .mobile-col-1-11 { + width: 9.09%; + } + + .mobile-col-1-12 { + width: 8.33% + } + + /* Layout Columns */ + + .mobile-col-11-12 { + width: 91.66% + } + + .mobile-col-10-12 { + width: 83.333%; + } + + .mobile-col-9-12 { + width: 75%; + } + + .mobile-col-5-12 { + width: 41.66%; + } + + .mobile-col-7-12 { + width: 58.33% + } + + .hide-on-mobile { + display: none !important; + width: 0; + height: 0; + } +} diff --git a/week06-19oct2020/Tutorial/libs/htmlwidgets-1.0/htmlwidgets.js b/week06-19oct2020/Tutorial/libs/htmlwidgets-1.0/htmlwidgets.js new file mode 100755 index 0000000..ecda3ef --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/htmlwidgets-1.0/htmlwidgets.js @@ -0,0 +1,836 @@ +(function() { + // If window.HTMLWidgets is already defined, then use it; otherwise create a + // new object. This allows preceding code to set options that affect the + // initialization process (though none currently exist). + window.HTMLWidgets = window.HTMLWidgets || {}; + + // See if we're running in a viewer pane. If not, we're in a web browser. + var viewerMode = window.HTMLWidgets.viewerMode = + /\bviewer_pane=1\b/.test(window.location); + + // See if we're running in Shiny mode. If not, it's a static document. + // Note that static widgets can appear in both Shiny and static modes, but + // obviously, Shiny widgets can only appear in Shiny apps/documents. + var shinyMode = window.HTMLWidgets.shinyMode = + typeof(window.Shiny) !== "undefined" && !!window.Shiny.outputBindings; + + // We can't count on jQuery being available, so we implement our own + // version if necessary. + function querySelectorAll(scope, selector) { + if (typeof(jQuery) !== "undefined" && scope instanceof jQuery) { + return scope.find(selector); + } + if (scope.querySelectorAll) { + return scope.querySelectorAll(selector); + } + } + + function asArray(value) { + if (value === null) + return []; + if ($.isArray(value)) + return value; + return [value]; + } + + // Implement jQuery's extend + function extend(target /*, ... */) { + if (arguments.length == 1) { + return target; + } + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var prop in source) { + if (source.hasOwnProperty(prop)) { + target[prop] = source[prop]; + } + } + } + return target; + } + + // IE8 doesn't support Array.forEach. + function forEach(values, callback, thisArg) { + if (values.forEach) { + values.forEach(callback, thisArg); + } else { + for (var i = 0; i < values.length; i++) { + callback.call(thisArg, values[i], i, values); + } + } + } + + // Replaces the specified method with the return value of funcSource. + // + // Note that funcSource should not BE the new method, it should be a function + // that RETURNS the new method. funcSource receives a single argument that is + // the overridden method, it can be called from the new method. The overridden + // method can be called like a regular function, it has the target permanently + // bound to it so "this" will work correctly. + function overrideMethod(target, methodName, funcSource) { + var superFunc = target[methodName] || function() {}; + var superFuncBound = function() { + return superFunc.apply(target, arguments); + }; + target[methodName] = funcSource(superFuncBound); + } + + // Add a method to delegator that, when invoked, calls + // delegatee.methodName. If there is no such method on + // the delegatee, but there was one on delegator before + // delegateMethod was called, then the original version + // is invoked instead. + // For example: + // + // var a = { + // method1: function() { console.log('a1'); } + // method2: function() { console.log('a2'); } + // }; + // var b = { + // method1: function() { console.log('b1'); } + // }; + // delegateMethod(a, b, "method1"); + // delegateMethod(a, b, "method2"); + // a.method1(); + // a.method2(); + // + // The output would be "b1", "a2". + function delegateMethod(delegator, delegatee, methodName) { + var inherited = delegator[methodName]; + delegator[methodName] = function() { + var target = delegatee; + var method = delegatee[methodName]; + + // The method doesn't exist on the delegatee. Instead, + // call the method on the delegator, if it exists. + if (!method) { + target = delegator; + method = inherited; + } + + if (method) { + return method.apply(target, arguments); + } + }; + } + + // Implement a vague facsimilie of jQuery's data method + function elementData(el, name, value) { + if (arguments.length == 2) { + return el["htmlwidget_data_" + name]; + } else if (arguments.length == 3) { + el["htmlwidget_data_" + name] = value; + return el; + } else { + throw new Error("Wrong number of arguments for elementData: " + + arguments.length); + } + } + + // http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex + function escapeRegExp(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + } + + function hasClass(el, className) { + var re = new RegExp("\\b" + escapeRegExp(className) + "\\b"); + return re.test(el.className); + } + + // elements - array (or array-like object) of HTML elements + // className - class name to test for + // include - if true, only return elements with given className; + // if false, only return elements *without* given className + function filterByClass(elements, className, include) { + var results = []; + for (var i = 0; i < elements.length; i++) { + if (hasClass(elements[i], className) == include) + results.push(elements[i]); + } + return results; + } + + function on(obj, eventName, func) { + if (obj.addEventListener) { + obj.addEventListener(eventName, func, false); + } else if (obj.attachEvent) { + obj.attachEvent(eventName, func); + } + } + + function off(obj, eventName, func) { + if (obj.removeEventListener) + obj.removeEventListener(eventName, func, false); + else if (obj.detachEvent) { + obj.detachEvent(eventName, func); + } + } + + // Translate array of values to top/right/bottom/left, as usual with + // the "padding" CSS property + // https://developer.mozilla.org/en-US/docs/Web/CSS/padding + function unpackPadding(value) { + if (typeof(value) === "number") + value = [value]; + if (value.length === 1) { + return {top: value[0], right: value[0], bottom: value[0], left: value[0]}; + } + if (value.length === 2) { + return {top: value[0], right: value[1], bottom: value[0], left: value[1]}; + } + if (value.length === 3) { + return {top: value[0], right: value[1], bottom: value[2], left: value[1]}; + } + if (value.length === 4) { + return {top: value[0], right: value[1], bottom: value[2], left: value[3]}; + } + } + + // Convert an unpacked padding object to a CSS value + function paddingToCss(paddingObj) { + return paddingObj.top + "px " + paddingObj.right + "px " + paddingObj.bottom + "px " + paddingObj.left + "px"; + } + + // Makes a number suitable for CSS + function px(x) { + if (typeof(x) === "number") + return x + "px"; + else + return x; + } + + // Retrieves runtime widget sizing information for an element. + // The return value is either null, or an object with fill, padding, + // defaultWidth, defaultHeight fields. + function sizingPolicy(el) { + var sizingEl = document.querySelector("script[data-for='" + el.id + "'][type='application/htmlwidget-sizing']"); + if (!sizingEl) + return null; + var sp = JSON.parse(sizingEl.textContent || sizingEl.text || "{}"); + if (viewerMode) { + return sp.viewer; + } else { + return sp.browser; + } + } + + // @param tasks Array of strings (or falsy value, in which case no-op). + // Each element must be a valid JavaScript expression that yields a + // function. Or, can be an array of objects with "code" and "data" + // properties; in this case, the "code" property should be a string + // of JS that's an expr that yields a function, and "data" should be + // an object that will be added as an additional argument when that + // function is called. + // @param target The object that will be "this" for each function + // execution. + // @param args Array of arguments to be passed to the functions. (The + // same arguments will be passed to all functions.) + function evalAndRun(tasks, target, args) { + if (tasks) { + forEach(tasks, function(task) { + var theseArgs = args; + if (typeof(task) === "object") { + theseArgs = theseArgs.concat([task.data]); + task = task.code; + } + var taskFunc = eval("(" + task + ")"); + if (typeof(taskFunc) !== "function") { + throw new Error("Task must be a function! Source:\n" + task); + } + taskFunc.apply(target, theseArgs); + }); + } + } + + function initSizing(el) { + var sizing = sizingPolicy(el); + if (!sizing) + return; + + var cel = document.getElementById("htmlwidget_container"); + if (!cel) + return; + + if (typeof(sizing.padding) !== "undefined") { + document.body.style.margin = "0"; + document.body.style.padding = paddingToCss(unpackPadding(sizing.padding)); + } + + if (sizing.fill) { + document.body.style.overflow = "hidden"; + document.body.style.width = "100%"; + document.body.style.height = "100%"; + document.documentElement.style.width = "100%"; + document.documentElement.style.height = "100%"; + if (cel) { + cel.style.position = "absolute"; + var pad = unpackPadding(sizing.padding); + cel.style.top = pad.top + "px"; + cel.style.right = pad.right + "px"; + cel.style.bottom = pad.bottom + "px"; + cel.style.left = pad.left + "px"; + el.style.width = "100%"; + el.style.height = "100%"; + } + + return { + getWidth: function() { return cel.offsetWidth; }, + getHeight: function() { return cel.offsetHeight; } + }; + + } else { + el.style.width = px(sizing.width); + el.style.height = px(sizing.height); + + return { + getWidth: function() { return el.offsetWidth; }, + getHeight: function() { return el.offsetHeight; } + }; + } + } + + // Default implementations for methods + var defaults = { + find: function(scope) { + return querySelectorAll(scope, "." + this.name); + }, + renderError: function(el, err) { + var $el = $(el); + + this.clearError(el); + + // Add all these error classes, as Shiny does + var errClass = "shiny-output-error"; + if (err.type !== null) { + // use the classes of the error condition as CSS class names + errClass = errClass + " " + $.map(asArray(err.type), function(type) { + return errClass + "-" + type; + }).join(" "); + } + errClass = errClass + " htmlwidgets-error"; + + // Is el inline or block? If inline or inline-block, just display:none it + // and add an inline error. + var display = $el.css("display"); + $el.data("restore-display-mode", display); + + if (display === "inline" || display === "inline-block") { + $el.hide(); + if (err.message !== "") { + var errorSpan = $("").addClass(errClass); + errorSpan.text(err.message); + $el.after(errorSpan); + } + } else if (display === "block") { + // If block, add an error just after the el, set visibility:none on the + // el, and position the error to be on top of the el. + // Mark it with a unique ID and CSS class so we can remove it later. + $el.css("visibility", "hidden"); + if (err.message !== "") { + var errorDiv = $("
").addClass(errClass).css("position", "absolute") + .css("top", el.offsetTop) + .css("left", el.offsetLeft) + // setting width can push out the page size, forcing otherwise + // unnecessary scrollbars to appear and making it impossible for + // the element to shrink; so use max-width instead + .css("maxWidth", el.offsetWidth) + .css("height", el.offsetHeight); + errorDiv.text(err.message); + $el.after(errorDiv); + + // Really dumb way to keep the size/position of the error in sync with + // the parent element as the window is resized or whatever. + var intId = setInterval(function() { + if (!errorDiv[0].parentElement) { + clearInterval(intId); + return; + } + errorDiv + .css("top", el.offsetTop) + .css("left", el.offsetLeft) + .css("maxWidth", el.offsetWidth) + .css("height", el.offsetHeight); + }, 500); + } + } + }, + clearError: function(el) { + var $el = $(el); + var display = $el.data("restore-display-mode"); + $el.data("restore-display-mode", null); + + if (display === "inline" || display === "inline-block") { + if (display) + $el.css("display", display); + $(el.nextSibling).filter(".htmlwidgets-error").remove(); + } else if (display === "block"){ + $el.css("visibility", "inherit"); + $(el.nextSibling).filter(".htmlwidgets-error").remove(); + } + }, + sizing: {} + }; + + // Called by widget bindings to register a new type of widget. The definition + // object can contain the following properties: + // - name (required) - A string indicating the binding name, which will be + // used by default as the CSS classname to look for. + // - initialize (optional) - A function(el) that will be called once per + // widget element; if a value is returned, it will be passed as the third + // value to renderValue. + // - renderValue (required) - A function(el, data, initValue) that will be + // called with data. Static contexts will cause this to be called once per + // element; Shiny apps will cause this to be called multiple times per + // element, as the data changes. + window.HTMLWidgets.widget = function(definition) { + if (!definition.name) { + throw new Error("Widget must have a name"); + } + if (!definition.type) { + throw new Error("Widget must have a type"); + } + // Currently we only support output widgets + if (definition.type !== "output") { + throw new Error("Unrecognized widget type '" + definition.type + "'"); + } + // TODO: Verify that .name is a valid CSS classname + + // Support new-style instance-bound definitions. Old-style class-bound + // definitions have one widget "object" per widget per type/class of + // widget; the renderValue and resize methods on such widget objects + // take el and instance arguments, because the widget object can't + // store them. New-style instance-bound definitions have one widget + // object per widget instance; the definition that's passed in doesn't + // provide renderValue or resize methods at all, just the single method + // factory(el, width, height) + // which returns an object that has renderValue(x) and resize(w, h). + // This enables a far more natural programming style for the widget + // author, who can store per-instance state using either OO-style + // instance fields or functional-style closure variables (I guess this + // is in contrast to what can only be called C-style pseudo-OO which is + // what we required before). + if (definition.factory) { + definition = createLegacyDefinitionAdapter(definition); + } + + if (!definition.renderValue) { + throw new Error("Widget must have a renderValue function"); + } + + // For static rendering (non-Shiny), use a simple widget registration + // scheme. We also use this scheme for Shiny apps/documents that also + // contain static widgets. + window.HTMLWidgets.widgets = window.HTMLWidgets.widgets || []; + // Merge defaults into the definition; don't mutate the original definition. + var staticBinding = extend({}, defaults, definition); + overrideMethod(staticBinding, "find", function(superfunc) { + return function(scope) { + var results = superfunc(scope); + // Filter out Shiny outputs, we only want the static kind + return filterByClass(results, "html-widget-output", false); + }; + }); + window.HTMLWidgets.widgets.push(staticBinding); + + if (shinyMode) { + // Shiny is running. Register the definition with an output binding. + // The definition itself will not be the output binding, instead + // we will make an output binding object that delegates to the + // definition. This is because we foolishly used the same method + // name (renderValue) for htmlwidgets definition and Shiny bindings + // but they actually have quite different semantics (the Shiny + // bindings receive data that includes lots of metadata that it + // strips off before calling htmlwidgets renderValue). We can't + // just ignore the difference because in some widgets it's helpful + // to call this.renderValue() from inside of resize(), and if + // we're not delegating, then that call will go to the Shiny + // version instead of the htmlwidgets version. + + // Merge defaults with definition, without mutating either. + var bindingDef = extend({}, defaults, definition); + + // This object will be our actual Shiny binding. + var shinyBinding = new Shiny.OutputBinding(); + + // With a few exceptions, we'll want to simply use the bindingDef's + // version of methods if they are available, otherwise fall back to + // Shiny's defaults. NOTE: If Shiny's output bindings gain additional + // methods in the future, and we want them to be overrideable by + // HTMLWidget binding definitions, then we'll need to add them to this + // list. + delegateMethod(shinyBinding, bindingDef, "getId"); + delegateMethod(shinyBinding, bindingDef, "onValueChange"); + delegateMethod(shinyBinding, bindingDef, "onValueError"); + delegateMethod(shinyBinding, bindingDef, "renderError"); + delegateMethod(shinyBinding, bindingDef, "clearError"); + delegateMethod(shinyBinding, bindingDef, "showProgress"); + + // The find, renderValue, and resize are handled differently, because we + // want to actually decorate the behavior of the bindingDef methods. + + shinyBinding.find = function(scope) { + var results = bindingDef.find(scope); + + // Only return elements that are Shiny outputs, not static ones + var dynamicResults = results.filter(".html-widget-output"); + + // It's possible that whatever caused Shiny to think there might be + // new dynamic outputs, also caused there to be new static outputs. + // Since there might be lots of different htmlwidgets bindings, we + // schedule execution for later--no need to staticRender multiple + // times. + if (results.length !== dynamicResults.length) + scheduleStaticRender(); + + return dynamicResults; + }; + + // Wrap renderValue to handle initialization, which unfortunately isn't + // supported natively by Shiny at the time of this writing. + + shinyBinding.renderValue = function(el, data) { + Shiny.renderDependencies(data.deps); + // Resolve strings marked as javascript literals to objects + if (!(data.evals instanceof Array)) data.evals = [data.evals]; + for (var i = 0; data.evals && i < data.evals.length; i++) { + window.HTMLWidgets.evaluateStringMember(data.x, data.evals[i]); + } + if (!bindingDef.renderOnNullValue) { + if (data.x === null) { + el.style.visibility = "hidden"; + return; + } else { + el.style.visibility = "inherit"; + } + } + if (!elementData(el, "initialized")) { + initSizing(el); + + elementData(el, "initialized", true); + if (bindingDef.initialize) { + var result = bindingDef.initialize(el, el.offsetWidth, + el.offsetHeight); + elementData(el, "init_result", result); + } + } + bindingDef.renderValue(el, data.x, elementData(el, "init_result")); + evalAndRun(data.jsHooks.render, elementData(el, "init_result"), [el, data.x]); + }; + + // Only override resize if bindingDef implements it + if (bindingDef.resize) { + shinyBinding.resize = function(el, width, height) { + // Shiny can call resize before initialize/renderValue have been + // called, which doesn't make sense for widgets. + if (elementData(el, "initialized")) { + bindingDef.resize(el, width, height, elementData(el, "init_result")); + } + }; + } + + Shiny.outputBindings.register(shinyBinding, bindingDef.name); + } + }; + + var scheduleStaticRenderTimerId = null; + function scheduleStaticRender() { + if (!scheduleStaticRenderTimerId) { + scheduleStaticRenderTimerId = setTimeout(function() { + scheduleStaticRenderTimerId = null; + window.HTMLWidgets.staticRender(); + }, 1); + } + } + + // Render static widgets after the document finishes loading + // Statically render all elements that are of this widget's class + window.HTMLWidgets.staticRender = function() { + var bindings = window.HTMLWidgets.widgets || []; + forEach(bindings, function(binding) { + var matches = binding.find(document.documentElement); + forEach(matches, function(el) { + var sizeObj = initSizing(el, binding); + + if (hasClass(el, "html-widget-static-bound")) + return; + el.className = el.className + " html-widget-static-bound"; + + var initResult; + if (binding.initialize) { + initResult = binding.initialize(el, + sizeObj ? sizeObj.getWidth() : el.offsetWidth, + sizeObj ? sizeObj.getHeight() : el.offsetHeight + ); + elementData(el, "init_result", initResult); + } + + if (binding.resize) { + var lastSize = {}; + var resizeHandler = function(e) { + var size = { + w: sizeObj ? sizeObj.getWidth() : el.offsetWidth, + h: sizeObj ? sizeObj.getHeight() : el.offsetHeight + }; + if (size.w === 0 && size.h === 0) + return; + if (size.w === lastSize.w && size.h === lastSize.h) + return; + lastSize = size; + binding.resize(el, size.w, size.h, initResult); + }; + + on(window, "resize", resizeHandler); + + // This is needed for cases where we're running in a Shiny + // app, but the widget itself is not a Shiny output, but + // rather a simple static widget. One example of this is + // an rmarkdown document that has runtime:shiny and widget + // that isn't in a render function. Shiny only knows to + // call resize handlers for Shiny outputs, not for static + // widgets, so we do it ourselves. + if (window.jQuery) { + window.jQuery(document).on( + "shown.htmlwidgets shown.bs.tab.htmlwidgets shown.bs.collapse.htmlwidgets", + resizeHandler + ); + window.jQuery(document).on( + "hidden.htmlwidgets hidden.bs.tab.htmlwidgets hidden.bs.collapse.htmlwidgets", + resizeHandler + ); + } + + // This is needed for the specific case of ioslides, which + // flips slides between display:none and display:block. + // Ideally we would not have to have ioslide-specific code + // here, but rather have ioslides raise a generic event, + // but the rmarkdown package just went to CRAN so the + // window to getting that fixed may be long. + if (window.addEventListener) { + // It's OK to limit this to window.addEventListener + // browsers because ioslides itself only supports + // such browsers. + on(document, "slideenter", resizeHandler); + on(document, "slideleave", resizeHandler); + } + } + + var scriptData = document.querySelector("script[data-for='" + el.id + "'][type='application/json']"); + if (scriptData) { + var data = JSON.parse(scriptData.textContent || scriptData.text); + // Resolve strings marked as javascript literals to objects + if (!(data.evals instanceof Array)) data.evals = [data.evals]; + for (var k = 0; data.evals && k < data.evals.length; k++) { + window.HTMLWidgets.evaluateStringMember(data.x, data.evals[k]); + } + binding.renderValue(el, data.x, initResult); + evalAndRun(data.jsHooks.render, initResult, [el, data.x]); + } + }); + }); + + invokePostRenderHandlers(); + } + + // Wait until after the document has loaded to render the widgets. + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", function() { + document.removeEventListener("DOMContentLoaded", arguments.callee, false); + window.HTMLWidgets.staticRender(); + }, false); + } else if (document.attachEvent) { + document.attachEvent("onreadystatechange", function() { + if (document.readyState === "complete") { + document.detachEvent("onreadystatechange", arguments.callee); + window.HTMLWidgets.staticRender(); + } + }); + } + + + window.HTMLWidgets.getAttachmentUrl = function(depname, key) { + // If no key, default to the first item + if (typeof(key) === "undefined") + key = 1; + + var link = document.getElementById(depname + "-" + key + "-attachment"); + if (!link) { + throw new Error("Attachment " + depname + "/" + key + " not found in document"); + } + return link.getAttribute("href"); + }; + + window.HTMLWidgets.dataframeToD3 = function(df) { + var names = []; + var length; + for (var name in df) { + if (df.hasOwnProperty(name)) + names.push(name); + if (typeof(df[name]) !== "object" || typeof(df[name].length) === "undefined") { + throw new Error("All fields must be arrays"); + } else if (typeof(length) !== "undefined" && length !== df[name].length) { + throw new Error("All fields must be arrays of the same length"); + } + length = df[name].length; + } + var results = []; + var item; + for (var row = 0; row < length; row++) { + item = {}; + for (var col = 0; col < names.length; col++) { + item[names[col]] = df[names[col]][row]; + } + results.push(item); + } + return results; + }; + + window.HTMLWidgets.transposeArray2D = function(array) { + if (array.length === 0) return array; + var newArray = array[0].map(function(col, i) { + return array.map(function(row) { + return row[i] + }) + }); + return newArray; + }; + // Split value at splitChar, but allow splitChar to be escaped + // using escapeChar. Any other characters escaped by escapeChar + // will be included as usual (including escapeChar itself). + function splitWithEscape(value, splitChar, escapeChar) { + var results = []; + var escapeMode = false; + var currentResult = ""; + for (var pos = 0; pos < value.length; pos++) { + if (!escapeMode) { + if (value[pos] === splitChar) { + results.push(currentResult); + currentResult = ""; + } else if (value[pos] === escapeChar) { + escapeMode = true; + } else { + currentResult += value[pos]; + } + } else { + currentResult += value[pos]; + escapeMode = false; + } + } + if (currentResult !== "") { + results.push(currentResult); + } + return results; + } + // Function authored by Yihui/JJ Allaire + window.HTMLWidgets.evaluateStringMember = function(o, member) { + var parts = splitWithEscape(member, '.', '\\'); + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i]; + // part may be a character or 'numeric' member name + if (o !== null && typeof o === "object" && part in o) { + if (i == (l - 1)) { // if we are at the end of the line then evalulate + if (typeof o[part] === "string") + o[part] = eval("(" + o[part] + ")"); + } else { // otherwise continue to next embedded object + o = o[part]; + } + } + } + }; + + // Retrieve the HTMLWidget instance (i.e. the return value of an + // HTMLWidget binding's initialize() or factory() function) + // associated with an element, or null if none. + window.HTMLWidgets.getInstance = function(el) { + return elementData(el, "init_result"); + }; + + // Finds the first element in the scope that matches the selector, + // and returns the HTMLWidget instance (i.e. the return value of + // an HTMLWidget binding's initialize() or factory() function) + // associated with that element, if any. If no element matches the + // selector, or the first matching element has no HTMLWidget + // instance associated with it, then null is returned. + // + // The scope argument is optional, and defaults to window.document. + window.HTMLWidgets.find = function(scope, selector) { + if (arguments.length == 1) { + selector = scope; + scope = document; + } + + var el = scope.querySelector(selector); + if (el === null) { + return null; + } else { + return window.HTMLWidgets.getInstance(el); + } + }; + + // Finds all elements in the scope that match the selector, and + // returns the HTMLWidget instances (i.e. the return values of + // an HTMLWidget binding's initialize() or factory() function) + // associated with the elements, in an array. If elements that + // match the selector don't have an associated HTMLWidget + // instance, the returned array will contain nulls. + // + // The scope argument is optional, and defaults to window.document. + window.HTMLWidgets.findAll = function(scope, selector) { + if (arguments.length == 1) { + selector = scope; + scope = document; + } + + var nodes = scope.querySelectorAll(selector); + var results = []; + for (var i = 0; i < nodes.length; i++) { + results.push(window.HTMLWidgets.getInstance(nodes[i])); + } + return results; + }; + + var postRenderHandlers = []; + function invokePostRenderHandlers() { + while (postRenderHandlers.length) { + var handler = postRenderHandlers.shift(); + if (handler) { + handler(); + } + } + } + + // Register the given callback function to be invoked after the + // next time static widgets are rendered. + window.HTMLWidgets.addPostRenderHandler = function(callback) { + postRenderHandlers.push(callback); + }; + + // Takes a new-style instance-bound definition, and returns an + // old-style class-bound definition. This saves us from having + // to rewrite all the logic in this file to accomodate both + // types of definitions. + function createLegacyDefinitionAdapter(defn) { + var result = { + name: defn.name, + type: defn.type, + initialize: function(el, width, height) { + return defn.factory(el, width, height); + }, + renderValue: function(el, x, instance) { + return instance.renderValue(x); + }, + resize: function(el, width, height, instance) { + return instance.resize(width, height); + } + }; + + if (defn.find) + result.find = defn.find; + if (defn.renderError) + result.renderError = defn.renderError; + if (defn.clearError) + result.clearError = defn.clearError; + + return result; + } +})(); + diff --git a/week06-19oct2020/Tutorial/libs/jquery-1.11.1/jquery.min.js b/week06-19oct2020/Tutorial/libs/jquery-1.11.1/jquery.min.js new file mode 100755 index 0000000..ae4aecf --- /dev/null +++ b/week06-19oct2020/Tutorial/libs/jquery-1.11.1/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="
","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("