var saveAs = saveAs || (function (a) { "use strict"; if ("undefined" == typeof navigator || !/MSIE [1-9]\./.test(navigator.userAgent)) { var b = a.document, c = function () { return a.URL || a.webkitURL || a; }, d = b.createElementNS("http://www.w3.org/1999/xhtml", "a"), e = "download" in d, f = function (a) { var b = new MouseEvent("click"); a.dispatchEvent(b); }, g = /Version\/[\d\.]+.*Safari/.test(navigator.userAgent), h = a.webkitRequestFileSystem, i = a.requestFileSystem || h || a.mozRequestFileSystem, j = function (b) { (a.setImmediate || a.setTimeout)(function () { throw b; }, 0); }, k = "application/octet-stream", l = 0, m = 4e4, n = function (a) { var b = function () { "string" == typeof a ? c().revokeObjectURL(a) : a.remove(); }; setTimeout(b, m); }, o = function (a, b, c) { b = [].concat(b); for (var d = b.length; d--; ) { var e = a["on" + b[d]]; if ("function" == typeof e) try { e.call(a, c || a); } catch (f) { j(f); } } }, p = function (a) { return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type) ? new Blob(["", a], { type: a.type }) : a; }, q = function (b, j, m) { m || (b = p(b)); var q, r, s, t = this, u = b.type, v = !1, w = function () { o(t, "writestart progress write writeend".split(" ")); }, x = function () { if (r && g && "undefined" != typeof FileReader) { var d = new FileReader(); return ( (d.onloadend = function () { var a = d.result; (r.location.href = "data:attachment/file" + a.slice(a.search(/[,;]/))), (t.readyState = t.DONE), w(); }), d.readAsDataURL(b), void (t.readyState = t.INIT) ); } if (((v || !q) && (q = c().createObjectURL(b)), r)) r.location.href = q; else { var e = a.open(q, "_blank"); void 0 === e && g && (a.location.href = q); } (t.readyState = t.DONE), w(), n(q); }, y = function (a) { return function () { return t.readyState !== t.DONE ? a.apply(this, arguments) : void 0; }; }, z = { create: !0, exclusive: !1 }; return ( (t.readyState = t.INIT), j || (j = "download"), e ? ((q = c().createObjectURL(b)), void setTimeout(function () { (d.href = q), (d.download = j), f(d), w(), n(q), (t.readyState = t.DONE); })) : (a.chrome && u && u !== k && ((s = b.slice || b.webkitSlice), (b = s.call(b, 0, b.size, k)), (v = !0)), h && "download" !== j && (j += ".download"), (u === k || h) && (r = a), i ? ((l += b.size), void i( a.TEMPORARY, l, y(function (a) { a.root.getDirectory( "saved", z, y(function (a) { var c = function () { a.getFile( j, z, y(function (a) { a.createWriter( y(function (c) { (c.onwriteend = function (b) { (r.location.href = a.toURL()), (t.readyState = t.DONE), o(t, "writeend", b), n(a); }), (c.onerror = function () { var a = c.error; a.code !== a.ABORT_ERR && x(); }), "writestart progress write abort".split(" ").forEach(function (a) { c["on" + a] = t["on" + a]; }), c.write(b), (t.abort = function () { c.abort(), (t.readyState = t.DONE); }), (t.readyState = t.WRITING); }), x ); }), x ); }; a.getFile( j, { create: !1 }, y(function (a) { a.remove(), c(); }), y(function (a) { a.code === a.NOT_FOUND_ERR ? c() : x(); }) ); }), x ); }), x )) : void x()) ); }, r = q.prototype, s = function (a, b, c) { return new q(a, b, c); }; return "undefined" != typeof navigator && navigator.msSaveOrOpenBlob ? function (a, b, c) { return c || (a = p(a)), navigator.msSaveOrOpenBlob(a, b || "download"); } : ((r.abort = function () { var a = this; (a.readyState = a.DONE), o(a, "abort"); }), (r.readyState = r.INIT = 0), (r.WRITING = 1), (r.DONE = 2), (r.error = r.onwritestart = r.onprogress = r.onwrite = r.onabort = r.onerror = r.onwriteend = null), s); } })(("undefined" != typeof self && self) || ("undefined" != typeof window && window) || this.content); "undefined" != typeof module && module.exports ? (module.exports.saveAs = saveAs) : "undefined" != typeof define && null !== define && null !== define.amd && define([], function () { return saveAs; }); var Biomorph = function (a, b, c, d) { (this.canvasWidth = b), (this.canvasHeight = c), (this.centre = { x: Math.round(this.canvasWidth / 2), y: Math.round(this.canvasHeight / 2) }), (this.absCentre = _.cloneDeep(this.centre)), (this.origin = _.cloneDeep(this.centre)), (this.segments = []), (this.nbSegments = 0), (this.ctx = a), (this.children = []), (this.type = "biomorph"), d ? (_.extend(this, d), this.generate()) : this.randomize(); }; (Biomorph.swellTypes = ["Swell", "Same", "Shrink"]), (Biomorph.spokesGenes = ["NorthOnly", "NSouth", "Radial"]), (Biomorph.prototype.randomize = function () { for (_.extend(this, Biomorph.randomGenes()), this.generate(); this.box.height < 0.15 * this.canvasHeight; ) _.extend(this, Biomorph.randomGenes()), this.generate(); }), (Biomorph.prototype.load = function (a) { var b = allBiomorphs[a], c = b.split(":"), d = { genes: _.map(_.slice(c, 0, 9), Number), dGenes: _.slice(c, 9, 19), segNoGene: parseInt(c[19], 10), segDistGene: parseInt(c[20]), symmetrical: !0, spokesGene: c[21], trickleGene: 1, mutSizeGene: 5, mutProbGene: 10 }; _.extend(this, d); }), (Biomorph.prototype.resetCentre = function () { (this.absCentre = _.cloneDeep(this.origin)), (this.centre = _.cloneDeep(this.origin)); }), (Biomorph.randomGenes = function () { return { genes: [_.random(-20, 20), _.random(-20, 20), _.random(10, 20), _.random(-10, 10), _.random(-10, 10), _.random(10, 20), _.random(10, 20), _.random(10, 20), _.random(3, 6)], dGenes: [ _.sample(Biomorph.swellTypes), _.sample(Biomorph.swellTypes), _.sample(Biomorph.swellTypes), _.sample(Biomorph.swellTypes), _.sample(Biomorph.swellTypes), _.sample(Biomorph.swellTypes), _.sample(Biomorph.swellTypes), _.sample(Biomorph.swellTypes), "Same", _.sample(Biomorph.swellTypes), ], segNoGene: _.random(1, 6), segDistGene: _.random(-30, 30), symmetrical: !0, spokesGene: _.sample(Biomorph.spokesGenes), trickleGene: 1, mutSizeGene: 5, mutProbGene: 10, }; }), (Biomorph.mutations = { segmentation: !0, gradient: !0, asymmetry: !0, radialSym: !0, scalingFactor: !0, mutationSize: !1, mutationRate: !1, taperingTwigs: !0, fatten: !0 }), (Biomorph.prototype.generate = function (a, b) { a && b && ((this.canvasWidth = a), (this.canvasHeight = b), (this.origin.x = Math.round(a / 2)), (this.origin.y = Math.round(b / 2))), this.resetCentre(); var c = 0, d = 0; (this.runningGenes = this.genes.slice()), (this.segments = []), "Swell" === this.dGenes[9] ? (c = this.trickleGene) : "Shrink" === this.dGenes[9] && (c = -this.trickleGene); for (var e = 1; e <= this.segNoGene; e++) { if (e > 1) { var f = this.centre.x, g = this.centre.y; (this.centre.y += (this.segDistGene + d) / this.trickleGene), (d += c), this.segments.push({ startX: Math.round(f), startY: Math.round(g), endX: Math.round(this.centre.x), endY: Math.round(this.centre.y) }); for (var h = 0; h < this.runningGenes.length - 1; h++) "Swell" === this.dGenes[h] ? (this.runningGenes[h] += this.trickleGene) : "Shrink" === this.dGenes[h] && (this.runningGenes[h] -= this.trickleGene); this.runningGenes[8] < 1 && (this.runningGenes[8] = 1); } this.buildTree(e % 2 !== 0, this.centre.x, this.centre.y, this.runningGenes[8], 2); } (this.nbSegments = this.segments.length), this.setBoundingBox(), this.translate(0, this.verticalOffset()), this.scaleToBox(0.8); }), (Biomorph.prototype.setBoundingBox = function () { for ( var a, b = { left: Math.min(this.segments[0].startX, this.segments[0].endX), top: Math.min(this.segments[0].startY, this.segments[0].endY), right: Math.max(this.segments[0].startX, this.segments[0].endX), bottom: Math.max(this.segments[0].startY, this.segments[0].endY), }, c = 1; c < this.segments.length; c++ ) (a = this.segments[c]), a.startX < b.left && (b.left = a.startX), a.startY < b.top && (b.top = a.startY), a.startX > b.right && (b.right = a.startX), a.startY > b.bottom && (b.bottom = a.startY), a.endX < b.left && (b.left = a.endX), a.endY < b.top && (b.top = a.endY), a.endX > b.right && (b.right = a.endX), a.endY > b.bottom && (b.bottom = a.endY); this.absCentre.x - b.left > b.right - this.absCentre.x ? (b.right = this.absCentre.x + (this.absCentre.x - b.left)) : (b.left = this.absCentre.x - (b.right - this.absCentre.x)); var d = this.absCentre.y - b.top, e = b.bottom - this.absCentre.y; if (("NorthOnly" !== this.spokesGene && (d > e ? (b.bottom = this.absCentre.y + d) : (b.top = this.absCentre.y - e)), "Radial" === this.spokesGene)) { var f = b.right - b.left, g = b.bottom - b.top; f > g ? ((b.top = this.absCentre.y - f / 2 - 1), (b.bottom = this.absCentre.y + f / 2 + 1)) : ((b.left = this.absCentre.x - g / 2 - 1), (b.right = this.absCentre.x + g / 2 + 1)); } (b.width = b.right - b.left), (b.height = b.bottom - b.top), (this.x_size = b.width), (this.y_size = b.height), (this.halfWidth = b.width / 2), (this.halfHeight = b.height / 2), (this.box = b); }), (Biomorph.prototype.verticalOffset = function () { var a = this.absCentre.y - this.box.top, b = this.box.bottom - this.absCentre.y; return Math.round((a - b) / 2); }), (Biomorph.prototype.scaleToBox = function (a) { if (this.box.width > this.canvasWidth * a || this.box.height > this.canvasHeight * a) { var b = Math.min((this.canvasWidth * a) / this.box.width, (this.canvasHeight * a) / this.box.height); this.scale(b), this.translate(Math.round(this.origin.x * (1 - b)), Math.round(this.origin.y * (1 - b))), this.setBoundingBox(); } }), (Biomorph.prototype.scale = function (a) { (this.absCentre.x = Math.round(this.absCentre.x * a)), (this.absCentre.y = Math.round(this.absCentre.y * a)); for (var b, c = 0; c < this.segments.length; c++) (b = this.segments[c]), (b.startX = Math.round(b.startX * a)), (b.startY = Math.round(b.startY * a)), (b.endX = Math.round(b.endX * a)), (b.endY = Math.round(b.endY * a)); }), (Biomorph.prototype.translate = function (a, b) { var c; (this.absCentre.x += a), (this.absCentre.y += b); for (var d = 0; d < this.segments.length; d++) (c = this.segments[d]), (c.startX += a), (c.startY += b), (c.endX += a), (c.endY += b); }), (Biomorph.prototype.dx = function (a) { switch (a) { case 0: return -this.runningGenes[1]; case 1: return -this.runningGenes[0]; case 3: return this.runningGenes[0]; case 4: return this.runningGenes[1]; case 5: return this.runningGenes[2]; case 7: return -this.runningGenes[2]; case 2: case 6: return 0; } }), (Biomorph.prototype.dy = function (a) { switch (a) { case 0: case 4: return this.runningGenes[5]; case 1: case 3: return this.runningGenes[4]; case 2: return this.runningGenes[3]; case 5: case 7: return this.runningGenes[6]; case 6: return this.runningGenes[7]; } }), (Biomorph.prototype.buildTree = function (a, b, c, d, e) { 0 > e ? (e += 8) : e >= 8 && (e -= 8); var f = b + (d * this.dx(e)) / this.trickleGene, g = c + (d * this.dy(e)) / this.trickleGene; this.segments.push({ startX: Math.round(b), startY: Math.round(c), endX: Math.round(f), endY: Math.round(g) }), d > 1 && (a ? (this.buildTree(a, f, g, d - 1, e + 1), d < this.runningGenes[8] && this.buildTree(a, f, g, d - 1, e - 1)) : (this.buildTree(a, f, g, d - 1, e - 1), d < this.runningGenes[8] && this.buildTree(a, f, g, d - 1, e + 1))); }), (Biomorph.prototype.draw = function (a) { a ? this.drawWithLines(a) : this.drawWithImages(); }), (Biomorph.prototype.drawWithLines = function (a) { this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight); var b, c, d, e, f, g = 0.5 > a && this.symmetrical && this.nbSegments > 30 ? 2 : 1, h = 0.2 > a, i = 2 * this.absCentre.x, j = 2 * this.absCentre.y, k = this.absCentre.y - this.absCentre.x, l = this.absCentre.x - this.absCentre.y; if (h) this.ctx.beginPath(), this.ctx.arc(this.origin.x, this.origin.y, ((this.box.width + this.box.height) / 4) * 0.4, 0, 2 * Math.PI, !1), this.ctx.fill(); else { this.ctx.beginPath(); for (var m = 0; m < this.nbSegments; m += g) (b = this.segments[m]), this.ctx.moveTo(b.startX, b.startY), this.ctx.lineTo(b.endX, b.endY), this.symmetrical && (this.ctx.moveTo(i - b.startX, b.startY), this.ctx.lineTo(i - b.endX, b.endY)), ("NSouth" === this.spokesGene || "Radial" === this.spokesGene) && (this.ctx.moveTo(i - b.startX, j - b.startY), this.ctx.lineTo(i - b.endX, j - b.endY), this.symmetrical && (this.ctx.moveTo(b.startX, j - b.startY), this.ctx.lineTo(b.endX, j - b.endY)), "Radial" === this.spokesGene && ((c = b.startY - k), (d = b.startX - l), (e = b.endY - k), (f = b.endX - l), this.ctx.moveTo(i - c, d), this.ctx.lineTo(i - e, f), this.ctx.moveTo(c, j - d), this.ctx.lineTo(e, j - f), this.symmetrical && (this.ctx.moveTo(i - c, j - d), this.ctx.lineTo(i - e, j - f), this.ctx.moveTo(c, d), this.ctx.lineTo(e, f)))); this.ctx.stroke(); } }), (Biomorph.prototype.drawWithImages = function () { this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight); var a; this.ctx.beginPath(); for (var b = 0; b < this.nbSegments; b++) (a = this.segments[b]), this.ctx.moveTo(a.startX, a.startY), this.ctx.lineTo(a.endX, a.endY); this.ctx.stroke(), this.symmetrical && (this.ctx.save(), this.ctx.scale(-1, 1), this.ctx.drawImage(this.ctx.canvas, -2 * this.absCentre.x, 0), this.ctx.restore()), ("NSouth" === this.spokesGene || "Radial" === this.spokesGene) && (this.ctx.save(), this.ctx.scale(-1, -1), this.ctx.drawImage(this.ctx.canvas, -2 * this.absCentre.x, -2 * this.absCentre.y), this.ctx.restore()), "Radial" === this.spokesGene && (this.ctx.save(), this.ctx.translate(this.absCentre.x, this.absCentre.y), this.ctx.rotate((90 * Math.PI) / 180), this.ctx.drawImage(this.ctx.canvas, -this.absCentre.x, -this.absCentre.y), this.ctx.restore()); }), (Biomorph.nextSwell = function (a) { return "Shrink" === a ? "Same" : "Same" === a ? _.sample(["Shrink", "Swell"]) : "Same"; }), (Biomorph.prototype.getGenes = function () { return _.cloneDeep(_.pick(this, ["genes", "dGenes", "trickleGene", "mutProbGene", "mutSizeGene", "spokesGene", "symmetrical", "segNoGene", "segDistGene"])); }), (Biomorph.prototype.breed = function () { var a = this.getGenes(); if (Biomorph.mutations.mutationRate && _.random(0, 100) < a.mutProbGene) for (a.mutProbGene += _.sample([-1, 1]); 0 === a.mutProbGene && a.mutProbGene <= 100; ) a.mutProbGene += _.sample([-1, 1]); for (var b = 0; b < a.genes.length - 1; b++) _.random(0, 100) < a.mutProbGene && (a.genes[b] += a.mutSizeGene * _.sample([-1, 1])); if ( (_.random(0, 100) < a.mutProbGene && (a.genes[a.genes.length - 1] += _.sample([-1, 1])), a.genes[a.genes.length - 1] <= 0 && (a.genes[a.genes.length - 1] = 1), Biomorph.mutations.segmentation && _.random(0, 100) < a.mutProbGene && (a.segNoGene += _.sample([-1, 1])), a.segNoGene < 1 && (a.segNoGene = 1), Biomorph.mutations.gradient && a.segNoGene > 1) ) { for (var b = 0; b < a.dGenes.length - 2; b++) _.random(0, 100) < a.mutProbGene / 2 && (a.dGenes[b] = Biomorph.nextSwell(a.dGenes[b])); _.random(0, 100) < a.mutProbGene / 2 && (a.dGenes[a.dGenes.length - 2] = Biomorph.nextSwell(a.dGenes[a.dGenes.length - 2])); } return ( Biomorph.mutations.taperingTwigs && Biomorph.mutations.fatten && _.random(0, 100) < a.mutProbGene && (a.dGenes[a.dGenes.length - 1] = Biomorph.nextSwell(a.dGenes[a.dGenes.length - 1])), Biomorph.mutations.segmentation && a.segNoGene > 1 && _.random(0, 100) < a.mutProbGene && (a.segDistGene += _.sample([-1, 1])), Biomorph.mutations.asymmetry && _.random(0, 100) < a.mutProbGene / 2 && (a.symmetrical = !a.symmetrical), Biomorph.mutations.radialSym && _.random(0, 100) < a.mutProbGene / 2 && ("NorthOnly" === a.spokesGene ? (a.spokesGene = "NSouth") : "NSouth" === a.spokesGene ? (_.random(0, 1) ? (a.spokesGene = "Radial") : (a.spokesGene = "NorthOnly")) : (a.spokesGene = "NSouth")), Biomorph.mutations.scalingFactor && _.random(0, 100) < a.mutProbGene && ((a.trickleGene += _.sample([-1, 1])), a.trickleGene < 1 && (a.trickleGene = 1)), Biomorph.mutations.mutationSize && _.random(0, 100) < a.mutProbGene && ((a.mutSizeGene += _.sample([-1, 1])), a.mutSizeGene < 1 && (a.mutSizeGene = 1)), this.children || (this.children = []), this.children.push(new Biomorph(this.ctx, this.canvasWidth, this.canvasHeight, a)), this.children[this.children.length - 1] ); }), (function (a) { "use strict"; var b = a.HTMLCanvasElement && a.HTMLCanvasElement.prototype, c = a.Blob && (function () { try { return Boolean(new Blob()); } catch (a) { return !1; } })(), d = c && a.Uint8Array && (function () { try { return 100 === new Blob([new Uint8Array(100)]).size; } catch (a) { return !1; } })(), e = a.BlobBuilder || a.WebKitBlobBuilder || a.MozBlobBuilder || a.MSBlobBuilder, f = /^data:((.*?)(;charset=.*?)?)(;base64)?,/, g = (c || e) && a.atob && a.ArrayBuffer && a.Uint8Array && function (a) { var b, g, h, i, j, k, l, m, n; if (((b = a.match(f)), !b)) throw new Error("invalid data URI"); for ( g = b[2] ? b[1] : "text/plain" + (b[3] || ";charset=US-ASCII"), h = !!b[4], i = a.slice(b[0].length), j = h ? atob(i) : decodeURIComponent(i), k = new ArrayBuffer(j.length), l = new Uint8Array(k), m = 0; m < j.length; m += 1 ) l[m] = j.charCodeAt(m); return c ? new Blob([d ? l : k], { type: g }) : ((n = new e()), n.append(k), n.getBlob(g)); }; a.HTMLCanvasElement && !b.toBlob && (b.mozGetAsFile ? (b.toBlob = function (a, c, d) { a(d && b.toDataURL && g ? g(this.toDataURL(c, d)) : this.mozGetAsFile("blob", c)); }) : b.toDataURL && g && (b.toBlob = function (a, b, c) { a(g(this.toDataURL(b, c))); })), "function" == typeof define && define.amd ? define(function () { return g; }) : "object" == typeof module && module.exports ? (module.exports = g) : (a.dataURLtoBlob = g); })(window), !(function () { function a(a) { return a && (a.ownerDocument || a.document || a).documentElement; } function b(a) { return a && ((a.ownerDocument && a.ownerDocument.defaultView) || (a.document && a) || a.defaultView); } function c(a, b) { return b > a ? -1 : a > b ? 1 : a >= b ? 0 : NaN; } function d(a) { return null === a ? NaN : +a; } function e(a) { return !isNaN(a); } function f(a) { return { left: function (b, c, d, e) { for (arguments.length < 3 && (d = 0), arguments.length < 4 && (e = b.length); e > d; ) { var f = (d + e) >>> 1; a(b[f], c) < 0 ? (d = f + 1) : (e = f); } return d; }, right: function (b, c, d, e) { for (arguments.length < 3 && (d = 0), arguments.length < 4 && (e = b.length); e > d; ) { var f = (d + e) >>> 1; a(b[f], c) > 0 ? (e = f) : (d = f + 1); } return d; }, }; } function g(a) { return a.length; } function h(a) { for (var b = 1; (a * b) % 1; ) b *= 10; return b; } function i(a, b) { for (var c in b) Object.defineProperty(a.prototype, c, { value: b[c], enumerable: !1 }); } function j() { this._ = Object.create(null); } function k(a) { return (a += "") === ug || a[0] === vg ? vg + a : a; } function l(a) { return (a += "")[0] === vg ? a.slice(1) : a; } function m(a) { return k(a) in this._; } function n(a) { return (a = k(a)) in this._ && delete this._[a]; } function o() { var a = []; for (var b in this._) a.push(l(b)); return a; } function p() { var a = 0; for (var b in this._) ++a; return a; } function q() { for (var a in this._) return !1; return !0; } function r() { this._ = Object.create(null); } function s(a) { return a; } function t(a, b, c) { return function () { var d = c.apply(b, arguments); return d === b ? a : d; }; } function u(a, b) { if (b in a) return b; b = b.charAt(0).toUpperCase() + b.slice(1); for (var c = 0, d = wg.length; d > c; ++c) { var e = wg[c] + b; if (e in a) return e; } } function v() {} function w() {} function x(a) { function b() { for (var b, d = c, e = -1, f = d.length; ++e < f; ) (b = d[e].on) && b.apply(this, arguments); return a; } var c = [], d = new j(); return ( (b.on = function (b, e) { var f, g = d.get(b); return arguments.length < 2 ? g && g.on : (g && ((g.on = null), (c = c.slice(0, (f = c.indexOf(g))).concat(c.slice(f + 1))), d.remove(b)), e && c.push(d.set(b, { on: e })), a); }), b ); } function y() { hg.event.preventDefault(); } function z() { for (var a, b = hg.event; (a = b.sourceEvent); ) b = a; return b; } function A(a) { for (var b = new w(), c = 0, d = arguments.length; ++c < d; ) b[arguments[c]] = x(b); return ( (b.of = function (c, d) { return function (e) { try { var f = (e.sourceEvent = hg.event); (e.target = a), (hg.event = e), b[e.type].apply(c, d); } finally { hg.event = f; } }; }), b ); } function B(a) { return yg(a, Cg), a; } function C(a) { return "function" == typeof a ? a : function () { return zg(a, this); }; } function D(a) { return "function" == typeof a ? a : function () { return Ag(a, this); }; } function E(a, b) { function c() { this.removeAttribute(a); } function d() { this.removeAttributeNS(a.space, a.local); } function e() { this.setAttribute(a, b); } function f() { this.setAttributeNS(a.space, a.local, b); } function g() { var c = b.apply(this, arguments); null == c ? this.removeAttribute(a) : this.setAttribute(a, c); } function h() { var c = b.apply(this, arguments); null == c ? this.removeAttributeNS(a.space, a.local) : this.setAttributeNS(a.space, a.local, c); } return (a = hg.ns.qualify(a)), null == b ? (a.local ? d : c) : "function" == typeof b ? (a.local ? h : g) : a.local ? f : e; } function F(a) { return a.trim().replace(/\s+/g, " "); } function G(a) { return new RegExp("(?:^|\\s+)" + hg.requote(a) + "(?:\\s+|$)", "g"); } function H(a) { return (a + "").trim().split(/^|\s+/); } function I(a, b) { function c() { for (var c = -1; ++c < e; ) a[c](this, b); } function d() { for (var c = -1, d = b.apply(this, arguments); ++c < e; ) a[c](this, d); } a = H(a).map(J); var e = a.length; return "function" == typeof b ? d : c; } function J(a) { var b = G(a); return function (c, d) { if ((e = c.classList)) return d ? e.add(a) : e.remove(a); var e = c.getAttribute("class") || ""; d ? ((b.lastIndex = 0), b.test(e) || c.setAttribute("class", F(e + " " + a))) : c.setAttribute("class", F(e.replace(b, " "))); }; } function K(a, b, c) { function d() { this.style.removeProperty(a); } function e() { this.style.setProperty(a, b, c); } function f() { var d = b.apply(this, arguments); null == d ? this.style.removeProperty(a) : this.style.setProperty(a, d, c); } return null == b ? d : "function" == typeof b ? f : e; } function L(a, b) { function c() { delete this[a]; } function d() { this[a] = b; } function e() { var c = b.apply(this, arguments); null == c ? delete this[a] : (this[a] = c); } return null == b ? c : "function" == typeof b ? e : d; } function M(a) { function b() { var b = this.ownerDocument, c = this.namespaceURI; return c === Dg && b.documentElement.namespaceURI === Dg ? b.createElement(a) : b.createElementNS(c, a); } function c() { return this.ownerDocument.createElementNS(a.space, a.local); } return "function" == typeof a ? a : (a = hg.ns.qualify(a)).local ? c : b; } function N() { var a = this.parentNode; a && a.removeChild(this); } function O(a) { return { __data__: a }; } function P(a) { return function () { return Bg(this, a); }; } function Q(a) { return ( arguments.length || (a = c), function (b, c) { return b && c ? a(b.__data__, c.__data__) : !b - !c; } ); } function R(a, b) { for (var c = 0, d = a.length; d > c; c++) for (var e, f = a[c], g = 0, h = f.length; h > g; g++) (e = f[g]) && b(e, g, c); return a; } function S(a) { return yg(a, Fg), a; } function T(a) { var b, c; return function (d, e, f) { var g, h = a[f].update, i = h.length; for (f != c && ((c = f), (b = 0)), e >= b && (b = e + 1); !(g = h[b]) && ++b < i; ); return g; }; } function U(a, b, c) { function d() { var b = this[g]; b && (this.removeEventListener(a, b, b.$), delete this[g]); } function e() { var e = i(b, jg(arguments)); d.call(this), this.addEventListener(a, (this[g] = e), (e.$ = c)), (e._ = b); } function f() { var b, c = new RegExp("^__on([^.]+)" + hg.requote(a) + "$"); for (var d in this) if ((b = d.match(c))) { var e = this[d]; this.removeEventListener(b[1], e, e.$), delete this[d]; } } var g = "__on" + a, h = a.indexOf("."), i = V; h > 0 && (a = a.slice(0, h)); var j = Gg.get(a); return j && ((a = j), (i = W)), h ? (b ? e : d) : b ? v : f; } function V(a, b) { return function (c) { var d = hg.event; (hg.event = c), (b[0] = this.__data__); try { a.apply(this, b); } finally { hg.event = d; } }; } function W(a, b) { var c = V(a, b); return function (a) { var b = this, d = a.relatedTarget; (d && (d === b || 8 & d.compareDocumentPosition(b))) || c.call(b, a); }; } function X(c) { var d = ".dragsuppress-" + ++Ig, e = "click" + d, f = hg .select(b(c)) .on("touchmove" + d, y) .on("dragstart" + d, y) .on("selectstart" + d, y); if ((null == Hg && (Hg = "onselectstart" in c ? !1 : u(c.style, "userSelect")), Hg)) { var g = a(c).style, h = g[Hg]; g[Hg] = "none"; } return function (a) { if ((f.on(d, null), Hg && (g[Hg] = h), a)) { var b = function () { f.on(e, null); }; f.on( e, function () { y(), b(); }, !0 ), setTimeout(b, 0); } }; } function Y(a, c) { c.changedTouches && (c = c.changedTouches[0]); var d = a.ownerSVGElement || a; if (d.createSVGPoint) { var e = d.createSVGPoint(); if (0 > Jg) { var f = b(a); if (f.scrollX || f.scrollY) { d = hg.select("body").append("svg").style({ position: "absolute", top: 0, left: 0, margin: 0, padding: 0, border: "none" }, "important"); var g = d[0][0].getScreenCTM(); (Jg = !(g.f || g.e)), d.remove(); } } return Jg ? ((e.x = c.pageX), (e.y = c.pageY)) : ((e.x = c.clientX), (e.y = c.clientY)), (e = e.matrixTransform(a.getScreenCTM().inverse())), [e.x, e.y]; } var h = a.getBoundingClientRect(); return [c.clientX - h.left - a.clientLeft, c.clientY - h.top - a.clientTop]; } function Z() { return hg.event.changedTouches[0].identifier; } function $(a) { return a > 0 ? 1 : 0 > a ? -1 : 0; } function _(a, b, c) { return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); } function aa(a) { return a > 1 ? 0 : -1 > a ? Mg : Math.acos(a); } function ba(a) { return a > 1 ? Pg : -1 > a ? -Pg : Math.asin(a); } function ca(a) { return ((a = Math.exp(a)) - 1 / a) / 2; } function da(a) { return ((a = Math.exp(a)) + 1 / a) / 2; } function ea(a) { return ((a = Math.exp(2 * a)) - 1) / (a + 1); } function fa(a) { return (a = Math.sin(a / 2)) * a; } function ga() {} function ha(a, b, c) { return this instanceof ha ? ((this.h = +a), (this.s = +b), void (this.l = +c)) : arguments.length < 2 ? (a instanceof ha ? new ha(a.h, a.s, a.l) : va("" + a, wa, ha)) : new ha(a, b, c); } function ia(a, b, c) { function d(a) { return a > 360 ? (a -= 360) : 0 > a && (a += 360), 60 > a ? f + ((g - f) * a) / 60 : 180 > a ? g : 240 > a ? f + ((g - f) * (240 - a)) / 60 : f; } function e(a) { return Math.round(255 * d(a)); } var f, g; return ( (a = isNaN(a) ? 0 : (a %= 360) < 0 ? a + 360 : a), (b = isNaN(b) ? 0 : 0 > b ? 0 : b > 1 ? 1 : b), (c = 0 > c ? 0 : c > 1 ? 1 : c), (g = 0.5 >= c ? c * (1 + b) : c + b - c * b), (f = 2 * c - g), new ra(e(a + 120), e(a), e(a - 120)) ); } function ja(a, b, c) { return this instanceof ja ? ((this.h = +a), (this.c = +b), void (this.l = +c)) : arguments.length < 2 ? a instanceof ja ? new ja(a.h, a.c, a.l) : a instanceof la ? na(a.l, a.a, a.b) : na((a = xa((a = hg.rgb(a)).r, a.g, a.b)).l, a.a, a.b) : new ja(a, b, c); } function ka(a, b, c) { return isNaN(a) && (a = 0), isNaN(b) && (b = 0), new la(c, Math.cos((a *= Qg)) * b, Math.sin(a) * b); } function la(a, b, c) { return this instanceof la ? ((this.l = +a), (this.a = +b), void (this.b = +c)) : arguments.length < 2 ? a instanceof la ? new la(a.l, a.a, a.b) : a instanceof ja ? ka(a.h, a.c, a.l) : xa((a = ra(a)).r, a.g, a.b) : new la(a, b, c); } function ma(a, b, c) { var d = (a + 16) / 116, e = d + b / 500, f = d - c / 200; return (e = oa(e) * _g), (d = oa(d) * ah), (f = oa(f) * bh), new ra(qa(3.2404542 * e - 1.5371385 * d - 0.4985314 * f), qa(-0.969266 * e + 1.8760108 * d + 0.041556 * f), qa(0.0556434 * e - 0.2040259 * d + 1.0572252 * f)); } function na(a, b, c) { return a > 0 ? new ja(Math.atan2(c, b) * Rg, Math.sqrt(b * b + c * c), a) : new ja(NaN, NaN, a); } function oa(a) { return a > 0.206893034 ? a * a * a : (a - 4 / 29) / 7.787037; } function pa(a) { return a > 0.008856 ? Math.pow(a, 1 / 3) : 7.787037 * a + 4 / 29; } function qa(a) { return Math.round(255 * (0.00304 >= a ? 12.92 * a : 1.055 * Math.pow(a, 1 / 2.4) - 0.055)); } function ra(a, b, c) { return this instanceof ra ? ((this.r = ~~a), (this.g = ~~b), void (this.b = ~~c)) : arguments.length < 2 ? (a instanceof ra ? new ra(a.r, a.g, a.b) : va("" + a, ra, ia)) : new ra(a, b, c); } function sa(a) { return new ra(a >> 16, (a >> 8) & 255, 255 & a); } function ta(a) { return sa(a) + ""; } function ua(a) { return 16 > a ? "0" + Math.max(0, a).toString(16) : Math.min(255, a).toString(16); } function va(a, b, c) { var d, e, f, g = 0, h = 0, i = 0; if ((d = /([a-z]+)\((.*)\)/.exec((a = a.toLowerCase())))) switch (((e = d[2].split(",")), d[1])) { case "hsl": return c(parseFloat(e[0]), parseFloat(e[1]) / 100, parseFloat(e[2]) / 100); case "rgb": return b(za(e[0]), za(e[1]), za(e[2])); } return (f = eh.get(a)) ? b(f.r, f.g, f.b) : (null == a || "#" !== a.charAt(0) || isNaN((f = parseInt(a.slice(1), 16))) || (4 === a.length ? ((g = (3840 & f) >> 4), (g = (g >> 4) | g), (h = 240 & f), (h = (h >> 4) | h), (i = 15 & f), (i = (i << 4) | i)) : 7 === a.length && ((g = (16711680 & f) >> 16), (h = (65280 & f) >> 8), (i = 255 & f))), b(g, h, i)); } function wa(a, b, c) { var d, e, f = Math.min((a /= 255), (b /= 255), (c /= 255)), g = Math.max(a, b, c), h = g - f, i = (g + f) / 2; return h ? ((e = 0.5 > i ? h / (g + f) : h / (2 - g - f)), (d = a == g ? (b - c) / h + (c > b ? 6 : 0) : b == g ? (c - a) / h + 2 : (a - b) / h + 4), (d *= 60)) : ((d = NaN), (e = i > 0 && 1 > i ? 0 : d)), new ha(d, e, i); } function xa(a, b, c) { (a = ya(a)), (b = ya(b)), (c = ya(c)); var d = pa((0.4124564 * a + 0.3575761 * b + 0.1804375 * c) / _g), e = pa((0.2126729 * a + 0.7151522 * b + 0.072175 * c) / ah), f = pa((0.0193339 * a + 0.119192 * b + 0.9503041 * c) / bh); return la(116 * e - 16, 500 * (d - e), 200 * (e - f)); } function ya(a) { return (a /= 255) <= 0.04045 ? a / 12.92 : Math.pow((a + 0.055) / 1.055, 2.4); } function za(a) { var b = parseFloat(a); return "%" === a.charAt(a.length - 1) ? Math.round(2.55 * b) : b; } function Aa(a) { return "function" == typeof a ? a : function () { return a; }; } function Ba(a) { return function (b, c, d) { return 2 === arguments.length && "function" == typeof c && ((d = c), (c = null)), Ca(b, c, a, d); }; } function Ca(a, b, c, d) { function e() { var a, b = i.status; if ((!b && Ea(i)) || (b >= 200 && 300 > b) || 304 === b) { try { a = c.call(f, i); } catch (d) { return void g.error.call(f, d); } g.load.call(f, a); } else g.error.call(f, i); } var f = {}, g = hg.dispatch("beforesend", "progress", "load", "error"), h = {}, i = new XMLHttpRequest(), j = null; return ( !this.XDomainRequest || "withCredentials" in i || !/^(http(s)?:)?\/\//.test(a) || (i = new XDomainRequest()), "onload" in i ? (i.onload = i.onerror = e) : (i.onreadystatechange = function () { i.readyState > 3 && e(); }), (i.onprogress = function (a) { var b = hg.event; hg.event = a; try { g.progress.call(f, i); } finally { hg.event = b; } }), (f.header = function (a, b) { return (a = (a + "").toLowerCase()), arguments.length < 2 ? h[a] : (null == b ? delete h[a] : (h[a] = b + ""), f); }), (f.mimeType = function (a) { return arguments.length ? ((b = null == a ? null : a + ""), f) : b; }), (f.responseType = function (a) { return arguments.length ? ((j = a), f) : j; }), (f.response = function (a) { return (c = a), f; }), ["get", "post"].forEach(function (a) { f[a] = function () { return f.send.apply(f, [a].concat(jg(arguments))); }; }), (f.send = function (c, d, e) { if ((2 === arguments.length && "function" == typeof d && ((e = d), (d = null)), i.open(c, a, !0), null == b || "accept" in h || (h.accept = b + ",*/*"), i.setRequestHeader)) for (var k in h) i.setRequestHeader(k, h[k]); return ( null != b && i.overrideMimeType && i.overrideMimeType(b), null != j && (i.responseType = j), null != e && f.on("error", e).on("load", function (a) { e(null, a); }), g.beforesend.call(f, i), i.send(null == d ? null : d), f ); }), (f.abort = function () { return i.abort(), f; }), hg.rebind(f, g, "on"), null == d ? f : f.get(Da(d)) ); } function Da(a) { return 1 === a.length ? function (b, c) { a(null == b ? c : null); } : a; } function Ea(a) { var b = a.responseType; return b && "text" !== b ? a.response : a.responseText; } function Fa(a, b, c) { var d = arguments.length; 2 > d && (b = 0), 3 > d && (c = Date.now()); var e = c + b, f = { c: a, t: e, n: null }; return gh ? (gh.n = f) : (fh = f), (gh = f), hh || ((ih = clearTimeout(ih)), (hh = 1), jh(Ga)), f; } function Ga() { var a = Ha(), b = Ia() - a; b > 24 ? (isFinite(b) && (clearTimeout(ih), (ih = setTimeout(Ga, b))), (hh = 0)) : ((hh = 1), jh(Ga)); } function Ha() { for (var a = Date.now(), b = fh; b; ) a >= b.t && b.c(a - b.t) && (b.c = null), (b = b.n); return a; } function Ia() { for (var a, b = fh, c = 1 / 0; b; ) b.c ? (b.t < c && (c = b.t), (b = (a = b).n)) : (b = a ? (a.n = b.n) : (fh = b.n)); return (gh = a), c; } function Ja(a, b) { return b - (a ? Math.ceil(Math.log(a) / Math.LN10) : 1); } function Ka(a, b) { var c = Math.pow(10, 3 * tg(8 - b)); return { scale: b > 8 ? function (a) { return a / c; } : function (a) { return a * c; }, symbol: a, }; } function La(a) { var b = a.decimal, c = a.thousands, d = a.grouping, e = a.currency, f = d && c ? function (a, b) { for (var e = a.length, f = [], g = 0, h = d[0], i = 0; e > 0 && h > 0 && (i + h + 1 > b && (h = Math.max(1, b - i)), f.push(a.substring((e -= h), e + h)), !((i += h + 1) > b)); ) h = d[(g = (g + 1) % d.length)]; return f.reverse().join(c); } : s; return function (a) { var c = lh.exec(a), d = c[1] || " ", g = c[2] || ">", h = c[3] || "-", i = c[4] || "", j = c[5], k = +c[6], l = c[7], m = c[8], n = c[9], o = 1, p = "", q = "", r = !1, s = !0; switch ((m && (m = +m.substring(1)), (j || ("0" === d && "=" === g)) && ((j = d = "0"), (g = "=")), n)) { case "n": (l = !0), (n = "g"); break; case "%": (o = 100), (q = "%"), (n = "f"); break; case "p": (o = 100), (q = "%"), (n = "r"); break; case "b": case "o": case "x": case "X": "#" === i && (p = "0" + n.toLowerCase()); case "c": s = !1; case "d": (r = !0), (m = 0); break; case "s": (o = -1), (n = "r"); } "$" === i && ((p = e[0]), (q = e[1])), "r" != n || m || (n = "g"), null != m && ("g" == n ? (m = Math.max(1, Math.min(21, m))) : ("e" == n || "f" == n) && (m = Math.max(0, Math.min(20, m)))), (n = mh.get(n) || Ma); var t = j && l; return function (a) { var c = q; if (r && a % 1) return ""; var e = 0 > a || (0 === a && 0 > 1 / a) ? ((a = -a), "-") : "-" === h ? "" : h; if (0 > o) { var i = hg.formatPrefix(a, m); (a = i.scale(a)), (c = i.symbol + q); } else a *= o; a = n(a, m); var u, v, w = a.lastIndexOf("."); if (0 > w) { var x = s ? a.lastIndexOf("e") : -1; 0 > x ? ((u = a), (v = "")) : ((u = a.substring(0, x)), (v = a.substring(x))); } else (u = a.substring(0, w)), (v = b + a.substring(w + 1)); !j && l && (u = f(u, 1 / 0)); var y = p.length + u.length + v.length + (t ? 0 : e.length), z = k > y ? new Array((y = k - y + 1)).join(d) : ""; return ( t && (u = f(z + u, z.length ? k - v.length : 1 / 0)), (e += p), (a = u + v), ("<" === g ? e + a + z : ">" === g ? z + e + a : "^" === g ? z.substring(0, (y >>= 1)) + e + a + z.substring(y) : e + (t ? a : z + a)) + c ); }; }; } function Ma(a) { return a + ""; } function Na() { this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); } function Oa(a, b, c) { function d(b) { var c = a(b), d = f(c, 1); return d - b > b - c ? c : d; } function e(c) { return b((c = a(new oh(c - 1))), 1), c; } function f(a, c) { return b((a = new oh(+a)), c), a; } function g(a, d, f) { var g = e(a), h = []; if (f > 1) for (; d > g; ) c(g) % f || h.push(new Date(+g)), b(g, 1); else for (; d > g; ) h.push(new Date(+g)), b(g, 1); return h; } function h(a, b, c) { try { oh = Na; var d = new Na(); return (d._ = a), g(d, b, c); } finally { oh = Date; } } (a.floor = a), (a.round = d), (a.ceil = e), (a.offset = f), (a.range = g); var i = (a.utc = Pa(a)); return (i.floor = i), (i.round = Pa(d)), (i.ceil = Pa(e)), (i.offset = Pa(f)), (i.range = h), a; } function Pa(a) { return function (b, c) { try { oh = Na; var d = new Na(); return (d._ = b), a(d, c)._; } finally { oh = Date; } }; } function Qa(a) { function b(a) { function b(b) { for (var c, e, f, g = [], h = -1, i = 0; ++h < d; ) 37 === a.charCodeAt(h) && (g.push(a.slice(i, h)), null != (e = qh[(c = a.charAt(++h))]) && (c = a.charAt(++h)), (f = C[c]) && (c = f(b, null == e ? ("e" === c ? " " : "0") : e)), g.push(c), (i = h + 1)); return g.push(a.slice(i, h)), g.join(""); } var d = a.length; return ( (b.parse = function (b) { var d = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null }, e = c(d, a, b, 0); if (e != b.length) return null; "p" in d && (d.H = (d.H % 12) + 12 * d.p); var f = null != d.Z && oh !== Na, g = new (f ? Na : oh)(); return ( "j" in d ? g.setFullYear(d.y, 0, d.j) : "W" in d || "U" in d ? ("w" in d || (d.w = "W" in d ? 1 : 0), g.setFullYear(d.y, 0, 1), g.setFullYear(d.y, 0, "W" in d ? ((d.w + 6) % 7) + 7 * d.W - ((g.getDay() + 5) % 7) : d.w + 7 * d.U - ((g.getDay() + 6) % 7))) : g.setFullYear(d.y, d.m, d.d), g.setHours(d.H + ((d.Z / 100) | 0), d.M + (d.Z % 100), d.S, d.L), f ? g._ : g ); }), (b.toString = function () { return a; }), b ); } function c(a, b, c, d) { for (var e, f, g, h = 0, i = b.length, j = c.length; i > h; ) { if (d >= j) return -1; if (((e = b.charCodeAt(h++)), 37 === e)) { if (((g = b.charAt(h++)), (f = D[g in qh ? b.charAt(h++) : g]), !f || (d = f(a, c, d)) < 0)) return -1; } else if (e != c.charCodeAt(d++)) return -1; } return d; } function d(a, b, c) { w.lastIndex = 0; var d = w.exec(b.slice(c)); return d ? ((a.w = x.get(d[0].toLowerCase())), c + d[0].length) : -1; } function e(a, b, c) { u.lastIndex = 0; var d = u.exec(b.slice(c)); return d ? ((a.w = v.get(d[0].toLowerCase())), c + d[0].length) : -1; } function f(a, b, c) { A.lastIndex = 0; var d = A.exec(b.slice(c)); return d ? ((a.m = B.get(d[0].toLowerCase())), c + d[0].length) : -1; } function g(a, b, c) { y.lastIndex = 0; var d = y.exec(b.slice(c)); return d ? ((a.m = z.get(d[0].toLowerCase())), c + d[0].length) : -1; } function h(a, b, d) { return c(a, C.c.toString(), b, d); } function i(a, b, d) { return c(a, C.x.toString(), b, d); } function j(a, b, d) { return c(a, C.X.toString(), b, d); } function k(a, b, c) { var d = t.get(b.slice(c, (c += 2)).toLowerCase()); return null == d ? -1 : ((a.p = d), c); } var l = a.dateTime, m = a.date, n = a.time, o = a.periods, p = a.days, q = a.shortDays, r = a.months, s = a.shortMonths; (b.utc = function (a) { function c(a) { try { oh = Na; var b = new oh(); return (b._ = a), d(b); } finally { oh = Date; } } var d = b(a); return ( (c.parse = function (a) { try { oh = Na; var b = d.parse(a); return b && b._; } finally { oh = Date; } }), (c.toString = d.toString), c ); }), (b.multi = b.utc.multi = ib); var t = hg.map(), u = Sa(p), v = Ta(p), w = Sa(q), x = Ta(q), y = Sa(r), z = Ta(r), A = Sa(s), B = Ta(s); o.forEach(function (a, b) { t.set(a.toLowerCase(), b); }); var C = { a: function (a) { return q[a.getDay()]; }, A: function (a) { return p[a.getDay()]; }, b: function (a) { return s[a.getMonth()]; }, B: function (a) { return r[a.getMonth()]; }, c: b(l), d: function (a, b) { return Ra(a.getDate(), b, 2); }, e: function (a, b) { return Ra(a.getDate(), b, 2); }, H: function (a, b) { return Ra(a.getHours(), b, 2); }, I: function (a, b) { return Ra(a.getHours() % 12 || 12, b, 2); }, j: function (a, b) { return Ra(1 + nh.dayOfYear(a), b, 3); }, L: function (a, b) { return Ra(a.getMilliseconds(), b, 3); }, m: function (a, b) { return Ra(a.getMonth() + 1, b, 2); }, M: function (a, b) { return Ra(a.getMinutes(), b, 2); }, p: function (a) { return o[+(a.getHours() >= 12)]; }, S: function (a, b) { return Ra(a.getSeconds(), b, 2); }, U: function (a, b) { return Ra(nh.sundayOfYear(a), b, 2); }, w: function (a) { return a.getDay(); }, W: function (a, b) { return Ra(nh.mondayOfYear(a), b, 2); }, x: b(m), X: b(n), y: function (a, b) { return Ra(a.getFullYear() % 100, b, 2); }, Y: function (a, b) { return Ra(a.getFullYear() % 1e4, b, 4); }, Z: gb, "%": function () { return "%"; }, }, D = { a: d, A: e, b: f, B: g, c: h, d: ab, e: ab, H: cb, I: cb, j: bb, L: fb, m: _a, M: db, p: k, S: eb, U: Va, w: Ua, W: Wa, x: i, X: j, y: Ya, Y: Xa, Z: Za, "%": hb }; return b; } function Ra(a, b, c) { var d = 0 > a ? "-" : "", e = (d ? -a : a) + "", f = e.length; return d + (c > f ? new Array(c - f + 1).join(b) + e : e); } function Sa(a) { return new RegExp("^(?:" + a.map(hg.requote).join("|") + ")", "i"); } function Ta(a) { for (var b = new j(), c = -1, d = a.length; ++c < d; ) b.set(a[c].toLowerCase(), c); return b; } function Ua(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 1)); return d ? ((a.w = +d[0]), c + d[0].length) : -1; } function Va(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c)); return d ? ((a.U = +d[0]), c + d[0].length) : -1; } function Wa(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c)); return d ? ((a.W = +d[0]), c + d[0].length) : -1; } function Xa(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 4)); return d ? ((a.y = +d[0]), c + d[0].length) : -1; } function Ya(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 2)); return d ? ((a.y = $a(+d[0])), c + d[0].length) : -1; } function Za(a, b, c) { return /^[+-]\d{4}$/.test((b = b.slice(c, c + 5))) ? ((a.Z = -b), c + 5) : -1; } function $a(a) { return a + (a > 68 ? 1900 : 2e3); } function _a(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 2)); return d ? ((a.m = d[0] - 1), c + d[0].length) : -1; } function ab(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 2)); return d ? ((a.d = +d[0]), c + d[0].length) : -1; } function bb(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 3)); return d ? ((a.j = +d[0]), c + d[0].length) : -1; } function cb(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 2)); return d ? ((a.H = +d[0]), c + d[0].length) : -1; } function db(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 2)); return d ? ((a.M = +d[0]), c + d[0].length) : -1; } function eb(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 2)); return d ? ((a.S = +d[0]), c + d[0].length) : -1; } function fb(a, b, c) { rh.lastIndex = 0; var d = rh.exec(b.slice(c, c + 3)); return d ? ((a.L = +d[0]), c + d[0].length) : -1; } function gb(a) { var b = a.getTimezoneOffset(), c = b > 0 ? "-" : "+", d = (tg(b) / 60) | 0, e = tg(b) % 60; return c + Ra(d, "0", 2) + Ra(e, "0", 2); } function hb(a, b, c) { sh.lastIndex = 0; var d = sh.exec(b.slice(c, c + 1)); return d ? c + d[0].length : -1; } function ib(a) { for (var b = a.length, c = -1; ++c < b; ) a[c][0] = this(a[c][0]); return function (b) { for (var c = 0, d = a[c]; !d[1](b); ) d = a[++c]; return d[0](b); }; } function jb() {} function kb(a, b, c) { var d = (c.s = a + b), e = d - a, f = d - e; c.t = a - f + (b - e); } function lb(a, b) { a && wh.hasOwnProperty(a.type) && wh[a.type](a, b); } function mb(a, b, c) { var d, e = -1, f = a.length - c; for (b.lineStart(); ++e < f; ) (d = a[e]), b.point(d[0], d[1], d[2]); b.lineEnd(); } function nb(a, b) { var c = -1, d = a.length; for (b.polygonStart(); ++c < d; ) mb(a[c], b, 1); b.polygonEnd(); } function ob() { function a(a, b) { (a *= Qg), (b = (b * Qg) / 2 + Mg / 4); var c = a - d, g = c >= 0 ? 1 : -1, h = g * c, i = Math.cos(b), j = Math.sin(b), k = f * j, l = e * i + k * Math.cos(h), m = k * g * Math.sin(h); yh.add(Math.atan2(m, l)), (d = a), (e = i), (f = j); } var b, c, d, e, f; (zh.point = function (g, h) { (zh.point = a), (d = (b = g) * Qg), (e = Math.cos((h = ((c = h) * Qg) / 2 + Mg / 4))), (f = Math.sin(h)); }), (zh.lineEnd = function () { a(b, c); }); } function pb(a) { var b = a[0], c = a[1], d = Math.cos(c); return [d * Math.cos(b), d * Math.sin(b), Math.sin(c)]; } function qb(a, b) { return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; } function rb(a, b) { return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]]; } function sb(a, b) { (a[0] += b[0]), (a[1] += b[1]), (a[2] += b[2]); } function tb(a, b) { return [a[0] * b, a[1] * b, a[2] * b]; } function ub(a) { var b = Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]); (a[0] /= b), (a[1] /= b), (a[2] /= b); } function vb(a) { return [Math.atan2(a[1], a[0]), ba(a[2])]; } function wb(a, b) { return tg(a[0] - b[0]) < Kg && tg(a[1] - b[1]) < Kg; } function xb(a, b) { a *= Qg; var c = Math.cos((b *= Qg)); yb(c * Math.cos(a), c * Math.sin(a), Math.sin(b)); } function yb(a, b, c) { ++Ah, (Ch += (a - Ch) / Ah), (Dh += (b - Dh) / Ah), (Eh += (c - Eh) / Ah); } function zb() { function a(a, e) { a *= Qg; var f = Math.cos((e *= Qg)), g = f * Math.cos(a), h = f * Math.sin(a), i = Math.sin(e), j = Math.atan2(Math.sqrt((j = c * i - d * h) * j + (j = d * g - b * i) * j + (j = b * h - c * g) * j), b * g + c * h + d * i); (Bh += j), (Fh += j * (b + (b = g))), (Gh += j * (c + (c = h))), (Hh += j * (d + (d = i))), yb(b, c, d); } var b, c, d; Lh.point = function (e, f) { e *= Qg; var g = Math.cos((f *= Qg)); (b = g * Math.cos(e)), (c = g * Math.sin(e)), (d = Math.sin(f)), (Lh.point = a), yb(b, c, d); }; } function Ab() { Lh.point = xb; } function Bb() { function a(a, b) { a *= Qg; var c = Math.cos((b *= Qg)), g = c * Math.cos(a), h = c * Math.sin(a), i = Math.sin(b), j = e * i - f * h, k = f * g - d * i, l = d * h - e * g, m = Math.sqrt(j * j + k * k + l * l), n = d * g + e * h + f * i, o = m && -aa(n) / m, p = Math.atan2(m, n); (Ih += o * j), (Jh += o * k), (Kh += o * l), (Bh += p), (Fh += p * (d + (d = g))), (Gh += p * (e + (e = h))), (Hh += p * (f + (f = i))), yb(d, e, f); } var b, c, d, e, f; (Lh.point = function (g, h) { (b = g), (c = h), (Lh.point = a), (g *= Qg); var i = Math.cos((h *= Qg)); (d = i * Math.cos(g)), (e = i * Math.sin(g)), (f = Math.sin(h)), yb(d, e, f); }), (Lh.lineEnd = function () { a(b, c), (Lh.lineEnd = Ab), (Lh.point = xb); }); } function Cb(a, b) { function c(c, d) { return (c = a(c, d)), b(c[0], c[1]); } return ( a.invert && b.invert && (c.invert = function (c, d) { return (c = b.invert(c, d)), c && a.invert(c[0], c[1]); }), c ); } function Db() { return !0; } function Eb(a, b, c, d, e) { var f = [], g = []; if ( (a.forEach(function (a) { if (!((b = a.length - 1) <= 0)) { var b, c = a[0], d = a[b]; if (wb(c, d)) { e.lineStart(); for (var h = 0; b > h; ++h) e.point((c = a[h])[0], c[1]); return void e.lineEnd(); } var i = new Gb(c, a, null, !0), j = new Gb(c, null, i, !1); (i.o = j), f.push(i), g.push(j), (i = new Gb(d, a, null, !1)), (j = new Gb(d, null, i, !0)), (i.o = j), f.push(i), g.push(j); } }), g.sort(b), Fb(f), Fb(g), f.length) ) { for (var h = 0, i = c, j = g.length; j > h; ++h) g[h].e = i = !i; for (var k, l, m = f[0]; ; ) { for (var n = m, o = !0; n.v; ) if ((n = n.n) === m) return; (k = n.z), e.lineStart(); do { if (((n.v = n.o.v = !0), n.e)) { if (o) for (var h = 0, j = k.length; j > h; ++h) e.point((l = k[h])[0], l[1]); else d(n.x, n.n.x, 1, e); n = n.n; } else { if (o) { k = n.p.z; for (var h = k.length - 1; h >= 0; --h) e.point((l = k[h])[0], l[1]); } else d(n.x, n.p.x, -1, e); n = n.p; } (n = n.o), (k = n.z), (o = !o); } while (!n.v); e.lineEnd(); } } } function Fb(a) { if ((b = a.length)) { for (var b, c, d = 0, e = a[0]; ++d < b; ) (e.n = c = a[d]), (c.p = e), (e = c); (e.n = c = a[0]), (c.p = e); } } function Gb(a, b, c, d) { (this.x = a), (this.z = b), (this.o = c), (this.e = d), (this.v = !1), (this.n = this.p = null); } function Hb(a, b, c, d) { return function (e, f) { function g(b, c) { var d = e(b, c); a((b = d[0]), (c = d[1])) && f.point(b, c); } function h(a, b) { var c = e(a, b); q.point(c[0], c[1]); } function i() { (s.point = h), q.lineStart(); } function j() { (s.point = g), q.lineEnd(); } function k(a, b) { p.push([a, b]); var c = e(a, b); u.point(c[0], c[1]); } function l() { u.lineStart(), (p = []); } function m() { k(p[0][0], p[0][1]), u.lineEnd(); var a, b = u.clean(), c = t.buffer(), d = c.length; if ((p.pop(), o.push(p), (p = null), d)) if (1 & b) { a = c[0]; var e, d = a.length - 1, g = -1; if (d > 0) { for (v || (f.polygonStart(), (v = !0)), f.lineStart(); ++g < d; ) f.point((e = a[g])[0], e[1]); f.lineEnd(); } } else d > 1 && 2 & b && c.push(c.pop().concat(c.shift())), n.push(c.filter(Ib)); } var n, o, p, q = b(f), r = e.invert(d[0], d[1]), s = { point: g, lineStart: i, lineEnd: j, polygonStart: function () { (s.point = k), (s.lineStart = l), (s.lineEnd = m), (n = []), (o = []); }, polygonEnd: function () { (s.point = g), (s.lineStart = i), (s.lineEnd = j), (n = hg.merge(n)); var a = Ob(r, o); n.length ? (v || (f.polygonStart(), (v = !0)), Eb(n, Kb, a, c, f)) : a && (v || (f.polygonStart(), (v = !0)), f.lineStart(), c(null, null, 1, f), f.lineEnd()), v && (f.polygonEnd(), (v = !1)), (n = o = null); }, sphere: function () { f.polygonStart(), f.lineStart(), c(null, null, 1, f), f.lineEnd(), f.polygonEnd(); }, }, t = Jb(), u = b(t), v = !1; return s; }; } function Ib(a) { return a.length > 1; } function Jb() { var a, b = []; return { lineStart: function () { b.push((a = [])); }, point: function (b, c) { a.push([b, c]); }, lineEnd: v, buffer: function () { var c = b; return (b = []), (a = null), c; }, rejoin: function () { b.length > 1 && b.push(b.pop().concat(b.shift())); }, }; } function Kb(a, b) { return ((a = a.x)[0] < 0 ? a[1] - Pg - Kg : Pg - a[1]) - ((b = b.x)[0] < 0 ? b[1] - Pg - Kg : Pg - b[1]); } function Lb(a) { var b, c = NaN, d = NaN, e = NaN; return { lineStart: function () { a.lineStart(), (b = 1); }, point: function (f, g) { var h = f > 0 ? Mg : -Mg, i = tg(f - c); tg(i - Mg) < Kg ? (a.point(c, (d = (d + g) / 2 > 0 ? Pg : -Pg)), a.point(e, d), a.lineEnd(), a.lineStart(), a.point(h, d), a.point(f, d), (b = 0)) : e !== h && i >= Mg && (tg(c - e) < Kg && (c -= e * Kg), tg(f - h) < Kg && (f -= h * Kg), (d = Mb(c, d, f, g)), a.point(e, d), a.lineEnd(), a.lineStart(), a.point(h, d), (b = 0)), a.point((c = f), (d = g)), (e = h); }, lineEnd: function () { a.lineEnd(), (c = d = NaN); }, clean: function () { return 2 - b; }, }; } function Mb(a, b, c, d) { var e, f, g = Math.sin(a - c); return tg(g) > Kg ? Math.atan((Math.sin(b) * (f = Math.cos(d)) * Math.sin(c) - Math.sin(d) * (e = Math.cos(b)) * Math.sin(a)) / (e * f * g)) : (b + d) / 2; } function Nb(a, b, c, d) { var e; if (null == a) (e = c * Pg), d.point(-Mg, e), d.point(0, e), d.point(Mg, e), d.point(Mg, 0), d.point(Mg, -e), d.point(0, -e), d.point(-Mg, -e), d.point(-Mg, 0), d.point(-Mg, e); else if (tg(a[0] - b[0]) > Kg) { var f = a[0] < b[0] ? Mg : -Mg; (e = (c * f) / 2), d.point(-f, e), d.point(0, e), d.point(f, e); } else d.point(b[0], b[1]); } function Ob(a, b) { var c = a[0], d = a[1], e = [Math.sin(c), -Math.cos(c), 0], f = 0, g = 0; yh.reset(); for (var h = 0, i = b.length; i > h; ++h) { var j = b[h], k = j.length; if (k) for (var l = j[0], m = l[0], n = l[1] / 2 + Mg / 4, o = Math.sin(n), p = Math.cos(n), q = 1; ; ) { q === k && (q = 0), (a = j[q]); var r = a[0], s = a[1] / 2 + Mg / 4, t = Math.sin(s), u = Math.cos(s), v = r - m, w = v >= 0 ? 1 : -1, x = w * v, y = x > Mg, z = o * t; if ((yh.add(Math.atan2(z * w * Math.sin(x), p * u + z * Math.cos(x))), (f += y ? v + w * Ng : v), y ^ (m >= c) ^ (r >= c))) { var A = rb(pb(l), pb(a)); ub(A); var B = rb(e, A); ub(B); var C = (y ^ (v >= 0) ? -1 : 1) * ba(B[2]); (d > C || (d === C && (A[0] || A[1]))) && (g += y ^ (v >= 0) ? 1 : -1); } if (!q++) break; (m = r), (o = t), (p = u), (l = a); } } return (-Kg > f || (Kg > f && -Kg > yh)) ^ (1 & g); } function Pb(a) { function b(a, b) { return Math.cos(a) * Math.cos(b) > f; } function c(a) { var c, f, i, j, k; return { lineStart: function () { (j = i = !1), (k = 1); }, point: function (l, m) { var n, o = [l, m], p = b(l, m), q = g ? (p ? 0 : e(l, m)) : p ? e(l + (0 > l ? Mg : -Mg), m) : 0; if ((!c && (j = i = p) && a.lineStart(), p !== i && ((n = d(c, o)), (wb(c, n) || wb(o, n)) && ((o[0] += Kg), (o[1] += Kg), (p = b(o[0], o[1])))), p !== i)) (k = 0), p ? (a.lineStart(), (n = d(o, c)), a.point(n[0], n[1])) : ((n = d(c, o)), a.point(n[0], n[1]), a.lineEnd()), (c = n); else if (h && c && g ^ p) { var r; q & f || !(r = d(o, c, !0)) || ((k = 0), g ? (a.lineStart(), a.point(r[0][0], r[0][1]), a.point(r[1][0], r[1][1]), a.lineEnd()) : (a.point(r[1][0], r[1][1]), a.lineEnd(), a.lineStart(), a.point(r[0][0], r[0][1]))); } !p || (c && wb(c, o)) || a.point(o[0], o[1]), (c = o), (i = p), (f = q); }, lineEnd: function () { i && a.lineEnd(), (c = null); }, clean: function () { return k | ((j && i) << 1); }, }; } function d(a, b, c) { var d = pb(a), e = pb(b), g = [1, 0, 0], h = rb(d, e), i = qb(h, h), j = h[0], k = i - j * j; if (!k) return !c && a; var l = (f * i) / k, m = (-f * j) / k, n = rb(g, h), o = tb(g, l), p = tb(h, m); sb(o, p); var q = n, r = qb(o, q), s = qb(q, q), t = r * r - s * (qb(o, o) - 1); if (!(0 > t)) { var u = Math.sqrt(t), v = tb(q, (-r - u) / s); if ((sb(v, o), (v = vb(v)), !c)) return v; var w, x = a[0], y = b[0], z = a[1], A = b[1]; x > y && ((w = x), (x = y), (y = w)); var B = y - x, C = tg(B - Mg) < Kg, D = C || Kg > B; if ((!C && z > A && ((w = z), (z = A), (A = w)), D ? (C ? (z + A > 0) ^ (v[1] < (tg(v[0] - x) < Kg ? z : A)) : z <= v[1] && v[1] <= A) : (B > Mg) ^ (x <= v[0] && v[0] <= y))) { var E = tb(q, (-r + u) / s); return sb(E, o), [v, vb(E)]; } } } function e(b, c) { var d = g ? a : Mg - a, e = 0; return -d > b ? (e |= 1) : b > d && (e |= 2), -d > c ? (e |= 4) : c > d && (e |= 8), e; } var f = Math.cos(a), g = f > 0, h = tg(f) > Kg, i = oc(a, 6 * Qg); return Hb(b, c, i, g ? [0, -a] : [-Mg, a - Mg]); } function Qb(a, b, c, d) { return function (e) { var f, g = e.a, h = e.b, i = g.x, j = g.y, k = h.x, l = h.y, m = 0, n = 1, o = k - i, p = l - j; if (((f = a - i), o || !(f > 0))) { if (((f /= o), 0 > o)) { if (m > f) return; n > f && (n = f); } else if (o > 0) { if (f > n) return; f > m && (m = f); } if (((f = c - i), o || !(0 > f))) { if (((f /= o), 0 > o)) { if (f > n) return; f > m && (m = f); } else if (o > 0) { if (m > f) return; n > f && (n = f); } if (((f = b - j), p || !(f > 0))) { if (((f /= p), 0 > p)) { if (m > f) return; n > f && (n = f); } else if (p > 0) { if (f > n) return; f > m && (m = f); } if (((f = d - j), p || !(0 > f))) { if (((f /= p), 0 > p)) { if (f > n) return; f > m && (m = f); } else if (p > 0) { if (m > f) return; n > f && (n = f); } return m > 0 && (e.a = { x: i + m * o, y: j + m * p }), 1 > n && (e.b = { x: i + n * o, y: j + n * p }), e; } } } } }; } function Rb(a, b, c, d) { function e(d, e) { return tg(d[0] - a) < Kg ? (e > 0 ? 0 : 3) : tg(d[0] - c) < Kg ? (e > 0 ? 2 : 1) : tg(d[1] - b) < Kg ? (e > 0 ? 1 : 0) : e > 0 ? 3 : 2; } function f(a, b) { return g(a.x, b.x); } function g(a, b) { var c = e(a, 1), d = e(b, 1); return c !== d ? c - d : 0 === c ? b[1] - a[1] : 1 === c ? a[0] - b[0] : 2 === c ? a[1] - b[1] : b[0] - a[0]; } return function (h) { function i(a) { for (var b = 0, c = q.length, d = a[1], e = 0; c > e; ++e) for (var f, g = 1, h = q[e], i = h.length, j = h[0]; i > g; ++g) (f = h[g]), j[1] <= d ? f[1] > d && _(j, f, a) > 0 && ++b : f[1] <= d && _(j, f, a) < 0 && --b, (j = f); return 0 !== b; } function j(f, h, i, j) { var k = 0, l = 0; if (null == f || (k = e(f, i)) !== (l = e(h, i)) || (g(f, h) < 0) ^ (i > 0)) { do j.point(0 === k || 3 === k ? a : c, k > 1 ? d : b); while ((k = (k + i + 4) % 4) !== l); } else j.point(h[0], h[1]); } function k(e, f) { return e >= a && c >= e && f >= b && d >= f; } function l(a, b) { k(a, b) && h.point(a, b); } function m() { (D.point = o), q && q.push((r = [])), (y = !0), (x = !1), (v = w = NaN); } function n() { p && (o(s, t), u && x && B.rejoin(), p.push(B.buffer())), (D.point = l), x && h.lineEnd(); } function o(a, b) { (a = Math.max(-Nh, Math.min(Nh, a))), (b = Math.max(-Nh, Math.min(Nh, b))); var c = k(a, b); if ((q && r.push([a, b]), y)) (s = a), (t = b), (u = c), (y = !1), c && (h.lineStart(), h.point(a, b)); else if (c && x) h.point(a, b); else { var d = { a: { x: v, y: w }, b: { x: a, y: b } }; C(d) ? (x || (h.lineStart(), h.point(d.a.x, d.a.y)), h.point(d.b.x, d.b.y), c || h.lineEnd(), (z = !1)) : c && (h.lineStart(), h.point(a, b), (z = !1)); } (v = a), (w = b), (x = c); } var p, q, r, s, t, u, v, w, x, y, z, A = h, B = Jb(), C = Qb(a, b, c, d), D = { point: l, lineStart: m, lineEnd: n, polygonStart: function () { (h = B), (p = []), (q = []), (z = !0); }, polygonEnd: function () { (h = A), (p = hg.merge(p)); var b = i([a, d]), c = z && b, e = p.length; (c || e) && (h.polygonStart(), c && (h.lineStart(), j(null, null, 1, h), h.lineEnd()), e && Eb(p, f, b, j, h), h.polygonEnd()), (p = q = r = null); }, }; return D; }; } function Sb(a) { var b = 0, c = Mg / 3, d = gc(a), e = d(b, c); return ( (e.parallels = function (a) { return arguments.length ? d((b = (a[0] * Mg) / 180), (c = (a[1] * Mg) / 180)) : [(b / Mg) * 180, (c / Mg) * 180]; }), e ); } function Tb(a, b) { function c(a, b) { var c = Math.sqrt(f - 2 * e * Math.sin(b)) / e; return [c * Math.sin((a *= e)), g - c * Math.cos(a)]; } var d = Math.sin(a), e = (d + Math.sin(b)) / 2, f = 1 + d * (2 * e - d), g = Math.sqrt(f) / e; return ( (c.invert = function (a, b) { var c = g - b; return [Math.atan2(a, c) / e, ba((f - (a * a + c * c) * e * e) / (2 * e))]; }), c ); } function Ub() { function a(a, b) { (Ph += e * a - d * b), (d = a), (e = b); } var b, c, d, e; (Uh.point = function (f, g) { (Uh.point = a), (b = d = f), (c = e = g); }), (Uh.lineEnd = function () { a(b, c); }); } function Vb(a, b) { Qh > a && (Qh = a), a > Sh && (Sh = a), Rh > b && (Rh = b), b > Th && (Th = b); } function Wb() { function a(a, b) { g.push("M", a, ",", b, f); } function b(a, b) { g.push("M", a, ",", b), (h.point = c); } function c(a, b) { g.push("L", a, ",", b); } function d() { h.point = a; } function e() { g.push("Z"); } var f = Xb(4.5), g = [], h = { point: a, lineStart: function () { h.point = b; }, lineEnd: d, polygonStart: function () { h.lineEnd = e; }, polygonEnd: function () { (h.lineEnd = d), (h.point = a); }, pointRadius: function (a) { return (f = Xb(a)), h; }, result: function () { if (g.length) { var a = g.join(""); return (g = []), a; } }, }; return h; } function Xb(a) { return "m0," + a + "a" + a + "," + a + " 0 1,1 0," + -2 * a + "a" + a + "," + a + " 0 1,1 0," + 2 * a + "z"; } function Yb(a, b) { (Ch += a), (Dh += b), ++Eh; } function Zb() { function a(a, d) { var e = a - b, f = d - c, g = Math.sqrt(e * e + f * f); (Fh += (g * (b + a)) / 2), (Gh += (g * (c + d)) / 2), (Hh += g), Yb((b = a), (c = d)); } var b, c; Wh.point = function (d, e) { (Wh.point = a), Yb((b = d), (c = e)); }; } function $b() { Wh.point = Yb; } function _b() { function a(a, b) { var c = a - d, f = b - e, g = Math.sqrt(c * c + f * f); (Fh += (g * (d + a)) / 2), (Gh += (g * (e + b)) / 2), (Hh += g), (g = e * a - d * b), (Ih += g * (d + a)), (Jh += g * (e + b)), (Kh += 3 * g), Yb((d = a), (e = b)); } var b, c, d, e; (Wh.point = function (f, g) { (Wh.point = a), Yb((b = d = f), (c = e = g)); }), (Wh.lineEnd = function () { a(b, c); }); } function ac(a) { function b(b, c) { a.moveTo(b + g, c), a.arc(b, c, g, 0, Ng); } function c(b, c) { a.moveTo(b, c), (h.point = d); } function d(b, c) { a.lineTo(b, c); } function e() { h.point = b; } function f() { a.closePath(); } var g = 4.5, h = { point: b, lineStart: function () { h.point = c; }, lineEnd: e, polygonStart: function () { h.lineEnd = f; }, polygonEnd: function () { (h.lineEnd = e), (h.point = b); }, pointRadius: function (a) { return (g = a), h; }, result: v, }; return h; } function bc(a) { function b(a) { return (h ? d : c)(a); } function c(b) { return ec(b, function (c, d) { (c = a(c, d)), b.point(c[0], c[1]); }); } function d(b) { function c(c, d) { (c = a(c, d)), b.point(c[0], c[1]); } function d() { (t = NaN), (y.point = f), b.lineStart(); } function f(c, d) { var f = pb([c, d]), g = a(c, d); e(t, u, s, v, w, x, (t = g[0]), (u = g[1]), (s = c), (v = f[0]), (w = f[1]), (x = f[2]), h, b), b.point(t, u); } function g() { (y.point = c), b.lineEnd(); } function i() { d(), (y.point = j), (y.lineEnd = k); } function j(a, b) { f((l = a), (m = b)), (n = t), (o = u), (p = v), (q = w), (r = x), (y.point = f); } function k() { e(t, u, s, v, w, x, n, o, l, p, q, r, h, b), (y.lineEnd = g), g(); } var l, m, n, o, p, q, r, s, t, u, v, w, x, y = { point: c, lineStart: d, lineEnd: g, polygonStart: function () { b.polygonStart(), (y.lineStart = i); }, polygonEnd: function () { b.polygonEnd(), (y.lineStart = d); }, }; return y; } function e(b, c, d, h, i, j, k, l, m, n, o, p, q, r) { var s = k - b, t = l - c, u = s * s + t * t; if (u > 4 * f && q--) { var v = h + n, w = i + o, x = j + p, y = Math.sqrt(v * v + w * w + x * x), z = Math.asin((x /= y)), A = tg(tg(x) - 1) < Kg || tg(d - m) < Kg ? (d + m) / 2 : Math.atan2(w, v), B = a(A, z), C = B[0], D = B[1], E = C - b, F = D - c, G = t * E - s * F; ((G * G) / u > f || tg((s * E + t * F) / u - 0.5) > 0.3 || g > h * n + i * o + j * p) && (e(b, c, d, h, i, j, C, D, A, (v /= y), (w /= y), x, q, r), r.point(C, D), e(C, D, A, v, w, x, k, l, m, n, o, p, q, r)); } } var f = 0.5, g = Math.cos(30 * Qg), h = 16; return ( (b.precision = function (a) { return arguments.length ? ((h = (f = a * a) > 0 && 16), b) : Math.sqrt(f); }), b ); } function cc(a) { var b = bc(function (b, c) { return a([b * Rg, c * Rg]); }); return function (a) { return hc(b(a)); }; } function dc(a) { this.stream = a; } function ec(a, b) { return { point: b, sphere: function () { a.sphere(); }, lineStart: function () { a.lineStart(); }, lineEnd: function () { a.lineEnd(); }, polygonStart: function () { a.polygonStart(); }, polygonEnd: function () { a.polygonEnd(); }, }; } function fc(a) { return gc(function () { return a; })(); } function gc(a) { function b(a) { return (a = h(a[0] * Qg, a[1] * Qg)), [a[0] * m + i, j - a[1] * m]; } function c(a) { return (a = h.invert((a[0] - i) / m, (j - a[1]) / m)), a && [a[0] * Rg, a[1] * Rg]; } function d() { h = Cb((g = kc(r, t, u)), f); var a = f(p, q); return (i = n - a[0] * m), (j = o + a[1] * m), e(); } function e() { return k && ((k.valid = !1), (k = null)), b; } var f, g, h, i, j, k, l = bc(function (a, b) { return (a = f(a, b)), [a[0] * m + i, j - a[1] * m]; }), m = 150, n = 480, o = 250, p = 0, q = 0, r = 0, t = 0, u = 0, v = Mh, w = s, x = null, y = null; return ( (b.stream = function (a) { return k && (k.valid = !1), (k = hc(v(g, l(w(a))))), (k.valid = !0), k; }), (b.clipAngle = function (a) { return arguments.length ? ((v = null == a ? ((x = a), Mh) : Pb((x = +a) * Qg)), e()) : x; }), (b.clipExtent = function (a) { return arguments.length ? ((y = a), (w = a ? Rb(a[0][0], a[0][1], a[1][0], a[1][1]) : s), e()) : y; }), (b.scale = function (a) { return arguments.length ? ((m = +a), d()) : m; }), (b.translate = function (a) { return arguments.length ? ((n = +a[0]), (o = +a[1]), d()) : [n, o]; }), (b.center = function (a) { return arguments.length ? ((p = (a[0] % 360) * Qg), (q = (a[1] % 360) * Qg), d()) : [p * Rg, q * Rg]; }), (b.rotate = function (a) { return arguments.length ? ((r = (a[0] % 360) * Qg), (t = (a[1] % 360) * Qg), (u = a.length > 2 ? (a[2] % 360) * Qg : 0), d()) : [r * Rg, t * Rg, u * Rg]; }), hg.rebind(b, l, "precision"), function () { return (f = a.apply(this, arguments)), (b.invert = f.invert && c), d(); } ); } function hc(a) { return ec(a, function (b, c) { a.point(b * Qg, c * Qg); }); } function ic(a, b) { return [a, b]; } function jc(a, b) { return [a > Mg ? a - Ng : -Mg > a ? a + Ng : a, b]; } function kc(a, b, c) { return a ? (b || c ? Cb(mc(a), nc(b, c)) : mc(a)) : b || c ? nc(b, c) : jc; } function lc(a) { return function (b, c) { return (b += a), [b > Mg ? b - Ng : -Mg > b ? b + Ng : b, c]; }; } function mc(a) { var b = lc(a); return (b.invert = lc(-a)), b; } function nc(a, b) { function c(a, b) { var c = Math.cos(b), h = Math.cos(a) * c, i = Math.sin(a) * c, j = Math.sin(b), k = j * d + h * e; return [Math.atan2(i * f - k * g, h * d - j * e), ba(k * f + i * g)]; } var d = Math.cos(a), e = Math.sin(a), f = Math.cos(b), g = Math.sin(b); return ( (c.invert = function (a, b) { var c = Math.cos(b), h = Math.cos(a) * c, i = Math.sin(a) * c, j = Math.sin(b), k = j * f - i * g; return [Math.atan2(i * f + j * g, h * d + k * e), ba(k * d - h * e)]; }), c ); } function oc(a, b) { var c = Math.cos(a), d = Math.sin(a); return function (e, f, g, h) { var i = g * b; null != e ? ((e = pc(c, e)), (f = pc(c, f)), (g > 0 ? f > e : e > f) && (e += g * Ng)) : ((e = a + g * Ng), (f = a - 0.5 * i)); for (var j, k = e; g > 0 ? k > f : f > k; k -= i) h.point((j = vb([c, -d * Math.cos(k), -d * Math.sin(k)]))[0], j[1]); }; } function pc(a, b) { var c = pb(b); (c[0] -= a), ub(c); var d = aa(-c[1]); return ((-c[2] < 0 ? -d : d) + 2 * Math.PI - Kg) % (2 * Math.PI); } function qc(a, b, c) { var d = hg.range(a, b - Kg, c).concat(b); return function (a) { return d.map(function (b) { return [a, b]; }); }; } function rc(a, b, c) { var d = hg.range(a, b - Kg, c).concat(b); return function (a) { return d.map(function (b) { return [b, a]; }); }; } function sc(a) { return a.source; } function tc(a) { return a.target; } function uc(a, b, c, d) { var e = Math.cos(b), f = Math.sin(b), g = Math.cos(d), h = Math.sin(d), i = e * Math.cos(a), j = e * Math.sin(a), k = g * Math.cos(c), l = g * Math.sin(c), m = 2 * Math.asin(Math.sqrt(fa(d - b) + e * g * fa(c - a))), n = 1 / Math.sin(m), o = m ? function (a) { var b = Math.sin((a *= m)) * n, c = Math.sin(m - a) * n, d = c * i + b * k, e = c * j + b * l, g = c * f + b * h; return [Math.atan2(e, d) * Rg, Math.atan2(g, Math.sqrt(d * d + e * e)) * Rg]; } : function () { return [a * Rg, b * Rg]; }; return (o.distance = m), o; } function vc() { function a(a, e) { var f = Math.sin((e *= Qg)), g = Math.cos(e), h = tg((a *= Qg) - b), i = Math.cos(h); (Xh += Math.atan2(Math.sqrt((h = g * Math.sin(h)) * h + (h = d * f - c * g * i) * h), c * f + d * g * i)), (b = a), (c = f), (d = g); } var b, c, d; (Yh.point = function (e, f) { (b = e * Qg), (c = Math.sin((f *= Qg))), (d = Math.cos(f)), (Yh.point = a); }), (Yh.lineEnd = function () { Yh.point = Yh.lineEnd = v; }); } function wc(a, b) { function c(b, c) { var d = Math.cos(b), e = Math.cos(c), f = a(d * e); return [f * e * Math.sin(b), f * Math.sin(c)]; } return ( (c.invert = function (a, c) { var d = Math.sqrt(a * a + c * c), e = b(d), f = Math.sin(e), g = Math.cos(e); return [Math.atan2(a * f, d * g), Math.asin(d && (c * f) / d)]; }), c ); } function xc(a, b) { function c(a, b) { g > 0 ? -Pg + Kg > b && (b = -Pg + Kg) : b > Pg - Kg && (b = Pg - Kg); var c = g / Math.pow(e(b), f); return [c * Math.sin(f * a), g - c * Math.cos(f * a)]; } var d = Math.cos(a), e = function (a) { return Math.tan(Mg / 4 + a / 2); }, f = a === b ? Math.sin(a) : Math.log(d / Math.cos(b)) / Math.log(e(b) / e(a)), g = (d * Math.pow(e(a), f)) / f; return f ? ((c.invert = function (a, b) { var c = g - b, d = $(f) * Math.sqrt(a * a + c * c); return [Math.atan2(a, c) / f, 2 * Math.atan(Math.pow(g / d, 1 / f)) - Pg]; }), c) : zc; } function yc(a, b) { function c(a, b) { var c = f - b; return [c * Math.sin(e * a), f - c * Math.cos(e * a)]; } var d = Math.cos(a), e = a === b ? Math.sin(a) : (d - Math.cos(b)) / (b - a), f = d / e + a; return tg(e) < Kg ? ic : ((c.invert = function (a, b) { var c = f - b; return [Math.atan2(a, c) / e, f - $(e) * Math.sqrt(a * a + c * c)]; }), c); } function zc(a, b) { return [a, Math.log(Math.tan(Mg / 4 + b / 2))]; } function Ac(a) { var b, c = fc(a), d = c.scale, e = c.translate, f = c.clipExtent; return ( (c.scale = function () { var a = d.apply(c, arguments); return a === c ? (b ? c.clipExtent(null) : c) : a; }), (c.translate = function () { var a = e.apply(c, arguments); return a === c ? (b ? c.clipExtent(null) : c) : a; }), (c.clipExtent = function (a) { var g = f.apply(c, arguments); if (g === c) { if ((b = null == a)) { var h = Mg * d(), i = e(); f([ [i[0] - h, i[1] - h], [i[0] + h, i[1] + h], ]); } } else b && (g = null); return g; }), c.clipExtent(null) ); } function Bc(a, b) { return [Math.log(Math.tan(Mg / 4 + b / 2)), -a]; } function Cc(a) { return a[0]; } function Dc(a) { return a[1]; } function Ec(a) { for (var b = a.length, c = [0, 1], d = 2, e = 2; b > e; e++) { for (; d > 1 && _(a[c[d - 2]], a[c[d - 1]], a[e]) <= 0; ) --d; c[d++] = e; } return c.slice(0, d); } function Fc(a, b) { return a[0] - b[0] || a[1] - b[1]; } function Gc(a, b, c) { return (c[0] - b[0]) * (a[1] - b[1]) < (c[1] - b[1]) * (a[0] - b[0]); } function Hc(a, b, c, d) { var e = a[0], f = c[0], g = b[0] - e, h = d[0] - f, i = a[1], j = c[1], k = b[1] - i, l = d[1] - j, m = (h * (i - j) - l * (e - f)) / (l * g - h * k); return [e + m * g, i + m * k]; } function Ic(a) { var b = a[0], c = a[a.length - 1]; return !(b[0] - c[0] || b[1] - c[1]); } function Jc() { cd(this), (this.edge = this.site = this.circle = null); } function Kc(a) { var b = ii.pop() || new Jc(); return (b.site = a), b; } function Lc(a) { Vc(a), fi.remove(a), ii.push(a), cd(a); } function Mc(a) { var b = a.circle, c = b.x, d = b.cy, e = { x: c, y: d }, f = a.P, g = a.N, h = [a]; Lc(a); for (var i = f; i.circle && tg(c - i.circle.x) < Kg && tg(d - i.circle.cy) < Kg; ) (f = i.P), h.unshift(i), Lc(i), (i = f); h.unshift(i), Vc(i); for (var j = g; j.circle && tg(c - j.circle.x) < Kg && tg(d - j.circle.cy) < Kg; ) (g = j.N), h.push(j), Lc(j), (j = g); h.push(j), Vc(j); var k, l = h.length; for (k = 1; l > k; ++k) (j = h[k]), (i = h[k - 1]), _c(j.edge, i.site, j.site, e); (i = h[0]), (j = h[l - 1]), (j.edge = Zc(i.site, j.site, null, e)), Uc(i), Uc(j); } function Nc(a) { for (var b, c, d, e, f = a.x, g = a.y, h = fi._; h; ) if (((d = Oc(h, g) - f), d > Kg)) h = h.L; else { if (((e = f - Pc(h, g)), !(e > Kg))) { d > -Kg ? ((b = h.P), (c = h)) : e > -Kg ? ((b = h), (c = h.N)) : (b = c = h); break; } if (!h.R) { b = h; break; } h = h.R; } var i = Kc(a); if ((fi.insert(b, i), b || c)) { if (b === c) return Vc(b), (c = Kc(b.site)), fi.insert(i, c), (i.edge = c.edge = Zc(b.site, i.site)), Uc(b), void Uc(c); if (!c) return void (i.edge = Zc(b.site, i.site)); Vc(b), Vc(c); var j = b.site, k = j.x, l = j.y, m = a.x - k, n = a.y - l, o = c.site, p = o.x - k, q = o.y - l, r = 2 * (m * q - n * p), s = m * m + n * n, t = p * p + q * q, u = { x: (q * s - n * t) / r + k, y: (m * t - p * s) / r + l }; _c(c.edge, j, o, u), (i.edge = Zc(j, a, null, u)), (c.edge = Zc(a, o, null, u)), Uc(b), Uc(c); } } function Oc(a, b) { var c = a.site, d = c.x, e = c.y, f = e - b; if (!f) return d; var g = a.P; if (!g) return -(1 / 0); c = g.site; var h = c.x, i = c.y, j = i - b; if (!j) return h; var k = h - d, l = 1 / f - 1 / j, m = k / j; return l ? (-m + Math.sqrt(m * m - 2 * l * ((k * k) / (-2 * j) - i + j / 2 + e - f / 2))) / l + d : (d + h) / 2; } function Pc(a, b) { var c = a.N; if (c) return Oc(c, b); var d = a.site; return d.y === b ? d.x : 1 / 0; } function Qc(a) { (this.site = a), (this.edges = []); } function Rc(a) { for (var b, c, d, e, f, g, h, i, j, k, l = a[0][0], m = a[1][0], n = a[0][1], o = a[1][1], p = ei, q = p.length; q--; ) if (((f = p[q]), f && f.prepare())) for (h = f.edges, i = h.length, g = 0; i > g; ) (k = h[g].end()), (d = k.x), (e = k.y), (j = h[++g % i].start()), (b = j.x), (c = j.y), (tg(d - b) > Kg || tg(e - c) > Kg) && (h.splice( g, 0, new ad( $c( f.site, k, tg(d - l) < Kg && o - e > Kg ? { x: l, y: tg(b - l) < Kg ? c : o } : tg(e - o) < Kg && m - d > Kg ? { x: tg(c - o) < Kg ? b : m, y: o } : tg(d - m) < Kg && e - n > Kg ? { x: m, y: tg(b - m) < Kg ? c : n } : tg(e - n) < Kg && d - l > Kg ? { x: tg(c - n) < Kg ? b : l, y: n } : null ), f.site, null ) ), ++i); } function Sc(a, b) { return b.angle - a.angle; } function Tc() { cd(this), (this.x = this.y = this.arc = this.site = this.cy = null); } function Uc(a) { var b = a.P, c = a.N; if (b && c) { var d = b.site, e = a.site, f = c.site; if (d !== f) { var g = e.x, h = e.y, i = d.x - g, j = d.y - h, k = f.x - g, l = f.y - h, m = 2 * (i * l - j * k); if (!(m >= -Lg)) { var n = i * i + j * j, o = k * k + l * l, p = (l * n - j * o) / m, q = (i * o - k * n) / m, l = q + h, r = ji.pop() || new Tc(); (r.arc = a), (r.site = e), (r.x = p + g), (r.y = l + Math.sqrt(p * p + q * q)), (r.cy = l), (a.circle = r); for (var s = null, t = hi._; t; ) if (r.y < t.y || (r.y === t.y && r.x <= t.x)) { if (!t.L) { s = t.P; break; } t = t.L; } else { if (!t.R) { s = t; break; } t = t.R; } hi.insert(s, r), s || (gi = r); } } } } function Vc(a) { var b = a.circle; b && (b.P || (gi = b.N), hi.remove(b), ji.push(b), cd(b), (a.circle = null)); } function Wc(a) { for (var b, c = di, d = Qb(a[0][0], a[0][1], a[1][0], a[1][1]), e = c.length; e--; ) (b = c[e]), (!Xc(b, a) || !d(b) || (tg(b.a.x - b.b.x) < Kg && tg(b.a.y - b.b.y) < Kg)) && ((b.a = b.b = null), c.splice(e, 1)); } function Xc(a, b) { var c = a.b; if (c) return !0; var d, e, f = a.a, g = b[0][0], h = b[1][0], i = b[0][1], j = b[1][1], k = a.l, l = a.r, m = k.x, n = k.y, o = l.x, p = l.y, q = (m + o) / 2, r = (n + p) / 2; if (p === n) { if (g > q || q >= h) return; if (m > o) { if (f) { if (f.y >= j) return; } else f = { x: q, y: i }; c = { x: q, y: j }; } else { if (f) { if (f.y < i) return; } else f = { x: q, y: j }; c = { x: q, y: i }; } } else if (((d = (m - o) / (p - n)), (e = r - d * q), -1 > d || d > 1)) if (m > o) { if (f) { if (f.y >= j) return; } else f = { x: (i - e) / d, y: i }; c = { x: (j - e) / d, y: j }; } else { if (f) { if (f.y < i) return; } else f = { x: (j - e) / d, y: j }; c = { x: (i - e) / d, y: i }; } else if (p > n) { if (f) { if (f.x >= h) return; } else f = { x: g, y: d * g + e }; c = { x: h, y: d * h + e }; } else { if (f) { if (f.x < g) return; } else f = { x: h, y: d * h + e }; c = { x: g, y: d * g + e }; } return (a.a = f), (a.b = c), !0; } function Yc(a, b) { (this.l = a), (this.r = b), (this.a = this.b = null); } function Zc(a, b, c, d) { var e = new Yc(a, b); return di.push(e), c && _c(e, a, b, c), d && _c(e, b, a, d), ei[a.i].edges.push(new ad(e, a, b)), ei[b.i].edges.push(new ad(e, b, a)), e; } function $c(a, b, c) { var d = new Yc(a, null); return (d.a = b), (d.b = c), di.push(d), d; } function _c(a, b, c, d) { a.a || a.b ? (a.l === c ? (a.b = d) : (a.a = d)) : ((a.a = d), (a.l = b), (a.r = c)); } function ad(a, b, c) { var d = a.a, e = a.b; (this.edge = a), (this.site = b), (this.angle = c ? Math.atan2(c.y - b.y, c.x - b.x) : a.l === b ? Math.atan2(e.x - d.x, d.y - e.y) : Math.atan2(d.x - e.x, e.y - d.y)); } function bd() { this._ = null; } function cd(a) { a.U = a.C = a.L = a.R = a.P = a.N = null; } function dd(a, b) { var c = b, d = b.R, e = c.U; e ? (e.L === c ? (e.L = d) : (e.R = d)) : (a._ = d), (d.U = e), (c.U = d), (c.R = d.L), c.R && (c.R.U = c), (d.L = c); } function ed(a, b) { var c = b, d = b.L, e = c.U; e ? (e.L === c ? (e.L = d) : (e.R = d)) : (a._ = d), (d.U = e), (c.U = d), (c.L = d.R), c.L && (c.L.U = c), (d.R = c); } function fd(a) { for (; a.L; ) a = a.L; return a; } function gd(a, b) { var c, d, e, f = a.sort(hd).pop(); for (di = [], ei = new Array(a.length), fi = new bd(), hi = new bd(); ; ) if (((e = gi), f && (!e || f.y < e.y || (f.y === e.y && f.x < e.x)))) (f.x !== c || f.y !== d) && ((ei[f.i] = new Qc(f)), Nc(f), (c = f.x), (d = f.y)), (f = a.pop()); else { if (!e) break; Mc(e.arc); } b && (Wc(b), Rc(b)); var g = { cells: ei, edges: di }; return (fi = hi = di = ei = null), g; } function hd(a, b) { return b.y - a.y || b.x - a.x; } function id(a, b, c) { return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); } function jd(a) { return a.x; } function kd(a) { return a.y; } function ld() { return { leaf: !0, nodes: [], point: null, x: null, y: null }; } function md(a, b, c, d, e, f) { if (!a(b, c, d, e, f)) { var g = 0.5 * (c + e), h = 0.5 * (d + f), i = b.nodes; i[0] && md(a, i[0], c, d, g, h), i[1] && md(a, i[1], g, d, e, h), i[2] && md(a, i[2], c, h, g, f), i[3] && md(a, i[3], g, h, e, f); } } function nd(a, b, c, d, e, f, g) { var h, i = 1 / 0; return ( (function j(a, k, l, m, n) { if (!(k > f || l > g || d > m || e > n)) { if ((o = a.point)) { var o, p = b - a.x, q = c - a.y, r = p * p + q * q; if (i > r) { var s = Math.sqrt((i = r)); (d = b - s), (e = c - s), (f = b + s), (g = c + s), (h = o); } } for (var t = a.nodes, u = 0.5 * (k + m), v = 0.5 * (l + n), w = b >= u, x = c >= v, y = (x << 1) | w, z = y + 4; z > y; ++y) if ((a = t[3 & y])) switch (3 & y) { case 0: j(a, k, l, u, v); break; case 1: j(a, u, l, m, v); break; case 2: j(a, k, v, u, n); break; case 3: j(a, u, v, m, n); } } })(a, d, e, f, g), h ); } function od(a, b) { (a = hg.rgb(a)), (b = hg.rgb(b)); var c = a.r, d = a.g, e = a.b, f = b.r - c, g = b.g - d, h = b.b - e; return function (a) { return "#" + ua(Math.round(c + f * a)) + ua(Math.round(d + g * a)) + ua(Math.round(e + h * a)); }; } function pd(a, b) { var c, d = {}, e = {}; for (c in a) c in b ? (d[c] = sd(a[c], b[c])) : (e[c] = a[c]); for (c in b) c in a || (e[c] = b[c]); return function (a) { for (c in d) e[c] = d[c](a); return e; }; } function qd(a, b) { return ( (a = +a), (b = +b), function (c) { return a * (1 - c) + b * c; } ); } function rd(a, b) { var c, d, e, f = (li.lastIndex = mi.lastIndex = 0), g = -1, h = [], i = []; for (a += "", b += ""; (c = li.exec(a)) && (d = mi.exec(b)); ) (e = d.index) > f && ((e = b.slice(f, e)), h[g] ? (h[g] += e) : (h[++g] = e)), (c = c[0]) === (d = d[0]) ? (h[g] ? (h[g] += d) : (h[++g] = d)) : ((h[++g] = null), i.push({ i: g, x: qd(c, d) })), (f = mi.lastIndex); return ( f < b.length && ((e = b.slice(f)), h[g] ? (h[g] += e) : (h[++g] = e)), h.length < 2 ? i[0] ? ((b = i[0].x), function (a) { return b(a) + ""; }) : function () { return b; } : ((b = i.length), function (a) { for (var c, d = 0; b > d; ++d) h[(c = i[d]).i] = c.x(a); return h.join(""); }) ); } function sd(a, b) { for (var c, d = hg.interpolators.length; --d >= 0 && !(c = hg.interpolators[d](a, b)); ); return c; } function td(a, b) { var c, d = [], e = [], f = a.length, g = b.length, h = Math.min(a.length, b.length); for (c = 0; h > c; ++c) d.push(sd(a[c], b[c])); for (; f > c; ++c) e[c] = a[c]; for (; g > c; ++c) e[c] = b[c]; return function (a) { for (c = 0; h > c; ++c) e[c] = d[c](a); return e; }; } function ud(a) { return function (b) { return 0 >= b ? 0 : b >= 1 ? 1 : a(b); }; } function vd(a) { return function (b) { return 1 - a(1 - b); }; } function wd(a) { return function (b) { return 0.5 * (0.5 > b ? a(2 * b) : 2 - a(2 - 2 * b)); }; } function xd(a) { return a * a; } function yd(a) { return a * a * a; } function zd(a) { if (0 >= a) return 0; if (a >= 1) return 1; var b = a * a, c = b * a; return 4 * (0.5 > a ? c : 3 * (a - b) + c - 0.75); } function Ad(a) { return function (b) { return Math.pow(b, a); }; } function Bd(a) { return 1 - Math.cos(a * Pg); } function Cd(a) { return Math.pow(2, 10 * (a - 1)); } function Dd(a) { return 1 - Math.sqrt(1 - a * a); } function Ed(a, b) { var c; return ( arguments.length < 2 && (b = 0.45), arguments.length ? (c = (b / Ng) * Math.asin(1 / a)) : ((a = 1), (c = b / 4)), function (d) { return 1 + a * Math.pow(2, -10 * d) * Math.sin(((d - c) * Ng) / b); } ); } function Fd(a) { return ( a || (a = 1.70158), function (b) { return b * b * ((a + 1) * b - a); } ); } function Gd(a) { return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * (a -= 1.5 / 2.75) * a + 0.75 : 2.5 / 2.75 > a ? 7.5625 * (a -= 2.25 / 2.75) * a + 0.9375 : 7.5625 * (a -= 2.625 / 2.75) * a + 0.984375; } function Hd(a, b) { (a = hg.hcl(a)), (b = hg.hcl(b)); var c = a.h, d = a.c, e = a.l, f = b.h - c, g = b.c - d, h = b.l - e; return ( isNaN(g) && ((g = 0), (d = isNaN(d) ? b.c : d)), isNaN(f) ? ((f = 0), (c = isNaN(c) ? b.h : c)) : f > 180 ? (f -= 360) : -180 > f && (f += 360), function (a) { return ka(c + f * a, d + g * a, e + h * a) + ""; } ); } function Id(a, b) { (a = hg.hsl(a)), (b = hg.hsl(b)); var c = a.h, d = a.s, e = a.l, f = b.h - c, g = b.s - d, h = b.l - e; return ( isNaN(g) && ((g = 0), (d = isNaN(d) ? b.s : d)), isNaN(f) ? ((f = 0), (c = isNaN(c) ? b.h : c)) : f > 180 ? (f -= 360) : -180 > f && (f += 360), function (a) { return ia(c + f * a, d + g * a, e + h * a) + ""; } ); } function Jd(a, b) { (a = hg.lab(a)), (b = hg.lab(b)); var c = a.l, d = a.a, e = a.b, f = b.l - c, g = b.a - d, h = b.b - e; return function (a) { return ma(c + f * a, d + g * a, e + h * a) + ""; }; } function Kd(a, b) { return ( (b -= a), function (c) { return Math.round(a + b * c); } ); } function Ld(a) { var b = [a.a, a.b], c = [a.c, a.d], d = Nd(b), e = Md(b, c), f = Nd(Od(c, b, -e)) || 0; b[0] * c[1] < c[0] * b[1] && ((b[0] *= -1), (b[1] *= -1), (d *= -1), (e *= -1)), (this.rotate = (d ? Math.atan2(b[1], b[0]) : Math.atan2(-c[0], c[1])) * Rg), (this.translate = [a.e, a.f]), (this.scale = [d, f]), (this.skew = f ? Math.atan2(e, f) * Rg : 0); } function Md(a, b) { return a[0] * b[0] + a[1] * b[1]; } function Nd(a) { var b = Math.sqrt(Md(a, a)); return b && ((a[0] /= b), (a[1] /= b)), b; } function Od(a, b, c) { return (a[0] += c * b[0]), (a[1] += c * b[1]), a; } function Pd(a) { return a.length ? a.pop() + "," : ""; } function Qd(a, b, c, d) { if (a[0] !== b[0] || a[1] !== b[1]) { var e = c.push("translate(", null, ",", null, ")"); d.push({ i: e - 4, x: qd(a[0], b[0]) }, { i: e - 2, x: qd(a[1], b[1]) }); } else (b[0] || b[1]) && c.push("translate(" + b + ")"); } function Rd(a, b, c, d) { a !== b ? (a - b > 180 ? (b += 360) : b - a > 180 && (a += 360), d.push({ i: c.push(Pd(c) + "rotate(", null, ")") - 2, x: qd(a, b) })) : b && c.push(Pd(c) + "rotate(" + b + ")"); } function Sd(a, b, c, d) { a !== b ? d.push({ i: c.push(Pd(c) + "skewX(", null, ")") - 2, x: qd(a, b) }) : b && c.push(Pd(c) + "skewX(" + b + ")"); } function Td(a, b, c, d) { if (a[0] !== b[0] || a[1] !== b[1]) { var e = c.push(Pd(c) + "scale(", null, ",", null, ")"); d.push({ i: e - 4, x: qd(a[0], b[0]) }, { i: e - 2, x: qd(a[1], b[1]) }); } else (1 !== b[0] || 1 !== b[1]) && c.push(Pd(c) + "scale(" + b + ")"); } function Ud(a, b) { var c = [], d = []; return ( (a = hg.transform(a)), (b = hg.transform(b)), Qd(a.translate, b.translate, c, d), Rd(a.rotate, b.rotate, c, d), Sd(a.skew, b.skew, c, d), Td(a.scale, b.scale, c, d), (a = b = null), function (a) { for (var b, e = -1, f = d.length; ++e < f; ) c[(b = d[e]).i] = b.x(a); return c.join(""); } ); } function Vd(a, b) { return ( (b = (b -= a = +a) || 1 / b), function (c) { return (c - a) / b; } ); } function Wd(a, b) { return ( (b = (b -= a = +a) || 1 / b), function (c) { return Math.max(0, Math.min(1, (c - a) / b)); } ); } function Xd(a) { for (var b = a.source, c = a.target, d = Zd(b, c), e = [b]; b !== d; ) (b = b.parent), e.push(b); for (var f = e.length; c !== d; ) e.splice(f, 0, c), (c = c.parent); return e; } function Yd(a) { for (var b = [], c = a.parent; null != c; ) b.push(a), (a = c), (c = c.parent); return b.push(a), b; } function Zd(a, b) { if (a === b) return a; for (var c = Yd(a), d = Yd(b), e = c.pop(), f = d.pop(), g = null; e === f; ) (g = e), (e = c.pop()), (f = d.pop()); return g; } function $d(a) { a.fixed |= 2; } function _d(a) { a.fixed &= -7; } function ae(a) { (a.fixed |= 4), (a.px = a.x), (a.py = a.y); } function be(a) { a.fixed &= -5; } function ce(a, b, c) { var d = 0, e = 0; if (((a.charge = 0), !a.leaf)) for (var f, g = a.nodes, h = g.length, i = -1; ++i < h; ) (f = g[i]), null != f && (ce(f, b, c), (a.charge += f.charge), (d += f.charge * f.cx), (e += f.charge * f.cy)); if (a.point) { a.leaf || ((a.point.x += Math.random() - 0.5), (a.point.y += Math.random() - 0.5)); var j = b * c[a.point.index]; (a.charge += a.pointCharge = j), (d += j * a.point.x), (e += j * a.point.y); } (a.cx = d / a.charge), (a.cy = e / a.charge); } function de(a, b) { return hg.rebind(a, b, "sort", "children", "value"), (a.nodes = a), (a.links = je), a; } function ee(a, b) { for (var c = [a]; null != (a = c.pop()); ) if ((b(a), (e = a.children) && (d = e.length))) for (var d, e; --d >= 0; ) c.push(e[d]); } function fe(a, b) { for (var c = [a], d = []; null != (a = c.pop()); ) if ((d.push(a), (f = a.children) && (e = f.length))) for (var e, f, g = -1; ++g < e; ) c.push(f[g]); for (; null != (a = d.pop()); ) b(a); } function ge(a) { return a.children; } function he(a) { return a.value; } function ie(a, b) { return b.value - a.value; } function je(a) { return hg.merge( a.map(function (a) { return (a.children || []).map(function (b) { return { source: a, target: b }; }); }) ); } function ke(a) { return a.x; } function le(a) { return a.y; } function me(a, b, c) { (a.y0 = b), (a.y = c); } function ne(a) { return hg.range(a.length); } function oe(a) { for (var b = -1, c = a[0].length, d = []; ++b < c; ) d[b] = 0; return d; } function pe(a) { for (var b, c = 1, d = 0, e = a[0][1], f = a.length; f > c; ++c) (b = a[c][1]) > e && ((d = c), (e = b)); return d; } function qe(a) { return a.reduce(re, 0); } function re(a, b) { return a + b[1]; } function se(a, b) { return te(a, Math.ceil(Math.log(b.length) / Math.LN2 + 1)); } function te(a, b) { for (var c = -1, d = +a[0], e = (a[1] - d) / b, f = []; ++c <= b; ) f[c] = e * c + d; return f; } function ue(a) { return [hg.min(a), hg.max(a)]; } function ve(a, b) { return a.value - b.value; } function we(a, b) { var c = a._pack_next; (a._pack_next = b), (b._pack_prev = a), (b._pack_next = c), (c._pack_prev = b); } function xe(a, b) { (a._pack_next = b), (b._pack_prev = a); } function ye(a, b) { var c = b.x - a.x, d = b.y - a.y, e = a.r + b.r; return 0.999 * e * e > c * c + d * d; } function ze(a) { function b(a) { (k = Math.min(a.x - a.r, k)), (l = Math.max(a.x + a.r, l)), (m = Math.min(a.y - a.r, m)), (n = Math.max(a.y + a.r, n)); } if ((c = a.children) && (j = c.length)) { var c, d, e, f, g, h, i, j, k = 1 / 0, l = -(1 / 0), m = 1 / 0, n = -(1 / 0); if ((c.forEach(Ae), (d = c[0]), (d.x = -d.r), (d.y = 0), b(d), j > 1 && ((e = c[1]), (e.x = e.r), (e.y = 0), b(e), j > 2))) for (f = c[2], De(d, e, f), b(f), we(d, f), d._pack_prev = f, we(f, e), e = d._pack_next, g = 3; j > g; g++) { De(d, e, (f = c[g])); var o = 0, p = 1, q = 1; for (h = e._pack_next; h !== e; h = h._pack_next, p++) if (ye(h, f)) { o = 1; break; } if (1 == o) for (i = d._pack_prev; i !== h._pack_prev && !ye(i, f); i = i._pack_prev, q++); o ? (q > p || (p == q && e.r < d.r) ? xe(d, (e = h)) : xe((d = i), e), g--) : (we(d, f), (e = f), b(f)); } var r = (k + l) / 2, s = (m + n) / 2, t = 0; for (g = 0; j > g; g++) (f = c[g]), (f.x -= r), (f.y -= s), (t = Math.max(t, f.r + Math.sqrt(f.x * f.x + f.y * f.y))); (a.r = t), c.forEach(Be); } } function Ae(a) { a._pack_next = a._pack_prev = a; } function Be(a) { delete a._pack_next, delete a._pack_prev; } function Ce(a, b, c, d) { var e = a.children; if (((a.x = b += d * a.x), (a.y = c += d * a.y), (a.r *= d), e)) for (var f = -1, g = e.length; ++f < g; ) Ce(e[f], b, c, d); } function De(a, b, c) { var d = a.r + c.r, e = b.x - a.x, f = b.y - a.y; if (d && (e || f)) { var g = b.r + c.r, h = e * e + f * f; (g *= g), (d *= d); var i = 0.5 + (d - g) / (2 * h), j = Math.sqrt(Math.max(0, 2 * g * (d + h) - (d -= h) * d - g * g)) / (2 * h); (c.x = a.x + i * e + j * f), (c.y = a.y + i * f - j * e); } else (c.x = a.x + d), (c.y = a.y); } function Ee(a, b) { return a.parent == b.parent ? 1 : 2; } function Fe(a) { var b = a.children; return b.length ? b[0] : a.t; } function Ge(a) { var b, c = a.children; return (b = c.length) ? c[b - 1] : a.t; } function He(a, b, c) { var d = c / (b.i - a.i); (b.c -= d), (b.s += c), (a.c += d), (b.z += c), (b.m += c); } function Ie(a) { for (var b, c = 0, d = 0, e = a.children, f = e.length; --f >= 0; ) (b = e[f]), (b.z += c), (b.m += c), (c += b.s + (d += b.c)); } function Je(a, b, c) { return a.a.parent === b.parent ? a.a : c; } function Ke(a) { return ( 1 + hg.max(a, function (a) { return a.y; }) ); } function Le(a) { return ( a.reduce(function (a, b) { return a + b.x; }, 0) / a.length ); } function Me(a) { var b = a.children; return b && b.length ? Me(b[0]) : a; } function Ne(a) { var b, c = a.children; return c && (b = c.length) ? Ne(c[b - 1]) : a; } function Oe(a) { return { x: a.x, y: a.y, dx: a.dx, dy: a.dy }; } function Pe(a, b) { var c = a.x + b[3], d = a.y + b[0], e = a.dx - b[1] - b[3], f = a.dy - b[0] - b[2]; return 0 > e && ((c += e / 2), (e = 0)), 0 > f && ((d += f / 2), (f = 0)), { x: c, y: d, dx: e, dy: f }; } function Qe(a) { var b = a[0], c = a[a.length - 1]; return c > b ? [b, c] : [c, b]; } function Re(a) { return a.rangeExtent ? a.rangeExtent() : Qe(a.range()); } function Se(a, b, c, d) { var e = c(a[0], a[1]), f = d(b[0], b[1]); return function (a) { return f(e(a)); }; } function Te(a, b) { var c, d = 0, e = a.length - 1, f = a[d], g = a[e]; return f > g && ((c = d), (d = e), (e = c), (c = f), (f = g), (g = c)), (a[d] = b.floor(f)), (a[e] = b.ceil(g)), a; } function Ue(a) { return a ? { floor: function (b) { return Math.floor(b / a) * a; }, ceil: function (b) { return Math.ceil(b / a) * a; }, } : xi; } function Ve(a, b, c, d) { var e = [], f = [], g = 0, h = Math.min(a.length, b.length) - 1; for (a[h] < a[0] && ((a = a.slice().reverse()), (b = b.slice().reverse())); ++g <= h; ) e.push(c(a[g - 1], a[g])), f.push(d(b[g - 1], b[g])); return function (b) { var c = hg.bisect(a, b, 1, h) - 1; return f[c](e[c](b)); }; } function We(a, b, c, d) { function e() { var e = Math.min(a.length, b.length) > 2 ? Ve : Se, i = d ? Wd : Vd; return (g = e(a, b, i, c)), (h = e(b, a, i, sd)), f; } function f(a) { return g(a); } var g, h; return ( (f.invert = function (a) { return h(a); }), (f.domain = function (b) { return arguments.length ? ((a = b.map(Number)), e()) : a; }), (f.range = function (a) { return arguments.length ? ((b = a), e()) : b; }), (f.rangeRound = function (a) { return f.range(a).interpolate(Kd); }), (f.clamp = function (a) { return arguments.length ? ((d = a), e()) : d; }), (f.interpolate = function (a) { return arguments.length ? ((c = a), e()) : c; }), (f.ticks = function (b) { return $e(a, b); }), (f.tickFormat = function (b, c) { return _e(a, b, c); }), (f.nice = function (b) { return Ye(a, b), e(); }), (f.copy = function () { return We(a, b, c, d); }), e() ); } function Xe(a, b) { return hg.rebind(a, b, "range", "rangeRound", "interpolate", "clamp"); } function Ye(a, b) { return Te(a, Ue(Ze(a, b)[2])), Te(a, Ue(Ze(a, b)[2])), a; } function Ze(a, b) { null == b && (b = 10); var c = Qe(a), d = c[1] - c[0], e = Math.pow(10, Math.floor(Math.log(d / b) / Math.LN10)), f = (b / d) * e; return 0.15 >= f ? (e *= 10) : 0.35 >= f ? (e *= 5) : 0.75 >= f && (e *= 2), (c[0] = Math.ceil(c[0] / e) * e), (c[1] = Math.floor(c[1] / e) * e + 0.5 * e), (c[2] = e), c; } function $e(a, b) { return hg.range.apply(hg, Ze(a, b)); } function _e(a, b, c) { var d = Ze(a, b); if (c) { var e = lh.exec(c); if ((e.shift(), "s" === e[8])) { var f = hg.formatPrefix(Math.max(tg(d[0]), tg(d[1]))); return ( e[7] || (e[7] = "." + af(f.scale(d[2]))), (e[8] = "f"), (c = hg.format(e.join(""))), function (a) { return c(f.scale(a)) + f.symbol; } ); } e[7] || (e[7] = "." + bf(e[8], d)), (c = e.join("")); } else c = ",." + af(d[2]) + "f"; return hg.format(c); } function af(a) { return -Math.floor(Math.log(a) / Math.LN10 + 0.01); } function bf(a, b) { var c = af(b[2]); return a in yi ? Math.abs(c - af(Math.max(tg(b[0]), tg(b[1])))) + +("e" !== a) : c - 2 * ("%" === a); } function cf(a, b, c, d) { function e(a) { return (c ? Math.log(0 > a ? 0 : a) : -Math.log(a > 0 ? 0 : -a)) / Math.log(b); } function f(a) { return c ? Math.pow(b, a) : -Math.pow(b, -a); } function g(b) { return a(e(b)); } return ( (g.invert = function (b) { return f(a.invert(b)); }), (g.domain = function (b) { return arguments.length ? ((c = b[0] >= 0), a.domain((d = b.map(Number)).map(e)), g) : d; }), (g.base = function (c) { return arguments.length ? ((b = +c), a.domain(d.map(e)), g) : b; }), (g.nice = function () { var b = Te(d.map(e), c ? Math : Ai); return a.domain(b), (d = b.map(f)), g; }), (g.ticks = function () { var a = Qe(d), g = [], h = a[0], i = a[1], j = Math.floor(e(h)), k = Math.ceil(e(i)), l = b % 1 ? 2 : b; if (isFinite(k - j)) { if (c) { for (; k > j; j++) for (var m = 1; l > m; m++) g.push(f(j) * m); g.push(f(j)); } else for (g.push(f(j)); j++ < k; ) for (var m = l - 1; m > 0; m--) g.push(f(j) * m); for (j = 0; g[j] < h; j++); for (k = g.length; g[k - 1] > i; k--); g = g.slice(j, k); } return g; }), (g.tickFormat = function (a, c) { if (!arguments.length) return zi; arguments.length < 2 ? (c = zi) : "function" != typeof c && (c = hg.format(c)); var d = Math.max(1, (b * a) / g.ticks().length); return function (a) { var g = a / f(Math.round(e(a))); return b - 0.5 > g * b && (g *= b), d >= g ? c(a) : ""; }; }), (g.copy = function () { return cf(a.copy(), b, c, d); }), Xe(g, a) ); } function df(a, b, c) { function d(b) { return a(e(b)); } var e = ef(b), f = ef(1 / b); return ( (d.invert = function (b) { return f(a.invert(b)); }), (d.domain = function (b) { return arguments.length ? (a.domain((c = b.map(Number)).map(e)), d) : c; }), (d.ticks = function (a) { return $e(c, a); }), (d.tickFormat = function (a, b) { return _e(c, a, b); }), (d.nice = function (a) { return d.domain(Ye(c, a)); }), (d.exponent = function (g) { return arguments.length ? ((e = ef((b = g))), (f = ef(1 / b)), a.domain(c.map(e)), d) : b; }), (d.copy = function () { return df(a.copy(), b, c); }), Xe(d, a) ); } function ef(a) { return function (b) { return 0 > b ? -Math.pow(-b, a) : Math.pow(b, a); }; } function ff(a, b) { function c(c) { return f[((e.get(c) || ("range" === b.t ? e.set(c, a.push(c)) : NaN)) - 1) % f.length]; } function d(b, c) { return hg.range(a.length).map(function (a) { return b + c * a; }); } var e, f, g; return ( (c.domain = function (d) { if (!arguments.length) return a; (a = []), (e = new j()); for (var f, g = -1, h = d.length; ++g < h; ) e.has((f = d[g])) || e.set(f, a.push(f)); return c[b.t].apply(c, b.a); }), (c.range = function (a) { return arguments.length ? ((f = a), (g = 0), (b = { t: "range", a: arguments }), c) : f; }), (c.rangePoints = function (e, h) { arguments.length < 2 && (h = 0); var i = e[0], j = e[1], k = a.length < 2 ? ((i = (i + j) / 2), 0) : (j - i) / (a.length - 1 + h); return (f = d(i + (k * h) / 2, k)), (g = 0), (b = { t: "rangePoints", a: arguments }), c; }), (c.rangeRoundPoints = function (e, h) { arguments.length < 2 && (h = 0); var i = e[0], j = e[1], k = a.length < 2 ? ((i = j = Math.round((i + j) / 2)), 0) : ((j - i) / (a.length - 1 + h)) | 0; return (f = d(i + Math.round((k * h) / 2 + (j - i - (a.length - 1 + h) * k) / 2), k)), (g = 0), (b = { t: "rangeRoundPoints", a: arguments }), c; }), (c.rangeBands = function (e, h, i) { arguments.length < 2 && (h = 0), arguments.length < 3 && (i = h); var j = e[1] < e[0], k = e[j - 0], l = e[1 - j], m = (l - k) / (a.length - h + 2 * i); return (f = d(k + m * i, m)), j && f.reverse(), (g = m * (1 - h)), (b = { t: "rangeBands", a: arguments }), c; }), (c.rangeRoundBands = function (e, h, i) { arguments.length < 2 && (h = 0), arguments.length < 3 && (i = h); var j = e[1] < e[0], k = e[j - 0], l = e[1 - j], m = Math.floor((l - k) / (a.length - h + 2 * i)); return (f = d(k + Math.round((l - k - (a.length - h) * m) / 2), m)), j && f.reverse(), (g = Math.round(m * (1 - h))), (b = { t: "rangeRoundBands", a: arguments }), c; }), (c.rangeBand = function () { return g; }), (c.rangeExtent = function () { return Qe(b.a[0]); }), (c.copy = function () { return ff(a, b); }), c.domain(a) ); } function gf(a, b) { function f() { var c = 0, d = b.length; for (h = []; ++c < d; ) h[c - 1] = hg.quantile(a, c / d); return g; } function g(a) { return isNaN((a = +a)) ? void 0 : b[hg.bisect(h, a)]; } var h; return ( (g.domain = function (b) { return arguments.length ? ((a = b.map(d).filter(e).sort(c)), f()) : a; }), (g.range = function (a) { return arguments.length ? ((b = a), f()) : b; }), (g.quantiles = function () { return h; }), (g.invertExtent = function (c) { return (c = b.indexOf(c)), 0 > c ? [NaN, NaN] : [c > 0 ? h[c - 1] : a[0], c < h.length ? h[c] : a[a.length - 1]]; }), (g.copy = function () { return gf(a, b); }), f() ); } function hf(a, b, c) { function d(b) { return c[Math.max(0, Math.min(g, Math.floor(f * (b - a))))]; } function e() { return (f = c.length / (b - a)), (g = c.length - 1), d; } var f, g; return ( (d.domain = function (c) { return arguments.length ? ((a = +c[0]), (b = +c[c.length - 1]), e()) : [a, b]; }), (d.range = function (a) { return arguments.length ? ((c = a), e()) : c; }), (d.invertExtent = function (b) { return (b = c.indexOf(b)), (b = 0 > b ? NaN : b / f + a), [b, b + 1 / f]; }), (d.copy = function () { return hf(a, b, c); }), e() ); } function jf(a, b) { function c(c) { return c >= c ? b[hg.bisect(a, c)] : void 0; } return ( (c.domain = function (b) { return arguments.length ? ((a = b), c) : a; }), (c.range = function (a) { return arguments.length ? ((b = a), c) : b; }), (c.invertExtent = function (c) { return (c = b.indexOf(c)), [a[c - 1], a[c]]; }), (c.copy = function () { return jf(a, b); }), c ); } function kf(a) { function b(a) { return +a; } return ( (b.invert = b), (b.domain = b.range = function (c) { return arguments.length ? ((a = c.map(b)), b) : a; }), (b.ticks = function (b) { return $e(a, b); }), (b.tickFormat = function (b, c) { return _e(a, b, c); }), (b.copy = function () { return kf(a); }), b ); } function lf() { return 0; } function mf(a) { return a.innerRadius; } function nf(a) { return a.outerRadius; } function of(a) { return a.startAngle; } function pf(a) { return a.endAngle; } function qf(a) { return a && a.padAngle; } function rf(a, b, c, d) { return (a - c) * b - (b - d) * a > 0 ? 0 : 1; } function sf(a, b, c, d, e) { var f = a[0] - b[0], g = a[1] - b[1], h = (e ? d : -d) / Math.sqrt(f * f + g * g), i = h * g, j = -h * f, k = a[0] + i, l = a[1] + j, m = b[0] + i, n = b[1] + j, o = (k + m) / 2, p = (l + n) / 2, q = m - k, r = n - l, s = q * q + r * r, t = c - d, u = k * n - m * l, v = (0 > r ? -1 : 1) * Math.sqrt(Math.max(0, t * t * s - u * u)), w = (u * r - q * v) / s, x = (-u * q - r * v) / s, y = (u * r + q * v) / s, z = (-u * q + r * v) / s, A = w - o, B = x - p, C = y - o, D = z - p; return ( A * A + B * B > C * C + D * D && ((w = y), (x = z)), [ [w - i, x - j], [(w * c) / t, (x * c) / t], ] ); } function tf(a) { function b(b) { function g() { j.push("M", f(a(k), h)); } for (var i, j = [], k = [], l = -1, m = b.length, n = Aa(c), o = Aa(d); ++l < m; ) e.call(this, (i = b[l]), l) ? k.push([+n.call(this, i, l), +o.call(this, i, l)]) : k.length && (g(), (k = [])); return k.length && g(), j.length ? j.join("") : null; } var c = Cc, d = Dc, e = Db, f = uf, g = f.key, h = 0.7; return ( (b.x = function (a) { return arguments.length ? ((c = a), b) : c; }), (b.y = function (a) { return arguments.length ? ((d = a), b) : d; }), (b.defined = function (a) { return arguments.length ? ((e = a), b) : e; }), (b.interpolate = function (a) { return arguments.length ? ((g = "function" == typeof a ? (f = a) : (f = Gi.get(a) || uf).key), b) : g; }), (b.tension = function (a) { return arguments.length ? ((h = a), b) : h; }), b ); } function uf(a) { return a.length > 1 ? a.join("L") : a + "Z"; } function vf(a) { return a.join("L") + "Z"; } function wf(a) { for (var b = 0, c = a.length, d = a[0], e = [d[0], ",", d[1]]; ++b < c; ) e.push("H", (d[0] + (d = a[b])[0]) / 2, "V", d[1]); return c > 1 && e.push("H", d[0]), e.join(""); } function xf(a) { for (var b = 0, c = a.length, d = a[0], e = [d[0], ",", d[1]]; ++b < c; ) e.push("V", (d = a[b])[1], "H", d[0]); return e.join(""); } function yf(a) { for (var b = 0, c = a.length, d = a[0], e = [d[0], ",", d[1]]; ++b < c; ) e.push("H", (d = a[b])[0], "V", d[1]); return e.join(""); } function zf(a, b) { return a.length < 4 ? uf(a) : a[1] + Cf(a.slice(1, -1), Df(a, b)); } function Af(a, b) { return a.length < 3 ? vf(a) : a[0] + Cf((a.push(a[0]), a), Df([a[a.length - 2]].concat(a, [a[1]]), b)); } function Bf(a, b) { return a.length < 3 ? uf(a) : a[0] + Cf(a, Df(a, b)); } function Cf(a, b) { if (b.length < 1 || (a.length != b.length && a.length != b.length + 2)) return uf(a); var c = a.length != b.length, d = "", e = a[0], f = a[1], g = b[0], h = g, i = 1; if ((c && ((d += "Q" + (f[0] - (2 * g[0]) / 3) + "," + (f[1] - (2 * g[1]) / 3) + "," + f[0] + "," + f[1]), (e = a[1]), (i = 2)), b.length > 1)) { (h = b[1]), (f = a[i]), i++, (d += "C" + (e[0] + g[0]) + "," + (e[1] + g[1]) + "," + (f[0] - h[0]) + "," + (f[1] - h[1]) + "," + f[0] + "," + f[1]); for (var j = 2; j < b.length; j++, i++) (f = a[i]), (h = b[j]), (d += "S" + (f[0] - h[0]) + "," + (f[1] - h[1]) + "," + f[0] + "," + f[1]); } if (c) { var k = a[i]; d += "Q" + (f[0] + (2 * h[0]) / 3) + "," + (f[1] + (2 * h[1]) / 3) + "," + k[0] + "," + k[1]; } return d; } function Df(a, b) { for (var c, d = [], e = (1 - b) / 2, f = a[0], g = a[1], h = 1, i = a.length; ++h < i; ) (c = f), (f = g), (g = a[h]), d.push([e * (g[0] - c[0]), e * (g[1] - c[1])]); return d; } function Ef(a) { if (a.length < 3) return uf(a); var b = 1, c = a.length, d = a[0], e = d[0], f = d[1], g = [e, e, e, (d = a[1])[0]], h = [f, f, f, d[1]], i = [e, ",", f, "L", If(Ji, g), ",", If(Ji, h)]; for (a.push(a[c - 1]); ++b <= c; ) (d = a[b]), g.shift(), g.push(d[0]), h.shift(), h.push(d[1]), Jf(i, g, h); return a.pop(), i.push("L", d), i.join(""); } function Ff(a) { if (a.length < 4) return uf(a); for (var b, c = [], d = -1, e = a.length, f = [0], g = [0]; ++d < 3; ) (b = a[d]), f.push(b[0]), g.push(b[1]); for (c.push(If(Ji, f) + "," + If(Ji, g)), --d; ++d < e; ) (b = a[d]), f.shift(), f.push(b[0]), g.shift(), g.push(b[1]), Jf(c, f, g); return c.join(""); } function Gf(a) { for (var b, c, d = -1, e = a.length, f = e + 4, g = [], h = []; ++d < 4; ) (c = a[d % e]), g.push(c[0]), h.push(c[1]); for (b = [If(Ji, g), ",", If(Ji, h)], --d; ++d < f; ) (c = a[d % e]), g.shift(), g.push(c[0]), h.shift(), h.push(c[1]), Jf(b, g, h); return b.join(""); } function Hf(a, b) { var c = a.length - 1; if (c) for (var d, e, f = a[0][0], g = a[0][1], h = a[c][0] - f, i = a[c][1] - g, j = -1; ++j <= c; ) (d = a[j]), (e = j / c), (d[0] = b * d[0] + (1 - b) * (f + e * h)), (d[1] = b * d[1] + (1 - b) * (g + e * i)); return Ef(a); } function If(a, b) { return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; } function Jf(a, b, c) { a.push("C", If(Hi, b), ",", If(Hi, c), ",", If(Ii, b), ",", If(Ii, c), ",", If(Ji, b), ",", If(Ji, c)); } function Kf(a, b) { return (b[1] - a[1]) / (b[0] - a[0]); } function Lf(a) { for (var b = 0, c = a.length - 1, d = [], e = a[0], f = a[1], g = (d[0] = Kf(e, f)); ++b < c; ) d[b] = (g + (g = Kf((e = f), (f = a[b + 1])))) / 2; return (d[b] = g), d; } function Mf(a) { for (var b, c, d, e, f = [], g = Lf(a), h = -1, i = a.length - 1; ++h < i; ) (b = Kf(a[h], a[h + 1])), tg(b) < Kg ? (g[h] = g[h + 1] = 0) : ((c = g[h] / b), (d = g[h + 1] / b), (e = c * c + d * d), e > 9 && ((e = (3 * b) / Math.sqrt(e)), (g[h] = e * c), (g[h + 1] = e * d))); for (h = -1; ++h <= i; ) (e = (a[Math.min(i, h + 1)][0] - a[Math.max(0, h - 1)][0]) / (6 * (1 + g[h] * g[h]))), f.push([e || 0, g[h] * e || 0]); return f; } function Nf(a) { return a.length < 3 ? uf(a) : a[0] + Cf(a, Mf(a)); } function Of(a) { for (var b, c, d, e = -1, f = a.length; ++e < f; ) (b = a[e]), (c = b[0]), (d = b[1] - Pg), (b[0] = c * Math.cos(d)), (b[1] = c * Math.sin(d)); return a; } function Pf(a) { function b(b) { function i() { p.push("M", h(a(r), l), k, j(a(q.reverse()), l), "Z"); } for ( var m, n, o, p = [], q = [], r = [], s = -1, t = b.length, u = Aa(c), v = Aa(e), w = c === d ? function () { return n; } : Aa(d), x = e === f ? function () { return o; } : Aa(f); ++s < t; ) g.call(this, (m = b[s]), s) ? (q.push([(n = +u.call(this, m, s)), (o = +v.call(this, m, s))]), r.push([+w.call(this, m, s), +x.call(this, m, s)])) : q.length && (i(), (q = []), (r = [])); return q.length && i(), p.length ? p.join("") : null; } var c = Cc, d = Cc, e = 0, f = Dc, g = Db, h = uf, i = h.key, j = h, k = "L", l = 0.7; return ( (b.x = function (a) { return arguments.length ? ((c = d = a), b) : d; }), (b.x0 = function (a) { return arguments.length ? ((c = a), b) : c; }), (b.x1 = function (a) { return arguments.length ? ((d = a), b) : d; }), (b.y = function (a) { return arguments.length ? ((e = f = a), b) : f; }), (b.y0 = function (a) { return arguments.length ? ((e = a), b) : e; }), (b.y1 = function (a) { return arguments.length ? ((f = a), b) : f; }), (b.defined = function (a) { return arguments.length ? ((g = a), b) : g; }), (b.interpolate = function (a) { return arguments.length ? ((i = "function" == typeof a ? (h = a) : (h = Gi.get(a) || uf).key), (j = h.reverse || h), (k = h.closed ? "M" : "L"), b) : i; }), (b.tension = function (a) { return arguments.length ? ((l = a), b) : l; }), b ); } function Qf(a) { return a.radius; } function Rf(a) { return [a.x, a.y]; } function Sf(a) { return function () { var b = a.apply(this, arguments), c = b[0], d = b[1] - Pg; return [c * Math.cos(d), c * Math.sin(d)]; }; } function Tf() { return 64; } function Uf() { return "circle"; } function Vf(a) { var b = Math.sqrt(a / Mg); return "M0," + b + "A" + b + "," + b + " 0 1,1 0," + -b + "A" + b + "," + b + " 0 1,1 0," + b + "Z"; } function Wf(a) { return function () { var b, c, d; (b = this[a]) && (d = b[(c = b.active)]) && ((d.timer.c = null), (d.timer.t = NaN), --b.count ? delete b[c] : delete this[a], (b.active += 0.5), d.event && d.event.interrupt.call(this, this.__data__, d.index)); }; } function Xf(a, b, c) { return yg(a, Qi), (a.namespace = b), (a.id = c), a; } function Yf(a, b, c, d) { var e = a.id, f = a.namespace; return R( a, "function" == typeof c ? function (a, g, h) { a[f][e].tween.set(b, d(c.call(a, a.__data__, g, h))); } : ((c = d(c)), function (a) { a[f][e].tween.set(b, c); }) ); } function Zf(a) { return ( null == a && (a = ""), function () { this.textContent = a; } ); } function $f(a) { return null == a ? "__transition__" : "__transition_" + a + "__"; } function _f(a, b, c, d, e) { function f(a) { var b = p.delay; return (k.t = b + i), a >= b ? g(a - b) : void (k.c = g); } function g(c) { var e = o.active, f = o[e]; f && ((f.timer.c = null), (f.timer.t = NaN), --o.count, delete o[e], f.event && f.event.interrupt.call(a, a.__data__, f.index)); for (var g in o) if (d > +g) { var j = o[g]; (j.timer.c = null), (j.timer.t = NaN), --o.count, delete o[g]; } (k.c = h), Fa( function () { return k.c && h(c || 1) && ((k.c = null), (k.t = NaN)), 1; }, 0, i ), (o.active = d), p.event && p.event.start.call(a, a.__data__, b), (n = []), p.tween.forEach(function (c, d) { (d = d.call(a, a.__data__, b)) && n.push(d); }), (m = p.ease), (l = p.duration); } function h(e) { for (var f = e / l, g = m(f), h = n.length; h > 0; ) n[--h].call(a, g); return f >= 1 ? (p.event && p.event.end.call(a, a.__data__, b), --o.count ? delete o[d] : delete a[c], 1) : void 0; } var i, k, l, m, n, o = a[c] || (a[c] = { active: 0, count: 0 }), p = o[d]; p || ((i = e.time), (k = Fa(f, 0, i)), (p = o[d] = { tween: new j(), time: i, timer: k, delay: e.delay, duration: e.duration, ease: e.ease, index: b }), (e = null), ++o.count); } function ag(a, b, c) { a.attr("transform", function (a) { var d = b(a); return "translate(" + (isFinite(d) ? d : c(a)) + ",0)"; }); } function bg(a, b, c) { a.attr("transform", function (a) { var d = b(a); return "translate(0," + (isFinite(d) ? d : c(a)) + ")"; }); } function cg(a) { return a.toISOString(); } function dg(a, b, c) { function d(b) { return a(b); } function e(a, c) { var d = a[1] - a[0], e = d / c, f = hg.bisect(Zi, e); return f == Zi.length ? [ b.year, Ze( a.map(function (a) { return a / 31536e6; }), c )[2], ] : f ? b[e / Zi[f - 1] < Zi[f] / e ? f - 1 : f] : [aj, Ze(a, c)[2]]; } return ( (d.invert = function (b) { return eg(a.invert(b)); }), (d.domain = function (b) { return arguments.length ? (a.domain(b), d) : a.domain().map(eg); }), (d.nice = function (a, b) { function c(c) { return !isNaN(c) && !a.range(c, eg(+c + 1), b).length; } var f = d.domain(), g = Qe(f), h = null == a ? e(g, 10) : "number" == typeof a && e(g, a); return ( h && ((a = h[0]), (b = h[1])), d.domain( Te( f, b > 1 ? { floor: function (b) { for (; c((b = a.floor(b))); ) b = eg(b - 1); return b; }, ceil: function (b) { for (; c((b = a.ceil(b))); ) b = eg(+b + 1); return b; }, } : a ) ) ); }), (d.ticks = function (a, b) { var c = Qe(d.domain()), f = null == a ? e(c, 10) : "number" == typeof a ? e(c, a) : !a.range && [{ range: a }, b]; return f && ((a = f[0]), (b = f[1])), a.range(c[0], eg(+c[1] + 1), 1 > b ? 1 : b); }), (d.tickFormat = function () { return c; }), (d.copy = function () { return dg(a.copy(), b, c); }), Xe(d, a) ); } function eg(a) { return new Date(a); } function fg(a) { return JSON.parse(a.responseText); } function gg(a) { var b = kg.createRange(); return b.selectNode(kg.body), b.createContextualFragment(a.responseText); } var hg = { version: "3.5.17" }, ig = [].slice, jg = function (a) { return ig.call(a); }, kg = this.document; if (kg) try { jg(kg.documentElement.childNodes)[0].nodeType; } catch (lg) { jg = function (a) { for (var b = a.length, c = new Array(b); b--; ) c[b] = a[b]; return c; }; } if ( (Date.now || (Date.now = function () { return +new Date(); }), kg) ) try { kg.createElement("DIV").style.setProperty("opacity", 0, ""); } catch (mg) { var ng = this.Element.prototype, og = ng.setAttribute, pg = ng.setAttributeNS, qg = this.CSSStyleDeclaration.prototype, rg = qg.setProperty; (ng.setAttribute = function (a, b) { og.call(this, a, b + ""); }), (ng.setAttributeNS = function (a, b, c) { pg.call(this, a, b, c + ""); }), (qg.setProperty = function (a, b, c) { rg.call(this, a, b + "", c); }); } (hg.ascending = c), (hg.descending = function (a, b) { return a > b ? -1 : b > a ? 1 : b >= a ? 0 : NaN; }), (hg.min = function (a, b) { var c, d, e = -1, f = a.length; if (1 === arguments.length) { for (; ++e < f; ) if (null != (d = a[e]) && d >= d) { c = d; break; } for (; ++e < f; ) null != (d = a[e]) && c > d && (c = d); } else { for (; ++e < f; ) if (null != (d = b.call(a, a[e], e)) && d >= d) { c = d; break; } for (; ++e < f; ) null != (d = b.call(a, a[e], e)) && c > d && (c = d); } return c; }), (hg.max = function (a, b) { var c, d, e = -1, f = a.length; if (1 === arguments.length) { for (; ++e < f; ) if (null != (d = a[e]) && d >= d) { c = d; break; } for (; ++e < f; ) null != (d = a[e]) && d > c && (c = d); } else { for (; ++e < f; ) if (null != (d = b.call(a, a[e], e)) && d >= d) { c = d; break; } for (; ++e < f; ) null != (d = b.call(a, a[e], e)) && d > c && (c = d); } return c; }), (hg.extent = function (a, b) { var c, d, e, f = -1, g = a.length; if (1 === arguments.length) { for (; ++f < g; ) if (null != (d = a[f]) && d >= d) { c = e = d; break; } for (; ++f < g; ) null != (d = a[f]) && (c > d && (c = d), d > e && (e = d)); } else { for (; ++f < g; ) if (null != (d = b.call(a, a[f], f)) && d >= d) { c = e = d; break; } for (; ++f < g; ) null != (d = b.call(a, a[f], f)) && (c > d && (c = d), d > e && (e = d)); } return [c, e]; }), (hg.sum = function (a, b) { var c, d = 0, f = a.length, g = -1; if (1 === arguments.length) for (; ++g < f; ) e((c = +a[g])) && (d += c); else for (; ++g < f; ) e((c = +b.call(a, a[g], g))) && (d += c); return d; }), (hg.mean = function (a, b) { var c, f = 0, g = a.length, h = -1, i = g; if (1 === arguments.length) for (; ++h < g; ) e((c = d(a[h]))) ? (f += c) : --i; else for (; ++h < g; ) e((c = d(b.call(a, a[h], h)))) ? (f += c) : --i; return i ? f / i : void 0; }), (hg.quantile = function (a, b) { var c = (a.length - 1) * b + 1, d = Math.floor(c), e = +a[d - 1], f = c - d; return f ? e + f * (a[d] - e) : e; }), (hg.median = function (a, b) { var f, g = [], h = a.length, i = -1; if (1 === arguments.length) for (; ++i < h; ) e((f = d(a[i]))) && g.push(f); else for (; ++i < h; ) e((f = d(b.call(a, a[i], i)))) && g.push(f); return g.length ? hg.quantile(g.sort(c), 0.5) : void 0; }), (hg.variance = function (a, b) { var c, f, g = a.length, h = 0, i = 0, j = -1, k = 0; if (1 === arguments.length) for (; ++j < g; ) e((c = d(a[j]))) && ((f = c - h), (h += f / ++k), (i += f * (c - h))); else for (; ++j < g; ) e((c = d(b.call(a, a[j], j)))) && ((f = c - h), (h += f / ++k), (i += f * (c - h))); return k > 1 ? i / (k - 1) : void 0; }), (hg.deviation = function () { var a = hg.variance.apply(this, arguments); return a ? Math.sqrt(a) : a; }); var sg = f(c); (hg.bisectLeft = sg.left), (hg.bisect = hg.bisectRight = sg.right), (hg.bisector = function (a) { return f( 1 === a.length ? function (b, d) { return c(a(b), d); } : a ); }), (hg.shuffle = function (a, b, c) { (f = arguments.length) < 3 && ((c = a.length), 2 > f && (b = 0)); for (var d, e, f = c - b; f; ) (e = (Math.random() * f--) | 0), (d = a[f + b]), (a[f + b] = a[e + b]), (a[e + b] = d); return a; }), (hg.permute = function (a, b) { for (var c = b.length, d = new Array(c); c--; ) d[c] = a[b[c]]; return d; }), (hg.pairs = function (a) { for (var b, c = 0, d = a.length - 1, e = a[0], f = new Array(0 > d ? 0 : d); d > c; ) f[c] = [(b = e), (e = a[++c])]; return f; }), (hg.transpose = function (a) { if (!(e = a.length)) return []; for (var b = -1, c = hg.min(a, g), d = new Array(c); ++b < c; ) for (var e, f = -1, h = (d[b] = new Array(e)); ++f < e; ) h[f] = a[f][b]; return d; }), (hg.zip = function () { return hg.transpose(arguments); }), (hg.keys = function (a) { var b = []; for (var c in a) b.push(c); return b; }), (hg.values = function (a) { var b = []; for (var c in a) b.push(a[c]); return b; }), (hg.entries = function (a) { var b = []; for (var c in a) b.push({ key: c, value: a[c] }); return b; }), (hg.merge = function (a) { for (var b, c, d, e = a.length, f = -1, g = 0; ++f < e; ) g += a[f].length; for (c = new Array(g); --e >= 0; ) for (d = a[e], b = d.length; --b >= 0; ) c[--g] = d[b]; return c; }); var tg = Math.abs; (hg.range = function (a, b, c) { if ((arguments.length < 3 && ((c = 1), arguments.length < 2 && ((b = a), (a = 0))), (b - a) / c === 1 / 0)) throw new Error("infinite range"); var d, e = [], f = h(tg(c)), g = -1; if (((a *= f), (b *= f), (c *= f), 0 > c)) for (; (d = a + c * ++g) > b; ) e.push(d / f); else for (; (d = a + c * ++g) < b; ) e.push(d / f); return e; }), (hg.map = function (a, b) { var c = new j(); if (a instanceof j) a.forEach(function (a, b) { c.set(a, b); }); else if (Array.isArray(a)) { var d, e = -1, f = a.length; if (1 === arguments.length) for (; ++e < f; ) c.set(e, a[e]); else for (; ++e < f; ) c.set(b.call(a, (d = a[e]), e), d); } else for (var g in a) c.set(g, a[g]); return c; }); var ug = "__proto__", vg = "\x00"; i(j, { has: m, get: function (a) { return this._[k(a)]; }, set: function (a, b) { return (this._[k(a)] = b); }, remove: n, keys: o, values: function () { var a = []; for (var b in this._) a.push(this._[b]); return a; }, entries: function () { var a = []; for (var b in this._) a.push({ key: l(b), value: this._[b] }); return a; }, size: p, empty: q, forEach: function (a) { for (var b in this._) a.call(this, l(b), this._[b]); }, }), (hg.nest = function () { function a(b, g, h) { if (h >= f.length) return d ? d.call(e, g) : c ? g.sort(c) : g; for (var i, k, l, m, n = -1, o = g.length, p = f[h++], q = new j(); ++n < o; ) (m = q.get((i = p((k = g[n]))))) ? m.push(k) : q.set(i, [k]); return ( b ? ((k = b()), (l = function (c, d) { k.set(c, a(b, d, h)); })) : ((k = {}), (l = function (c, d) { k[c] = a(b, d, h); })), q.forEach(l), k ); } function b(a, c) { if (c >= f.length) return a; var d = [], e = g[c++]; return ( a.forEach(function (a, e) { d.push({ key: a, values: b(e, c) }); }), e ? d.sort(function (a, b) { return e(a.key, b.key); }) : d ); } var c, d, e = {}, f = [], g = []; return ( (e.map = function (b, c) { return a(c, b, 0); }), (e.entries = function (c) { return b(a(hg.map, c, 0), 0); }), (e.key = function (a) { return f.push(a), e; }), (e.sortKeys = function (a) { return (g[f.length - 1] = a), e; }), (e.sortValues = function (a) { return (c = a), e; }), (e.rollup = function (a) { return (d = a), e; }), e ); }), (hg.set = function (a) { var b = new r(); if (a) for (var c = 0, d = a.length; d > c; ++c) b.add(a[c]); return b; }), i(r, { has: m, add: function (a) { return (this._[k((a += ""))] = !0), a; }, remove: n, values: o, size: p, empty: q, forEach: function (a) { for (var b in this._) a.call(this, l(b)); }, }), (hg.behavior = {}), (hg.rebind = function (a, b) { for (var c, d = 1, e = arguments.length; ++d < e; ) a[(c = arguments[d])] = t(a, b, b[c]); return a; }); var wg = ["webkit", "ms", "moz", "Moz", "o", "O"]; (hg.dispatch = function () { for (var a = new w(), b = -1, c = arguments.length; ++b < c; ) a[arguments[b]] = x(a); return a; }), (w.prototype.on = function (a, b) { var c = a.indexOf("."), d = ""; if ((c >= 0 && ((d = a.slice(c + 1)), (a = a.slice(0, c))), a)) return arguments.length < 2 ? this[a].on(d) : this[a].on(d, b); if (2 === arguments.length) { if (null == b) for (a in this) this.hasOwnProperty(a) && this[a].on(d, null); return this; } }), (hg.event = null), (hg.requote = function (a) { return a.replace(xg, "\\$&"); }); var xg = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, yg = {}.__proto__ ? function (a, b) { a.__proto__ = b; } : function (a, b) { for (var c in b) a[c] = b[c]; }, zg = function (a, b) { return b.querySelector(a); }, Ag = function (a, b) { return b.querySelectorAll(a); }, Bg = function (a, b) { var c = a.matches || a[u(a, "matchesSelector")]; return (Bg = function (a, b) { return c.call(a, b); })(a, b); }; "function" == typeof Sizzle && ((zg = function (a, b) { return Sizzle(a, b)[0] || null; }), (Ag = Sizzle), (Bg = Sizzle.matchesSelector)), (hg.selection = function () { return hg.select(kg.documentElement); }); var Cg = (hg.selection.prototype = []); (Cg.select = function (a) { var b, c, d, e, f = []; a = C(a); for (var g = -1, h = this.length; ++g < h; ) { f.push((b = [])), (b.parentNode = (d = this[g]).parentNode); for (var i = -1, j = d.length; ++i < j; ) (e = d[i]) ? (b.push((c = a.call(e, e.__data__, i, g))), c && "__data__" in e && (c.__data__ = e.__data__)) : b.push(null); } return B(f); }), (Cg.selectAll = function (a) { var b, c, d = []; a = D(a); for (var e = -1, f = this.length; ++e < f; ) for (var g = this[e], h = -1, i = g.length; ++h < i; ) (c = g[h]) && (d.push((b = jg(a.call(c, c.__data__, h, e)))), (b.parentNode = c)); return B(d); }); var Dg = "http://www.w3.org/1999/xhtml", Eg = { svg: "http://www.w3.org/2000/svg", xhtml: Dg, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" }; (hg.ns = { prefix: Eg, qualify: function (a) { var b = a.indexOf(":"), c = a; return b >= 0 && "xmlns" !== (c = a.slice(0, b)) && (a = a.slice(b + 1)), Eg.hasOwnProperty(c) ? { space: Eg[c], local: a } : a; }, }), (Cg.attr = function (a, b) { if (arguments.length < 2) { if ("string" == typeof a) { var c = this.node(); return (a = hg.ns.qualify(a)), a.local ? c.getAttributeNS(a.space, a.local) : c.getAttribute(a); } for (b in a) this.each(E(b, a[b])); return this; } return this.each(E(a, b)); }), (Cg.classed = function (a, b) { if (arguments.length < 2) { if ("string" == typeof a) { var c = this.node(), d = (a = H(a)).length, e = -1; if ((b = c.classList)) { for (; ++e < d; ) if (!b.contains(a[e])) return !1; } else for (b = c.getAttribute("class"); ++e < d; ) if (!G(a[e]).test(b)) return !1; return !0; } for (b in a) this.each(I(b, a[b])); return this; } return this.each(I(a, b)); }), (Cg.style = function (a, c, d) { var e = arguments.length; if (3 > e) { if ("string" != typeof a) { 2 > e && (c = ""); for (d in a) this.each(K(d, a[d], c)); return this; } if (2 > e) { var f = this.node(); return b(f).getComputedStyle(f, null).getPropertyValue(a); } d = ""; } return this.each(K(a, c, d)); }), (Cg.property = function (a, b) { if (arguments.length < 2) { if ("string" == typeof a) return this.node()[a]; for (b in a) this.each(L(b, a[b])); return this; } return this.each(L(a, b)); }), (Cg.text = function (a) { return arguments.length ? this.each( "function" == typeof a ? function () { var b = a.apply(this, arguments); this.textContent = null == b ? "" : b; } : null == a ? function () { this.textContent = ""; } : function () { this.textContent = a; } ) : this.node().textContent; }), (Cg.html = function (a) { return arguments.length ? this.each( "function" == typeof a ? function () { var b = a.apply(this, arguments); this.innerHTML = null == b ? "" : b; } : null == a ? function () { this.innerHTML = ""; } : function () { this.innerHTML = a; } ) : this.node().innerHTML; }), (Cg.append = function (a) { return ( (a = M(a)), this.select(function () { return this.appendChild(a.apply(this, arguments)); }) ); }), (Cg.insert = function (a, b) { return ( (a = M(a)), (b = C(b)), this.select(function () { return this.insertBefore(a.apply(this, arguments), b.apply(this, arguments) || null); }) ); }), (Cg.remove = function () { return this.each(N); }), (Cg.data = function (a, b) { function c(a, c) { var d, e, f, g = a.length, l = c.length, m = Math.min(g, l), n = new Array(l), o = new Array(l), p = new Array(g); if (b) { var q, r = new j(), s = new Array(g); for (d = -1; ++d < g; ) (e = a[d]) && (r.has((q = b.call(e, e.__data__, d))) ? (p[d] = e) : r.set(q, e), (s[d] = q)); for (d = -1; ++d < l; ) (e = r.get((q = b.call(c, (f = c[d]), d)))) ? e !== !0 && ((n[d] = e), (e.__data__ = f)) : (o[d] = O(f)), r.set(q, !0); for (d = -1; ++d < g; ) d in s && r.get(s[d]) !== !0 && (p[d] = a[d]); } else { for (d = -1; ++d < m; ) (e = a[d]), (f = c[d]), e ? ((e.__data__ = f), (n[d] = e)) : (o[d] = O(f)); for (; l > d; ++d) o[d] = O(c[d]); for (; g > d; ++d) p[d] = a[d]; } (o.update = n), (o.parentNode = n.parentNode = p.parentNode = a.parentNode), h.push(o), i.push(n), k.push(p); } var d, e, f = -1, g = this.length; if (!arguments.length) { for (a = new Array((g = (d = this[0]).length)); ++f < g; ) (e = d[f]) && (a[f] = e.__data__); return a; } var h = S([]), i = B([]), k = B([]); if ("function" == typeof a) for (; ++f < g; ) c((d = this[f]), a.call(d, d.parentNode.__data__, f)); else for (; ++f < g; ) c((d = this[f]), a); return ( (i.enter = function () { return h; }), (i.exit = function () { return k; }), i ); }), (Cg.datum = function (a) { return arguments.length ? this.property("__data__", a) : this.property("__data__"); }), (Cg.filter = function (a) { var b, c, d, e = []; "function" != typeof a && (a = P(a)); for (var f = 0, g = this.length; g > f; f++) { e.push((b = [])), (b.parentNode = (c = this[f]).parentNode); for (var h = 0, i = c.length; i > h; h++) (d = c[h]) && a.call(d, d.__data__, h, f) && b.push(d); } return B(e); }), (Cg.order = function () { for (var a = -1, b = this.length; ++a < b; ) for (var c, d = this[a], e = d.length - 1, f = d[e]; --e >= 0; ) (c = d[e]) && (f && f !== c.nextSibling && f.parentNode.insertBefore(c, f), (f = c)); return this; }), (Cg.sort = function (a) { a = Q.apply(this, arguments); for (var b = -1, c = this.length; ++b < c; ) this[b].sort(a); return this.order(); }), (Cg.each = function (a) { return R(this, function (b, c, d) { a.call(b, b.__data__, c, d); }); }), (Cg.call = function (a) { var b = jg(arguments); return a.apply((b[0] = this), b), this; }), (Cg.empty = function () { return !this.node(); }), (Cg.node = function () { for (var a = 0, b = this.length; b > a; a++) for (var c = this[a], d = 0, e = c.length; e > d; d++) { var f = c[d]; if (f) return f; } return null; }), (Cg.size = function () { var a = 0; return ( R(this, function () { ++a; }), a ); }); var Fg = []; (hg.selection.enter = S), (hg.selection.enter.prototype = Fg), (Fg.append = Cg.append), (Fg.empty = Cg.empty), (Fg.node = Cg.node), (Fg.call = Cg.call), (Fg.size = Cg.size), (Fg.select = function (a) { for (var b, c, d, e, f, g = [], h = -1, i = this.length; ++h < i; ) { (d = (e = this[h]).update), g.push((b = [])), (b.parentNode = e.parentNode); for (var j = -1, k = e.length; ++j < k; ) (f = e[j]) ? (b.push((d[j] = c = a.call(e.parentNode, f.__data__, j, h))), (c.__data__ = f.__data__)) : b.push(null); } return B(g); }), (Fg.insert = function (a, b) { return arguments.length < 2 && (b = T(this)), Cg.insert.call(this, a, b); }), (hg.select = function (b) { var c; return "string" == typeof b ? ((c = [zg(b, kg)]), (c.parentNode = kg.documentElement)) : ((c = [b]), (c.parentNode = a(b))), B([c]); }), (hg.selectAll = function (a) { var b; return "string" == typeof a ? ((b = jg(Ag(a, kg))), (b.parentNode = kg.documentElement)) : ((b = jg(a)), (b.parentNode = null)), B([b]); }), (Cg.on = function (a, b, c) { var d = arguments.length; if (3 > d) { if ("string" != typeof a) { 2 > d && (b = !1); for (c in a) this.each(U(c, a[c], b)); return this; } if (2 > d) return (d = this.node()["__on" + a]) && d._; c = !1; } return this.each(U(a, b, c)); }); var Gg = hg.map({ mouseenter: "mouseover", mouseleave: "mouseout" }); kg && Gg.forEach(function (a) { "on" + a in kg && Gg.remove(a); }); var Hg, Ig = 0; hg.mouse = function (a) { return Y(a, z()); }; var Jg = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; (hg.touch = function (a, b, c) { if ((arguments.length < 3 && ((c = b), (b = z().changedTouches)), b)) for (var d, e = 0, f = b.length; f > e; ++e) if ((d = b[e]).identifier === c) return Y(a, d); }), (hg.behavior.drag = function () { function a() { this.on("mousedown.drag", f).on("touchstart.drag", g); } function c(a, b, c, f, g) { return function () { function h() { var a, c, d = b(m, p); d && ((a = d[0] - t[0]), (c = d[1] - t[1]), (o |= a | c), (t = d), n({ type: "drag", x: d[0] + j[0], y: d[1] + j[1], dx: a, dy: c })); } function i() { b(m, p) && (r.on(f + q, null).on(g + q, null), s(o), n({ type: "dragend" })); } var j, k = this, l = hg.event.target.correspondingElement || hg.event.target, m = k.parentNode, n = d.of(k, arguments), o = 0, p = a(), q = ".drag" + (null == p ? "" : "-" + p), r = hg .select(c(l)) .on(f + q, h) .on(g + q, i), s = X(l), t = b(m, p); e ? ((j = e.apply(k, arguments)), (j = [j.x - t[0], j.y - t[1]])) : (j = [0, 0]), n({ type: "dragstart" }); }; } var d = A(a, "drag", "dragstart", "dragend"), e = null, f = c(v, hg.mouse, b, "mousemove", "mouseup"), g = c(Z, hg.touch, s, "touchmove", "touchend"); return ( (a.origin = function (b) { return arguments.length ? ((e = b), a) : e; }), hg.rebind(a, d, "on") ); }), (hg.touches = function (a, b) { return ( arguments.length < 2 && (b = z().touches), b ? jg(b).map(function (b) { var c = Y(a, b); return (c.identifier = b.identifier), c; }) : [] ); }); var Kg = 1e-6, Lg = Kg * Kg, Mg = Math.PI, Ng = 2 * Mg, Og = Ng - Kg, Pg = Mg / 2, Qg = Mg / 180, Rg = 180 / Mg, Sg = Math.SQRT2, Tg = 2, Ug = 4; (hg.interpolateZoom = function (a, b) { var c, d, e = a[0], f = a[1], g = a[2], h = b[0], i = b[1], j = b[2], k = h - e, l = i - f, m = k * k + l * l; if (Lg > m) (d = Math.log(j / g) / Sg), (c = function (a) { return [e + a * k, f + a * l, g * Math.exp(Sg * a * d)]; }); else { var n = Math.sqrt(m), o = (j * j - g * g + Ug * m) / (2 * g * Tg * n), p = (j * j - g * g - Ug * m) / (2 * j * Tg * n), q = Math.log(Math.sqrt(o * o + 1) - o), r = Math.log(Math.sqrt(p * p + 1) - p); (d = (r - q) / Sg), (c = function (a) { var b = a * d, c = da(q), h = (g / (Tg * n)) * (c * ea(Sg * b + q) - ca(q)); return [e + h * k, f + h * l, (g * c) / da(Sg * b + q)]; }); } return (c.duration = 1e3 * d), c; }), (hg.behavior.zoom = function () { function a(a) { a.on(F, l) .on(Wg + ".zoom", n) .on("dblclick.zoom", o) .on(I, m); } function c(a) { return [(a[0] - z.x) / z.k, (a[1] - z.y) / z.k]; } function d(a) { return [a[0] * z.k + z.x, a[1] * z.k + z.y]; } function e(a) { z.k = Math.max(C[0], Math.min(C[1], a)); } function f(a, b) { (b = d(b)), (z.x += a[0] - b[0]), (z.y += a[1] - b[1]); } function g(b, c, d, g) { (b.__chart__ = { x: z.x, y: z.y, k: z.k }), e(Math.pow(2, g)), f((q = c), d), (b = hg.select(b)), D > 0 && (b = b.transition().duration(D)), b.call(a.event); } function h() { v && v.domain( u .range() .map(function (a) { return (a - z.x) / z.k; }) .map(u.invert) ), x && x.domain( w .range() .map(function (a) { return (a - z.y) / z.k; }) .map(w.invert) ); } function i(a) { E++ || a({ type: "zoomstart" }); } function j(a) { h(), a({ type: "zoom", scale: z.k, translate: [z.x, z.y] }); } function k(a) { --E || (a({ type: "zoomend" }), (q = null)); } function l() { function a() { (h = 1), f(hg.mouse(e), m), j(g); } function d() { l.on(G, null).on(H, null), n(h), k(g); } var e = this, g = J.of(e, arguments), h = 0, l = hg.select(b(e)).on(G, a).on(H, d), m = c(hg.mouse(e)), n = X(e); Pi.call(e), i(g); } function m() { function a() { var a = hg.touches(n); return ( (h = z.k), a.forEach(function (a) { a.identifier in p && (p[a.identifier] = c(a)); }), a ); } function b() { var b = hg.event.target; hg.select(b).on(s, d).on(u, g), v.push(b); for (var c = hg.event.changedTouches, e = 0, f = c.length; f > e; ++e) p[c[e].identifier] = null; var h = a(), i = Date.now(); if (1 === h.length) t = i; else if (h.length > 1) { var j = h[0], k = h[1], l = j[0] - k[0], m = j[1] - k[1]; q = l * l + m * m; } } function d() { var a, b, c, d, g = hg.touches(n); Pi.call(n); for (var i = 0, k = g.length; k > i; ++i, d = null) if (((c = g[i]), (d = p[c.identifier]))) { if (b) break; (a = c), (b = d); } if (d) { var l = (l = c[0] - a[0]) * l + (l = c[1] - a[1]) * l, m = q && Math.sqrt(l / q); (a = [(a[0] + c[0]) / 2, (a[1] + c[1]) / 2]), (b = [(b[0] + d[0]) / 2, (b[1] + d[1]) / 2]), e(m * h); } (t = null), f(a, b), j(o); } function g() { if (hg.event.touches.length) { for (var b = hg.event.changedTouches, c = 0, d = b.length; d > c; ++c) delete p[b[c].identifier]; for (var e in p) return void a(); } hg.selectAll(v).on(r, null), w.on(F, l).on(I, m), x(), k(o); } var h, n = this, o = J.of(n, arguments), p = {}, q = 0, r = ".zoom-" + hg.event.changedTouches[0].identifier, s = "touchmove" + r, u = "touchend" + r, v = [], w = hg.select(n), x = X(n); b(), i(o), w.on(F, null).on(I, b); } function n() { var a = J.of(this, arguments); s ? clearTimeout(s) : (Pi.call(this), (p = c((q = r || hg.mouse(this)))), i(a)), (s = setTimeout(function () { (s = null), k(a); }, 50)), y(), e(Math.pow(2, 0.002 * Vg()) * z.k), f(q, p), j(a); } function o() { var a = hg.mouse(this), b = Math.log(z.k) / Math.LN2; g(this, a, c(a), hg.event.shiftKey ? Math.ceil(b) - 1 : Math.floor(b) + 1); } var p, q, r, s, t, u, v, w, x, z = { x: 0, y: 0, k: 1 }, B = [960, 500], C = Xg, D = 250, E = 0, F = "mousedown.zoom", G = "mousemove.zoom", H = "mouseup.zoom", I = "touchstart.zoom", J = A(a, "zoomstart", "zoom", "zoomend"); return ( Wg || (Wg = "onwheel" in kg ? ((Vg = function () { return -hg.event.deltaY * (hg.event.deltaMode ? 120 : 1); }), "wheel") : "onmousewheel" in kg ? ((Vg = function () { return hg.event.wheelDelta; }), "mousewheel") : ((Vg = function () { return -hg.event.detail; }), "MozMousePixelScroll")), (a.event = function (a) { a.each(function () { var a = J.of(this, arguments), b = z; Ni ? hg .select(this) .transition() .each("start.zoom", function () { (z = this.__chart__ || { x: 0, y: 0, k: 1 }), i(a); }) .tween("zoom:zoom", function () { var c = B[0], d = B[1], e = q ? q[0] : c / 2, f = q ? q[1] : d / 2, g = hg.interpolateZoom([(e - z.x) / z.k, (f - z.y) / z.k, c / z.k], [(e - b.x) / b.k, (f - b.y) / b.k, c / b.k]); return function (b) { var d = g(b), h = c / d[2]; (this.__chart__ = z = { x: e - d[0] * h, y: f - d[1] * h, k: h }), j(a); }; }) .each("interrupt.zoom", function () { k(a); }) .each("end.zoom", function () { k(a); }) : ((this.__chart__ = z), i(a), j(a), k(a)); }); }), (a.translate = function (b) { return arguments.length ? ((z = { x: +b[0], y: +b[1], k: z.k }), h(), a) : [z.x, z.y]; }), (a.scale = function (b) { return arguments.length ? ((z = { x: z.x, y: z.y, k: null }), e(+b), h(), a) : z.k; }), (a.scaleExtent = function (b) { return arguments.length ? ((C = null == b ? Xg : [+b[0], +b[1]]), a) : C; }), (a.center = function (b) { return arguments.length ? ((r = b && [+b[0], +b[1]]), a) : r; }), (a.size = function (b) { return arguments.length ? ((B = b && [+b[0], +b[1]]), a) : B; }), (a.duration = function (b) { return arguments.length ? ((D = +b), a) : D; }), (a.x = function (b) { return arguments.length ? ((v = b), (u = b.copy()), (z = { x: 0, y: 0, k: 1 }), a) : v; }), (a.y = function (b) { return arguments.length ? ((x = b), (w = b.copy()), (z = { x: 0, y: 0, k: 1 }), a) : x; }), hg.rebind(a, J, "on") ); }); var Vg, Wg, Xg = [0, 1 / 0]; (hg.color = ga), (ga.prototype.toString = function () { return this.rgb() + ""; }), (hg.hsl = ha); var Yg = (ha.prototype = new ga()); (Yg.brighter = function (a) { return (a = Math.pow(0.7, arguments.length ? a : 1)), new ha(this.h, this.s, this.l / a); }), (Yg.darker = function (a) { return (a = Math.pow(0.7, arguments.length ? a : 1)), new ha(this.h, this.s, a * this.l); }), (Yg.rgb = function () { return ia(this.h, this.s, this.l); }), (hg.hcl = ja); var Zg = (ja.prototype = new ga()); (Zg.brighter = function (a) { return new ja(this.h, this.c, Math.min(100, this.l + $g * (arguments.length ? a : 1))); }), (Zg.darker = function (a) { return new ja(this.h, this.c, Math.max(0, this.l - $g * (arguments.length ? a : 1))); }), (Zg.rgb = function () { return ka(this.h, this.c, this.l).rgb(); }), (hg.lab = la); var $g = 18, _g = 0.95047, ah = 1, bh = 1.08883, ch = (la.prototype = new ga()); (ch.brighter = function (a) { return new la(Math.min(100, this.l + $g * (arguments.length ? a : 1)), this.a, this.b); }), (ch.darker = function (a) { return new la(Math.max(0, this.l - $g * (arguments.length ? a : 1)), this.a, this.b); }), (ch.rgb = function () { return ma(this.l, this.a, this.b); }), (hg.rgb = ra); var dh = (ra.prototype = new ga()); (dh.brighter = function (a) { a = Math.pow(0.7, arguments.length ? a : 1); var b = this.r, c = this.g, d = this.b, e = 30; return b || c || d ? (b && e > b && (b = e), c && e > c && (c = e), d && e > d && (d = e), new ra(Math.min(255, b / a), Math.min(255, c / a), Math.min(255, d / a))) : new ra(e, e, e); }), (dh.darker = function (a) { return (a = Math.pow(0.7, arguments.length ? a : 1)), new ra(a * this.r, a * this.g, a * this.b); }), (dh.hsl = function () { return wa(this.r, this.g, this.b); }), (dh.toString = function () { return "#" + ua(this.r) + ua(this.g) + ua(this.b); }); var eh = hg.map({ aliceblue: 15792383, antiquewhite: 16444375, aqua: 65535, aquamarine: 8388564, azure: 15794175, beige: 16119260, bisque: 16770244, black: 0, blanchedalmond: 16772045, blue: 255, blueviolet: 9055202, brown: 10824234, burlywood: 14596231, cadetblue: 6266528, chartreuse: 8388352, chocolate: 13789470, coral: 16744272, cornflowerblue: 6591981, cornsilk: 16775388, crimson: 14423100, cyan: 65535, darkblue: 139, darkcyan: 35723, darkgoldenrod: 12092939, darkgray: 11119017, darkgreen: 25600, darkgrey: 11119017, darkkhaki: 12433259, darkmagenta: 9109643, darkolivegreen: 5597999, darkorange: 16747520, darkorchid: 10040012, darkred: 9109504, darksalmon: 15308410, darkseagreen: 9419919, darkslateblue: 4734347, darkslategray: 3100495, darkslategrey: 3100495, darkturquoise: 52945, darkviolet: 9699539, deeppink: 16716947, deepskyblue: 49151, dimgray: 6908265, dimgrey: 6908265, dodgerblue: 2003199, firebrick: 11674146, floralwhite: 16775920, forestgreen: 2263842, fuchsia: 16711935, gainsboro: 14474460, ghostwhite: 16316671, gold: 16766720, goldenrod: 14329120, gray: 8421504, green: 32768, greenyellow: 11403055, grey: 8421504, honeydew: 15794160, hotpink: 16738740, indianred: 13458524, indigo: 4915330, ivory: 16777200, khaki: 15787660, lavender: 15132410, lavenderblush: 16773365, lawngreen: 8190976, lemonchiffon: 16775885, lightblue: 11393254, lightcoral: 15761536, lightcyan: 14745599, lightgoldenrodyellow: 16448210, lightgray: 13882323, lightgreen: 9498256, lightgrey: 13882323, lightpink: 16758465, lightsalmon: 16752762, lightseagreen: 2142890, lightskyblue: 8900346, lightslategray: 7833753, lightslategrey: 7833753, lightsteelblue: 11584734, lightyellow: 16777184, lime: 65280, limegreen: 3329330, linen: 16445670, magenta: 16711935, maroon: 8388608, mediumaquamarine: 6737322, mediumblue: 205, mediumorchid: 12211667, mediumpurple: 9662683, mediumseagreen: 3978097, mediumslateblue: 8087790, mediumspringgreen: 64154, mediumturquoise: 4772300, mediumvioletred: 13047173, midnightblue: 1644912, mintcream: 16121850, mistyrose: 16770273, moccasin: 16770229, navajowhite: 16768685, navy: 128, oldlace: 16643558, olive: 8421376, olivedrab: 7048739, orange: 16753920, orangered: 16729344, orchid: 14315734, palegoldenrod: 15657130, palegreen: 10025880, paleturquoise: 11529966, palevioletred: 14381203, papayawhip: 16773077, peachpuff: 16767673, peru: 13468991, pink: 16761035, plum: 14524637, powderblue: 11591910, purple: 8388736, rebeccapurple: 6697881, red: 16711680, rosybrown: 12357519, royalblue: 4286945, saddlebrown: 9127187, salmon: 16416882, sandybrown: 16032864, seagreen: 3050327, seashell: 16774638, sienna: 10506797, silver: 12632256, skyblue: 8900331, slateblue: 6970061, slategray: 7372944, slategrey: 7372944, snow: 16775930, springgreen: 65407, steelblue: 4620980, tan: 13808780, teal: 32896, thistle: 14204888, tomato: 16737095, turquoise: 4251856, violet: 15631086, wheat: 16113331, white: 16777215, whitesmoke: 16119285, yellow: 16776960, yellowgreen: 10145074, }); eh.forEach(function (a, b) { eh.set(a, sa(b)); }), (hg.functor = Aa), (hg.xhr = Ba(s)), (hg.dsv = function (a, b) { function c(a, c, f) { arguments.length < 3 && ((f = c), (c = null)); var g = Ca(a, b, null == c ? d : e(c), f); return ( (g.row = function (a) { return arguments.length ? g.response(null == (c = a) ? d : e(a)) : c; }), g ); } function d(a) { return c.parse(a.responseText); } function e(a) { return function (b) { return c.parse(b.responseText, a); }; } function f(b) { return b.map(g).join(a); } function g(a) { return h.test(a) ? '"' + a.replace(/\"/g, '""') + '"' : a; } var h = new RegExp('["' + a + "\n]"), i = a.charCodeAt(0); return ( (c.parse = function (a, b) { var d; return c.parseRows(a, function (a, c) { if (d) return d(a, c - 1); var e = new Function( "d", "return {" + a .map(function (a, b) { return JSON.stringify(a) + ": d[" + b + "]"; }) .join(",") + "}" ); d = b ? function (a, c) { return b(e(a), c); } : e; }); }), (c.parseRows = function (a, b) { function c() { if (k >= j) return g; if (e) return (e = !1), f; var b = k; if (34 === a.charCodeAt(b)) { for (var c = b; c++ < j; ) if (34 === a.charCodeAt(c)) { if (34 !== a.charCodeAt(c + 1)) break; ++c; } k = c + 2; var d = a.charCodeAt(c + 1); return 13 === d ? ((e = !0), 10 === a.charCodeAt(c + 2) && ++k) : 10 === d && (e = !0), a.slice(b + 1, c).replace(/""/g, '"'); } for (; j > k; ) { var d = a.charCodeAt(k++), h = 1; if (10 === d) e = !0; else if (13 === d) (e = !0), 10 === a.charCodeAt(k) && (++k, ++h); else if (d !== i) continue; return a.slice(b, k - h); } return a.slice(b); } for (var d, e, f = {}, g = {}, h = [], j = a.length, k = 0, l = 0; (d = c()) !== g; ) { for (var m = []; d !== f && d !== g; ) m.push(d), (d = c()); (b && null == (m = b(m, l++))) || h.push(m); } return h; }), (c.format = function (b) { if (Array.isArray(b[0])) return c.formatRows(b); var d = new r(), e = []; return ( b.forEach(function (a) { for (var b in a) d.has(b) || e.push(d.add(b)); }), [e.map(g).join(a)] .concat( b.map(function (b) { return e .map(function (a) { return g(b[a]); }) .join(a); }) ) .join("\n") ); }), (c.formatRows = function (a) { return a.map(f).join("\n"); }), c ); }), (hg.csv = hg.dsv(",", "text/csv")), (hg.tsv = hg.dsv(" ", "text/tab-separated-values")); var fh, gh, hh, ih, jh = this[u(this, "requestAnimationFrame")] || function (a) { setTimeout(a, 17); }; (hg.timer = function () { Fa.apply(this, arguments); }), (hg.timer.flush = function () { Ha(), Ia(); }), (hg.round = function (a, b) { return b ? Math.round(a * (b = Math.pow(10, b))) / b : Math.round(a); }); var kh = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"].map(Ka); hg.formatPrefix = function (a, b) { var c = 0; return (a = +a) && (0 > a && (a *= -1), b && (a = hg.round(a, Ja(a, b))), (c = 1 + Math.floor(1e-12 + Math.log(a) / Math.LN10)), (c = Math.max(-24, Math.min(24, 3 * Math.floor((c - 1) / 3))))), kh[8 + c / 3]; }; var lh = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i, mh = hg.map({ b: function (a) { return a.toString(2); }, c: function (a) { return String.fromCharCode(a); }, o: function (a) { return a.toString(8); }, x: function (a) { return a.toString(16); }, X: function (a) { return a.toString(16).toUpperCase(); }, g: function (a, b) { return a.toPrecision(b); }, e: function (a, b) { return a.toExponential(b); }, f: function (a, b) { return a.toFixed(b); }, r: function (a, b) { return (a = hg.round(a, Ja(a, b))).toFixed(Math.max(0, Math.min(20, Ja(a * (1 + 1e-15), b)))); }, }), nh = (hg.time = {}), oh = Date; Na.prototype = { getDate: function () { return this._.getUTCDate(); }, getDay: function () { return this._.getUTCDay(); }, getFullYear: function () { return this._.getUTCFullYear(); }, getHours: function () { return this._.getUTCHours(); }, getMilliseconds: function () { return this._.getUTCMilliseconds(); }, getMinutes: function () { return this._.getUTCMinutes(); }, getMonth: function () { return this._.getUTCMonth(); }, getSeconds: function () { return this._.getUTCSeconds(); }, getTime: function () { return this._.getTime(); }, getTimezoneOffset: function () { return 0; }, valueOf: function () { return this._.valueOf(); }, setDate: function () { ph.setUTCDate.apply(this._, arguments); }, setDay: function () { ph.setUTCDay.apply(this._, arguments); }, setFullYear: function () { ph.setUTCFullYear.apply(this._, arguments); }, setHours: function () { ph.setUTCHours.apply(this._, arguments); }, setMilliseconds: function () { ph.setUTCMilliseconds.apply(this._, arguments); }, setMinutes: function () { ph.setUTCMinutes.apply(this._, arguments); }, setMonth: function () { ph.setUTCMonth.apply(this._, arguments); }, setSeconds: function () { ph.setUTCSeconds.apply(this._, arguments); }, setTime: function () { ph.setTime.apply(this._, arguments); }, }; var ph = Date.prototype; (nh.year = Oa( function (a) { return (a = nh.day(a)), a.setMonth(0, 1), a; }, function (a, b) { a.setFullYear(a.getFullYear() + b); }, function (a) { return a.getFullYear(); } )), (nh.years = nh.year.range), (nh.years.utc = nh.year.utc.range), (nh.day = Oa( function (a) { var b = new oh(2e3, 0); return b.setFullYear(a.getFullYear(), a.getMonth(), a.getDate()), b; }, function (a, b) { a.setDate(a.getDate() + b); }, function (a) { return a.getDate() - 1; } )), (nh.days = nh.day.range), (nh.days.utc = nh.day.utc.range), (nh.dayOfYear = function (a) { var b = nh.year(a); return Math.floor((a - b - 6e4 * (a.getTimezoneOffset() - b.getTimezoneOffset())) / 864e5); }), ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].forEach(function (a, b) { b = 7 - b; var c = (nh[a] = Oa( function (a) { return (a = nh.day(a)).setDate(a.getDate() - ((a.getDay() + b) % 7)), a; }, function (a, b) { a.setDate(a.getDate() + 7 * Math.floor(b)); }, function (a) { var c = nh.year(a).getDay(); return Math.floor((nh.dayOfYear(a) + ((c + b) % 7)) / 7) - (c !== b); } )); (nh[a + "s"] = c.range), (nh[a + "s"].utc = c.utc.range), (nh[a + "OfYear"] = function (a) { var c = nh.year(a).getDay(); return Math.floor((nh.dayOfYear(a) + ((c + b) % 7)) / 7); }); }), (nh.week = nh.sunday), (nh.weeks = nh.sunday.range), (nh.weeks.utc = nh.sunday.utc.range), (nh.weekOfYear = nh.sundayOfYear); var qh = { "-": "", _: " ", 0: "0" }, rh = /^\s*\d+/, sh = /^%/; hg.locale = function (a) { return { numberFormat: La(a), timeFormat: Qa(a) }; }; var th = hg.locale({ decimal: ".", thousands: ",", grouping: [3], currency: ["$", ""], dateTime: "%a %b %e %X %Y", date: "%m/%d/%Y", time: "%H:%M:%S", periods: ["AM", "PM"], days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], }); (hg.format = th.numberFormat), (hg.geo = {}), (jb.prototype = { s: 0, t: 0, add: function (a) { kb(a, this.t, uh), kb(uh.s, this.s, this), this.s ? (this.t += uh.t) : (this.s = uh.t); }, reset: function () { this.s = this.t = 0; }, valueOf: function () { return this.s; }, }); var uh = new jb(); hg.geo.stream = function (a, b) { a && vh.hasOwnProperty(a.type) ? vh[a.type](a, b) : lb(a, b); }; var vh = { Feature: function (a, b) { lb(a.geometry, b); }, FeatureCollection: function (a, b) { for (var c = a.features, d = -1, e = c.length; ++d < e; ) lb(c[d].geometry, b); }, }, wh = { Sphere: function (a, b) { b.sphere(); }, Point: function (a, b) { (a = a.coordinates), b.point(a[0], a[1], a[2]); }, MultiPoint: function (a, b) { for (var c = a.coordinates, d = -1, e = c.length; ++d < e; ) (a = c[d]), b.point(a[0], a[1], a[2]); }, LineString: function (a, b) { mb(a.coordinates, b, 0); }, MultiLineString: function (a, b) { for (var c = a.coordinates, d = -1, e = c.length; ++d < e; ) mb(c[d], b, 0); }, Polygon: function (a, b) { nb(a.coordinates, b); }, MultiPolygon: function (a, b) { for (var c = a.coordinates, d = -1, e = c.length; ++d < e; ) nb(c[d], b); }, GeometryCollection: function (a, b) { for (var c = a.geometries, d = -1, e = c.length; ++d < e; ) lb(c[d], b); }, }; hg.geo.area = function (a) { return (xh = 0), hg.geo.stream(a, zh), xh; }; var xh, yh = new jb(), zh = { sphere: function () { xh += 4 * Mg; }, point: v, lineStart: v, lineEnd: v, polygonStart: function () { yh.reset(), (zh.lineStart = ob); }, polygonEnd: function () { var a = 2 * yh; (xh += 0 > a ? 4 * Mg + a : a), (zh.lineStart = zh.lineEnd = zh.point = v); }, }; (hg.geo.bounds = (function () { function a(a, b) { t.push((u = [(k = a), (m = a)])), l > b && (l = b), b > n && (n = b); } function b(b, c) { var d = pb([b * Qg, c * Qg]); if (r) { var e = rb(r, d), f = [e[1], -e[0], 0], g = rb(f, e); ub(g), (g = vb(g)); var i = b - o, j = i > 0 ? 1 : -1, p = g[0] * Rg * j, q = tg(i) > 180; if (q ^ (p > j * o && j * b > p)) { var s = g[1] * Rg; s > n && (n = s); } else if (((p = ((p + 360) % 360) - 180), q ^ (p > j * o && j * b > p))) { var s = -g[1] * Rg; l > s && (l = s); } else l > c && (l = c), c > n && (n = c); q ? (o > b ? h(k, b) > h(k, m) && (m = b) : h(b, m) > h(k, m) && (k = b)) : m >= k ? (k > b && (k = b), b > m && (m = b)) : b > o ? h(k, b) > h(k, m) && (m = b) : h(b, m) > h(k, m) && (k = b); } else a(b, c); (r = d), (o = b); } function c() { v.point = b; } function d() { (u[0] = k), (u[1] = m), (v.point = a), (r = null); } function e(a, c) { if (r) { var d = a - o; s += tg(d) > 180 ? d + (d > 0 ? 360 : -360) : d; } else (p = a), (q = c); zh.point(a, c), b(a, c); } function f() { zh.lineStart(); } function g() { e(p, q), zh.lineEnd(), tg(s) > Kg && (k = -(m = 180)), (u[0] = k), (u[1] = m), (r = null); } function h(a, b) { return (b -= a) < 0 ? b + 360 : b; } function i(a, b) { return a[0] - b[0]; } function j(a, b) { return b[0] <= b[1] ? b[0] <= a && a <= b[1] : a < b[0] || b[1] < a; } var k, l, m, n, o, p, q, r, s, t, u, v = { point: a, lineStart: c, lineEnd: d, polygonStart: function () { (v.point = e), (v.lineStart = f), (v.lineEnd = g), (s = 0), zh.polygonStart(); }, polygonEnd: function () { zh.polygonEnd(), (v.point = a), (v.lineStart = c), (v.lineEnd = d), 0 > yh ? ((k = -(m = 180)), (l = -(n = 90))) : s > Kg ? (n = 90) : -Kg > s && (l = -90), (u[0] = k), (u[1] = m); }, }; return function (a) { (n = m = -(k = l = 1 / 0)), (t = []), hg.geo.stream(a, v); var b = t.length; if (b) { t.sort(i); for (var c, d = 1, e = t[0], f = [e]; b > d; ++d) (c = t[d]), j(c[0], e) || j(c[1], e) ? (h(e[0], c[1]) > h(e[0], e[1]) && (e[1] = c[1]), h(c[0], e[1]) > h(e[0], e[1]) && (e[0] = c[0])) : f.push((e = c)); for (var g, c, o = -(1 / 0), b = f.length - 1, d = 0, e = f[b]; b >= d; e = c, ++d) (c = f[d]), (g = h(e[1], c[0])) > o && ((o = g), (k = c[0]), (m = e[1])); } return ( (t = u = null), k === 1 / 0 || l === 1 / 0 ? [ [NaN, NaN], [NaN, NaN], ] : [ [k, l], [m, n], ] ); }; })()), (hg.geo.centroid = function (a) { (Ah = Bh = Ch = Dh = Eh = Fh = Gh = Hh = Ih = Jh = Kh = 0), hg.geo.stream(a, Lh); var b = Ih, c = Jh, d = Kh, e = b * b + c * c + d * d; return Lg > e && ((b = Fh), (c = Gh), (d = Hh), Kg > Bh && ((b = Ch), (c = Dh), (d = Eh)), (e = b * b + c * c + d * d), Lg > e) ? [NaN, NaN] : [Math.atan2(c, b) * Rg, ba(d / Math.sqrt(e)) * Rg]; }); var Ah, Bh, Ch, Dh, Eh, Fh, Gh, Hh, Ih, Jh, Kh, Lh = { sphere: v, point: xb, lineStart: zb, lineEnd: Ab, polygonStart: function () { Lh.lineStart = Bb; }, polygonEnd: function () { Lh.lineStart = zb; }, }, Mh = Hb(Db, Lb, Nb, [-Mg, -Mg / 2]), Nh = 1e9; (hg.geo.clipExtent = function () { var a, b, c, d, e, f, g = { stream: function (a) { return e && (e.valid = !1), (e = f(a)), (e.valid = !0), e; }, extent: function (h) { return arguments.length ? ((f = Rb((a = +h[0][0]), (b = +h[0][1]), (c = +h[1][0]), (d = +h[1][1]))), e && ((e.valid = !1), (e = null)), g) : [ [a, b], [c, d], ]; }, }; return g.extent([ [0, 0], [960, 500], ]); }), ((hg.geo.conicEqualArea = function () { return Sb(Tb); }).raw = Tb), (hg.geo.albers = function () { return hg.geo.conicEqualArea().rotate([96, 0]).center([-0.6, 38.7]).parallels([29.5, 45.5]).scale(1070); }), (hg.geo.albersUsa = function () { function a(a) { var f = a[0], g = a[1]; return (b = null), c(f, g), b || (d(f, g), b) || e(f, g), b; } var b, c, d, e, f = hg.geo.albers(), g = hg.geo.conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), h = hg.geo.conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), i = { point: function (a, c) { b = [a, c]; }, }; return ( (a.invert = function (a) { var b = f.scale(), c = f.translate(), d = (a[0] - c[0]) / b, e = (a[1] - c[1]) / b; return (e >= 0.12 && 0.234 > e && d >= -0.425 && -0.214 > d ? g : e >= 0.166 && 0.234 > e && d >= -0.214 && -0.115 > d ? h : f).invert(a); }), (a.stream = function (a) { var b = f.stream(a), c = g.stream(a), d = h.stream(a); return { point: function (a, e) { b.point(a, e), c.point(a, e), d.point(a, e); }, sphere: function () { b.sphere(), c.sphere(), d.sphere(); }, lineStart: function () { b.lineStart(), c.lineStart(), d.lineStart(); }, lineEnd: function () { b.lineEnd(), c.lineEnd(), d.lineEnd(); }, polygonStart: function () { b.polygonStart(), c.polygonStart(), d.polygonStart(); }, polygonEnd: function () { b.polygonEnd(), c.polygonEnd(), d.polygonEnd(); }, }; }), (a.precision = function (b) { return arguments.length ? (f.precision(b), g.precision(b), h.precision(b), a) : f.precision(); }), (a.scale = function (b) { return arguments.length ? (f.scale(b), g.scale(0.35 * b), h.scale(b), a.translate(f.translate())) : f.scale(); }), (a.translate = function (b) { if (!arguments.length) return f.translate(); var j = f.scale(), k = +b[0], l = +b[1]; return ( (c = f .translate(b) .clipExtent([ [k - 0.455 * j, l - 0.238 * j], [k + 0.455 * j, l + 0.238 * j], ]) .stream(i).point), (d = g .translate([k - 0.307 * j, l + 0.201 * j]) .clipExtent([ [k - 0.425 * j + Kg, l + 0.12 * j + Kg], [k - 0.214 * j - Kg, l + 0.234 * j - Kg], ]) .stream(i).point), (e = h .translate([k - 0.205 * j, l + 0.212 * j]) .clipExtent([ [k - 0.214 * j + Kg, l + 0.166 * j + Kg], [k - 0.115 * j - Kg, l + 0.234 * j - Kg], ]) .stream(i).point), a ); }), a.scale(1070) ); }); var Oh, Ph, Qh, Rh, Sh, Th, Uh = { point: v, lineStart: v, lineEnd: v, polygonStart: function () { (Ph = 0), (Uh.lineStart = Ub); }, polygonEnd: function () { (Uh.lineStart = Uh.lineEnd = Uh.point = v), (Oh += tg(Ph / 2)); }, }, Vh = { point: Vb, lineStart: v, lineEnd: v, polygonStart: v, polygonEnd: v }, Wh = { point: Yb, lineStart: Zb, lineEnd: $b, polygonStart: function () { Wh.lineStart = _b; }, polygonEnd: function () { (Wh.point = Yb), (Wh.lineStart = Zb), (Wh.lineEnd = $b); }, }; (hg.geo.path = function () { function a(a) { return a && ("function" == typeof h && f.pointRadius(+h.apply(this, arguments)), (g && g.valid) || (g = e(f)), hg.geo.stream(a, g)), f.result(); } function b() { return (g = null), a; } var c, d, e, f, g, h = 4.5; return ( (a.area = function (a) { return (Oh = 0), hg.geo.stream(a, e(Uh)), Oh; }), (a.centroid = function (a) { return (Ch = Dh = Eh = Fh = Gh = Hh = Ih = Jh = Kh = 0), hg.geo.stream(a, e(Wh)), Kh ? [Ih / Kh, Jh / Kh] : Hh ? [Fh / Hh, Gh / Hh] : Eh ? [Ch / Eh, Dh / Eh] : [NaN, NaN]; }), (a.bounds = function (a) { return ( (Sh = Th = -(Qh = Rh = 1 / 0)), hg.geo.stream(a, e(Vh)), [ [Qh, Rh], [Sh, Th], ] ); }), (a.projection = function (a) { return arguments.length ? ((e = (c = a) ? a.stream || cc(a) : s), b()) : c; }), (a.context = function (a) { return arguments.length ? ((f = null == (d = a) ? new Wb() : new ac(a)), "function" != typeof h && f.pointRadius(h), b()) : d; }), (a.pointRadius = function (b) { return arguments.length ? ((h = "function" == typeof b ? b : (f.pointRadius(+b), +b)), a) : h; }), a.projection(hg.geo.albersUsa()).context(null) ); }), (hg.geo.transform = function (a) { return { stream: function (b) { var c = new dc(b); for (var d in a) c[d] = a[d]; return c; }, }; }), (dc.prototype = { point: function (a, b) { this.stream.point(a, b); }, sphere: function () { this.stream.sphere(); }, lineStart: function () { this.stream.lineStart(); }, lineEnd: function () { this.stream.lineEnd(); }, polygonStart: function () { this.stream.polygonStart(); }, polygonEnd: function () { this.stream.polygonEnd(); }, }), (hg.geo.projection = fc), (hg.geo.projectionMutator = gc), ((hg.geo.equirectangular = function () { return fc(ic); }).raw = ic.invert = ic), (hg.geo.rotation = function (a) { function b(b) { return (b = a(b[0] * Qg, b[1] * Qg)), (b[0] *= Rg), (b[1] *= Rg), b; } return ( (a = kc((a[0] % 360) * Qg, a[1] * Qg, a.length > 2 ? a[2] * Qg : 0)), (b.invert = function (b) { return (b = a.invert(b[0] * Qg, b[1] * Qg)), (b[0] *= Rg), (b[1] *= Rg), b; }), b ); }), (jc.invert = ic), (hg.geo.circle = function () { function a() { var a = "function" == typeof d ? d.apply(this, arguments) : d, b = kc(-a[0] * Qg, -a[1] * Qg, 0).invert, e = []; return ( c(null, null, 1, { point: function (a, c) { e.push((a = b(a, c))), (a[0] *= Rg), (a[1] *= Rg); }, }), { type: "Polygon", coordinates: [e] } ); } var b, c, d = [0, 0], e = 6; return ( (a.origin = function (b) { return arguments.length ? ((d = b), a) : d; }), (a.angle = function (d) { return arguments.length ? ((c = oc((b = +d) * Qg, e * Qg)), a) : b; }), (a.precision = function (d) { return arguments.length ? ((c = oc(b * Qg, (e = +d) * Qg)), a) : e; }), a.angle(90) ); }), (hg.geo.distance = function (a, b) { var c, d = (b[0] - a[0]) * Qg, e = a[1] * Qg, f = b[1] * Qg, g = Math.sin(d), h = Math.cos(d), i = Math.sin(e), j = Math.cos(e), k = Math.sin(f), l = Math.cos(f); return Math.atan2(Math.sqrt((c = l * g) * c + (c = j * k - i * l * h) * c), i * k + j * l * h); }), (hg.geo.graticule = function () { function a() { return { type: "MultiLineString", coordinates: b() }; } function b() { return hg .range(Math.ceil(f / q) * q, e, q) .map(m) .concat(hg.range(Math.ceil(j / r) * r, i, r).map(n)) .concat( hg .range(Math.ceil(d / o) * o, c, o) .filter(function (a) { return tg(a % q) > Kg; }) .map(k) ) .concat( hg .range(Math.ceil(h / p) * p, g, p) .filter(function (a) { return tg(a % r) > Kg; }) .map(l) ); } var c, d, e, f, g, h, i, j, k, l, m, n, o = 10, p = o, q = 90, r = 360, s = 2.5; return ( (a.lines = function () { return b().map(function (a) { return { type: "LineString", coordinates: a }; }); }), (a.outline = function () { return { type: "Polygon", coordinates: [m(f).concat(n(i).slice(1), m(e).reverse().slice(1), n(j).reverse().slice(1))] }; }), (a.extent = function (b) { return arguments.length ? a.majorExtent(b).minorExtent(b) : a.minorExtent(); }), (a.majorExtent = function (b) { return arguments.length ? ((f = +b[0][0]), (e = +b[1][0]), (j = +b[0][1]), (i = +b[1][1]), f > e && ((b = f), (f = e), (e = b)), j > i && ((b = j), (j = i), (i = b)), a.precision(s)) : [ [f, j], [e, i], ]; }), (a.minorExtent = function (b) { return arguments.length ? ((d = +b[0][0]), (c = +b[1][0]), (h = +b[0][1]), (g = +b[1][1]), d > c && ((b = d), (d = c), (c = b)), h > g && ((b = h), (h = g), (g = b)), a.precision(s)) : [ [d, h], [c, g], ]; }), (a.step = function (b) { return arguments.length ? a.majorStep(b).minorStep(b) : a.minorStep(); }), (a.majorStep = function (b) { return arguments.length ? ((q = +b[0]), (r = +b[1]), a) : [q, r]; }), (a.minorStep = function (b) { return arguments.length ? ((o = +b[0]), (p = +b[1]), a) : [o, p]; }), (a.precision = function (b) { return arguments.length ? ((s = +b), (k = qc(h, g, 90)), (l = rc(d, c, s)), (m = qc(j, i, 90)), (n = rc(f, e, s)), a) : s; }), a .majorExtent([ [-180, -90 + Kg], [180, 90 - Kg], ]) .minorExtent([ [-180, -80 - Kg], [180, 80 + Kg], ]) ); }), (hg.geo.greatArc = function () { function a() { return { type: "LineString", coordinates: [b || d.apply(this, arguments), c || e.apply(this, arguments)] }; } var b, c, d = sc, e = tc; return ( (a.distance = function () { return hg.geo.distance(b || d.apply(this, arguments), c || e.apply(this, arguments)); }), (a.source = function (c) { return arguments.length ? ((d = c), (b = "function" == typeof c ? null : c), a) : d; }), (a.target = function (b) { return arguments.length ? ((e = b), (c = "function" == typeof b ? null : b), a) : e; }), (a.precision = function () { return arguments.length ? a : 0; }), a ); }), (hg.geo.interpolate = function (a, b) { return uc(a[0] * Qg, a[1] * Qg, b[0] * Qg, b[1] * Qg); }), (hg.geo.length = function (a) { return (Xh = 0), hg.geo.stream(a, Yh), Xh; }); var Xh, Yh = { sphere: v, point: v, lineStart: vc, lineEnd: v, polygonStart: v, polygonEnd: v }, Zh = wc( function (a) { return Math.sqrt(2 / (1 + a)); }, function (a) { return 2 * Math.asin(a / 2); } ); (hg.geo.azimuthalEqualArea = function () { return fc(Zh); }).raw = Zh; var $h = wc(function (a) { var b = Math.acos(a); return b && b / Math.sin(b); }, s); ((hg.geo.azimuthalEquidistant = function () { return fc($h); }).raw = $h), ((hg.geo.conicConformal = function () { return Sb(xc); }).raw = xc), ((hg.geo.conicEquidistant = function () { return Sb(yc); }).raw = yc); var _h = wc(function (a) { return 1 / a; }, Math.atan); ((hg.geo.gnomonic = function () { return fc(_h); }).raw = _h), (zc.invert = function (a, b) { return [a, 2 * Math.atan(Math.exp(b)) - Pg]; }), ((hg.geo.mercator = function () { return Ac(zc); }).raw = zc); var ai = wc(function () { return 1; }, Math.asin); (hg.geo.orthographic = function () { return fc(ai); }).raw = ai; var bi = wc( function (a) { return 1 / (1 + a); }, function (a) { return 2 * Math.atan(a); } ); ((hg.geo.stereographic = function () { return fc(bi); }).raw = bi), (Bc.invert = function (a, b) { return [-b, 2 * Math.atan(Math.exp(a)) - Pg]; }), ((hg.geo.transverseMercator = function () { var a = Ac(Bc), b = a.center, c = a.rotate; return ( (a.center = function (a) { return a ? b([-a[1], a[0]]) : ((a = b()), [a[1], -a[0]]); }), (a.rotate = function (a) { return a ? c([a[0], a[1], a.length > 2 ? a[2] + 90 : 90]) : ((a = c()), [a[0], a[1], a[2] - 90]); }), c([0, 0, 90]) ); }).raw = Bc), (hg.geom = {}), (hg.geom.hull = function (a) { function b(a) { if (a.length < 3) return []; var b, e = Aa(c), f = Aa(d), g = a.length, h = [], i = []; for (b = 0; g > b; b++) h.push([+e.call(this, a[b], b), +f.call(this, a[b], b), b]); for (h.sort(Fc), b = 0; g > b; b++) i.push([h[b][0], -h[b][1]]); var j = Ec(h), k = Ec(i), l = k[0] === j[0], m = k[k.length - 1] === j[j.length - 1], n = []; for (b = j.length - 1; b >= 0; --b) n.push(a[h[j[b]][2]]); for (b = +l; b < k.length - m; ++b) n.push(a[h[k[b]][2]]); return n; } var c = Cc, d = Dc; return arguments.length ? b(a) : ((b.x = function (a) { return arguments.length ? ((c = a), b) : c; }), (b.y = function (a) { return arguments.length ? ((d = a), b) : d; }), b); }), (hg.geom.polygon = function (a) { return yg(a, ci), a; }); var ci = (hg.geom.polygon.prototype = []); (ci.area = function () { for (var a, b = -1, c = this.length, d = this[c - 1], e = 0; ++b < c; ) (a = d), (d = this[b]), (e += a[1] * d[0] - a[0] * d[1]); return 0.5 * e; }), (ci.centroid = function (a) { var b, c, d = -1, e = this.length, f = 0, g = 0, h = this[e - 1]; for (arguments.length || (a = -1 / (6 * this.area())); ++d < e; ) (b = h), (h = this[d]), (c = b[0] * h[1] - h[0] * b[1]), (f += (b[0] + h[0]) * c), (g += (b[1] + h[1]) * c); return [f * a, g * a]; }), (ci.clip = function (a) { for (var b, c, d, e, f, g, h = Ic(a), i = -1, j = this.length - Ic(this), k = this[j - 1]; ++i < j; ) { for (b = a.slice(), a.length = 0, e = this[i], f = b[(d = b.length - h) - 1], c = -1; ++c < d; ) (g = b[c]), Gc(g, k, e) ? (Gc(f, k, e) || a.push(Hc(f, g, k, e)), a.push(g)) : Gc(f, k, e) && a.push(Hc(f, g, k, e)), (f = g); h && a.push(a[0]), (k = e); } return a; }); var di, ei, fi, gi, hi, ii = [], ji = []; (Qc.prototype.prepare = function () { for (var a, b = this.edges, c = b.length; c--; ) (a = b[c].edge), (a.b && a.a) || b.splice(c, 1); return b.sort(Sc), b.length; }), (ad.prototype = { start: function () { return this.edge.l === this.site ? this.edge.a : this.edge.b; }, end: function () { return this.edge.l === this.site ? this.edge.b : this.edge.a; }, }), (bd.prototype = { insert: function (a, b) { var c, d, e; if (a) { if (((b.P = a), (b.N = a.N), a.N && (a.N.P = b), (a.N = b), a.R)) { for (a = a.R; a.L; ) a = a.L; a.L = b; } else a.R = b; c = a; } else this._ ? ((a = fd(this._)), (b.P = null), (b.N = a), (a.P = a.L = b), (c = a)) : ((b.P = b.N = null), (this._ = b), (c = null)); for (b.L = b.R = null, b.U = c, b.C = !0, a = b; c && c.C; ) (d = c.U), c === d.L ? ((e = d.R), e && e.C ? ((c.C = e.C = !1), (d.C = !0), (a = d)) : (a === c.R && (dd(this, c), (a = c), (c = a.U)), (c.C = !1), (d.C = !0), ed(this, d))) : ((e = d.L), e && e.C ? ((c.C = e.C = !1), (d.C = !0), (a = d)) : (a === c.L && (ed(this, c), (a = c), (c = a.U)), (c.C = !1), (d.C = !0), dd(this, d))), (c = a.U); this._.C = !1; }, remove: function (a) { a.N && (a.N.P = a.P), a.P && (a.P.N = a.N), (a.N = a.P = null); var b, c, d, e = a.U, f = a.L, g = a.R; if ( ((c = f ? (g ? fd(g) : f) : g), e ? (e.L === a ? (e.L = c) : (e.R = c)) : (this._ = c), f && g ? ((d = c.C), (c.C = a.C), (c.L = f), (f.U = c), c !== g ? ((e = c.U), (c.U = a.U), (a = c.R), (e.L = a), (c.R = g), (g.U = c)) : ((c.U = e), (e = c), (a = c.R))) : ((d = a.C), (a = c)), a && (a.U = e), !d) ) { if (a && a.C) return void (a.C = !1); do { if (a === this._) break; if (a === e.L) { if (((b = e.R), b.C && ((b.C = !1), (e.C = !0), dd(this, e), (b = e.R)), (b.L && b.L.C) || (b.R && b.R.C))) { (b.R && b.R.C) || ((b.L.C = !1), (b.C = !0), ed(this, b), (b = e.R)), (b.C = e.C), (e.C = b.R.C = !1), dd(this, e), (a = this._); break; } } else if (((b = e.L), b.C && ((b.C = !1), (e.C = !0), ed(this, e), (b = e.L)), (b.L && b.L.C) || (b.R && b.R.C))) { (b.L && b.L.C) || ((b.R.C = !1), (b.C = !0), dd(this, b), (b = e.L)), (b.C = e.C), (e.C = b.L.C = !1), ed(this, e), (a = this._); break; } (b.C = !0), (a = e), (e = e.U); } while (!a.C); a && (a.C = !1); } }, }), (hg.geom.voronoi = function (a) { function b(a) { var b = new Array(a.length), d = h[0][0], e = h[0][1], f = h[1][0], g = h[1][1]; return ( gd(c(a), h).cells.forEach(function (c, h) { var i = c.edges, j = c.site, k = (b[h] = i.length ? i.map(function (a) { var b = a.start(); return [b.x, b.y]; }) : j.x >= d && j.x <= f && j.y >= e && j.y <= g ? [ [d, g], [f, g], [f, e], [d, e], ] : []); k.point = a[h]; }), b ); } function c(a) { return a.map(function (a, b) { return { x: Math.round(f(a, b) / Kg) * Kg, y: Math.round(g(a, b) / Kg) * Kg, i: b }; }); } var d = Cc, e = Dc, f = d, g = e, h = ki; return a ? b(a) : ((b.links = function (a) { return gd(c(a)) .edges.filter(function (a) { return a.l && a.r; }) .map(function (b) { return { source: a[b.l.i], target: a[b.r.i] }; }); }), (b.triangles = function (a) { var b = []; return ( gd(c(a)).cells.forEach(function (c, d) { for (var e, f, g = c.site, h = c.edges.sort(Sc), i = -1, j = h.length, k = h[j - 1].edge, l = k.l === g ? k.r : k.l; ++i < j; ) (e = k), (f = l), (k = h[i].edge), (l = k.l === g ? k.r : k.l), d < f.i && d < l.i && id(g, f, l) < 0 && b.push([a[d], a[f.i], a[l.i]]); }), b ); }), (b.x = function (a) { return arguments.length ? ((f = Aa((d = a))), b) : d; }), (b.y = function (a) { return arguments.length ? ((g = Aa((e = a))), b) : e; }), (b.clipExtent = function (a) { return arguments.length ? ((h = null == a ? ki : a), b) : h === ki ? null : h; }), (b.size = function (a) { return arguments.length ? b.clipExtent(a && [[0, 0], a]) : h === ki ? null : h && h[1]; }), b); }); var ki = [ [-1e6, -1e6], [1e6, 1e6], ]; (hg.geom.delaunay = function (a) { return hg.geom.voronoi().triangles(a); }), (hg.geom.quadtree = function (a, b, c, d, e) { function f(a) { function f(a, b, c, d, e, f, g, h) { if (!isNaN(c) && !isNaN(d)) if (a.leaf) { var i = a.x, k = a.y; if (null != i) if (tg(i - c) + tg(k - d) < 0.01) j(a, b, c, d, e, f, g, h); else { var l = a.point; (a.x = a.y = a.point = null), j(a, l, i, k, e, f, g, h), j(a, b, c, d, e, f, g, h); } else (a.x = c), (a.y = d), (a.point = b); } else j(a, b, c, d, e, f, g, h); } function j(a, b, c, d, e, g, h, i) { var j = 0.5 * (e + h), k = 0.5 * (g + i), l = c >= j, m = d >= k, n = (m << 1) | l; (a.leaf = !1), (a = a.nodes[n] || (a.nodes[n] = ld())), l ? (e = j) : (h = j), m ? (g = k) : (i = k), f(a, b, c, d, e, g, h, i); } var k, l, m, n, o, p, q, r, s, t = Aa(h), u = Aa(i); if (null != b) (p = b), (q = c), (r = d), (s = e); else if (((r = s = -(p = q = 1 / 0)), (l = []), (m = []), (o = a.length), g)) for (n = 0; o > n; ++n) (k = a[n]), k.x < p && (p = k.x), k.y < q && (q = k.y), k.x > r && (r = k.x), k.y > s && (s = k.y), l.push(k.x), m.push(k.y); else for (n = 0; o > n; ++n) { var v = +t((k = a[n]), n), w = +u(k, n); p > v && (p = v), q > w && (q = w), v > r && (r = v), w > s && (s = w), l.push(v), m.push(w); } var x = r - p, y = s - q; x > y ? (s = q + x) : (r = p + y); var z = ld(); if ( ((z.add = function (a) { f(z, a, +t(a, ++n), +u(a, n), p, q, r, s); }), (z.visit = function (a) { md(a, z, p, q, r, s); }), (z.find = function (a) { return nd(z, a[0], a[1], p, q, r, s); }), (n = -1), null == b) ) { for (; ++n < o; ) f(z, a[n], l[n], m[n], p, q, r, s); --n; } else a.forEach(z.add); return (l = m = a = k = null), z; } var g, h = Cc, i = Dc; return (g = arguments.length) ? ((h = jd), (i = kd), 3 === g && ((e = c), (d = b), (c = b = 0)), f(a)) : ((f.x = function (a) { return arguments.length ? ((h = a), f) : h; }), (f.y = function (a) { return arguments.length ? ((i = a), f) : i; }), (f.extent = function (a) { return arguments.length ? (null == a ? (b = c = d = e = null) : ((b = +a[0][0]), (c = +a[0][1]), (d = +a[1][0]), (e = +a[1][1])), f) : null == b ? null : [ [b, c], [d, e], ]; }), (f.size = function (a) { return arguments.length ? (null == a ? (b = c = d = e = null) : ((b = c = 0), (d = +a[0]), (e = +a[1])), f) : null == b ? null : [d - b, e - c]; }), f); }), (hg.interpolateRgb = od), (hg.interpolateObject = pd), (hg.interpolateNumber = qd), (hg.interpolateString = rd); var li = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, mi = new RegExp(li.source, "g"); (hg.interpolate = sd), (hg.interpolators = [ function (a, b) { var c = typeof b; return ("string" === c ? (eh.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? od : rd) : b instanceof ga ? od : Array.isArray(b) ? td : "object" === c && isNaN(b) ? pd : qd)(a, b); }, ]), (hg.interpolateArray = td); var ni = function () { return s; }, oi = hg.map({ linear: ni, poly: Ad, quad: function () { return xd; }, cubic: function () { return yd; }, sin: function () { return Bd; }, exp: function () { return Cd; }, circle: function () { return Dd; }, elastic: Ed, back: Fd, bounce: function () { return Gd; }, }), pi = hg.map({ in: s, out: vd, "in-out": wd, "out-in": function (a) { return wd(vd(a)); }, }); (hg.ease = function (a) { var b = a.indexOf("-"), c = b >= 0 ? a.slice(0, b) : a, d = b >= 0 ? a.slice(b + 1) : "in"; return (c = oi.get(c) || ni), (d = pi.get(d) || s), ud(d(c.apply(null, ig.call(arguments, 1)))); }), (hg.interpolateHcl = Hd), (hg.interpolateHsl = Id), (hg.interpolateLab = Jd), (hg.interpolateRound = Kd), (hg.transform = function (a) { var b = kg.createElementNS(hg.ns.prefix.svg, "g"); return (hg.transform = function (a) { if (null != a) { b.setAttribute("transform", a); var c = b.transform.baseVal.consolidate(); } return new Ld(c ? c.matrix : qi); })(a); }), (Ld.prototype.toString = function () { return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; }); var qi = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; (hg.interpolateTransform = Ud), (hg.layout = {}), (hg.layout.bundle = function () { return function (a) { for (var b = [], c = -1, d = a.length; ++c < d; ) b.push(Xd(a[c])); return b; }; }), (hg.layout.chord = function () { function a() { var a, j, l, m, n, o = {}, p = [], q = hg.range(f), r = []; for (c = [], d = [], a = 0, m = -1; ++m < f; ) { for (j = 0, n = -1; ++n < f; ) j += e[m][n]; p.push(j), r.push(hg.range(f)), (a += j); } for ( g && q.sort(function (a, b) { return g(p[a], p[b]); }), h && r.forEach(function (a, b) { a.sort(function (a, c) { return h(e[b][a], e[b][c]); }); }), a = (Ng - k * f) / a, j = 0, m = -1; ++m < f; ) { for (l = j, n = -1; ++n < f; ) { var s = q[m], t = r[s][n], u = e[s][t], v = j, w = (j += u * a); o[s + "-" + t] = { index: s, subindex: t, startAngle: v, endAngle: w, value: u }; } (d[s] = { index: s, startAngle: l, endAngle: j, value: p[s] }), (j += k); } for (m = -1; ++m < f; ) for (n = m - 1; ++n < f; ) { var x = o[m + "-" + n], y = o[n + "-" + m]; (x.value || y.value) && c.push(x.value < y.value ? { source: y, target: x } : { source: x, target: y }); } i && b(); } function b() { c.sort(function (a, b) { return i((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); }); } var c, d, e, f, g, h, i, j = {}, k = 0; return ( (j.matrix = function (a) { return arguments.length ? ((f = (e = a) && e.length), (c = d = null), j) : e; }), (j.padding = function (a) { return arguments.length ? ((k = a), (c = d = null), j) : k; }), (j.sortGroups = function (a) { return arguments.length ? ((g = a), (c = d = null), j) : g; }), (j.sortSubgroups = function (a) { return arguments.length ? ((h = a), (c = null), j) : h; }), (j.sortChords = function (a) { return arguments.length ? ((i = a), c && b(), j) : i; }), (j.chords = function () { return c || a(), c; }), (j.groups = function () { return d || a(), d; }), j ); }), (hg.layout.force = function () { function a(a) { return function (b, c, d, e) { if (b.point !== a) { var f = b.cx - a.x, g = b.cy - a.y, h = e - c, i = f * f + g * g; if (i > (h * h) / r) { if (p > i) { var j = b.charge / i; (a.px -= f * j), (a.py -= g * j); } return !0; } if (b.point && i && p > i) { var j = b.pointCharge / i; (a.px -= f * j), (a.py -= g * j); } } return !b.charge; }; } function b(a) { (a.px = hg.event.x), (a.py = hg.event.y), i.resume(); } var c, d, e, f, g, h, i = {}, j = hg.dispatch("start", "tick", "end"), k = [1, 1], l = 0.9, m = ri, n = si, o = -30, p = ti, q = 0.1, r = 0.64, t = [], u = []; return ( (i.tick = function () { if ((e *= 0.99) < 0.005) return (c = null), j.end({ type: "end", alpha: (e = 0) }), !0; var b, d, i, m, n, p, r, s, v, w = t.length, x = u.length; for (d = 0; x > d; ++d) (i = u[d]), (m = i.source), (n = i.target), (s = n.x - m.x), (v = n.y - m.y), (p = s * s + v * v) && ((p = (e * g[d] * ((p = Math.sqrt(p)) - f[d])) / p), (s *= p), (v *= p), (n.x -= s * (r = m.weight + n.weight ? m.weight / (m.weight + n.weight) : 0.5)), (n.y -= v * r), (m.x += s * (r = 1 - r)), (m.y += v * r)); if ((r = e * q) && ((s = k[0] / 2), (v = k[1] / 2), (d = -1), r)) for (; ++d < w; ) (i = t[d]), (i.x += (s - i.x) * r), (i.y += (v - i.y) * r); if (o) for (ce((b = hg.geom.quadtree(t)), e, h), d = -1; ++d < w; ) (i = t[d]).fixed || b.visit(a(i)); for (d = -1; ++d < w; ) (i = t[d]), i.fixed ? ((i.x = i.px), (i.y = i.py)) : ((i.x -= (i.px - (i.px = i.x)) * l), (i.y -= (i.py - (i.py = i.y)) * l)); j.tick({ type: "tick", alpha: e }); }), (i.nodes = function (a) { return arguments.length ? ((t = a), i) : t; }), (i.links = function (a) { return arguments.length ? ((u = a), i) : u; }), (i.size = function (a) { return arguments.length ? ((k = a), i) : k; }), (i.linkDistance = function (a) { return arguments.length ? ((m = "function" == typeof a ? a : +a), i) : m; }), (i.distance = i.linkDistance), (i.linkStrength = function (a) { return arguments.length ? ((n = "function" == typeof a ? a : +a), i) : n; }), (i.friction = function (a) { return arguments.length ? ((l = +a), i) : l; }), (i.charge = function (a) { return arguments.length ? ((o = "function" == typeof a ? a : +a), i) : o; }), (i.chargeDistance = function (a) { return arguments.length ? ((p = a * a), i) : Math.sqrt(p); }), (i.gravity = function (a) { return arguments.length ? ((q = +a), i) : q; }), (i.theta = function (a) { return arguments.length ? ((r = a * a), i) : Math.sqrt(r); }), (i.alpha = function (a) { return arguments.length ? ((a = +a), e ? (a > 0 ? (e = a) : ((c.c = null), (c.t = NaN), (c = null), j.end({ type: "end", alpha: (e = 0) }))) : a > 0 && (j.start({ type: "start", alpha: (e = a) }), (c = Fa(i.tick))), i) : e; }), (i.start = function () { function a(a, d) { if (!c) { for (c = new Array(e), i = 0; e > i; ++i) c[i] = []; for (i = 0; j > i; ++i) { var f = u[i]; c[f.source.index].push(f.target), c[f.target.index].push(f.source); } } for (var g, h = c[b], i = -1, k = h.length; ++i < k; ) if (!isNaN((g = h[i][a]))) return g; return Math.random() * d; } var b, c, d, e = t.length, j = u.length, l = k[0], p = k[1]; for (b = 0; e > b; ++b) ((d = t[b]).index = b), (d.weight = 0); for (b = 0; j > b; ++b) (d = u[b]), "number" == typeof d.source && (d.source = t[d.source]), "number" == typeof d.target && (d.target = t[d.target]), ++d.source.weight, ++d.target.weight; for (b = 0; e > b; ++b) (d = t[b]), isNaN(d.x) && (d.x = a("x", l)), isNaN(d.y) && (d.y = a("y", p)), isNaN(d.px) && (d.px = d.x), isNaN(d.py) && (d.py = d.y); if (((f = []), "function" == typeof m)) for (b = 0; j > b; ++b) f[b] = +m.call(this, u[b], b); else for (b = 0; j > b; ++b) f[b] = m; if (((g = []), "function" == typeof n)) for (b = 0; j > b; ++b) g[b] = +n.call(this, u[b], b); else for (b = 0; j > b; ++b) g[b] = n; if (((h = []), "function" == typeof o)) for (b = 0; e > b; ++b) h[b] = +o.call(this, t[b], b); else for (b = 0; e > b; ++b) h[b] = o; return i.resume(); }), (i.resume = function () { return i.alpha(0.1); }), (i.stop = function () { return i.alpha(0); }), (i.drag = function () { return d || (d = hg.behavior.drag().origin(s).on("dragstart.force", $d).on("drag.force", b).on("dragend.force", _d)), arguments.length ? void this.on("mouseover.force", ae).on("mouseout.force", be).call(d) : d; }), hg.rebind(i, j, "on") ); }); var ri = 20, si = 1, ti = 1 / 0; (hg.layout.hierarchy = function () { function a(e) { var f, g = [e], h = []; for (e.depth = 0; null != (f = g.pop()); ) if ((h.push(f), (j = c.call(a, f, f.depth)) && (i = j.length))) { for (var i, j, k; --i >= 0; ) g.push((k = j[i])), (k.parent = f), (k.depth = f.depth + 1); d && (f.value = 0), (f.children = j); } else d && (f.value = +d.call(a, f, f.depth) || 0), delete f.children; return ( fe(e, function (a) { var c, e; b && (c = a.children) && c.sort(b), d && (e = a.parent) && (e.value += a.value); }), h ); } var b = ie, c = ge, d = he; return ( (a.sort = function (c) { return arguments.length ? ((b = c), a) : b; }), (a.children = function (b) { return arguments.length ? ((c = b), a) : c; }), (a.value = function (b) { return arguments.length ? ((d = b), a) : d; }), (a.revalue = function (b) { return ( d && (ee(b, function (a) { a.children && (a.value = 0); }), fe(b, function (b) { var c; b.children || (b.value = +d.call(a, b, b.depth) || 0), (c = b.parent) && (c.value += b.value); })), b ); }), a ); }), (hg.layout.partition = function () { function a(b, c, d, e) { var f = b.children; if (((b.x = c), (b.y = b.depth * e), (b.dx = d), (b.dy = e), f && (g = f.length))) { var g, h, i, j = -1; for (d = b.value ? d / b.value : 0; ++j < g; ) a((h = f[j]), c, (i = h.value * d), e), (c += i); } } function b(a) { var c = a.children, d = 0; if (c && (e = c.length)) for (var e, f = -1; ++f < e; ) d = Math.max(d, b(c[f])); return 1 + d; } function c(c, f) { var g = d.call(this, c, f); return a(g[0], 0, e[0], e[1] / b(g[0])), g; } var d = hg.layout.hierarchy(), e = [1, 1]; return ( (c.size = function (a) { return arguments.length ? ((e = a), c) : e; }), de(c, d) ); }), (hg.layout.pie = function () { function a(g) { var h, i = g.length, j = g.map(function (c, d) { return +b.call(a, c, d); }), k = +("function" == typeof d ? d.apply(this, arguments) : d), l = ("function" == typeof e ? e.apply(this, arguments) : e) - k, m = Math.min(Math.abs(l) / i, +("function" == typeof f ? f.apply(this, arguments) : f)), n = m * (0 > l ? -1 : 1), o = hg.sum(j), p = o ? (l - i * n) / o : 0, q = hg.range(i), r = []; return ( null != c && q.sort( c === ui ? function (a, b) { return j[b] - j[a]; } : function (a, b) { return c(g[a], g[b]); } ), q.forEach(function (a) { r[a] = { data: g[a], value: (h = j[a]), startAngle: k, endAngle: (k += h * p + n), padAngle: m }; }), r ); } var b = Number, c = ui, d = 0, e = Ng, f = 0; return ( (a.value = function (c) { return arguments.length ? ((b = c), a) : b; }), (a.sort = function (b) { return arguments.length ? ((c = b), a) : c; }), (a.startAngle = function (b) { return arguments.length ? ((d = b), a) : d; }), (a.endAngle = function (b) { return arguments.length ? ((e = b), a) : e; }), (a.padAngle = function (b) { return arguments.length ? ((f = b), a) : f; }), a ); }); var ui = {}; hg.layout.stack = function () { function a(h, i) { if (!(m = h.length)) return h; var j = h.map(function (c, d) { return b.call(a, c, d); }), k = j.map(function (b) { return b.map(function (b, c) { return [f.call(a, b, c), g.call(a, b, c)]; }); }), l = c.call(a, k, i); (j = hg.permute(j, l)), (k = hg.permute(k, l)); var m, n, o, p, q = d.call(a, k, i), r = j[0].length; for (o = 0; r > o; ++o) for (e.call(a, j[0][o], (p = q[o]), k[0][o][1]), n = 1; m > n; ++n) e.call(a, j[n][o], (p += k[n - 1][o][1]), k[n][o][1]); return h; } var b = s, c = ne, d = oe, e = me, f = ke, g = le; return ( (a.values = function (c) { return arguments.length ? ((b = c), a) : b; }), (a.order = function (b) { return arguments.length ? ((c = "function" == typeof b ? b : vi.get(b) || ne), a) : c; }), (a.offset = function (b) { return arguments.length ? ((d = "function" == typeof b ? b : wi.get(b) || oe), a) : d; }), (a.x = function (b) { return arguments.length ? ((f = b), a) : f; }), (a.y = function (b) { return arguments.length ? ((g = b), a) : g; }), (a.out = function (b) { return arguments.length ? ((e = b), a) : e; }), a ); }; var vi = hg.map({ "inside-out": function (a) { var b, c, d = a.length, e = a.map(pe), f = a.map(qe), g = hg.range(d).sort(function (a, b) { return e[a] - e[b]; }), h = 0, i = 0, j = [], k = []; for (b = 0; d > b; ++b) (c = g[b]), i > h ? ((h += f[c]), j.push(c)) : ((i += f[c]), k.push(c)); return k.reverse().concat(j); }, reverse: function (a) { return hg.range(a.length).reverse(); }, default: ne, }), wi = hg.map({ silhouette: function (a) { var b, c, d, e = a.length, f = a[0].length, g = [], h = 0, i = []; for (c = 0; f > c; ++c) { for (b = 0, d = 0; e > b; b++) d += a[b][c][1]; d > h && (h = d), g.push(d); } for (c = 0; f > c; ++c) i[c] = (h - g[c]) / 2; return i; }, wiggle: function (a) { var b, c, d, e, f, g, h, i, j, k = a.length, l = a[0], m = l.length, n = []; for (n[0] = i = j = 0, c = 1; m > c; ++c) { for (b = 0, e = 0; k > b; ++b) e += a[b][c][1]; for (b = 0, f = 0, h = l[c][0] - l[c - 1][0]; k > b; ++b) { for (d = 0, g = (a[b][c][1] - a[b][c - 1][1]) / (2 * h); b > d; ++d) g += (a[d][c][1] - a[d][c - 1][1]) / h; f += g * a[b][c][1]; } (n[c] = i -= e ? (f / e) * h : 0), j > i && (j = i); } for (c = 0; m > c; ++c) n[c] -= j; return n; }, expand: function (a) { var b, c, d, e = a.length, f = a[0].length, g = 1 / e, h = []; for (c = 0; f > c; ++c) { for (b = 0, d = 0; e > b; b++) d += a[b][c][1]; if (d) for (b = 0; e > b; b++) a[b][c][1] /= d; else for (b = 0; e > b; b++) a[b][c][1] = g; } for (c = 0; f > c; ++c) h[c] = 0; return h; }, zero: oe, }); (hg.layout.histogram = function () { function a(a, f) { for (var g, h, i = [], j = a.map(c, this), k = d.call(this, j, f), l = e.call(this, k, j, f), f = -1, m = j.length, n = l.length - 1, o = b ? 1 : 1 / m; ++f < n; ) (g = i[f] = []), (g.dx = l[f + 1] - (g.x = l[f])), (g.y = 0); if (n > 0) for (f = -1; ++f < m; ) (h = j[f]), h >= k[0] && h <= k[1] && ((g = i[hg.bisect(l, h, 1, n) - 1]), (g.y += o), g.push(a[f])); return i; } var b = !0, c = Number, d = ue, e = se; return ( (a.value = function (b) { return arguments.length ? ((c = b), a) : c; }), (a.range = function (b) { return arguments.length ? ((d = Aa(b)), a) : d; }), (a.bins = function (b) { return arguments.length ? ((e = "number" == typeof b ? function (a) { return te(a, b); } : Aa(b)), a) : e; }), (a.frequency = function (c) { return arguments.length ? ((b = !!c), a) : b; }), a ); }), (hg.layout.pack = function () { function a(a, f) { var g = c.call(this, a, f), h = g[0], i = e[0], j = e[1], k = null == b ? Math.sqrt : "function" == typeof b ? b : function () { return b; }; if ( ((h.x = h.y = 0), fe(h, function (a) { a.r = +k(a.value); }), fe(h, ze), d) ) { var l = (d * (b ? 1 : Math.max((2 * h.r) / i, (2 * h.r) / j))) / 2; fe(h, function (a) { a.r += l; }), fe(h, ze), fe(h, function (a) { a.r -= l; }); } return Ce(h, i / 2, j / 2, b ? 1 : 1 / Math.max((2 * h.r) / i, (2 * h.r) / j)), g; } var b, c = hg.layout.hierarchy().sort(ve), d = 0, e = [1, 1]; return ( (a.size = function (b) { return arguments.length ? ((e = b), a) : e; }), (a.radius = function (c) { return arguments.length ? ((b = null == c || "function" == typeof c ? c : +c), a) : b; }), (a.padding = function (b) { return arguments.length ? ((d = +b), a) : d; }), de(a, c) ); }), (hg.layout.tree = function () { function a(a, e) { var k = g.call(this, a, e), l = k[0], m = b(l); if ((fe(m, c), (m.parent.m = -m.z), ee(m, d), j)) ee(l, f); else { var n = l, o = l, p = l; ee(l, function (a) { a.x < n.x && (n = a), a.x > o.x && (o = a), a.depth > p.depth && (p = a); }); var q = h(n, o) / 2 - n.x, r = i[0] / (o.x + h(o, n) / 2 + q), s = i[1] / (p.depth || 1); ee(l, function (a) { (a.x = (a.x + q) * r), (a.y = a.depth * s); }); } return k; } function b(a) { for (var b, c = { A: null, children: [a] }, d = [c]; null != (b = d.pop()); ) for (var e, f = b.children, g = 0, h = f.length; h > g; ++g) d.push(((f[g] = e = { _: f[g], parent: b, children: ((e = f[g].children) && e.slice()) || [], A: null, a: null, z: 0, m: 0, c: 0, s: 0, t: null, i: g }).a = e)); return c.children[0]; } function c(a) { var b = a.children, c = a.parent.children, d = a.i ? c[a.i - 1] : null; if (b.length) { Ie(a); var f = (b[0].z + b[b.length - 1].z) / 2; d ? ((a.z = d.z + h(a._, d._)), (a.m = a.z - f)) : (a.z = f); } else d && (a.z = d.z + h(a._, d._)); a.parent.A = e(a, d, a.parent.A || c[0]); } function d(a) { (a._.x = a.z + a.parent.m), (a.m += a.parent.m); } function e(a, b, c) { if (b) { for (var d, e = a, f = a, g = b, i = e.parent.children[0], j = e.m, k = f.m, l = g.m, m = i.m; (g = Ge(g)), (e = Fe(e)), g && e; ) (i = Fe(i)), (f = Ge(f)), (f.a = a), (d = g.z + l - e.z - j + h(g._, e._)), d > 0 && (He(Je(g, a, c), a, d), (j += d), (k += d)), (l += g.m), (j += e.m), (m += i.m), (k += f.m); g && !Ge(f) && ((f.t = g), (f.m += l - k)), e && !Fe(i) && ((i.t = e), (i.m += j - m), (c = a)); } return c; } function f(a) { (a.x *= i[0]), (a.y = a.depth * i[1]); } var g = hg.layout.hierarchy().sort(null).value(null), h = Ee, i = [1, 1], j = null; return ( (a.separation = function (b) { return arguments.length ? ((h = b), a) : h; }), (a.size = function (b) { return arguments.length ? ((j = null == (i = b) ? f : null), a) : j ? null : i; }), (a.nodeSize = function (b) { return arguments.length ? ((j = null == (i = b) ? null : f), a) : j ? i : null; }), de(a, g) ); }), (hg.layout.cluster = function () { function a(a, f) { var g, h = b.call(this, a, f), i = h[0], j = 0; fe(i, function (a) { var b = a.children; b && b.length ? ((a.x = Le(b)), (a.y = Ke(b))) : ((a.x = g ? (j += c(a, g)) : 0), (a.y = 0), (g = a)); }); var k = Me(i), l = Ne(i), m = k.x - c(k, l) / 2, n = l.x + c(l, k) / 2; return ( fe( i, e ? function (a) { (a.x = (a.x - i.x) * d[0]), (a.y = (i.y - a.y) * d[1]); } : function (a) { (a.x = ((a.x - m) / (n - m)) * d[0]), (a.y = (1 - (i.y ? a.y / i.y : 1)) * d[1]); } ), h ); } var b = hg.layout.hierarchy().sort(null).value(null), c = Ee, d = [1, 1], e = !1; return ( (a.separation = function (b) { return arguments.length ? ((c = b), a) : c; }), (a.size = function (b) { return arguments.length ? ((e = null == (d = b)), a) : e ? null : d; }), (a.nodeSize = function (b) { return arguments.length ? ((e = null != (d = b)), a) : e ? d : null; }), de(a, b) ); }), (hg.layout.treemap = function () { function a(a, b) { for (var c, d, e = -1, f = a.length; ++e < f; ) (d = (c = a[e]).value * (0 > b ? 0 : b)), (c.area = isNaN(d) || 0 >= d ? 0 : d); } function b(c) { var f = c.children; if (f && f.length) { var g, h, i, j = l(c), k = [], m = f.slice(), o = 1 / 0, p = "slice" === n ? j.dx : "dice" === n ? j.dy : "slice-dice" === n ? (1 & c.depth ? j.dy : j.dx) : Math.min(j.dx, j.dy); for (a(m, (j.dx * j.dy) / c.value), k.area = 0; (i = m.length) > 0; ) k.push((g = m[i - 1])), (k.area += g.area), "squarify" !== n || (h = d(k, p)) <= o ? (m.pop(), (o = h)) : ((k.area -= k.pop().area), e(k, p, j, !1), (p = Math.min(j.dx, j.dy)), (k.length = k.area = 0), (o = 1 / 0)); k.length && (e(k, p, j, !0), (k.length = k.area = 0)), f.forEach(b); } } function c(b) { var d = b.children; if (d && d.length) { var f, g = l(b), h = d.slice(), i = []; for (a(h, (g.dx * g.dy) / b.value), i.area = 0; (f = h.pop()); ) i.push(f), (i.area += f.area), null != f.z && (e(i, f.z ? g.dx : g.dy, g, !h.length), (i.length = i.area = 0)); d.forEach(c); } } function d(a, b) { for (var c, d = a.area, e = 0, f = 1 / 0, g = -1, h = a.length; ++g < h; ) (c = a[g].area) && (f > c && (f = c), c > e && (e = c)); return (d *= d), (b *= b), d ? Math.max((b * e * o) / d, d / (b * f * o)) : 1 / 0; } function e(a, b, c, d) { var e, f = -1, g = a.length, h = c.x, j = c.y, k = b ? i(a.area / b) : 0; if (b == c.dx) { for ((d || k > c.dy) && (k = c.dy); ++f < g; ) (e = a[f]), (e.x = h), (e.y = j), (e.dy = k), (h += e.dx = Math.min(c.x + c.dx - h, k ? i(e.area / k) : 0)); (e.z = !0), (e.dx += c.x + c.dx - h), (c.y += k), (c.dy -= k); } else { for ((d || k > c.dx) && (k = c.dx); ++f < g; ) (e = a[f]), (e.x = h), (e.y = j), (e.dx = k), (j += e.dy = Math.min(c.y + c.dy - j, k ? i(e.area / k) : 0)); (e.z = !1), (e.dy += c.y + c.dy - j), (c.x += k), (c.dx -= k); } } function f(d) { var e = g || h(d), f = e[0]; return (f.x = f.y = 0), f.value ? ((f.dx = j[0]), (f.dy = j[1])) : (f.dx = f.dy = 0), g && h.revalue(f), a([f], (f.dx * f.dy) / f.value), (g ? c : b)(f), m && (g = e), e; } var g, h = hg.layout.hierarchy(), i = Math.round, j = [1, 1], k = null, l = Oe, m = !1, n = "squarify", o = 0.5 * (1 + Math.sqrt(5)); return ( (f.size = function (a) { return arguments.length ? ((j = a), f) : j; }), (f.padding = function (a) { function b(b) { var c = a.call(f, b, b.depth); return null == c ? Oe(b) : Pe(b, "number" == typeof c ? [c, c, c, c] : c); } function c(b) { return Pe(b, a); } if (!arguments.length) return k; var d; return (l = null == (k = a) ? Oe : "function" == (d = typeof a) ? b : "number" === d ? ((a = [a, a, a, a]), c) : c), f; }), (f.round = function (a) { return arguments.length ? ((i = a ? Math.round : Number), f) : i != Number; }), (f.sticky = function (a) { return arguments.length ? ((m = a), (g = null), f) : m; }), (f.ratio = function (a) { return arguments.length ? ((o = a), f) : o; }), (f.mode = function (a) { return arguments.length ? ((n = a + ""), f) : n; }), de(f, h) ); }), (hg.random = { normal: function (a, b) { var c = arguments.length; return ( 2 > c && (b = 1), 1 > c && (a = 0), function () { var c, d, e; do (c = 2 * Math.random() - 1), (d = 2 * Math.random() - 1), (e = c * c + d * d); while (!e || e > 1); return a + b * c * Math.sqrt((-2 * Math.log(e)) / e); } ); }, logNormal: function () { var a = hg.random.normal.apply(hg, arguments); return function () { return Math.exp(a()); }; }, bates: function (a) { var b = hg.random.irwinHall(a); return function () { return b() / a; }; }, irwinHall: function (a) { return function () { for (var b = 0, c = 0; a > c; c++) b += Math.random(); return b; }; }, }), (hg.scale = {}); var xi = { floor: s, ceil: s }; hg.scale.linear = function () { return We([0, 1], [0, 1], sd, !1); }; var yi = { s: 1, g: 1, p: 1, r: 1, e: 1 }; hg.scale.log = function () { return cf(hg.scale.linear().domain([0, 1]), 10, !0, [1, 10]); }; var zi = hg.format(".0e"), Ai = { floor: function (a) { return -Math.ceil(-a); }, ceil: function (a) { return -Math.floor(-a); }, }; (hg.scale.pow = function () { return df(hg.scale.linear(), 1, [0, 1]); }), (hg.scale.sqrt = function () { return hg.scale.pow().exponent(0.5); }), (hg.scale.ordinal = function () { return ff([], { t: "range", a: [[]] }); }), (hg.scale.category10 = function () { return hg.scale.ordinal().range(Bi); }), (hg.scale.category20 = function () { return hg.scale.ordinal().range(Ci); }), (hg.scale.category20b = function () { return hg.scale.ordinal().range(Di); }), (hg.scale.category20c = function () { return hg.scale.ordinal().range(Ei); }); var Bi = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(ta), Ci = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(ta), Di = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(ta), Ei = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(ta); (hg.scale.quantile = function () { return gf([], []); }), (hg.scale.quantize = function () { return hf(0, 1, [0, 1]); }), (hg.scale.threshold = function () { return jf([0.5], [0, 1]); }), (hg.scale.identity = function () { return kf([0, 1]); }), (hg.svg = {}), (hg.svg.arc = function () { function a() { var a = Math.max(0, +c.apply(this, arguments)), j = Math.max(0, +d.apply(this, arguments)), k = g.apply(this, arguments) - Pg, l = h.apply(this, arguments) - Pg, m = Math.abs(l - k), n = k > l ? 0 : 1; if ((a > j && ((o = j), (j = a), (a = o)), m >= Og)) return b(j, n) + (a ? b(a, 1 - n) : "") + "Z"; var o, p, q, r, s, t, u, v, w, x, y, z, A = 0, B = 0, C = []; if ( ((r = (+i.apply(this, arguments) || 0) / 2) && ((q = f === Fi ? Math.sqrt(a * a + j * j) : +f.apply(this, arguments)), n || (B *= -1), j && (B = ba((q / j) * Math.sin(r))), a && (A = ba((q / a) * Math.sin(r)))), j) ) { (s = j * Math.cos(k + B)), (t = j * Math.sin(k + B)), (u = j * Math.cos(l - B)), (v = j * Math.sin(l - B)); var D = Math.abs(l - k - 2 * B) <= Mg ? 0 : 1; if (B && (rf(s, t, u, v) === n) ^ D) { var E = (k + l) / 2; (s = j * Math.cos(E)), (t = j * Math.sin(E)), (u = v = null); } } else s = t = 0; if (a) { (w = a * Math.cos(l - A)), (x = a * Math.sin(l - A)), (y = a * Math.cos(k + A)), (z = a * Math.sin(k + A)); var F = Math.abs(k - l + 2 * A) <= Mg ? 0 : 1; if (A && (rf(w, x, y, z) === 1 - n) ^ F) { var G = (k + l) / 2; (w = a * Math.cos(G)), (x = a * Math.sin(G)), (y = z = null); } } else w = x = 0; if (m > Kg && (o = Math.min(Math.abs(j - a) / 2, +e.apply(this, arguments))) > 0.001) { p = (j > a) ^ n ? 0 : 1; var H = o, I = o; if (Mg > m) { var J = null == y ? [w, x] : null == u ? [s, t] : Hc([s, t], [y, z], [u, v], [w, x]), K = s - J[0], L = t - J[1], M = u - J[0], N = v - J[1], O = 1 / Math.sin(Math.acos((K * M + L * N) / (Math.sqrt(K * K + L * L) * Math.sqrt(M * M + N * N))) / 2), P = Math.sqrt(J[0] * J[0] + J[1] * J[1]); (I = Math.min(o, (a - P) / (O - 1))), (H = Math.min(o, (j - P) / (O + 1))); } if (null != u) { var Q = sf(null == y ? [w, x] : [y, z], [s, t], j, H, n), R = sf([u, v], [w, x], j, H, n); o === H ? C.push("M", Q[0], "A", H, ",", H, " 0 0,", p, " ", Q[1], "A", j, ",", j, " 0 ", (1 - n) ^ rf(Q[1][0], Q[1][1], R[1][0], R[1][1]), ",", n, " ", R[1], "A", H, ",", H, " 0 0,", p, " ", R[0]) : C.push("M", Q[0], "A", H, ",", H, " 0 1,", p, " ", R[0]); } else C.push("M", s, ",", t); if (null != y) { var S = sf([s, t], [y, z], a, -I, n), T = sf([w, x], null == u ? [s, t] : [u, v], a, -I, n); o === I ? C.push("L", T[0], "A", I, ",", I, " 0 0,", p, " ", T[1], "A", a, ",", a, " 0 ", n ^ rf(T[1][0], T[1][1], S[1][0], S[1][1]), ",", 1 - n, " ", S[1], "A", I, ",", I, " 0 0,", p, " ", S[0]) : C.push("L", T[0], "A", I, ",", I, " 0 0,", p, " ", S[0]); } else C.push("L", w, ",", x); } else C.push("M", s, ",", t), null != u && C.push("A", j, ",", j, " 0 ", D, ",", n, " ", u, ",", v), C.push("L", w, ",", x), null != y && C.push("A", a, ",", a, " 0 ", F, ",", 1 - n, " ", y, ",", z); return C.push("Z"), C.join(""); } function b(a, b) { return "M0," + a + "A" + a + "," + a + " 0 1," + b + " 0," + -a + "A" + a + "," + a + " 0 1," + b + " 0," + a; } var c = mf, d = nf, e = lf, f = Fi, g = of, h = pf, i = qf; return ( (a.innerRadius = function (b) { return arguments.length ? ((c = Aa(b)), a) : c; }), (a.outerRadius = function (b) { return arguments.length ? ((d = Aa(b)), a) : d; }), (a.cornerRadius = function (b) { return arguments.length ? ((e = Aa(b)), a) : e; }), (a.padRadius = function (b) { return arguments.length ? ((f = b == Fi ? Fi : Aa(b)), a) : f; }), (a.startAngle = function (b) { return arguments.length ? ((g = Aa(b)), a) : g; }), (a.endAngle = function (b) { return arguments.length ? ((h = Aa(b)), a) : h; }), (a.padAngle = function (b) { return arguments.length ? ((i = Aa(b)), a) : i; }), (a.centroid = function () { var a = (+c.apply(this, arguments) + +d.apply(this, arguments)) / 2, b = (+g.apply(this, arguments) + +h.apply(this, arguments)) / 2 - Pg; return [Math.cos(b) * a, Math.sin(b) * a]; }), a ); }); var Fi = "auto"; hg.svg.line = function () { return tf(s); }; var Gi = hg.map({ linear: uf, "linear-closed": vf, step: wf, "step-before": xf, "step-after": yf, basis: Ef, "basis-open": Ff, "basis-closed": Gf, bundle: Hf, cardinal: Bf, "cardinal-open": zf, "cardinal-closed": Af, monotone: Nf, }); Gi.forEach(function (a, b) { (b.key = a), (b.closed = /-closed$/.test(a)); }); var Hi = [0, 2 / 3, 1 / 3, 0], Ii = [0, 1 / 3, 2 / 3, 0], Ji = [0, 1 / 6, 2 / 3, 1 / 6]; (hg.svg.line.radial = function () { var a = tf(Of); return (a.radius = a.x), delete a.x, (a.angle = a.y), delete a.y, a; }), (xf.reverse = yf), (yf.reverse = xf), (hg.svg.area = function () { return Pf(s); }), (hg.svg.area.radial = function () { var a = Pf(Of); return (a.radius = a.x), delete a.x, (a.innerRadius = a.x0), delete a.x0, (a.outerRadius = a.x1), delete a.x1, (a.angle = a.y), delete a.y, (a.startAngle = a.y0), delete a.y0, (a.endAngle = a.y1), delete a.y1, a; }), (hg.svg.chord = function () { function a(a, h) { var i = b(this, f, a, h), j = b(this, g, a, h); return "M" + i.p0 + d(i.r, i.p1, i.a1 - i.a0) + (c(i, j) ? e(i.r, i.p1, i.r, i.p0) : e(i.r, i.p1, j.r, j.p0) + d(j.r, j.p1, j.a1 - j.a0) + e(j.r, j.p1, i.r, i.p0)) + "Z"; } function b(a, b, c, d) { var e = b.call(a, c, d), f = h.call(a, e, d), g = i.call(a, e, d) - Pg, k = j.call(a, e, d) - Pg; return { r: f, a0: g, a1: k, p0: [f * Math.cos(g), f * Math.sin(g)], p1: [f * Math.cos(k), f * Math.sin(k)] }; } function c(a, b) { return a.a0 == b.a0 && a.a1 == b.a1; } function d(a, b, c) { return "A" + a + "," + a + " 0 " + +(c > Mg) + ",1 " + b; } function e(a, b, c, d) { return "Q 0,0 " + d; } var f = sc, g = tc, h = Qf, i = of, j = pf; return ( (a.radius = function (b) { return arguments.length ? ((h = Aa(b)), a) : h; }), (a.source = function (b) { return arguments.length ? ((f = Aa(b)), a) : f; }), (a.target = function (b) { return arguments.length ? ((g = Aa(b)), a) : g; }), (a.startAngle = function (b) { return arguments.length ? ((i = Aa(b)), a) : i; }), (a.endAngle = function (b) { return arguments.length ? ((j = Aa(b)), a) : j; }), a ); }), (hg.svg.diagonal = function () { function a(a, e) { var f = b.call(this, a, e), g = c.call(this, a, e), h = (f.y + g.y) / 2, i = [f, { x: f.x, y: h }, { x: g.x, y: h }, g]; return (i = i.map(d)), "M" + i[0] + "C" + i[1] + " " + i[2] + " " + i[3]; } var b = sc, c = tc, d = Rf; return ( (a.source = function (c) { return arguments.length ? ((b = Aa(c)), a) : b; }), (a.target = function (b) { return arguments.length ? ((c = Aa(b)), a) : c; }), (a.projection = function (b) { return arguments.length ? ((d = b), a) : d; }), a ); }), (hg.svg.diagonal.radial = function () { var a = hg.svg.diagonal(), b = Rf, c = a.projection; return ( (a.projection = function (a) { return arguments.length ? c(Sf((b = a))) : b; }), a ); }), (hg.svg.symbol = function () { function a(a, d) { return (Ki.get(b.call(this, a, d)) || Vf)(c.call(this, a, d)); } var b = Uf, c = Tf; return ( (a.type = function (c) { return arguments.length ? ((b = Aa(c)), a) : b; }), (a.size = function (b) { return arguments.length ? ((c = Aa(b)), a) : c; }), a ); }); var Ki = hg.map({ circle: Vf, cross: function (a) { var b = Math.sqrt(a / 5) / 2; return "M" + -3 * b + "," + -b + "H" + -b + "V" + -3 * b + "H" + b + "V" + -b + "H" + 3 * b + "V" + b + "H" + b + "V" + 3 * b + "H" + -b + "V" + b + "H" + -3 * b + "Z"; }, diamond: function (a) { var b = Math.sqrt(a / (2 * Mi)), c = b * Mi; return "M0," + -b + "L" + c + ",0 0," + b + " " + -c + ",0Z"; }, square: function (a) { var b = Math.sqrt(a) / 2; return "M" + -b + "," + -b + "L" + b + "," + -b + " " + b + "," + b + " " + -b + "," + b + "Z"; }, "triangle-down": function (a) { var b = Math.sqrt(a / Li), c = (b * Li) / 2; return "M0," + c + "L" + b + "," + -c + " " + -b + "," + -c + "Z"; }, "triangle-up": function (a) { var b = Math.sqrt(a / Li), c = (b * Li) / 2; return "M0," + -c + "L" + b + "," + c + " " + -b + "," + c + "Z"; }, }); hg.svg.symbolTypes = Ki.keys(); var Li = Math.sqrt(3), Mi = Math.tan(30 * Qg); (Cg.transition = function (a) { for (var b, c, d = Ni || ++Ri, e = $f(a), f = [], g = Oi || { time: Date.now(), ease: zd, delay: 0, duration: 250 }, h = -1, i = this.length; ++h < i; ) { f.push((b = [])); for (var j = this[h], k = -1, l = j.length; ++k < l; ) (c = j[k]) && _f(c, k, e, d, g), b.push(c); } return Xf(f, e, d); }), (Cg.interrupt = function (a) { return this.each(null == a ? Pi : Wf($f(a))); }); var Ni, Oi, Pi = Wf($f()), Qi = [], Ri = 0; (Qi.call = Cg.call), (Qi.empty = Cg.empty), (Qi.node = Cg.node), (Qi.size = Cg.size), (hg.transition = function (a, b) { return a && a.transition ? (Ni ? a.transition(b) : a) : hg.selection().transition(a); }), (hg.transition.prototype = Qi), (Qi.select = function (a) { var b, c, d, e = this.id, f = this.namespace, g = []; a = C(a); for (var h = -1, i = this.length; ++h < i; ) { g.push((b = [])); for (var j = this[h], k = -1, l = j.length; ++k < l; ) (d = j[k]) && (c = a.call(d, d.__data__, k, h)) ? ("__data__" in d && (c.__data__ = d.__data__), _f(c, k, f, e, d[f][e]), b.push(c)) : b.push(null); } return Xf(g, f, e); }), (Qi.selectAll = function (a) { var b, c, d, e, f, g = this.id, h = this.namespace, i = []; a = D(a); for (var j = -1, k = this.length; ++j < k; ) for (var l = this[j], m = -1, n = l.length; ++m < n; ) if ((d = l[m])) { (f = d[h][g]), (c = a.call(d, d.__data__, m, j)), i.push((b = [])); for (var o = -1, p = c.length; ++o < p; ) (e = c[o]) && _f(e, o, h, g, f), b.push(e); } return Xf(i, h, g); }), (Qi.filter = function (a) { var b, c, d, e = []; "function" != typeof a && (a = P(a)); for (var f = 0, g = this.length; g > f; f++) { e.push((b = [])); for (var c = this[f], h = 0, i = c.length; i > h; h++) (d = c[h]) && a.call(d, d.__data__, h, f) && b.push(d); } return Xf(e, this.namespace, this.id); }), (Qi.tween = function (a, b) { var c = this.id, d = this.namespace; return arguments.length < 2 ? this.node()[d][c].tween.get(a) : R( this, null == b ? function (b) { b[d][c].tween.remove(a); } : function (e) { e[d][c].tween.set(a, b); } ); }), (Qi.attr = function (a, b) { function c() { this.removeAttribute(h); } function d() { this.removeAttributeNS(h.space, h.local); } function e(a) { return null == a ? c : ((a += ""), function () { var b, c = this.getAttribute(h); return ( c !== a && ((b = g(c, a)), function (a) { this.setAttribute(h, b(a)); }) ); }); } function f(a) { return null == a ? d : ((a += ""), function () { var b, c = this.getAttributeNS(h.space, h.local); return ( c !== a && ((b = g(c, a)), function (a) { this.setAttributeNS(h.space, h.local, b(a)); }) ); }); } if (arguments.length < 2) { for (b in a) this.attr(b, a[b]); return this; } var g = "transform" == a ? Ud : sd, h = hg.ns.qualify(a); return Yf(this, "attr." + a, b, h.local ? f : e); }), (Qi.attrTween = function (a, b) { function c(a, c) { var d = b.call(this, a, c, this.getAttribute(e)); return ( d && function (a) { this.setAttribute(e, d(a)); } ); } function d(a, c) { var d = b.call(this, a, c, this.getAttributeNS(e.space, e.local)); return ( d && function (a) { this.setAttributeNS(e.space, e.local, d(a)); } ); } var e = hg.ns.qualify(a); return this.tween("attr." + a, e.local ? d : c); }), (Qi.style = function (a, c, d) { function e() { this.style.removeProperty(a); } function f(c) { return null == c ? e : ((c += ""), function () { var e, f = b(this).getComputedStyle(this, null).getPropertyValue(a); return ( f !== c && ((e = sd(f, c)), function (b) { this.style.setProperty(a, e(b), d); }) ); }); } var g = arguments.length; if (3 > g) { if ("string" != typeof a) { 2 > g && (c = ""); for (d in a) this.style(d, a[d], c); return this; } d = ""; } return Yf(this, "style." + a, c, f); }), (Qi.styleTween = function (a, c, d) { function e(e, f) { var g = c.call(this, e, f, b(this).getComputedStyle(this, null).getPropertyValue(a)); return ( g && function (b) { this.style.setProperty(a, g(b), d); } ); } return arguments.length < 3 && (d = ""), this.tween("style." + a, e); }), (Qi.text = function (a) { return Yf(this, "text", a, Zf); }), (Qi.remove = function () { var a = this.namespace; return this.each("end.transition", function () { var b; this[a].count < 2 && (b = this.parentNode) && b.removeChild(this); }); }), (Qi.ease = function (a) { var b = this.id, c = this.namespace; return arguments.length < 1 ? this.node()[c][b].ease : ("function" != typeof a && (a = hg.ease.apply(hg, arguments)), R(this, function (d) { d[c][b].ease = a; })); }), (Qi.delay = function (a) { var b = this.id, c = this.namespace; return arguments.length < 1 ? this.node()[c][b].delay : R( this, "function" == typeof a ? function (d, e, f) { d[c][b].delay = +a.call(d, d.__data__, e, f); } : ((a = +a), function (d) { d[c][b].delay = a; }) ); }), (Qi.duration = function (a) { var b = this.id, c = this.namespace; return arguments.length < 1 ? this.node()[c][b].duration : R( this, "function" == typeof a ? function (d, e, f) { d[c][b].duration = Math.max(1, a.call(d, d.__data__, e, f)); } : ((a = Math.max(1, a)), function (d) { d[c][b].duration = a; }) ); }), (Qi.each = function (a, b) { var c = this.id, d = this.namespace; if (arguments.length < 2) { var e = Oi, f = Ni; try { (Ni = c), R(this, function (b, e, f) { (Oi = b[d][c]), a.call(b, b.__data__, e, f); }); } finally { (Oi = e), (Ni = f); } } else R(this, function (e) { var f = e[d][c]; (f.event || (f.event = hg.dispatch("start", "end", "interrupt"))).on(a, b); }); return this; }), (Qi.transition = function () { for (var a, b, c, d, e = this.id, f = ++Ri, g = this.namespace, h = [], i = 0, j = this.length; j > i; i++) { h.push((a = [])); for (var b = this[i], k = 0, l = b.length; l > k; k++) (c = b[k]) && ((d = c[g][e]), _f(c, k, g, f, { time: d.time, ease: d.ease, delay: d.delay + d.duration, duration: d.duration })), a.push(c); } return Xf(h, g, f); }), (hg.svg.axis = function () { function a(a) { a.each(function () { var a, j = hg.select(this), k = this.__chart__ || c, l = (this.__chart__ = c.copy()), m = null == i ? (l.ticks ? l.ticks.apply(l, h) : l.domain()) : i, n = null == b ? (l.tickFormat ? l.tickFormat.apply(l, h) : s) : b, o = j.selectAll(".tick").data(m, l), p = o.enter().insert("g", ".domain").attr("class", "tick").style("opacity", Kg), q = hg.transition(o.exit()).style("opacity", Kg).remove(), r = hg.transition(o.order()).style("opacity", 1), t = Math.max(e, 0) + g, u = Re(l), v = j.selectAll(".domain").data([0]), w = (v.enter().append("path").attr("class", "domain"), hg.transition(v)); p.append("line"), p.append("text"); var x, y, z, A, B = p.select("line"), C = r.select("line"), D = o.select("text").text(n), E = p.select("text"), F = r.select("text"), G = "top" === d || "left" === d ? -1 : 1; if ( ("bottom" === d || "top" === d ? ((a = ag), (x = "x"), (z = "y"), (y = "x2"), (A = "y2"), D.attr("dy", 0 > G ? "0em" : ".71em").style("text-anchor", "middle"), w.attr("d", "M" + u[0] + "," + G * f + "V0H" + u[1] + "V" + G * f)) : ((a = bg), (x = "y"), (z = "x"), (y = "y2"), (A = "x2"), D.attr("dy", ".32em").style("text-anchor", 0 > G ? "end" : "start"), w.attr("d", "M" + G * f + "," + u[0] + "H0V" + u[1] + "H" + G * f)), B.attr(A, G * e), E.attr(z, G * t), C.attr(y, 0).attr(A, G * e), F.attr(x, 0).attr(z, G * t), l.rangeBand) ) { var H = l, I = H.rangeBand() / 2; k = l = function (a) { return H(a) + I; }; } else k.rangeBand ? (k = l) : q.call(a, l, k); p.call(a, k, l), r.call(a, l, l); }); } var b, c = hg.scale.linear(), d = Si, e = 6, f = 6, g = 3, h = [10], i = null; return ( (a.scale = function (b) { return arguments.length ? ((c = b), a) : c; }), (a.orient = function (b) { return arguments.length ? ((d = b in Ti ? b + "" : Si), a) : d; }), (a.ticks = function () { return arguments.length ? ((h = jg(arguments)), a) : h; }), (a.tickValues = function (b) { return arguments.length ? ((i = b), a) : i; }), (a.tickFormat = function (c) { return arguments.length ? ((b = c), a) : b; }), (a.tickSize = function (b) { var c = arguments.length; return c ? ((e = +b), (f = +arguments[c - 1]), a) : e; }), (a.innerTickSize = function (b) { return arguments.length ? ((e = +b), a) : e; }), (a.outerTickSize = function (b) { return arguments.length ? ((f = +b), a) : f; }), (a.tickPadding = function (b) { return arguments.length ? ((g = +b), a) : g; }), (a.tickSubdivide = function () { return arguments.length && a; }), a ); }); var Si = "bottom", Ti = { top: 1, right: 1, bottom: 1, left: 1 }; hg.svg.brush = function () { function a(b) { b.each(function () { var b = hg.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", f).on("touchstart.brush", f), g = b.selectAll(".background").data([0]); g.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), b.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move"); var h = b.selectAll(".resize").data(p, s); h.exit().remove(), h .enter() .append("g") .attr("class", function (a) { return "resize " + a; }) .style("cursor", function (a) { return Ui[a]; }) .append("rect") .attr("x", function (a) { return /[ew]$/.test(a) ? -3 : null; }) .attr("y", function (a) { return /^[ns]/.test(a) ? -3 : null; }) .attr("width", 6) .attr("height", 6) .style("visibility", "hidden"), h.style("display", a.empty() ? "none" : null); var i, l = hg.transition(b), m = hg.transition(g); j && ((i = Re(j)), m.attr("x", i[0]).attr("width", i[1] - i[0]), d(l)), k && ((i = Re(k)), m.attr("y", i[0]).attr("height", i[1] - i[0]), e(l)), c(l); }); } function c(a) { a.selectAll(".resize").attr("transform", function (a) { return "translate(" + l[+/e$/.test(a)] + "," + m[+/^s/.test(a)] + ")"; }); } function d(a) { a.select(".extent").attr("x", l[0]), a.selectAll(".extent,.n>rect,.s>rect").attr("width", l[1] - l[0]); } function e(a) { a.select(".extent").attr("y", m[0]), a.selectAll(".extent,.e>rect,.w>rect").attr("height", m[1] - m[0]); } function f() { function f() { 32 == hg.event.keyCode && (D || ((t = null), (F[0] -= l[1]), (F[1] -= m[1]), (D = 2)), y()); } function p() { 32 == hg.event.keyCode && 2 == D && ((F[0] += l[1]), (F[1] += m[1]), (D = 0), y()); } function q() { var a = hg.mouse(v), b = !1; u && ((a[0] += u[0]), (a[1] += u[1])), D || (hg.event.altKey ? (t || (t = [(l[0] + l[1]) / 2, (m[0] + m[1]) / 2]), (F[0] = l[+(a[0] < t[0])]), (F[1] = m[+(a[1] < t[1])])) : (t = null)), B && r(a, j, 0) && (d(z), (b = !0)), C && r(a, k, 1) && (e(z), (b = !0)), b && (c(z), x({ type: "brush", mode: D ? "move" : "resize" })); } function r(a, b, c) { var d, e, f = Re(b), i = f[0], j = f[1], k = F[c], p = c ? m : l, q = p[1] - p[0]; return ( D && ((i -= k), (j -= q + k)), (d = (c ? o : n) ? Math.max(i, Math.min(j, a[c])) : a[c]), D ? (e = (d += k) + q) : (t && (k = Math.max(i, Math.min(j, 2 * t[c] - d))), d > k ? ((e = d), (d = k)) : (e = k)), p[0] != d || p[1] != e ? (c ? (h = null) : (g = null), (p[0] = d), (p[1] = e), !0) : void 0 ); } function s() { q(), z .style("pointer-events", "all") .selectAll(".resize") .style("display", a.empty() ? "none" : null), hg.select("body").style("cursor", null), G.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), E(), x({ type: "brushend" }); } var t, u, v = this, w = hg.select(hg.event.target), x = i.of(v, arguments), z = hg.select(v), A = w.datum(), B = !/^(n|s)$/.test(A) && j, C = !/^(e|w)$/.test(A) && k, D = w.classed("extent"), E = X(v), F = hg.mouse(v), G = hg.select(b(v)).on("keydown.brush", f).on("keyup.brush", p); if ((hg.event.changedTouches ? G.on("touchmove.brush", q).on("touchend.brush", s) : G.on("mousemove.brush", q).on("mouseup.brush", s), z.interrupt().selectAll("*").interrupt(), D)) (F[0] = l[0] - F[0]), (F[1] = m[0] - F[1]); else if (A) { var H = +/w$/.test(A), I = +/^n/.test(A); (u = [l[1 - H] - F[0], m[1 - I] - F[1]]), (F[0] = l[H]), (F[1] = m[I]); } else hg.event.altKey && (t = F.slice()); z.style("pointer-events", "none").selectAll(".resize").style("display", null), hg.select("body").style("cursor", w.style("cursor")), x({ type: "brushstart" }), q(); } var g, h, i = A(a, "brushstart", "brush", "brushend"), j = null, k = null, l = [0, 0], m = [0, 0], n = !0, o = !0, p = Vi[0]; return ( (a.event = function (a) { a.each(function () { var a = i.of(this, arguments), b = { x: l, y: m, i: g, j: h }, c = this.__chart__ || b; (this.__chart__ = b), Ni ? hg .select(this) .transition() .each("start.brush", function () { (g = c.i), (h = c.j), (l = c.x), (m = c.y), a({ type: "brushstart" }); }) .tween("brush:brush", function () { var c = td(l, b.x), d = td(m, b.y); return ( (g = h = null), function (e) { (l = b.x = c(e)), (m = b.y = d(e)), a({ type: "brush", mode: "resize" }); } ); }) .each("end.brush", function () { (g = b.i), (h = b.j), a({ type: "brush", mode: "resize" }), a({ type: "brushend" }); }) : (a({ type: "brushstart" }), a({ type: "brush", mode: "resize" }), a({ type: "brushend" })); }); }), (a.x = function (b) { return arguments.length ? ((j = b), (p = Vi[(!j << 1) | !k]), a) : j; }), (a.y = function (b) { return arguments.length ? ((k = b), (p = Vi[(!j << 1) | !k]), a) : k; }), (a.clamp = function (b) { return arguments.length ? (j && k ? ((n = !!b[0]), (o = !!b[1])) : j ? (n = !!b) : k && (o = !!b), a) : j && k ? [n, o] : j ? n : k ? o : null; }), (a.extent = function (b) { var c, d, e, f, i; return arguments.length ? (j && ((c = b[0]), (d = b[1]), k && ((c = c[0]), (d = d[0])), (g = [c, d]), j.invert && ((c = j(c)), (d = j(d))), c > d && ((i = c), (c = d), (d = i)), (c != l[0] || d != l[1]) && (l = [c, d])), k && ((e = b[0]), (f = b[1]), j && ((e = e[1]), (f = f[1])), (h = [e, f]), k.invert && ((e = k(e)), (f = k(f))), e > f && ((i = e), (e = f), (f = i)), (e != m[0] || f != m[1]) && (m = [e, f])), a) : (j && (g ? ((c = g[0]), (d = g[1])) : ((c = l[0]), (d = l[1]), j.invert && ((c = j.invert(c)), (d = j.invert(d))), c > d && ((i = c), (c = d), (d = i)))), k && (h ? ((e = h[0]), (f = h[1])) : ((e = m[0]), (f = m[1]), k.invert && ((e = k.invert(e)), (f = k.invert(f))), e > f && ((i = e), (e = f), (f = i)))), j && k ? [ [c, e], [d, f], ] : j ? [c, d] : k && [e, f]); }), (a.clear = function () { return a.empty() || ((l = [0, 0]), (m = [0, 0]), (g = h = null)), a; }), (a.empty = function () { return (!!j && l[0] == l[1]) || (!!k && m[0] == m[1]); }), hg.rebind(a, i, "on") ); }; var Ui = { n: "ns-resize", e: "ew-resize", s: "ns-resize", w: "ew-resize", nw: "nwse-resize", ne: "nesw-resize", se: "nwse-resize", sw: "nesw-resize" }, Vi = [["n", "e", "s", "w", "nw", "ne", "se", "sw"], ["e", "w"], ["n", "s"], []], Wi = (nh.format = th.timeFormat), Xi = Wi.utc, Yi = Xi("%Y-%m-%dT%H:%M:%S.%LZ"); (Wi.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? cg : Yi), (cg.parse = function (a) { var b = new Date(a); return isNaN(b) ? null : b; }), (cg.toString = Yi.toString), (nh.second = Oa( function (a) { return new oh(1e3 * Math.floor(a / 1e3)); }, function (a, b) { a.setTime(a.getTime() + 1e3 * Math.floor(b)); }, function (a) { return a.getSeconds(); } )), (nh.seconds = nh.second.range), (nh.seconds.utc = nh.second.utc.range), (nh.minute = Oa( function (a) { return new oh(6e4 * Math.floor(a / 6e4)); }, function (a, b) { a.setTime(a.getTime() + 6e4 * Math.floor(b)); }, function (a) { return a.getMinutes(); } )), (nh.minutes = nh.minute.range), (nh.minutes.utc = nh.minute.utc.range), (nh.hour = Oa( function (a) { var b = a.getTimezoneOffset() / 60; return new oh(36e5 * (Math.floor(a / 36e5 - b) + b)); }, function (a, b) { a.setTime(a.getTime() + 36e5 * Math.floor(b)); }, function (a) { return a.getHours(); } )), (nh.hours = nh.hour.range), (nh.hours.utc = nh.hour.utc.range), (nh.month = Oa( function (a) { return (a = nh.day(a)), a.setDate(1), a; }, function (a, b) { a.setMonth(a.getMonth() + b); }, function (a) { return a.getMonth(); } )), (nh.months = nh.month.range), (nh.months.utc = nh.month.utc.range); var Zi = [1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6], $i = [ [nh.second, 1], [nh.second, 5], [nh.second, 15], [nh.second, 30], [nh.minute, 1], [nh.minute, 5], [nh.minute, 15], [nh.minute, 30], [nh.hour, 1], [nh.hour, 3], [nh.hour, 6], [nh.hour, 12], [nh.day, 1], [nh.day, 2], [nh.week, 1], [nh.month, 1], [nh.month, 3], [nh.year, 1], ], _i = Wi.multi([ [ ".%L", function (a) { return a.getMilliseconds(); }, ], [ ":%S", function (a) { return a.getSeconds(); }, ], [ "%I:%M", function (a) { return a.getMinutes(); }, ], [ "%I %p", function (a) { return a.getHours(); }, ], [ "%a %d", function (a) { return a.getDay() && 1 != a.getDate(); }, ], [ "%b %d", function (a) { return 1 != a.getDate(); }, ], [ "%B", function (a) { return a.getMonth(); }, ], ["%Y", Db], ]), aj = { range: function (a, b, c) { return hg.range(Math.ceil(a / c) * c, +b, c).map(eg); }, floor: s, ceil: s, }; ($i.year = nh.year), (nh.scale = function () { return dg(hg.scale.linear(), $i, _i); }); var bj = $i.map(function (a) { return [a[0].utc, a[1]]; }), cj = Xi.multi([ [ ".%L", function (a) { return a.getUTCMilliseconds(); }, ], [ ":%S", function (a) { return a.getUTCSeconds(); }, ], [ "%I:%M", function (a) { return a.getUTCMinutes(); }, ], [ "%I %p", function (a) { return a.getUTCHours(); }, ], [ "%a %d", function (a) { return a.getUTCDay() && 1 != a.getUTCDate(); }, ], [ "%b %d", function (a) { return 1 != a.getUTCDate(); }, ], [ "%B", function (a) { return a.getUTCMonth(); }, ], ["%Y", Db], ]); (bj.year = nh.year.utc), (nh.scale.utc = function () { return dg(hg.scale.linear(), bj, cj); }), (hg.text = Ba(function (a) { return a.responseText; })), (hg.json = function (a, b) { return Ca(a, "application/json", fg, b); }), (hg.html = function (a, b) { return Ca(a, "text/html", gg, b); }), (hg.xml = Ba(function (a) { return a.responseXML; })), "function" == typeof define && define.amd ? ((this.d3 = hg), define(hg)) : "object" == typeof module && module.exports ? (module.exports = hg) : (this.d3 = hg); })(), (function () { "use strict"; function a(b, d) { function e(a, b) { return function () { return a.apply(b, arguments); }; } var f; if ( ((d = d || {}), (this.trackingClick = !1), (this.trackingClickStart = 0), (this.targetElement = null), (this.touchStartX = 0), (this.touchStartY = 0), (this.lastTouchIdentifier = 0), (this.touchBoundary = d.touchBoundary || 10), (this.layer = b), (this.tapDelay = d.tapDelay || 200), (this.tapTimeout = d.tapTimeout || 700), !a.notNeeded(b)) ) { for (var g = ["onMouse", "onClick", "onTouchStart", "onTouchMove", "onTouchEnd", "onTouchCancel"], h = this, i = 0, j = g.length; j > i; i++) h[g[i]] = e(h[g[i]], h); c && (b.addEventListener("mouseover", this.onMouse, !0), b.addEventListener("mousedown", this.onMouse, !0), b.addEventListener("mouseup", this.onMouse, !0)), b.addEventListener("click", this.onClick, !0), b.addEventListener("touchstart", this.onTouchStart, !1), b.addEventListener("touchmove", this.onTouchMove, !1), b.addEventListener("touchend", this.onTouchEnd, !1), b.addEventListener("touchcancel", this.onTouchCancel, !1), Event.prototype.stopImmediatePropagation || ((b.removeEventListener = function (a, c, d) { var e = Node.prototype.removeEventListener; "click" === a ? e.call(b, a, c.hijacked || c, d) : e.call(b, a, c, d); }), (b.addEventListener = function (a, c, d) { var e = Node.prototype.addEventListener; "click" === a ? e.call( b, a, c.hijacked || (c.hijacked = function (a) { a.propagationStopped || c(a); }), d ) : e.call(b, a, c, d); })), "function" == typeof b.onclick && ((f = b.onclick), b.addEventListener( "click", function (a) { f(a); }, !1 ), (b.onclick = null)); } } var b = navigator.userAgent.indexOf("Windows Phone") >= 0, c = navigator.userAgent.indexOf("Android") > 0 && !b, d = /iP(ad|hone|od)/.test(navigator.userAgent) && !b, e = d && /OS 4_\d(_\d)?/.test(navigator.userAgent), f = d && /OS [6-7]_\d/.test(navigator.userAgent), g = navigator.userAgent.indexOf("BB10") > 0; (a.prototype.needsClick = function (a) { switch (a.nodeName.toLowerCase()) { case "button": case "select": case "textarea": if (a.disabled) return !0; break; case "input": if ((d && "file" === a.type) || a.disabled) return !0; break; case "label": case "iframe": case "video": return !0; } return /\bneedsclick\b/.test(a.className); }), (a.prototype.needsFocus = function (a) { switch (a.nodeName.toLowerCase()) { case "textarea": return !0; case "select": return !c; case "input": switch (a.type) { case "button": case "checkbox": case "file": case "image": case "radio": case "submit": return !1; } return !a.disabled && !a.readOnly; default: return /\bneedsfocus\b/.test(a.className); } }), (a.prototype.sendClick = function (a, b) { var c, d; document.activeElement && document.activeElement !== a && document.activeElement.blur(), (d = b.changedTouches[0]), (c = document.createEvent("MouseEvents")), c.initMouseEvent(this.determineEventType(a), !0, !0, window, 1, d.screenX, d.screenY, d.clientX, d.clientY, !1, !1, !1, !1, 0, null), (c.forwardedTouchEvent = !0), a.dispatchEvent(c); }), (a.prototype.determineEventType = function (a) { return c && "select" === a.tagName.toLowerCase() ? "mousedown" : "click"; }), (a.prototype.focus = function (a) { var b; d && a.setSelectionRange && 0 !== a.type.indexOf("date") && "time" !== a.type && "month" !== a.type ? ((b = a.value.length), a.setSelectionRange(b, b)) : a.focus(); }), (a.prototype.updateScrollParent = function (a) { var b, c; if (((b = a.fastClickScrollParent), !b || !b.contains(a))) { c = a; do { if (c.scrollHeight > c.offsetHeight) { (b = c), (a.fastClickScrollParent = c); break; } c = c.parentElement; } while (c); } b && (b.fastClickLastScrollTop = b.scrollTop); }), (a.prototype.getTargetElementFromEventTarget = function (a) { return a.nodeType === Node.TEXT_NODE ? a.parentNode : a; }), (a.prototype.onTouchStart = function (a) { var b, c, f; if (a.targetTouches.length > 1) return !0; if (((b = this.getTargetElementFromEventTarget(a.target)), (c = a.targetTouches[0]), d)) { if (((f = window.getSelection()), f.rangeCount && !f.isCollapsed)) return !0; if (!e) { if (c.identifier && c.identifier === this.lastTouchIdentifier) return a.preventDefault(), !1; (this.lastTouchIdentifier = c.identifier), this.updateScrollParent(b); } } return ( (this.trackingClick = !0), (this.trackingClickStart = a.timeStamp), (this.targetElement = b), (this.touchStartX = c.pageX), (this.touchStartY = c.pageY), a.timeStamp - this.lastClickTime < this.tapDelay && a.preventDefault(), !0 ); }), (a.prototype.touchHasMoved = function (a) { var b = a.changedTouches[0], c = this.touchBoundary; return Math.abs(b.pageX - this.touchStartX) > c || Math.abs(b.pageY - this.touchStartY) > c ? !0 : !1; }), (a.prototype.onTouchMove = function (a) { return this.trackingClick ? ((this.targetElement !== this.getTargetElementFromEventTarget(a.target) || this.touchHasMoved(a)) && ((this.trackingClick = !1), (this.targetElement = null)), !0) : !0; }), (a.prototype.findControl = function (a) { return void 0 !== a.control ? a.control : a.htmlFor ? document.getElementById(a.htmlFor) : a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea"); }), (a.prototype.onTouchEnd = function (a) { var b, g, h, i, j, k = this.targetElement; if (!this.trackingClick) return !0; if (a.timeStamp - this.lastClickTime < this.tapDelay) return (this.cancelNextClick = !0), !0; if (a.timeStamp - this.trackingClickStart > this.tapTimeout) return !0; if ( ((this.cancelNextClick = !1), (this.lastClickTime = a.timeStamp), (g = this.trackingClickStart), (this.trackingClick = !1), (this.trackingClickStart = 0), f && ((j = a.changedTouches[0]), (k = document.elementFromPoint(j.pageX - window.pageXOffset, j.pageY - window.pageYOffset) || k), (k.fastClickScrollParent = this.targetElement.fastClickScrollParent)), (h = k.tagName.toLowerCase()), "label" === h) ) { if ((b = this.findControl(k))) { if ((this.focus(k), c)) return !1; k = b; } } else if (this.needsFocus(k)) return a.timeStamp - g > 100 || (d && window.top !== window && "input" === h) ? ((this.targetElement = null), !1) : (this.focus(k), this.sendClick(k, a), (d && "select" === h) || ((this.targetElement = null), a.preventDefault()), !1); return d && !e && ((i = k.fastClickScrollParent), i && i.fastClickLastScrollTop !== i.scrollTop) ? !0 : (this.needsClick(k) || (a.preventDefault(), this.sendClick(k, a)), !1); }), (a.prototype.onTouchCancel = function () { (this.trackingClick = !1), (this.targetElement = null); }), (a.prototype.onMouse = function (a) { return this.targetElement ? a.forwardedTouchEvent ? !0 : a.cancelable && (!this.needsClick(this.targetElement) || this.cancelNextClick) ? (a.stopImmediatePropagation ? a.stopImmediatePropagation() : (a.propagationStopped = !0), a.stopPropagation(), a.preventDefault(), !1) : !0 : !0; }), (a.prototype.onClick = function (a) { var b; return this.trackingClick ? ((this.targetElement = null), (this.trackingClick = !1), !0) : "submit" === a.target.type && 0 === a.detail ? !0 : ((b = this.onMouse(a)), b || (this.targetElement = null), b); }), (a.prototype.destroy = function () { var a = this.layer; c && (a.removeEventListener("mouseover", this.onMouse, !0), a.removeEventListener("mousedown", this.onMouse, !0), a.removeEventListener("mouseup", this.onMouse, !0)), a.removeEventListener("click", this.onClick, !0), a.removeEventListener("touchstart", this.onTouchStart, !1), a.removeEventListener("touchmove", this.onTouchMove, !1), a.removeEventListener("touchend", this.onTouchEnd, !1), a.removeEventListener("touchcancel", this.onTouchCancel, !1); }), (a.notNeeded = function (a) { var b, d, e, f; if ("undefined" == typeof window.ontouchstart) return !0; if ((d = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1])) { if (!c) return !0; if ((b = document.querySelector("meta[name=viewport]"))) { if (-1 !== b.content.indexOf("user-scalable=no")) return !0; if (d > 31 && document.documentElement.scrollWidth <= window.outerWidth) return !0; } } if (g && ((e = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/)), e[1] >= 10 && e[2] >= 3 && (b = document.querySelector("meta[name=viewport]")))) { if (-1 !== b.content.indexOf("user-scalable=no")) return !0; if (document.documentElement.scrollWidth <= window.outerWidth) return !0; } return "none" === a.style.msTouchAction || "manipulation" === a.style.touchAction ? !0 : ((f = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1]), f >= 27 && ((b = document.querySelector("meta[name=viewport]")), b && (-1 !== b.content.indexOf("user-scalable=no") || document.documentElement.scrollWidth <= window.outerWidth)) ? !0 : "none" === a.style.touchAction || "manipulation" === a.style.touchAction ? !0 : !1); }), (a.attach = function (b, c) { return new a(b, c); }), "function" == typeof define && "object" == typeof define.amd && define.amd ? define(function () { return a; }) : "undefined" != typeof module && module.exports ? ((module.exports = a.attach), (module.exports.FastClick = a)) : (window.FastClick = a); })(), (function () { function a(a, b) { return a.parent == b.parent ? 1 : 2; } function b(a, b) { return d3.rebind(a, b, "sort", "children", "value"), (a.nodes = a), (a.links = c), a; } function c(a) { return d3.merge( a.map(function (a) { return (a.children || []).map(function (b) { return { source: a, target: b }; }); }) ); } d3.layout.flextree = function () { function c(a, b) { var c = w.call(this, a, b), f = c[0], h = d(f); return (C = h), e(h, 0), g(h), q(h, 0), u(h), c; } function d(a) { var b = { t: a, prelim: 0, mod: 0, shift: 0, change: 0, msel: 0, mser: 0 }; if (((a.x = 0), (a.y = 0), z)) (b.x_size = 1), (b.y_size = 1); else if ("object" == typeof A) (b.x_size = A[0]), (b.y_size = A[1]); else { var c = A(a); (b.x_size = c[0]), (b.y_size = c[1]); } B && ((a.x_size = b.x_size), (a.y_size = b.y_size)); for (var e = [], f = a.children ? a.children.length : 0, g = 0; f > g; ++g) e.push(d(a.children[g])); return (b.children = e), (b.num_children = f), b; } function e(a, b) { (a.t.y = b), (a.t.depth = 0), f(a); } function f(a) { var b, c = a.t.y + a.y_size, d = a.t.depth + 1; for (b = 0; b < a.children.length; ++b) { var e = a.children[b]; (e.t.y = c), (e.t.parent = a.t), (e.t.depth = d), f(a.children[b]); } } function g(a) { if (0 == a.num_children) return void h(a); g(a.children[0]); for (var b = t(m(a.children[0].el), 0, null), c = 1; c < a.num_children; ++c) { g(a.children[c]); var d = m(a.children[c].er); i(a, c, b), (b = t(d, c, b)); } p(a), h(a); } function h(a) { 0 == a.num_children ? ((a.el = a), (a.er = a), (a.msel = a.mser = 0)) : ((a.el = a.children[0].el), (a.msel = a.children[0].msel), (a.er = a.children[a.num_children - 1].er), (a.mser = a.children[a.num_children - 1].mser)); } function i(a, b, c) { for (var d = a.children[b - 1], e = d.mod, f = a.children[b], g = f.mod; null != d && null != f; ) { m(d) > c.lowY && (c = c.nxt); var h = e + d.prelim - (g + f.prelim); null != x ? (h += x(d.t, f.t) * C.x_size) : null != y && (h += d.x_size / 2 + f.x_size / 2 + y(d.t, f.t)), h > 0 ? ((g += h), j(a, b, c.index, h)) : 1 === b && 0 === g && 0 === d.num_children && f.num_children > 1 && 0 > h && ((g += h), j(a, b, c.index, h)); var i = m(d), p = m(f); p >= i && ((d = l(d)), null != d && (e += d.mod)), i >= p && ((f = k(f)), null != f && (g += f.mod)); } null == d && null != f ? n(a, b, f, g) : null != d && null == f && o(a, b, d, e); } function j(a, b, c, d) { (a.children[b].mod += d), (a.children[b].msel += d), (a.children[b].mser += d), r(a, b, c, d); } function k(a) { return 0 == a.num_children ? a.tl : a.children[0]; } function l(a) { return 0 == a.num_children ? a.tr : a.children[a.num_children - 1]; } function m(a) { return a.t.y + a.y_size; } function n(a, b, c, d) { var e = a.children[0].el; e.tl = c; var f = d - c.mod - a.children[0].msel; (e.mod += f), (e.prelim -= f), (a.children[0].el = a.children[b].el), (a.children[0].msel = a.children[b].msel); } function o(a, b, c, d) { var e = a.children[b].er; e.tr = c; var f = d - c.mod - a.children[b].mser; (e.mod += f), (e.prelim -= f), (a.children[b].er = a.children[b - 1].er), (a.children[b].mser = a.children[b - 1].mser); } function p(a) { a.prelim = (a.children[0].prelim + a.children[0].mod - a.children[0].x_size / 2 + a.children[a.num_children - 1].mod + a.children[a.num_children - 1].prelim + a.children[a.num_children - 1].x_size / 2) / 2; } function q(a, b) { (b += a.mod), (a.t.x = a.prelim + b), s(a); for (var c = 0; c < a.num_children; c++) q(a.children[c], b); } function r(a, b, c, d) { if (c != b - 1) { var e = b - c; (a.children[c + 1].shift += d / e), (a.children[b].shift -= d / e), (a.children[b].change -= d - d / e); } } function s(a) { for (var b = 0, c = 0, d = 0; d < a.num_children; d++) (b += a.children[d].shift), (c += b + a.children[d].change), (a.children[d].mod += c); } function t(a, b, c) { for (; null != c && a >= c.lowY; ) c = c.nxt; return { lowY: a, index: b, nxt: c }; } function u(a) { if (null != z) { for (var b, c = a, d = a, e = a, f = [a]; (b = f.pop()); ) { var g = b.t; g.x < c.t.x && (c = b), g.x > d.t.x && (d = b), g.depth > e.t.depth && (e = b), b.children && (f = f.concat(b.children)); } var h = null == x ? 0.5 : x(c.t, d.t) / 2, i = h - c.t.x, j = z[0] / (d.t.x + h + i), k = z[1] / (e.t.depth > 0 ? e.t.depth : 1); for (f = [a]; (b = f.pop()); ) { var g = b.t; (g.x = (g.x + i) * j), (g.y = g.depth * k), B && ((g.x_size *= j), (g.y_size *= k)), b.children && (f = f.concat(b.children)); } } else { var l = a.t.x; v(a, -l); } } function v(a, b) { a.t.x += b; for (var c = 0; c < a.num_children; ++c) v(a.children[c], b); } var w = d3.layout.hierarchy().sort(null).value(null), x = a, y = null, z = [1, 1], A = null, B = !1, C = null; return ( (c.separation = function (a) { return arguments.length ? ((x = a), (y = null), c) : x; }), (c.spacing = function (a) { return arguments.length ? ((y = a), (x = null), c) : y; }), (c.size = function (a) { return arguments.length ? ((z = a), (A = null), c) : z; }), (c.nodeSize = function (a) { return arguments.length ? ((A = a), (z = null), c) : A; }), (c.setNodeSizes = function (a) { return arguments.length ? ((B = a), c) : B; }), (c.rootXSize = function () { return C ? C.x_size : null; }), b(c, w) ); }; })(), !(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) { function c(a) { var b = !!a && "length" in a && a.length, c = fa.type(a); return "function" === c || fa.isWindow(a) ? !1 : "array" === c || 0 === b || ("number" == typeof b && b > 0 && b - 1 in a); } function d(a, b, c) { if (fa.isFunction(b)) return fa.grep(a, function (a, d) { return !!b.call(a, d, a) !== c; }); if (b.nodeType) return fa.grep(a, function (a) { return (a === b) !== c; }); if ("string" == typeof b) { if (pa.test(b)) return fa.filter(b, a, c); b = fa.filter(b, a); } return fa.grep(a, function (a) { return _.call(b, a) > -1 !== c; }); } function e(a, b) { for (; (a = a[b]) && 1 !== a.nodeType; ); return a; } function f(a) { var b = {}; return ( fa.each(a.match(va) || [], function (a, c) { b[c] = !0; }), b ); } function g() { X.removeEventListener("DOMContentLoaded", g), a.removeEventListener("load", g), fa.ready(); } function h() { this.expando = fa.expando + h.uid++; } function i(a, b, c) { var d; if (void 0 === c && 1 === a.nodeType) if (((d = "data-" + b.replace(Ca, "-$&").toLowerCase()), (c = a.getAttribute(d)), "string" == typeof c)) { try { c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : Ba.test(c) ? fa.parseJSON(c) : c; } catch (e) {} Aa.set(a, b, c); } else c = void 0; return c; } function j(a, b, c, d) { var e, f = 1, g = 20, h = d ? function () { return d.cur(); } : function () { return fa.css(a, b, ""); }, i = h(), j = (c && c[3]) || (fa.cssNumber[b] ? "" : "px"), k = (fa.cssNumber[b] || ("px" !== j && +i)) && Ea.exec(fa.css(a, b)); if (k && k[3] !== j) { (j = j || k[3]), (c = c || []), (k = +i || 1); do (f = f || ".5"), (k /= f), fa.style(a, b, k + j); while (f !== (f = h() / i) && 1 !== f && --g); } return c && ((k = +k || +i || 0), (e = c[1] ? k + (c[1] + 1) * c[2] : +c[2]), d && ((d.unit = j), (d.start = k), (d.end = e))), e; } function k(a, b) { var c = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : []; return void 0 === b || (b && fa.nodeName(a, b)) ? fa.merge([a], c) : c; } function l(a, b) { for (var c = 0, d = a.length; d > c; c++) za.set(a[c], "globalEval", !b || za.get(b[c], "globalEval")); } function m(a, b, c, d, e) { for (var f, g, h, i, j, m, n = b.createDocumentFragment(), o = [], p = 0, q = a.length; q > p; p++) if (((f = a[p]), f || 0 === f)) if ("object" === fa.type(f)) fa.merge(o, f.nodeType ? [f] : f); else if (La.test(f)) { for (g = g || n.appendChild(b.createElement("div")), h = (Ia.exec(f) || ["", ""])[1].toLowerCase(), i = Ka[h] || Ka._default, g.innerHTML = i[1] + fa.htmlPrefilter(f) + i[2], m = i[0]; m--; ) g = g.lastChild; fa.merge(o, g.childNodes), (g = n.firstChild), (g.textContent = ""); } else o.push(b.createTextNode(f)); for (n.textContent = "", p = 0; (f = o[p++]); ) if (d && fa.inArray(f, d) > -1) e && e.push(f); else if (((j = fa.contains(f.ownerDocument, f)), (g = k(n.appendChild(f), "script")), j && l(g), c)) for (m = 0; (f = g[m++]); ) Ja.test(f.type || "") && c.push(f); return n; } function n() { return !0; } function o() { return !1; } function p() { try { return X.activeElement; } catch (a) {} } function q(a, b, c, d, e, f) { var g, h; if ("object" == typeof b) { "string" != typeof c && ((d = d || c), (c = void 0)); for (h in b) q(a, h, c, d, b[h], f); return a; } if ((null == d && null == e ? ((e = c), (d = c = void 0)) : null == e && ("string" == typeof c ? ((e = d), (d = void 0)) : ((e = d), (d = c), (c = void 0))), e === !1)) e = o; else if (!e) return this; return ( 1 === f && ((g = e), (e = function (a) { return fa().off(a), g.apply(this, arguments); }), (e.guid = g.guid || (g.guid = fa.guid++))), a.each(function () { fa.event.add(this, b, e, d, c); }) ); } function r(a, b) { return fa.nodeName(a, "table") && fa.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a : a; } function s(a) { return (a.type = (null !== a.getAttribute("type")) + "/" + a.type), a; } function t(a) { var b = Sa.exec(a.type); return b ? (a.type = b[1]) : a.removeAttribute("type"), a; } function u(a, b) { var c, d, e, f, g, h, i, j; if (1 === b.nodeType) { if (za.hasData(a) && ((f = za.access(a)), (g = za.set(b, f)), (j = f.events))) { delete g.handle, (g.events = {}); for (e in j) for (c = 0, d = j[e].length; d > c; c++) fa.event.add(b, e, j[e][c]); } Aa.hasData(a) && ((h = Aa.access(a)), (i = fa.extend({}, h)), Aa.set(b, i)); } } function v(a, b) { var c = b.nodeName.toLowerCase(); "input" === c && Ha.test(a.type) ? (b.checked = a.checked) : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue); } function w(a, b, c, d) { b = Z.apply([], b); var e, f, g, h, i, j, l = 0, n = a.length, o = n - 1, p = b[0], q = fa.isFunction(p); if (q || (n > 1 && "string" == typeof p && !da.checkClone && Ra.test(p))) return a.each(function (e) { var f = a.eq(e); q && (b[0] = p.call(this, e, f.html())), w(f, b, c, d); }); if (n && ((e = m(b, a[0].ownerDocument, !1, a, d)), (f = e.firstChild), 1 === e.childNodes.length && (e = f), f || d)) { for (g = fa.map(k(e, "script"), s), h = g.length; n > l; l++) (i = e), l !== o && ((i = fa.clone(i, !0, !0)), h && fa.merge(g, k(i, "script"))), c.call(a[l], i, l); if (h) for (j = g[g.length - 1].ownerDocument, fa.map(g, t), l = 0; h > l; l++) (i = g[l]), Ja.test(i.type || "") && !za.access(i, "globalEval") && fa.contains(j, i) && (i.src ? fa._evalUrl && fa._evalUrl(i.src) : fa.globalEval(i.textContent.replace(Ta, ""))); } return a; } function x(a, b, c) { for (var d, e = b ? fa.filter(b, a) : a, f = 0; null != (d = e[f]); f++) c || 1 !== d.nodeType || fa.cleanData(k(d)), d.parentNode && (c && fa.contains(d.ownerDocument, d) && l(k(d, "script")), d.parentNode.removeChild(d)); return a; } function y(a, b) { var c = fa(b.createElement(a)).appendTo(b.body), d = fa.css(c[0], "display"); return c.detach(), d; } function z(a) { var b = X, c = Va[a]; return ( c || ((c = y(a, b)), ("none" !== c && c) || ((Ua = (Ua || fa("")).appendTo(b.documentElement)), (b = Ua[0].contentDocument), b.write(), b.close(), (c = y(a, b)), Ua.detach()), (Va[a] = c)), c ); } function A(a, b, c) { var d, e, f, g, h = a.style; return ( (c = c || Ya(a)), c && ((g = c.getPropertyValue(b) || c[b]), "" !== g || fa.contains(a.ownerDocument, a) || (g = fa.style(a, b)), !da.pixelMarginRight() && Xa.test(g) && Wa.test(b) && ((d = h.width), (e = h.minWidth), (f = h.maxWidth), (h.minWidth = h.maxWidth = h.width = g), (g = c.width), (h.width = d), (h.minWidth = e), (h.maxWidth = f))), void 0 !== g ? g + "" : g ); } function B(a, b) { return { get: function () { return a() ? void delete this.get : (this.get = b).apply(this, arguments); }, }; } function C(a) { if (a in db) return a; for (var b = a[0].toUpperCase() + a.slice(1), c = cb.length; c--; ) if (((a = cb[c] + b), a in db)) return a; } function D(a, b, c) { var d = Ea.exec(b); return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b; } function E(a, b, c, d, e) { for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += fa.css(a, c + Fa[f], !0, e)), d ? ("content" === c && (g -= fa.css(a, "padding" + Fa[f], !0, e)), "margin" !== c && (g -= fa.css(a, "border" + Fa[f] + "Width", !0, e))) : ((g += fa.css(a, "padding" + Fa[f], !0, e)), "padding" !== c && (g += fa.css(a, "border" + Fa[f] + "Width", !0, e))); return g; } function F(b, c, d) { var e = !0, f = "width" === c ? b.offsetWidth : b.offsetHeight, g = Ya(b), h = "border-box" === fa.css(b, "boxSizing", !1, g); if ((X.msFullscreenElement && a.top !== a && b.getClientRects().length && (f = Math.round(100 * b.getBoundingClientRect()[c])), 0 >= f || null == f)) { if (((f = A(b, c, g)), (0 > f || null == f) && (f = b.style[c]), Xa.test(f))) return f; (e = h && (da.boxSizingReliable() || f === b.style[c])), (f = parseFloat(f) || 0); } return f + E(b, c, d || (h ? "border" : "content"), e, g) + "px"; } function G(a, b) { for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) (d = a[g]), d.style && ((f[g] = za.get(d, "olddisplay")), (c = d.style.display), b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && Ga(d) && (f[g] = za.access(d, "olddisplay", z(d.nodeName)))) : ((e = Ga(d)), ("none" === c && e) || za.set(d, "olddisplay", e ? c : fa.css(d, "display")))); for (g = 0; h > g; g++) (d = a[g]), d.style && ((b && "none" !== d.style.display && "" !== d.style.display) || (d.style.display = b ? f[g] || "" : "none")); return a; } function H(a, b, c, d, e) { return new H.prototype.init(a, b, c, d, e); } function I() { return ( a.setTimeout(function () { eb = void 0; }), (eb = fa.now()) ); } function J(a, b) { var c, d = 0, e = { height: a }; for (b = b ? 1 : 0; 4 > d; d += 2 - b) (c = Fa[d]), (e["margin" + c] = e["padding" + c] = a); return b && (e.opacity = e.width = a), e; } function K(a, b, c) { for (var d, e = (N.tweeners[b] || []).concat(N.tweeners["*"]), f = 0, g = e.length; g > f; f++) if ((d = e[f].call(c, b, a))) return d; } function L(a, b, c) { var d, e, f, g, h, i, j, k, l = this, m = {}, n = a.style, o = a.nodeType && Ga(a), p = za.get(a, "fxshow"); c.queue || ((h = fa._queueHooks(a, "fx")), null == h.unqueued && ((h.unqueued = 0), (i = h.empty.fire), (h.empty.fire = function () { h.unqueued || i(); })), h.unqueued++, l.always(function () { l.always(function () { h.unqueued--, fa.queue(a, "fx").length || h.empty.fire(); }); })), 1 === a.nodeType && ("height" in b || "width" in b) && ((c.overflow = [n.overflow, n.overflowX, n.overflowY]), (j = fa.css(a, "display")), (k = "none" === j ? za.get(a, "olddisplay") || z(a.nodeName) : j), "inline" === k && "none" === fa.css(a, "float") && (n.display = "inline-block")), c.overflow && ((n.overflow = "hidden"), l.always(function () { (n.overflow = c.overflow[0]), (n.overflowX = c.overflow[1]), (n.overflowY = c.overflow[2]); })); for (d in b) if (((e = b[d]), gb.exec(e))) { if ((delete b[d], (f = f || "toggle" === e), e === (o ? "hide" : "show"))) { if ("show" !== e || !p || void 0 === p[d]) continue; o = !0; } m[d] = (p && p[d]) || fa.style(a, d); } else j = void 0; if (fa.isEmptyObject(m)) "inline" === ("none" === j ? z(a.nodeName) : j) && (n.display = j); else { p ? "hidden" in p && (o = p.hidden) : (p = za.access(a, "fxshow", {})), f && (p.hidden = !o), o ? fa(a).show() : l.done(function () { fa(a).hide(); }), l.done(function () { var b; za.remove(a, "fxshow"); for (b in m) fa.style(a, b, m[b]); }); for (d in m) (g = K(o ? p[d] : 0, d, l)), d in p || ((p[d] = g.start), o && ((g.end = g.start), (g.start = "width" === d || "height" === d ? 1 : 0))); } } function M(a, b) { var c, d, e, f, g; for (c in a) if (((d = fa.camelCase(c)), (e = b[d]), (f = a[c]), fa.isArray(f) && ((e = f[1]), (f = a[c] = f[0])), c !== d && ((a[d] = f), delete a[c]), (g = fa.cssHooks[d]), g && "expand" in g)) { (f = g.expand(f)), delete a[d]; for (c in f) c in a || ((a[c] = f[c]), (b[c] = e)); } else b[d] = e; } function N(a, b, c) { var d, e, f = 0, g = N.prefilters.length, h = fa.Deferred().always(function () { delete i.elem; }), i = function () { if (e) return !1; for (var b = eb || I(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f); return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1); }, j = h.promise({ elem: a, props: fa.extend({}, b), opts: fa.extend(!0, { specialEasing: {}, easing: fa.easing._default }, c), originalProperties: b, originalOptions: c, startTime: eb || I(), duration: c.duration, tweens: [], createTween: function (b, c) { var d = fa.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); return j.tweens.push(d), d; }, stop: function (b) { var c = 0, d = b ? j.tweens.length : 0; if (e) return this; for (e = !0; d > c; c++) j.tweens[c].run(1); return b ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), this; }, }), k = j.props; for (M(k, j.opts.specialEasing); g > f; f++) if ((d = N.prefilters[f].call(j, a, k, j.opts))) return fa.isFunction(d.stop) && (fa._queueHooks(j.elem, j.opts.queue).stop = fa.proxy(d.stop, d)), d; return ( fa.map(k, K, j), fa.isFunction(j.opts.start) && j.opts.start.call(a, j), fa.fx.timer(fa.extend(i, { elem: a, anim: j, queue: j.opts.queue })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) ); } function O(a) { return (a.getAttribute && a.getAttribute("class")) || ""; } function P(a) { return function (b, c) { "string" != typeof b && ((c = b), (b = "*")); var d, e = 0, f = b.toLowerCase().match(va) || []; if (fa.isFunction(c)) for (; (d = f[e++]); ) "+" === d[0] ? ((d = d.slice(1) || "*"), (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c); }; } function Q(a, b, c, d) { function e(h) { var i; return ( (f[h] = !0), fa.each(a[h] || [], function (a, h) { var j = h(b, c, d); return "string" != typeof j || g || f[j] ? (g ? !(i = j) : void 0) : (b.dataTypes.unshift(j), e(j), !1); }), i ); } var f = {}, g = a === zb; return e(b.dataTypes[0]) || (!f["*"] && e("*")); } function R(a, b) { var c, d, e = fa.ajaxSettings.flatOptions || {}; for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]); return d && fa.extend(!0, a, d), a; } function S(a, b, c) { for (var d, e, f, g, h = a.contents, i = a.dataTypes; "*" === i[0]; ) i.shift(), void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type")); if (d) for (e in h) if (h[e] && h[e].test(d)) { i.unshift(e); break; } if (i[0] in c) f = i[0]; else { for (e in c) { if (!i[0] || a.converters[e + " " + i[0]]) { f = e; break; } g || (g = e); } f = f || g; } return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0; } function T(a, b, c, d) { var e, f, g, h, i, j = {}, k = a.dataTypes.slice(); if (k[1]) for (g in a.converters) j[g.toLowerCase()] = a.converters[g]; for (f = k.shift(); f; ) if ((a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), (i = f), (f = k.shift()))) if ("*" === f) f = i; else if ("*" !== i && i !== f) { if (((g = j[i + " " + f] || j["* " + f]), !g)) for (e in j) if (((h = e.split(" ")), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]]))) { g === !0 ? (g = j[e]) : j[e] !== !0 && ((f = h[0]), k.unshift(h[1])); break; } if (g !== !0) if (g && a["throws"]) b = g(b); else try { b = g(b); } catch (l) { return { state: "parsererror", error: g ? l : "No conversion from " + i + " to " + f }; } } return { state: "success", data: b }; } function U(a, b, c, d) { var e; if (fa.isArray(b)) fa.each(b, function (b, e) { c || Db.test(a) ? d(a, e) : U(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d); }); else if (c || "object" !== fa.type(b)) d(a, b); else for (e in b) U(a + "[" + e + "]", b[e], c, d); } function V(a) { return fa.isWindow(a) ? a : 9 === a.nodeType && a.defaultView; } var W = [], X = a.document, Y = W.slice, Z = W.concat, $ = W.push, _ = W.indexOf, aa = {}, ba = aa.toString, ca = aa.hasOwnProperty, da = {}, ea = "2.2.0", fa = function (a, b) { return new fa.fn.init(a, b); }, ga = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ha = /^-ms-/, ia = /-([\da-z])/gi, ja = function (a, b) { return b.toUpperCase(); }; (fa.fn = fa.prototype = { jquery: ea, constructor: fa, selector: "", length: 0, toArray: function () { return Y.call(this); }, get: function (a) { return null != a ? (0 > a ? this[a + this.length] : this[a]) : Y.call(this); }, pushStack: function (a) { var b = fa.merge(this.constructor(), a); return (b.prevObject = this), (b.context = this.context), b; }, each: function (a) { return fa.each(this, a); }, map: function (a) { return this.pushStack( fa.map(this, function (b, c) { return a.call(b, c, b); }) ); }, slice: function () { return this.pushStack(Y.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(); }, push: $, sort: W.sort, splice: W.splice, }), (fa.extend = fa.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 || fa.isFunction(g) || (g = {}), h === i && ((g = this), h--); i > h; h++) if (null != (a = arguments[h])) for (b in a) (c = g[b]), (d = a[b]), g !== d && (j && d && (fa.isPlainObject(d) || (e = fa.isArray(d))) ? (e ? ((e = !1), (f = c && fa.isArray(c) ? c : [])) : (f = c && fa.isPlainObject(c) ? c : {}), (g[b] = fa.extend(j, f, d))) : void 0 !== d && (g[b] = d)); return g; }), fa.extend({ expando: "jQuery" + (ea + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (a) { throw new Error(a); }, noop: function () {}, isFunction: function (a) { return "function" === fa.type(a); }, isArray: Array.isArray, isWindow: function (a) { return null != a && a === a.window; }, isNumeric: function (a) { var b = a && a.toString(); return !fa.isArray(a) && b - parseFloat(b) + 1 >= 0; }, isPlainObject: function (a) { return "object" !== fa.type(a) || a.nodeType || fa.isWindow(a) ? !1 : a.constructor && !ca.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0; }, isEmptyObject: function (a) { var b; for (b in a) return !1; return !0; }, type: function (a) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? aa[ba.call(a)] || "object" : typeof a; }, globalEval: function (a) { var b, c = eval; (a = fa.trim(a)), a && (1 === a.indexOf("use strict") ? ((b = X.createElement("script")), (b.text = a), X.head.appendChild(b).parentNode.removeChild(b)) : c(a)); }, camelCase: function (a) { return a.replace(ha, "ms-").replace(ia, ja); }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase(); }, each: function (a, b) { var d, e = 0; if (c(a)) for (d = a.length; d > e && b.call(a[e], e, a[e]) !== !1; e++); else for (e in a) if (b.call(a[e], e, a[e]) === !1) break; return a; }, trim: function (a) { return null == a ? "" : (a + "").replace(ga, ""); }, makeArray: function (a, b) { var d = b || []; return null != a && (c(Object(a)) ? fa.merge(d, "string" == typeof a ? [a] : a) : $.call(d, a)), d; }, inArray: function (a, b, c) { return null == b ? -1 : _.call(b, a, c); }, merge: function (a, b) { for (var c = +b.length, d = 0, e = a.length; c > d; 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, d) { var e, f, g = 0, h = []; if (c(a)) for (e = a.length; e > g; g++) (f = b(a[g], g, d)), null != f && h.push(f); else for (g in a) (f = b(a[g], g, d)), null != f && h.push(f); return Z.apply([], h); }, guid: 1, proxy: function (a, b) { var c, d, e; return ( "string" == typeof b && ((c = a[b]), (b = a), (a = c)), fa.isFunction(a) ? ((d = Y.call(arguments, 2)), (e = function () { return a.apply(b || this, d.concat(Y.call(arguments))); }), (e.guid = a.guid = a.guid || fa.guid++), e) : void 0 ); }, now: Date.now, support: da, }), "function" == typeof Symbol && (fa.fn[Symbol.iterator] = W[Symbol.iterator]), fa.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (a, b) { aa["[object " + b + "]"] = b.toLowerCase(); }); var ka = (function (a) { function b(a, b, c, d) { var e, f, g, h, i, j, l, n, o = b && b.ownerDocument, p = b ? b.nodeType : 9; if (((c = c || []), "string" != typeof a || !a || (1 !== p && 9 !== p && 11 !== p))) return c; if (!d && ((b ? b.ownerDocument || b : O) !== G && F(b), (b = b || G), I)) { if (11 !== p && (j = ra.exec(a))) if ((e = j[1])) { if (9 === p) { if (!(g = b.getElementById(e))) return c; if (g.id === e) return c.push(g), c; } else if (o && (g = o.getElementById(e)) && M(b, g) && g.id === e) return c.push(g), c; } else { if (j[2]) return $.apply(c, b.getElementsByTagName(a)), c; if ((e = j[3]) && v.getElementsByClassName && b.getElementsByClassName) return $.apply(c, b.getElementsByClassName(e)), c; } if (v.qsa && !T[a + " "] && (!J || !J.test(a))) { if (1 !== p) (o = b), (n = a); else if ("object" !== b.nodeName.toLowerCase()) { for ((h = b.getAttribute("id")) ? (h = h.replace(ta, "\\$&")) : b.setAttribute("id", (h = N)), l = z(a), f = l.length, i = ma.test(h) ? "#" + h : "[id='" + h + "']"; f--; ) l[f] = i + " " + m(l[f]); (n = l.join(",")), (o = (sa.test(a) && k(b.parentNode)) || b); } if (n) try { return $.apply(c, o.querySelectorAll(n)), c; } catch (q) { } finally { h === N && b.removeAttribute("id"); } } } return B(a.replace(ha, "$1"), b, c, d); } function c() { function a(c, d) { return b.push(c + " ") > w.cacheLength && delete a[b.shift()], (a[c + " "] = d); } var b = []; return a; } function d(a) { return (a[N] = !0), a; } function e(a) { var b = G.createElement("div"); try { return !!a(b); } catch (c) { return !1; } finally { b.parentNode && b.parentNode.removeChild(b), (b = null); } } function f(a, b) { for (var c = a.split("|"), d = c.length; d--; ) w.attrHandle[c[d]] = b; } function g(a, b) { var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V); if (d) return d; if (c) for (; (c = c.nextSibling); ) if (c === b) return -1; return a ? 1 : -1; } function h(a) { return function (b) { var c = b.nodeName.toLowerCase(); return "input" === c && b.type === a; }; } function i(a) { return function (b) { var c = b.nodeName.toLowerCase(); return ("input" === c || "button" === c) && b.type === a; }; } function j(a) { return d(function (b) { return ( (b = +b), d(function (c, d) { for (var e, f = a([], c.length, b), g = f.length; g--; ) c[(e = f[g])] && (c[e] = !(d[e] = c[e])); }) ); }); } function k(a) { return a && "undefined" != typeof a.getElementsByTagName && a; } function l() {} function m(a) { for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value; return d; } function n(a, b, c) { var d = b.dir, e = c && "parentNode" === d, f = Q++; return b.first ? function (b, c, f) { for (; (b = b[d]); ) if (1 === b.nodeType || e) return a(b, c, f); } : function (b, c, g) { var h, i, j, k = [P, f]; if (g) { for (; (b = b[d]); ) if ((1 === b.nodeType || e) && a(b, c, g)) return !0; } else for (; (b = b[d]); ) if (1 === b.nodeType || e) { if (((j = b[N] || (b[N] = {})), (i = j[b.uniqueID] || (j[b.uniqueID] = {})), (h = i[d]) && h[0] === P && h[1] === f)) return (k[2] = h[2]); if (((i[d] = k), (k[2] = a(b, c, g)))) return !0; } }; } function o(a) { return a.length > 1 ? function (b, c, d) { for (var e = a.length; e--; ) if (!a[e](b, c, d)) return !1; return !0; } : a[0]; } function p(a, c, d) { for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d); return d; } function q(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 r(a, b, c, e, f, g) { return ( e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function (d, g, h, i) { var j, k, l, m = [], n = [], o = g.length, r = d || p(b || "*", h.nodeType ? [h] : h, []), s = !a || (!d && b) ? r : q(r, m, a, h, i), t = c ? (f || (d ? a : o || e) ? [] : g) : s; if ((c && c(s, t, h, i), e)) for (j = q(t, n), e(j, [], h, i), k = j.length; k--; ) (l = j[k]) && (t[n[k]] = !(s[n[k]] = l)); if (d) { if (f || a) { if (f) { for (j = [], k = t.length; k--; ) (l = t[k]) && j.push((s[k] = l)); f(null, (t = []), j, i); } for (k = t.length; k--; ) (l = t[k]) && (j = f ? aa(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l)); } } else (t = q(t === g ? t.splice(o, t.length) : t)), f ? f(null, g, t, i) : $.apply(g, t); }) ); } function s(a) { for ( var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[" "], h = f ? 1 : 0, i = n( function (a) { return a === b; }, g, !0 ), j = n( function (a) { return aa(b, a) > -1; }, g, !0 ), k = [ function (a, c, d) { var e = (!f && (d || c !== C)) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d)); return (b = null), e; }, ]; e > h; h++ ) if ((c = w.relative[a[h].type])) k = [n(o(k), c)]; else { if (((c = w.filter[a[h].type].apply(null, a[h].matches)), c[N])) { for (d = ++h; e > d && !w.relative[a[d].type]; d++); return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({ value: " " === a[h - 2].type ? "*" : "" })).replace(ha, "$1"), c, d > h && s(a.slice(h, d)), e > d && s((a = a.slice(d))), e > d && m(a)); } k.push(c); } return o(k); } function t(a, c) { var e = c.length > 0, f = a.length > 0, g = function (d, g, h, i, j) { var k, l, m, n = 0, o = "0", p = d && [], r = [], s = C, t = d || (f && w.find.TAG("*", j)), u = (P += null == s ? 1 : Math.random() || 0.1), v = t.length; for (j && (C = g === G || g || j); o !== v && null != (k = t[o]); o++) { if (f && k) { for (l = 0, g || k.ownerDocument === G || (F(k), (h = !I)); (m = a[l++]); ) if (m(k, g || G, h)) { i.push(k); break; } j && (P = u); } e && ((k = !m && k) && n--, d && p.push(k)); } if (((n += o), e && o !== n)) { for (l = 0; (m = c[l++]); ) m(p, r, g, h); if (d) { if (n > 0) for (; o--; ) p[o] || r[o] || (r[o] = Y.call(i)); r = q(r); } $.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i); } return j && ((P = u), (C = s)), p; }; return e ? d(g) : g; } var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = "sizzle" + 1 * new Date(), O = a.document, P = 0, Q = 0, R = c(), S = c(), T = c(), U = function (a, b) { return a === b && (E = !0), 0; }, V = 1 << 31, W = {}.hasOwnProperty, X = [], Y = X.pop, Z = X.push, $ = X.push, _ = X.slice, aa = function (a, b) { for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c; return -1; }, ba = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", ca = "[\\x20\\t\\r\\n\\f]", da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", ea = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + ca + "*\\]", fa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ea + ")*)|.*)\\)|)", ga = new RegExp(ca + "+", "g"), ha = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"), ia = new RegExp("^" + ca + "*," + ca + "*"), ja = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"), ka = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"), la = new RegExp(fa), ma = new RegExp("^" + da + "$"), na = { ID: new RegExp("^#(" + da + ")"), CLASS: new RegExp("^\\.(" + da + ")"), TAG: new RegExp("^(" + da + "|[*])"), ATTR: new RegExp("^" + ea), PSEUDO: new RegExp("^" + fa), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ca + "*(even|odd|(([+-]|)(\\d*)n|)" + ca + "*(?:([+-]|)" + ca + "*(\\d+)|))" + ca + "*\\)|)", "i"), bool: new RegExp("^(?:" + ba + ")$", "i"), needsContext: new RegExp("^" + ca + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ca + "*((?:-\\d)?\\d*)" + ca + "*\\)|)(?=[^-]|$)", "i"), }, oa = /^(?:input|select|textarea|button)$/i, pa = /^h\d$/i, qa = /^[^{]+\{\s*\[native \w/, ra = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, sa = /[+~]/, ta = /'|\\/g, ua = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"), va = 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); }, wa = function () { F(); }; try { $.apply((X = _.call(O.childNodes)), O.childNodes), X[O.childNodes.length].nodeType; } catch (xa) { $ = { apply: X.length ? function (a, b) { Z.apply(a, _.call(b)); } : function (a, b) { for (var c = a.length, d = 0; (a[c++] = b[d++]); ); a.length = c - 1; }, }; } (v = b.support = {}), (y = b.isXML = function (a) { var b = a && (a.ownerDocument || a).documentElement; return b ? "HTML" !== b.nodeName : !1; }), (F = b.setDocument = function (a) { var b, c, d = a ? a.ownerDocument || a : O; return d !== G && 9 === d.nodeType && d.documentElement ? ((G = d), (H = G.documentElement), (I = !y(G)), (c = G.defaultView) && c.top !== c && (c.addEventListener ? c.addEventListener("unload", wa, !1) : c.attachEvent && c.attachEvent("onunload", wa)), (v.attributes = e(function (a) { return (a.className = "i"), !a.getAttribute("className"); })), (v.getElementsByTagName = e(function (a) { return a.appendChild(G.createComment("")), !a.getElementsByTagName("*").length; })), (v.getElementsByClassName = qa.test(G.getElementsByClassName)), (v.getById = e(function (a) { return (H.appendChild(a).id = N), !G.getElementsByName || !G.getElementsByName(N).length; })), v.getById ? ((w.find.ID = function (a, b) { if ("undefined" != typeof b.getElementById && I) { var c = b.getElementById(a); return c ? [c] : []; } }), (w.filter.ID = function (a) { var b = a.replace(ua, va); return function (a) { return a.getAttribute("id") === b; }; })) : (delete w.find.ID, (w.filter.ID = function (a) { var b = a.replace(ua, va); return function (a) { var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); return c && c.value === b; }; })), (w.find.TAG = v.getElementsByTagName ? function (a, b) { return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0; } : function (a, b) { var c, d = [], e = 0, f = b.getElementsByTagName(a); if ("*" === a) { for (; (c = f[e++]); ) 1 === c.nodeType && d.push(c); return d; } return f; }), (w.find.CLASS = v.getElementsByClassName && function (a, b) { return "undefined" != typeof b.getElementsByClassName && I ? b.getElementsByClassName(a) : void 0; }), (K = []), (J = []), (v.qsa = qa.test(G.querySelectorAll)) && (e(function (a) { (H.appendChild(a).innerHTML = ""), a.querySelectorAll("[msallowcapture^='']").length && J.push("[*^$]=" + ca + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || J.push("\\[" + ca + "*(?:value|" + ba + ")"), a.querySelectorAll("[id~=" + N + "-]").length || J.push("~="), a.querySelectorAll(":checked").length || J.push(":checked"), a.querySelectorAll("a#" + N + "+*").length || J.push(".#.+[+~]"); }), e(function (a) { var b = G.createElement("input"); b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && J.push("name" + ca + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || J.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), J.push(",.*:"); })), (v.matchesSelector = qa.test((L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector))) && e(function (a) { (v.disconnectedMatch = L.call(a, "div")), L.call(a, "[s!='']:x"), K.push("!=", fa); }), (J = J.length && new RegExp(J.join("|"))), (K = K.length && new RegExp(K.join("|"))), (b = qa.test(H.compareDocumentPosition)), (M = b || qa.test(H.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) for (; (b = b.parentNode); ) if (b === a) return !0; return !1; }), (U = b ? function (a, b) { if (a === b) return (E = !0), 0; var c = !a.compareDocumentPosition - !b.compareDocumentPosition; return c ? c : ((c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1), 1 & c || (!v.sortDetached && b.compareDocumentPosition(a) === c) ? a === G || (a.ownerDocument === O && M(O, a)) ? -1 : b === G || (b.ownerDocument === O && M(O, b)) ? 1 : D ? aa(D, a) - aa(D, b) : 0 : 4 & c ? -1 : 1); } : function (a, b) { if (a === b) return (E = !0), 0; var c, d = 0, e = a.parentNode, f = b.parentNode, h = [a], i = [b]; if (!e || !f) return a === G ? -1 : b === G ? 1 : e ? -1 : f ? 1 : D ? aa(D, a) - aa(D, b) : 0; if (e === f) return g(a, b); for (c = a; (c = c.parentNode); ) h.unshift(c); for (c = b; (c = c.parentNode); ) i.unshift(c); for (; h[d] === i[d]; ) d++; return d ? g(h[d], i[d]) : h[d] === O ? -1 : i[d] === O ? 1 : 0; }), G) : G; }), (b.matches = function (a, c) { return b(a, null, null, c); }), (b.matchesSelector = function (a, c) { if (((a.ownerDocument || a) !== G && F(a), (c = c.replace(ka, "='$1']")), v.matchesSelector && I && !T[c + " "] && (!K || !K.test(c)) && (!J || !J.test(c)))) try { var d = L.call(a, c); if (d || v.disconnectedMatch || (a.document && 11 !== a.document.nodeType)) return d; } catch (e) {} return b(c, G, null, [a]).length > 0; }), (b.contains = function (a, b) { return (a.ownerDocument || a) !== G && F(a), M(a, b); }), (b.attr = function (a, b) { (a.ownerDocument || a) !== G && F(a); var c = w.attrHandle[b.toLowerCase()], d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0; return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null; }), (b.error = function (a) { throw new Error("Syntax error, unrecognized expression: " + a); }), (b.uniqueSort = function (a) { var b, c = [], d = 0, e = 0; if (((E = !v.detectDuplicates), (D = !v.sortStable && a.slice(0)), a.sort(U), E)) { for (; (b = a[e++]); ) b === a[e] && (d = c.push(e)); for (; d--; ) a.splice(c[d], 1); } return (D = null), a; }), (x = b.getText = function (a) { var b, c = "", d = 0, e = a.nodeType; if (e) { if (1 === e || 9 === e || 11 === e) { if ("string" == typeof a.textContent) return a.textContent; for (a = a.firstChild; a; a = a.nextSibling) c += x(a); } else if (3 === e || 4 === e) return a.nodeValue; } else for (; (b = a[d++]); ) c += x(b); return c; }), (w = b.selectors = { cacheLength: 50, createPseudo: d, match: na, 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(ua, va)), (a[3] = (a[3] || a[4] || a[5] || "").replace(ua, va)), "~=" === 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] || b.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] && b.error(a[0]), a ); }, PSEUDO: function (a) { var b, c = !a[6] && a[2]; return na.CHILD.test(a[0]) ? null : (a[3] ? (a[2] = a[4] || a[5] || "") : c && la.test(c) && (b = z(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(ua, va).toLowerCase(); return "*" === a ? function () { return !0; } : function (a) { return a.nodeName && a.nodeName.toLowerCase() === b; }; }, CLASS: function (a) { var b = R[a + " "]; return ( b || ((b = new RegExp("(^|" + ca + ")" + a + "(" + ca + "|$)")) && R(a, function (a) { return b.test(("string" == typeof a.className && a.className) || ("undefined" != typeof a.getAttribute && a.getAttribute("class")) || ""); })) ); }, ATTR: function (a, c, d) { return function (e) { var f = b.attr(e, a); return null == f ? "!=" === c : c ? ((f += ""), "=" === c ? f === d : "!=" === c ? f !== d : "^=" === c ? d && 0 === f.indexOf(d) : "*=" === c ? d && f.indexOf(d) > -1 : "$=" === c ? d && f.slice(-d.length) === d : "~=" === c ? (" " + f.replace(ga, " ") + " ").indexOf(d) > -1 : "|=" === c ? f === d || f.slice(0, d.length + 1) === d + "-" : !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, t = !1; if (q) { if (f) { for (; p; ) { for (m = b; (m = m[p]); ) if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1; o = p = "only" === a && !o && "nextSibling"; } return !0; } if (((o = [g ? q.firstChild : q.lastChild]), g && s)) { for ( m = q, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n && j[2], m = n && q.childNodes[n]; (m = (++n && m && m[p]) || (t = n = 0) || o.pop()); ) if (1 === m.nodeType && ++t && m === b) { k[a] = [P, n, t]; break; } } else if ((s && ((m = b), (l = m[N] || (m[N] = {})), (k = l[m.uniqueID] || (l[m.uniqueID] = {})), (j = k[a] || []), (n = j[0] === P && j[1]), (t = n)), t === !1)) for ( ; (m = (++n && m && m[p]) || (t = n = 0) || o.pop()) && ((h ? m.nodeName.toLowerCase() !== r : 1 !== m.nodeType) || !++t || (s && ((l = m[N] || (m[N] = {})), (k = l[m.uniqueID] || (l[m.uniqueID] = {})), (k[a] = [P, t])), m !== b)); ); return (t -= e), t === d || (t % d === 0 && t / d >= 0); } }; }, PSEUDO: function (a, c) { var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error("unsupported pseudo: " + a); return f[N] ? f(c) : f.length > 1 ? ((e = [a, a, "", c]), w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function (a, b) { for (var d, e = f(a, c), g = e.length; g--; ) (d = aa(a, e[g])), (a[d] = !(b[d] = e[g])); }) : function (a) { return f(a, 0, e); }) : f; }, }, pseudos: { not: d(function (a) { var b = [], c = [], e = A(a.replace(ha, "$1")); return e[N] ? d(function (a, b, c, d) { for (var f, g = e(a, null, d, []), h = a.length; h--; ) (f = g[h]) && (a[h] = !(b[h] = f)); }) : function (a, d, f) { return (b[0] = a), e(b, null, f, c), (b[0] = null), !c.pop(); }; }), has: d(function (a) { return function (c) { return b(a, c).length > 0; }; }), contains: d(function (a) { return ( (a = a.replace(ua, va)), function (b) { return (b.textContent || b.innerText || x(b)).indexOf(a) > -1; } ); }), lang: d(function (a) { return ( ma.test(a || "") || b.error("unsupported lang: " + a), (a = a.replace(ua, va).toLowerCase()), function (b) { var c; do if ((c = I ? 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 === H; }, focus: function (a) { return a === G.activeElement && (!G.hasFocus || G.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 !w.pseudos.empty(a); }, header: function (a) { return pa.test(a.nodeName); }, input: function (a) { return oa.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: j(function () { return [0]; }), last: j(function (a, b) { return [b - 1]; }), eq: j(function (a, b, c) { return [0 > c ? c + b : c]; }), even: j(function (a, b) { for (var c = 0; b > c; c += 2) a.push(c); return a; }), odd: j(function (a, b) { for (var c = 1; b > c; c += 2) a.push(c); return a; }), lt: j(function (a, b, c) { for (var d = 0 > c ? c + b : c; --d >= 0; ) a.push(d); return a; }), gt: j(function (a, b, c) { for (var d = 0 > c ? c + b : c; ++d < b; ) a.push(d); return a; }), }, }), (w.pseudos.nth = w.pseudos.eq); for (u in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) w.pseudos[u] = h(u); for (u in { submit: !0, reset: !0 }) w.pseudos[u] = i(u); return ( (l.prototype = w.filters = w.pseudos), (w.setFilters = new l()), (z = b.tokenize = function (a, c) { var d, e, f, g, h, i, j, k = S[a + " "]; if (k) return c ? 0 : k.slice(0); for (h = a, i = [], j = w.preFilter; h; ) { (!d || (e = ia.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push((f = []))), (d = !1), (e = ja.exec(h)) && ((d = e.shift()), f.push({ value: d, type: e[0].replace(ha, " ") }), (h = h.slice(d.length))); for (g in w.filter) !(e = na[g].exec(h)) || (j[g] && !(e = j[g](e))) || ((d = e.shift()), f.push({ value: d, type: g, matches: e }), (h = h.slice(d.length))); if (!d) break; } return c ? h.length : h ? b.error(a) : S(a, i).slice(0); }), (A = b.compile = function (a, b) { var c, d = [], e = [], f = T[a + " "]; if (!f) { for (b || (b = z(a)), c = b.length; c--; ) (f = s(b[c])), f[N] ? d.push(f) : e.push(f); (f = T(a, t(e, d))), (f.selector = a); } return f; }), (B = b.select = function (a, b, c, d) { var e, f, g, h, i, j = "function" == typeof a && a, l = !d && z((a = j.selector || a)); if (((c = c || []), 1 === l.length)) { if (((f = l[0] = l[0].slice(0)), f.length > 2 && "ID" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type])) { if (((b = (w.find.ID(g.matches[0].replace(ua, va), b) || [])[0]), !b)) return c; j && (b = b.parentNode), (a = a.slice(f.shift().value.length)); } for (e = na.needsContext.test(a) ? 0 : f.length; e-- && ((g = f[e]), !w.relative[(h = g.type)]); ) if ((i = w.find[h]) && (d = i(g.matches[0].replace(ua, va), (sa.test(f[0].type) && k(b.parentNode)) || b))) { if ((f.splice(e, 1), (a = d.length && m(f)), !a)) return $.apply(c, d), c; break; } } return (j || A(a, l))(d, b, !I, c, !b || (sa.test(a) && k(b.parentNode)) || b), c; }), (v.sortStable = N.split("").sort(U).join("") === N), (v.detectDuplicates = !!E), F(), (v.sortDetached = e(function (a) { return 1 & a.compareDocumentPosition(G.createElement("div")); })), e(function (a) { return (a.innerHTML = ""), "#" === a.firstChild.getAttribute("href"); }) || f("type|href|height|width", function (a, b, c) { return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2); }), (v.attributes && e(function (a) { return (a.innerHTML = ""), a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value"); })) || f("value", function (a, b, c) { return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue; }), e(function (a) { return null == a.getAttribute("disabled"); }) || f(ba, function (a, b, c) { var d; return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null; }), b ); })(a); (fa.find = ka), (fa.expr = ka.selectors), (fa.expr[":"] = fa.expr.pseudos), (fa.uniqueSort = fa.unique = ka.uniqueSort), (fa.text = ka.getText), (fa.isXMLDoc = ka.isXML), (fa.contains = ka.contains); var la = function (a, b, c) { for (var d = [], e = void 0 !== c; (a = a[b]) && 9 !== a.nodeType; ) if (1 === a.nodeType) { if (e && fa(a).is(c)) break; d.push(a); } return d; }, ma = function (a, b) { for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a); return c; }, na = fa.expr.match.needsContext, oa = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, pa = /^.[^:#\[\.,]*$/; (fa.filter = function (a, b, c) { var d = b[0]; return ( c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? fa.find.matchesSelector(d, a) ? [d] : [] : fa.find.matches( a, fa.grep(b, function (a) { return 1 === a.nodeType; }) ) ); }), fa.fn.extend({ find: function (a) { var b, c = this.length, d = [], e = this; if ("string" != typeof a) return this.pushStack( fa(a).filter(function () { for (b = 0; c > b; b++) if (fa.contains(e[b], this)) return !0; }) ); for (b = 0; c > b; b++) fa.find(a, e[b], d); return (d = this.pushStack(c > 1 ? fa.unique(d) : d)), (d.selector = this.selector ? this.selector + " " + a : a), d; }, filter: function (a) { return this.pushStack(d(this, a || [], !1)); }, not: function (a) { return this.pushStack(d(this, a || [], !0)); }, is: function (a) { return !!d(this, "string" == typeof a && na.test(a) ? fa(a) : a || [], !1).length; }, }); var qa, ra = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, sa = (fa.fn.init = function (a, b, c) { var d, e; if (!a) return this; if (((c = c || qa), "string" == typeof a)) { if (((d = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : ra.exec(a)), !d || (!d[1] && b))) return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a); if (d[1]) { if (((b = b instanceof fa ? b[0] : b), fa.merge(this, fa.parseHTML(d[1], b && b.nodeType ? b.ownerDocument || b : X, !0)), oa.test(d[1]) && fa.isPlainObject(b))) for (d in b) fa.isFunction(this[d]) ? this[d](b[d]) : this.attr(d, b[d]); return this; } return (e = X.getElementById(d[2])), e && e.parentNode && ((this.length = 1), (this[0] = e)), (this.context = X), (this.selector = a), this; } return a.nodeType ? ((this.context = this[0] = a), (this.length = 1), this) : fa.isFunction(a) ? void 0 !== c.ready ? c.ready(a) : a(fa) : (void 0 !== a.selector && ((this.selector = a.selector), (this.context = a.context)), fa.makeArray(a, this)); }); (sa.prototype = fa.fn), (qa = fa(X)); var ta = /^(?:parents|prev(?:Until|All))/, ua = { children: !0, contents: !0, next: !0, prev: !0 }; fa.fn.extend({ has: function (a) { var b = fa(a, this), c = b.length; return this.filter(function () { for (var a = 0; c > a; a++) if (fa.contains(this, b[a])) return !0; }); }, closest: function (a, b) { for (var c, d = 0, e = this.length, f = [], g = na.test(a) || "string" != typeof a ? fa(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 && fa.find.matchesSelector(c, a))) { f.push(c); break; } return this.pushStack(f.length > 1 ? fa.uniqueSort(f) : f); }, index: function (a) { return a ? ("string" == typeof a ? _.call(fa(a), this[0]) : _.call(this, a.jquery ? a[0] : a)) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; }, add: function (a, b) { return this.pushStack(fa.uniqueSort(fa.merge(this.get(), fa(a, b)))); }, addBack: function (a) { return this.add(null == a ? this.prevObject : this.prevObject.filter(a)); }, }), fa.each( { parent: function (a) { var b = a.parentNode; return b && 11 !== b.nodeType ? b : null; }, parents: function (a) { return la(a, "parentNode"); }, parentsUntil: function (a, b, c) { return la(a, "parentNode", c); }, next: function (a) { return e(a, "nextSibling"); }, prev: function (a) { return e(a, "previousSibling"); }, nextAll: function (a) { return la(a, "nextSibling"); }, prevAll: function (a) { return la(a, "previousSibling"); }, nextUntil: function (a, b, c) { return la(a, "nextSibling", c); }, prevUntil: function (a, b, c) { return la(a, "previousSibling", c); }, siblings: function (a) { return ma((a.parentNode || {}).firstChild, a); }, children: function (a) { return ma(a.firstChild); }, contents: function (a) { return a.contentDocument || fa.merge([], a.childNodes); }, }, function (a, b) { fa.fn[a] = function (c, d) { var e = fa.map(this, b, c); return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = fa.filter(d, e)), this.length > 1 && (ua[a] || fa.uniqueSort(e), ta.test(a) && e.reverse()), this.pushStack(e); }; } ); var va = /\S+/g; (fa.Callbacks = function (a) { a = "string" == typeof a ? f(a) : fa.extend({}, a); var b, c, d, e, g = [], h = [], i = -1, j = function () { for (e = a.once, d = b = !0; h.length; i = -1) for (c = h.shift(); ++i < g.length; ) g[i].apply(c[0], c[1]) === !1 && a.stopOnFalse && ((i = g.length), (c = !1)); a.memory || (c = !1), (b = !1), e && (g = c ? [] : ""); }, k = { add: function () { return ( g && (c && !b && ((i = g.length - 1), h.push(c)), (function d(b) { fa.each(b, function (b, c) { fa.isFunction(c) ? (a.unique && k.has(c)) || g.push(c) : c && c.length && "string" !== fa.type(c) && d(c); }); })(arguments), c && !b && j()), this ); }, remove: function () { return ( fa.each(arguments, function (a, b) { for (var c; (c = fa.inArray(b, g, c)) > -1; ) g.splice(c, 1), i >= c && i--; }), this ); }, has: function (a) { return a ? fa.inArray(a, g) > -1 : g.length > 0; }, empty: function () { return g && (g = []), this; }, disable: function () { return (e = h = []), (g = c = ""), this; }, disabled: function () { return !g; }, lock: function () { return (e = h = []), c || (g = c = ""), this; }, locked: function () { return !!e; }, fireWith: function (a, c) { return e || ((c = c || []), (c = [a, c.slice ? c.slice() : c]), h.push(c), b || j()), this; }, fire: function () { return k.fireWith(this, arguments), this; }, fired: function () { return !!d; }, }; return k; }), fa.extend({ Deferred: function (a) { var b = [ ["resolve", "done", fa.Callbacks("once memory"), "resolved"], ["reject", "fail", fa.Callbacks("once memory"), "rejected"], ["notify", "progress", fa.Callbacks("memory")], ], c = "pending", d = { state: function () { return c; }, always: function () { return e.done(arguments).fail(arguments), this; }, then: function () { var a = arguments; return fa .Deferred(function (c) { fa.each(b, function (b, f) { var g = fa.isFunction(a[b]) && a[b]; e[f[1]](function () { var a = g && g.apply(this, arguments); a && fa.isFunction(a.promise) ? a.promise().progress(c.notify).done(c.resolve).fail(c.reject) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments); }); }), (a = null); }) .promise(); }, promise: function (a) { return null != a ? fa.extend(a, d) : d; }, }, e = {}; return ( (d.pipe = d.then), fa.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, c, d, e = 0, f = Y.call(arguments), g = f.length, h = 1 !== g || (a && fa.isFunction(a.promise)) ? g : 0, i = 1 === h ? a : fa.Deferred(), j = function (a, c, d) { return function (e) { (c[a] = this), (d[a] = arguments.length > 1 ? Y.call(arguments) : e), d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d); }; }; if (g > 1) for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++) f[e] && fa.isFunction(f[e].promise) ? f[e].promise().progress(j(e, c, b)).done(j(e, d, f)).fail(i.reject) : --h; return h || i.resolveWith(d, f), i.promise(); }, }); var wa; (fa.fn.ready = function (a) { return fa.ready.promise().done(a), this; }), fa.extend({ isReady: !1, readyWait: 1, holdReady: function (a) { a ? fa.readyWait++ : fa.ready(!0); }, ready: function (a) { (a === !0 ? --fa.readyWait : fa.isReady) || ((fa.isReady = !0), (a !== !0 && --fa.readyWait > 0) || (wa.resolveWith(X, [fa]), fa.fn.triggerHandler && (fa(X).triggerHandler("ready"), fa(X).off("ready")))); }, }), (fa.ready.promise = function (b) { return ( wa || ((wa = fa.Deferred()), "complete" === X.readyState || ("loading" !== X.readyState && !X.documentElement.doScroll) ? a.setTimeout(fa.ready) : (X.addEventListener("DOMContentLoaded", g), a.addEventListener("load", g))), wa.promise(b) ); }), fa.ready.promise(); var xa = function (a, b, c, d, e, f, g) { var h = 0, i = a.length, j = null == c; if ("object" === fa.type(c)) { e = !0; for (h in c) xa(a, b, h, c[h], !0, f, g); } else if ( void 0 !== d && ((e = !0), fa.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), (b = null)) : ((j = b), (b = function (a, b, c) { return j.call(fa(a), c); }))), b) ) for (; i > h; 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; }, ya = function (a) { return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType; }; (h.uid = 1), (h.prototype = { register: function (a, b) { var c = b || {}; return a.nodeType ? (a[this.expando] = c) : Object.defineProperty(a, this.expando, { value: c, writable: !0, configurable: !0 }), a[this.expando]; }, cache: function (a) { if (!ya(a)) return {}; var b = a[this.expando]; return b || ((b = {}), ya(a) && (a.nodeType ? (a[this.expando] = b) : Object.defineProperty(a, this.expando, { value: b, configurable: !0 }))), b; }, set: function (a, b, c) { var d, e = this.cache(a); if ("string" == typeof b) e[b] = c; else for (d in b) e[d] = b[d]; return e; }, get: function (a, b) { return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][b]; }, access: function (a, b, c) { var d; return void 0 === b || (b && "string" == typeof b && void 0 === c) ? ((d = this.get(a, b)), void 0 !== d ? d : this.get(a, fa.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b); }, remove: function (a, b) { var c, d, e, f = a[this.expando]; if (void 0 !== f) { if (void 0 === b) this.register(a); else { fa.isArray(b) ? (d = b.concat(b.map(fa.camelCase))) : ((e = fa.camelCase(b)), b in f ? (d = [b, e]) : ((d = e), (d = d in f ? [d] : d.match(va) || []))), (c = d.length); for (; c--; ) delete f[d[c]]; } (void 0 === b || fa.isEmptyObject(f)) && (a.nodeType ? (a[this.expando] = void 0) : delete a[this.expando]); } }, hasData: function (a) { var b = a[this.expando]; return void 0 !== b && !fa.isEmptyObject(b); }, }); var za = new h(), Aa = new h(), Ba = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, Ca = /[A-Z]/g; fa.extend({ hasData: function (a) { return Aa.hasData(a) || za.hasData(a); }, data: function (a, b, c) { return Aa.access(a, b, c); }, removeData: function (a, b) { Aa.remove(a, b); }, _data: function (a, b, c) { return za.access(a, b, c); }, _removeData: function (a, b) { za.remove(a, b); }, }), fa.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 = Aa.get(f)), 1 === f.nodeType && !za.get(f, "hasDataAttrs"))) { for (c = g.length; c--; ) g[c] && ((d = g[c].name), 0 === d.indexOf("data-") && ((d = fa.camelCase(d.slice(5))), i(f, d, e[d]))); za.set(f, "hasDataAttrs", !0); } return e; } return "object" == typeof a ? this.each(function () { Aa.set(this, a); }) : xa( this, function (b) { var c, d; if (f && void 0 === b) { if (((c = Aa.get(f, a) || Aa.get(f, a.replace(Ca, "-$&").toLowerCase())), void 0 !== c)) return c; if (((d = fa.camelCase(a)), (c = Aa.get(f, d)), void 0 !== c)) return c; if (((c = i(f, d, void 0)), void 0 !== c)) return c; } else (d = fa.camelCase(a)), this.each(function () { var c = Aa.get(this, d); Aa.set(this, d, b), a.indexOf("-") > -1 && void 0 !== c && Aa.set(this, a, b); }); }, null, b, arguments.length > 1, null, !0 ); }, removeData: function (a) { return this.each(function () { Aa.remove(this, a); }); }, }), fa.extend({ queue: function (a, b, c) { var d; return a ? ((b = (b || "fx") + "queue"), (d = za.get(a, b)), c && (!d || fa.isArray(c) ? (d = za.access(a, b, fa.makeArray(c))) : d.push(c)), d || []) : void 0; }, dequeue: function (a, b) { b = b || "fx"; var c = fa.queue(a, b), d = c.length, e = c.shift(), f = fa._queueHooks(a, b), g = function () { fa.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 ( za.get(a, c) || za.access(a, c, { empty: fa.Callbacks("once memory").add(function () { za.remove(a, [b + "queue", c]); }), }) ); }, }), fa.fn.extend({ queue: function (a, b) { var c = 2; return ( "string" != typeof a && ((b = a), (a = "fx"), c--), arguments.length < c ? fa.queue(this[0], a) : void 0 === b ? this : this.each(function () { var c = fa.queue(this, a, b); fa._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && fa.dequeue(this, a); }) ); }, dequeue: function (a) { return this.each(function () { fa.dequeue(this, a); }); }, clearQueue: function (a) { return this.queue(a || "fx", []); }, promise: function (a, b) { var c, d = 1, e = fa.Deferred(), f = this, g = this.length, h = function () { --d || e.resolveWith(f, [f]); }; for ("string" != typeof a && ((b = a), (a = void 0)), a = a || "fx"; g--; ) (c = za.get(f[g], a + "queueHooks")), c && c.empty && (d++, c.empty.add(h)); return h(), e.promise(b); }, }); var Da = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, Ea = new RegExp("^(?:([+-])=|)(" + Da + ")([a-z%]*)$", "i"), Fa = ["Top", "Right", "Bottom", "Left"], Ga = function (a, b) { return (a = b || a), "none" === fa.css(a, "display") || !fa.contains(a.ownerDocument, a); }, Ha = /^(?:checkbox|radio)$/i, Ia = /<([\w:-]+)/, Ja = /^$|\/(?:java|ecma)script/i, Ka = { option: [1, ""], thead: [1, "