From 05c6e00f038b00f2ffaaa2c24d61c476609091db Mon Sep 17 00:00:00 2001 From: jos Date: Fri, 6 Jun 2014 21:40:36 +0200 Subject: [PATCH] Released version 1.1.0 --- dist/vis.js | 3589 ++++++++++++++++- dist/vis.min.js | 23 +- docs/graph.html | 97 +- docs/graph3d.html | 646 +++ docs/img/graph3d.png | Bin 0 -> 101584 bytes docs/img/graph3d120x60.png | Bin 0 -> 9904 bytes docs/index.html | 8 +- docs/timeline.html | 5 +- download/vis.zip | Bin 1134069 -> 1325892 bytes examples/graph3d/default.css | 87 + examples/graph3d/example01_basis.html | 60 + examples/graph3d/example02_camera.html | 109 + examples/graph3d/example03_filter.html | 63 + examples/graph3d/example04_animate.html | 70 + examples/graph3d/example05_line.html | 59 + examples/graph3d/example06_moving_dots.html | 77 + .../graph3d/example07_dot_cloud_colors.html | 67 + .../graph3d/example08_dot_cloud_size.html | 67 + examples/graph3d/example09_mobile.html | 78 + examples/graph3d/example10_styles.html | 120 + examples/graph3d/example11_tooltips.html | 103 + examples/graph3d/index.html | 27 + examples/graph3d/playground/csv2array.js | 120 + .../graph3d/playground/csv2datatable.html | 80 + examples/graph3d/playground/datasource.html | 173 + examples/graph3d/playground/datasource.php | 155 + examples/graph3d/playground/index.html | 179 + examples/graph3d/playground/playground.css | 91 + examples/graph3d/playground/playground.js | 544 +++ .../playground/prettify/lang-apollo.js | 2 + .../graph3d/playground/prettify/lang-css.js | 2 + .../graph3d/playground/prettify/lang-hs.js | 2 + .../graph3d/playground/prettify/lang-lisp.js | 2 + .../graph3d/playground/prettify/lang-lua.js | 2 + .../graph3d/playground/prettify/lang-ml.js | 2 + .../graph3d/playground/prettify/lang-proto.js | 1 + .../graph3d/playground/prettify/lang-scala.js | 2 + .../graph3d/playground/prettify/lang-sql.js | 2 + .../graph3d/playground/prettify/lang-vb.js | 2 + .../graph3d/playground/prettify/lang-vhdl.js | 3 + .../graph3d/playground/prettify/lang-wiki.js | 2 + .../graph3d/playground/prettify/lang-yaml.js | 2 + .../graph3d/playground/prettify/prettify.css | 1 + .../graph3d/playground/prettify/prettify.js | 33 + examples/index.html | 1 + index.html | 4 +- 46 files changed, 6691 insertions(+), 71 deletions(-) create mode 100644 docs/graph3d.html create mode 100644 docs/img/graph3d.png create mode 100644 docs/img/graph3d120x60.png create mode 100644 examples/graph3d/default.css create mode 100644 examples/graph3d/example01_basis.html create mode 100644 examples/graph3d/example02_camera.html create mode 100644 examples/graph3d/example03_filter.html create mode 100644 examples/graph3d/example04_animate.html create mode 100644 examples/graph3d/example05_line.html create mode 100644 examples/graph3d/example06_moving_dots.html create mode 100644 examples/graph3d/example07_dot_cloud_colors.html create mode 100644 examples/graph3d/example08_dot_cloud_size.html create mode 100644 examples/graph3d/example09_mobile.html create mode 100644 examples/graph3d/example10_styles.html create mode 100644 examples/graph3d/example11_tooltips.html create mode 100644 examples/graph3d/index.html create mode 100644 examples/graph3d/playground/csv2array.js create mode 100644 examples/graph3d/playground/csv2datatable.html create mode 100644 examples/graph3d/playground/datasource.html create mode 100644 examples/graph3d/playground/datasource.php create mode 100644 examples/graph3d/playground/index.html create mode 100644 examples/graph3d/playground/playground.css create mode 100644 examples/graph3d/playground/playground.js create mode 100644 examples/graph3d/playground/prettify/lang-apollo.js create mode 100644 examples/graph3d/playground/prettify/lang-css.js create mode 100644 examples/graph3d/playground/prettify/lang-hs.js create mode 100644 examples/graph3d/playground/prettify/lang-lisp.js create mode 100644 examples/graph3d/playground/prettify/lang-lua.js create mode 100644 examples/graph3d/playground/prettify/lang-ml.js create mode 100644 examples/graph3d/playground/prettify/lang-proto.js create mode 100644 examples/graph3d/playground/prettify/lang-scala.js create mode 100644 examples/graph3d/playground/prettify/lang-sql.js create mode 100644 examples/graph3d/playground/prettify/lang-vb.js create mode 100644 examples/graph3d/playground/prettify/lang-vhdl.js create mode 100644 examples/graph3d/playground/prettify/lang-wiki.js create mode 100644 examples/graph3d/playground/prettify/lang-yaml.js create mode 100644 examples/graph3d/playground/prettify/prettify.css create mode 100644 examples/graph3d/playground/prettify/prettify.js diff --git a/dist/vis.js b/dist/vis.js index d97139f7..0ac9259e 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 1.0.2 - * @date 2014-05-28 + * @version 1.1.0 + * @date 2014-06-06 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -1095,6 +1095,10 @@ util.parseColor = function(color) { highlight: { background:lighterColorHex, border:darkerColorHex + }, + hover: { + background:lighterColorHex, + border:darkerColorHex } }; } @@ -1105,6 +1109,10 @@ util.parseColor = function(color) { highlight: { background:color, border:color + }, + hover: { + background:color, + border:color } }; } @@ -1125,6 +1133,18 @@ util.parseColor = function(color) { c.highlight.background = color.highlight && color.highlight.background || c.background; c.highlight.border = color.highlight && color.highlight.border || c.border; } + + if (util.isString(color.hover)) { + c.hover = { + border: color.hover, + background: color.hover + } + } + else { + c.hover = {}; + c.hover.background = color.hover && color.hover.background || c.background; + c.hover.border = color.hover && color.hover.border || c.border; + } } return c; @@ -7238,6 +7258,8 @@ function Timeline (container, items, options) { selectable: true, + start: null, + end: null, min: null, max: null, zoomMin: 10, // milliseconds @@ -7812,13 +7834,18 @@ Timeline.prototype.getWindow = function setWindow() { }; /** - * Force a repaint of the Timeline. Can be useful to manually repaint when + * Force a redraw of the Timeline. Can be useful to manually redraw when * option autoResize=false */ -Timeline.prototype.repaint = function repaint() { +Timeline.prototype.redraw = function redraw() { this.rootPanel.repaint(); }; +// TODO: deprecated since version 1.1.0, remove some day +Timeline.prototype.repaint = function repaint() { + throw new Error('Function repaint is deprecated. Use redraw instead.'); +}; + /** * Handle selecting/deselecting an item when tapping it * @param {Event} event @@ -7843,8 +7870,9 @@ Timeline.prototype._onSelectItem = function (event) { var newSelection = this.getSelection(); - // if selection is changed, emit a select event - if (!util.equalArray(oldSelection, newSelection)) { + // emit a select event, + // except when old selection is empty and new selection is still empty + if (newSelection.length > 0 || oldSelection.length > 0) { this.emit('select', { items: this.getSelection() }); @@ -7902,7 +7930,7 @@ Timeline.prototype._onAddItem = function (event) { this.options.onAdd(newItem, function (item) { if (item) { me.itemsData.add(newItem); - // TODO: need to trigger a repaint? + // TODO: need to trigger a redraw? } }); } @@ -9048,6 +9076,7 @@ if (typeof CanvasRenderingContext2D !== 'undefined') { */ function Node(properties, imagelist, grouplist, constants) { this.selected = false; + this.hover = false; this.edges = []; // all edges connected to this node this.dynamicEdges = []; @@ -9592,7 +9621,7 @@ Node.prototype._drawBox = function (ctx) { var clusterLineWidth = 2.5; var selectionLineWidth = 2; - ctx.strokeStyle = this.selected ? this.color.highlight.border : this.color.border; + ctx.strokeStyle = this.selected ? this.color.highlight.border : this.hover ? this.color.hover.border : this.color.border; // draw the outer border if (this.clusterSize > 1) { @@ -9641,7 +9670,7 @@ Node.prototype._drawDatabase = function (ctx) { var clusterLineWidth = 2.5; var selectionLineWidth = 2; - ctx.strokeStyle = this.selected ? this.color.highlight.border : this.color.border; + ctx.strokeStyle = this.selected ? this.color.highlight.border : this.hover ? this.color.hover.border : this.color.border; // draw the outer border if (this.clusterSize > 1) { @@ -9656,7 +9685,7 @@ Node.prototype._drawDatabase = function (ctx) { ctx.lineWidth *= this.graphScaleInv; ctx.lineWidth = Math.min(0.1 * this.width,ctx.lineWidth); - ctx.fillStyle = this.selected ? this.color.highlight.background : this.color.background; + ctx.fillStyle = this.selected ? this.color.highlight.background : this.hover ? this.color.hover.background : this.color.background; ctx.database(this.x - this.width/2, this.y - this.height*0.5, this.width, this.height); ctx.fill(); ctx.stroke(); @@ -9691,7 +9720,7 @@ Node.prototype._drawCircle = function (ctx) { var clusterLineWidth = 2.5; var selectionLineWidth = 2; - ctx.strokeStyle = this.selected ? this.color.highlight.border : this.color.border; + ctx.strokeStyle = this.selected ? this.color.highlight.border : this.hover ? this.color.hover.border : this.color.border; // draw the outer border if (this.clusterSize > 1) { @@ -9706,7 +9735,7 @@ Node.prototype._drawCircle = function (ctx) { ctx.lineWidth *= this.graphScaleInv; ctx.lineWidth = Math.min(0.1 * this.width,ctx.lineWidth); - ctx.fillStyle = this.selected ? this.color.highlight.background : this.color.background; + ctx.fillStyle = this.selected ? this.color.highlight.background : this.hover ? this.color.hover.background : this.color.background; ctx.circle(this.x, this.y, this.radius); ctx.fill(); ctx.stroke(); @@ -9741,7 +9770,7 @@ Node.prototype._drawEllipse = function (ctx) { var clusterLineWidth = 2.5; var selectionLineWidth = 2; - ctx.strokeStyle = this.selected ? this.color.highlight.border : this.color.border; + ctx.strokeStyle = this.selected ? this.color.highlight.border : this.hover ? this.color.hover.border : this.color.border; // draw the outer border if (this.clusterSize > 1) { @@ -9756,7 +9785,7 @@ Node.prototype._drawEllipse = function (ctx) { ctx.lineWidth *= this.graphScaleInv; ctx.lineWidth = Math.min(0.1 * this.width,ctx.lineWidth); - ctx.fillStyle = this.selected ? this.color.highlight.background : this.color.background; + ctx.fillStyle = this.selected ? this.color.highlight.background : this.hover ? this.color.hover.background : this.color.background; ctx.ellipse(this.left, this.top, this.width, this.height); ctx.fill(); @@ -9818,7 +9847,7 @@ Node.prototype._drawShape = function (ctx, shape) { case 'star': radiusMultiplier = 4; break; } - ctx.strokeStyle = this.selected ? this.color.highlight.border : this.color.border; + ctx.strokeStyle = this.selected ? this.color.highlight.border : this.hover ? this.color.hover.border : this.color.border; // draw the outer border if (this.clusterSize > 1) { @@ -9833,7 +9862,7 @@ Node.prototype._drawShape = function (ctx, shape) { ctx.lineWidth *= this.graphScaleInv; ctx.lineWidth = Math.min(0.1 * this.width,ctx.lineWidth); - ctx.fillStyle = this.selected ? this.color.highlight.background : this.color.background; + ctx.fillStyle = this.selected ? this.color.highlight.background : this.hover ? this.color.hover.background : this.color.background; ctx[shape](this.x, this.y, this.radius); ctx.fill(); @@ -9915,10 +9944,10 @@ Node.prototype.getTextSize = function(ctx) { */ Node.prototype.inArea = function() { if (this.width !== undefined) { - return (this.x + this.width*this.graphScaleInv >= this.canvasTopLeft.x && - this.x - this.width*this.graphScaleInv < this.canvasBottomRight.x && - this.y + this.height*this.graphScaleInv >= this.canvasTopLeft.y && - this.y - this.height*this.graphScaleInv < this.canvasBottomRight.y); + return (this.x + this.width *this.graphScaleInv >= this.canvasTopLeft.x && + this.x - this.width *this.graphScaleInv < this.canvasBottomRight.x && + this.y + this.height*this.graphScaleInv >= this.canvasTopLeft.y && + this.y - this.height*this.graphScaleInv < this.canvasBottomRight.y); } else { return true; @@ -10020,10 +10049,12 @@ function Edge (properties, graph, constants) { this.style = constants.edges.style; this.title = undefined; this.width = constants.edges.width; + this.hoverWidth = constants.edges.hoverWidth; this.value = undefined; this.length = constants.physics.springLength; this.customLength = false; this.selected = false; + this.hover = false; this.smooth = constants.smoothCurves; this.arrowScaleFactor = constants.edges.arrowScaleFactor; @@ -10044,7 +10075,8 @@ function Edge (properties, graph, constants) { this.dash = util.extend({}, constants.edges.dash); // contains properties length, gap, altLength this.color = {color:constants.edges.color.color, - highlight:constants.edges.color.highlight}; + highlight:constants.edges.color.highlight, + hover:constants.edges.color.hover}; this.widthFixed = false; this.lengthFixed = false; @@ -10082,6 +10114,7 @@ Edge.prototype.setProperties = function(properties, constants) { if (properties.title !== undefined) {this.title = properties.title;} if (properties.width !== undefined) {this.width = properties.width;} + if (properties.hoverWidth !== undefined) {this.hoverWidth = properties.hoverWidth;} if (properties.value !== undefined) {this.value = properties.value;} if (properties.length !== undefined) {this.length = properties.length; this.customLength = true;} @@ -10240,8 +10273,9 @@ Edge.prototype.isOverlappingWith = function(obj) { */ Edge.prototype._drawLine = function(ctx) { // set style - if (this.selected == true) {ctx.strokeStyle = this.color.highlight;} - else {ctx.strokeStyle = this.color.color;} + if (this.selected == true) {ctx.strokeStyle = this.color.highlight;} + else if (this.hover == true) {ctx.strokeStyle = this.color.hover;} + else {ctx.strokeStyle = this.color.color;} ctx.lineWidth = this._getLineWidth(); if (this.from != this.to) { @@ -10294,7 +10328,12 @@ Edge.prototype._getLineWidth = function() { return Math.min(this.width * 2, this.widthMax)*this.graphScaleInv; } else { - return this.width*this.graphScaleInv; + if (this.hover == true) { + return Math.min(this.hoverWidth, this.widthMax)*this.graphScaleInv; + } + else { + return this.width*this.graphScaleInv; + } } }; @@ -10371,8 +10410,9 @@ Edge.prototype._label = function (ctx, text, x, y) { */ Edge.prototype._drawDashLine = function(ctx) { // set style - if (this.selected == true) {ctx.strokeStyle = this.color.highlight;} - else {ctx.strokeStyle = this.color.color;} + if (this.selected == true) {ctx.strokeStyle = this.color.highlight;} + else if (this.hover == true) {ctx.strokeStyle = this.color.hover;} + else {ctx.strokeStyle = this.color.color;} ctx.lineWidth = this._getLineWidth(); @@ -10496,8 +10536,9 @@ Edge.prototype._pointOnCircle = function (x, y, radius, percentage) { Edge.prototype._drawArrowCenter = function(ctx) { var point; // set style - if (this.selected == true) {ctx.strokeStyle = this.color.highlight; ctx.fillStyle = this.color.highlight;} - else {ctx.strokeStyle = this.color.color; ctx.fillStyle = this.color.color;} + if (this.selected == true) {ctx.strokeStyle = this.color.highlight; ctx.fillStyle = this.color.highlight;} + else if (this.hover == true) {ctx.strokeStyle = this.color.hover; ctx.fillStyle = this.color.hover;} + else {ctx.strokeStyle = this.color.color; ctx.fillStyle = this.color.color;} ctx.lineWidth = this._getLineWidth(); if (this.from != this.to) { @@ -10570,8 +10611,9 @@ Edge.prototype._drawArrowCenter = function(ctx) { */ Edge.prototype._drawArrow = function(ctx) { // set style - if (this.selected == true) {ctx.strokeStyle = this.color.highlight; ctx.fillStyle = this.color.highlight;} - else {ctx.strokeStyle = this.color.color; ctx.fillStyle = this.color.color;} + if (this.selected == true) {ctx.strokeStyle = this.color.highlight; ctx.fillStyle = this.color.highlight;} + else if (this.hover == true) {ctx.strokeStyle = this.color.hover; ctx.fillStyle = this.color.hover;} + else {ctx.strokeStyle = this.color.color; ctx.fillStyle = this.color.color;} ctx.lineWidth = this._getLineWidth(); @@ -12269,7 +12311,7 @@ var HierarchicalLayoutMixin = { * @private */ _setupHierarchicalLayout : function() { - if (this.constants.hierarchicalLayout.enabled == true) { + if (this.constants.hierarchicalLayout.enabled == true && this.nodeIndices.length > 0) { if (this.constants.hierarchicalLayout.direction == "RL" || this.constants.hierarchicalLayout.direction == "DU") { this.constants.hierarchicalLayout.levelSeparation *= -1; } @@ -13279,7 +13321,7 @@ var SectorMixin = { // console.log("the node is part of the active sector"); // } // else { -// console.log("I dont know what happened!!"); +// console.log("I dont know what the fuck happened!!"); // } // when we switch to a new sector, we remove the node that will be expanded from the current nodes list. @@ -14826,7 +14868,21 @@ var SelectionMixin = { else { this.selectionObj.edges[obj.id] = obj; } + }, + /** + * Add object to the selection array. + * + * @param obj + * @private + */ + _addToHover : function(obj) { + if (obj instanceof Node) { + this.hoverObj.nodes[obj.id] = obj; + } + else { + this.hoverObj.edges[obj.id] = obj; + } }, @@ -14845,7 +14901,6 @@ var SelectionMixin = { } }, - /** * Unselect all. The selectionObj is useful for this. * @@ -15022,6 +15077,20 @@ var SelectionMixin = { } }, + /** + * select the edges connected to the node that is being selected + * + * @param {Node} node + * @private + */ + _hoverConnectedEdges : function(node) { + for (var i = 0; i < node.dynamicEdges.length; i++) { + var edge = node.dynamicEdges[i]; + edge.hover = true; + this._addToHover(edge); + } + }, + /** * unselect the edges connected to the node that is being selected @@ -15039,6 +15108,7 @@ var SelectionMixin = { + /** * This is called when someone clicks on a node. either select or deselect it. * If there is an existing selection and we don't want to append to it, clear the existing selection @@ -15068,12 +15138,48 @@ var SelectionMixin = { object.unselect(); this._removeFromSelection(object); } + if (doNotTrigger == false) { this.emit('select', this.getSelection()); } }, + /** + * This is called when someone clicks on a node. either select or deselect it. + * If there is an existing selection and we don't want to append to it, clear the existing selection + * + * @param {Node || Edge} object + * @private + */ + _blurObject : function(object) { + if (object.hover == true) { + object.hover = false; + this.emit("blurNode",{node:object.id}); + } + }, + + /** + * This is called when someone clicks on a node. either select or deselect it. + * If there is an existing selection and we don't want to append to it, clear the existing selection + * + * @param {Node || Edge} object + * @private + */ + _hoverObject : function(object) { + if (object.hover == false) { + object.hover = true; + this._addToHover(object); + if (object instanceof Node) { + this.emit("hoverNode",{node:object.id}); + } + } + if (object instanceof Node) { + this._hoverConnectedEdges(object); + } + }, + + /** * handles the selection part of the touch, only for navigation controls elements; * Touch is triggered before tap, also before hold. Hold triggers after a while. @@ -15719,6 +15825,10 @@ function Graph (container, data, options) { highlight: { border: '#2B7CE9', background: '#D2E5FF' + }, + hover: { + border: '#2B7CE9', + background: '#D2E5FF' } }, borderColor: '#2B7CE9', @@ -15730,10 +15840,12 @@ function Graph (container, data, options) { widthMin: 1, widthMax: 15, width: 1, + hoverWidth: 1.5, style: 'line', color: { color:'#848484', - highlight:'#848484' + highlight:'#848484', + hover: '#848484' }, fontColor: '#343434', fontSize: 14, // px @@ -15847,8 +15959,10 @@ function Graph (container, data, options) { } }, moveable: true, - zoomable: true + zoomable: true, + hover: false }; + this.hoverObj = {nodes:{},edges:{}}; this.editMode = this.constants.dataManipulation.initiallyVisible; // Node variables @@ -16187,9 +16301,9 @@ Graph.prototype.setOptions = function (options) { if (options.freezeForStabilization !== undefined) {this.constants.freezeForStabilization = options.freezeForStabilization;} if (options.configurePhysics !== undefined){this.constants.configurePhysics = options.configurePhysics;} if (options.stabilizationIterations !== undefined) {this.constants.stabilizationIterations = options.stabilizationIterations;} - if (options.moveable !== undefined) {this.constants.moveable = options.moveable;} - if (options.zoomable !== undefined) {this.constants.zoomable = options.zoomable;} - + if (options.moveable !== undefined) {this.constants.moveable = options.moveable;} + if (options.zoomable !== undefined) {this.constants.zoomable = options.zoomable;} + if (options.hover !== undefined) {this.constants.hover = options.hover;} if (options.labels !== undefined) { for (prop in options.labels) { @@ -16322,10 +16436,12 @@ Graph.prototype.setOptions = function (options) { this.constants.edges.color = {}; this.constants.edges.color.color = options.edges.color; this.constants.edges.color.highlight = options.edges.color; + this.constants.edges.color.hover = options.edges.color; } else { if (options.edges.color.color !== undefined) {this.constants.edges.color.color = options.edges.color.color;} if (options.edges.color.highlight !== undefined) {this.constants.edges.color.highlight = options.edges.color.highlight;} + if (options.edges.color.hover !== undefined) {this.constants.edges.color.hover = options.edges.color.hover;} } } @@ -16825,7 +16941,7 @@ Graph.prototype._onMouseMoveTitle = function (event) { var pointer = this._getPointer(gesture.center); // check if the previously selected node is still selected - if (this.popupNode) { + if (this.popupObj) { this._checkHidePopup(pointer); } @@ -16841,6 +16957,40 @@ Graph.prototype._onMouseMoveTitle = function (event) { if (!this.drag.dragging) { this.popupTimer = setTimeout(checkShow, this.constants.tooltip.delay); } + + + /** + * Adding hover highlights + */ + if (this.constants.hover == true) { + // removing all hover highlights + for (var edgeId in this.hoverObj.edges) { + if (this.hoverObj.edges.hasOwnProperty(edgeId)) { + this.hoverObj.edges[edgeId].hover = false; + delete this.hoverObj.edges[edgeId]; + } + } + + // adding hover highlights + var obj = this._getNodeAt(pointer); + if (obj == null) { + obj = this._getEdgeAt(pointer); + } + if (obj != null) { + this._hoverObject(obj); + } + + // removing all node hover highlights except for the selected one. + for (var nodeId in this.hoverObj.nodes) { + if (this.hoverObj.nodes.hasOwnProperty(nodeId)) { + if (obj instanceof Node && obj.id != nodeId || obj instanceof Edge || obj == null) { + this._blurObject(this.hoverObj.nodes[nodeId]); + delete this.hoverObj.nodes[nodeId]; + } + } + } + this.redraw(); + } }; /** @@ -16860,23 +17010,23 @@ Graph.prototype._checkShowPopup = function (pointer) { }; var id; - var lastPopupNode = this.popupNode; + var lastPopupNode = this.popupObj; - if (this.popupNode == undefined) { + if (this.popupObj == undefined) { // search the nodes for overlap, select the top one in case of multiple nodes var nodes = this.nodes; for (id in nodes) { if (nodes.hasOwnProperty(id)) { var node = nodes[id]; if (node.getTitle() !== undefined && node.isOverlappingWith(obj)) { - this.popupNode = node; + this.popupObj = node; break; } } } } - if (this.popupNode === undefined) { + if (this.popupObj === undefined) { // search the edges for overlap var edges = this.edges; for (id in edges) { @@ -16884,16 +17034,16 @@ Graph.prototype._checkShowPopup = function (pointer) { var edge = edges[id]; if (edge.connected && (edge.getTitle() !== undefined) && edge.isOverlappingWith(obj)) { - this.popupNode = edge; + this.popupObj = edge; break; } } } } - if (this.popupNode) { + if (this.popupObj) { // show popup message window - if (this.popupNode != lastPopupNode) { + if (this.popupObj != lastPopupNode) { var me = this; if (!me.popup) { me.popup = new Popup(me.frame, me.constants.tooltip); @@ -16903,7 +17053,7 @@ Graph.prototype._checkShowPopup = function (pointer) { // bottom left location of the popup, and you can easily move over the // popup area me.popup.setPosition(pointer.x - 3, pointer.y - 3); - me.popup.setText(me.popupNode.getTitle()); + me.popup.setText(me.popupObj.getTitle()); me.popup.show(); } } @@ -16922,8 +17072,8 @@ Graph.prototype._checkShowPopup = function (pointer) { * @private */ Graph.prototype._checkHidePopup = function (pointer) { - if (!this.popupNode || !this._getNodeAt(pointer) ) { - this.popupNode = undefined; + if (!this.popupObj || !this._getNodeAt(pointer) ) { + this.popupObj = undefined; if (this.popup) { this.popup.hide(); } @@ -17849,15 +17999,3351 @@ Graph.prototype.storePosition = function() { }; +/** + * Center a node in view. + * + * @param {Number} nodeId + * @param {Number} [zoomLevel] + */ +Graph.prototype.focusOnNode = function (nodeId, zoomLevel) { + if (this.nodes.hasOwnProperty(nodeId)) { + if (zoomLevel === undefined) { + zoomLevel = this._getScale(); + } + var nodePosition= {x: this.nodes[nodeId].x, y: this.nodes[nodeId].y}; + + var requiredScale = zoomLevel; + this._setScale(requiredScale); + + var canvasCenter = this.DOMtoCanvas({x:0.5 * this.frame.canvas.width,y:0.5 * this.frame.canvas.height}); + var translation = this._getTranslation(); + + var distanceFromCenter = {x:canvasCenter.x - nodePosition.x, + y:canvasCenter.y - nodePosition.y}; + + this._setTranslation(translation.x + requiredScale * distanceFromCenter.x, + translation.y + requiredScale * distanceFromCenter.y); + this.redraw(); + } + else { + console.log("This nodeId cannot be found.") + } +}; + + + + + + + + + + +/** + * @constructor Graph3d + * The Graph is a visualization Graphs on a time line + * + * Graph is developed in javascript as a Google Visualization Chart. + * + * @param {Element} container The DOM element in which the Graph will + * be created. Normally a div element. + * @param {DataSet | DataView | Array} [data] + * @param {Object} [options] + */ +function Graph3d(container, data, options) { + // create variables and set default values + this.containerElement = container; + this.width = '400px'; + this.height = '400px'; + this.margin = 10; // px + this.defaultXCenter = '55%'; + this.defaultYCenter = '50%'; + + this.xLabel = 'x'; + this.yLabel = 'y'; + this.zLabel = 'z'; + this.filterLabel = 'time'; + this.legendLabel = 'value'; + + this.style = Graph3d.STYLE.DOT; + this.showPerspective = true; + this.showGrid = true; + this.keepAspectRatio = true; + this.showShadow = false; + this.showGrayBottom = false; // TODO: this does not work correctly + this.showTooltip = false; + this.verticalRatio = 0.5; // 0.1 to 1.0, where 1.0 results in a 'cube' + + this.animationInterval = 1000; // milliseconds + this.animationPreload = false; + + this.camera = new Graph3d.Camera(); + this.eye = new Point3d(0, 0, -1); // TODO: set eye.z about 3/4 of the width of the window? + + this.dataTable = null; // The original data table + this.dataPoints = null; // The table with point objects + + // the column indexes + this.colX = undefined; + this.colY = undefined; + this.colZ = undefined; + this.colValue = undefined; + this.colFilter = undefined; + + this.xMin = 0; + this.xStep = undefined; // auto by default + this.xMax = 1; + this.yMin = 0; + this.yStep = undefined; // auto by default + this.yMax = 1; + this.zMin = 0; + this.zStep = undefined; // auto by default + this.zMax = 1; + this.valueMin = 0; + this.valueMax = 1; + this.xBarWidth = 1; + this.yBarWidth = 1; + // TODO: customize axis range + + // constants + this.colorAxis = '#4D4D4D'; + this.colorGrid = '#D3D3D3'; + this.colorDot = '#7DC1FF'; + this.colorDotBorder = '#3267D2'; + + // create a frame and canvas + this.create(); + + // apply options (also when undefined) + this.setOptions(options); + + // apply data + if (data) { + this.setData(data); + } +} + +// Extend Graph with an Emitter mixin +Emitter(Graph3d.prototype); + +/** + * @class Camera + * The camera is mounted on a (virtual) camera arm. The camera arm can rotate + * The camera is always looking in the direction of the origin of the arm. + * This way, the camera always rotates around one fixed point, the location + * of the camera arm. + * + * Documentation: + * http://en.wikipedia.org/wiki/3D_projection + */ +Graph3d.Camera = function () { + this.armLocation = new Point3d(); + this.armRotation = {}; + this.armRotation.horizontal = 0; + this.armRotation.vertical = 0; + this.armLength = 1.7; + + this.cameraLocation = new Point3d(); + this.cameraRotation = new Point3d(0.5*Math.PI, 0, 0); + + this.calculateCameraOrientation(); +}; + +/** + * Set the location (origin) of the arm + * @param {Number} x Normalized value of x + * @param {Number} y Normalized value of y + * @param {Number} z Normalized value of z + */ +Graph3d.Camera.prototype.setArmLocation = function(x, y, z) { + this.armLocation.x = x; + this.armLocation.y = y; + this.armLocation.z = z; + + this.calculateCameraOrientation(); +}; + +/** + * Set the rotation of the camera arm + * @param {Number} horizontal The horizontal rotation, between 0 and 2*PI. + * Optional, can be left undefined. + * @param {Number} vertical The vertical rotation, between 0 and 0.5*PI + * if vertical=0.5*PI, the graph is shown from the + * top. Optional, can be left undefined. + */ +Graph3d.Camera.prototype.setArmRotation = function(horizontal, vertical) { + if (horizontal !== undefined) { + this.armRotation.horizontal = horizontal; + } + + if (vertical !== undefined) { + this.armRotation.vertical = vertical; + if (this.armRotation.vertical < 0) this.armRotation.vertical = 0; + if (this.armRotation.vertical > 0.5*Math.PI) this.armRotation.vertical = 0.5*Math.PI; + } + + if (horizontal !== undefined || vertical !== undefined) { + this.calculateCameraOrientation(); + } +}; + +/** + * Retrieve the current arm rotation + * @return {object} An object with parameters horizontal and vertical + */ +Graph3d.Camera.prototype.getArmRotation = function() { + var rot = {}; + rot.horizontal = this.armRotation.horizontal; + rot.vertical = this.armRotation.vertical; + + return rot; +}; + +/** + * Set the (normalized) length of the camera arm. + * @param {Number} length A length between 0.71 and 5.0 + */ +Graph3d.Camera.prototype.setArmLength = function(length) { + if (length === undefined) + return; + + this.armLength = length; + + // Radius must be larger than the corner of the graph, + // which has a distance of sqrt(0.5^2+0.5^2) = 0.71 from the center of the + // graph + if (this.armLength < 0.71) this.armLength = 0.71; + if (this.armLength > 5.0) this.armLength = 5.0; + + this.calculateCameraOrientation(); +}; + +/** + * Retrieve the arm length + * @return {Number} length + */ +Graph3d.Camera.prototype.getArmLength = function() { + return this.armLength; +}; + +/** + * Retrieve the camera location + * @return {Point3d} cameraLocation + */ +Graph3d.Camera.prototype.getCameraLocation = function() { + return this.cameraLocation; +}; + +/** + * Retrieve the camera rotation + * @return {Point3d} cameraRotation + */ +Graph3d.Camera.prototype.getCameraRotation = function() { + return this.cameraRotation; +}; + +/** + * Calculate the location and rotation of the camera based on the + * position and orientation of the camera arm + */ +Graph3d.Camera.prototype.calculateCameraOrientation = function() { + // calculate location of the camera + this.cameraLocation.x = this.armLocation.x - this.armLength * Math.sin(this.armRotation.horizontal) * Math.cos(this.armRotation.vertical); + this.cameraLocation.y = this.armLocation.y - this.armLength * Math.cos(this.armRotation.horizontal) * Math.cos(this.armRotation.vertical); + this.cameraLocation.z = this.armLocation.z + this.armLength * Math.sin(this.armRotation.vertical); + + // calculate rotation of the camera + this.cameraRotation.x = Math.PI/2 - this.armRotation.vertical; + this.cameraRotation.y = 0; + this.cameraRotation.z = -this.armRotation.horizontal; +}; + +/** + * Calculate the scaling values, dependent on the range in x, y, and z direction + */ +Graph3d.prototype._setScale = function() { + this.scale = new Point3d(1 / (this.xMax - this.xMin), + 1 / (this.yMax - this.yMin), + 1 / (this.zMax - this.zMin)); + + // keep aspect ration between x and y scale if desired + if (this.keepAspectRatio) { + if (this.scale.x < this.scale.y) { + //noinspection JSSuspiciousNameCombination + this.scale.y = this.scale.x; + } + else { + //noinspection JSSuspiciousNameCombination + this.scale.x = this.scale.y; + } + } + + // scale the vertical axis + this.scale.z *= this.verticalRatio; + // TODO: can this be automated? verticalRatio? + + // determine scale for (optional) value + this.scale.value = 1 / (this.valueMax - this.valueMin); + + // position the camera arm + var xCenter = (this.xMax + this.xMin) / 2 * this.scale.x; + var yCenter = (this.yMax + this.yMin) / 2 * this.scale.y; + var zCenter = (this.zMax + this.zMin) / 2 * this.scale.z; + this.camera.setArmLocation(xCenter, yCenter, zCenter); +}; + + +/** + * Convert a 3D location to a 2D location on screen + * http://en.wikipedia.org/wiki/3D_projection + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @return {Point2d} point2d A 2D point with parameters x, y + */ +Graph3d.prototype._convert3Dto2D = function(point3d) { + var translation = this._convertPointToTranslation(point3d); + return this._convertTranslationToScreen(translation); +}; + +/** + * Convert a 3D location its translation seen from the camera + * http://en.wikipedia.org/wiki/3D_projection + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @return {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera + */ +Graph3d.prototype._convertPointToTranslation = function(point3d) { + var ax = point3d.x * this.scale.x, + ay = point3d.y * this.scale.y, + az = point3d.z * this.scale.z, + + cx = this.camera.getCameraLocation().x, + cy = this.camera.getCameraLocation().y, + cz = this.camera.getCameraLocation().z, + + // calculate angles + sinTx = Math.sin(this.camera.getCameraRotation().x), + cosTx = Math.cos(this.camera.getCameraRotation().x), + sinTy = Math.sin(this.camera.getCameraRotation().y), + cosTy = Math.cos(this.camera.getCameraRotation().y), + sinTz = Math.sin(this.camera.getCameraRotation().z), + cosTz = Math.cos(this.camera.getCameraRotation().z), + + // calculate translation + dx = cosTy * (sinTz * (ay - cy) + cosTz * (ax - cx)) - sinTy * (az - cz), + dy = sinTx * (cosTy * (az - cz) + sinTy * (sinTz * (ay - cy) + cosTz * (ax - cx))) + cosTx * (cosTz * (ay - cy) - sinTz * (ax-cx)), + dz = cosTx * (cosTy * (az - cz) + sinTy * (sinTz * (ay - cy) + cosTz * (ax - cx))) - sinTx * (cosTz * (ay - cy) - sinTz * (ax-cx)); + + return new Point3d(dx, dy, dz); +}; + +/** + * Convert a translation point to a point on the screen + * @param {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera + * @return {Point2d} point2d A 2D point with parameters x, y + */ +Graph3d.prototype._convertTranslationToScreen = function(translation) { + var ex = this.eye.x, + ey = this.eye.y, + ez = this.eye.z, + dx = translation.x, + dy = translation.y, + dz = translation.z; + + // calculate position on screen from translation + var bx; + var by; + if (this.showPerspective) { + bx = (dx - ex) * (ez / dz); + by = (dy - ey) * (ez / dz); + } + else { + bx = dx * -(ez / this.camera.getArmLength()); + by = dy * -(ez / this.camera.getArmLength()); + } + + // shift and scale the point to the center of the screen + // use the width of the graph to scale both horizontally and vertically. + return new Point2d( + this.xcenter + bx * this.frame.canvas.clientWidth, + this.ycenter - by * this.frame.canvas.clientWidth); +}; + +/** + * Set the background styling for the graph + * @param {string | {fill: string, stroke: string, strokeWidth: string}} backgroundColor + */ +Graph3d.prototype._setBackgroundColor = function(backgroundColor) { + var fill = 'white'; + var stroke = 'gray'; + var strokeWidth = 1; + + if (typeof(backgroundColor) === 'string') { + fill = backgroundColor; + stroke = 'none'; + strokeWidth = 0; + } + else if (typeof(backgroundColor) === 'object') { + if (backgroundColor.fill !== undefined) fill = backgroundColor.fill; + if (backgroundColor.stroke !== undefined) stroke = backgroundColor.stroke; + if (backgroundColor.strokeWidth !== undefined) strokeWidth = backgroundColor.strokeWidth; + } + else if (backgroundColor === undefined) { + // use use defaults + } + else { + throw 'Unsupported type of backgroundColor'; + } + + this.frame.style.backgroundColor = fill; + this.frame.style.borderColor = stroke; + this.frame.style.borderWidth = strokeWidth + 'px'; + this.frame.style.borderStyle = 'solid'; +}; + + +/// enumerate the available styles +Graph3d.STYLE = { + BAR: 0, + BARCOLOR: 1, + BARSIZE: 2, + DOT : 3, + DOTLINE : 4, + DOTCOLOR: 5, + DOTSIZE: 6, + GRID : 7, + LINE: 8, + SURFACE : 9 +}; + +/** + * Retrieve the style index from given styleName + * @param {string} styleName Style name such as 'dot', 'grid', 'dot-line' + * @return {Number} styleNumber Enumeration value representing the style, or -1 + * when not found + */ +Graph3d.prototype._getStyleNumber = function(styleName) { + switch (styleName) { + case 'dot': return Graph3d.STYLE.DOT; + case 'dot-line': return Graph3d.STYLE.DOTLINE; + case 'dot-color': return Graph3d.STYLE.DOTCOLOR; + case 'dot-size': return Graph3d.STYLE.DOTSIZE; + case 'line': return Graph3d.STYLE.LINE; + case 'grid': return Graph3d.STYLE.GRID; + case 'surface': return Graph3d.STYLE.SURFACE; + case 'bar': return Graph3d.STYLE.BAR; + case 'bar-color': return Graph3d.STYLE.BARCOLOR; + case 'bar-size': return Graph3d.STYLE.BARSIZE; + } + + return -1; +}; + +/** + * Determine the indexes of the data columns, based on the given style and data + * @param {DataSet} data + * @param {Number} style + */ +Graph3d.prototype._determineColumnIndexes = function(data, style) { + if (this.style === Graph3d.STYLE.DOT || + this.style === Graph3d.STYLE.DOTLINE || + this.style === Graph3d.STYLE.LINE || + this.style === Graph3d.STYLE.GRID || + this.style === Graph3d.STYLE.SURFACE || + this.style === Graph3d.STYLE.BAR) { + // 3 columns expected, and optionally a 4th with filter values + this.colX = 0; + this.colY = 1; + this.colZ = 2; + this.colValue = undefined; + + if (data.getNumberOfColumns() > 3) { + this.colFilter = 3; + } + } + else if (this.style === Graph3d.STYLE.DOTCOLOR || + this.style === Graph3d.STYLE.DOTSIZE || + this.style === Graph3d.STYLE.BARCOLOR || + this.style === Graph3d.STYLE.BARSIZE) { + // 4 columns expected, and optionally a 5th with filter values + this.colX = 0; + this.colY = 1; + this.colZ = 2; + this.colValue = 3; + if (data.getNumberOfColumns() > 4) { + this.colFilter = 4; + } + } + else { + throw 'Unknown style "' + this.style + '"'; + } +}; +Graph3d.prototype.getNumberOfRows = function(data) { + return data.length; +} +Graph3d.prototype.getNumberOfColumns = function(data) { + var counter = 0; + for (var column in data[0]) { + if (data[0].hasOwnProperty(column)) { + counter++; + } + } + return counter; +} +Graph3d.prototype.getDistinctValues = function(data, column) { + var distinctValues = []; + for (var i = 0; i < data.length; i++) { + if (distinctValues.indexOf(data[i][column]) == -1) { + distinctValues.push(data[i][column]); + } + } + return distinctValues; +} +Graph3d.prototype.getColumnRange = function(data,column) { + var minMax = {min:data[0][column],max:data[0][column]}; + for (var i = 0; i < data.length; i++) { + if (minMax.min > data[i][column]) { minMax.min = data[i][column]; } + if (minMax.max < data[i][column]) { minMax.max = data[i][column]; } + } + return minMax; +}; +/** + * Initialize the data from the data table. Calculate minimum and maximum values + * and column index values + * @param {Array | DataSet | DataView} rawData The data containing the items for the Graph. + * @param {Number} style Style Number + */ +Graph3d.prototype._dataInitialize = function (rawData, style) { + var me = this; + + // unsubscribe from the dataTable + if (this.dataSet) { + this.dataSet.off('*', this._onChange); + } + + if (rawData === undefined) + return; + + if (Array.isArray(rawData)) { + rawData = new DataSet(rawData); + } + + var data; + if (rawData instanceof DataSet || rawData instanceof DataView) { + data = rawData.get(); + } + else { + throw new Error('Array, DataSet, or DataView expected'); + } + + if (data.length == 0) + return; + + this.dataSet = rawData; + this.dataTable = data; + + // subscribe to changes in the dataset + this._onChange = function () { + me.setData(me.dataSet); + }; + this.dataSet.on('*', this._onChange); + + // _determineColumnIndexes + // getNumberOfRows (points) + // getNumberOfColumns (x,y,z,v,t,t1,t2...) + // getDistinctValues (unique values?) + // getColumnRange + + // determine the location of x,y,z,value,filter columns + this.colX = 'x'; + this.colY = 'y'; + this.colZ = 'z'; + this.colValue = 'style'; + this.colFilter = 'filter'; + + + + // check if a filter column is provided + if (data[0].hasOwnProperty('filter')) { + if (this.dataFilter === undefined) { + this.dataFilter = new Filter(rawData, this.colFilter, this); + this.dataFilter.setOnLoadCallback(function() {me.redraw();}); + } + } + + + var withBars = this.style == Graph3d.STYLE.BAR || + this.style == Graph3d.STYLE.BARCOLOR || + this.style == Graph3d.STYLE.BARSIZE; + + // determine barWidth from data + if (withBars) { + if (this.defaultXBarWidth !== undefined) { + this.xBarWidth = this.defaultXBarWidth; + } + else { + var dataX = this.getDistinctValues(data,this.colX); + this.xBarWidth = (dataX[1] - dataX[0]) || 1; + } + + if (this.defaultYBarWidth !== undefined) { + this.yBarWidth = this.defaultYBarWidth; + } + else { + var dataY = this.getDistinctValues(data,this.colY); + this.yBarWidth = (dataY[1] - dataY[0]) || 1; + } + } + + // calculate minimums and maximums + var xRange = this.getColumnRange(data,this.colX); + if (withBars) { + xRange.min -= this.xBarWidth / 2; + xRange.max += this.xBarWidth / 2; + } + this.xMin = (this.defaultXMin !== undefined) ? this.defaultXMin : xRange.min; + this.xMax = (this.defaultXMax !== undefined) ? this.defaultXMax : xRange.max; + if (this.xMax <= this.xMin) this.xMax = this.xMin + 1; + this.xStep = (this.defaultXStep !== undefined) ? this.defaultXStep : (this.xMax-this.xMin)/5; + + var yRange = this.getColumnRange(data,this.colY); + if (withBars) { + yRange.min -= this.yBarWidth / 2; + yRange.max += this.yBarWidth / 2; + } + this.yMin = (this.defaultYMin !== undefined) ? this.defaultYMin : yRange.min; + this.yMax = (this.defaultYMax !== undefined) ? this.defaultYMax : yRange.max; + if (this.yMax <= this.yMin) this.yMax = this.yMin + 1; + this.yStep = (this.defaultYStep !== undefined) ? this.defaultYStep : (this.yMax-this.yMin)/5; + + var zRange = this.getColumnRange(data,this.colZ); + this.zMin = (this.defaultZMin !== undefined) ? this.defaultZMin : zRange.min; + this.zMax = (this.defaultZMax !== undefined) ? this.defaultZMax : zRange.max; + if (this.zMax <= this.zMin) this.zMax = this.zMin + 1; + this.zStep = (this.defaultZStep !== undefined) ? this.defaultZStep : (this.zMax-this.zMin)/5; + + if (this.colValue !== undefined) { + var valueRange = this.getColumnRange(data,this.colValue); + this.valueMin = (this.defaultValueMin !== undefined) ? this.defaultValueMin : valueRange.min; + this.valueMax = (this.defaultValueMax !== undefined) ? this.defaultValueMax : valueRange.max; + if (this.valueMax <= this.valueMin) this.valueMax = this.valueMin + 1; + } + + // set the scale dependent on the ranges. + this._setScale(); +}; + + + +/** + * Filter the data based on the current filter + * @param {Array} data + * @return {Array} dataPoints Array with point objects which can be drawn on screen + */ +Graph3d.prototype._getDataPoints = function (data) { + // TODO: store the created matrix dataPoints in the filters instead of reloading each time + var x, y, i, z, obj, point; + + var dataPoints = []; + + if (this.style === Graph3d.STYLE.GRID || + this.style === Graph3d.STYLE.SURFACE) { + // copy all values from the google data table to a matrix + // the provided values are supposed to form a grid of (x,y) positions + + // create two lists with all present x and y values + var dataX = []; + var dataY = []; + for (i = 0; i < this.getNumberOfRows(data); i++) { + x = data[i][this.colX] || 0; + y = data[i][this.colY] || 0; + + if (dataX.indexOf(x) === -1) { + dataX.push(x); + } + if (dataY.indexOf(y) === -1) { + dataY.push(y); + } + } + + function sortNumber(a, b) { + return a - b; + } + dataX.sort(sortNumber); + dataY.sort(sortNumber); + + // create a grid, a 2d matrix, with all values. + var dataMatrix = []; // temporary data matrix + for (i = 0; i < data.length; i++) { + x = data[i][this.colX] || 0; + y = data[i][this.colY] || 0; + z = data[i][this.colZ] || 0; + + var xIndex = dataX.indexOf(x); // TODO: implement Array().indexOf() for Internet Explorer + var yIndex = dataY.indexOf(y); + + if (dataMatrix[xIndex] === undefined) { + dataMatrix[xIndex] = []; + } + + var point3d = new Point3d(); + point3d.x = x; + point3d.y = y; + point3d.z = z; + + obj = {}; + obj.point = point3d; + obj.trans = undefined; + obj.screen = undefined; + obj.bottom = new Point3d(x, y, this.zMin); + + dataMatrix[xIndex][yIndex] = obj; + + dataPoints.push(obj); + } + + // fill in the pointers to the neighbors. + for (x = 0; x < dataMatrix.length; x++) { + for (y = 0; y < dataMatrix[x].length; y++) { + if (dataMatrix[x][y]) { + dataMatrix[x][y].pointRight = (x < dataMatrix.length-1) ? dataMatrix[x+1][y] : undefined; + dataMatrix[x][y].pointTop = (y < dataMatrix[x].length-1) ? dataMatrix[x][y+1] : undefined; + dataMatrix[x][y].pointCross = + (x < dataMatrix.length-1 && y < dataMatrix[x].length-1) ? + dataMatrix[x+1][y+1] : + undefined; + } + } + } + } + else { // 'dot', 'dot-line', etc. + // copy all values from the google data table to a list with Point3d objects + for (i = 0; i < data.length; i++) { + point = new Point3d(); + point.x = data[i][this.colX] || 0; + point.y = data[i][this.colY] || 0; + point.z = data[i][this.colZ] || 0; + + if (this.colValue !== undefined) { + point.value = data[i][this.colValue] || 0; + } + + obj = {}; + obj.point = point; + obj.bottom = new Point3d(point.x, point.y, this.zMin); + obj.trans = undefined; + obj.screen = undefined; + + dataPoints.push(obj); + } + } + + return dataPoints; +}; + + + + +/** + * Append suffix 'px' to provided value x + * @param {int} x An integer value + * @return {string} the string value of x, followed by the suffix 'px' + */ +Graph3d.px = function(x) { + return x + 'px'; +}; + + +/** + * Create the main frame for the Graph3d. + * This function is executed once when a Graph3d object is created. The frame + * contains a canvas, and this canvas contains all objects like the axis and + * nodes. + */ +Graph3d.prototype.create = function () { + // remove all elements from the container element. + while (this.containerElement.hasChildNodes()) { + this.containerElement.removeChild(this.containerElement.firstChild); + } + + this.frame = document.createElement('div'); + this.frame.style.position = 'relative'; + this.frame.style.overflow = 'hidden'; + + // create the graph canvas (HTML canvas element) + this.frame.canvas = document.createElement( 'canvas' ); + this.frame.canvas.style.position = 'relative'; + this.frame.appendChild(this.frame.canvas); + //if (!this.frame.canvas.getContext) { + { + var noCanvas = document.createElement( 'DIV' ); + noCanvas.style.color = 'red'; + noCanvas.style.fontWeight = 'bold' ; + noCanvas.style.padding = '10px'; + noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; + this.frame.canvas.appendChild(noCanvas); + } + + this.frame.filter = document.createElement( 'div' ); + this.frame.filter.style.position = 'absolute'; + this.frame.filter.style.bottom = '0px'; + this.frame.filter.style.left = '0px'; + this.frame.filter.style.width = '100%'; + this.frame.appendChild(this.frame.filter); + + // add event listeners to handle moving and zooming the contents + var me = this; + var onmousedown = function (event) {me._onMouseDown(event);}; + var ontouchstart = function (event) {me._onTouchStart(event);}; + var onmousewheel = function (event) {me._onWheel(event);}; + var ontooltip = function (event) {me._onTooltip(event);}; + // TODO: these events are never cleaned up... can give a 'memory leakage' + + G3DaddEventListener(this.frame.canvas, 'keydown', onkeydown); + G3DaddEventListener(this.frame.canvas, 'mousedown', onmousedown); + G3DaddEventListener(this.frame.canvas, 'touchstart', ontouchstart); + G3DaddEventListener(this.frame.canvas, 'mousewheel', onmousewheel); + G3DaddEventListener(this.frame.canvas, 'mousemove', ontooltip); + + // add the new graph to the container element + this.containerElement.appendChild(this.frame); +}; + + +/** + * Set a new size for the graph + * @param {string} width Width in pixels or percentage (for example '800px' + * or '50%') + * @param {string} height Height in pixels or percentage (for example '400px' + * or '30%') + */ +Graph3d.prototype.setSize = function(width, height) { + this.frame.style.width = width; + this.frame.style.height = height; + + this._resizeCanvas(); +}; + +/** + * Resize the canvas to the current size of the frame + */ +Graph3d.prototype._resizeCanvas = function() { + this.frame.canvas.style.width = '100%'; + this.frame.canvas.style.height = '100%'; + + this.frame.canvas.width = this.frame.canvas.clientWidth; + this.frame.canvas.height = this.frame.canvas.clientHeight; + + // adjust with for margin + this.frame.filter.style.width = (this.frame.canvas.clientWidth - 2 * 10) + 'px'; +}; + +/** + * Start animation + */ +Graph3d.prototype.animationStart = function() { + if (!this.frame.filter || !this.frame.filter.slider) + throw 'No animation available'; + + this.frame.filter.slider.play(); +}; + + +/** + * Stop animation + */ +Graph3d.prototype.animationStop = function() { + if (!this.frame.filter || !this.frame.filter.slider) return; + + this.frame.filter.slider.stop(); +}; + + +/** + * Resize the center position based on the current values in this.defaultXCenter + * and this.defaultYCenter (which are strings with a percentage or a value + * in pixels). The center positions are the variables this.xCenter + * and this.yCenter + */ +Graph3d.prototype._resizeCenter = function() { + // calculate the horizontal center position + if (this.defaultXCenter.charAt(this.defaultXCenter.length-1) === '%') { + this.xcenter = + parseFloat(this.defaultXCenter) / 100 * + this.frame.canvas.clientWidth; + } + else { + this.xcenter = parseFloat(this.defaultXCenter); // supposed to be in px + } + + // calculate the vertical center position + if (this.defaultYCenter.charAt(this.defaultYCenter.length-1) === '%') { + this.ycenter = + parseFloat(this.defaultYCenter) / 100 * + (this.frame.canvas.clientHeight - this.frame.filter.clientHeight); + } + else { + this.ycenter = parseFloat(this.defaultYCenter); // supposed to be in px + } +}; + +/** + * Set the rotation and distance of the camera + * @param {Object} pos An object with the camera position. The object + * contains three parameters: + * - horizontal {Number} + * The horizontal rotation, between 0 and 2*PI. + * Optional, can be left undefined. + * - vertical {Number} + * The vertical rotation, between 0 and 0.5*PI + * if vertical=0.5*PI, the graph is shown from the + * top. Optional, can be left undefined. + * - distance {Number} + * The (normalized) distance of the camera to the + * center of the graph, a value between 0.71 and 5.0. + * Optional, can be left undefined. + */ +Graph3d.prototype.setCameraPosition = function(pos) { + if (pos === undefined) { + return; + } + + if (pos.horizontal !== undefined && pos.vertical !== undefined) { + this.camera.setArmRotation(pos.horizontal, pos.vertical); + } + + if (pos.distance !== undefined) { + this.camera.setArmLength(pos.distance); + } + + this.redraw(); +}; + + +/** + * Retrieve the current camera rotation + * @return {object} An object with parameters horizontal, vertical, and + * distance + */ +Graph3d.prototype.getCameraPosition = function() { + var pos = this.camera.getArmRotation(); + pos.distance = this.camera.getArmLength(); + return pos; +}; + +/** + * Load data into the 3D Graph + */ +Graph3d.prototype._readData = function(data) { + // read the data + this._dataInitialize(data, this.style); + + + if (this.dataFilter) { + // apply filtering + this.dataPoints = this.dataFilter._getDataPoints(); + } + else { + // no filtering. load all data + this.dataPoints = this._getDataPoints(this.dataTable); + } + + // draw the filter + this._redrawFilter(); +}; + +/** + * Replace the dataset of the Graph3d + * @param {Array | DataSet | DataView} data + */ +Graph3d.prototype.setData = function (data) { + this._readData(data); + this.redraw(); + + // start animation when option is true + if (this.animationAutoStart && this.dataFilter) { + this.animationStart(); + } +}; + +/** + * Update the options. Options will be merged with current options + * @param {Object} options + */ +Graph3d.prototype.setOptions = function (options) { + var cameraPosition = undefined; + + this.animationStop(); + + if (options !== undefined) { + // retrieve parameter values + if (options.width !== undefined) this.width = options.width; + if (options.height !== undefined) this.height = options.height; + + if (options.xCenter !== undefined) this.defaultXCenter = options.xCenter; + if (options.yCenter !== undefined) this.defaultYCenter = options.yCenter; + + if (options.filterLabel !== undefined) this.filterLabel = options.filterLabel; + if (options.legendLabel !== undefined) this.legendLabel = options.legendLabel; + if (options.xLabel !== undefined) this.xLabel = options.xLabel; + if (options.yLabel !== undefined) this.yLabel = options.yLabel; + if (options.zLabel !== undefined) this.zLabel = options.zLabel; + + if (options.style !== undefined) { + var styleNumber = this._getStyleNumber(options.style); + if (styleNumber !== -1) { + this.style = styleNumber; + } + } + if (options.showGrid !== undefined) this.showGrid = options.showGrid; + if (options.showPerspective !== undefined) this.showPerspective = options.showPerspective; + if (options.showShadow !== undefined) this.showShadow = options.showShadow; + if (options.tooltip !== undefined) this.showTooltip = options.tooltip; + if (options.showAnimationControls !== undefined) this.showAnimationControls = options.showAnimationControls; + if (options.keepAspectRatio !== undefined) this.keepAspectRatio = options.keepAspectRatio; + if (options.verticalRatio !== undefined) this.verticalRatio = options.verticalRatio; + + if (options.animationInterval !== undefined) this.animationInterval = options.animationInterval; + if (options.animationPreload !== undefined) this.animationPreload = options.animationPreload; + if (options.animationAutoStart !== undefined)this.animationAutoStart = options.animationAutoStart; + + if (options.xBarWidth !== undefined) this.defaultXBarWidth = options.xBarWidth; + if (options.yBarWidth !== undefined) this.defaultYBarWidth = options.yBarWidth; + + if (options.xMin !== undefined) this.defaultXMin = options.xMin; + if (options.xStep !== undefined) this.defaultXStep = options.xStep; + if (options.xMax !== undefined) this.defaultXMax = options.xMax; + if (options.yMin !== undefined) this.defaultYMin = options.yMin; + if (options.yStep !== undefined) this.defaultYStep = options.yStep; + if (options.yMax !== undefined) this.defaultYMax = options.yMax; + if (options.zMin !== undefined) this.defaultZMin = options.zMin; + if (options.zStep !== undefined) this.defaultZStep = options.zStep; + if (options.zMax !== undefined) this.defaultZMax = options.zMax; + if (options.valueMin !== undefined) this.defaultValueMin = options.valueMin; + if (options.valueMax !== undefined) this.defaultValueMax = options.valueMax; + + if (options.cameraPosition !== undefined) cameraPosition = options.cameraPosition; + + if (cameraPosition !== undefined) { + this.camera.setArmRotation(cameraPosition.horizontal, cameraPosition.vertical); + this.camera.setArmLength(cameraPosition.distance); + } + else { + this.camera.setArmRotation(1.0, 0.5); + this.camera.setArmLength(1.7); + } + } + + this._setBackgroundColor(options && options.backgroundColor); + + this.setSize(this.width, this.height); + + // re-load the data + if (this.dataTable) { + this.setData(this.dataTable); + } + + // start animation when option is true + if (this.animationAutoStart && this.dataFilter) { + this.animationStart(); + } +}; + +/** + * Redraw the Graph. + */ +Graph3d.prototype.redraw = function() { + if (this.dataPoints === undefined) { + throw 'Error: graph data not initialized'; + } + + this._resizeCanvas(); + this._resizeCenter(); + this._redrawSlider(); + this._redrawClear(); + this._redrawAxis(); + + if (this.style === Graph3d.STYLE.GRID || + this.style === Graph3d.STYLE.SURFACE) { + this._redrawDataGrid(); + } + else if (this.style === Graph3d.STYLE.LINE) { + this._redrawDataLine(); + } + else if (this.style === Graph3d.STYLE.BAR || + this.style === Graph3d.STYLE.BARCOLOR || + this.style === Graph3d.STYLE.BARSIZE) { + this._redrawDataBar(); + } + else { + // style is DOT, DOTLINE, DOTCOLOR, DOTSIZE + this._redrawDataDot(); + } + + this._redrawInfo(); + this._redrawLegend(); +}; + +/** + * Clear the canvas before redrawing + */ +Graph3d.prototype._redrawClear = function() { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + + ctx.clearRect(0, 0, canvas.width, canvas.height); +}; + + +/** + * Redraw the legend showing the colors + */ +Graph3d.prototype._redrawLegend = function() { + var y; + + if (this.style === Graph3d.STYLE.DOTCOLOR || + this.style === Graph3d.STYLE.DOTSIZE) { + + var dotSize = this.frame.clientWidth * 0.02; + + var widthMin, widthMax; + if (this.style === Graph3d.STYLE.DOTSIZE) { + widthMin = dotSize / 2; // px + widthMax = dotSize / 2 + dotSize * 2; // Todo: put this in one function + } + else { + widthMin = 20; // px + widthMax = 20; // px + } + + var height = Math.max(this.frame.clientHeight * 0.25, 100); + var top = this.margin; + var right = this.frame.clientWidth - this.margin; + var left = right - widthMax; + var bottom = top + height; + } + + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + ctx.lineWidth = 1; + ctx.font = '14px arial'; // TODO: put in options + + if (this.style === Graph3d.STYLE.DOTCOLOR) { + // draw the color bar + var ymin = 0; + var ymax = height; // Todo: make height customizable + for (y = ymin; y < ymax; y++) { + var f = (y - ymin) / (ymax - ymin); + + //var width = (dotSize / 2 + (1-f) * dotSize * 2); // Todo: put this in one function + var hue = f * 240; + var color = this._hsv2rgb(hue, 1, 1); + + ctx.strokeStyle = color; + ctx.beginPath(); + ctx.moveTo(left, top + y); + ctx.lineTo(right, top + y); + ctx.stroke(); + } + + ctx.strokeStyle = this.colorAxis; + ctx.strokeRect(left, top, widthMax, height); + } + + if (this.style === Graph3d.STYLE.DOTSIZE) { + // draw border around color bar + ctx.strokeStyle = this.colorAxis; + ctx.fillStyle = this.colorDot; + ctx.beginPath(); + ctx.moveTo(left, top); + ctx.lineTo(right, top); + ctx.lineTo(right - widthMax + widthMin, bottom); + ctx.lineTo(left, bottom); + ctx.closePath(); + ctx.fill(); + ctx.stroke(); + } + + if (this.style === Graph3d.STYLE.DOTCOLOR || + this.style === Graph3d.STYLE.DOTSIZE) { + // print values along the color bar + var gridLineLen = 5; // px + var step = new StepNumber(this.valueMin, this.valueMax, (this.valueMax-this.valueMin)/5, true); + step.start(); + if (step.getCurrent() < this.valueMin) { + step.next(); + } + while (!step.end()) { + y = bottom - (step.getCurrent() - this.valueMin) / (this.valueMax - this.valueMin) * height; + + ctx.beginPath(); + ctx.moveTo(left - gridLineLen, y); + ctx.lineTo(left, y); + ctx.stroke(); + + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.colorAxis; + ctx.fillText(step.getCurrent(), left - 2 * gridLineLen, y); + + step.next(); + } + + ctx.textAlign = 'right'; + ctx.textBaseline = 'top'; + var label = this.legendLabel; + ctx.fillText(label, right, bottom + this.margin); + } +}; + +/** + * Redraw the filter + */ +Graph3d.prototype._redrawFilter = function() { + this.frame.filter.innerHTML = ''; + + if (this.dataFilter) { + var options = { + 'visible': this.showAnimationControls + }; + var slider = new Slider(this.frame.filter, options); + this.frame.filter.slider = slider; + + // TODO: css here is not nice here... + this.frame.filter.style.padding = '10px'; + //this.frame.filter.style.backgroundColor = '#EFEFEF'; + + slider.setValues(this.dataFilter.values); + slider.setPlayInterval(this.animationInterval); + + // create an event handler + var me = this; + var onchange = function () { + var index = slider.getIndex(); + + me.dataFilter.selectValue(index); + me.dataPoints = me.dataFilter._getDataPoints(); + + me.redraw(); + }; + slider.setOnChangeCallback(onchange); + } + else { + this.frame.filter.slider = undefined; + } +}; + +/** + * Redraw the slider + */ +Graph3d.prototype._redrawSlider = function() { + if ( this.frame.filter.slider !== undefined) { + this.frame.filter.slider.redraw(); + } +}; + + +/** + * Redraw common information + */ +Graph3d.prototype._redrawInfo = function() { + if (this.dataFilter) { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + + ctx.font = '14px arial'; // TODO: put in options + ctx.lineStyle = 'gray'; + ctx.fillStyle = 'gray'; + ctx.textAlign = 'left'; + ctx.textBaseline = 'top'; + + var x = this.margin; + var y = this.margin; + ctx.fillText(this.dataFilter.getLabel() + ': ' + this.dataFilter.getSelectedValue(), x, y); + } +}; + + +/** + * Redraw the axis + */ +Graph3d.prototype._redrawAxis = function() { + var canvas = this.frame.canvas, + ctx = canvas.getContext('2d'), + from, to, step, prettyStep, + text, xText, yText, zText, + offset, xOffset, yOffset, + xMin2d, xMax2d; + + // TODO: get the actual rendered style of the containerElement + //ctx.font = this.containerElement.style.font; + ctx.font = 24 / this.camera.getArmLength() + 'px arial'; + + // calculate the length for the short grid lines + var gridLenX = 0.025 / this.scale.x; + var gridLenY = 0.025 / this.scale.y; + var textMargin = 5 / this.camera.getArmLength(); // px + var armAngle = this.camera.getArmRotation().horizontal; + + // draw x-grid lines + ctx.lineWidth = 1; + prettyStep = (this.defaultXStep === undefined); + step = new StepNumber(this.xMin, this.xMax, this.xStep, prettyStep); + step.start(); + if (step.getCurrent() < this.xMin) { + step.next(); + } + while (!step.end()) { + var x = step.getCurrent(); + + if (this.showGrid) { + from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorGrid; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + } + else { + from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(x, this.yMin+gridLenX, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + + from = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); + to = this._convert3Dto2D(new Point3d(x, this.yMax-gridLenX, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + } + + yText = (Math.cos(armAngle) > 0) ? this.yMin : this.yMax; + text = this._convert3Dto2D(new Point3d(x, yText, this.zMin)); + if (Math.cos(armAngle * 2) > 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + text.y += textMargin; + } + else if (Math.sin(armAngle * 2) < 0){ + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } + else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + ctx.fillStyle = this.colorAxis; + ctx.fillText(' ' + step.getCurrent() + ' ', text.x, text.y); + + step.next(); + } + + // draw y-grid lines + ctx.lineWidth = 1; + prettyStep = (this.defaultYStep === undefined); + step = new StepNumber(this.yMin, this.yMax, this.yStep, prettyStep); + step.start(); + if (step.getCurrent() < this.yMin) { + step.next(); + } + while (!step.end()) { + if (this.showGrid) { + from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); + ctx.strokeStyle = this.colorGrid; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + } + else { + from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMin+gridLenY, step.getCurrent(), this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + + from = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMax-gridLenY, step.getCurrent(), this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + } + + xText = (Math.sin(armAngle ) > 0) ? this.xMin : this.xMax; + text = this._convert3Dto2D(new Point3d(xText, step.getCurrent(), this.zMin)); + if (Math.cos(armAngle * 2) < 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + text.y += textMargin; + } + else if (Math.sin(armAngle * 2) > 0){ + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } + else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + ctx.fillStyle = this.colorAxis; + ctx.fillText(' ' + step.getCurrent() + ' ', text.x, text.y); + + step.next(); + } + + // draw z-grid lines and axis + ctx.lineWidth = 1; + prettyStep = (this.defaultZStep === undefined); + step = new StepNumber(this.zMin, this.zMax, this.zStep, prettyStep); + step.start(); + if (step.getCurrent() < this.zMin) { + step.next(); + } + xText = (Math.cos(armAngle ) > 0) ? this.xMin : this.xMax; + yText = (Math.sin(armAngle ) < 0) ? this.yMin : this.yMax; + while (!step.end()) { + // TODO: make z-grid lines really 3d? + from = this._convert3Dto2D(new Point3d(xText, yText, step.getCurrent())); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(from.x - textMargin, from.y); + ctx.stroke(); + + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.colorAxis; + ctx.fillText(step.getCurrent() + ' ', from.x - 5, from.y); + + step.next(); + } + ctx.lineWidth = 1; + from = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); + to = this._convert3Dto2D(new Point3d(xText, yText, this.zMax)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + + // draw x-axis + ctx.lineWidth = 1; + // line at yMin + xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); + xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(xMin2d.x, xMin2d.y); + ctx.lineTo(xMax2d.x, xMax2d.y); + ctx.stroke(); + // line at ymax + xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); + xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(xMin2d.x, xMin2d.y); + ctx.lineTo(xMax2d.x, xMax2d.y); + ctx.stroke(); + + // draw y-axis + ctx.lineWidth = 1; + // line at xMin + from = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + // line at xMax + from = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + + // draw x-label + var xLabel = this.xLabel; + if (xLabel.length > 0) { + yOffset = 0.1 / this.scale.y; + xText = (this.xMin + this.xMax) / 2; + yText = (Math.cos(armAngle) > 0) ? this.yMin - yOffset: this.yMax + yOffset; + text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); + if (Math.cos(armAngle * 2) > 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + } + else if (Math.sin(armAngle * 2) < 0){ + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } + else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + ctx.fillStyle = this.colorAxis; + ctx.fillText(xLabel, text.x, text.y); + } + + // draw y-label + var yLabel = this.yLabel; + if (yLabel.length > 0) { + xOffset = 0.1 / this.scale.x; + xText = (Math.sin(armAngle ) > 0) ? this.xMin - xOffset : this.xMax + xOffset; + yText = (this.yMin + this.yMax) / 2; + text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); + if (Math.cos(armAngle * 2) < 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + } + else if (Math.sin(armAngle * 2) > 0){ + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } + else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + ctx.fillStyle = this.colorAxis; + ctx.fillText(yLabel, text.x, text.y); + } + + // draw z-label + var zLabel = this.zLabel; + if (zLabel.length > 0) { + offset = 30; // pixels. // TODO: relate to the max width of the values on the z axis? + xText = (Math.cos(armAngle ) > 0) ? this.xMin : this.xMax; + yText = (Math.sin(armAngle ) < 0) ? this.yMin : this.yMax; + zText = (this.zMin + this.zMax) / 2; + text = this._convert3Dto2D(new Point3d(xText, yText, zText)); + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.colorAxis; + ctx.fillText(zLabel, text.x - offset, text.y); + } +}; + +/** + * Calculate the color based on the given value. + * @param {Number} H Hue, a value be between 0 and 360 + * @param {Number} S Saturation, a value between 0 and 1 + * @param {Number} V Value, a value between 0 and 1 + */ +Graph3d.prototype._hsv2rgb = function(H, S, V) { + var R, G, B, C, Hi, X; + + C = V * S; + Hi = Math.floor(H/60); // hi = 0,1,2,3,4,5 + X = C * (1 - Math.abs(((H/60) % 2) - 1)); + + switch (Hi) { + case 0: R = C; G = X; B = 0; break; + case 1: R = X; G = C; B = 0; break; + case 2: R = 0; G = C; B = X; break; + case 3: R = 0; G = X; B = C; break; + case 4: R = X; G = 0; B = C; break; + case 5: R = C; G = 0; B = X; break; + + default: R = 0; G = 0; B = 0; break; + } + + return 'RGB(' + parseInt(R*255) + ',' + parseInt(G*255) + ',' + parseInt(B*255) + ')'; +}; + + +/** + * Draw all datapoints as a grid + * This function can be used when the style is 'grid' + */ +Graph3d.prototype._redrawDataGrid = function() { + var canvas = this.frame.canvas, + ctx = canvas.getContext('2d'), + point, right, top, cross, + i, + topSideVisible, fillStyle, strokeStyle, lineWidth, + h, s, v, zAvg; + + + if (this.dataPoints === undefined || this.dataPoints.length <= 0) + return; // TODO: throw exception? + + // calculate the translations and screen position of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); + + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; + + // calculate the translation of the point at the bottom (needed for sorting) + var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); + this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; + } + + // sort the points on depth of their (x,y) position (not on z) + var sortDepth = function (a, b) { + return b.dist - a.dist; + }; + this.dataPoints.sort(sortDepth); + + if (this.style === Graph3d.STYLE.SURFACE) { + for (i = 0; i < this.dataPoints.length; i++) { + point = this.dataPoints[i]; + right = this.dataPoints[i].pointRight; + top = this.dataPoints[i].pointTop; + cross = this.dataPoints[i].pointCross; + + if (point !== undefined && right !== undefined && top !== undefined && cross !== undefined) { + + if (this.showGrayBottom || this.showShadow) { + // calculate the cross product of the two vectors from center + // to left and right, in order to know whether we are looking at the + // bottom or at the top side. We can also use the cross product + // for calculating light intensity + var aDiff = Point3d.subtract(cross.trans, point.trans); + var bDiff = Point3d.subtract(top.trans, right.trans); + var crossproduct = Point3d.crossProduct(aDiff, bDiff); + var len = crossproduct.length(); + // FIXME: there is a bug with determining the surface side (shadow or colored) + + topSideVisible = (crossproduct.z > 0); + } + else { + topSideVisible = true; + } + + if (topSideVisible) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + right.point.z + top.point.z + cross.point.z) / 4; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; + s = 1; // saturation + + if (this.showShadow) { + v = Math.min(1 + (crossproduct.x / len) / 2, 1); // value. TODO: scale + fillStyle = this._hsv2rgb(h, s, v); + strokeStyle = fillStyle; + } + else { + v = 1; + fillStyle = this._hsv2rgb(h, s, v); + strokeStyle = this.colorAxis; + } + } + else { + fillStyle = 'gray'; + strokeStyle = this.colorAxis; + } + lineWidth = 0.5; + + ctx.lineWidth = lineWidth; + ctx.fillStyle = fillStyle; + ctx.strokeStyle = strokeStyle; + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(right.screen.x, right.screen.y); + ctx.lineTo(cross.screen.x, cross.screen.y); + ctx.lineTo(top.screen.x, top.screen.y); + ctx.closePath(); + ctx.fill(); + ctx.stroke(); + } + } + } + else { // grid style + for (i = 0; i < this.dataPoints.length; i++) { + point = this.dataPoints[i]; + right = this.dataPoints[i].pointRight; + top = this.dataPoints[i].pointTop; + + if (point !== undefined) { + if (this.showPerspective) { + lineWidth = 2 / -point.trans.z; + } + else { + lineWidth = 2 * -(this.eye.z / this.camera.getArmLength()); + } + } + + if (point !== undefined && right !== undefined) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + right.point.z) / 2; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; + + ctx.lineWidth = lineWidth; + ctx.strokeStyle = this._hsv2rgb(h, 1, 1); + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(right.screen.x, right.screen.y); + ctx.stroke(); + } + + if (point !== undefined && top !== undefined) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + top.point.z) / 2; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; + + ctx.lineWidth = lineWidth; + ctx.strokeStyle = this._hsv2rgb(h, 1, 1); + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(top.screen.x, top.screen.y); + ctx.stroke(); + } + } + } +}; + + +/** + * Draw all datapoints as dots. + * This function can be used when the style is 'dot' or 'dot-line' + */ +Graph3d.prototype._redrawDataDot = function() { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + var i; + + if (this.dataPoints === undefined || this.dataPoints.length <= 0) + return; // TODO: throw exception? + + // calculate the translations of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; + + // calculate the distance from the point at the bottom to the camera + var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); + this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; + } + + // order the translated points by depth + var sortDepth = function (a, b) { + return b.dist - a.dist; + }; + this.dataPoints.sort(sortDepth); + + // draw the datapoints as colored circles + var dotSize = this.frame.clientWidth * 0.02; // px + for (i = 0; i < this.dataPoints.length; i++) { + var point = this.dataPoints[i]; + + if (this.style === Graph3d.STYLE.DOTLINE) { + // draw a vertical line from the bottom to the graph value + //var from = this._convert3Dto2D(new Point3d(point.point.x, point.point.y, this.zMin)); + var from = this._convert3Dto2D(point.bottom); + ctx.lineWidth = 1; + ctx.strokeStyle = this.colorGrid; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(point.screen.x, point.screen.y); + ctx.stroke(); + } + + // calculate radius for the circle + var size; + if (this.style === Graph3d.STYLE.DOTSIZE) { + size = dotSize/2 + 2*dotSize * (point.point.value - this.valueMin) / (this.valueMax - this.valueMin); + } + else { + size = dotSize; + } + + var radius; + if (this.showPerspective) { + radius = size / -point.trans.z; + } + else { + radius = size * -(this.eye.z / this.camera.getArmLength()); + } + if (radius < 0) { + radius = 0; + } + + var hue, color, borderColor; + if (this.style === Graph3d.STYLE.DOTCOLOR ) { + // calculate the color based on the value + hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); + } + else if (this.style === Graph3d.STYLE.DOTSIZE) { + color = this.colorDot; + borderColor = this.colorDotBorder; + } + else { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); + } + + // draw the circle + ctx.lineWidth = 1.0; + ctx.strokeStyle = borderColor; + ctx.fillStyle = color; + ctx.beginPath(); + ctx.arc(point.screen.x, point.screen.y, radius, 0, Math.PI*2, true); + ctx.fill(); + ctx.stroke(); + } +}; + +/** + * Draw all datapoints as bars. + * This function can be used when the style is 'bar', 'bar-color', or 'bar-size' + */ +Graph3d.prototype._redrawDataBar = function() { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + var i, j, surface, corners; + + if (this.dataPoints === undefined || this.dataPoints.length <= 0) + return; // TODO: throw exception? + + // calculate the translations of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; + + // calculate the distance from the point at the bottom to the camera + var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); + this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; + } + + // order the translated points by depth + var sortDepth = function (a, b) { + return b.dist - a.dist; + }; + this.dataPoints.sort(sortDepth); + + // draw the datapoints as bars + var xWidth = this.xBarWidth / 2; + var yWidth = this.yBarWidth / 2; + for (i = 0; i < this.dataPoints.length; i++) { + var point = this.dataPoints[i]; + + // determine color + var hue, color, borderColor; + if (this.style === Graph3d.STYLE.BARCOLOR ) { + // calculate the color based on the value + hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); + } + else if (this.style === Graph3d.STYLE.BARSIZE) { + color = this.colorDot; + borderColor = this.colorDotBorder; + } + else { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); + } + + // calculate size for the bar + if (this.style === Graph3d.STYLE.BARSIZE) { + xWidth = (this.xBarWidth / 2) * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); + yWidth = (this.yBarWidth / 2) * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); + } + + // calculate all corner points + var me = this; + var point3d = point.point; + var top = [ + {point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, point3d.z)}, + {point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, point3d.z)}, + {point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, point3d.z)}, + {point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, point3d.z)} + ]; + var bottom = [ + {point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, this.zMin)}, + {point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, this.zMin)}, + {point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, this.zMin)}, + {point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, this.zMin)} + ]; + + // calculate screen location of the points + top.forEach(function (obj) { + obj.screen = me._convert3Dto2D(obj.point); + }); + bottom.forEach(function (obj) { + obj.screen = me._convert3Dto2D(obj.point); + }); + + // create five sides, calculate both corner points and center points + var surfaces = [ + {corners: top, center: Point3d.avg(bottom[0].point, bottom[2].point)}, + {corners: [top[0], top[1], bottom[1], bottom[0]], center: Point3d.avg(bottom[1].point, bottom[0].point)}, + {corners: [top[1], top[2], bottom[2], bottom[1]], center: Point3d.avg(bottom[2].point, bottom[1].point)}, + {corners: [top[2], top[3], bottom[3], bottom[2]], center: Point3d.avg(bottom[3].point, bottom[2].point)}, + {corners: [top[3], top[0], bottom[0], bottom[3]], center: Point3d.avg(bottom[0].point, bottom[3].point)} + ]; + point.surfaces = surfaces; + + // calculate the distance of each of the surface centers to the camera + for (j = 0; j < surfaces.length; j++) { + surface = surfaces[j]; + var transCenter = this._convertPointToTranslation(surface.center); + surface.dist = this.showPerspective ? transCenter.length() : -transCenter.z; + // TODO: this dept calculation doesn't work 100% of the cases due to perspective, + // but the current solution is fast/simple and works in 99.9% of all cases + // the issue is visible in example 14, with graph.setCameraPosition({horizontal: 2.97, vertical: 0.5, distance: 0.9}) + } + + // order the surfaces by their (translated) depth + surfaces.sort(function (a, b) { + var diff = b.dist - a.dist; + if (diff) return diff; + + // if equal depth, sort the top surface last + if (a.corners === top) return 1; + if (b.corners === top) return -1; + + // both are equal + return 0; + }); + + // draw the ordered surfaces + ctx.lineWidth = 1; + ctx.strokeStyle = borderColor; + ctx.fillStyle = color; + // NOTE: we start at j=2 instead of j=0 as we don't need to draw the two surfaces at the backside + for (j = 2; j < surfaces.length; j++) { + surface = surfaces[j]; + corners = surface.corners; + ctx.beginPath(); + ctx.moveTo(corners[3].screen.x, corners[3].screen.y); + ctx.lineTo(corners[0].screen.x, corners[0].screen.y); + ctx.lineTo(corners[1].screen.x, corners[1].screen.y); + ctx.lineTo(corners[2].screen.x, corners[2].screen.y); + ctx.lineTo(corners[3].screen.x, corners[3].screen.y); + ctx.fill(); + ctx.stroke(); + } + } +}; + + +/** + * Draw a line through all datapoints. + * This function can be used when the style is 'line' + */ +Graph3d.prototype._redrawDataLine = function() { + var canvas = this.frame.canvas, + ctx = canvas.getContext('2d'), + point, i; + + if (this.dataPoints === undefined || this.dataPoints.length <= 0) + return; // TODO: throw exception? + + // calculate the translations of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); + + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; + } + + // start the line + if (this.dataPoints.length > 0) { + point = this.dataPoints[0]; + + ctx.lineWidth = 1; // TODO: make customizable + ctx.strokeStyle = 'blue'; // TODO: make customizable + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + } + + // draw the datapoints as colored circles + for (i = 1; i < this.dataPoints.length; i++) { + point = this.dataPoints[i]; + ctx.lineTo(point.screen.x, point.screen.y); + } + + // finish the line + if (this.dataPoints.length > 0) { + ctx.stroke(); + } +}; + +/** + * Start a moving operation inside the provided parent element + * @param {Event} event The event that occurred (required for + * retrieving the mouse position) + */ +Graph3d.prototype._onMouseDown = function(event) { + event = event || window.event; + + // check if mouse is still down (may be up when focus is lost for example + // in an iframe) + if (this.leftButtonDown) { + this._onMouseUp(event); + } + + // only react on left mouse button down + this.leftButtonDown = event.which ? (event.which === 1) : (event.button === 1); + if (!this.leftButtonDown && !this.touchDown) return; + + // get mouse position (different code for IE and all other browsers) + this.startMouseX = getMouseX(event); + this.startMouseY = getMouseY(event); + + this.startStart = new Date(this.start); + this.startEnd = new Date(this.end); + this.startArmRotation = this.camera.getArmRotation(); + + this.frame.style.cursor = 'move'; + + // add event listeners to handle moving the contents + // we store the function onmousemove and onmouseup in the graph, so we can + // remove the eventlisteners lateron in the function mouseUp() + var me = this; + this.onmousemove = function (event) {me._onMouseMove(event);}; + this.onmouseup = function (event) {me._onMouseUp(event);}; + G3DaddEventListener(document, 'mousemove', me.onmousemove); + G3DaddEventListener(document, 'mouseup', me.onmouseup); + G3DpreventDefault(event); +}; + + +/** + * Perform moving operating. + * This function activated from within the funcion Graph.mouseDown(). + * @param {Event} event Well, eehh, the event + */ +Graph3d.prototype._onMouseMove = function (event) { + event = event || window.event; + + // calculate change in mouse position + var diffX = parseFloat(getMouseX(event)) - this.startMouseX; + var diffY = parseFloat(getMouseY(event)) - this.startMouseY; + + var horizontalNew = this.startArmRotation.horizontal + diffX / 200; + var verticalNew = this.startArmRotation.vertical + diffY / 200; + + var snapAngle = 4; // degrees + var snapValue = Math.sin(snapAngle / 360 * 2 * Math.PI); + + // snap horizontally to nice angles at 0pi, 0.5pi, 1pi, 1.5pi, etc... + // the -0.001 is to take care that the vertical axis is always drawn at the left front corner + if (Math.abs(Math.sin(horizontalNew)) < snapValue) { + horizontalNew = Math.round((horizontalNew / Math.PI)) * Math.PI - 0.001; + } + if (Math.abs(Math.cos(horizontalNew)) < snapValue) { + horizontalNew = (Math.round((horizontalNew/ Math.PI - 0.5)) + 0.5) * Math.PI - 0.001; + } + + // snap vertically to nice angles + if (Math.abs(Math.sin(verticalNew)) < snapValue) { + verticalNew = Math.round((verticalNew / Math.PI)) * Math.PI; + } + if (Math.abs(Math.cos(verticalNew)) < snapValue) { + verticalNew = (Math.round((verticalNew/ Math.PI - 0.5)) + 0.5) * Math.PI; + } + + this.camera.setArmRotation(horizontalNew, verticalNew); + this.redraw(); + + // fire a cameraPositionChange event + var parameters = this.getCameraPosition(); + this.emit('cameraPositionChange', parameters); + + G3DpreventDefault(event); +}; + + +/** + * Stop moving operating. + * This function activated from within the funcion Graph.mouseDown(). + * @param {event} event The event + */ +Graph3d.prototype._onMouseUp = function (event) { + this.frame.style.cursor = 'auto'; + this.leftButtonDown = false; + + // remove event listeners here + G3DremoveEventListener(document, 'mousemove', this.onmousemove); + G3DremoveEventListener(document, 'mouseup', this.onmouseup); + G3DpreventDefault(event); +}; + +/** + * After having moved the mouse, a tooltip should pop up when the mouse is resting on a data point + * @param {Event} event A mouse move event + */ +Graph3d.prototype._onTooltip = function (event) { + var delay = 300; // ms + var mouseX = getMouseX(event) - getAbsoluteLeft(this.frame); + var mouseY = getMouseY(event) - getAbsoluteTop(this.frame); + + if (!this.showTooltip) { + return; + } + + if (this.tooltipTimeout) { + clearTimeout(this.tooltipTimeout); + } + + // (delayed) display of a tooltip only if no mouse button is down + if (this.leftButtonDown) { + this._hideTooltip(); + return; + } + + if (this.tooltip && this.tooltip.dataPoint) { + // tooltip is currently visible + var dataPoint = this._dataPointFromXY(mouseX, mouseY); + if (dataPoint !== this.tooltip.dataPoint) { + // datapoint changed + if (dataPoint) { + this._showTooltip(dataPoint); + } + else { + this._hideTooltip(); + } + } + } + else { + // tooltip is currently not visible + var me = this; + this.tooltipTimeout = setTimeout(function () { + me.tooltipTimeout = null; + + // show a tooltip if we have a data point + var dataPoint = me._dataPointFromXY(mouseX, mouseY); + if (dataPoint) { + me._showTooltip(dataPoint); + } + }, delay); + } +}; + +/** + * Event handler for touchstart event on mobile devices + */ +Graph3d.prototype._onTouchStart = function(event) { + this.touchDown = true; + + var me = this; + this.ontouchmove = function (event) {me._onTouchMove(event);}; + this.ontouchend = function (event) {me._onTouchEnd(event);}; + G3DaddEventListener(document, 'touchmove', me.ontouchmove); + G3DaddEventListener(document, 'touchend', me.ontouchend); + + this._onMouseDown(event); +}; + +/** + * Event handler for touchmove event on mobile devices + */ +Graph3d.prototype._onTouchMove = function(event) { + this._onMouseMove(event); +}; + +/** + * Event handler for touchend event on mobile devices + */ +Graph3d.prototype._onTouchEnd = function(event) { + this.touchDown = false; + + G3DremoveEventListener(document, 'touchmove', this.ontouchmove); + G3DremoveEventListener(document, 'touchend', this.ontouchend); + + this._onMouseUp(event); +}; + + +/** + * Event handler for mouse wheel event, used to zoom the graph + * Code from http://adomas.org/javascript-mouse-wheel/ + * @param {event} event The event + */ +Graph3d.prototype._onWheel = function(event) { + if (!event) /* For IE. */ + event = window.event; + + // retrieve delta + var delta = 0; + if (event.wheelDelta) { /* IE/Opera. */ + delta = event.wheelDelta/120; + } else if (event.detail) { /* Mozilla case. */ + // In Mozilla, sign of delta is different than in IE. + // Also, delta is multiple of 3. + delta = -event.detail/3; + } + + // If delta is nonzero, handle it. + // Basically, delta is now positive if wheel was scrolled up, + // and negative, if wheel was scrolled down. + if (delta) { + var oldLength = this.camera.getArmLength(); + var newLength = oldLength * (1 - delta / 10); + + this.camera.setArmLength(newLength); + this.redraw(); + + this._hideTooltip(); + } + + // fire a cameraPositionChange event + var parameters = this.getCameraPosition(); + this.emit('cameraPositionChange', parameters); + + // Prevent default actions caused by mouse wheel. + // That might be ugly, but we handle scrolls somehow + // anyway, so don't bother here.. + G3DpreventDefault(event); +}; + +/** + * Test whether a point lies inside given 2D triangle + * @param {Point2d} point + * @param {Point2d[]} triangle + * @return {boolean} Returns true if given point lies inside or on the edge of the triangle + * @private + */ +Graph3d.prototype._insideTriangle = function (point, triangle) { + var a = triangle[0], + b = triangle[1], + c = triangle[2]; + + function sign (x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + + var as = sign((b.x - a.x) * (point.y - a.y) - (b.y - a.y) * (point.x - a.x)); + var bs = sign((c.x - b.x) * (point.y - b.y) - (c.y - b.y) * (point.x - b.x)); + var cs = sign((a.x - c.x) * (point.y - c.y) - (a.y - c.y) * (point.x - c.x)); + + // each of the three signs must be either equal to each other or zero + return (as == 0 || bs == 0 || as == bs) && + (bs == 0 || cs == 0 || bs == cs) && + (as == 0 || cs == 0 || as == cs); +}; + +/** + * Find a data point close to given screen position (x, y) + * @param {Number} x + * @param {Number} y + * @return {Object | null} The closest data point or null if not close to any data point + * @private + */ +Graph3d.prototype._dataPointFromXY = function (x, y) { + var i, + distMax = 100, // px + dataPoint = null, + closestDataPoint = null, + closestDist = null, + center = new Point2d(x, y); + + if (this.style === Graph3d.STYLE.BAR || + this.style === Graph3d.STYLE.BARCOLOR || + this.style === Graph3d.STYLE.BARSIZE) { + // the data points are ordered from far away to closest + for (i = this.dataPoints.length - 1; i >= 0; i--) { + dataPoint = this.dataPoints[i]; + var surfaces = dataPoint.surfaces; + if (surfaces) { + for (var s = surfaces.length - 1; s >= 0; s--) { + // split each surface in two triangles, and see if the center point is inside one of these + var surface = surfaces[s]; + var corners = surface.corners; + var triangle1 = [corners[0].screen, corners[1].screen, corners[2].screen]; + var triangle2 = [corners[2].screen, corners[3].screen, corners[0].screen]; + if (this._insideTriangle(center, triangle1) || + this._insideTriangle(center, triangle2)) { + // return immediately at the first hit + return dataPoint; + } + } + } + } + } + else { + // find the closest data point, using distance to the center of the point on 2d screen + for (i = 0; i < this.dataPoints.length; i++) { + dataPoint = this.dataPoints[i]; + var point = dataPoint.screen; + if (point) { + var distX = Math.abs(x - point.x); + var distY = Math.abs(y - point.y); + var dist = Math.sqrt(distX * distX + distY * distY); + + if ((closestDist === null || dist < closestDist) && dist < distMax) { + closestDist = dist; + closestDataPoint = dataPoint; + } + } + } + } + + + return closestDataPoint; +}; + +/** + * Display a tooltip for given data point + * @param {Object} dataPoint + * @private + */ +Graph3d.prototype._showTooltip = function (dataPoint) { + var content, line, dot; + + if (!this.tooltip) { + content = document.createElement('div'); + content.style.position = 'absolute'; + content.style.padding = '10px'; + content.style.border = '1px solid #4d4d4d'; + content.style.color = '#1a1a1a'; + content.style.background = 'rgba(255,255,255,0.7)'; + content.style.borderRadius = '2px'; + content.style.boxShadow = '5px 5px 10px rgba(128,128,128,0.5)'; + + line = document.createElement('div'); + line.style.position = 'absolute'; + line.style.height = '40px'; + line.style.width = '0'; + line.style.borderLeft = '1px solid #4d4d4d'; + + dot = document.createElement('div'); + dot.style.position = 'absolute'; + dot.style.height = '0'; + dot.style.width = '0'; + dot.style.border = '5px solid #4d4d4d'; + dot.style.borderRadius = '5px'; + + this.tooltip = { + dataPoint: null, + dom: { + content: content, + line: line, + dot: dot + } + }; + } + else { + content = this.tooltip.dom.content; + line = this.tooltip.dom.line; + dot = this.tooltip.dom.dot; + } + + this._hideTooltip(); + + this.tooltip.dataPoint = dataPoint; + if (typeof this.showTooltip === 'function') { + content.innerHTML = this.showTooltip(dataPoint.point); + } + else { + content.innerHTML = '' + + '' + + '' + + '' + + '
x:' + dataPoint.point.x + '
y:' + dataPoint.point.y + '
z:' + dataPoint.point.z + '
'; + } + + content.style.left = '0'; + content.style.top = '0'; + this.frame.appendChild(content); + this.frame.appendChild(line); + this.frame.appendChild(dot); + + // calculate sizes + var contentWidth = content.offsetWidth; + var contentHeight = content.offsetHeight; + var lineHeight = line.offsetHeight; + var dotWidth = dot.offsetWidth; + var dotHeight = dot.offsetHeight; + + var left = dataPoint.screen.x - contentWidth / 2; + left = Math.min(Math.max(left, 10), this.frame.clientWidth - 10 - contentWidth); + + line.style.left = dataPoint.screen.x + 'px'; + line.style.top = (dataPoint.screen.y - lineHeight) + 'px'; + content.style.left = left + 'px'; + content.style.top = (dataPoint.screen.y - lineHeight - contentHeight) + 'px'; + dot.style.left = (dataPoint.screen.x - dotWidth / 2) + 'px'; + dot.style.top = (dataPoint.screen.y - dotHeight / 2) + 'px'; +}; + +/** + * Hide the tooltip when displayed + * @private + */ +Graph3d.prototype._hideTooltip = function () { + if (this.tooltip) { + this.tooltip.dataPoint = null; + + for (var prop in this.tooltip.dom) { + if (this.tooltip.dom.hasOwnProperty(prop)) { + var elem = this.tooltip.dom[prop]; + if (elem && elem.parentNode) { + elem.parentNode.removeChild(elem); + } + } + } + } +}; + + +/** + * Add and event listener. Works for all browsers + * @param {Element} element An html element + * @param {string} action The action, for example 'click', + * without the prefix 'on' + * @param {function} listener The callback function to be executed + * @param {boolean} useCapture + */ +G3DaddEventListener = function(element, action, listener, useCapture) { + if (element.addEventListener) { + if (useCapture === undefined) + useCapture = false; + + if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { + action = 'DOMMouseScroll'; // For Firefox + } + + element.addEventListener(action, listener, useCapture); + } else { + element.attachEvent('on' + action, listener); // IE browsers + } +}; + +/** + * Remove an event listener from an element + * @param {Element} element An html dom element + * @param {string} action The name of the event, for example 'mousedown' + * @param {function} listener The listener function + * @param {boolean} useCapture + */ +G3DremoveEventListener = function(element, action, listener, useCapture) { + if (element.removeEventListener) { + // non-IE browsers + if (useCapture === undefined) + useCapture = false; + + if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { + action = 'DOMMouseScroll'; // For Firefox + } + + element.removeEventListener(action, listener, useCapture); + } else { + // IE browsers + element.detachEvent('on' + action, listener); + } +}; + +/** + * Stop event propagation + */ +G3DstopPropagation = function(event) { + if (!event) + event = window.event; + + if (event.stopPropagation) { + event.stopPropagation(); // non-IE browsers + } + else { + event.cancelBubble = true; // IE browsers + } +}; + + +/** + * Cancels the event if it is cancelable, without stopping further propagation of the event. + */ +G3DpreventDefault = function (event) { + if (!event) + event = window.event; + + if (event.preventDefault) { + event.preventDefault(); // non-IE browsers + } + else { + event.returnValue = false; // IE browsers + } +}; + + + +/** + * @prototype Point3d + * @param {Number} x + * @param {Number} y + * @param {Number} z + */ +function Point3d(x, y, z) { + this.x = x !== undefined ? x : 0; + this.y = y !== undefined ? y : 0; + this.z = z !== undefined ? z : 0; +}; + +/** + * Subtract the two provided points, returns a-b + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} a-b + */ +Point3d.subtract = function(a, b) { + var sub = new Point3d(); + sub.x = a.x - b.x; + sub.y = a.y - b.y; + sub.z = a.z - b.z; + return sub; +}; + +/** + * Add the two provided points, returns a+b + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} a+b + */ +Point3d.add = function(a, b) { + var sum = new Point3d(); + sum.x = a.x + b.x; + sum.y = a.y + b.y; + sum.z = a.z + b.z; + return sum; +}; + +/** + * Calculate the average of two 3d points + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} The average, (a+b)/2 + */ +Point3d.avg = function(a, b) { + return new Point3d( + (a.x + b.x) / 2, + (a.y + b.y) / 2, + (a.z + b.z) / 2 + ); +}; + +/** + * Calculate the cross product of the two provided points, returns axb + * Documentation: http://en.wikipedia.org/wiki/Cross_product + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} cross product axb + */ +Point3d.crossProduct = function(a, b) { + var crossproduct = new Point3d(); + + crossproduct.x = a.y * b.z - a.z * b.y; + crossproduct.y = a.z * b.x - a.x * b.z; + crossproduct.z = a.x * b.y - a.y * b.x; + + return crossproduct; +}; + + +/** + * Rtrieve the length of the vector (or the distance from this point to the origin + * @return {Number} length + */ +Point3d.prototype.length = function() { + return Math.sqrt( + this.x * this.x + + this.y * this.y + + this.z * this.z + ); +}; + +/** + * @prototype Point2d + */ +Point2d = function (x, y) { + this.x = x !== undefined ? x : 0; + this.y = y !== undefined ? y : 0; +}; + + +/** + * @class Filter + * + * @param {DataSet} data The google data table + * @param {Number} column The index of the column to be filtered + * @param {Graph} graph The graph + */ +function Filter (data, column, graph) { + this.data = data; + this.column = column; + this.graph = graph; // the parent graph + + this.index = undefined; + this.value = undefined; + + // read all distinct values and select the first one + this.values = graph.getDistinctValues(data.get(), this.column); + + // sort both numeric and string values correctly + this.values.sort(function (a, b) { + return a > b ? 1 : a < b ? -1 : 0; + }); + + if (this.values.length > 0) { + this.selectValue(0); + } + + // create an array with the filtered datapoints. this will be loaded afterwards + this.dataPoints = []; + + this.loaded = false; + this.onLoadCallback = undefined; + + if (graph.animationPreload) { + this.loaded = false; + this.loadInBackground(); + } + else { + this.loaded = true; + } +}; + + +/** + * Return the label + * @return {string} label + */ +Filter.prototype.isLoaded = function() { + return this.loaded; +}; + + +/** + * Return the loaded progress + * @return {Number} percentage between 0 and 100 + */ +Filter.prototype.getLoadedProgress = function() { + var len = this.values.length; + + var i = 0; + while (this.dataPoints[i]) { + i++; + } + + return Math.round(i / len * 100); +}; + + +/** + * Return the label + * @return {string} label + */ +Filter.prototype.getLabel = function() { + return this.graph.filterLabel; +}; + + +/** + * Return the columnIndex of the filter + * @return {Number} columnIndex + */ +Filter.prototype.getColumn = function() { + return this.column; +}; + +/** + * Return the currently selected value. Returns undefined if there is no selection + * @return {*} value + */ +Filter.prototype.getSelectedValue = function() { + if (this.index === undefined) + return undefined; + + return this.values[this.index]; +}; + +/** + * Retrieve all values of the filter + * @return {Array} values + */ +Filter.prototype.getValues = function() { + return this.values; +}; + +/** + * Retrieve one value of the filter + * @param {Number} index + * @return {*} value + */ +Filter.prototype.getValue = function(index) { + if (index >= this.values.length) + throw 'Error: index out of range'; + + return this.values[index]; +}; + + +/** + * Retrieve the (filtered) dataPoints for the currently selected filter index + * @param {Number} [index] (optional) + * @return {Array} dataPoints + */ +Filter.prototype._getDataPoints = function(index) { + if (index === undefined) + index = this.index; + + if (index === undefined) + return []; + + var dataPoints; + if (this.dataPoints[index]) { + dataPoints = this.dataPoints[index]; + } + else { + var f = {}; + f.column = this.column; + f.value = this.values[index]; + + var dataView = new DataView(this.data,{filter: function (item) {return (item[f.column] == f.value);}}).get(); + dataPoints = this.graph._getDataPoints(dataView); + + this.dataPoints[index] = dataPoints; + } + + return dataPoints; +}; + + + +/** + * Set a callback function when the filter is fully loaded. + */ +Filter.prototype.setOnLoadCallback = function(callback) { + this.onLoadCallback = callback; +}; + + +/** + * Add a value to the list with available values for this filter + * No double entries will be created. + * @param {Number} index + */ +Filter.prototype.selectValue = function(index) { + if (index >= this.values.length) + throw 'Error: index out of range'; + + this.index = index; + this.value = this.values[index]; +}; + +/** + * Load all filtered rows in the background one by one + * Start this method without providing an index! + */ +Filter.prototype.loadInBackground = function(index) { + if (index === undefined) + index = 0; + + var frame = this.graph.frame; + + if (index < this.values.length) { + var dataPointsTemp = this._getDataPoints(index); + //this.graph.redrawInfo(); // TODO: not neat + + // create a progress box + if (frame.progress === undefined) { + frame.progress = document.createElement('DIV'); + frame.progress.style.position = 'absolute'; + frame.progress.style.color = 'gray'; + frame.appendChild(frame.progress); + } + var progress = this.getLoadedProgress(); + frame.progress.innerHTML = 'Loading animation... ' + progress + '%'; + // TODO: this is no nice solution... + frame.progress.style.bottom = Graph3d.px(60); // TODO: use height of slider + frame.progress.style.left = Graph3d.px(10); + + var me = this; + setTimeout(function() {me.loadInBackground(index+1);}, 10); + this.loaded = false; + } + else { + this.loaded = true; + + // remove the progress box + if (frame.progress !== undefined) { + frame.removeChild(frame.progress); + frame.progress = undefined; + } + + if (this.onLoadCallback) + this.onLoadCallback(); + } +}; + + + +/** + * @prototype StepNumber + * The class StepNumber is an iterator for Numbers. You provide a start and end + * value, and a best step size. StepNumber itself rounds to fixed values and + * a finds the step that best fits the provided step. + * + * If prettyStep is true, the step size is chosen as close as possible to the + * provided step, but being a round value like 1, 2, 5, 10, 20, 50, .... + * + * Example usage: + * var step = new StepNumber(0, 10, 2.5, true); + * step.start(); + * while (!step.end()) { + * alert(step.getCurrent()); + * step.next(); + * } + * + * Version: 1.0 + * + * @param {Number} start The start value + * @param {Number} end The end value + * @param {Number} step Optional. Step size. Must be a positive value. + * @param {boolean} prettyStep Optional. If true, the step size is rounded + * To a pretty step size (like 1, 2, 5, 10, 20, 50, ...) + */ +StepNumber = function (start, end, step, prettyStep) { + // set default values + this._start = 0; + this._end = 0; + this._step = 1; + this.prettyStep = true; + this.precision = 5; + + this._current = 0; + this.setRange(start, end, step, prettyStep); +}; + +/** + * Set a new range: start, end and step. + * + * @param {Number} start The start value + * @param {Number} end The end value + * @param {Number} step Optional. Step size. Must be a positive value. + * @param {boolean} prettyStep Optional. If true, the step size is rounded + * To a pretty step size (like 1, 2, 5, 10, 20, 50, ...) + */ +StepNumber.prototype.setRange = function(start, end, step, prettyStep) { + this._start = start ? start : 0; + this._end = end ? end : 0; + + this.setStep(step, prettyStep); +}; + +/** + * Set a new step size + * @param {Number} step New step size. Must be a positive value + * @param {boolean} prettyStep Optional. If true, the provided step is rounded + * to a pretty step size (like 1, 2, 5, 10, 20, 50, ...) + */ +StepNumber.prototype.setStep = function(step, prettyStep) { + if (step === undefined || step <= 0) + return; + + if (prettyStep !== undefined) + this.prettyStep = prettyStep; + + if (this.prettyStep === true) + this._step = StepNumber.calculatePrettyStep(step); + else + this._step = step; +}; + +/** + * Calculate a nice step size, closest to the desired step size. + * Returns a value in one of the ranges 1*10^n, 2*10^n, or 5*10^n, where n is an + * integer Number. For example 1, 2, 5, 10, 20, 50, etc... + * @param {Number} step Desired step size + * @return {Number} Nice step size + */ +StepNumber.calculatePrettyStep = function (step) { + var log10 = function (x) {return Math.log(x) / Math.LN10;}; + + // try three steps (multiple of 1, 2, or 5 + var step1 = Math.pow(10, Math.round(log10(step))), + step2 = 2 * Math.pow(10, Math.round(log10(step / 2))), + step5 = 5 * Math.pow(10, Math.round(log10(step / 5))); + + // choose the best step (closest to minimum step) + var prettyStep = step1; + if (Math.abs(step2 - step) <= Math.abs(prettyStep - step)) prettyStep = step2; + if (Math.abs(step5 - step) <= Math.abs(prettyStep - step)) prettyStep = step5; + + // for safety + if (prettyStep <= 0) { + prettyStep = 1; + } + + return prettyStep; +}; + +/** + * returns the current value of the step + * @return {Number} current value + */ +StepNumber.prototype.getCurrent = function () { + return parseFloat(this._current.toPrecision(this.precision)); +}; + +/** + * returns the current step size + * @return {Number} current step size + */ +StepNumber.prototype.getStep = function () { + return this._step; +}; + +/** + * Set the current value to the largest value smaller than start, which + * is a multiple of the step size + */ +StepNumber.prototype.start = function() { + this._current = this._start - this._start % this._step; +}; + +/** + * Do a step, add the step size to the current value + */ +StepNumber.prototype.next = function () { + this._current += this._step; +}; + +/** + * Returns true whether the end is reached + * @return {boolean} True if the current value has passed the end value. + */ +StepNumber.prototype.end = function () { + return (this._current > this._end); +}; + + +/** + * @constructor Slider + * + * An html slider control with start/stop/prev/next buttons + * @param {Element} container The element where the slider will be created + * @param {Object} options Available options: + * {boolean} visible If true (default) the + * slider is visible. + */ +function Slider(container, options) { + if (container === undefined) { + throw 'Error: No container element defined'; + } + this.container = container; + this.visible = (options && options.visible != undefined) ? options.visible : true; + + if (this.visible) { + this.frame = document.createElement('DIV'); + //this.frame.style.backgroundColor = '#E5E5E5'; + this.frame.style.width = '100%'; + this.frame.style.position = 'relative'; + this.container.appendChild(this.frame); + + this.frame.prev = document.createElement('INPUT'); + this.frame.prev.type = 'BUTTON'; + this.frame.prev.value = 'Prev'; + this.frame.appendChild(this.frame.prev); + + this.frame.play = document.createElement('INPUT'); + this.frame.play.type = 'BUTTON'; + this.frame.play.value = 'Play'; + this.frame.appendChild(this.frame.play); + + this.frame.next = document.createElement('INPUT'); + this.frame.next.type = 'BUTTON'; + this.frame.next.value = 'Next'; + this.frame.appendChild(this.frame.next); + + this.frame.bar = document.createElement('INPUT'); + this.frame.bar.type = 'BUTTON'; + this.frame.bar.style.position = 'absolute'; + this.frame.bar.style.border = '1px solid red'; + this.frame.bar.style.width = '100px'; + this.frame.bar.style.height = '6px'; + this.frame.bar.style.borderRadius = '2px'; + this.frame.bar.style.MozBorderRadius = '2px'; + this.frame.bar.style.border = '1px solid #7F7F7F'; + this.frame.bar.style.backgroundColor = '#E5E5E5'; + this.frame.appendChild(this.frame.bar); + + this.frame.slide = document.createElement('INPUT'); + this.frame.slide.type = 'BUTTON'; + this.frame.slide.style.margin = '0px'; + this.frame.slide.value = ' '; + this.frame.slide.style.position = 'relative'; + this.frame.slide.style.left = '-100px'; + this.frame.appendChild(this.frame.slide); + + // create events + var me = this; + this.frame.slide.onmousedown = function (event) {me._onMouseDown(event);}; + this.frame.prev.onclick = function (event) {me.prev(event);}; + this.frame.play.onclick = function (event) {me.togglePlay(event);}; + this.frame.next.onclick = function (event) {me.next(event);}; + } + + this.onChangeCallback = undefined; + + this.values = []; + this.index = undefined; + + this.playTimeout = undefined; + this.playInterval = 1000; // milliseconds + this.playLoop = true; +}; + +/** + * Select the previous index + */ +Slider.prototype.prev = function() { + var index = this.getIndex(); + if (index > 0) { + index--; + this.setIndex(index); + } +}; + +/** + * Select the next index + */ +Slider.prototype.next = function() { + var index = this.getIndex(); + if (index < this.values.length - 1) { + index++; + this.setIndex(index); + } +}; + +/** + * Select the next index + */ +Slider.prototype.playNext = function() { + var start = new Date(); + + var index = this.getIndex(); + if (index < this.values.length - 1) { + index++; + this.setIndex(index); + } + else if (this.playLoop) { + // jump to the start + index = 0; + this.setIndex(index); + } + + var end = new Date(); + var diff = (end - start); + + // calculate how much time it to to set the index and to execute the callback + // function. + var interval = Math.max(this.playInterval - diff, 0); + // document.title = diff // TODO: cleanup + + var me = this; + this.playTimeout = setTimeout(function() {me.playNext();}, interval); +}; + +/** + * Toggle start or stop playing + */ +Slider.prototype.togglePlay = function() { + if (this.playTimeout === undefined) { + this.play(); + } else { + this.stop(); + } +}; + +/** + * Start playing + */ +Slider.prototype.play = function() { + // Test whether already playing + if (this.playTimeout) return; + + this.playNext(); + + if (this.frame) { + this.frame.play.value = 'Stop'; + } +}; + +/** + * Stop playing + */ +Slider.prototype.stop = function() { + clearInterval(this.playTimeout); + this.playTimeout = undefined; + + if (this.frame) { + this.frame.play.value = 'Play'; + } +}; + +/** + * Set a callback function which will be triggered when the value of the + * slider bar has changed. + */ +Slider.prototype.setOnChangeCallback = function(callback) { + this.onChangeCallback = callback; +}; + +/** + * Set the interval for playing the list + * @param {Number} interval The interval in milliseconds + */ +Slider.prototype.setPlayInterval = function(interval) { + this.playInterval = interval; +}; + +/** + * Retrieve the current play interval + * @return {Number} interval The interval in milliseconds + */ +Slider.prototype.getPlayInterval = function(interval) { + return this.playInterval; +}; + +/** + * Set looping on or off + * @pararm {boolean} doLoop If true, the slider will jump to the start when + * the end is passed, and will jump to the end + * when the start is passed. + */ +Slider.prototype.setPlayLoop = function(doLoop) { + this.playLoop = doLoop; +}; + + +/** + * Execute the onchange callback function + */ +Slider.prototype.onChange = function() { + if (this.onChangeCallback !== undefined) { + this.onChangeCallback(); + } +}; + +/** + * redraw the slider on the correct place + */ +Slider.prototype.redraw = function() { + if (this.frame) { + // resize the bar + this.frame.bar.style.top = (this.frame.clientHeight/2 - + this.frame.bar.offsetHeight/2) + 'px'; + this.frame.bar.style.width = (this.frame.clientWidth - + this.frame.prev.clientWidth - + this.frame.play.clientWidth - + this.frame.next.clientWidth - 30) + 'px'; + + // position the slider button + var left = this.indexToLeft(this.index); + this.frame.slide.style.left = (left) + 'px'; + } +}; + + +/** + * Set the list with values for the slider + * @param {Array} values A javascript array with values (any type) + */ +Slider.prototype.setValues = function(values) { + this.values = values; + + if (this.values.length > 0) + this.setIndex(0); + else + this.index = undefined; +}; + +/** + * Select a value by its index + * @param {Number} index + */ +Slider.prototype.setIndex = function(index) { + if (index < this.values.length) { + this.index = index; + + this.redraw(); + this.onChange(); + } + else { + throw 'Error: index out of range'; + } +}; + +/** + * retrieve the index of the currently selected vaue + * @return {Number} index + */ +Slider.prototype.getIndex = function() { + return this.index; +}; + + +/** + * retrieve the currently selected value + * @return {*} value + */ +Slider.prototype.get = function() { + return this.values[this.index]; +}; + + +Slider.prototype._onMouseDown = function(event) { + // only react on left mouse button down + var leftButtonDown = event.which ? (event.which === 1) : (event.button === 1); + if (!leftButtonDown) return; + + this.startClientX = event.clientX; + this.startSlideX = parseFloat(this.frame.slide.style.left); + + this.frame.style.cursor = 'move'; + + // add event listeners to handle moving the contents + // we store the function onmousemove and onmouseup in the graph, so we can + // remove the eventlisteners lateron in the function mouseUp() + var me = this; + this.onmousemove = function (event) {me._onMouseMove(event);}; + this.onmouseup = function (event) {me._onMouseUp(event);}; + G3DaddEventListener(document, 'mousemove', this.onmousemove); + G3DaddEventListener(document, 'mouseup', this.onmouseup); + G3DpreventDefault(event); +}; + + +Slider.prototype.leftToIndex = function (left) { + var width = parseFloat(this.frame.bar.style.width) - + this.frame.slide.clientWidth - 10; + var x = left - 3; + + var index = Math.round(x / width * (this.values.length-1)); + if (index < 0) index = 0; + if (index > this.values.length-1) index = this.values.length-1; + + return index; +}; + +Slider.prototype.indexToLeft = function (index) { + var width = parseFloat(this.frame.bar.style.width) - + this.frame.slide.clientWidth - 10; + + var x = index / (this.values.length-1) * width; + var left = x + 3; + + return left; +}; + + + +Slider.prototype._onMouseMove = function (event) { + var diff = event.clientX - this.startClientX; + var x = this.startSlideX + diff; + + var index = this.leftToIndex(x); + + this.setIndex(index); + + G3DpreventDefault(); +}; + + +Slider.prototype._onMouseUp = function (event) { + this.frame.style.cursor = 'auto'; + + // remove event listeners + G3DremoveEventListener(document, 'mousemove', this.onmousemove); + G3DremoveEventListener(document, 'mouseup', this.onmouseup); + + G3DpreventDefault(); +}; + + + +/**--------------------------------------------------------------------------**/ + + + +/** + * Retrieve the absolute left value of a DOM element + * @param {Element} elem A dom element, for example a div + * @return {Number} left The absolute left position of this element + * in the browser page. + */ +getAbsoluteLeft = function(elem) { + var left = 0; + while( elem !== null ) { + left += elem.offsetLeft; + left -= elem.scrollLeft; + elem = elem.offsetParent; + } + return left; +}; + +/** + * Retrieve the absolute top value of a DOM element + * @param {Element} elem A dom element, for example a div + * @return {Number} top The absolute top position of this element + * in the browser page. + */ +getAbsoluteTop = function(elem) { + var top = 0; + while( elem !== null ) { + top += elem.offsetTop; + top -= elem.scrollTop; + elem = elem.offsetParent; + } + return top; +}; + +/** + * Get the horizontal mouse position from a mouse event + * @param {Event} event + * @return {Number} mouse x + */ +getMouseX = function(event) { + if ('clientX' in event) return event.clientX; + return event.targetTouches[0] && event.targetTouches[0].clientX || 0; +}; + +/** + * Get the vertical mouse position from a mouse event + * @param {Event} event + * @return {Number} mouse y + */ +getMouseY = function(event) { + if ('clientY' in event) return event.clientY; + return event.targetTouches[0] && event.targetTouches[0].clientY || 0; +}; /** @@ -17897,7 +21383,8 @@ var vis = { }, Timeline: Timeline, - Graph: Graph + Graph: Graph, + Graph3d: Graph3d }; /** @@ -22810,4 +26297,4 @@ module.exports = mousetrap; },{}]},{},[1]) (1) -}); +}); \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 38bd7ef8..5adfc5c1 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 1.0.2 - * @date 2014-05-28 + * @version 1.1.0 + * @date 2014-06-06 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -22,12 +22,13 @@ * License for the specific language governing permissions and limitations under * the License. */ -!function(t){if("object"==typeof exports)module.exports=t();else if("function"==typeof define&&define.amd)define(t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.vis=t()}}(function(){var define,module,exports;return function t(e,i,s){function n(a,r){if(!i[a]){if(!e[a]){var h="function"==typeof require&&require;if(!r&&h)return h(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var d=i[a]={exports:{}};e[a][0].call(d.exports,function(t){var i=e[a][1][t];return n(i?i:t)},d,d.exports,t,e,i,s)}return i[a].exports}for(var o="function"==typeof require&&require,a=0;ai;++i)t.call(e||this,this[i],i,this)}),Array.prototype.map||(Array.prototype.map=function(t,e){var i,s,n;if(null==this)throw new TypeError(" this is null or not defined");var o=Object(this),a=o.length>>>0;if("function"!=typeof t)throw new TypeError(t+" is not a function");for(e&&(i=e),s=new Array(a),n=0;a>n;){var r,h;n in o&&(r=o[n],h=t.call(i,r,n,o),s[n]=h),n++}return s}),Array.prototype.filter||(Array.prototype.filter=function(t){"use strict";if(null==this)throw new TypeError;var e=Object(this),i=e.length>>>0;if("function"!=typeof t)throw new TypeError;for(var s=[],n=arguments[1],o=0;i>o;o++)if(o in e){var a=e[o];t.call(n,a,o,e)&&s.push(a)}return s}),Object.keys||(Object.keys=function(){var t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],s=i.length;return function(n){if("object"!=typeof n&&"function"!=typeof n||null===n)throw new TypeError("Object.keys called on non-object");var o=[];for(var a in n)t.call(n,a)&&o.push(a);if(e)for(var r=0;s>r;r++)t.call(n,i[r])&&o.push(i[r]);return o}}()),Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var e=Array.prototype.slice.call(arguments,1),i=this,s=function(){},n=function(){return i.apply(this instanceof s&&t?this:t,e.concat(Array.prototype.slice.call(arguments)))};return s.prototype=this.prototype,n.prototype=new s,n}),Object.create||(Object.create=function(t){function e(){}if(arguments.length>1)throw new Error("Object.create implementation only accepts the first parameter.");return e.prototype=t,new e}),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var e=Array.prototype.slice.call(arguments,1),i=this,s=function(){},n=function(){return i.apply(this instanceof s&&t?this:t,e.concat(Array.prototype.slice.call(arguments)))};return s.prototype=this.prototype,n.prototype=new s,n});var util={};util.isNumber=function(t){return t instanceof Number||"number"==typeof t},util.isString=function(t){return t instanceof String||"string"==typeof t},util.isDate=function(t){if(t instanceof Date)return!0;if(util.isString(t)){var e=ASPDateRegex.exec(t);if(e)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},util.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},util.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},util.extend=function(t){for(var e=1,i=arguments.length;i>e;e++){var s=arguments[e];for(var n in s)s.hasOwnProperty(n)&&void 0!==s[n]&&(t[n]=s[n])}return t},util.deepExtend=function t(e,i){if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var s in i)if(i.hasOwnProperty(s))if(i[s]&&i[s].constructor===Object)void 0===e[s]&&(e[s]={}),e[s].constructor===Object?t(e[s],i[s]):e[s]=i[s];else{if(Array.isArray(i[s]))throw new TypeError("Arrays are not supported by deepExtend");e[s]=i[s]}return e},util.equalArray=function(t,e){if(t.length!=e.length)return!1;for(var i=0,s=t.length;s>i;i++)if(t[i]!=e[i])return!1;return!0},util.convert=function(t,e){var i;if(void 0===t)return void 0;if(null===t)return null;if(!e)return t;if("string"!=typeof e&&!(e instanceof String))throw new Error("Type must be a string");switch(e){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(util.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(moment.isMoment(t))return new Date(t.valueOf());if(util.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])):moment(t).toDate();throw new Error("Cannot convert object of type "+util.getType(t)+" to type Date");case"Moment":if(util.isNumber(t))return moment(t);if(t instanceof Date)return moment(t.valueOf());if(moment.isMoment(t))return moment(t);if(util.isString(t))return i=ASPDateRegex.exec(t),moment(i?Number(i[1]):t);throw new Error("Cannot convert object of type "+util.getType(t)+" to type Date");case"ISODate":if(util.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(moment.isMoment(t))return t.toDate().toISOString();if(util.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+util.getType(t)+" to type ISODate");case"ASPDate":if(util.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(util.isString(t)){i=ASPDateRegex.exec(t);var s;return s=i?new Date(Number(i[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+util.getType(t)+" to type ASPDate");default:throw new Error("Cannot convert object of type "+util.getType(t)+' to type "'+e+'"')}};var ASPDateRegex=/^\/?Date\((\-?\d+)/i;util.getType=function(t){var e=typeof t;return"object"==e?null==t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":t instanceof Array?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":e},util.getAbsoluteLeft=function(t){for(var e=document.documentElement,i=document.body,s=t.offsetLeft,n=t.offsetParent;null!=n&&n!=i&&n!=e;)s+=n.offsetLeft,s-=n.scrollLeft,n=n.offsetParent;return s},util.getAbsoluteTop=function(t){for(var e=document.documentElement,i=document.body,s=t.offsetTop,n=t.offsetParent;null!=n&&n!=i&&n!=e;)s+=n.offsetTop,s-=n.scrollTop,n=n.offsetParent;return s},util.getPageY=function(t){if("pageY"in t)return t.pageY;var e;e="targetTouches"in t&&t.targetTouches.length?t.targetTouches[0].clientY:t.clientY;var i=document.documentElement,s=document.body;return e+(i&&i.scrollTop||s&&s.scrollTop||0)-(i&&i.clientTop||s&&s.clientTop||0)},util.getPageX=function(t){if("pageY"in t)return t.pageX;var e;e="targetTouches"in t&&t.targetTouches.length?t.targetTouches[0].clientX:t.clientX;var i=document.documentElement,s=document.body;return e+(i&&i.scrollLeft||s&&s.scrollLeft||0)-(i&&i.clientLeft||s&&s.clientLeft||0)},util.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},util.removeClassName=function(t,e){var i=t.className.split(" "),s=i.indexOf(e);-1!=s&&(i.splice(s,1),t.className=i.join(" "))},util.forEach=function(t,e){var i,s;if(t instanceof Array)for(i=0,s=t.length;s>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},util.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},util.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},util.addEventListener=function(t,e,i,s){t.addEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,s)):t.attachEvent("on"+e,i)},util.removeEventListener=function(t,e,i,s){t.removeEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,s)):t.detachEvent("on"+e,i) -},util.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},util.fakeGesture=function(t,e){var i=null,s=Hammer.event.collectEventData(this,i,e);return isNaN(s.center.pageX)&&(s.center.pageX=e.pageX),isNaN(s.center.pageY)&&(s.center.pageY=e.pageY),s},util.option={},util.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},util.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},util.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},util.option.asSize=function(t,e){return"function"==typeof t&&(t=t()),util.isString(t)?t:util.isNumber(t)?t+"px":e||null},util.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},util.GiveDec=function GiveDec(Hex){var Value;return Value="A"==Hex?10:"B"==Hex?11:"C"==Hex?12:"D"==Hex?13:"E"==Hex?14:"F"==Hex?15:eval(Hex)},util.GiveHex=function(t){var e;return e=10==t?"A":11==t?"B":12==t?"C":13==t?"D":14==t?"E":15==t?"F":""+t},util.parseColor=function(t){var e;if(util.isString(t))if(util.isValidHex(t)){var i=util.hexToHSV(t),s={h:i.h,s:.45*i.s,v:Math.min(1,1.05*i.v)},n={h:i.h,s:Math.min(1,1.25*i.v),v:.6*i.v},o=util.HSVToHex(n.h,n.h,n.v),a=util.HSVToHex(s.h,s.s,s.v);e={background:t,border:o,highlight:{background:a,border:o}}}else e={background:t,border:t,highlight:{background:t,border:t}};else e={},e.background=t.background||"white",e.border=t.border||e.background,util.isString(t.highlight)?e.highlight={border:t.highlight,background:t.highlight}:(e.highlight={},e.highlight.background=t.highlight&&t.highlight.background||e.background,e.highlight.border=t.highlight&&t.highlight.border||e.border);return e},util.hexToRGB=function(t){t=t.replace("#","").toUpperCase();var e=util.GiveDec(t.substring(0,1)),i=util.GiveDec(t.substring(1,2)),s=util.GiveDec(t.substring(2,3)),n=util.GiveDec(t.substring(3,4)),o=util.GiveDec(t.substring(4,5)),a=util.GiveDec(t.substring(5,6)),r=16*e+i,h=16*s+n,i=16*o+a;return{r:r,g:h,b:i}},util.RGBToHex=function(t,e,i){var s=util.GiveHex(Math.floor(t/16)),n=util.GiveHex(t%16),o=util.GiveHex(Math.floor(e/16)),a=util.GiveHex(e%16),r=util.GiveHex(Math.floor(i/16)),h=util.GiveHex(i%16),d=s+n+o+a+r+h;return"#"+d},util.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var s=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(s==n)return{h:0,s:0,v:s};var o=t==s?e-i:i==s?t-e:i-t,a=t==s?3:i==s?1:5,r=60*(a-o/(n-s))/360,h=(n-s)/n,d=n;return{h:r,s:h,v:d}},util.HSVToRGB=function(t,e,i){var s,n,o,a=Math.floor(6*t),r=6*t-a,h=i*(1-e),d=i*(1-r*e),c=i*(1-(1-r)*e);switch(a%6){case 0:s=i,n=c,o=h;break;case 1:s=d,n=i,o=h;break;case 2:s=h,n=i,o=c;break;case 3:s=h,n=d,o=i;break;case 4:s=c,n=h,o=i;break;case 5:s=i,n=h,o=d}return{r:Math.floor(255*s),g:Math.floor(255*n),b:Math.floor(255*o)}},util.HSVToHex=function(t,e,i){var s=util.HSVToRGB(t,e,i);return util.RGBToHex(s.r,s.g,s.b)},util.hexToHSV=function(t){var e=util.hexToRGB(t);return util.RGBToHSV(e.r,e.g,e.b)},util.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},util.copyObject=function(t,e){for(var i in t)t.hasOwnProperty(i)&&("object"==typeof t[i]?(e[i]={},util.copyObject(t[i],e[i])):e[i]=t[i])},DataSet.prototype.on=function(t,e){var i=this.subscribers[t];i||(i=[],this.subscribers[t]=i),i.push({callback:e})},DataSet.prototype.subscribe=DataSet.prototype.on,DataSet.prototype.off=function(t,e){var i=this.subscribers[t];i&&(this.subscribers[t]=i.filter(function(t){return t.callback!=e}))},DataSet.prototype.unsubscribe=DataSet.prototype.off,DataSet.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var s=[];t in this.subscribers&&(s=s.concat(this.subscribers[t])),"*"in this.subscribers&&(s=s.concat(this.subscribers["*"]));for(var n=0;no;o++)i=n._addItem(t[o]),s.push(i);else if(util.isDataTable(t))for(var r=this._getColumnNames(t),h=0,d=t.getNumberOfRows();d>h;h++){for(var c={},l=0,u=r.length;u>l;l++){var p=r[l];c[p]=t.getValue(h,l)}i=n._addItem(c),s.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),s.push(i)}return s.length&&this._trigger("add",{items:s},e),s},DataSet.prototype.update=function(t,e){var i=[],s=[],n=this,o=n.fieldId,a=function(t){var e=t[o];n.data[e]?(e=n._updateItem(t),s.push(e)):(e=n._addItem(t),i.push(e))};if(t instanceof Array)for(var r=0,h=t.length;h>r;r++)a(t[r]);else if(util.isDataTable(t))for(var d=this._getColumnNames(t),c=0,l=t.getNumberOfRows();l>c;c++){for(var u={},p=0,g=d.length;g>p;p++){var m=d[p];u[m]=t.getValue(c,p)}a(u)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");a(t)}return i.length&&this._trigger("add",{items:i},e),s.length&&this._trigger("update",{items:s},e),i.concat(s)},DataSet.prototype.get=function(){var t,e,i,s,n=this,o=this.showInternalIds,a=util.getType(arguments[0]);"String"==a||"Number"==a?(t=arguments[0],i=arguments[1],s=arguments[2]):"Array"==a?(e=arguments[0],i=arguments[1],s=arguments[2]):(i=arguments[0],s=arguments[1]);var r;if(i&&i.type){if(r="DataTable"==i.type?"DataTable":"Array",s&&r!=util.getType(s))throw new Error('Type of parameter "data" ('+util.getType(s)+") does not correspond with specified options.type ("+i.type+")");if("DataTable"==r&&!util.isDataTable(s))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else r=s&&"DataTable"==util.getType(s)?"DataTable":"Array";void 0!=i&&void 0!=i.showInternalIds&&(this.showInternalIds=i.showInternalIds);var h,d,c,l,u=i&&i.convert||this.options.convert,p=i&&i.filter,g=[];if(void 0!=t)h=n._getItem(t,u),p&&!p(h)&&(h=null);else if(void 0!=e)for(c=0,l=e.length;l>c;c++)h=n._getItem(e[c],u),(!p||p(h))&&g.push(h);else for(d in this.data)this.data.hasOwnProperty(d)&&(h=n._getItem(d,u),(!p||p(h))&&g.push(h));if(this.showInternalIds=o,i&&i.order&&void 0==t&&this._sort(g,i.order),i&&i.fields){var m=i.fields;if(void 0!=t)h=this._filterFields(h,m);else for(c=0,l=g.length;l>c;c++)g[c]=this._filterFields(g[c],m)}if("DataTable"==r){var f=this._getColumnNames(s);if(void 0!=t)n._appendRow(s,f,h);else for(c=0,l=g.length;l>c;c++)n._appendRow(s,f,g[c]);return s}if(void 0!=t)return h;if(s){for(c=0,l=g.length;l>c;c++)s.push(g[c]);return s}return g},DataSet.prototype.getIds=function(t){var e,i,s,n,o,a=this.data,r=t&&t.filter,h=t&&t.order,d=t&&t.convert||this.options.convert,c=[];if(r)if(h){o=[];for(s in a)a.hasOwnProperty(s)&&(n=this._getItem(s,d),r(n)&&o.push(n));for(this._sort(o,h),e=0,i=o.length;i>e;e++)c[e]=o[e][this.fieldId]}else for(s in a)a.hasOwnProperty(s)&&(n=this._getItem(s,d),r(n)&&c.push(n[this.fieldId]));else if(h){o=[];for(s in a)a.hasOwnProperty(s)&&o.push(a[s]);for(this._sort(o,h),e=0,i=o.length;i>e;e++)c[e]=o[e][this.fieldId]}else for(s in a)a.hasOwnProperty(s)&&(n=a[s],c.push(n[this.fieldId]));return c},DataSet.prototype.forEach=function(t,e){var i,s,n=e&&e.filter,o=e&&e.convert||this.options.convert,a=this.data;if(e&&e.order)for(var r=this.get(e),h=0,d=r.length;d>h;h++)i=r[h],s=i[this.fieldId],t(i,s);else for(s in a)a.hasOwnProperty(s)&&(i=this._getItem(s,o),(!n||n(i))&&t(i,s))},DataSet.prototype.map=function(t,e){var i,s=e&&e.filter,n=e&&e.convert||this.options.convert,o=[],a=this.data;for(var r in a)a.hasOwnProperty(r)&&(i=this._getItem(r,n),(!s||s(i))&&o.push(t(i,r)));return e&&e.order&&this._sort(o,e.order),o},DataSet.prototype._filterFields=function(t,e){var i={};for(var s in t)t.hasOwnProperty(s)&&-1!=e.indexOf(s)&&(i[s]=t[s]);return i},DataSet.prototype._sort=function(t,e){if(util.isString(e)){var i=e;t.sort(function(t,e){var s=t[i],n=e[i];return s>n?1:n>s?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},DataSet.prototype.remove=function(t,e){var i,s,n,o=[];if(t instanceof Array)for(i=0,s=t.length;s>i;i++)n=this._remove(t[i]),null!=n&&o.push(n);else n=this._remove(t),null!=n&&o.push(n);return o.length&&this._trigger("remove",{items:o},e),o},DataSet.prototype._remove=function(t){if(util.isNumber(t)||util.isString(t)){if(this.data[t])return delete this.data[t],delete this.internalIds[t],t}else if(t instanceof Object){var e=t[this.fieldId];if(e&&this.data[e])return delete this.data[e],delete this.internalIds[e],e}return null},DataSet.prototype.clear=function(t){var e=Object.keys(this.data);return this.data={},this.internalIds={},this._trigger("remove",{items:e},t),e},DataSet.prototype.max=function(t){var e=this.data,i=null,s=null;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n],a=o[t];null!=a&&(!i||a>s)&&(i=o,s=a)}return i},DataSet.prototype.min=function(t){var e=this.data,i=null,s=null;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n],a=o[t];null!=a&&(!i||s>a)&&(i=o,s=a)}return i},DataSet.prototype.distinct=function(t){var e=this.data,i=[],s=this.options.convert[t],n=0;for(var o in e)if(e.hasOwnProperty(o)){for(var a=e[o],r=util.convert(a[t],s),h=!1,d=0;n>d;d++)if(i[d]==r){h=!0;break}h||void 0===r||(i[n]=r,n++)}return i},DataSet.prototype._addItem=function(t){var e=t[this.fieldId];if(void 0!=e){if(this.data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=util.randomUUID(),t[this.fieldId]=e,this.internalIds[e]=t;var i={};for(var s in t)if(t.hasOwnProperty(s)){var n=this.convert[s];i[s]=util.convert(t[s],n)}return this.data[e]=i,e},DataSet.prototype._getItem=function(t,e){var i,s,n=this.data[t];if(!n)return null;var o={},a=this.fieldId,r=this.internalIds;if(e)for(i in n)n.hasOwnProperty(i)&&(s=n[i],i==a&&s in r&&!this.showInternalIds||(o[i]=util.convert(s,e[i])));else for(i in n)n.hasOwnProperty(i)&&(s=n[i],i==a&&s in r&&!this.showInternalIds||(o[i]=s));return o},DataSet.prototype._updateItem=function(t){var e=t[this.fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this.data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var s in t)if(t.hasOwnProperty(s)){var n=this.convert[s];i[s]=util.convert(t[s],n)}return e},DataSet.prototype.isInternalId=function(t){return t in this.internalIds},DataSet.prototype._getColumnNames=function(t){for(var e=[],i=0,s=t.getNumberOfColumns();s>i;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},DataSet.prototype._appendRow=function(t,e,i){for(var s=t.addRow(),n=0,o=e.length;o>n;n++){var a=e[n];t.setValue(s,n,i[a])}},DataView.prototype.setData=function(t){var e,i,s;if(this.data){this.data.unsubscribe&&this.data.unsubscribe("*",this.listener),e=[];for(var n in this.ids)this.ids.hasOwnProperty(n)&&e.push(n);this.ids={},this._trigger("remove",{items:e})}if(this.data=t,this.data){for(this.fieldId=this.options.fieldId||this.data&&this.data.options&&this.data.options.fieldId||"id",e=this.data.getIds({filter:this.options&&this.options.filter}),i=0,s=e.length;s>i;i++)n=e[i],this.ids[n]=!0;this._trigger("add",{items:e}),this.data.on&&this.data.on("*",this.listener)}},DataView.prototype.get=function(){var t,e,i,s=this,n=util.getType(arguments[0]);"String"==n||"Number"==n||"Array"==n?(t=arguments[0],e=arguments[1],i=arguments[2]):(e=arguments[0],i=arguments[1]);var o=util.extend({},this.options,e);this.options.filter&&e&&e.filter&&(o.filter=function(t){return s.options.filter(t)&&e.filter(t)});var a=[];return void 0!=t&&a.push(t),a.push(o),a.push(i),this.data&&this.data.get.apply(this.data,a)},DataView.prototype.getIds=function(t){var e;if(this.data){var i,s=this.options.filter;i=t&&t.filter?s?function(e){return s(e)&&t.filter(e)}:t.filter:s,e=this.data.getIds({filter:i,order:t&&t.order})}else e=[];return e},DataView.prototype._onEvent=function(t,e,i){var s,n,o,a,r=e&&e.items,h=this.data,d=[],c=[],l=[];if(r&&h){switch(t){case"add":for(s=0,n=r.length;n>s;s++)o=r[s],a=this.get(o),a&&(this.ids[o]=!0,d.push(o));break;case"update":for(s=0,n=r.length;n>s;s++)o=r[s],a=this.get(o),a?this.ids[o]?c.push(o):(this.ids[o]=!0,d.push(o)):this.ids[o]&&(delete this.ids[o],l.push(o));break;case"remove":for(s=0,n=r.length;n>s;s++)o=r[s],this.ids[o]&&(delete this.ids[o],l.push(o))}d.length&&this._trigger("add",{items:d},i),c.length&&this._trigger("update",{items:c},i),l.length&&this._trigger("remove",{items:l},i)}},DataView.prototype.on=DataSet.prototype.on,DataView.prototype.off=DataSet.prototype.off,DataView.prototype._trigger=DataSet.prototype._trigger,DataView.prototype.subscribe=DataView.prototype.on,DataView.prototype.unsubscribe=DataView.prototype.off;var stack={};stack.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},stack.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,s="end"in e.data?e.data.end:e.data.start;return i-s})},stack.stack=function(t,e,i){var s,n;if(i)for(s=0,n=t.length;n>s;s++)t[s].top=null;for(s=0,n=t.length;n>s;s++){var o=t[s];if(null===o.top){o.top=e.axis;do{for(var a=null,r=0,h=t.length;h>r;r++){var d=t[r];if(null!==d.top&&d!==o&&stack.collision(o,d,e.item)){a=d;break}}null!=a&&(o.top=a.top+a.height+e.item)}while(a)}}},stack.nostack=function(t,e){var i,s;for(i=0,s=t.length;s>i;i++)t[i].top=e.axis},stack.collision=function(t,e,i){return t.left-ie.left&&t.top-ie.top},TimeStep.SCALE={MILLISECOND:1,SECOND:2,MINUTE:3,HOUR:4,DAY:5,WEEKDAY:6,MONTH:7,YEAR:8},TimeStep.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},TimeStep.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},TimeStep.prototype.roundToMinor=function(){switch(this.scale){case TimeStep.SCALE.YEAR:this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case TimeStep.SCALE.MONTH:this.current.setDate(1);case TimeStep.SCALE.DAY:case TimeStep.SCALE.WEEKDAY:this.current.setHours(0);case TimeStep.SCALE.HOUR:this.current.setMinutes(0);case TimeStep.SCALE.MINUTE:this.current.setSeconds(0);case TimeStep.SCALE.SECOND:this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case TimeStep.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case TimeStep.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case TimeStep.SCALE.HOUR:this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step)}},TimeStep.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},TimeStep.prototype.next=function(){var t=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case TimeStep.SCALE.SECOND:this.current=new Date(this.current.valueOf()+1e3*this.step);break;case TimeStep.SCALE.MINUTE:this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case TimeStep.SCALE.HOUR:this.current=new Date(this.current.valueOf()+1e3*this.step*60*60);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case TimeStep.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()+this.step);break;case TimeStep.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()+this.step);break;case TimeStep.SCALE.HOUR:this.current.setHours(this.current.getHours()+this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current.getMilliseconds()0&&(this.step=e),this.autoScale=!1},TimeStep.prototype.setAutoScale=function(t){this.autoScale=t},TimeStep.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,s=864e5,n=36e5,o=6e4,a=1e3,r=1;1e3*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=1e3),500*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=500),100*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=100),50*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=50),10*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=10),5*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=5),e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=1),3*i>t&&(this.scale=TimeStep.SCALE.MONTH,this.step=3),i>t&&(this.scale=TimeStep.SCALE.MONTH,this.step=1),5*s>t&&(this.scale=TimeStep.SCALE.DAY,this.step=5),2*s>t&&(this.scale=TimeStep.SCALE.DAY,this.step=2),s>t&&(this.scale=TimeStep.SCALE.DAY,this.step=1),s/2>t&&(this.scale=TimeStep.SCALE.WEEKDAY,this.step=1),4*n>t&&(this.scale=TimeStep.SCALE.HOUR,this.step=4),n>t&&(this.scale=TimeStep.SCALE.HOUR,this.step=1),15*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=15),10*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=10),5*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=5),o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=1),15*a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=15),10*a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=10),5*a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=5),a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=1),200*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=200),100*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=100),50*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=50),10*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=10),5*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=5),r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=1)}},TimeStep.prototype.snap=function(t){var e=new Date(t.valueOf());if(this.scale==TimeStep.SCALE.YEAR){var i=e.getFullYear()+Math.round(e.getMonth()/12);e.setFullYear(Math.round(i/this.step)*this.step),e.setMonth(0),e.setDate(0),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.MONTH)e.getDate()>15?(e.setDate(1),e.setMonth(e.getMonth()+1)):e.setDate(1),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0);else if(this.scale==TimeStep.SCALE.DAY){switch(this.step){case 5:case 2:e.setHours(24*Math.round(e.getHours()/24));break;default:e.setHours(12*Math.round(e.getHours()/12))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.WEEKDAY){switch(this.step){case 5:case 2:e.setHours(12*Math.round(e.getHours()/12));break;default:e.setHours(6*Math.round(e.getHours()/6))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.HOUR){switch(this.step){case 4:e.setMinutes(60*Math.round(e.getMinutes()/60));break;default:e.setMinutes(30*Math.round(e.getMinutes()/30))}e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.MINUTE){switch(this.step){case 15:case 10:e.setMinutes(5*Math.round(e.getMinutes()/5)),e.setSeconds(0);break;case 5:e.setSeconds(60*Math.round(e.getSeconds()/60));break;default:e.setSeconds(30*Math.round(e.getSeconds()/30))}e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.SECOND)switch(this.step){case 15:case 10:e.setSeconds(5*Math.round(e.getSeconds()/5)),e.setMilliseconds(0);break;case 5:e.setMilliseconds(1e3*Math.round(e.getMilliseconds()/1e3));break;default:e.setMilliseconds(500*Math.round(e.getMilliseconds()/500))}else if(this.scale==TimeStep.SCALE.MILLISECOND){var s=this.step>5?this.step/2:1;e.setMilliseconds(Math.round(e.getMilliseconds()/s)*s)}return e},TimeStep.prototype.isMajor=function(){switch(this.scale){case TimeStep.SCALE.MILLISECOND:return 0==this.current.getMilliseconds();case TimeStep.SCALE.SECOND:return 0==this.current.getSeconds();case TimeStep.SCALE.MINUTE:return 0==this.current.getHours()&&0==this.current.getMinutes();case TimeStep.SCALE.HOUR:return 0==this.current.getHours();case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:return 1==this.current.getDate();case TimeStep.SCALE.MONTH:return 0==this.current.getMonth();case TimeStep.SCALE.YEAR:return!1;default:return!1}},TimeStep.prototype.getLabelMinor=function(t){switch(void 0==t&&(t=this.current),this.scale){case TimeStep.SCALE.MILLISECOND:return moment(t).format("SSS");case TimeStep.SCALE.SECOND:return moment(t).format("s");case TimeStep.SCALE.MINUTE:return moment(t).format("HH:mm");case TimeStep.SCALE.HOUR:return moment(t).format("HH:mm");case TimeStep.SCALE.WEEKDAY:return moment(t).format("ddd D");case TimeStep.SCALE.DAY:return moment(t).format("D");case TimeStep.SCALE.MONTH:return moment(t).format("MMM");case TimeStep.SCALE.YEAR:return moment(t).format("YYYY");default:return""}},TimeStep.prototype.getLabelMajor=function(t){switch(void 0==t&&(t=this.current),this.scale){case TimeStep.SCALE.MILLISECOND:return moment(t).format("HH:mm:ss");case TimeStep.SCALE.SECOND:return moment(t).format("D MMMM HH:mm");case TimeStep.SCALE.MINUTE:case TimeStep.SCALE.HOUR:return moment(t).format("ddd D MMMM");case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:return moment(t).format("MMMM YYYY");case TimeStep.SCALE.MONTH:return moment(t).format("YYYY");case TimeStep.SCALE.YEAR:return"";default:return""}},Emitter(Range.prototype),Range.prototype.setOptions=function(t){util.extend(this.options,t),null!==this.start&&null!==this.end&&this.setRange(this.start,this.end)},Range.prototype.setRange=function(t,e){var i=this._applyRange(t,e);if(i){var s={start:new Date(this.start),end:new Date(this.end)};this.emit("rangechange",s),this.emit("rangechanged",s)}},Range.prototype._applyRange=function(t,e){var i,s=null!=t?util.convert(t,"Date").valueOf():this.start,n=null!=e?util.convert(e,"Date").valueOf():this.end,o=null!=this.options.max?util.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?util.convert(this.options.min,"Date").valueOf():null;if(isNaN(s)||null===s)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(s>n&&(n=s),null!==a&&a>s&&(i=a-s,s+=i,n+=i,null!=o&&n>o&&(n=o)),null!==o&&n>o&&(i=n-o,s-=i,n-=i,null!=a&&a>s&&(s=a)),null!==this.options.zoomMin){var r=parseFloat(this.options.zoomMin);0>r&&(r=0),r>n-s&&(this.end-this.start===r?(s=this.start,n=this.end):(i=r-(n-s),s-=i/2,n+=i/2))}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);0>h&&(h=0),n-s>h&&(this.end-this.start===h?(s=this.start,n=this.end):(i=n-s-h,s+=i/2,n-=i/2))}var d=this.start!=s||this.end!=n;return this.start=s,this.end=n,d},Range.prototype.getRange=function(){return{start:this.start,end:this.end}},Range.prototype.conversion=function(t){return Range.conversion(this.start,this.end,t)},Range.conversion=function(t,e,i){return 0!=i&&e-t!=0?{offset:t,scale:i/(e-t)}:{offset:0,scale:1}};var touchParams={};Range.prototype._onDragStart=function(){if(!touchParams.ignore){touchParams.start=this.start,touchParams.end=this.end;var t=this.parent.frame;t&&(t.style.cursor="move")}},Range.prototype._onDrag=function(t){var e=this.options.direction;if(validateDirection(e),!touchParams.ignore){var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY,s=touchParams.end-touchParams.start,n="horizontal"==e?this.parent.width:this.parent.height,o=-i/n*s;this._applyRange(touchParams.start+o,touchParams.end+o),this.emit("rangechange",{start:new Date(this.start),end:new Date(this.end)})}},Range.prototype._onDragEnd=function(){touchParams.ignore||(this.parent.frame&&(this.parent.frame.style.cursor="auto"),this.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end)}))},Range.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var s=util.fakeGesture(this,t),n=getPointer(s.center,this.parent.frame),o=this._pointerToDate(n);this.zoom(i,o)}t.preventDefault()},Range.prototype._onTouch=function(t){touchParams.start=this.start,touchParams.end=this.end,touchParams.ignore=!1,touchParams.center=null;var e=ItemSet.itemFromTarget(t);e&&e.selected&&this.options.editable&&(touchParams.ignore=!0)},Range.prototype._onHold=function(){touchParams.ignore=!0},Range.prototype._onPinch=function(t){this.options.direction;if(touchParams.ignore=!0,t.gesture.touches.length>1){touchParams.center||(touchParams.center=getPointer(t.gesture.center,this.parent.frame));var e=1/t.gesture.scale,i=this._pointerToDate(touchParams.center),s=getPointer(t.gesture.center,this.parent.frame),n=(this._pointerToDate(this.parent,s),parseInt(i+(touchParams.start-i)*e)),o=parseInt(i+(touchParams.end-i)*e);this.setRange(n,o)}},Range.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(validateDirection(i),"horizontal"==i){var s=this.parent.width;return e=this.conversion(s),t.x/e.scale+e.offset}var n=this.parent.height;return e=this.conversion(n),t.y/e.scale+e.offset},Range.prototype.zoom=function(t,e){null==e&&(e=(this.start+this.end)/2);var i=e+(this.start-e)*t,s=e+(this.end-e)*t;this.setRange(i,s)},Range.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,s=this.end+e*t;this.start=i,this.end=s},Range.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,s=this.start-i,n=this.end-i;this.setRange(s,n)},Emitter(Component.prototype),Component.prototype.setOptions=function(t){t&&(util.extend(this.options,t),this.repaint())},Component.prototype.getOption=function(t){var e;return this.options&&(e=this.options[t]),void 0===e&&this.defaultOptions&&(e=this.defaultOptions[t]),e},Component.prototype.getFrame=function(){return null},Component.prototype.repaint=function(){return!1},Component.prototype._isResized=function(){var t=this._previousWidth!==this.width||this._previousHeight!==this.height;return this._previousWidth=this.width,this._previousHeight=this.height,t},Panel.prototype=new Component,Panel.prototype.setOptions=Component.prototype.setOptions,Panel.prototype.getFrame=function(){return this.frame},Panel.prototype.appendChild=function(t){this.childs.push(t),t.parent=this;var e=t.getFrame();e&&(e.parentNode&&e.parentNode.removeChild(e),this.frame.appendChild(e))},Panel.prototype.insertBefore=function(t,e){var i=this.childs.indexOf(e);if(-1!=i){this.childs.splice(i,0,t),t.parent=this;var s=t.getFrame();if(s){s.parentNode&&s.parentNode.removeChild(s);var n=e.getFrame();n?this.frame.insertBefore(s,n):this.frame.appendChild(s)}}},Panel.prototype.removeChild=function(t){var e=this.childs.indexOf(t);if(-1!=e){this.childs.splice(e,1),t.parent=null;var i=t.getFrame();i&&i.parentNode&&this.frame.removeChild(i)}},Panel.prototype.hasChild=function(t){var e=this.childs.indexOf(t);return-1!=e},Panel.prototype.repaint=function(){var t=util.option.asString,e=this.options,i=this.getFrame();i.className="vpanel"+(e.className?" "+t(e.className):"");var s=this._repaintChilds();return this._updateSize(),this._isResized()||s},Panel.prototype._repaintChilds=function(){for(var t=!1,e=0,i=this.childs.length;i>e;e++)t=this.childs[e].repaint()||t;return t},Panel.prototype._updateSize=function(){this.frame.style.top=util.option.asSize(this.options.top),this.frame.style.bottom=util.option.asSize(this.options.bottom),this.frame.style.left=util.option.asSize(this.options.left),this.frame.style.right=util.option.asSize(this.options.right),this.frame.style.width=util.option.asSize(this.options.width,"100%"),this.frame.style.height=util.option.asSize(this.options.height,""),this.top=this.frame.offsetTop,this.left=this.frame.offsetLeft,this.width=this.frame.offsetWidth,this.height=this.frame.offsetHeight},RootPanel.prototype=new Panel,RootPanel.prototype._create=function(){this.frame=document.createElement("div"),this.hammer=Hammer(this.frame,{prevent_default:!0}),this.listeners={};var t=this,e=["touch","pinch","tap","doubletap","hold","dragstart","drag","dragend","mousewheel","DOMMouseScroll"];e.forEach(function(e){var i=function(){var i=[e].concat(Array.prototype.slice.call(arguments,0));t.emit.apply(t,i)};t.hammer.on(e,i),t.listeners[e]=i})},RootPanel.prototype.setOptions=function(t){t&&(util.extend(this.options,t),this.repaint(),this._initWatch())},RootPanel.prototype.getFrame=function(){return this.frame},RootPanel.prototype.repaint=function(){var t=this.options,e=t.editable.updateTime||t.editable.updateGroup,i="vis timeline rootpanel "+t.orientation+(e?" editable":"");t.className&&(i+=" "+util.option.asString(i)),this.frame.className=i;var s=this._repaintChilds();this.frame.style.maxHeight=util.option.asSize(this.options.maxHeight,""),this.frame.style.minHeight=util.option.asSize(this.options.minHeight,""),this._updateSize();var n=this._isResized()||s;n&&setTimeout(this.repaint.bind(this),0)},RootPanel.prototype._initWatch=function(){var t=this.getOption("autoResize");t?this._watch():this._unwatch()},RootPanel.prototype._watch=function(){var t=this;this._unwatch();var e=function(){var e=t.getOption("autoResize");return e?void(t.frame&&(t.frame.clientWidth!=t.lastWidth||t.frame.clientHeight!=t.lastHeight)&&(t.lastWidth=t.frame.clientWidth,t.lastHeight=t.frame.clientHeight,t.repaint())):void t._unwatch()};util.addEventListener(window,"resize",e),this.watchTimer=setInterval(e,1e3)},RootPanel.prototype._unwatch=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0)},TimeAxis.prototype=new Component,TimeAxis.prototype.setOptions=Component.prototype.setOptions,TimeAxis.prototype._create=function(){this.frame=document.createElement("div")},TimeAxis.prototype.setRange=function(t){if(!(t instanceof Range||t&&t.start&&t.end))throw new TypeError("Range must be an instance of Range, or an object containing start and end.");this.range=t},TimeAxis.prototype.getFrame=function(){return this.frame},TimeAxis.prototype.repaint=function(){var t=util.option.asSize,e=this.options,i=this.props,s=this.frame;s.className="timeaxis";var n=s.parentNode;if(n){this._calculateCharSize();var o=this.getOption("orientation"),a=this.getOption("showMinorLabels"),r=this.getOption("showMajorLabels"),h=this.parent.height;i.minorLabelHeight=a?i.minorCharHeight:0,i.majorLabelHeight=r?i.majorCharHeight:0,this.height=i.minorLabelHeight+i.majorLabelHeight,this.width=s.offsetWidth,i.minorLineHeight=h+i.minorLabelHeight,i.minorLineWidth=1,i.majorLineHeight=h+this.height,i.majorLineWidth=1; -var d=s.nextSibling;n.removeChild(s),"top"==o?(s.style.top="0",s.style.left="0",s.style.bottom="",s.style.width=t(e.width,"100%"),s.style.height=this.height+"px"):(s.style.top="",s.style.bottom="0",s.style.left="0",s.style.width=t(e.width,"100%"),s.style.height=this.height+"px"),this._repaintLabels(),this._repaintLine(),d?n.insertBefore(s,d):n.appendChild(s)}return this._isResized()},TimeAxis.prototype._repaintLabels=function(){var t=this.getOption("orientation"),e=util.convert(this.range.start,"Number"),i=util.convert(this.range.end,"Number"),s=this.options.toTime(7*(this.props.minorCharWidth||10)).valueOf()-this.options.toTime(0).valueOf(),n=new TimeStep(new Date(e),new Date(i),s);this.step=n;var o=this.dom;o.redundant.majorLines=o.majorLines,o.redundant.majorTexts=o.majorTexts,o.redundant.minorLines=o.minorLines,o.redundant.minorTexts=o.minorTexts,o.majorLines=[],o.majorTexts=[],o.minorLines=[],o.minorTexts=[],n.first();for(var a=void 0,r=0;n.hasNext()&&1e3>r;){r++;var h=n.getCurrent(),d=this.options.toScreen(h),c=n.isMajor();this.getOption("showMinorLabels")&&this._repaintMinorText(d,n.getLabelMinor(),t),c&&this.getOption("showMajorLabels")?(d>0&&(void 0==a&&(a=d),this._repaintMajorText(d,n.getLabelMajor(),t)),this._repaintMajorLine(d,t)):this._repaintMinorLine(d,t),n.next()}if(this.getOption("showMajorLabels")){var l=this.options.toTime(0),u=n.getLabelMajor(l),p=u.length*(this.props.majorCharWidth||10)+10;(void 0==a||a>p)&&this._repaintMajorText(0,u,t)}util.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},TimeAxis.prototype._repaintMinorText=function(t,e,i){var s=this.dom.redundant.minorTexts.shift();if(!s){var n=document.createTextNode("");s=document.createElement("div"),s.appendChild(n),s.className="text minor",this.frame.appendChild(s)}this.dom.minorTexts.push(s),s.childNodes[0].nodeValue=e,"top"==i?(s.style.top=this.props.majorLabelHeight+"px",s.style.bottom=""):(s.style.top="",s.style.bottom=this.props.majorLabelHeight+"px"),s.style.left=t+"px"},TimeAxis.prototype._repaintMajorText=function(t,e,i){var s=this.dom.redundant.majorTexts.shift();if(!s){var n=document.createTextNode(e);s=document.createElement("div"),s.className="text major",s.appendChild(n),this.frame.appendChild(s)}this.dom.majorTexts.push(s),s.childNodes[0].nodeValue=e,"top"==i?(s.style.top="0px",s.style.bottom=""):(s.style.top="",s.style.bottom="0px"),s.style.left=t+"px"},TimeAxis.prototype._repaintMinorLine=function(t,e){var i=this.dom.redundant.minorLines.shift();i||(i=document.createElement("div"),i.className="grid vertical minor",this.frame.appendChild(i)),this.dom.minorLines.push(i);var s=this.props;"top"==e?(i.style.top=this.props.majorLabelHeight+"px",i.style.bottom=""):(i.style.top="",i.style.bottom=this.props.majorLabelHeight+"px"),i.style.height=s.minorLineHeight+"px",i.style.left=t-s.minorLineWidth/2+"px"},TimeAxis.prototype._repaintMajorLine=function(t,e){var i=this.dom.redundant.majorLines.shift();i||(i=document.createElement("DIV"),i.className="grid vertical major",this.frame.appendChild(i)),this.dom.majorLines.push(i);var s=this.props;"top"==e?(i.style.top="0px",i.style.bottom=""):(i.style.top="",i.style.bottom="0px"),i.style.left=t-s.majorLineWidth/2+"px",i.style.height=s.majorLineHeight+"px"},TimeAxis.prototype._repaintLine=function(){var t=this.dom.line,e=this.frame,i=this.getOption("orientation");this.getOption("showMinorLabels")||this.getOption("showMajorLabels")?(t?(e.removeChild(t),e.appendChild(t)):(t=document.createElement("div"),t.className="grid horizontal major",e.appendChild(t),this.dom.line=t),"top"==i?(t.style.top=this.height+"px",t.style.bottom=""):(t.style.top="",t.style.bottom=this.height+"px")):t&&t.parentNode&&(t.parentNode.removeChild(t),delete this.dom.line)},TimeAxis.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.frame.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text minor measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.frame.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},TimeAxis.prototype.snap=function(t){return this.step.snap(t)},CurrentTime.prototype=new Component,CurrentTime.prototype.setOptions=Component.prototype.setOptions,CurrentTime.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},CurrentTime.prototype.getFrame=function(){return this.bar},CurrentTime.prototype.repaint=function(){var t=(this.parent,new Date),e=this.options.toScreen(t);return this.bar.style.left=e+"px",this.bar.title="Current time: "+t,!1},CurrentTime.prototype.start=function(){function t(){e.stop();var i=e.range.conversion(e.parent.width).scale,s=1/i/10;30>s&&(s=30),s>1e3&&(s=1e3),e.repaint(),e.currentTimeTimer=setTimeout(t,s)}var e=this;t()},CurrentTime.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},CustomTime.prototype=new Component,CustomTime.prototype.setOptions=Component.prototype.setOptions,CustomTime.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=Hammer(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},CustomTime.prototype.getFrame=function(){return this.bar},CustomTime.prototype.repaint=function(){var t=this.options.toScreen(this.customTime);return this.bar.style.left=t+"px",this.bar.title="Time: "+this.customTime,!1},CustomTime.prototype.setCustomTime=function(t){this.customTime=new Date(t.valueOf()),this.repaint()},CustomTime.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},CustomTime.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},CustomTime.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=t.gesture.deltaX,i=this.options.toScreen(this.eventParams.customTime)+e,s=this.options.toTime(i);this.setCustomTime(s),this.emit("timechange",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},CustomTime.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.emit("timechanged",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())};var UNGROUPED="__ungrouped__";ItemSet.prototype=new Panel,ItemSet.types={box:ItemBox,range:ItemRange,rangeoverflow:ItemRangeOverflow,point:ItemPoint},ItemSet.prototype._create=function(){var t=document.createElement("div");t["timeline-itemset"]=this,this.frame=t;var e=document.createElement("div");e.className="background",this.backgroundPanel.frame.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var s=document.createElement("div");s.className="axis",this.dom.axis=s,this.axisPanel.frame.appendChild(s);var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this.sidePanel.frame.appendChild(n),this._updateUngrouped(),this.hammer=Hammer(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},ItemSet.prototype.setOptions=function(t){Component.prototype.setOptions.call(this,t)},ItemSet.prototype.markDirty=function(){this.groupIds=[],this.stackDirty=!0},ItemSet.prototype.hide=function(){this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},ItemSet.prototype.show=function(){this.dom.axis.parentNode||this.axisPanel.frame.appendChild(this.dom.axis),this.dom.background.parentNode||this.backgroundPanel.frame.appendChild(this.dom.background),this.dom.labelSet.parentNode||this.sidePanel.frame.appendChild(this.dom.labelSet)},ItemSet.prototype.setRange=function(t){if(!(t instanceof Range||t&&t.start&&t.end))throw new TypeError("Range must be an instance of Range, or an object containing start and end.");this.range=t},ItemSet.prototype.setSelection=function(t){var e,i,s,n;if(t){if(!Array.isArray(t))throw new TypeError("Array expected");for(e=0,i=this.selection.length;i>e;e++)s=this.selection[e],n=this.items[s],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)s=t[e],n=this.items[s],n&&(this.selection.push(s),n.select())}},ItemSet.prototype.getSelection=function(){return this.selection.concat([])},ItemSet.prototype._deselect=function(t){for(var e=this.selection,i=0,s=e.length;s>i;i++)if(e[i]==t){e.splice(i,1);break}},ItemSet.prototype.getFrame=function(){return this.frame},ItemSet.prototype.repaint=function(){var t=this.options.margin,e=this.range,i=util.option.asSize,s=util.option.asString,n=this.options,o=this.getOption("orientation"),a=!1,r=this.frame;"number"==typeof t&&(t={item:t,axis:t}),r.className="itemset"+(n.className?" "+s(n.className):""),a=this._orderGroups()||a;var h=this.range.end-this.range.start,d=h!=this.lastVisibleInterval||this.width!=this.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.lastWidth=this.width;var c=this.stackDirty,l=this._firstGroup(),u={item:t.item,axis:t.axis},p={item:t.item,axis:t.item/2},g=0,m=t.axis+t.item;return util.forEach(this.groups,function(t){var i=t==l?u:p;a=t.repaint(e,i,c)||a,g+=t.height}),g=Math.max(g,m),this.stackDirty=!1,r.style.left=i(n.left,""),r.style.right=i(n.right,""),r.style.top=i("top"==o?"0":""),r.style.bottom=i("top"==o?"":"0"),r.style.width=i(n.width,"100%"),r.style.height=i(g),this.top=r.offsetTop,this.left=r.offsetLeft,this.width=r.offsetWidth,this.height=g,this.dom.axis.style.left=i(n.left,"0"),this.dom.axis.style.right=i(n.right,""),this.dom.axis.style.width=i(n.width,"100%"),this.dom.axis.style.height=i(0),this.dom.axis.style.top=i("top"==o?"0":""),this.dom.axis.style.bottom=i("top"==o?"":"0"),a=this._isResized()||a},ItemSet.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[UNGROUPED];return i||null},ItemSet.prototype._updateUngrouped=function(){var t=this.groups[UNGROUPED];if(this.groupsData)t&&(t.hide(),delete this.groups[UNGROUPED]);else if(!t){var e=null,i=null;t=new Group(e,i,this),this.groups[UNGROUPED]=t;for(var s in this.items)this.items.hasOwnProperty(s)&&t.add(this.items[s]);t.show()}},ItemSet.prototype.getForeground=function(){return this.dom.foreground},ItemSet.prototype.getBackground=function(){return this.dom.background},ItemSet.prototype.getAxis=function(){return this.dom.axis},ItemSet.prototype.getLabelSet=function(){return this.dom.labelSet},ItemSet.prototype.setItems=function(t){var e,i=this,s=this.itemsData;if(t){if(!(t instanceof DataSet||t instanceof DataView))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(s&&(util.forEach(this.itemListeners,function(t,e){s.unsubscribe(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;util.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},ItemSet.prototype.getItems=function(){return this.itemsData},ItemSet.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(util.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof DataSet||t instanceof DataView))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;util.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.emit("change")},ItemSet.prototype.getGroups=function(){return this.groupsData},ItemSet.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this._myDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},ItemSet.prototype._onUpdate=function(t){var e=this,i=this.items,s=this.itemOptions;t.forEach(function(t){var n=e.itemsData.get(t),o=i[t],a=n.type||n.start&&n.end&&"range"||e.options.type||"box",r=ItemSet.types[a];if(o&&(r&&o instanceof r?e._updateItem(o,n):(e._removeItem(o),o=null)),!o){if(!r)throw new TypeError('Unknown item type "'+a+'"');o=new r(n,e.options,s),o.id=t,e._addItem(o)}}),this._order(),this.stackDirty=!0,this.emit("change")},ItemSet.prototype._onAdd=ItemSet.prototype._onUpdate,ItemSet.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var s=i.items[t];s&&(e++,i._removeItem(s))}),e&&(this._order(),this.stackDirty=!0,this.emit("change"))},ItemSet.prototype._order=function(){util.forEach(this.groups,function(t){t.order()})},ItemSet.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},ItemSet.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),s=e.groups[t];if(s)s.setData(i);else{if(t==UNGROUPED)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);util.extend(n,{height:null}),s=new Group(t,i,e),e.groups[t]=s;for(var o in e.items)if(e.items.hasOwnProperty(o)){var a=e.items[o];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.emit("change")},ItemSet.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.emit("change")},ItemSet.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!util.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},ItemSet.prototype._addItem=function(t){this.items[t.id]=t;var e=this.groupsData?t.data.group:UNGROUPED,i=this.groups[e];i&&i.add(t)},ItemSet.prototype._updateItem=function(t,e){var i=t.data.group;if(t.data=e,t.displayed&&t.repaint(),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var n=this.groupsData?t.data.group:UNGROUPED,o=this.groups[n];o&&o.add(t)}},ItemSet.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1);var i=this.groupsData?t.data.group:UNGROUPED,s=this.groups[i];s&&s.remove(t)},ItemSet.prototype._constructByEndArray=function(t){for(var e=[],i=0;it.start-e&&this.data.startt.start-e&&this.data.startt.start},ItemRange.prototype.repaint=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this),!this.parent)throw new Error("Cannot repaint item: no parent attached");if(!t.box.parentNode){var e=this.parent.getForeground();if(!e)throw new Error("Cannot repaint time axis: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.data.content!=this.content){if(this.content=this.data.content,this.content instanceof Element)t.content.innerHTML="",t.content.appendChild(this.content);else{if(void 0==this.data.content)throw new Error('Property "content" missing in item '+this.data.id);t.content.innerHTML=this.content}this.dirty=!0}var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");this.className!=i&&(this.className=i,t.box.className=this.baseClassName+i,this.dirty=!0),this.dirty&&(this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dirty=!1),this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},ItemRange.prototype.show=function(){this.displayed||this.repaint()},ItemRange.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.top=null,this.left=null,this.displayed=!1}},ItemRange.prototype.repositionX=function(){var t,e=this.props,i=this.parent.width,s=this.defaultOptions.toScreen(this.data.start),n=this.defaultOptions.toScreen(this.data.end),o="padding"in this.options?this.options.padding:this.defaultOptions.padding;-i>s&&(s=-i),n>2*i&&(n=2*i),t=0>s?Math.min(-s,n-s-e.content.width-2*o):0,this.left=s,this.width=Math.max(n-s,1),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=this.width+"px",this.dom.content.style.left=t+"px"},ItemRange.prototype.repositionY=function(){var t=this.options.orientation||this.defaultOptions.orientation,e=this.dom.box;"top"==t?(e.style.top=this.top+"px",e.style.bottom=""):(e.style.top="",e.style.bottom=this.top+"px")},ItemRange.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,Hammer(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},ItemRange.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="drag-right",t.dragRightItem=this,Hammer(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},ItemRangeOverflow.prototype=new ItemRange(null),ItemRangeOverflow.prototype.baseClassName="item rangeoverflow",ItemRangeOverflow.prototype.repositionX=function(){{var t,e=this.parent.width,i=this.defaultOptions.toScreen(this.data.start),s=this.defaultOptions.toScreen(this.data.end);"padding"in this.options?this.options.padding:this.defaultOptions.padding}-e>i&&(i=-e),s>2*e&&(s=2*e),t=Math.max(-i,0),this.left=i;var n=Math.max(s-i,1);this.width=n+this.props.content.width,this.dom.box.style.left=this.left+"px",this.dom.box.style.width=n+"px",this.dom.content.style.left=t+"px"},Group.prototype._create=function(){var t=document.createElement("div");t.className="vlabel",this.dom.label=t;var e=document.createElement("div");e.className="inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.axis=document.createElement("div"),this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},Group.prototype.setData=function(t){var e=t&&t.content;e instanceof Element?this.dom.inner.appendChild(e):this.dom.inner.innerHTML=void 0!=e?e:this.groupId;var i=t&&t.className;i&&util.addClassName(this.dom.label,i)},Group.prototype.getForeground=function(){return this.dom.foreground},Group.prototype.getBackground=function(){return this.dom.background},Group.prototype.getAxis=function(){return this.dom.axis},Group.prototype.getLabelWidth=function(){return this.props.label.width},Group.prototype.repaint=function(t,e,i){var s=!1;this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t);var n=this.dom.marker.clientHeight;n!=this.lastMarkerHeight&&(this.lastMarkerHeight=n,util.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.repaint()}),i=!0),this.itemSet.options.stack?stack.stack(this.visibleItems,e,i):stack.nostack(this.visibleItems,e);for(var o=0,a=this.visibleItems.length;a>o;o++){var r=this.visibleItems[o];r.repositionY()}var h,d=this.visibleItems;if(d.length){var c=d[0].top,l=d[0].top+d[0].height;util.forEach(d,function(t){c=Math.min(c,t.top),l=Math.max(l,t.top+t.height)}),h=l-c+e.axis+e.item}else h=e.axis+e.item;h=Math.max(h,this.props.label.height);var u=this.dom.foreground;return this.top=u.offsetTop,this.left=u.offsetLeft,this.width=u.offsetWidth,s=util.updateProperty(this,"height",h)||s,s=util.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||s,s=util.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||s,u.style.height=h+"px",this.dom.label.style.height=h+"px",s},Group.prototype.show=function(){this.dom.label.parentNode||this.itemSet.getLabelSet().appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.getForeground().appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.getBackground().appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.getAxis().appendChild(this.dom.axis)},Group.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var s=this.dom.axis;s.parentNode&&s.parentNode.removeChild(s)},Group.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),t instanceof ItemRange&&-1==this.visibleItems.indexOf(t)){var e=this.itemSet.range;this._checkIfVisible(t,this.visibleItems,e)}},Group.prototype.remove=function(t){delete this.items[t.id],t.setParent(this.itemSet); -var e=this.visibleItems.indexOf(t);-1!=e&&this.visibleItems.splice(e,1)},Group.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},Group.prototype.order=function(){var t=util.toArray(this.items);this.orderedItems.byStart=t,this.orderedItems.byEnd=this._constructByEndArray(t),stack.orderByStart(this.orderedItems.byStart),stack.orderByEnd(this.orderedItems.byEnd)},Group.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0)for(n=0;n=0&&!this._checkIfInvisible(t.byStart[n],o,i);n--);for(n=s+1;n=0&&!this._checkIfInvisible(t.byEnd[n],o,i);n--);for(n=a+1;ne.start-a&&s[c].data[n]e.start-a&&s[c].data[n]=s&&(s=864e5),e=new Date(e.valueOf()-.05*s),i=new Date(i.valueOf()+.05*s)}(null!==e||null!==i)&&this.range.setRange(e,i)},Timeline.prototype.getItemRange=function(){var t=this.itemsData,e=null,i=null;if(t){var s=t.min("start");e=s?s.start.valueOf():null;var n=t.max("start");n&&(i=n.start.valueOf());var o=t.max("end");o&&(i=null==i?o.end.valueOf():Math.max(i,o.end.valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},Timeline.prototype.setSelection=function(t){this.itemSet.setSelection(t)},Timeline.prototype.getSelection=function(){return this.itemSet.getSelection()},Timeline.prototype.setWindow=function(t,e){if(1==arguments.length){var i=arguments[0];this.range.setRange(i.start,i.end)}else this.range.setRange(t,e)},Timeline.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},Timeline.prototype.repaint=function(){this.rootPanel.repaint()},Timeline.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.gesture.srcEvent&&t.gesture.srcEvent.ctrlKey,i=t.gesture.srcEvent&&t.gesture.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var s=this.getSelection(),n=ItemSet.itemFromTarget(t),o=n?[n.id]:[];this.setSelection(o);var a=this.getSelection();util.equalArray(s,a)||this.emit("select",{items:this.getSelection()}),t.stopPropagation()}},Timeline.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=ItemSet.itemFromTarget(t);if(i){var s=e.itemsData.get(i.id);this.options.onUpdate(s,function(t){t&&e.itemsData.update(t)})}else{var n=vis.util.getAbsoluteLeft(this.contentPanel.frame),o=t.gesture.center.pageX-n,a={start:this.timeAxis.snap(this._toTime(o)),content:"new item"};("range"===this.options.type||"rangeoverflow"==this.options.type)&&(a.end=this.timeAxis.snap(this._toTime(o+this.rootPanel.width/5)));var r=util.randomUUID();a[this.itemsData.fieldId]=r;var h=ItemSet.groupFromTarget(t);h&&(a.group=h.groupId),this.options.onAdd(a,function(t){t&&e.itemsData.add(a)})}}},Timeline.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=ItemSet.itemFromTarget(t);if(i){e=this.getSelection();var s=e.indexOf(i.id);-1==s?e.push(i.id):e.splice(s,1),this.setSelection(e),this.emit("select",{items:this.getSelection()}),t.stopPropagation()}}},Timeline.prototype._toTime=function(t){var e=this.range.conversion(this.mainPanel.width);return new Date(t/e.scale+e.offset)},Timeline.prototype._toScreen=function(t){var e=this.range.conversion(this.mainPanel.width);return(t.valueOf()-e.offset)*e.scale},function(t){function e(t){return T=t,u()}function i(){C=0,M=T.charAt(0)}function s(){C++,M=T.charAt(C)}function n(){return T.charAt(C+1)}function o(t){return O.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function r(t,e,i){for(var s=e.split("."),n=t;s.length;){var o=s.shift();s.length?(n[o]||(n[o]={}),n=n[o]):n[o]=i}}function h(t,e){for(var i,s,n=null,o=[t],r=t;r.parent;)o.push(r.parent),r=r.parent;if(r.nodes)for(i=0,s=r.nodes.length;s>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=a(n.attr,t.node))),i=o.length-1;i>=0;i--){var h=o[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(n)&&h.nodes.push(n)}e.attr&&(n.attr=a(n.attr,e.attr))}function d(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,s,n){var o={from:e,to:i,type:s};return t.edge&&(o.attr=a({},t.edge)),o.attr=a(o.attr||{},n),o}function l(){for(N=E.NULL,I="";" "==M||" "==M||"\n"==M||"\r"==M;)s();do{var t=!1;if("#"==M){for(var e=C-1;" "==T.charAt(e)||" "==T.charAt(e);)e--;if("\n"==T.charAt(e)||""==T.charAt(e)){for(;""!=M&&"\n"!=M;)s();t=!0}}if("/"==M&&"/"==n()){for(;""!=M&&"\n"!=M;)s();t=!0}if("/"==M&&"*"==n()){for(;""!=M;){if("*"==M&&"/"==n()){s(),s();break}s()}t=!0}for(;" "==M||" "==M||"\n"==M||"\r"==M;)s()}while(t);if(""==M)return void(N=E.DELIMITER);var i=M+n();if(D[i])return N=E.DELIMITER,I=i,s(),void s();if(D[M])return N=E.DELIMITER,I=M,void s();if(o(M)||"-"==M){for(I+=M,s();o(M);)I+=M,s();return"false"==I?I=!1:"true"==I?I=!0:isNaN(Number(I))||(I=Number(I)),void(N=E.IDENTIFIER)}if('"'==M){for(s();""!=M&&('"'!=M||'"'==M&&'"'==n());)I+=M,'"'==M&&s(),s();if('"'!=M)throw b('End of string " expected');return s(),void(N=E.IDENTIFIER)}for(N=E.UNKNOWN;""!=M;)I+=M,s();throw new SyntaxError('Syntax error in part "'+w(I,30)+'"')}function u(){var t={};if(i(),l(),"strict"==I&&(t.strict=!0,l()),("graph"==I||"digraph"==I)&&(t.type=I,l()),N==E.IDENTIFIER&&(t.id=I,l()),"{"!=I)throw b("Angle bracket { expected");if(l(),p(t),"}"!=I)throw b("Angle bracket } expected");if(l(),""!==I)throw b("End of file expected");return l(),delete t.node,delete t.edge,delete t.graph,t}function p(t){for(;""!==I&&"}"!=I;)g(t),";"==I&&l()}function g(t){var e=m(t);if(e)return void y(t,e);var i=f(t);if(!i){if(N!=E.IDENTIFIER)throw b("Identifier expected");var s=I;if(l(),"="==I){if(l(),N!=E.IDENTIFIER)throw b("Identifier expected");t[s]=I,l()}else v(t,s)}}function m(t){var e=null;if("subgraph"==I&&(e={},e.type="subgraph",l(),N==E.IDENTIFIER&&(e.id=I,l())),"{"==I){if(l(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,p(e),"}"!=I)throw b("Angle bracket } expected");l(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function f(t){return"node"==I?(l(),t.node=_(),"node"):"edge"==I?(l(),t.edge=_(),"edge"):"graph"==I?(l(),t.graph=_(),"graph"):null}function v(t,e){var i={id:e},s=_();s&&(i.attr=s),h(t,i),y(t,e)}function y(t,e){for(;"->"==I||"--"==I;){var i,s=I;l();var n=m(t);if(n)i=n;else{if(N!=E.IDENTIFIER)throw b("Identifier or subgraph expected");i=I,h(t,{id:i}),l()}var o=_(),a=c(t,e,i,s,o);d(t,a),e=i}}function _(){for(var t=null;"["==I;){for(l(),t={};""!==I&&"]"!=I;){if(N!=E.IDENTIFIER)throw b("Attribute name expected");var e=I;if(l(),"="!=I)throw b("Equal sign = expected");if(l(),N!=E.IDENTIFIER)throw b("Attribute value expected");var i=I;r(t,e,i),l(),","==I&&l()}if("]"!=I)throw b("Bracket ] expected");l()}return t}function b(t){return new SyntaxError(t+', got "'+w(I,30)+'" (char '+C+")")}function w(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){t instanceof Array?t.forEach(function(t){e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}):e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}function x(t){function i(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e}var s=e(t),n={nodes:[],edges:[],options:{}};return s.nodes&&s.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),n.nodes.push(e)}),s.edges&&s.edges.forEach(function(t){var e,s;e=t.from instanceof Object?t.from.nodes:{id:t.from},s=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=i(t);n.edges.push(e)}),S(e,s,function(e,s){var o=c(n,e.id,s.id,t.type,t.attr),a=i(o);n.edges.push(a)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=i(t);n.edges.push(e)})}),s.attr&&(n.options=s.attr),n}var E={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},D={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},T="",C=0,M="",I="",N=E.NULL,O=/[a-zA-Z_0-9.:#]/;t.parseDOT=e,t.DOTToGraph=x}("undefined"!=typeof util?util:exports),"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1)},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i)},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath();var s=2*i,n=s/2,o=Math.sqrt(3)/6*s,a=Math.sqrt(s*s-n*n);this.moveTo(t,e-(a-o)),this.lineTo(t+n,e+o),this.lineTo(t-n,e+o),this.lineTo(t,e-(a-o)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath();var s=2*i,n=s/2,o=Math.sqrt(3)/6*s,a=Math.sqrt(s*s-n*n);this.moveTo(t,e+(a-o)),this.lineTo(t+n,e-o),this.lineTo(t-n,e-o),this.lineTo(t,e+(a-o)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath();for(var s=0;10>s;s++){var n=s%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*s*Math.PI/10),e-n*Math.cos(2*s*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,s,n){var o=Math.PI/180;0>i-2*n&&(n=i/2),0>s-2*n&&(n=s/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*o,360*o,!1),this.lineTo(t+i,e+s-n),this.arc(t+i-n,e+s-n,n,0,90*o,!1),this.lineTo(t+n,e+s),this.arc(t+n,e+s-n,n,90*o,180*o,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*o,270*o,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,s){var n=.5522848,o=i/2*n,a=s/2*n,r=t+i,h=e+s,d=t+i/2,c=e+s/2;this.beginPath(),this.moveTo(t,c),this.bezierCurveTo(t,c-a,d-o,e,d,e),this.bezierCurveTo(d+o,e,r,c-a,r,c),this.bezierCurveTo(r,c+a,d+o,h,d,h),this.bezierCurveTo(d-o,h,t,c+a,t,c)},CanvasRenderingContext2D.prototype.database=function(t,e,i,s){var n=1/3,o=i,a=s*n,r=.5522848,h=o/2*r,d=a/2*r,c=t+o,l=e+a,u=t+o/2,p=e+a/2,g=e+(s-a/2),m=e+s;this.beginPath(),this.moveTo(c,p),this.bezierCurveTo(c,p+d,u+h,l,u,l),this.bezierCurveTo(u-h,l,t,p+d,t,p),this.bezierCurveTo(t,p-d,u-h,e,u,e),this.bezierCurveTo(u+h,e,c,p-d,c,p),this.lineTo(c,g),this.bezierCurveTo(c,g+d,u+h,m,u,m),this.bezierCurveTo(u-h,m,t,g+d,t,g),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,s){var n=t-s*Math.cos(i),o=e-s*Math.sin(i),a=t-.9*s*Math.cos(i),r=e-.9*s*Math.sin(i),h=n+s/3*Math.cos(i+.5*Math.PI),d=o+s/3*Math.sin(i+.5*Math.PI),c=n+s/3*Math.cos(i-.5*Math.PI),l=o+s/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(a,r),this.lineTo(c,l),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,s,n){n||(n=[10,5]),0==u&&(u=.001);var o=n.length;this.moveTo(t,e);for(var a=i-t,r=s-e,h=r/a,d=Math.sqrt(a*a+r*r),c=0,l=!0;d>=.1;){var u=n[c++%o];u>d&&(u=d);var p=Math.sqrt(u*u/(1+h*h));0>a&&(p=-p),t+=p,e+=h*p,this[l?"lineTo":"moveTo"](t,e),d-=u,l=!l}}),Node.prototype.resetCluster=function(){this.formationScale=void 0,this.clusterSize=1,this.containedNodes={},this.containedEdges={},this.clusterSessions=[]},Node.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),-1==this.dynamicEdges.indexOf(t)&&this.dynamicEdges.push(t),this.dynamicEdgesLength=this.dynamicEdges.length},Node.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&(this.edges.splice(e,1),this.dynamicEdges.splice(e,1)),this.dynamicEdgesLength=this.dynamicEdges.length},Node.prototype.setProperties=function(t,e){if(t){if(this.originalLabel=void 0,void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.group&&(this.group=t.group),void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.mass&&(this.mass=t.mass),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if(this.group){var i=this.grouplist.get(this.group);for(var s in i)i.hasOwnProperty(s)&&(this[s]=i[s])}if(void 0!==t.shape&&(this.shape=t.shape),void 0!==t.image&&(this.image=t.image),void 0!==t.radius&&(this.radius=t.radius),void 0!==t.color&&(this.color=util.parseColor(t.color)),void 0!==t.fontColor&&(this.fontColor=t.fontColor),void 0!==t.fontSize&&(this.fontSize=t.fontSize),void 0!==t.fontFace&&(this.fontFace=t.fontFace),void 0!==this.image&&""!=this.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.image)}switch(this.xFixed=this.xFixed||void 0!==t.x&&!t.allowedToMoveX,this.yFixed=this.yFixed||void 0!==t.y&&!t.allowedToMoveY,this.radiusFixed=this.radiusFixed||void 0!==t.radius,"image"==this.shape&&(this.radiusMin=e.nodes.widthMin,this.radiusMax=e.nodes.widthMax),this.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},Node.prototype.select=function(){this.selected=!0,this._reset()},Node.prototype.unselect=function(){this.selected=!1,this._reset()},Node.prototype.clearSizeCache=function(){this._reset()},Node.prototype._reset=function(){this.width=void 0,this.height=void 0},Node.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},Node.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.shape){case"circle":case"dot":return this.radius+i;case"ellipse":var s=this.width/2,n=this.height/2,o=Math.sin(e)*s,a=Math.cos(e)*n;return s*n/Math.sqrt(o*o+a*a);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},Node.prototype._setForce=function(t,e){this.fx=t,this.fy=e},Node.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},Node.prototype.discreteStep=function(t){if(!this.xFixed){var e=this.damping*this.vx,i=(this.fx-e)/this.mass;this.vx+=i*t,this.x+=this.vx*t}if(!this.yFixed){var s=this.damping*this.vy,n=(this.fy-s)/this.mass;this.vy+=n*t,this.y+=this.vy*t}},Node.prototype.discreteStepLimited=function(t,e){if(this.xFixed)this.fx=0;else{var i=this.damping*this.vx,s=(this.fx-i)/this.mass;this.vx+=s*t,this.vx=Math.abs(this.vx)>e?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0;else{var n=this.damping*this.vy,o=(this.fy-n)/this.mass;this.vy+=o*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},Node.prototype.isFixed=function(){return this.xFixed&&this.yFixed},Node.prototype.isMoving=function(t){return Math.abs(this.vx)>t||Math.abs(this.vy)>t},Node.prototype.isSelected=function(){return this.selected},Node.prototype.getValue=function(){return this.value},Node.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},Node.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value)if(e==t)this.radius=(this.radiusMin+this.radiusMax)/2;else{var i=(this.radiusMax-this.radiusMin)/(e-t);this.radius=(this.value-t)*i+this.radiusMin}this.baseRadiusValue=this.radius},Node.prototype.draw=function(){throw"Draw method not initialized for node"},Node.prototype.resize=function(){throw"Resize method not initialized for node"},Node.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},Node.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.radius||this.imageObj.width,e=this.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},Node.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;if(0!=this.imageObj.width){if(this.clusterSize>1){var i=this.clusterSize>1?10:0;i*=this.graphScaleInv,i=Math.min(.2*this.width,i),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-i,this.top-i,this.width+2*i,this.height+2*i)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2}else e=this.y;this._label(t,this.label,this.x,e,void 0,"top")},Node.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.growthIndicator=this.width-(i.width+2*e)}},Node.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=2;t.strokeStyle=this.selected?this.color.highlight.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.roundRect(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth,this.radius),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=i.width+2*e;this.width=s,this.height=s,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-s}},Node.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=2;t.strokeStyle=this.selected?this.color.highlight.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.database(this.x-this.width/2-2*t.lineWidth,this.y-.5*this.height-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.radius=s/2,this.width=s,this.height=s,this.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.radius-.5*s}},Node.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=2;t.strokeStyle=this.selected?this.color.highlight.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.circle(this.x,this.y,this.radius+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.circle(this.x,this.y,this.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.width1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.ellipse(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.ellipse(this.left,this.top,this.width,this.height),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._drawDot=function(t){this._drawShape(t,"circle")},Node.prototype._drawTriangle=function(t){this._drawShape(t,"triangle")},Node.prototype._drawTriangleDown=function(t){this._drawShape(t,"triangleDown")},Node.prototype._drawSquare=function(t){this._drawShape(t,"square")},Node.prototype._drawStar=function(t){this._drawShape(t,"star")},Node.prototype._resizeShape=function(){if(!this.width){this.radius=this.baseRadiusValue;var t=2*this.radius;this.width=t,this.height=t,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t}},Node.prototype._drawShape=function(t,e){this._resizeShape(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var i=2.5,s=2,n=2;switch(e){case"dot":n=2;break;case"square":n=2;break;case"triangle":n=3;break;case"triangleDown":n=3;break;case"star":n=4}t.strokeStyle=this.selected?this.color.highlight.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:1)+(this.clusterSize>1?i:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t[e](this.x,this.y,this.radius+n*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:1)+(this.clusterSize>1?i:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t[e](this.x,this.y,this.radius),t.fill(),t.stroke(),this.label&&this._label(t,this.label,this.x,this.y+this.height/2,void 0,"top")},Node.prototype._resizeText=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e)}},Node.prototype._drawText=function(t){this._resizeText(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._label(t,this.label,this.x,this.y)},Node.prototype._label=function(t,e,i,s,n,o){if(e&&this.fontSize*this.graphScale>this.fontDrawThreshold){t.font=(this.selected?"bold ":"")+this.fontSize+"px "+this.fontFace,t.fillStyle=this.fontColor||"black",t.textAlign=n||"center",t.textBaseline=o||"middle";for(var a=e.split("\n"),r=a.length,h=this.fontSize+4,d=s+(1-r)/2*h,c=0;r>c;c++)t.fillText(a[c],i,d),d+=h}},Node.prototype.getTextSize=function(t){if(void 0!==this.label){t.font=(this.selected?"bold ":"")+this.fontSize+"px "+this.fontFace;for(var e=this.label.split("\n"),i=(this.fontSize+4)*e.length,s=0,n=0,o=e.length;o>n;n++)s=Math.max(s,t.measureText(e[n]).width);return{width:s,height:i}}return{width:0,height:0}},Node.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.graphScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.graphScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.graphScaleInv=this.canvasTopLeft.x&&this.x=this.canvasTopLeft.y&&this.yh}return!1},Edge.prototype._drawLine=function(t){if(t.strokeStyle=1==this.selected?this.color.highlight:this.color.color,t.lineWidth=this._getLineWidth(),this.from!=this.to){this._line(t);var e;if(this.label){if(1==this.smooth){var i=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),s=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));e={x:i,y:s}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,o,a=this.length/4,r=this.from;r.width||r.resize(t),r.width>r.height?(n=r.x+r.width/2,o=r.y-a):(n=r.x+a,o=r.y-r.height/2),this._circle(t,n,o,a),e=this._pointOnCircle(n,o,a,.5),this._label(t,this.label,e.x,e.y)}},Edge.prototype._getLineWidth=function(){return 1==this.selected?Math.min(2*this.width,this.widthMax)*this.graphScaleInv:this.width*this.graphScaleInv},Edge.prototype._line=function(t){t.beginPath(),t.moveTo(this.from.x,this.from.y),1==this.smooth?t.quadraticCurveTo(this.via.x,this.via.y,this.to.x,this.to.y):t.lineTo(this.to.x,this.to.y),t.stroke()},Edge.prototype._circle=function(t,e,i,s){t.beginPath(),t.arc(e,i,s,0,2*Math.PI,!1),t.stroke()},Edge.prototype._label=function(t,e,i,s){if(e){t.font=(this.from.selected||this.to.selected?"bold ":"")+this.fontSize+"px "+this.fontFace,t.fillStyle=this.fontFill;var n=t.measureText(e).width,o=this.fontSize,a=i-n/2,r=s-o/2;t.fillRect(a,r,n,o),t.fillStyle=this.fontColor||"black",t.textAlign="left",t.textBaseline="top",t.fillText(e,a,r)}},Edge.prototype._drawDashLine=function(t){if(t.strokeStyle=1==this.selected?this.color.highlight:this.color.color,t.lineWidth=this._getLineWidth(),void 0!==t.mozDash||void 0!==t.setLineDash){t.beginPath(),t.moveTo(this.from.x,this.from.y);var e=[0];e=void 0!==this.dash.length&&void 0!==this.dash.gap?[this.dash.length,this.dash.gap]:[5,5],"undefined"!=typeof t.setLineDash?(t.setLineDash(e),t.lineDashOffset=0):(t.mozDash=e,t.mozDashOffset=0),1==this.smooth?t.quadraticCurveTo(this.via.x,this.via.y,this.to.x,this.to.y):t.lineTo(this.to.x,this.to.y),t.stroke(),"undefined"!=typeof t.setLineDash?(t.setLineDash([0]),t.lineDashOffset=0):(t.mozDash=[0],t.mozDashOffset=0)}else t.beginPath(),t.lineCap="round",void 0!==this.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.dash.length,this.dash.gap,this.dash.altLength,this.dash.gap]):void 0!==this.dash.length&&void 0!==this.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.dash.length,this.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var i;if(1==this.smooth){var s=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),n=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));i={x:s,y:n}}else i=this._pointOnLine(.5);this._label(t,this.label,i.x,i.y)}},Edge.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},Edge.prototype._pointOnCircle=function(t,e,i,s){var n=2*(s-3/8)*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}},Edge.prototype._drawArrowCenter=function(t){var e;if(1==this.selected?(t.strokeStyle=this.color.highlight,t.fillStyle=this.color.highlight):(t.strokeStyle=this.color.color,t.fillStyle=this.color.color),t.lineWidth=this._getLineWidth(),this.from!=this.to){this._line(t);var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=(10+5*this.width)*this.arrowScaleFactor;if(1==this.smooth){var n=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),o=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));e={x:n,y:o}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,i,s),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,r,h=.25*Math.max(100,this.length),d=this.from;d.width||d.resize(t),d.width>d.height?(a=d.x+.5*d.width,r=d.y-h):(a=d.x+h,r=d.y-.5*d.height),this._circle(t,a,r,h);var i=.2*Math.PI,s=(10+5*this.width)*this.arrowScaleFactor;e=this._pointOnCircle(a,r,h,.5),t.arrow(e.x,e.y,i,s),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,r,h,.5),this._label(t,this.label,e.x,e.y))}},Edge.prototype._drawArrow=function(t){1==this.selected?(t.strokeStyle=this.color.highlight,t.fillStyle=this.color.highlight):(t.strokeStyle=this.color.color,t.fillStyle=this.color.color),t.lineWidth=this._getLineWidth();var e,i;if(this.from!=this.to){e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var s=this.to.x-this.from.x,n=this.to.y-this.from.y,o=Math.sqrt(s*s+n*n),a=this.from.distanceToBorder(t,e+Math.PI),r=(o-a)/o,h=r*this.from.x+(1-r)*this.to.x,d=r*this.from.y+(1-r)*this.to.y;1==this.smooth&&(e=Math.atan2(this.to.y-this.via.y,this.to.x-this.via.x),s=this.to.x-this.via.x,n=this.to.y-this.via.y,o=Math.sqrt(s*s+n*n));var c,l,u=this.to.distanceToBorder(t,e),p=(o-u)/o;if(1==this.smooth?(c=(1-p)*this.via.x+p*this.to.x,l=(1-p)*this.via.y+p*this.to.y):(c=(1-p)*this.from.x+p*this.to.x,l=(1-p)*this.from.y+p*this.to.y),t.beginPath(),t.moveTo(h,d),1==this.smooth?t.quadraticCurveTo(this.via.x,this.via.y,c,l):t.lineTo(c,l),t.stroke(),i=(10+5*this.width)*this.arrowScaleFactor,t.arrow(c,l,e,i),t.fill(),t.stroke(),this.label){var g;if(1==this.smooth){var m=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),f=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));g={x:m,y:f}}else g=this._pointOnLine(.5);this._label(t,this.label,g.x,g.y)}}else{var v,y,_,b=this.from,w=.25*Math.max(100,this.length);b.width||b.resize(t),b.width>b.height?(v=b.x+.5*b.width,y=b.y-w,_={x:v,y:b.y,angle:.9*Math.PI}):(v=b.x+w,y=b.y-.5*b.height,_={x:b.x,y:y,angle:.6*Math.PI}),t.beginPath(),t.arc(v,y,w,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.width)*this.arrowScaleFactor;t.arrow(_.x,_.y,_.angle,i),t.fill(),t.stroke(),this.label&&(g=this._pointOnCircle(v,y,w,.5),this._label(t,this.label,g.x,g.y))}},Edge.prototype._getDistanceToEdge=function(t,e,i,s,n,o){if(1==this.smooth){var a,r,h,d,c,l,u=1e9;for(a=0;10>a;a++)r=.1*a,h=Math.pow(1-r,2)*t+2*r*(1-r)*this.via.x+Math.pow(r,2)*i,d=Math.pow(1-r,2)*e+2*r*(1-r)*this.via.y+Math.pow(r,2)*s,c=Math.abs(n-h),l=Math.abs(o-d),u=Math.min(u,Math.sqrt(c*c+l*l));return u}var p=i-t,g=s-e,m=p*p+g*g,f=((n-t)*p+(o-e)*g)/m;f>1?f=1:0>f&&(f=0);var h=t+f*p,d=e+f*g,c=h-n,l=d-o;return Math.sqrt(c*c+l*l)},Edge.prototype.setScale=function(t){this.graphScaleInv=1/t},Edge.prototype.select=function(){this.selected=!0},Edge.prototype.unselect=function(){this.selected=!1},Edge.prototype.positionBezierNode=function(){null!==this.via&&(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y))},Popup.prototype.setPosition=function(t,e){this.x=parseInt(t),this.y=parseInt(e)},Popup.prototype.setText=function(t){this.frame.innerHTML=t},Popup.prototype.show=function(t){if(void 0===t&&(t=!0),t){var e=this.frame.clientHeight,i=this.frame.clientWidth,s=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,o=this.y-e;o+e+this.padding>s&&(o=s-e-this.padding),on&&(a=n-i-this.padding),athis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},_calculateForces:function(){this._calculateGravitationalForces(),this._calculateNodeForces(),1==this.constants.smoothCurves?this._calculateSpringForcesWithSupport():this._calculateSpringForces()},_updateCalculationNodes:function(){if(1==this.constants.smoothCurves){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},_calculateGravitationalForces:function(){var t,e,i,s,n,o=this.calculationNodes,a=this.constants.physics.centralGravity,r=0;for(n=0;nSimulation Mode:Barnes HutRepulsionHierarchical
Options:
',this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement);var e;e=document.getElementById("graph_BH_gc"),e.onchange=showValueOfRange.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),e=document.getElementById("graph_BH_cg"),e.onchange=showValueOfRange.bind(this,"graph_BH_cg",1,"physics_centralGravity"),e=document.getElementById("graph_BH_sc"),e.onchange=showValueOfRange.bind(this,"graph_BH_sc",1,"physics_springConstant"),e=document.getElementById("graph_BH_sl"),e.onchange=showValueOfRange.bind(this,"graph_BH_sl",1,"physics_springLength"),e=document.getElementById("graph_BH_damp"),e.onchange=showValueOfRange.bind(this,"graph_BH_damp",1,"physics_damping"),e=document.getElementById("graph_R_nd"),e.onchange=showValueOfRange.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),e=document.getElementById("graph_R_cg"),e.onchange=showValueOfRange.bind(this,"graph_R_cg",1,"physics_centralGravity"),e=document.getElementById("graph_R_sc"),e.onchange=showValueOfRange.bind(this,"graph_R_sc",1,"physics_springConstant"),e=document.getElementById("graph_R_sl"),e.onchange=showValueOfRange.bind(this,"graph_R_sl",1,"physics_springLength"),e=document.getElementById("graph_R_damp"),e.onchange=showValueOfRange.bind(this,"graph_R_damp",1,"physics_damping"),e=document.getElementById("graph_H_nd"),e.onchange=showValueOfRange.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),e=document.getElementById("graph_H_cg"),e.onchange=showValueOfRange.bind(this,"graph_H_cg",1,"physics_centralGravity"),e=document.getElementById("graph_H_sc"),e.onchange=showValueOfRange.bind(this,"graph_H_sc",1,"physics_springConstant"),e=document.getElementById("graph_H_sl"),e.onchange=showValueOfRange.bind(this,"graph_H_sl",1,"physics_springLength"),e=document.getElementById("graph_H_damp"),e.onchange=showValueOfRange.bind(this,"graph_H_damp",1,"physics_damping"),e=document.getElementById("graph_H_direction"),e.onchange=showValueOfRange.bind(this,"graph_H_direction",t,"hierarchicalLayout_direction"),e=document.getElementById("graph_H_levsep"),e.onchange=showValueOfRange.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),e=document.getElementById("graph_H_nspac"),e.onchange=showValueOfRange.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing");var i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2"),n=document.getElementById("graph_physicsMethod3");s.checked=!0,this.constants.physics.barnesHut.enabled&&(i.checked=!0),this.constants.hierarchicalLayout.enabled&&(n.checked=!0);var o=document.getElementById("graph_toggleSmooth"),a=document.getElementById("graph_repositionNodes"),r=document.getElementById("graph_generateOptions");o.onclick=graphToggleSmoothCurves.bind(this),a.onclick=graphRepositionNodes.bind(this),r.onclick=graphGenerateOptions.bind(this),o.style.background=1==this.constants.smoothCurves?"#A4FF56":"#FF8532",switchConfigurations.apply(this),i.onchange=switchConfigurations.bind(this),s.onchange=switchConfigurations.bind(this),n.onchange=switchConfigurations.bind(this)}},_overWriteGraphConstants:function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},hierarchalRepulsionMixin={_calculateNodeForces:function(){var t,e,i,s,n,o,a,r,h,d,c=this.calculationNodes,l=this.calculationNodeIndices,u=5,p=.5*-u,g=this.constants.physics.hierarchicalRepulsion.nodeDistance,m=g;for(h=0;hi&&(o=f*i+u,0==i?i=.01:o/=i,s=t*o,n=e*o,a.fx-=s,a.fy-=n,r.fx+=s,r.fy+=n)}}},barnesHutMixin={_calculateNodeForces:function(){if(0!=this.constants.physics.barnesHut.gravitationalConstant){var t,e=this.calculationNodes,i=this.calculationNodeIndices,s=i.length;this._formBarnesHutTree(e,i);for(var n=this.barnesHutTree,o=0;s>o;o++)t=e[i[o]],this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t)}},_getForceContribution:function(t,e){if(t.childrenCount>0){var i,s,n;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+s*s),n*t.calcSize>this.constants.physics.barnesHut.theta){0==n&&(n=.1*Math.random(),i=n);var o=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.mass/(n*n*n),a=i*o,r=s*o;e.fx+=a,e.fy+=r}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==n&&(n=.5*Math.random(),i=n);var o=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.mass/(n*n*n),a=i*o,r=s*o;e.fx+=a,e.fy+=r}}},_formBarnesHutTree:function(t,e){for(var i,s=e.length,n=Number.MAX_VALUE,o=Number.MAX_VALUE,a=-Number.MAX_VALUE,r=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,c=t[e[h]].y;n>d&&(n=d),d>a&&(a=d),o>c&&(o=c),c>r&&(r=c)}var l=Math.abs(a-n)-Math.abs(r-o);l>0?(o-=.5*l,r+=.5*l):(n+=.5*l,a-=.5*l);var u=1e-5,p=Math.max(u,Math.abs(a-n)),g=.5*p,m=.5*(n+a),f=.5*(o+r),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-g,maxX:m+g,minY:f-g,maxY:f+g},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],this._placeInTree(v.root,i);this.barnesHutTree=v},_updateBranchMass:function(t,e){var i=t.mass+e.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.mass,t.centerOfMass.y*=s,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")},_placeInRegion:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x==e.x&&t.children[i].children.data.y==e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}},_splitBranch:function(t){var e=null;1==t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)},_insertRegion:function(t,e){var i,s,n,o,a=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+a,n=t.range.minY,o=t.range.minY+a;break;case"NE":i=t.range.minX+a,s=t.range.maxX,n=t.range.minY,o=t.range.minY+a;break;case"SW":i=t.range.minX,s=t.range.minX+a,n=t.range.minY+a,o=t.range.maxY;break;case"SE":i=t.range.minX+a,s=t.range.maxX,n=t.range.minY+a,o=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:n,maxY:o},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},_drawTree:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},_drawBranch:function(t,e,i){void 0===i&&(i="#FF0000"),4==t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}},repulsionMixin={_calculateNodeForces:function(){var t,e,i,s,n,o,a,r,h,d,c,l=this.calculationNodes,u=this.calculationNodeIndices,p=-2/3,g=4/3,m=this.constants.physics.repulsion.nodeDistance,f=m;for(d=0;di&&(a=.5*f>i?1:v*i+g,a*=0==o?1:1+o*this.constants.clustering.forceAmplification,a/=i,s=t*a,n=e*a,r.fx-=s,r.fy-=n,h.fx+=s,h.fy+=n)}}},HierarchicalLayoutMixin={_resetLevels:function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];0==e.preassignedLevel&&(e.level=-1)}},_setupHierarchicalLayout:function(){if(1==this.constants.hierarchicalLayout.enabled){"RL"==this.constants.hierarchicalLayout.direction||"DU"==this.constants.hierarchicalLayout.direction?this.constants.hierarchicalLayout.levelSeparation*=-1:this.constants.hierarchicalLayout.levelSeparation=Math.abs(this.constants.hierarchicalLayout.levelSeparation);var t,e,i=0,s=!1,n=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:n=!0,is&&(o.xFixed=!1,o.x=i[o.level].minPos,a=!0):o.yFixed&&o.level>s&&(o.yFixed=!1,o.y=i[o.level].minPos,a=!0),1==a&&(i[o.level].minPos+=i[o.level].nodeSpacing,o.edges.length>1&&this._placeBranchNodes(o.edges,o.id,i,o.level))}},_setLevel:function(t,e,i){for(var s=0;st)&&(n.level=t,e.length>1&&this._setLevel(t+1,n.edges,n.id))}},_restoreNodes:function(){for(nodeId in this.nodes)this.nodes.hasOwnProperty(nodeId)&&(this.nodes[nodeId].xFixed=!1,this.nodes[nodeId].yFixed=!1)}},manipulationMixin={_clearManipulatorBar:function(){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild)},_restoreOverloadedFunctions:function(){for(var t in this.cachedFunctions)this.cachedFunctions.hasOwnProperty(t)&&(this[t]=this.cachedFunctions[t])},_toggleEditMode:function(){this.editMode=!this.editMode;var t=document.getElementById("graph-manipulationDiv"),e=document.getElementById("graph-manipulation-closeDiv"),i=document.getElementById("graph-manipulation-editMode");1==this.editMode?(t.style.display="block",e.style.display="block",i.style.display="none",e.onclick=this._toggleEditMode.bind(this)):(t.style.display="none",e.style.display="none",i.style.display="block",e.onclick=null),this._createManipulatorBar()},_createManipulatorBar:function(){if(this.boundFunction&&this.off("select",this.boundFunction),this._restoreOverloadedFunctions(),this.freezeSimulation=!1,this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,1==this.editMode){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDiv.innerHTML=""+this.constants.labels.add+"
"+this.constants.labels.link+"",1==this._getSelectedNodeCount()&&this.triggerFunctions.edit&&(this.manipulationDiv.innerHTML+="
"+this.constants.labels.editNode+""),0==this._selectionIsEmpty()&&(this.manipulationDiv.innerHTML+="
"+this.constants.labels.del+"");var t=document.getElementById("graph-manipulate-addNode");t.onclick=this._createAddNodeToolbar.bind(this);var e=document.getElementById("graph-manipulate-connectNode");if(e.onclick=this._createAddEdgeToolbar.bind(this),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit){var i=document.getElementById("graph-manipulate-editNode");i.onclick=this._editNode.bind(this)}if(0==this._selectionIsEmpty()){var s=document.getElementById("graph-manipulate-delete");s.onclick=this._deleteSelected.bind(this)}var n=document.getElementById("graph-manipulation-closeDiv");n.onclick=this._toggleEditMode.bind(this),this.boundFunction=this._createManipulatorBar.bind(this),this.on("select",this.boundFunction)}else{this.editModeDiv.innerHTML=""+this.constants.labels.edit+"";var o=document.getElementById("graph-manipulate-editModeButton");o.onclick=this._toggleEditMode.bind(this)}},_createAddNodeToolbar:function(){this._clearManipulatorBar(),this.boundFunction&&this.off("select",this.boundFunction),this.manipulationDiv.innerHTML=""+this.constants.labels.back+"
"+this.constants.labels.addDescription+"";var t=document.getElementById("graph-manipulate-back");t.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._addNode.bind(this),this.on("select",this.boundFunction)},_createAddEdgeToolbar:function(){this._clearManipulatorBar(),this._unselectAll(!0),this.freezeSimulation=!0,this.boundFunction&&this.off("select",this.boundFunction),this._unselectAll(),this.forceAppendSelection=!1,this.blockConnectingEdgeSelection=!0,this.manipulationDiv.innerHTML=""+this.constants.labels.back+"
"+this.constants.labels.linkDescription+"";var t=document.getElementById("graph-manipulate-back");t.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._handleConnect.bind(this),this.on("select",this.boundFunction),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._handleOnRelease=this._handleOnRelease,this._handleTouch=this._handleConnect,this._handleOnRelease=this._finishConnect,this._redraw()},_handleConnect:function(t){if(0==this._getSelectedNodeCount()){var e=this._getNodeAt(t);null!=e&&(e.clusterSize>1?alert("Cannot create edges to a cluster."):(this._selectObject(e,!1),this.sectors.support.nodes.targetNode=new Node({id:"targetNode"},{},{},this.constants),this.sectors.support.nodes.targetNode.x=e.x,this.sectors.support.nodes.targetNode.y=e.y,this.sectors.support.nodes.targetViaNode=new Node({id:"targetViaNode"},{},{},this.constants),this.sectors.support.nodes.targetViaNode.x=e.x,this.sectors.support.nodes.targetViaNode.y=e.y,this.sectors.support.nodes.targetViaNode.parentEdgeId="connectionEdge",this.edges.connectionEdge=new Edge({id:"connectionEdge",from:e.id,to:this.sectors.support.nodes.targetNode.id},this,this.constants),this.edges.connectionEdge.from=e,this.edges.connectionEdge.connected=!0,this.edges.connectionEdge.smooth=!0,this.edges.connectionEdge.selected=!0,this.edges.connectionEdge.to=this.sectors.support.nodes.targetNode,this.edges.connectionEdge.via=this.sectors.support.nodes.targetViaNode,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center);this.sectors.support.nodes.targetNode.x=this._XconvertDOMtoCanvas(e.x),this.sectors.support.nodes.targetNode.y=this._YconvertDOMtoCanvas(e.y),this.sectors.support.nodes.targetViaNode.x=.5*(this._XconvertDOMtoCanvas(e.x)+this.edges.connectionEdge.from.x),this.sectors.support.nodes.targetViaNode.y=this._YconvertDOMtoCanvas(e.y)},this.moving=!0,this.start()))}},_finishConnect:function(t){if(1==this._getSelectedNodeCount()){this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var e=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var i=this._getNodeAt(t);null!=i&&(i.clusterSize>1?alert("Cannot create edges to a cluster."):(this._createEdge(e,i.id),this._createManipulatorBar())),this._unselectAll()}},_addNode:function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:util.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add)if(2==this.triggerFunctions.add.length){var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else alert(this.constants.labels.addError),this._createManipulatorBar(),this.moving=!0,this.start();else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},_createEdge:function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect)if(2==this.triggerFunctions.connect.length){var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else alert(this.constants.labels.linkError),this.moving=!0,this.start();else this.edgesData.add(i),this.moving=!0,this.start()}},_editNode:function(){if(this.triggerFunctions.edit&&1==this.editMode){var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.group,shape:t.shape,color:{background:t.color.background,border:t.color.border,highlight:{background:t.color.highlight.background,border:t.color.highlight.border}}};if(2==this.triggerFunctions.edit.length){var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else alert(this.constants.labels.editError)}else alert(this.constants.labels.editBoundError)},_deleteSelected:function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.labels.deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};(this.triggerFunctions.del.length=2)?this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()}):alert(this.constants.labels.deleteError)}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},SectorMixin={_putDataInSector:function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},_switchToSector:function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},_switchToActiveSector:function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},_switchToSupportSector:function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},_switchToFrozenSector:function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},_loadLatestSector:function(){this._switchToSector(this._sector())},_sector:function(){return this.activeSector[this.activeSector.length-1]},_previousSector:function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},_setActiveSector:function(t){this.activeSector.push(t)},_forgetLastSector:function(){this.activeSector.pop()},_createNewSector:function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new Node({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},_deleteActiveSector:function(t){delete this.sectors.active[t]},_deleteFrozenSector:function(t){delete this.sectors.frozen[t]},_freezeSector:function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},_activateSector:function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},_mergeThisWithFrozen:function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},_doInSupportSector:function(t,e){if(void 0===e)this._switchToSupportSector(),this[t]();else{this._switchToSupportSector();var i=Array.prototype.splice.call(arguments,1);i.length>1?this[t](i[0],i[1]):this[t](e)}this._loadLatestSector()},_doInAllFrozenSectors:function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},_doInAllSectors:function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},_clearNodeIndexList:function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},_drawSectorNodes:function(t,e){var i,s=1e9,n=-1e9,o=1e9,a=-1e9;for(var r in this.sectors[e])if(this.sectors[e].hasOwnProperty(r)&&void 0!==this.sectors[e][r].drawingNode){this._switchToSector(r,e),s=1e9,n=-1e9,o=1e9,a=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),o>i.x-.5*i.width&&(o=i.x-.5*i.width),ai.y-.5*i.height&&(s=i.y-.5*i.height),nt&&s>n;)n%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),i=this.nodeIndices.length,n+=1;n>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},openCluster:function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},updateClustersDefault:function(){1==this.constants.clustering.enabled&&this.updateClusters(0,!1,!1)},increaseClusterLevel:function(){this.updateClusters(-1,!1,!0)},decreaseClusterLevel:function(){this.updateClusters(1,!1,!0)},updateClusters:function(t,e,i,s){var n=this.moving,o=this.nodeIndices.length;this.previousScale>this.scale&&0==t&&this._collapseSector(),this.previousScale>this.scale||-1==t?this._formClusters(i):(this.previousScalethis.scale||-1==t)&&(this._aggregateHubs(i),this._updateNodeIndexList()),(this.previousScale>this.scale||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},_aggregateHubs:function(t){this._getHubSize(),this._formClustersByHub(t,!1)},forceAggregateHubs:function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},_openClustersBySize:function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},_openClusters:function(t,e){for(var i=0;i1&&(t.clusterSizei)){var a=o.from,r=o.to;o.to.mass>o.from.mass&&(a=o.to,r=o.from),1==r.dynamicEdgesLength?this._addToCluster(a,r,!1):1==a.dynamicEdgesLength&&this._addToCluster(r,a,!1)}}},_forceClustersByZoom:function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdgesLength&&0!=e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.mass>e.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},_clusterToSmallestNeighbour:function(t){for(var e=-1,i=null,s=0;sn.clusterSessions.length&&(e=n.clusterSessions.length,i=n)}null!=n&&void 0!==this.nodes[n.id]&&this._addToCluster(n,t,!0)},_formClustersByHub:function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},_formClusterFromHub:function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdgesLength>=this.hubThreshold&&0==i||t.dynamicEdgesLength==this.hubThreshold&&1==i){for(var n,o,a,r=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],c=t.dynamicEdges.length,l=0;c>l;l++)d.push(t.dynamicEdges[l].id);if(0==e)for(h=!1,l=0;c>l;l++){var u=this.edges[d[l]];if(void 0!==u&&u.connected&&u.toId!=u.fromId&&(n=u.to.x-u.from.x,o=u.to.y-u.from.y,a=Math.sqrt(n*n+o*o),r>a)){h=!0;break}}if(!e&&h||e)for(l=0;c>l;l++)if(u=this.edges[d[l]],void 0!==u){var p=this.nodes[u.fromId==t.id?u.toId:u.fromId];p.dynamicEdges.length<=this.hubThreshold+s&&p.id!=t.id&&this._addToCluster(t,p,e)}}},_addToCluster:function(t,e,i){t.containedNodes[e.id]=e;for(var s=0;s1)for(var s=0;s1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},normalizeClusterLevels:function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var n=this.nodeIndices.length,o=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=o.dynamicEdgesLength),t+=o.dynamicEdgesLength,e+=Math.pow(o.dynamicEdgesLength,2),i+=1}t/=i,e/=i;var a=e-Math.pow(t,2),r=Math.sqrt(a);this.hubThreshold=Math.floor(t+2*r),this.hubThreshold>s&&(this.hubThreshold=s)},_reduceAmountOfChains:function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t);for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},_getChainFraction:function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&(t+=1),e+=1);return t/e}},SelectionMixin={_getNodesOverlappingWith:function(t,e){var i=this.nodes;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},_getAllNodesOverlappingWith:function(t){var e=[];return this._doInAllActiveSectors("_getNodesOverlappingWith",t,e),e},_pointerToPositionObject:function(t){var e=this._XconvertDOMtoCanvas(t.x),i=this._YconvertDOMtoCanvas(t.y);return{left:e,top:i,right:e,bottom:i}},_getNodeAt:function(t){var e=this._pointerToPositionObject(t),i=this._getAllNodesOverlappingWith(e);return i.length>0?this.nodes[i[i.length-1]]:null},_getEdgesOverlappingWith:function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},_getAllEdgesOverlappingWith:function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},_getEdgeAt:function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},_addToSelection:function(t){t instanceof Node?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},_removeFromSelection:function(t){t instanceof Node?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},_unselectAll:function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},_unselectClusters:function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},_getSelectedNodeCount:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},_getSelectedNode:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},_getSelectedEdgeCount:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},_getSelectedObjectCount:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},_selectionIsEmpty:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},_clusterInSelection:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},_selectConnectedEdges:function(t){for(var e=0;ee;e++){s=t[e];var n=this.nodes[s];if(!n)throw new RangeError('Node with id "'+s+'" not found');this._selectObject(n,!0,!0)}this.redraw()},_updateSelection:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},NavigationMixin={_cleanNavigation:function(){var t=document.getElementById("graph-navigation_wrapper");null!=t&&this.containerElement.removeChild(t),document.onmouseup=null},_loadNavigationElements:function(){this._cleanNavigation(),this.navigationDivs={};var t=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],e=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","zoomExtent"];this.navigationDivs.wrapper=document.createElement("div"),this.navigationDivs.wrapper.id="graph-navigation_wrapper",this.navigationDivs.wrapper.style.position="absolute",this.navigationDivs.wrapper.style.width=this.frame.canvas.clientWidth+"px",this.navigationDivs.wrapper.style.height=this.frame.canvas.clientHeight+"px",this.containerElement.insertBefore(this.navigationDivs.wrapper,this.frame);for(var i=0;it.x&&(s=t.x),nt.y&&(e=t.y),i=this.constants.clustering.initialMaxNodes?49.07548/(n+142.05338)+91444e-8:12.662/(n+7.4147)+.0964822:1==this.constants.clustering.enabled&&n>=this.constants.clustering.initialMaxNodes?77.5271985/(n+187.266146)+476710517e-13:30.5062972/(n+19.93597763)+.08413486;var o=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);i*=o}else{var a=1.1*(Math.abs(s.minX)+Math.abs(s.maxX)),r=1.1*(Math.abs(s.minY)+Math.abs(s.maxY)),h=this.frame.canvas.clientWidth/a,d=this.frame.canvas.clientHeight/r;i=d>=h?h:d}i>1&&(i=1),this._setScale(i),this._centerGraph(s),0==e&&(this.moving=!0,this.start())},Graph.prototype._updateNodeIndexList=function(){this._clearNodeIndexList();for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodeIndices.push(t)},Graph.prototype.setData=function(t,e){if(void 0===e&&(e=!1),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=vis.util.DOTToGraph(t.dot);return void this.setData(i)}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);if(this._putDataInSector(),!e)if(this.stabilize){var s=this;setTimeout(function(){s._stabilize(),s.start()},0)}else this.start()},Graph.prototype.setOptions=function(t){if(t){var e;if(void 0!==t.width&&(this.width=t.width),void 0!==t.height&&(this.height=t.height),void 0!==t.stabilize&&(this.stabilize=t.stabilize),void 0!==t.selectable&&(this.selectable=t.selectable),void 0!==t.smoothCurves&&(this.constants.smoothCurves=t.smoothCurves),void 0!==t.freezeForStabilization&&(this.constants.freezeForStabilization=t.freezeForStabilization),void 0!==t.configurePhysics&&(this.constants.configurePhysics=t.configurePhysics),void 0!==t.stabilizationIterations&&(this.constants.stabilizationIterations=t.stabilizationIterations),void 0!==t.moveable&&(this.constants.moveable=t.moveable),void 0!==t.zoomable&&(this.constants.zoomable=t.zoomable),void 0!==t.labels)for(e in t.labels)t.labels.hasOwnProperty(e)&&(this.constants.labels[e]=t.labels[e]);if(t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),t.physics){if(t.physics.barnesHut){this.constants.physics.barnesHut.enabled=!0;for(e in t.physics.barnesHut)t.physics.barnesHut.hasOwnProperty(e)&&(this.constants.physics.barnesHut[e]=t.physics.barnesHut[e])}if(t.physics.repulsion){this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.repulsion)t.physics.repulsion.hasOwnProperty(e)&&(this.constants.physics.repulsion[e]=t.physics.repulsion[e])}if(t.physics.hierarchicalRepulsion){this.constants.hierarchicalLayout.enabled=!0,this.constants.physics.hierarchicalRepulsion.enabled=!0,this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.hierarchicalRepulsion)t.physics.hierarchicalRepulsion.hasOwnProperty(e)&&(this.constants.physics.hierarchicalRepulsion[e]=t.physics.hierarchicalRepulsion[e])}}if(t.hierarchicalLayout){this.constants.hierarchicalLayout.enabled=!0;for(e in t.hierarchicalLayout)t.hierarchicalLayout.hasOwnProperty(e)&&(this.constants.hierarchicalLayout[e]=t.hierarchicalLayout[e])}else void 0!==t.hierarchicalLayout&&(this.constants.hierarchicalLayout.enabled=!1);if(t.clustering){this.constants.clustering.enabled=!0;for(e in t.clustering)t.clustering.hasOwnProperty(e)&&(this.constants.clustering[e]=t.clustering[e])}else void 0!==t.clustering&&(this.constants.clustering.enabled=!1);if(t.navigation){this.constants.navigation.enabled=!0;for(e in t.navigation)t.navigation.hasOwnProperty(e)&&(this.constants.navigation[e]=t.navigation[e])}else void 0!==t.navigation&&(this.constants.navigation.enabled=!1);if(t.keyboard){this.constants.keyboard.enabled=!0;for(e in t.keyboard)t.keyboard.hasOwnProperty(e)&&(this.constants.keyboard[e]=t.keyboard[e])}else void 0!==t.keyboard&&(this.constants.keyboard.enabled=!1);if(t.dataManipulation){this.constants.dataManipulation.enabled=!0;for(e in t.dataManipulation)t.dataManipulation.hasOwnProperty(e)&&(this.constants.dataManipulation[e]=t.dataManipulation[e])}else void 0!==t.dataManipulation&&(this.constants.dataManipulation.enabled=!1);if(t.edges){for(e in t.edges)t.edges.hasOwnProperty(e)&&"object"!=typeof t.edges[e]&&(this.constants.edges[e]=t.edges[e]);void 0!==t.edges.color&&(util.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight))),t.edges.fontColor||void 0!==t.edges.color&&(util.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color)),t.edges.dash&&(void 0!==t.edges.dash.length&&(this.constants.edges.dash.length=t.edges.dash.length),void 0!==t.edges.dash.gap&&(this.constants.edges.dash.gap=t.edges.dash.gap),void 0!==t.edges.dash.altLength&&(this.constants.edges.dash.altLength=t.edges.dash.altLength))}if(t.nodes){for(e in t.nodes)t.nodes.hasOwnProperty(e)&&(this.constants.nodes[e]=t.nodes[e]);t.nodes.color&&(this.constants.nodes.color=util.parseColor(t.nodes.color))}if(t.groups)for(var i in t.groups)if(t.groups.hasOwnProperty(i)){var s=t.groups[i];this.groups.add(i,s)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=util.parseColor(t.tooltip.color))}}this._loadPhysicsSystem(),this._loadNavigationControls(),this._loadManipulationSystem(),this._configureSmoothCurves(),this._createKeyBinds(),this.setSize(this.width,this.height),this.moving=!0,this.start()},Graph.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="graph-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),!this.frame.canvas.getContext){var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}var e=this;this.drag={},this.pinch={},this.hammer=Hammer(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",e._onTap.bind(e)),this.hammer.on("doubletap",e._onDoubleTap.bind(e)),this.hammer.on("hold",e._onHold.bind(e)),this.hammer.on("pinch",e._onPinch.bind(e)),this.hammer.on("touch",e._onTouch.bind(e)),this.hammer.on("dragstart",e._onDragStart.bind(e)),this.hammer.on("drag",e._onDrag.bind(e)),this.hammer.on("dragend",e._onDragEnd.bind(e)),this.hammer.on("release",e._onRelease.bind(e)),this.hammer.on("mousewheel",e._onMouseWheel.bind(e)),this.hammer.on("DOMMouseScroll",e._onMouseWheel.bind(e)),this.hammer.on("mousemove",e._onMouseMoveTitle.bind(e)),this.containerElement.appendChild(this.frame)},Graph.prototype._createKeyBinds=function(){var t=this;this.mousetrap=mousetrap,this.mousetrap.reset(),1==this.constants.keyboard.enabled&&(this.mousetrap.bind("up",this._moveUp.bind(t),"keydown"),this.mousetrap.bind("up",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("down",this._moveDown.bind(t),"keydown"),this.mousetrap.bind("down",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("left",this._moveLeft.bind(t),"keydown"),this.mousetrap.bind("left",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("right",this._moveRight.bind(t),"keydown"),this.mousetrap.bind("right",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("=",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("=",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("-",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("-",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("[",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("[",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("]",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("]",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pageup",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("pageup",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.mousetrap.bind("escape",this._createManipulatorBar.bind(t)),this.mousetrap.bind("del",this._deleteSelected.bind(t)))},Graph.prototype._getPointer=function(t){return{x:t.pageX-vis.util.getAbsoluteLeft(this.frame.canvas),y:t.pageY-vis.util.getAbsoluteTop(this.frame.canvas)}},Graph.prototype._onTouch=function(t){this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),this._handleTouch(this.drag.pointer)},Graph.prototype._onDragStart=function(){this._handleDragStart()},Graph.prototype._handleDragStart=function(){var t=this.drag,e=this._getNodeAt(t.pointer);if(t.dragging=!0,t.selection=[],t.translation=this._getTranslation(),t.nodeId=null,null!=e){t.nodeId=e.id,e.isSelected()||this._selectObject(e,!1);for(var i in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(i)){var s=this.selectionObj.nodes[i],n={id:s.id,node:s,x:s.x,y:s.y,xFixed:s.xFixed,yFixed:s.yFixed};s.xFixed=!0,s.yFixed=!0,t.selection.push(n)}}},Graph.prototype._onDrag=function(t){this._handleOnDrag(t)},Graph.prototype._handleOnDrag=function(t){if(!this.drag.pinched){var e=this._getPointer(t.gesture.center),i=this,s=this.drag,n=s.selection;if(n&&n.length){var o=e.x-s.pointer.x,a=e.y-s.pointer.y;n.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._XconvertDOMtoCanvas(i._XconvertCanvasToDOM(t.x)+o)),t.yFixed||(e.y=i._YconvertDOMtoCanvas(i._YconvertCanvasToDOM(t.y)+a))}),this.moving||(this.moving=!0,this.start())}else if(1==this.constants.moveable){var r=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+r,this.drag.translation.y+h),this._redraw(),this.moving=!0,this.start()}}},Graph.prototype._onDragEnd=function(){this.drag.dragging=!1;var t=this.drag.selection;t&&t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed})},Graph.prototype._onTap=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleTap(e)},Graph.prototype._onDoubleTap=function(t){var e=this._getPointer(t.gesture.center);this._handleDoubleTap(e)},Graph.prototype._onHold=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleOnHold(e)},Graph.prototype._onRelease=function(t){var e=this._getPointer(t.gesture.center);this._handleOnRelease(e)},Graph.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},Graph.prototype._zoom=function(t,e){if(1==this.constants.zoomable){var i=this._getScale();1e-5>t&&(t=1e-5),t>10&&(t=10);var s=this._getTranslation(),n=t/i,o=(1-n)*e.x+s.x*n,a=(1-n)*e.y+s.y*n;return this.areaCenter={x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)},this._setScale(t),this._setTranslation(o,a),this.updateClustersDefault(),this._redraw(),t>i?this.emit("zoom",{direction:"+"}):this.emit("zoom",{direction:"-"}),t}},Graph.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this._getScale(),s=e/10;0>e&&(s/=1-s),i*=1+s;var n=util.fakeGesture(this,t),o=this._getPointer(n.center);this._zoom(i,o)}t.preventDefault()},Graph.prototype._onMouseMoveTitle=function(t){var e=util.fakeGesture(this,t),i=this._getPointer(e.center);this.popupNode&&this._checkHidePopup(i);var s=this,n=function(){s._checkShowPopup(i)};this.popupTimer&&clearInterval(this.popupTimer),this.drag.dragging||(this.popupTimer=setTimeout(n,this.constants.tooltip.delay))},Graph.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=this.popupNode;if(void 0==this.popupNode){var n=this.nodes;for(e in n)if(n.hasOwnProperty(e)){var o=n[e];if(void 0!==o.getTitle()&&o.isOverlappingWith(i)){this.popupNode=o;break}}}if(void 0===this.popupNode){var a=this.edges;for(e in a)if(a.hasOwnProperty(e)){var r=a[e];if(r.connected&&void 0!==r.getTitle()&&r.isOverlappingWith(i)){this.popupNode=r;break}}}if(this.popupNode){if(this.popupNode!=s){var h=this;h.popup||(h.popup=new Popup(h.frame,h.constants.tooltip)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupNode.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},Graph.prototype._checkHidePopup=function(t){this.popupNode&&this._getNodeAt(t)||(this.popupNode=void 0,this.popup&&this.popup.hide())},Graph.prototype.setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,void 0!==this.manipulationDiv&&(this.manipulationDiv.style.width=this.frame.canvas.clientWidth+"px"),void 0!==this.navigationDivs&&void 0!==this.navigationDivs.wrapper&&(this.navigationDivs.wrapper.style.width=this.frame.canvas.clientWidth+"px",this.navigationDivs.wrapper.style.height=this.frame.canvas.clientHeight+"px"),this.emit("resize",{width:this.frame.canvas.width,height:this.frame.canvas.height})},Graph.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof DataSet||t instanceof DataView)this.nodesData=t;else if(t instanceof Array)this.nodesData=new DataSet,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new DataSet}if(e&&util.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.nodes={},this.nodesData){var i=this;util.forEach(this.nodesListeners,function(t,e){i.nodesData.on(e,t)});var s=this.nodesData.getIds();this._addNodes(s)}this._updateSelection()},Graph.prototype._addNodes=function(t){for(var e,i=0,s=t.length;s>i;i++){e=t[i];var n=this.nodesData.get(e),o=new Node(n,this.images,this.groups,this.constants);if(this.nodes[e]=o,!(0!=o.xFixed&&0!=o.yFixed||null!==o.x&&null!==o.y)){var a=1*t.length,r=2*Math.PI*Math.random();0==o.xFixed&&(o.x=a*Math.cos(r)),0==o.yFixed&&(o.y=a*Math.sin(r))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.nodes),this.updateLabels()},Graph.prototype._updateNodes=function(t){for(var e=this.nodes,i=this.nodesData,s=0,n=t.length;n>s;s++){var o=t[s],a=e[o],r=i.get(o);a?a.setProperties(r,this.constants):(a=new Node(properties,this.images,this.groups,this.constants),e[o]=a)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._reconnectEdges(),this._updateValueRange(e)},Graph.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,s=t.length;s>i;i++){var n=t[i];delete e[n]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},Graph.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof DataSet||t instanceof DataView)this.edgesData=t;else if(t instanceof Array)this.edgesData=new DataSet,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new DataSet}if(e&&util.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.edges={},this.edgesData){var i=this;util.forEach(this.edgesListeners,function(t,e){i.edgesData.on(e,t)});var s=this.edgesData.getIds();this._addEdges(s)}this._reconnectEdges()},Graph.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,n=t.length;n>s;s++){var o=t[s],a=e[o];a&&a.disconnect();var r=i.get(o,{showInternalIds:!0});e[o]=new Edge(r,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},Graph.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,n=t.length;n>s;s++){var o=t[s],a=i.get(o),r=e[o];r?(r.disconnect(),r.setProperties(a,this.constants),r.connect()):(r=new Edge(a,this,this.constants),this.edges[o]=r)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},Graph.prototype._removeEdges=function(t){for(var e=this.edges,i=0,s=t.length;s>i;i++){var n=t[i],o=e[n];o&&(null!=o.via&&delete this.sectors.support.nodes[o.via.id],o.disconnect(),delete e[n])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},Graph.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var s=i[t];s.from=null,s.to=null,s.connect()}},Graph.prototype._updateValueRange=function(t){var e,i=void 0,s=void 0;for(e in t)if(t.hasOwnProperty(e)){var n=t[e].getValue();void 0!==n&&(i=void 0===i?n:Math.min(n,i),s=void 0===s?n:Math.max(n,s))}if(void 0!==i&&void 0!==s)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,s)},Graph.prototype.redraw=function(){this.setSize(this.width,this.height),this._redraw()},Graph.prototype._redraw=function(){var t=this.frame.canvas.getContext("2d"),e=this.frame.canvas.width,i=this.frame.canvas.height;t.clearRect(0,0,e,i),t.save(),t.translate(this.translation.x,this.translation.y),t.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight)},this._doInAllSectors("_drawAllSectorNodes",t),this._doInAllSectors("_drawEdges",t),this._doInAllSectors("_drawNodes",t,!1),t.restore()},Graph.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},Graph.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},Graph.prototype._setScale=function(t){this.scale=t},Graph.prototype._getScale=function(){return this.scale},Graph.prototype._XconvertDOMtoCanvas=function(t){return(t-this.translation.x)/this.scale},Graph.prototype._XconvertCanvasToDOM=function(t){return t*this.scale+this.translation.x},Graph.prototype._YconvertDOMtoCanvas=function(t){return(t-this.translation.y)/this.scale},Graph.prototype._YconvertCanvasToDOM=function(t){return t*this.scale+this.translation.y},Graph.prototype.canvasToDOM=function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},Graph.prototype.DOMtoCanvas=function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},Graph.prototype._drawNodes=function(t,e){void 0===e&&(e=!1);var i=this.nodes,s=[];for(var n in i)i.hasOwnProperty(n)&&(i[n].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),i[n].isSelected()?s.push(n):(i[n].inArea()||e)&&i[n].draw(t));for(var o=0,a=s.length;a>o;o++)(i[s[o]].inArea()||e)&&i[s[o]].draw(t)},Graph.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];s.setScale(this.scale),s.connected&&e[i].draw(t)}},Graph.prototype._stabilize=function(){1==this.constants.freezeForStabilization&&this._freezeDefinedNodes();for(var t=0;this.moving&&t0)for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStepLimited(e,this.constants.maxVelocity),s=!0);else for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStep(e),s=!0);if(1==s){var n=this.constants.minVelocity/Math.max(this.scale,.05);this.moving=n>.5*this.constants.maxVelocity?!0:this._isMoving(n)}},Graph.prototype._physicsTick=function(){this.freezeSimulation||this.moving&&(this._doInAllActiveSectors("_initializeForceCalculation"),this._doInAllActiveSectors("_discreteStepNodes"),this.constants.smoothCurves&&this._doInSupportSector("_discreteStepNodes"),this._findCenter(this._getRange()))},Graph.prototype._animationStep=function(){this.timer=void 0,this._handleNavigation(),this.start();var t=Date.now(),e=1;this._physicsTick();for(var i=Date.now()-t;is;++s)i[s].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},{}],3:[function(t,e){!function(t,i){"use strict";function s(){if(!n.READY){n.event.determineEventTypes();for(var t in n.gestures)n.gestures.hasOwnProperty(t)&&n.detection.register(n.gestures[t]);n.event.onTouch(n.DOCUMENT,n.EVENT_MOVE,n.detection.detect),n.event.onTouch(n.DOCUMENT,n.EVENT_END,n.detection.detect),n.READY=!0}}var n=function(t,e){return new n.Instance(t,e||{})};n.defaults={stop_browser_behavior:{userSelect:"none",touchAction:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},n.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,n.HAS_TOUCHEVENTS="ontouchstart"in t,n.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i,n.NO_MOUSEEVENTS=n.HAS_TOUCHEVENTS&&navigator.userAgent.match(n.MOBILE_REGEX),n.EVENT_TYPES={},n.DIRECTION_DOWN="down",n.DIRECTION_LEFT="left",n.DIRECTION_UP="up",n.DIRECTION_RIGHT="right",n.POINTER_MOUSE="mouse",n.POINTER_TOUCH="touch",n.POINTER_PEN="pen",n.EVENT_START="start",n.EVENT_MOVE="move",n.EVENT_END="end",n.DOCUMENT=document,n.plugins={},n.READY=!1,n.Instance=function(t,e){var i=this;return s(),this.element=t,this.enabled=!0,this.options=n.utils.extend(n.utils.extend({},n.defaults),e||{}),this.options.stop_browser_behavior&&n.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),n.event.onTouch(t,n.EVENT_START,function(t){i.enabled&&n.detection.startDetect(i,t)}),this},n.Instance.prototype={on:function(t,e){for(var i=t.split(" "),s=0;s0&&e==n.EVENT_END?e=n.EVENT_MOVE:c||(e=n.EVENT_END),c||null===o?o=h:h=o,i.call(n.detection,s.collectEventData(t,e,h)),n.HAS_POINTEREVENTS&&e==n.EVENT_END&&(c=n.PointerEvent.updatePointer(e,h))),c||(o=null,a=!1,r=!1,n.PointerEvent.reset())}})},determineEventTypes:function(){var t;t=n.HAS_POINTEREVENTS?n.PointerEvent.getEvents():n.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],n.EVENT_TYPES[n.EVENT_START]=t[0],n.EVENT_TYPES[n.EVENT_MOVE]=t[1],n.EVENT_TYPES[n.EVENT_END]=t[2]},getTouchList:function(t){return n.HAS_POINTEREVENTS?n.PointerEvent.getTouchList():t.touches?t.touches:[{identifier:1,pageX:t.pageX,pageY:t.pageY,target:t.target}]},collectEventData:function(t,e,i){var s=this.getTouchList(i,e),o=n.POINTER_TOUCH;return(i.type.match(/mouse/)||n.PointerEvent.matchType(n.POINTER_MOUSE,i))&&(o=n.POINTER_MOUSE),{center:n.utils.getCenter(s),timeStamp:(new Date).getTime(),target:i.target,touches:s,eventType:e,pointerType:o,srcEvent:i,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault&&this.srcEvent.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return n.detection.stopDetect()}}}},n.PointerEvent={pointers:{},getTouchList:function(){var t=this,e=[];return Object.keys(t.pointers).sort().forEach(function(i){e.push(t.pointers[i])}),e},updatePointer:function(t,e){return t==n.EVENT_END?this.pointers={}:(e.identifier=e.pointerId,this.pointers[e.pointerId]=e),Object.keys(this.pointers).length},matchType:function(t,e){if(!e.pointerType)return!1;var i={};return i[n.POINTER_MOUSE]=e.pointerType==e.MSPOINTER_TYPE_MOUSE||e.pointerType==n.POINTER_MOUSE,i[n.POINTER_TOUCH]=e.pointerType==e.MSPOINTER_TYPE_TOUCH||e.pointerType==n.POINTER_TOUCH,i[n.POINTER_PEN]=e.pointerType==e.MSPOINTER_TYPE_PEN||e.pointerType==n.POINTER_PEN,i[t]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},n.utils={extend:function(t,e,s){for(var n in e)t[n]!==i&&s||(t[n]=e[n]);return t},hasParent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1},getCenter:function(t){for(var e=[],i=[],s=0,n=t.length;n>s;s++)e.push(t[s].pageX),i.push(t[s].pageY);return{pageX:(Math.min.apply(Math,e)+Math.max.apply(Math,e))/2,pageY:(Math.min.apply(Math,i)+Math.max.apply(Math,i))/2}},getVelocity:function(t,e,i){return{x:Math.abs(e/t)||0,y:Math.abs(i/t)||0}},getAngle:function(t,e){var i=e.pageY-t.pageY,s=e.pageX-t.pageX;return 180*Math.atan2(i,s)/Math.PI},getDirection:function(t,e){var i=Math.abs(t.pageX-e.pageX),s=Math.abs(t.pageY-e.pageY);return i>=s?t.pageX-e.pageX>0?n.DIRECTION_LEFT:n.DIRECTION_RIGHT:t.pageY-e.pageY>0?n.DIRECTION_UP:n.DIRECTION_DOWN},getDistance:function(t,e){var i=e.pageX-t.pageX,s=e.pageY-t.pageY;return Math.sqrt(i*i+s*s)},getScale:function(t,e){return t.length>=2&&e.length>=2?this.getDistance(e[0],e[1])/this.getDistance(t[0],t[1]):1},getRotation:function(t,e){return t.length>=2&&e.length>=2?this.getAngle(e[1],e[0])-this.getAngle(t[1],t[0]):0},isVertical:function(t){return t==n.DIRECTION_UP||t==n.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(t,e){var i,s=["webkit","khtml","moz","ms","o",""];if(e&&t.style){for(var n=0;ni;i++){var o=this.gestures[i];if(!this.stopped&&e[o.name]!==!1&&o.handler.call(o,t,this.current.inst)===!1){this.stopDetect();break}}return this.current&&(this.current.lastEvent=t),t.eventType==n.EVENT_END&&!t.touches.length-1&&this.stopDetect(),t}},stopDetect:function(){this.previous=n.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(t){var e=this.current.startEvent;if(e&&(t.touches.length!=e.touches.length||t.touches===e.touches)){e.touches=[];for(var i=0,s=t.touches.length;s>i;i++)e.touches.push(n.utils.extend({},t.touches[i]))}var o=t.timeStamp-e.timeStamp,a=t.center.pageX-e.center.pageX,r=t.center.pageY-e.center.pageY,h=n.utils.getVelocity(o,a,r);return n.utils.extend(t,{deltaTime:o,deltaX:a,deltaY:r,velocityX:h.x,velocityY:h.y,distance:n.utils.getDistance(e.center,t.center),angle:n.utils.getAngle(e.center,t.center),direction:n.utils.getDirection(e.center,t.center),scale:n.utils.getScale(e.touches,t.touches),rotation:n.utils.getRotation(e.touches,t.touches),startEvent:e}),t},register:function(t){var e=t.defaults||{};return e[t.name]===i&&(e[t.name]=!0),n.utils.extend(n.defaults,e,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.indexe.index?1:0}),this.gestures}},n.gestures=n.gestures||{},n.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:1},timer:null,handler:function(t,e){switch(t.eventType){case n.EVENT_START:clearTimeout(this.timer),n.detection.current.name=this.name,this.timer=setTimeout(function(){"hold"==n.detection.current.name&&e.trigger("hold",t)},e.options.hold_timeout);break;case n.EVENT_MOVE:t.distance>e.options.hold_threshold&&clearTimeout(this.timer);break;case n.EVENT_END:clearTimeout(this.timer)}}},n.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,e){if(t.eventType==n.EVENT_END){var i=n.detection.previous,s=!1;if(t.deltaTime>e.options.tap_max_touchtime||t.distance>e.options.tap_max_distance)return;i&&"tap"==i.name&&t.timeStamp-i.lastEvent.timeStamp0&&t.touches.length>e.options.swipe_max_touches)return;(t.velocityX>e.options.swipe_velocity||t.velocityY>e.options.swipe_velocity)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},n.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,drag_max_touches:1,drag_block_horizontal:!1,drag_block_vertical:!1,drag_lock_to_axis:!1,drag_lock_min_distance:25},triggered:!1,handler:function(t,e){if(n.detection.current.name!=this.name&&this.triggered)return e.trigger(this.name+"end",t),void(this.triggered=!1);if(!(e.options.drag_max_touches>0&&t.touches.length>e.options.drag_max_touches))switch(t.eventType){case n.EVENT_START:this.triggered=!1;break;case n.EVENT_MOVE:if(t.distancee.options.transform_min_rotation&&e.trigger("rotate",t),i>e.options.transform_min_scale&&(e.trigger("pinch",t),e.trigger("pinch"+(t.scale<1?"in":"out"),t));break;case n.EVENT_END:this.triggered&&e.trigger(this.name+"end",t),this.triggered=!1}}},n.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,e){return e.options.prevent_mouseevents&&t.pointerType==n.POINTER_MOUSE?void t.stopDetect():(e.options.prevent_default&&t.preventDefault(),void(t.eventType==n.EVENT_START&&e.trigger(this.name,t)))}},n.gestures.Release={name:"release",index:1/0,handler:function(t,e){t.eventType==n.EVENT_END&&e.trigger(this.name,t)}},"object"==typeof e&&"object"==typeof e.exports?e.exports=n:(t.Hammer=n,"function"==typeof t.define&&t.define.amd&&t.define("hammer",[],function(){return n}))}(this)},{}],4:[function(t,e){var i="undefined"!=typeof self?self:"undefined"!=typeof window?window:{};(function(s){function n(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function o(t,e){function i(){le.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}var s=!0;return l(function(){return s&&(i(),s=!1),e.apply(this,arguments)},e)}function a(t,e){return function(i){return g(t.call(this,i),e)}}function r(t,e){return function(i){return this.lang().ordinal(t.call(this,i),e)}}function h(){}function d(t){C(t),l(this,t)}function c(t){var e=b(t),i=e.year||0,s=e.quarter||0,n=e.month||0,o=e.week||0,a=e.day||0,r=e.hour||0,h=e.minute||0,d=e.second||0,c=e.millisecond||0;this._milliseconds=+c+1e3*d+6e4*h+36e5*r,this._days=+a+7*o,this._months=+n+3*s+12*i,this._data={},this._bubble()}function l(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return e.hasOwnProperty("toString")&&(t.toString=e.toString),e.hasOwnProperty("valueOf")&&(t.valueOf=e.valueOf),t}function u(t){var e,i={};for(e in t)t.hasOwnProperty(e)&&De.hasOwnProperty(e)&&(i[e]=t[e]);return i}function p(t){return 0>t?Math.ceil(t):Math.floor(t)}function g(t,e,i){for(var s=""+Math.abs(t),n=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&S(t[s])!==S(e[s]))&&a++;return a+o}function _(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=ti[t]||ei[e]||e}return t}function b(t){var e,i,s={};for(i in t)t.hasOwnProperty(i)&&(e=_(i),e&&(s[e]=t[i]));return s}function w(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}le[t]=function(n,o){var a,r,h=le.fn._lang[t],d=[];if("number"==typeof n&&(o=n,n=s),r=function(t){var e=le().utc().set(i,t);return h.call(le.fn._lang,e,n||"")},null!=o)return r(o);for(a=0;e>a;a++)d.push(r(a));return d}}function S(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function x(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function E(t,e,i){return ee(le([t,11,31+e-i]),e,i).week}function D(t){return T(t)?366:365}function T(t){return t%4===0&&t%100!==0||t%400===0}function C(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[ye]<0||t._a[ye]>11?ye:t._a[_e]<1||t._a[_e]>x(t._a[ve],t._a[ye])?_e:t._a[be]<0||t._a[be]>23?be:t._a[we]<0||t._a[we]>59?we:t._a[Se]<0||t._a[Se]>59?Se:t._a[xe]<0||t._a[xe]>999?xe:-1,t._pf._overflowDayOfYear&&(ve>e||e>_e)&&(e=_e),t._pf.overflow=e)}function M(t){return null==t._isValid&&(t._isValid=!isNaN(t._d.getTime())&&t._pf.overflow<0&&!t._pf.empty&&!t._pf.invalidMonth&&!t._pf.nullInput&&!t._pf.invalidFormat&&!t._pf.userInvalidated,t._strict&&(t._isValid=t._isValid&&0===t._pf.charsLeftOver&&0===t._pf.unusedTokens.length)),t._isValid}function I(t){return t?t.toLowerCase().replace("_","-"):t}function N(t,e){return e._isUTC?le(t).zone(e._offset||0):le(t).local()}function O(t,e){return e.abbr=t,Ee[t]||(Ee[t]=new h),Ee[t].set(e),Ee[t]}function L(t){delete Ee[t]}function k(e){var i,s,n,o,a=0,r=function(e){if(!Ee[e]&&Te)try{t("./lang/"+e)}catch(i){}return Ee[e]};if(!e)return le.fn._lang;if(!f(e)){if(s=r(e))return s;e=[e]}for(;a0;){if(s=r(o.slice(0,i).join("-")))return s;if(n&&n.length>=i&&y(o,n,!0)>=i-1)break;i--}a++}return le.fn._lang}function P(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function A(t){var e,i,s=t.match(Ne);for(e=0,i=s.length;i>e;e++)s[e]=oi[s[e]]?oi[s[e]]:P(s[e]);return function(n){var o="";for(e=0;i>e;e++)o+=s[e]instanceof Function?s[e].call(n,t):s[e];return o}}function z(t,e){return t.isValid()?(e=F(e,t.lang()),ii[e]||(ii[e]=A(e)),ii[e](t)):t.lang().invalidDate()}function F(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Oe.lastIndex=0;s>=0&&Oe.test(t);)t=t.replace(Oe,i),Oe.lastIndex=0,s-=1;return t}function R(t,e){var i,s=e._strict;switch(t){case"Q":return We;case"DDDD":return je;case"YYYY":case"GGGG":case"gggg":return s?Ve:Pe;case"Y":case"G":case"g":return Xe;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?Ue:Ae;case"S":if(s)return We;case"SS":if(s)return Be;case"SSS":if(s)return je;case"DDD":return ke;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Fe;case"a":case"A":return k(e._l)._meridiemParse;case"X":return Ye;case"Z":case"ZZ":return Re;case"T":return He;case"SSSS":return ze;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?Be:Le;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Le;case"Do":return Ge;default:return i=new RegExp(U(V(t.replace("\\","")),"i"))}}function H(t){t=t||"";var e=t.match(Re)||[],i=e[e.length-1]||[],s=(i+"").match(Je)||["-",0,0],n=+(60*s[1])+S(s[2]);return"+"===s[0]?-n:n}function Y(t,e,i){var s,n=i._a;switch(t){case"Q":null!=e&&(n[ye]=3*(S(e)-1));break;case"M":case"MM":null!=e&&(n[ye]=S(e)-1);break;case"MMM":case"MMMM":s=k(i._l).monthsParse(e),null!=s?n[ye]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(n[_e]=S(e));break;case"Do":null!=e&&(n[_e]=S(parseInt(e,10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=S(e));break;case"YY":n[ve]=le.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":n[ve]=S(e);break;case"a":case"A":i._isPm=k(i._l).isPM(e);break;case"H":case"HH":case"h":case"hh":n[be]=S(e);break;case"m":case"mm":n[we]=S(e);break;case"s":case"ss":n[Se]=S(e);break;case"S":case"SS":case"SSS":case"SSSS":n[xe]=S(1e3*("0."+e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=H(e);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":t=t.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":t=t.substr(0,2),e&&(i._w=i._w||{},i._w[t]=e)}}function G(t){var e,i,s,n,o,a,r,h,d,c,l=[];if(!t._d){for(s=B(t),t._w&&null==t._a[_e]&&null==t._a[ye]&&(o=function(e){var i=parseInt(e,10);return e?e.length<3?i>68?1900+i:2e3+i:i:null==t._a[ve]?le().weekYear():t._a[ve]},a=t._w,null!=a.GG||null!=a.W||null!=a.E?r=ie(o(a.GG),a.W||1,a.E,4,1):(h=k(t._l),d=null!=a.d?J(a.d,h):null!=a.e?parseInt(a.e,10)+h._week.dow:0,c=parseInt(a.w,10)||1,null!=a.d&&dD(n)&&(t._pf._overflowDayOfYear=!0),i=$(n,0,t._dayOfYear),t._a[ye]=i.getUTCMonth(),t._a[_e]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=l[e]=s[e];for(;7>e;e++)t._a[e]=l[e]=null==t._a[e]?2===e?1:0:t._a[e];l[be]+=S((t._tzm||0)/60),l[we]+=S((t._tzm||0)%60),t._d=(t._useUTC?$:K).apply(null,l)}}function W(t){var e;t._d||(e=b(t._i),t._a=[e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond],G(t))}function B(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function j(t){t._a=[],t._pf.empty=!0;var e,i,s,n,o,a=k(t._l),r=""+t._i,h=r.length,d=0;for(s=F(t._f,a).match(Ne)||[],e=0;e0&&t._pf.unusedInput.push(o),r=r.slice(r.indexOf(i)+i.length),d+=i.length),oi[n]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(n),Y(n,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(n);t._pf.charsLeftOver=h-d,r.length>0&&t._pf.unusedInput.push(r),t._isPm&&t._a[be]<12&&(t._a[be]+=12),t._isPm===!1&&12===t._a[be]&&(t._a[be]=0),G(t),C(t)}function V(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,n){return e||i||s||n})}function U(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function X(t){var e,i,s,o,a;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(o=0;oa)&&(s=a,i=e));l(t,i||e)}function q(t){var e,i,s=t._i,n=qe.exec(s);if(n){for(t._pf.iso=!0,e=0,i=Ke.length;i>e;e++)if(Ke[e][1].exec(s)){t._f=Ke[e][0]+(n[6]||" ");break}for(e=0,i=$e.length;i>e;e++)if($e[e][1].exec(s)){t._f+=$e[e][0];break}s.match(Re)&&(t._f+="Z"),j(t)}else le.createFromInputFallback(t)}function Z(t){var e=t._i,i=Ce.exec(e);e===s?t._d=new Date:i?t._d=new Date(+i[1]):"string"==typeof e?q(t):f(e)?(t._a=e.slice(0),G(t)):v(e)?t._d=new Date(+e):"object"==typeof e?W(t):"number"==typeof e?t._d=new Date(e):le.createFromInputFallback(t)}function K(t,e,i,s,n,o,a){var r=new Date(t,e,i,s,n,o,a);return 1970>t&&r.setFullYear(t),r}function $(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function J(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function Q(t,e,i,s,n){return n.relativeTime(e||1,!!i,t,s)}function te(t,e,i){var s=fe(Math.abs(t)/1e3),n=fe(s/60),o=fe(n/60),a=fe(o/24),r=fe(a/365),h=45>s&&["s",s]||1===n&&["m"]||45>n&&["mm",n]||1===o&&["h"]||22>o&&["hh",o]||1===a&&["d"]||25>=a&&["dd",a]||45>=a&&["M"]||345>a&&["MM",fe(a/30)]||1===r&&["y"]||["yy",r];return h[2]=e,h[3]=t>0,h[4]=i,Q.apply({},h)}function ee(t,e,i){var s,n=i-e,o=i-t.day();return o>n&&(o-=7),n-7>o&&(o+=7),s=le(t).add("d",o),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ie(t,e,i,s,n){var o,a,r=$(t,0,1).getUTCDay();return i=null!=i?i:n,o=n-r+(r>s?7:0)-(n>r?7:0),a=7*(e-1)+(i-n)+o+1,{year:a>0?t:t-1,dayOfYear:a>0?a:D(t-1)+a}}function se(t){var e=t._i,i=t._f;return null===e||i===s&&""===e?le.invalid({nullInput:!0}):("string"==typeof e&&(t._i=e=k().preparse(e)),le.isMoment(e)?(t=u(e),t._d=new Date(+e._d)):i?f(i)?X(t):j(t):Z(t),new d(t))}function ne(t,e){var i;return"string"==typeof e&&(e=t.lang().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),x(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function oe(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function ae(t,e,i){return"Month"===e?ne(t,i):t._d["set"+(t._isUTC?"UTC":"")+e](i)}function re(t,e){return function(i){return null!=i?(ae(this,t,i),le.updateOffset(this,e),this):oe(this,t)}}function he(t){le.duration.fn[t]=function(){return this._data[t]}}function de(t,e){le.duration.fn["as"+t]=function(){return+this/e}}function ce(t){"undefined"==typeof ender&&(ue=me.moment,me.moment=t?o("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",le):le)}for(var le,ue,pe,ge="2.6.0",me="undefined"!=typeof i?i:this,fe=Math.round,ve=0,ye=1,_e=2,be=3,we=4,Se=5,xe=6,Ee={},De={_isAMomentObject:null,_i:null,_f:null,_l:null,_strict:null,_isUTC:null,_offset:null,_pf:null,_lang:null},Te="undefined"!=typeof e&&e.exports,Ce=/^\/?Date\((\-?\d+)/i,Me=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Ie=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Ne=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,Oe=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,Le=/\d\d?/,ke=/\d{1,3}/,Pe=/\d{1,4}/,Ae=/[+\-]?\d{1,6}/,ze=/\d+/,Fe=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Re=/Z|[\+\-]\d\d:?\d\d/gi,He=/T/i,Ye=/[\+\-]?\d+(\.\d{1,3})?/,Ge=/\d{1,2}/,We=/\d/,Be=/\d\d/,je=/\d{3}/,Ve=/\d{4}/,Ue=/[+-]?\d{6}/,Xe=/[+-]?\d+/,qe=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ze="YYYY-MM-DDTHH:mm:ssZ",Ke=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],$e=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Je=/([\+\-]|\d\d)/gi,Qe=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),ti={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},ei={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},ii={},si="DDD w W M D d".split(" "),ni="M D H h m s w W".split(" "),oi={M:function(){return this.month()+1},MMM:function(t){return this.lang().monthsShort(this,t)},MMMM:function(t){return this.lang().months(this,t)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(t){return this.lang().weekdaysMin(this,t)},ddd:function(t){return this.lang().weekdaysShort(this,t)},dddd:function(t){return this.lang().weekdays(this,t)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return g(this.year()%100,2)},YYYY:function(){return g(this.year(),4)},YYYYY:function(){return g(this.year(),5)},YYYYYY:function(){var t=this.year(),e=t>=0?"+":"-";return e+g(Math.abs(t),6)},gg:function(){return g(this.weekYear()%100,2)},gggg:function(){return g(this.weekYear(),4)},ggggg:function(){return g(this.weekYear(),5)},GG:function(){return g(this.isoWeekYear()%100,2)},GGGG:function(){return g(this.isoWeekYear(),4)},GGGGG:function(){return g(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return S(this.milliseconds()/100)},SS:function(){return g(S(this.milliseconds()/10),2)},SSS:function(){return g(this.milliseconds(),3)},SSSS:function(){return g(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+g(S(t/60),2)+":"+g(S(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+g(S(t/60),2)+g(S(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},ai=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];si.length;)pe=si.pop(),oi[pe+"o"]=r(oi[pe],pe);for(;ni.length;)pe=ni.pop(),oi[pe+pe]=a(oi[pe],2);for(oi.DDDD=a(oi.DDD,3),l(h.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t){var e,i,s;for(this._monthsParse||(this._monthsParse=[]),e=0;12>e;e++)if(this._monthsParse[e]||(i=le.utc([2e3,e]),s="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[e]=new RegExp(s.replace(".",""),"i")),this._monthsParse[e].test(t))return e},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(t){return this._weekdays[t.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(t){return this._weekdaysShort[t.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(t){return this._weekdaysMin[t.day()]},weekdaysParse:function(t){var e,i,s;for(this._weekdaysParse||(this._weekdaysParse=[]),e=0;7>e;e++)if(this._weekdaysParse[e]||(i=le([2e3,1]).day(e),s="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(s.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e},isPM:function(t){return"p"===(t+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(t,e){var i=this._calendar[t];return"function"==typeof i?i.apply(e):i},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(t,e,i,s){var n=this._relativeTime[i];return"function"==typeof n?n(t,e,i,s):n.replace(/%d/i,t)},pastFuture:function(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)},ordinal:function(t){return this._ordinal.replace("%d",t)},_ordinal:"%d",preparse:function(t){return t},postformat:function(t){return t},week:function(t){return ee(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),le=function(t,e,i,o){var a;return"boolean"==typeof i&&(o=i,i=s),a={},a._isAMomentObject=!0,a._i=t,a._f=e,a._l=i,a._strict=o,a._isUTC=!1,a._pf=n(),se(a)},le.suppressDeprecationWarnings=!1,le.createFromInputFallback=o("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i) -}),le.utc=function(t,e,i,o){var a;return"boolean"==typeof i&&(o=i,i=s),a={},a._isAMomentObject=!0,a._useUTC=!0,a._isUTC=!0,a._l=i,a._i=t,a._f=e,a._strict=o,a._pf=n(),se(a).utc()},le.unix=function(t){return le(1e3*t)},le.duration=function(t,e){var i,s,n,o=t,a=null;return le.isDuration(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(o={},e?o[e]=t:o.milliseconds=t):(a=Me.exec(t))?(i="-"===a[1]?-1:1,o={y:0,d:S(a[_e])*i,h:S(a[be])*i,m:S(a[we])*i,s:S(a[Se])*i,ms:S(a[xe])*i}):(a=Ie.exec(t))&&(i="-"===a[1]?-1:1,n=function(t){var e=t&&parseFloat(t.replace(",","."));return(isNaN(e)?0:e)*i},o={y:n(a[2]),M:n(a[3]),d:n(a[4]),h:n(a[5]),m:n(a[6]),s:n(a[7]),w:n(a[8])}),s=new c(o),le.isDuration(t)&&t.hasOwnProperty("_lang")&&(s._lang=t._lang),s},le.version=ge,le.defaultFormat=Ze,le.momentProperties=De,le.updateOffset=function(){},le.lang=function(t,e){var i;return t?(e?O(I(t),e):null===e?(L(t),t="en"):Ee[t]||k(t),i=le.duration.fn._lang=le.fn._lang=k(t),i._abbr):le.fn._lang._abbr},le.langData=function(t){return t&&t._lang&&t._lang._abbr&&(t=t._lang._abbr),k(t)},le.isMoment=function(t){return t instanceof d||null!=t&&t.hasOwnProperty("_isAMomentObject")},le.isDuration=function(t){return t instanceof c},pe=ai.length-1;pe>=0;--pe)w(ai[pe]);le.normalizeUnits=function(t){return _(t)},le.invalid=function(t){var e=le.utc(0/0);return null!=t?l(e._pf,t):e._pf.userInvalidated=!0,e},le.parseZone=function(){return le.apply(null,arguments).parseZone()},le.parseTwoDigitYear=function(t){return S(t)+(S(t)>68?1900:2e3)},l(le.fn=d.prototype,{clone:function(){return le(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var t=le(this).utc();return 00:!1},parsingFlags:function(){return l({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(t){var e=z(this,t||le.defaultFormat);return this.lang().postformat(e)},add:function(t,e){var i;return i="string"==typeof t?le.duration(+e,t):le.duration(t,e),m(this,i,1),this},subtract:function(t,e){var i;return i="string"==typeof t?le.duration(+e,t):le.duration(t,e),m(this,i,-1),this},diff:function(t,e,i){var s,n,o=N(t,this),a=6e4*(this.zone()-o.zone());return e=_(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+o.daysInMonth()),n=12*(this.year()-o.year())+(this.month()-o.month()),n+=(this-le(this).startOf("month")-(o-le(o).startOf("month")))/s,n-=6e4*(this.zone()-le(this).startOf("month").zone()-(o.zone()-le(o).startOf("month").zone()))/s,"year"===e&&(n/=12)):(s=this-o,n="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-a)/864e5:"week"===e?(s-a)/6048e5:s),i?n:p(n)},from:function(t,e){return le.duration(this.diff(t)).lang(this.lang()._abbr).humanize(!e)},fromNow:function(t){return this.from(le(),t)},calendar:function(){var t=N(le(),this).startOf("day"),e=this.diff(t,"days",!0),i=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse";return this.format(this.lang().calendar(i,this))},isLeapYear:function(){return T(this.year())},isDST:function(){return this.zone()+le(t).startOf(e)},isBefore:function(t,e){return e="undefined"!=typeof e?e:"millisecond",+this.clone().startOf(e)<+le(t).startOf(e)},isSame:function(t,e){return e=e||"ms",+this.clone().startOf(e)===+N(t,this).startOf(e)},min:function(t){return t=le.apply(null,arguments),this>t?this:t},max:function(t){return t=le.apply(null,arguments),t>this?this:t},zone:function(t,e){var i=this._offset||0;return null==t?this._isUTC?i:this._d.getTimezoneOffset():("string"==typeof t&&(t=H(t)),Math.abs(t)<16&&(t=60*t),this._offset=t,this._isUTC=!0,i!==t&&(!e||this._changeInProgress?m(this,le.duration(i-t,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,le.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(t){return t=t?le(t).zone():0,(this.zone()-t)%60===0},daysInMonth:function(){return x(this.year(),this.month())},dayOfYear:function(t){var e=fe((le(this).startOf("day")-le(this).startOf("year"))/864e5)+1;return null==t?e:this.add("d",t-e)},quarter:function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},weekYear:function(t){var e=ee(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==t?e:this.add("y",t-e)},isoWeekYear:function(t){var e=ee(this,1,4).year;return null==t?e:this.add("y",t-e)},week:function(t){var e=this.lang().week(this);return null==t?e:this.add("d",7*(t-e))},isoWeek:function(t){var e=ee(this,1,4).week;return null==t?e:this.add("d",7*(t-e))},weekday:function(t){var e=(this.day()+7-this.lang()._week.dow)%7;return null==t?e:this.add("d",t-e)},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},isoWeeksInYear:function(){return E(this.year(),1,4)},weeksInYear:function(){var t=this._lang._week;return E(this.year(),t.dow,t.doy)},get:function(t){return t=_(t),this[t]()},set:function(t,e){return t=_(t),"function"==typeof this[t]&&this[t](e),this},lang:function(t){return t===s?this._lang:(this._lang=k(t),this)}}),le.fn.millisecond=le.fn.milliseconds=re("Milliseconds",!1),le.fn.second=le.fn.seconds=re("Seconds",!1),le.fn.minute=le.fn.minutes=re("Minutes",!1),le.fn.hour=le.fn.hours=re("Hours",!0),le.fn.date=re("Date",!0),le.fn.dates=o("dates accessor is deprecated. Use date instead.",re("Date",!0)),le.fn.year=re("FullYear",!0),le.fn.years=o("years accessor is deprecated. Use year instead.",re("FullYear",!0)),le.fn.days=le.fn.day,le.fn.months=le.fn.month,le.fn.weeks=le.fn.week,le.fn.isoWeeks=le.fn.isoWeek,le.fn.quarters=le.fn.quarter,le.fn.toJSON=le.fn.toISOString,l(le.duration.fn=c.prototype,{_bubble:function(){var t,e,i,s,n=this._milliseconds,o=this._days,a=this._months,r=this._data;r.milliseconds=n%1e3,t=p(n/1e3),r.seconds=t%60,e=p(t/60),r.minutes=e%60,i=p(e/60),r.hours=i%24,o+=p(i/24),r.days=o%30,a+=p(o/30),r.months=a%12,s=p(a/12),r.years=s},weeks:function(){return p(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*S(this._months/12)},humanize:function(t){var e=+this,i=te(e,!t,this.lang());return t&&(i=this.lang().pastFuture(e,i)),this.lang().postformat(i)},add:function(t,e){var i=le.duration(t,e);return this._milliseconds+=i._milliseconds,this._days+=i._days,this._months+=i._months,this._bubble(),this},subtract:function(t,e){var i=le.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=_(t),this[t.toLowerCase()+"s"]()},as:function(t){return t=_(t),this["as"+t.charAt(0).toUpperCase()+t.slice(1)+"s"]()},lang:le.fn.lang,toIsoString:function(){var t=Math.abs(this.years()),e=Math.abs(this.months()),i=Math.abs(this.days()),s=Math.abs(this.hours()),n=Math.abs(this.minutes()),o=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(s||n||o?"T":"")+(s?s+"H":"")+(n?n+"M":"")+(o?o+"S":""):"P0D"}});for(pe in Qe)Qe.hasOwnProperty(pe)&&(de(pe,Qe[pe]),he(pe.toLowerCase()));de("Weeks",6048e5),le.duration.fn.asMonths=function(){return(+this-31536e6*this.years())/2592e6+12*this.years()},le.lang("en",{ordinal:function(t){var e=t%10,i=1===S(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),Te?e.exports=le:"function"==typeof define&&define.amd?(define("moment",function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(me.moment=ue),le}),ce(!0)):ce()}).call(this)},{}],5:[function(t,e){function i(t,e,i){return t.addEventListener?t.addEventListener(e,i,!1):void t.attachEvent("on"+e,i)}function s(t){return"keypress"==t.type?String.fromCharCode(t.which):w[t.which]?w[t.which]:S[t.which]?S[t.which]:String.fromCharCode(t.which).toLowerCase()}function n(t){var e=t.target||t.srcElement,i=e.tagName;return(" "+e.className+" ").indexOf(" mousetrap ")>-1?!1:"INPUT"==i||"SELECT"==i||"TEXTAREA"==i||e.contentEditable&&"true"==e.contentEditable}function o(t,e){return t.sort().join(",")===e.sort().join(",")}function a(t){t=t||{};var e,i=!1;for(e in C)t[e]?i=!0:C[e]=0;i||(I=!1)}function r(t,e,i,s,n){var a,r,h=[];if(!D[t])return[];for("keyup"==i&&u(t)&&(e=[t]),a=0;a95&&112>t||w.hasOwnProperty(t)&&(_[w[t]]=t)}return _}function m(t,e,i){return i||(i=g()[t]?"keydown":"keypress"),"keypress"==i&&e.length&&(i="keydown"),i}function f(t,e,i,n){C[t]=0,n||(n=m(e[0],[]));var o,r=function(){I=n,++C[t],p()},h=function(t){d(i,t),"keyup"!==n&&(M=s(t)),setTimeout(a,10)};for(o=0;o1)return f(t,d,e,i);for(h="+"===t?["+"]:t.split("+"),o=0;o":".","?":"/","|":"\\"},E={option:"alt",command:"meta","return":"enter",escape:"esc"},D={},T={},C={},M=!1,I=!1,N=1;20>N;++N)w[111+N]="f"+N;for(N=0;9>=N;++N)w[N+96]=N;i(document,"keypress",l),i(document,"keydown",l),i(document,"keyup",l);var O={bind:function(t,e,i){return y(t instanceof Array?t:[t],e,i),T[t+":"+i]=e,this},unbind:function(t,e){return T[t+":"+e]&&(delete T[t+":"+e],this.bind(t,function(){},e)),this},trigger:function(t,e){return T[t+":"+e](),this},reset:function(){return D={},T={},this}};e.exports=O},{}]},{},[1])(1)}); \ No newline at end of file +!function(t){if("object"==typeof exports)module.exports=t();else if("function"==typeof define&&define.amd)define(t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.vis=t()}}(function(){var define,module,exports;return function t(e,i,s){function n(a,r){if(!i[a]){if(!e[a]){var h="function"==typeof require&&require;if(!r&&h)return h(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var d=i[a]={exports:{}};e[a][0].call(d.exports,function(t){var i=e[a][1][t];return n(i?i:t)},d,d.exports,t,e,i,s)}return i[a].exports}for(var o="function"==typeof require&&require,a=0;ae?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}function Slider(t,e){if(void 0===t)throw"Error: No container element defined";if(this.container=t,this.visible=e&&void 0!=e.visible?e.visible:!0,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var moment="undefined"!=typeof window&&window.moment||require("moment"),Emitter=require("emitter-component"),Hammer;Hammer="undefined"!=typeof window?window.Hammer||require("hammerjs"):function(){throw Error("hammer.js is only available in a browser, not in node.js.")};var mousetrap;if(mousetrap="undefined"!=typeof window?window.mousetrap||require("mousetrap"):function(){throw Error("mouseTrap is only available in a browser, not in node.js.")},!Array.prototype.indexOf){Array.prototype.indexOf=function(t){for(var e=0;ei;++i)t.call(e||this,this[i],i,this)}),Array.prototype.map||(Array.prototype.map=function(t,e){var i,s,n;if(null==this)throw new TypeError(" this is null or not defined");var o=Object(this),a=o.length>>>0;if("function"!=typeof t)throw new TypeError(t+" is not a function");for(e&&(i=e),s=new Array(a),n=0;a>n;){var r,h;n in o&&(r=o[n],h=t.call(i,r,n,o),s[n]=h),n++}return s}),Array.prototype.filter||(Array.prototype.filter=function(t){"use strict";if(null==this)throw new TypeError;var e=Object(this),i=e.length>>>0;if("function"!=typeof t)throw new TypeError;for(var s=[],n=arguments[1],o=0;i>o;o++)if(o in e){var a=e[o];t.call(n,a,o,e)&&s.push(a)}return s}),Object.keys||(Object.keys=function(){var t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],s=i.length;return function(n){if("object"!=typeof n&&"function"!=typeof n||null===n)throw new TypeError("Object.keys called on non-object");var o=[];for(var a in n)t.call(n,a)&&o.push(a);if(e)for(var r=0;s>r;r++)t.call(n,i[r])&&o.push(i[r]);return o}}()),Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var e=Array.prototype.slice.call(arguments,1),i=this,s=function(){},n=function(){return i.apply(this instanceof s&&t?this:t,e.concat(Array.prototype.slice.call(arguments)))};return s.prototype=this.prototype,n.prototype=new s,n}),Object.create||(Object.create=function(t){function e(){}if(arguments.length>1)throw new Error("Object.create implementation only accepts the first parameter.");return e.prototype=t,new e}),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var e=Array.prototype.slice.call(arguments,1),i=this,s=function(){},n=function(){return i.apply(this instanceof s&&t?this:t,e.concat(Array.prototype.slice.call(arguments)))};return s.prototype=this.prototype,n.prototype=new s,n});var util={};util.isNumber=function(t){return t instanceof Number||"number"==typeof t},util.isString=function(t){return t instanceof String||"string"==typeof t},util.isDate=function(t){if(t instanceof Date)return!0;if(util.isString(t)){var e=ASPDateRegex.exec(t);if(e)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},util.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},util.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},util.extend=function(t){for(var e=1,i=arguments.length;i>e;e++){var s=arguments[e];for(var n in s)s.hasOwnProperty(n)&&void 0!==s[n]&&(t[n]=s[n])}return t},util.deepExtend=function t(e,i){if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var s in i)if(i.hasOwnProperty(s))if(i[s]&&i[s].constructor===Object)void 0===e[s]&&(e[s]={}),e[s].constructor===Object?t(e[s],i[s]):e[s]=i[s];else{if(Array.isArray(i[s]))throw new TypeError("Arrays are not supported by deepExtend");e[s]=i[s]}return e},util.equalArray=function(t,e){if(t.length!=e.length)return!1;for(var i=0,s=t.length;s>i;i++)if(t[i]!=e[i])return!1;return!0},util.convert=function(t,e){var i;if(void 0===t)return void 0;if(null===t)return null;if(!e)return t;if("string"!=typeof e&&!(e instanceof String))throw new Error("Type must be a string");switch(e){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf()); +case"string":case"String":return String(t);case"Date":if(util.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(moment.isMoment(t))return new Date(t.valueOf());if(util.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])):moment(t).toDate();throw new Error("Cannot convert object of type "+util.getType(t)+" to type Date");case"Moment":if(util.isNumber(t))return moment(t);if(t instanceof Date)return moment(t.valueOf());if(moment.isMoment(t))return moment(t);if(util.isString(t))return i=ASPDateRegex.exec(t),moment(i?Number(i[1]):t);throw new Error("Cannot convert object of type "+util.getType(t)+" to type Date");case"ISODate":if(util.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(moment.isMoment(t))return t.toDate().toISOString();if(util.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+util.getType(t)+" to type ISODate");case"ASPDate":if(util.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(util.isString(t)){i=ASPDateRegex.exec(t);var s;return s=i?new Date(Number(i[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+util.getType(t)+" to type ASPDate");default:throw new Error("Cannot convert object of type "+util.getType(t)+' to type "'+e+'"')}};var ASPDateRegex=/^\/?Date\((\-?\d+)/i;util.getType=function(t){var e=typeof t;return"object"==e?null==t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":t instanceof Array?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":e},util.getAbsoluteLeft=function(t){for(var e=document.documentElement,i=document.body,s=t.offsetLeft,n=t.offsetParent;null!=n&&n!=i&&n!=e;)s+=n.offsetLeft,s-=n.scrollLeft,n=n.offsetParent;return s},util.getAbsoluteTop=function(t){for(var e=document.documentElement,i=document.body,s=t.offsetTop,n=t.offsetParent;null!=n&&n!=i&&n!=e;)s+=n.offsetTop,s-=n.scrollTop,n=n.offsetParent;return s},util.getPageY=function(t){if("pageY"in t)return t.pageY;var e;e="targetTouches"in t&&t.targetTouches.length?t.targetTouches[0].clientY:t.clientY;var i=document.documentElement,s=document.body;return e+(i&&i.scrollTop||s&&s.scrollTop||0)-(i&&i.clientTop||s&&s.clientTop||0)},util.getPageX=function(t){if("pageY"in t)return t.pageX;var e;e="targetTouches"in t&&t.targetTouches.length?t.targetTouches[0].clientX:t.clientX;var i=document.documentElement,s=document.body;return e+(i&&i.scrollLeft||s&&s.scrollLeft||0)-(i&&i.clientLeft||s&&s.clientLeft||0)},util.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},util.removeClassName=function(t,e){var i=t.className.split(" "),s=i.indexOf(e);-1!=s&&(i.splice(s,1),t.className=i.join(" "))},util.forEach=function(t,e){var i,s;if(t instanceof Array)for(i=0,s=t.length;s>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},util.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},util.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},util.addEventListener=function(t,e,i,s){t.addEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,s)):t.attachEvent("on"+e,i)},util.removeEventListener=function(t,e,i,s){t.removeEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,s)):t.detachEvent("on"+e,i)},util.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},util.fakeGesture=function(t,e){var i=null,s=Hammer.event.collectEventData(this,i,e);return isNaN(s.center.pageX)&&(s.center.pageX=e.pageX),isNaN(s.center.pageY)&&(s.center.pageY=e.pageY),s},util.option={},util.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},util.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},util.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},util.option.asSize=function(t,e){return"function"==typeof t&&(t=t()),util.isString(t)?t:util.isNumber(t)?t+"px":e||null},util.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},util.GiveDec=function GiveDec(Hex){var Value;return Value="A"==Hex?10:"B"==Hex?11:"C"==Hex?12:"D"==Hex?13:"E"==Hex?14:"F"==Hex?15:eval(Hex)},util.GiveHex=function(t){var e;return e=10==t?"A":11==t?"B":12==t?"C":13==t?"D":14==t?"E":15==t?"F":""+t},util.parseColor=function(t){var e;if(util.isString(t))if(util.isValidHex(t)){var i=util.hexToHSV(t),s={h:i.h,s:.45*i.s,v:Math.min(1,1.05*i.v)},n={h:i.h,s:Math.min(1,1.25*i.v),v:.6*i.v},o=util.HSVToHex(n.h,n.h,n.v),a=util.HSVToHex(s.h,s.s,s.v);e={background:t,border:o,highlight:{background:a,border:o},hover:{background:a,border:o}}}else e={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}};else e={},e.background=t.background||"white",e.border=t.border||e.background,util.isString(t.highlight)?e.highlight={border:t.highlight,background:t.highlight}:(e.highlight={},e.highlight.background=t.highlight&&t.highlight.background||e.background,e.highlight.border=t.highlight&&t.highlight.border||e.border),util.isString(t.hover)?e.hover={border:t.hover,background:t.hover}:(e.hover={},e.hover.background=t.hover&&t.hover.background||e.background,e.hover.border=t.hover&&t.hover.border||e.border);return e},util.hexToRGB=function(t){t=t.replace("#","").toUpperCase();var e=util.GiveDec(t.substring(0,1)),i=util.GiveDec(t.substring(1,2)),s=util.GiveDec(t.substring(2,3)),n=util.GiveDec(t.substring(3,4)),o=util.GiveDec(t.substring(4,5)),a=util.GiveDec(t.substring(5,6)),r=16*e+i,h=16*s+n,i=16*o+a;return{r:r,g:h,b:i}},util.RGBToHex=function(t,e,i){var s=util.GiveHex(Math.floor(t/16)),n=util.GiveHex(t%16),o=util.GiveHex(Math.floor(e/16)),a=util.GiveHex(e%16),r=util.GiveHex(Math.floor(i/16)),h=util.GiveHex(i%16),d=s+n+o+a+r+h;return"#"+d},util.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var s=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(s==n)return{h:0,s:0,v:s};var o=t==s?e-i:i==s?t-e:i-t,a=t==s?3:i==s?1:5,r=60*(a-o/(n-s))/360,h=(n-s)/n,d=n;return{h:r,s:h,v:d}},util.HSVToRGB=function(t,e,i){var s,n,o,a=Math.floor(6*t),r=6*t-a,h=i*(1-e),d=i*(1-r*e),l=i*(1-(1-r)*e);switch(a%6){case 0:s=i,n=l,o=h;break;case 1:s=d,n=i,o=h;break;case 2:s=h,n=i,o=l;break;case 3:s=h,n=d,o=i;break;case 4:s=l,n=h,o=i;break;case 5:s=i,n=h,o=d}return{r:Math.floor(255*s),g:Math.floor(255*n),b:Math.floor(255*o)}},util.HSVToHex=function(t,e,i){var s=util.HSVToRGB(t,e,i);return util.RGBToHex(s.r,s.g,s.b)},util.hexToHSV=function(t){var e=util.hexToRGB(t);return util.RGBToHSV(e.r,e.g,e.b)},util.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},util.copyObject=function(t,e){for(var i in t)t.hasOwnProperty(i)&&("object"==typeof t[i]?(e[i]={},util.copyObject(t[i],e[i])):e[i]=t[i])},DataSet.prototype.on=function(t,e){var i=this.subscribers[t];i||(i=[],this.subscribers[t]=i),i.push({callback:e})},DataSet.prototype.subscribe=DataSet.prototype.on,DataSet.prototype.off=function(t,e){var i=this.subscribers[t];i&&(this.subscribers[t]=i.filter(function(t){return t.callback!=e}))},DataSet.prototype.unsubscribe=DataSet.prototype.off,DataSet.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var s=[];t in this.subscribers&&(s=s.concat(this.subscribers[t])),"*"in this.subscribers&&(s=s.concat(this.subscribers["*"]));for(var n=0;no;o++)i=n._addItem(t[o]),s.push(i);else if(util.isDataTable(t))for(var r=this._getColumnNames(t),h=0,d=t.getNumberOfRows();d>h;h++){for(var l={},c=0,u=r.length;u>c;c++){var p=r[c];l[p]=t.getValue(h,c)}i=n._addItem(l),s.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),s.push(i)}return s.length&&this._trigger("add",{items:s},e),s},DataSet.prototype.update=function(t,e){var i=[],s=[],n=this,o=n.fieldId,a=function(t){var e=t[o];n.data[e]?(e=n._updateItem(t),s.push(e)):(e=n._addItem(t),i.push(e))};if(t instanceof Array)for(var r=0,h=t.length;h>r;r++)a(t[r]);else if(util.isDataTable(t))for(var d=this._getColumnNames(t),l=0,c=t.getNumberOfRows();c>l;l++){for(var u={},p=0,m=d.length;m>p;p++){var g=d[p];u[g]=t.getValue(l,p)}a(u)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");a(t)}return i.length&&this._trigger("add",{items:i},e),s.length&&this._trigger("update",{items:s},e),i.concat(s)},DataSet.prototype.get=function(){var t,e,i,s,n=this,o=this.showInternalIds,a=util.getType(arguments[0]);"String"==a||"Number"==a?(t=arguments[0],i=arguments[1],s=arguments[2]):"Array"==a?(e=arguments[0],i=arguments[1],s=arguments[2]):(i=arguments[0],s=arguments[1]);var r;if(i&&i.type){if(r="DataTable"==i.type?"DataTable":"Array",s&&r!=util.getType(s))throw new Error('Type of parameter "data" ('+util.getType(s)+") does not correspond with specified options.type ("+i.type+")");if("DataTable"==r&&!util.isDataTable(s))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else r=s&&"DataTable"==util.getType(s)?"DataTable":"Array";void 0!=i&&void 0!=i.showInternalIds&&(this.showInternalIds=i.showInternalIds);var h,d,l,c,u=i&&i.convert||this.options.convert,p=i&&i.filter,m=[];if(void 0!=t)h=n._getItem(t,u),p&&!p(h)&&(h=null);else if(void 0!=e)for(l=0,c=e.length;c>l;l++)h=n._getItem(e[l],u),(!p||p(h))&&m.push(h);else for(d in this.data)this.data.hasOwnProperty(d)&&(h=n._getItem(d,u),(!p||p(h))&&m.push(h));if(this.showInternalIds=o,i&&i.order&&void 0==t&&this._sort(m,i.order),i&&i.fields){var g=i.fields;if(void 0!=t)h=this._filterFields(h,g);else for(l=0,c=m.length;c>l;l++)m[l]=this._filterFields(m[l],g)}if("DataTable"==r){var f=this._getColumnNames(s);if(void 0!=t)n._appendRow(s,f,h);else for(l=0,c=m.length;c>l;l++)n._appendRow(s,f,m[l]);return s}if(void 0!=t)return h;if(s){for(l=0,c=m.length;c>l;l++)s.push(m[l]);return s}return m},DataSet.prototype.getIds=function(t){var e,i,s,n,o,a=this.data,r=t&&t.filter,h=t&&t.order,d=t&&t.convert||this.options.convert,l=[];if(r)if(h){o=[];for(s in a)a.hasOwnProperty(s)&&(n=this._getItem(s,d),r(n)&&o.push(n));for(this._sort(o,h),e=0,i=o.length;i>e;e++)l[e]=o[e][this.fieldId]}else for(s in a)a.hasOwnProperty(s)&&(n=this._getItem(s,d),r(n)&&l.push(n[this.fieldId]));else if(h){o=[];for(s in a)a.hasOwnProperty(s)&&o.push(a[s]);for(this._sort(o,h),e=0,i=o.length;i>e;e++)l[e]=o[e][this.fieldId]}else for(s in a)a.hasOwnProperty(s)&&(n=a[s],l.push(n[this.fieldId]));return l},DataSet.prototype.forEach=function(t,e){var i,s,n=e&&e.filter,o=e&&e.convert||this.options.convert,a=this.data;if(e&&e.order)for(var r=this.get(e),h=0,d=r.length;d>h;h++)i=r[h],s=i[this.fieldId],t(i,s);else for(s in a)a.hasOwnProperty(s)&&(i=this._getItem(s,o),(!n||n(i))&&t(i,s))},DataSet.prototype.map=function(t,e){var i,s=e&&e.filter,n=e&&e.convert||this.options.convert,o=[],a=this.data;for(var r in a)a.hasOwnProperty(r)&&(i=this._getItem(r,n),(!s||s(i))&&o.push(t(i,r)));return e&&e.order&&this._sort(o,e.order),o},DataSet.prototype._filterFields=function(t,e){var i={};for(var s in t)t.hasOwnProperty(s)&&-1!=e.indexOf(s)&&(i[s]=t[s]);return i},DataSet.prototype._sort=function(t,e){if(util.isString(e)){var i=e;t.sort(function(t,e){var s=t[i],n=e[i];return s>n?1:n>s?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},DataSet.prototype.remove=function(t,e){var i,s,n,o=[];if(t instanceof Array)for(i=0,s=t.length;s>i;i++)n=this._remove(t[i]),null!=n&&o.push(n);else n=this._remove(t),null!=n&&o.push(n);return o.length&&this._trigger("remove",{items:o},e),o},DataSet.prototype._remove=function(t){if(util.isNumber(t)||util.isString(t)){if(this.data[t])return delete this.data[t],delete this.internalIds[t],t}else if(t instanceof Object){var e=t[this.fieldId];if(e&&this.data[e])return delete this.data[e],delete this.internalIds[e],e}return null},DataSet.prototype.clear=function(t){var e=Object.keys(this.data);return this.data={},this.internalIds={},this._trigger("remove",{items:e},t),e},DataSet.prototype.max=function(t){var e=this.data,i=null,s=null;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n],a=o[t];null!=a&&(!i||a>s)&&(i=o,s=a)}return i},DataSet.prototype.min=function(t){var e=this.data,i=null,s=null;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n],a=o[t];null!=a&&(!i||s>a)&&(i=o,s=a)}return i},DataSet.prototype.distinct=function(t){var e=this.data,i=[],s=this.options.convert[t],n=0;for(var o in e)if(e.hasOwnProperty(o)){for(var a=e[o],r=util.convert(a[t],s),h=!1,d=0;n>d;d++)if(i[d]==r){h=!0;break}h||void 0===r||(i[n]=r,n++)}return i},DataSet.prototype._addItem=function(t){var e=t[this.fieldId];if(void 0!=e){if(this.data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=util.randomUUID(),t[this.fieldId]=e,this.internalIds[e]=t;var i={};for(var s in t)if(t.hasOwnProperty(s)){var n=this.convert[s];i[s]=util.convert(t[s],n)}return this.data[e]=i,e},DataSet.prototype._getItem=function(t,e){var i,s,n=this.data[t];if(!n)return null;var o={},a=this.fieldId,r=this.internalIds;if(e)for(i in n)n.hasOwnProperty(i)&&(s=n[i],i==a&&s in r&&!this.showInternalIds||(o[i]=util.convert(s,e[i])));else for(i in n)n.hasOwnProperty(i)&&(s=n[i],i==a&&s in r&&!this.showInternalIds||(o[i]=s));return o},DataSet.prototype._updateItem=function(t){var e=t[this.fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this.data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var s in t)if(t.hasOwnProperty(s)){var n=this.convert[s];i[s]=util.convert(t[s],n)}return e},DataSet.prototype.isInternalId=function(t){return t in this.internalIds},DataSet.prototype._getColumnNames=function(t){for(var e=[],i=0,s=t.getNumberOfColumns();s>i;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},DataSet.prototype._appendRow=function(t,e,i){for(var s=t.addRow(),n=0,o=e.length;o>n;n++){var a=e[n];t.setValue(s,n,i[a])}},DataView.prototype.setData=function(t){var e,i,s;if(this.data){this.data.unsubscribe&&this.data.unsubscribe("*",this.listener),e=[];for(var n in this.ids)this.ids.hasOwnProperty(n)&&e.push(n);this.ids={},this._trigger("remove",{items:e})}if(this.data=t,this.data){for(this.fieldId=this.options.fieldId||this.data&&this.data.options&&this.data.options.fieldId||"id",e=this.data.getIds({filter:this.options&&this.options.filter}),i=0,s=e.length;s>i;i++)n=e[i],this.ids[n]=!0;this._trigger("add",{items:e}),this.data.on&&this.data.on("*",this.listener)}},DataView.prototype.get=function(){var t,e,i,s=this,n=util.getType(arguments[0]);"String"==n||"Number"==n||"Array"==n?(t=arguments[0],e=arguments[1],i=arguments[2]):(e=arguments[0],i=arguments[1]);var o=util.extend({},this.options,e);this.options.filter&&e&&e.filter&&(o.filter=function(t){return s.options.filter(t)&&e.filter(t)});var a=[];return void 0!=t&&a.push(t),a.push(o),a.push(i),this.data&&this.data.get.apply(this.data,a)},DataView.prototype.getIds=function(t){var e;if(this.data){var i,s=this.options.filter;i=t&&t.filter?s?function(e){return s(e)&&t.filter(e)}:t.filter:s,e=this.data.getIds({filter:i,order:t&&t.order})}else e=[];return e},DataView.prototype._onEvent=function(t,e,i){var s,n,o,a,r=e&&e.items,h=this.data,d=[],l=[],c=[];if(r&&h){switch(t){case"add":for(s=0,n=r.length;n>s;s++)o=r[s],a=this.get(o),a&&(this.ids[o]=!0,d.push(o));break;case"update":for(s=0,n=r.length;n>s;s++)o=r[s],a=this.get(o),a?this.ids[o]?l.push(o):(this.ids[o]=!0,d.push(o)):this.ids[o]&&(delete this.ids[o],c.push(o));break;case"remove":for(s=0,n=r.length;n>s;s++)o=r[s],this.ids[o]&&(delete this.ids[o],c.push(o))}d.length&&this._trigger("add",{items:d},i),l.length&&this._trigger("update",{items:l},i),c.length&&this._trigger("remove",{items:c},i)}},DataView.prototype.on=DataSet.prototype.on,DataView.prototype.off=DataSet.prototype.off,DataView.prototype._trigger=DataSet.prototype._trigger,DataView.prototype.subscribe=DataView.prototype.on,DataView.prototype.unsubscribe=DataView.prototype.off;var stack={};stack.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},stack.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,s="end"in e.data?e.data.end:e.data.start;return i-s})},stack.stack=function(t,e,i){var s,n;if(i)for(s=0,n=t.length;n>s;s++)t[s].top=null;for(s=0,n=t.length;n>s;s++){var o=t[s];if(null===o.top){o.top=e.axis;do{for(var a=null,r=0,h=t.length;h>r;r++){var d=t[r];if(null!==d.top&&d!==o&&stack.collision(o,d,e.item)){a=d;break}}null!=a&&(o.top=a.top+a.height+e.item)}while(a)}}},stack.nostack=function(t,e){var i,s;for(i=0,s=t.length;s>i;i++)t[i].top=e.axis},stack.collision=function(t,e,i){return t.left-ie.left&&t.top-ie.top},TimeStep.SCALE={MILLISECOND:1,SECOND:2,MINUTE:3,HOUR:4,DAY:5,WEEKDAY:6,MONTH:7,YEAR:8},TimeStep.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},TimeStep.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},TimeStep.prototype.roundToMinor=function(){switch(this.scale){case TimeStep.SCALE.YEAR:this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case TimeStep.SCALE.MONTH:this.current.setDate(1);case TimeStep.SCALE.DAY:case TimeStep.SCALE.WEEKDAY:this.current.setHours(0);case TimeStep.SCALE.HOUR:this.current.setMinutes(0);case TimeStep.SCALE.MINUTE:this.current.setSeconds(0);case TimeStep.SCALE.SECOND:this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case TimeStep.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case TimeStep.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case TimeStep.SCALE.HOUR:this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step)}},TimeStep.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},TimeStep.prototype.next=function(){var t=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case TimeStep.SCALE.SECOND:this.current=new Date(this.current.valueOf()+1e3*this.step);break;case TimeStep.SCALE.MINUTE:this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case TimeStep.SCALE.HOUR:this.current=new Date(this.current.valueOf()+1e3*this.step*60*60);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case TimeStep.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()+this.step);break;case TimeStep.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()+this.step);break;case TimeStep.SCALE.HOUR:this.current.setHours(this.current.getHours()+this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current.getMilliseconds()0&&(this.step=e),this.autoScale=!1},TimeStep.prototype.setAutoScale=function(t){this.autoScale=t},TimeStep.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,s=864e5,n=36e5,o=6e4,a=1e3,r=1;1e3*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=1e3),500*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=500),100*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=100),50*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=50),10*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=10),5*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=5),e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=1),3*i>t&&(this.scale=TimeStep.SCALE.MONTH,this.step=3),i>t&&(this.scale=TimeStep.SCALE.MONTH,this.step=1),5*s>t&&(this.scale=TimeStep.SCALE.DAY,this.step=5),2*s>t&&(this.scale=TimeStep.SCALE.DAY,this.step=2),s>t&&(this.scale=TimeStep.SCALE.DAY,this.step=1),s/2>t&&(this.scale=TimeStep.SCALE.WEEKDAY,this.step=1),4*n>t&&(this.scale=TimeStep.SCALE.HOUR,this.step=4),n>t&&(this.scale=TimeStep.SCALE.HOUR,this.step=1),15*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=15),10*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=10),5*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=5),o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=1),15*a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=15),10*a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=10),5*a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=5),a>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=1),200*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=200),100*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=100),50*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=50),10*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=10),5*r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=5),r>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=1)}},TimeStep.prototype.snap=function(t){var e=new Date(t.valueOf());if(this.scale==TimeStep.SCALE.YEAR){var i=e.getFullYear()+Math.round(e.getMonth()/12);e.setFullYear(Math.round(i/this.step)*this.step),e.setMonth(0),e.setDate(0),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.MONTH)e.getDate()>15?(e.setDate(1),e.setMonth(e.getMonth()+1)):e.setDate(1),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0);else if(this.scale==TimeStep.SCALE.DAY){switch(this.step){case 5:case 2:e.setHours(24*Math.round(e.getHours()/24));break;default:e.setHours(12*Math.round(e.getHours()/12))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.WEEKDAY){switch(this.step){case 5:case 2:e.setHours(12*Math.round(e.getHours()/12));break;default:e.setHours(6*Math.round(e.getHours()/6))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.HOUR){switch(this.step){case 4:e.setMinutes(60*Math.round(e.getMinutes()/60));break;default:e.setMinutes(30*Math.round(e.getMinutes()/30))}e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.MINUTE){switch(this.step){case 15:case 10:e.setMinutes(5*Math.round(e.getMinutes()/5)),e.setSeconds(0);break;case 5:e.setSeconds(60*Math.round(e.getSeconds()/60));break;default:e.setSeconds(30*Math.round(e.getSeconds()/30))}e.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.SECOND)switch(this.step){case 15:case 10:e.setSeconds(5*Math.round(e.getSeconds()/5)),e.setMilliseconds(0);break;case 5:e.setMilliseconds(1e3*Math.round(e.getMilliseconds()/1e3));break;default:e.setMilliseconds(500*Math.round(e.getMilliseconds()/500))}else if(this.scale==TimeStep.SCALE.MILLISECOND){var s=this.step>5?this.step/2:1;e.setMilliseconds(Math.round(e.getMilliseconds()/s)*s)}return e},TimeStep.prototype.isMajor=function(){switch(this.scale){case TimeStep.SCALE.MILLISECOND:return 0==this.current.getMilliseconds();case TimeStep.SCALE.SECOND:return 0==this.current.getSeconds();case TimeStep.SCALE.MINUTE:return 0==this.current.getHours()&&0==this.current.getMinutes();case TimeStep.SCALE.HOUR:return 0==this.current.getHours();case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:return 1==this.current.getDate();case TimeStep.SCALE.MONTH:return 0==this.current.getMonth();case TimeStep.SCALE.YEAR:return!1;default:return!1}},TimeStep.prototype.getLabelMinor=function(t){switch(void 0==t&&(t=this.current),this.scale){case TimeStep.SCALE.MILLISECOND:return moment(t).format("SSS");case TimeStep.SCALE.SECOND:return moment(t).format("s");case TimeStep.SCALE.MINUTE:return moment(t).format("HH:mm");case TimeStep.SCALE.HOUR:return moment(t).format("HH:mm");case TimeStep.SCALE.WEEKDAY:return moment(t).format("ddd D");case TimeStep.SCALE.DAY:return moment(t).format("D");case TimeStep.SCALE.MONTH:return moment(t).format("MMM");case TimeStep.SCALE.YEAR:return moment(t).format("YYYY");default:return""}},TimeStep.prototype.getLabelMajor=function(t){switch(void 0==t&&(t=this.current),this.scale){case TimeStep.SCALE.MILLISECOND:return moment(t).format("HH:mm:ss");case TimeStep.SCALE.SECOND:return moment(t).format("D MMMM HH:mm");case TimeStep.SCALE.MINUTE:case TimeStep.SCALE.HOUR:return moment(t).format("ddd D MMMM");case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:return moment(t).format("MMMM YYYY");case TimeStep.SCALE.MONTH:return moment(t).format("YYYY");case TimeStep.SCALE.YEAR:return"";default:return""}},Emitter(Range.prototype),Range.prototype.setOptions=function(t){util.extend(this.options,t),null!==this.start&&null!==this.end&&this.setRange(this.start,this.end)},Range.prototype.setRange=function(t,e){var i=this._applyRange(t,e);if(i){var s={start:new Date(this.start),end:new Date(this.end)};this.emit("rangechange",s),this.emit("rangechanged",s)}},Range.prototype._applyRange=function(t,e){var i,s=null!=t?util.convert(t,"Date").valueOf():this.start,n=null!=e?util.convert(e,"Date").valueOf():this.end,o=null!=this.options.max?util.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?util.convert(this.options.min,"Date").valueOf():null;if(isNaN(s)||null===s)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(s>n&&(n=s),null!==a&&a>s&&(i=a-s,s+=i,n+=i,null!=o&&n>o&&(n=o)),null!==o&&n>o&&(i=n-o,s-=i,n-=i,null!=a&&a>s&&(s=a)),null!==this.options.zoomMin){var r=parseFloat(this.options.zoomMin);0>r&&(r=0),r>n-s&&(this.end-this.start===r?(s=this.start,n=this.end):(i=r-(n-s),s-=i/2,n+=i/2))}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);0>h&&(h=0),n-s>h&&(this.end-this.start===h?(s=this.start,n=this.end):(i=n-s-h,s+=i/2,n-=i/2))}var d=this.start!=s||this.end!=n;return this.start=s,this.end=n,d},Range.prototype.getRange=function(){return{start:this.start,end:this.end}},Range.prototype.conversion=function(t){return Range.conversion(this.start,this.end,t)},Range.conversion=function(t,e,i){return 0!=i&&e-t!=0?{offset:t,scale:i/(e-t)}:{offset:0,scale:1}};var touchParams={};Range.prototype._onDragStart=function(){if(!touchParams.ignore){touchParams.start=this.start,touchParams.end=this.end;var t=this.parent.frame;t&&(t.style.cursor="move")}},Range.prototype._onDrag=function(t){var e=this.options.direction;if(validateDirection(e),!touchParams.ignore){var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY,s=touchParams.end-touchParams.start,n="horizontal"==e?this.parent.width:this.parent.height,o=-i/n*s;this._applyRange(touchParams.start+o,touchParams.end+o),this.emit("rangechange",{start:new Date(this.start),end:new Date(this.end)})}},Range.prototype._onDragEnd=function(){touchParams.ignore||(this.parent.frame&&(this.parent.frame.style.cursor="auto"),this.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end)}))},Range.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var s=util.fakeGesture(this,t),n=getPointer(s.center,this.parent.frame),o=this._pointerToDate(n);this.zoom(i,o)}t.preventDefault()},Range.prototype._onTouch=function(t){touchParams.start=this.start,touchParams.end=this.end,touchParams.ignore=!1,touchParams.center=null;var e=ItemSet.itemFromTarget(t);e&&e.selected&&this.options.editable&&(touchParams.ignore=!0)},Range.prototype._onHold=function(){touchParams.ignore=!0},Range.prototype._onPinch=function(t){this.options.direction;if(touchParams.ignore=!0,t.gesture.touches.length>1){touchParams.center||(touchParams.center=getPointer(t.gesture.center,this.parent.frame));var e=1/t.gesture.scale,i=this._pointerToDate(touchParams.center),s=getPointer(t.gesture.center,this.parent.frame),n=(this._pointerToDate(this.parent,s),parseInt(i+(touchParams.start-i)*e)),o=parseInt(i+(touchParams.end-i)*e);this.setRange(n,o)}},Range.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(validateDirection(i),"horizontal"==i){var s=this.parent.width;return e=this.conversion(s),t.x/e.scale+e.offset}var n=this.parent.height;return e=this.conversion(n),t.y/e.scale+e.offset},Range.prototype.zoom=function(t,e){null==e&&(e=(this.start+this.end)/2);var i=e+(this.start-e)*t,s=e+(this.end-e)*t;this.setRange(i,s)},Range.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,s=this.end+e*t;this.start=i,this.end=s},Range.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,s=this.start-i,n=this.end-i;this.setRange(s,n)},Emitter(Component.prototype),Component.prototype.setOptions=function(t){t&&(util.extend(this.options,t),this.repaint())},Component.prototype.getOption=function(t){var e;return this.options&&(e=this.options[t]),void 0===e&&this.defaultOptions&&(e=this.defaultOptions[t]),e},Component.prototype.getFrame=function(){return null},Component.prototype.repaint=function(){return!1},Component.prototype._isResized=function(){var t=this._previousWidth!==this.width||this._previousHeight!==this.height;return this._previousWidth=this.width,this._previousHeight=this.height,t},Panel.prototype=new Component,Panel.prototype.setOptions=Component.prototype.setOptions,Panel.prototype.getFrame=function(){return this.frame},Panel.prototype.appendChild=function(t){this.childs.push(t),t.parent=this;var e=t.getFrame();e&&(e.parentNode&&e.parentNode.removeChild(e),this.frame.appendChild(e))},Panel.prototype.insertBefore=function(t,e){var i=this.childs.indexOf(e);if(-1!=i){this.childs.splice(i,0,t),t.parent=this;var s=t.getFrame(); +if(s){s.parentNode&&s.parentNode.removeChild(s);var n=e.getFrame();n?this.frame.insertBefore(s,n):this.frame.appendChild(s)}}},Panel.prototype.removeChild=function(t){var e=this.childs.indexOf(t);if(-1!=e){this.childs.splice(e,1),t.parent=null;var i=t.getFrame();i&&i.parentNode&&this.frame.removeChild(i)}},Panel.prototype.hasChild=function(t){var e=this.childs.indexOf(t);return-1!=e},Panel.prototype.repaint=function(){var t=util.option.asString,e=this.options,i=this.getFrame();i.className="vpanel"+(e.className?" "+t(e.className):"");var s=this._repaintChilds();return this._updateSize(),this._isResized()||s},Panel.prototype._repaintChilds=function(){for(var t=!1,e=0,i=this.childs.length;i>e;e++)t=this.childs[e].repaint()||t;return t},Panel.prototype._updateSize=function(){this.frame.style.top=util.option.asSize(this.options.top),this.frame.style.bottom=util.option.asSize(this.options.bottom),this.frame.style.left=util.option.asSize(this.options.left),this.frame.style.right=util.option.asSize(this.options.right),this.frame.style.width=util.option.asSize(this.options.width,"100%"),this.frame.style.height=util.option.asSize(this.options.height,""),this.top=this.frame.offsetTop,this.left=this.frame.offsetLeft,this.width=this.frame.offsetWidth,this.height=this.frame.offsetHeight},RootPanel.prototype=new Panel,RootPanel.prototype._create=function(){this.frame=document.createElement("div"),this.hammer=Hammer(this.frame,{prevent_default:!0}),this.listeners={};var t=this,e=["touch","pinch","tap","doubletap","hold","dragstart","drag","dragend","mousewheel","DOMMouseScroll"];e.forEach(function(e){var i=function(){var i=[e].concat(Array.prototype.slice.call(arguments,0));t.emit.apply(t,i)};t.hammer.on(e,i),t.listeners[e]=i})},RootPanel.prototype.setOptions=function(t){t&&(util.extend(this.options,t),this.repaint(),this._initWatch())},RootPanel.prototype.getFrame=function(){return this.frame},RootPanel.prototype.repaint=function(){var t=this.options,e=t.editable.updateTime||t.editable.updateGroup,i="vis timeline rootpanel "+t.orientation+(e?" editable":"");t.className&&(i+=" "+util.option.asString(i)),this.frame.className=i;var s=this._repaintChilds();this.frame.style.maxHeight=util.option.asSize(this.options.maxHeight,""),this.frame.style.minHeight=util.option.asSize(this.options.minHeight,""),this._updateSize();var n=this._isResized()||s;n&&setTimeout(this.repaint.bind(this),0)},RootPanel.prototype._initWatch=function(){var t=this.getOption("autoResize");t?this._watch():this._unwatch()},RootPanel.prototype._watch=function(){var t=this;this._unwatch();var e=function(){var e=t.getOption("autoResize");return e?void(t.frame&&(t.frame.clientWidth!=t.lastWidth||t.frame.clientHeight!=t.lastHeight)&&(t.lastWidth=t.frame.clientWidth,t.lastHeight=t.frame.clientHeight,t.repaint())):void t._unwatch()};util.addEventListener(window,"resize",e),this.watchTimer=setInterval(e,1e3)},RootPanel.prototype._unwatch=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0)},TimeAxis.prototype=new Component,TimeAxis.prototype.setOptions=Component.prototype.setOptions,TimeAxis.prototype._create=function(){this.frame=document.createElement("div")},TimeAxis.prototype.setRange=function(t){if(!(t instanceof Range||t&&t.start&&t.end))throw new TypeError("Range must be an instance of Range, or an object containing start and end.");this.range=t},TimeAxis.prototype.getFrame=function(){return this.frame},TimeAxis.prototype.repaint=function(){var t=util.option.asSize,e=this.options,i=this.props,s=this.frame;s.className="timeaxis";var n=s.parentNode;if(n){this._calculateCharSize();var o=this.getOption("orientation"),a=this.getOption("showMinorLabels"),r=this.getOption("showMajorLabels"),h=this.parent.height;i.minorLabelHeight=a?i.minorCharHeight:0,i.majorLabelHeight=r?i.majorCharHeight:0,this.height=i.minorLabelHeight+i.majorLabelHeight,this.width=s.offsetWidth,i.minorLineHeight=h+i.minorLabelHeight,i.minorLineWidth=1,i.majorLineHeight=h+this.height,i.majorLineWidth=1;var d=s.nextSibling;n.removeChild(s),"top"==o?(s.style.top="0",s.style.left="0",s.style.bottom="",s.style.width=t(e.width,"100%"),s.style.height=this.height+"px"):(s.style.top="",s.style.bottom="0",s.style.left="0",s.style.width=t(e.width,"100%"),s.style.height=this.height+"px"),this._repaintLabels(),this._repaintLine(),d?n.insertBefore(s,d):n.appendChild(s)}return this._isResized()},TimeAxis.prototype._repaintLabels=function(){var t=this.getOption("orientation"),e=util.convert(this.range.start,"Number"),i=util.convert(this.range.end,"Number"),s=this.options.toTime(7*(this.props.minorCharWidth||10)).valueOf()-this.options.toTime(0).valueOf(),n=new TimeStep(new Date(e),new Date(i),s);this.step=n;var o=this.dom;o.redundant.majorLines=o.majorLines,o.redundant.majorTexts=o.majorTexts,o.redundant.minorLines=o.minorLines,o.redundant.minorTexts=o.minorTexts,o.majorLines=[],o.majorTexts=[],o.minorLines=[],o.minorTexts=[],n.first();for(var a=void 0,r=0;n.hasNext()&&1e3>r;){r++;var h=n.getCurrent(),d=this.options.toScreen(h),l=n.isMajor();this.getOption("showMinorLabels")&&this._repaintMinorText(d,n.getLabelMinor(),t),l&&this.getOption("showMajorLabels")?(d>0&&(void 0==a&&(a=d),this._repaintMajorText(d,n.getLabelMajor(),t)),this._repaintMajorLine(d,t)):this._repaintMinorLine(d,t),n.next()}if(this.getOption("showMajorLabels")){var c=this.options.toTime(0),u=n.getLabelMajor(c),p=u.length*(this.props.majorCharWidth||10)+10;(void 0==a||a>p)&&this._repaintMajorText(0,u,t)}util.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},TimeAxis.prototype._repaintMinorText=function(t,e,i){var s=this.dom.redundant.minorTexts.shift();if(!s){var n=document.createTextNode("");s=document.createElement("div"),s.appendChild(n),s.className="text minor",this.frame.appendChild(s)}this.dom.minorTexts.push(s),s.childNodes[0].nodeValue=e,"top"==i?(s.style.top=this.props.majorLabelHeight+"px",s.style.bottom=""):(s.style.top="",s.style.bottom=this.props.majorLabelHeight+"px"),s.style.left=t+"px"},TimeAxis.prototype._repaintMajorText=function(t,e,i){var s=this.dom.redundant.majorTexts.shift();if(!s){var n=document.createTextNode(e);s=document.createElement("div"),s.className="text major",s.appendChild(n),this.frame.appendChild(s)}this.dom.majorTexts.push(s),s.childNodes[0].nodeValue=e,"top"==i?(s.style.top="0px",s.style.bottom=""):(s.style.top="",s.style.bottom="0px"),s.style.left=t+"px"},TimeAxis.prototype._repaintMinorLine=function(t,e){var i=this.dom.redundant.minorLines.shift();i||(i=document.createElement("div"),i.className="grid vertical minor",this.frame.appendChild(i)),this.dom.minorLines.push(i);var s=this.props;"top"==e?(i.style.top=this.props.majorLabelHeight+"px",i.style.bottom=""):(i.style.top="",i.style.bottom=this.props.majorLabelHeight+"px"),i.style.height=s.minorLineHeight+"px",i.style.left=t-s.minorLineWidth/2+"px"},TimeAxis.prototype._repaintMajorLine=function(t,e){var i=this.dom.redundant.majorLines.shift();i||(i=document.createElement("DIV"),i.className="grid vertical major",this.frame.appendChild(i)),this.dom.majorLines.push(i);var s=this.props;"top"==e?(i.style.top="0px",i.style.bottom=""):(i.style.top="",i.style.bottom="0px"),i.style.left=t-s.majorLineWidth/2+"px",i.style.height=s.majorLineHeight+"px"},TimeAxis.prototype._repaintLine=function(){var t=this.dom.line,e=this.frame,i=this.getOption("orientation");this.getOption("showMinorLabels")||this.getOption("showMajorLabels")?(t?(e.removeChild(t),e.appendChild(t)):(t=document.createElement("div"),t.className="grid horizontal major",e.appendChild(t),this.dom.line=t),"top"==i?(t.style.top=this.height+"px",t.style.bottom=""):(t.style.top="",t.style.bottom=this.height+"px")):t&&t.parentNode&&(t.parentNode.removeChild(t),delete this.dom.line)},TimeAxis.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.frame.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text minor measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.frame.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},TimeAxis.prototype.snap=function(t){return this.step.snap(t)},CurrentTime.prototype=new Component,CurrentTime.prototype.setOptions=Component.prototype.setOptions,CurrentTime.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},CurrentTime.prototype.getFrame=function(){return this.bar},CurrentTime.prototype.repaint=function(){var t=(this.parent,new Date),e=this.options.toScreen(t);return this.bar.style.left=e+"px",this.bar.title="Current time: "+t,!1},CurrentTime.prototype.start=function(){function t(){e.stop();var i=e.range.conversion(e.parent.width).scale,s=1/i/10;30>s&&(s=30),s>1e3&&(s=1e3),e.repaint(),e.currentTimeTimer=setTimeout(t,s)}var e=this;t()},CurrentTime.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},CustomTime.prototype=new Component,CustomTime.prototype.setOptions=Component.prototype.setOptions,CustomTime.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=Hammer(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},CustomTime.prototype.getFrame=function(){return this.bar},CustomTime.prototype.repaint=function(){var t=this.options.toScreen(this.customTime);return this.bar.style.left=t+"px",this.bar.title="Time: "+this.customTime,!1},CustomTime.prototype.setCustomTime=function(t){this.customTime=new Date(t.valueOf()),this.repaint()},CustomTime.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},CustomTime.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},CustomTime.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=t.gesture.deltaX,i=this.options.toScreen(this.eventParams.customTime)+e,s=this.options.toTime(i);this.setCustomTime(s),this.emit("timechange",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},CustomTime.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.emit("timechanged",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())};var UNGROUPED="__ungrouped__";ItemSet.prototype=new Panel,ItemSet.types={box:ItemBox,range:ItemRange,rangeoverflow:ItemRangeOverflow,point:ItemPoint},ItemSet.prototype._create=function(){var t=document.createElement("div");t["timeline-itemset"]=this,this.frame=t;var e=document.createElement("div");e.className="background",this.backgroundPanel.frame.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var s=document.createElement("div");s.className="axis",this.dom.axis=s,this.axisPanel.frame.appendChild(s);var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this.sidePanel.frame.appendChild(n),this._updateUngrouped(),this.hammer=Hammer(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},ItemSet.prototype.setOptions=function(t){Component.prototype.setOptions.call(this,t)},ItemSet.prototype.markDirty=function(){this.groupIds=[],this.stackDirty=!0},ItemSet.prototype.hide=function(){this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},ItemSet.prototype.show=function(){this.dom.axis.parentNode||this.axisPanel.frame.appendChild(this.dom.axis),this.dom.background.parentNode||this.backgroundPanel.frame.appendChild(this.dom.background),this.dom.labelSet.parentNode||this.sidePanel.frame.appendChild(this.dom.labelSet)},ItemSet.prototype.setRange=function(t){if(!(t instanceof Range||t&&t.start&&t.end))throw new TypeError("Range must be an instance of Range, or an object containing start and end.");this.range=t},ItemSet.prototype.setSelection=function(t){var e,i,s,n;if(t){if(!Array.isArray(t))throw new TypeError("Array expected");for(e=0,i=this.selection.length;i>e;e++)s=this.selection[e],n=this.items[s],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)s=t[e],n=this.items[s],n&&(this.selection.push(s),n.select())}},ItemSet.prototype.getSelection=function(){return this.selection.concat([])},ItemSet.prototype._deselect=function(t){for(var e=this.selection,i=0,s=e.length;s>i;i++)if(e[i]==t){e.splice(i,1);break}},ItemSet.prototype.getFrame=function(){return this.frame},ItemSet.prototype.repaint=function(){var t=this.options.margin,e=this.range,i=util.option.asSize,s=util.option.asString,n=this.options,o=this.getOption("orientation"),a=!1,r=this.frame;"number"==typeof t&&(t={item:t,axis:t}),r.className="itemset"+(n.className?" "+s(n.className):""),a=this._orderGroups()||a;var h=this.range.end-this.range.start,d=h!=this.lastVisibleInterval||this.width!=this.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.lastWidth=this.width;var l=this.stackDirty,c=this._firstGroup(),u={item:t.item,axis:t.axis},p={item:t.item,axis:t.item/2},m=0,g=t.axis+t.item;return util.forEach(this.groups,function(t){var i=t==c?u:p;a=t.repaint(e,i,l)||a,m+=t.height}),m=Math.max(m,g),this.stackDirty=!1,r.style.left=i(n.left,""),r.style.right=i(n.right,""),r.style.top=i("top"==o?"0":""),r.style.bottom=i("top"==o?"":"0"),r.style.width=i(n.width,"100%"),r.style.height=i(m),this.top=r.offsetTop,this.left=r.offsetLeft,this.width=r.offsetWidth,this.height=m,this.dom.axis.style.left=i(n.left,"0"),this.dom.axis.style.right=i(n.right,""),this.dom.axis.style.width=i(n.width,"100%"),this.dom.axis.style.height=i(0),this.dom.axis.style.top=i("top"==o?"0":""),this.dom.axis.style.bottom=i("top"==o?"":"0"),a=this._isResized()||a},ItemSet.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[UNGROUPED];return i||null},ItemSet.prototype._updateUngrouped=function(){var t=this.groups[UNGROUPED];if(this.groupsData)t&&(t.hide(),delete this.groups[UNGROUPED]);else if(!t){var e=null,i=null;t=new Group(e,i,this),this.groups[UNGROUPED]=t;for(var s in this.items)this.items.hasOwnProperty(s)&&t.add(this.items[s]);t.show()}},ItemSet.prototype.getForeground=function(){return this.dom.foreground},ItemSet.prototype.getBackground=function(){return this.dom.background},ItemSet.prototype.getAxis=function(){return this.dom.axis},ItemSet.prototype.getLabelSet=function(){return this.dom.labelSet},ItemSet.prototype.setItems=function(t){var e,i=this,s=this.itemsData;if(t){if(!(t instanceof DataSet||t instanceof DataView))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(s&&(util.forEach(this.itemListeners,function(t,e){s.unsubscribe(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;util.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},ItemSet.prototype.getItems=function(){return this.itemsData},ItemSet.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(util.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof DataSet||t instanceof DataView))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;util.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.emit("change")},ItemSet.prototype.getGroups=function(){return this.groupsData},ItemSet.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this._myDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},ItemSet.prototype._onUpdate=function(t){var e=this,i=this.items,s=this.itemOptions;t.forEach(function(t){var n=e.itemsData.get(t),o=i[t],a=n.type||n.start&&n.end&&"range"||e.options.type||"box",r=ItemSet.types[a];if(o&&(r&&o instanceof r?e._updateItem(o,n):(e._removeItem(o),o=null)),!o){if(!r)throw new TypeError('Unknown item type "'+a+'"');o=new r(n,e.options,s),o.id=t,e._addItem(o)}}),this._order(),this.stackDirty=!0,this.emit("change")},ItemSet.prototype._onAdd=ItemSet.prototype._onUpdate,ItemSet.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var s=i.items[t];s&&(e++,i._removeItem(s))}),e&&(this._order(),this.stackDirty=!0,this.emit("change"))},ItemSet.prototype._order=function(){util.forEach(this.groups,function(t){t.order()})},ItemSet.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},ItemSet.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),s=e.groups[t];if(s)s.setData(i);else{if(t==UNGROUPED)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);util.extend(n,{height:null}),s=new Group(t,i,e),e.groups[t]=s;for(var o in e.items)if(e.items.hasOwnProperty(o)){var a=e.items[o];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.emit("change")},ItemSet.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.emit("change")},ItemSet.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!util.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},ItemSet.prototype._addItem=function(t){this.items[t.id]=t;var e=this.groupsData?t.data.group:UNGROUPED,i=this.groups[e];i&&i.add(t)},ItemSet.prototype._updateItem=function(t,e){var i=t.data.group;if(t.data=e,t.displayed&&t.repaint(),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var n=this.groupsData?t.data.group:UNGROUPED,o=this.groups[n];o&&o.add(t)}},ItemSet.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1);var i=this.groupsData?t.data.group:UNGROUPED,s=this.groups[i];s&&s.remove(t)},ItemSet.prototype._constructByEndArray=function(t){for(var e=[],i=0;it.start-e&&this.data.startt.start-e&&this.data.startt.start},ItemRange.prototype.repaint=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this),!this.parent)throw new Error("Cannot repaint item: no parent attached");if(!t.box.parentNode){var e=this.parent.getForeground();if(!e)throw new Error("Cannot repaint time axis: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.data.content!=this.content){if(this.content=this.data.content,this.content instanceof Element)t.content.innerHTML="",t.content.appendChild(this.content);else{if(void 0==this.data.content)throw new Error('Property "content" missing in item '+this.data.id);t.content.innerHTML=this.content}this.dirty=!0}var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");this.className!=i&&(this.className=i,t.box.className=this.baseClassName+i,this.dirty=!0),this.dirty&&(this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dirty=!1),this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},ItemRange.prototype.show=function(){this.displayed||this.repaint()},ItemRange.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.top=null,this.left=null,this.displayed=!1}},ItemRange.prototype.repositionX=function(){var t,e=this.props,i=this.parent.width,s=this.defaultOptions.toScreen(this.data.start),n=this.defaultOptions.toScreen(this.data.end),o="padding"in this.options?this.options.padding:this.defaultOptions.padding;-i>s&&(s=-i),n>2*i&&(n=2*i),t=0>s?Math.min(-s,n-s-e.content.width-2*o):0,this.left=s,this.width=Math.max(n-s,1),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=this.width+"px",this.dom.content.style.left=t+"px"},ItemRange.prototype.repositionY=function(){var t=this.options.orientation||this.defaultOptions.orientation,e=this.dom.box;"top"==t?(e.style.top=this.top+"px",e.style.bottom=""):(e.style.top="",e.style.bottom=this.top+"px")},ItemRange.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,Hammer(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},ItemRange.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div"); +t.className="drag-right",t.dragRightItem=this,Hammer(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},ItemRangeOverflow.prototype=new ItemRange(null),ItemRangeOverflow.prototype.baseClassName="item rangeoverflow",ItemRangeOverflow.prototype.repositionX=function(){{var t,e=this.parent.width,i=this.defaultOptions.toScreen(this.data.start),s=this.defaultOptions.toScreen(this.data.end);"padding"in this.options?this.options.padding:this.defaultOptions.padding}-e>i&&(i=-e),s>2*e&&(s=2*e),t=Math.max(-i,0),this.left=i;var n=Math.max(s-i,1);this.width=n+this.props.content.width,this.dom.box.style.left=this.left+"px",this.dom.box.style.width=n+"px",this.dom.content.style.left=t+"px"},Group.prototype._create=function(){var t=document.createElement("div");t.className="vlabel",this.dom.label=t;var e=document.createElement("div");e.className="inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.axis=document.createElement("div"),this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},Group.prototype.setData=function(t){var e=t&&t.content;e instanceof Element?this.dom.inner.appendChild(e):this.dom.inner.innerHTML=void 0!=e?e:this.groupId;var i=t&&t.className;i&&util.addClassName(this.dom.label,i)},Group.prototype.getForeground=function(){return this.dom.foreground},Group.prototype.getBackground=function(){return this.dom.background},Group.prototype.getAxis=function(){return this.dom.axis},Group.prototype.getLabelWidth=function(){return this.props.label.width},Group.prototype.repaint=function(t,e,i){var s=!1;this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t);var n=this.dom.marker.clientHeight;n!=this.lastMarkerHeight&&(this.lastMarkerHeight=n,util.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.repaint()}),i=!0),this.itemSet.options.stack?stack.stack(this.visibleItems,e,i):stack.nostack(this.visibleItems,e);for(var o=0,a=this.visibleItems.length;a>o;o++){var r=this.visibleItems[o];r.repositionY()}var h,d=this.visibleItems;if(d.length){var l=d[0].top,c=d[0].top+d[0].height;util.forEach(d,function(t){l=Math.min(l,t.top),c=Math.max(c,t.top+t.height)}),h=c-l+e.axis+e.item}else h=e.axis+e.item;h=Math.max(h,this.props.label.height);var u=this.dom.foreground;return this.top=u.offsetTop,this.left=u.offsetLeft,this.width=u.offsetWidth,s=util.updateProperty(this,"height",h)||s,s=util.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||s,s=util.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||s,u.style.height=h+"px",this.dom.label.style.height=h+"px",s},Group.prototype.show=function(){this.dom.label.parentNode||this.itemSet.getLabelSet().appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.getForeground().appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.getBackground().appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.getAxis().appendChild(this.dom.axis)},Group.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var s=this.dom.axis;s.parentNode&&s.parentNode.removeChild(s)},Group.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),t instanceof ItemRange&&-1==this.visibleItems.indexOf(t)){var e=this.itemSet.range;this._checkIfVisible(t,this.visibleItems,e)}},Group.prototype.remove=function(t){delete this.items[t.id],t.setParent(this.itemSet);var e=this.visibleItems.indexOf(t);-1!=e&&this.visibleItems.splice(e,1)},Group.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},Group.prototype.order=function(){var t=util.toArray(this.items);this.orderedItems.byStart=t,this.orderedItems.byEnd=this._constructByEndArray(t),stack.orderByStart(this.orderedItems.byStart),stack.orderByEnd(this.orderedItems.byEnd)},Group.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0)for(n=0;n=0&&!this._checkIfInvisible(t.byStart[n],o,i);n--);for(n=s+1;n=0&&!this._checkIfInvisible(t.byEnd[n],o,i);n--);for(n=a+1;ne.start-a&&s[l].data[n]e.start-a&&s[l].data[n]=s&&(s=864e5),e=new Date(e.valueOf()-.05*s),i=new Date(i.valueOf()+.05*s)}(null!==e||null!==i)&&this.range.setRange(e,i)},Timeline.prototype.getItemRange=function(){var t=this.itemsData,e=null,i=null;if(t){var s=t.min("start");e=s?s.start.valueOf():null;var n=t.max("start");n&&(i=n.start.valueOf());var o=t.max("end");o&&(i=null==i?o.end.valueOf():Math.max(i,o.end.valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},Timeline.prototype.setSelection=function(t){this.itemSet.setSelection(t)},Timeline.prototype.getSelection=function(){return this.itemSet.getSelection()},Timeline.prototype.setWindow=function(t,e){if(1==arguments.length){var i=arguments[0];this.range.setRange(i.start,i.end)}else this.range.setRange(t,e)},Timeline.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},Timeline.prototype.redraw=function(){this.rootPanel.repaint()},Timeline.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},Timeline.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.gesture.srcEvent&&t.gesture.srcEvent.ctrlKey,i=t.gesture.srcEvent&&t.gesture.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var s=this.getSelection(),n=ItemSet.itemFromTarget(t),o=n?[n.id]:[];this.setSelection(o);var a=this.getSelection();(a.length>0||s.length>0)&&this.emit("select",{items:this.getSelection()}),t.stopPropagation()}},Timeline.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=ItemSet.itemFromTarget(t);if(i){var s=e.itemsData.get(i.id);this.options.onUpdate(s,function(t){t&&e.itemsData.update(t)})}else{var n=vis.util.getAbsoluteLeft(this.contentPanel.frame),o=t.gesture.center.pageX-n,a={start:this.timeAxis.snap(this._toTime(o)),content:"new item"};("range"===this.options.type||"rangeoverflow"==this.options.type)&&(a.end=this.timeAxis.snap(this._toTime(o+this.rootPanel.width/5)));var r=util.randomUUID();a[this.itemsData.fieldId]=r;var h=ItemSet.groupFromTarget(t);h&&(a.group=h.groupId),this.options.onAdd(a,function(t){t&&e.itemsData.add(a)})}}},Timeline.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=ItemSet.itemFromTarget(t);if(i){e=this.getSelection();var s=e.indexOf(i.id);-1==s?e.push(i.id):e.splice(s,1),this.setSelection(e),this.emit("select",{items:this.getSelection()}),t.stopPropagation()}}},Timeline.prototype._toTime=function(t){var e=this.range.conversion(this.mainPanel.width);return new Date(t/e.scale+e.offset)},Timeline.prototype._toScreen=function(t){var e=this.range.conversion(this.mainPanel.width);return(t.valueOf()-e.offset)*e.scale},function(t){function e(t){return M=t,u()}function i(){D=0,C=M.charAt(0)}function s(){D++,C=M.charAt(D)}function n(){return M.charAt(D+1)}function o(t){return P.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function r(t,e,i){for(var s=e.split("."),n=t;s.length;){var o=s.shift();s.length?(n[o]||(n[o]={}),n=n[o]):n[o]=i}}function h(t,e){for(var i,s,n=null,o=[t],r=t;r.parent;)o.push(r.parent),r=r.parent;if(r.nodes)for(i=0,s=r.nodes.length;s>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=a(n.attr,t.node))),i=o.length-1;i>=0;i--){var h=o[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(n)&&h.nodes.push(n)}e.attr&&(n.attr=a(n.attr,e.attr))}function d(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function l(t,e,i,s,n){var o={from:e,to:i,type:s};return t.edge&&(o.attr=a({},t.edge)),o.attr=a(o.attr||{},n),o}function c(){for(O=T.NULL,I="";" "==C||" "==C||"\n"==C||"\r"==C;)s();do{var t=!1;if("#"==C){for(var e=D-1;" "==M.charAt(e)||" "==M.charAt(e);)e--;if("\n"==M.charAt(e)||""==M.charAt(e)){for(;""!=C&&"\n"!=C;)s();t=!0}}if("/"==C&&"/"==n()){for(;""!=C&&"\n"!=C;)s();t=!0}if("/"==C&&"*"==n()){for(;""!=C;){if("*"==C&&"/"==n()){s(),s();break}s()}t=!0}for(;" "==C||" "==C||"\n"==C||"\r"==C;)s()}while(t);if(""==C)return void(O=T.DELIMITER);var i=C+n();if(E[i])return O=T.DELIMITER,I=i,s(),void s();if(E[C])return O=T.DELIMITER,I=C,void s();if(o(C)||"-"==C){for(I+=C,s();o(C);)I+=C,s();return"false"==I?I=!1:"true"==I?I=!0:isNaN(Number(I))||(I=Number(I)),void(O=T.IDENTIFIER)}if('"'==C){for(s();""!=C&&('"'!=C||'"'==C&&'"'==n());)I+=C,'"'==C&&s(),s();if('"'!=C)throw b('End of string " expected');return s(),void(O=T.IDENTIFIER)}for(O=T.UNKNOWN;""!=C;)I+=C,s();throw new SyntaxError('Syntax error in part "'+x(I,30)+'"')}function u(){var t={};if(i(),c(),"strict"==I&&(t.strict=!0,c()),("graph"==I||"digraph"==I)&&(t.type=I,c()),O==T.IDENTIFIER&&(t.id=I,c()),"{"!=I)throw b("Angle bracket { expected");if(c(),p(t),"}"!=I)throw b("Angle bracket } expected");if(c(),""!==I)throw b("End of file expected");return c(),delete t.node,delete t.edge,delete t.graph,t}function p(t){for(;""!==I&&"}"!=I;)m(t),";"==I&&c()}function m(t){var e=g(t);if(e)return void y(t,e);var i=f(t);if(!i){if(O!=T.IDENTIFIER)throw b("Identifier expected");var s=I;if(c(),"="==I){if(c(),O!=T.IDENTIFIER)throw b("Identifier expected");t[s]=I,c()}else v(t,s)}}function g(t){var e=null;if("subgraph"==I&&(e={},e.type="subgraph",c(),O==T.IDENTIFIER&&(e.id=I,c())),"{"==I){if(c(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,p(e),"}"!=I)throw b("Angle bracket } expected");c(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function f(t){return"node"==I?(c(),t.node=_(),"node"):"edge"==I?(c(),t.edge=_(),"edge"):"graph"==I?(c(),t.graph=_(),"graph"):null}function v(t,e){var i={id:e},s=_();s&&(i.attr=s),h(t,i),y(t,e)}function y(t,e){for(;"->"==I||"--"==I;){var i,s=I;c();var n=g(t);if(n)i=n;else{if(O!=T.IDENTIFIER)throw b("Identifier or subgraph expected");i=I,h(t,{id:i}),c()}var o=_(),a=l(t,e,i,s,o);d(t,a),e=i}}function _(){for(var t=null;"["==I;){for(c(),t={};""!==I&&"]"!=I;){if(O!=T.IDENTIFIER)throw b("Attribute name expected");var e=I;if(c(),"="!=I)throw b("Equal sign = expected");if(c(),O!=T.IDENTIFIER)throw b("Attribute value expected");var i=I;r(t,e,i),c(),","==I&&c()}if("]"!=I)throw b("Bracket ] expected");c()}return t}function b(t){return new SyntaxError(t+', got "'+x(I,30)+'" (char '+D+")")}function x(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function w(t,e,i){t instanceof Array?t.forEach(function(t){e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}):e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}function S(t){function i(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e}var s=e(t),n={nodes:[],edges:[],options:{}};return s.nodes&&s.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),n.nodes.push(e)}),s.edges&&s.edges.forEach(function(t){var e,s;e=t.from instanceof Object?t.from.nodes:{id:t.from},s=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=i(t);n.edges.push(e)}),w(e,s,function(e,s){var o=l(n,e.id,s.id,t.type,t.attr),a=i(o);n.edges.push(a)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=i(t);n.edges.push(e)})}),s.attr&&(n.options=s.attr),n}var T={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},E={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},M="",D=0,C="",I="",O=T.NULL,P=/[a-zA-Z_0-9.:#]/;t.parseDOT=e,t.DOTToGraph=S}("undefined"!=typeof util?util:exports),"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1)},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i)},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath();var s=2*i,n=s/2,o=Math.sqrt(3)/6*s,a=Math.sqrt(s*s-n*n);this.moveTo(t,e-(a-o)),this.lineTo(t+n,e+o),this.lineTo(t-n,e+o),this.lineTo(t,e-(a-o)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath();var s=2*i,n=s/2,o=Math.sqrt(3)/6*s,a=Math.sqrt(s*s-n*n);this.moveTo(t,e+(a-o)),this.lineTo(t+n,e-o),this.lineTo(t-n,e-o),this.lineTo(t,e+(a-o)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath();for(var s=0;10>s;s++){var n=s%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*s*Math.PI/10),e-n*Math.cos(2*s*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,s,n){var o=Math.PI/180;0>i-2*n&&(n=i/2),0>s-2*n&&(n=s/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*o,360*o,!1),this.lineTo(t+i,e+s-n),this.arc(t+i-n,e+s-n,n,0,90*o,!1),this.lineTo(t+n,e+s),this.arc(t+n,e+s-n,n,90*o,180*o,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*o,270*o,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,s){var n=.5522848,o=i/2*n,a=s/2*n,r=t+i,h=e+s,d=t+i/2,l=e+s/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-a,d-o,e,d,e),this.bezierCurveTo(d+o,e,r,l-a,r,l),this.bezierCurveTo(r,l+a,d+o,h,d,h),this.bezierCurveTo(d-o,h,t,l+a,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,s){var n=1/3,o=i,a=s*n,r=.5522848,h=o/2*r,d=a/2*r,l=t+o,c=e+a,u=t+o/2,p=e+a/2,m=e+(s-a/2),g=e+s;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,u+h,c,u,c),this.bezierCurveTo(u-h,c,t,p+d,t,p),this.bezierCurveTo(t,p-d,u-h,e,u,e),this.bezierCurveTo(u+h,e,l,p-d,l,p),this.lineTo(l,m),this.bezierCurveTo(l,m+d,u+h,g,u,g),this.bezierCurveTo(u-h,g,t,m+d,t,m),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,s){var n=t-s*Math.cos(i),o=e-s*Math.sin(i),a=t-.9*s*Math.cos(i),r=e-.9*s*Math.sin(i),h=n+s/3*Math.cos(i+.5*Math.PI),d=o+s/3*Math.sin(i+.5*Math.PI),l=n+s/3*Math.cos(i-.5*Math.PI),c=o+s/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(a,r),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,s,n){n||(n=[10,5]),0==u&&(u=.001);var o=n.length;this.moveTo(t,e);for(var a=i-t,r=s-e,h=r/a,d=Math.sqrt(a*a+r*r),l=0,c=!0;d>=.1;){var u=n[l++%o];u>d&&(u=d);var p=Math.sqrt(u*u/(1+h*h));0>a&&(p=-p),t+=p,e+=h*p,this[c?"lineTo":"moveTo"](t,e),d-=u,c=!c}}),Node.prototype.resetCluster=function(){this.formationScale=void 0,this.clusterSize=1,this.containedNodes={},this.containedEdges={},this.clusterSessions=[]},Node.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),-1==this.dynamicEdges.indexOf(t)&&this.dynamicEdges.push(t),this.dynamicEdgesLength=this.dynamicEdges.length},Node.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&(this.edges.splice(e,1),this.dynamicEdges.splice(e,1)),this.dynamicEdgesLength=this.dynamicEdges.length},Node.prototype.setProperties=function(t,e){if(t){if(this.originalLabel=void 0,void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.group&&(this.group=t.group),void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.mass&&(this.mass=t.mass),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if(this.group){var i=this.grouplist.get(this.group);for(var s in i)i.hasOwnProperty(s)&&(this[s]=i[s])}if(void 0!==t.shape&&(this.shape=t.shape),void 0!==t.image&&(this.image=t.image),void 0!==t.radius&&(this.radius=t.radius),void 0!==t.color&&(this.color=util.parseColor(t.color)),void 0!==t.fontColor&&(this.fontColor=t.fontColor),void 0!==t.fontSize&&(this.fontSize=t.fontSize),void 0!==t.fontFace&&(this.fontFace=t.fontFace),void 0!==this.image&&""!=this.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.image)}switch(this.xFixed=this.xFixed||void 0!==t.x&&!t.allowedToMoveX,this.yFixed=this.yFixed||void 0!==t.y&&!t.allowedToMoveY,this.radiusFixed=this.radiusFixed||void 0!==t.radius,"image"==this.shape&&(this.radiusMin=e.nodes.widthMin,this.radiusMax=e.nodes.widthMax),this.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},Node.prototype.select=function(){this.selected=!0,this._reset()},Node.prototype.unselect=function(){this.selected=!1,this._reset()},Node.prototype.clearSizeCache=function(){this._reset()},Node.prototype._reset=function(){this.width=void 0,this.height=void 0},Node.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},Node.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.shape){case"circle":case"dot":return this.radius+i;case"ellipse":var s=this.width/2,n=this.height/2,o=Math.sin(e)*s,a=Math.cos(e)*n;return s*n/Math.sqrt(o*o+a*a);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},Node.prototype._setForce=function(t,e){this.fx=t,this.fy=e},Node.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},Node.prototype.discreteStep=function(t){if(!this.xFixed){var e=this.damping*this.vx,i=(this.fx-e)/this.mass;this.vx+=i*t,this.x+=this.vx*t}if(!this.yFixed){var s=this.damping*this.vy,n=(this.fy-s)/this.mass;this.vy+=n*t,this.y+=this.vy*t}},Node.prototype.discreteStepLimited=function(t,e){if(this.xFixed)this.fx=0;else{var i=this.damping*this.vx,s=(this.fx-i)/this.mass;this.vx+=s*t,this.vx=Math.abs(this.vx)>e?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0;else{var n=this.damping*this.vy,o=(this.fy-n)/this.mass;this.vy+=o*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},Node.prototype.isFixed=function(){return this.xFixed&&this.yFixed},Node.prototype.isMoving=function(t){return Math.abs(this.vx)>t||Math.abs(this.vy)>t},Node.prototype.isSelected=function(){return this.selected},Node.prototype.getValue=function(){return this.value},Node.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},Node.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value)if(e==t)this.radius=(this.radiusMin+this.radiusMax)/2;else{var i=(this.radiusMax-this.radiusMin)/(e-t);this.radius=(this.value-t)*i+this.radiusMin}this.baseRadiusValue=this.radius},Node.prototype.draw=function(){throw"Draw method not initialized for node"},Node.prototype.resize=function(){throw"Resize method not initialized for node"},Node.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},Node.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.radius||this.imageObj.width,e=this.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},Node.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;if(0!=this.imageObj.width){if(this.clusterSize>1){var i=this.clusterSize>1?10:0;i*=this.graphScaleInv,i=Math.min(.2*this.width,i),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-i,this.top-i,this.width+2*i,this.height+2*i)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2}else e=this.y;this._label(t,this.label,this.x,e,void 0,"top")},Node.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.growthIndicator=this.width-(i.width+2*e)}},Node.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=2;t.strokeStyle=this.selected?this.color.highlight.border:this.hover?this.color.hover.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.roundRect(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth,this.radius),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=i.width+2*e;this.width=s,this.height=s,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-s}},Node.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=2;t.strokeStyle=this.selected?this.color.highlight.border:this.hover?this.color.hover.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.database(this.x-this.width/2-2*t.lineWidth,this.y-.5*this.height-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.hover?this.color.hover.background:this.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.radius=s/2,this.width=s,this.height=s,this.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.radius-.5*s}},Node.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=2;t.strokeStyle=this.selected?this.color.highlight.border:this.hover?this.color.hover.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.circle(this.x,this.y,this.radius+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.hover?this.color.hover.background:this.color.background,t.circle(this.x,this.y,this.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.width1&&(t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.ellipse(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?i:1)+(this.clusterSize>1?e:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.hover?this.color.hover.background:this.color.background,t.ellipse(this.left,this.top,this.width,this.height),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},Node.prototype._drawDot=function(t){this._drawShape(t,"circle")},Node.prototype._drawTriangle=function(t){this._drawShape(t,"triangle")},Node.prototype._drawTriangleDown=function(t){this._drawShape(t,"triangleDown")},Node.prototype._drawSquare=function(t){this._drawShape(t,"square")},Node.prototype._drawStar=function(t){this._drawShape(t,"star")},Node.prototype._resizeShape=function(){if(!this.width){this.radius=this.baseRadiusValue;var t=2*this.radius;this.width=t,this.height=t,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t}},Node.prototype._drawShape=function(t,e){this._resizeShape(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var i=2.5,s=2,n=2;switch(e){case"dot":n=2;break;case"square":n=2;break;case"triangle":n=3;break;case"triangleDown":n=3;break;case"star":n=4}t.strokeStyle=this.selected?this.color.highlight.border:this.hover?this.color.hover.border:this.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:1)+(this.clusterSize>1?i:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t[e](this.x,this.y,this.radius+n*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:1)+(this.clusterSize>1?i:0),t.lineWidth*=this.graphScaleInv,t.lineWidth=Math.min(.1*this.width,t.lineWidth),t.fillStyle=this.selected?this.color.highlight.background:this.hover?this.color.hover.background:this.color.background,t[e](this.x,this.y,this.radius),t.fill(),t.stroke(),this.label&&this._label(t,this.label,this.x,this.y+this.height/2,void 0,"top") +},Node.prototype._resizeText=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e)}},Node.prototype._drawText=function(t){this._resizeText(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._label(t,this.label,this.x,this.y)},Node.prototype._label=function(t,e,i,s,n,o){if(e&&this.fontSize*this.graphScale>this.fontDrawThreshold){t.font=(this.selected?"bold ":"")+this.fontSize+"px "+this.fontFace,t.fillStyle=this.fontColor||"black",t.textAlign=n||"center",t.textBaseline=o||"middle";for(var a=e.split("\n"),r=a.length,h=this.fontSize+4,d=s+(1-r)/2*h,l=0;r>l;l++)t.fillText(a[l],i,d),d+=h}},Node.prototype.getTextSize=function(t){if(void 0!==this.label){t.font=(this.selected?"bold ":"")+this.fontSize+"px "+this.fontFace;for(var e=this.label.split("\n"),i=(this.fontSize+4)*e.length,s=0,n=0,o=e.length;o>n;n++)s=Math.max(s,t.measureText(e[n]).width);return{width:s,height:i}}return{width:0,height:0}},Node.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.graphScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.graphScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.graphScaleInv=this.canvasTopLeft.x&&this.x=this.canvasTopLeft.y&&this.yh}return!1},Edge.prototype._drawLine=function(t){if(t.strokeStyle=1==this.selected?this.color.highlight:1==this.hover?this.color.hover:this.color.color,t.lineWidth=this._getLineWidth(),this.from!=this.to){this._line(t);var e;if(this.label){if(1==this.smooth){var i=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),s=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));e={x:i,y:s}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,o,a=this.length/4,r=this.from;r.width||r.resize(t),r.width>r.height?(n=r.x+r.width/2,o=r.y-a):(n=r.x+a,o=r.y-r.height/2),this._circle(t,n,o,a),e=this._pointOnCircle(n,o,a,.5),this._label(t,this.label,e.x,e.y)}},Edge.prototype._getLineWidth=function(){return 1==this.selected?Math.min(2*this.width,this.widthMax)*this.graphScaleInv:1==this.hover?Math.min(this.hoverWidth,this.widthMax)*this.graphScaleInv:this.width*this.graphScaleInv},Edge.prototype._line=function(t){t.beginPath(),t.moveTo(this.from.x,this.from.y),1==this.smooth?t.quadraticCurveTo(this.via.x,this.via.y,this.to.x,this.to.y):t.lineTo(this.to.x,this.to.y),t.stroke()},Edge.prototype._circle=function(t,e,i,s){t.beginPath(),t.arc(e,i,s,0,2*Math.PI,!1),t.stroke()},Edge.prototype._label=function(t,e,i,s){if(e){t.font=(this.from.selected||this.to.selected?"bold ":"")+this.fontSize+"px "+this.fontFace,t.fillStyle=this.fontFill;var n=t.measureText(e).width,o=this.fontSize,a=i-n/2,r=s-o/2;t.fillRect(a,r,n,o),t.fillStyle=this.fontColor||"black",t.textAlign="left",t.textBaseline="top",t.fillText(e,a,r)}},Edge.prototype._drawDashLine=function(t){if(t.strokeStyle=1==this.selected?this.color.highlight:1==this.hover?this.color.hover:this.color.color,t.lineWidth=this._getLineWidth(),void 0!==t.mozDash||void 0!==t.setLineDash){t.beginPath(),t.moveTo(this.from.x,this.from.y);var e=[0];e=void 0!==this.dash.length&&void 0!==this.dash.gap?[this.dash.length,this.dash.gap]:[5,5],"undefined"!=typeof t.setLineDash?(t.setLineDash(e),t.lineDashOffset=0):(t.mozDash=e,t.mozDashOffset=0),1==this.smooth?t.quadraticCurveTo(this.via.x,this.via.y,this.to.x,this.to.y):t.lineTo(this.to.x,this.to.y),t.stroke(),"undefined"!=typeof t.setLineDash?(t.setLineDash([0]),t.lineDashOffset=0):(t.mozDash=[0],t.mozDashOffset=0)}else t.beginPath(),t.lineCap="round",void 0!==this.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.dash.length,this.dash.gap,this.dash.altLength,this.dash.gap]):void 0!==this.dash.length&&void 0!==this.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.dash.length,this.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var i;if(1==this.smooth){var s=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),n=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));i={x:s,y:n}}else i=this._pointOnLine(.5);this._label(t,this.label,i.x,i.y)}},Edge.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},Edge.prototype._pointOnCircle=function(t,e,i,s){var n=2*(s-3/8)*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}},Edge.prototype._drawArrowCenter=function(t){var e;if(1==this.selected?(t.strokeStyle=this.color.highlight,t.fillStyle=this.color.highlight):1==this.hover?(t.strokeStyle=this.color.hover,t.fillStyle=this.color.hover):(t.strokeStyle=this.color.color,t.fillStyle=this.color.color),t.lineWidth=this._getLineWidth(),this.from!=this.to){this._line(t);var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=(10+5*this.width)*this.arrowScaleFactor;if(1==this.smooth){var n=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),o=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));e={x:n,y:o}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,i,s),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,r,h=.25*Math.max(100,this.length),d=this.from;d.width||d.resize(t),d.width>d.height?(a=d.x+.5*d.width,r=d.y-h):(a=d.x+h,r=d.y-.5*d.height),this._circle(t,a,r,h);var i=.2*Math.PI,s=(10+5*this.width)*this.arrowScaleFactor;e=this._pointOnCircle(a,r,h,.5),t.arrow(e.x,e.y,i,s),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,r,h,.5),this._label(t,this.label,e.x,e.y))}},Edge.prototype._drawArrow=function(t){1==this.selected?(t.strokeStyle=this.color.highlight,t.fillStyle=this.color.highlight):1==this.hover?(t.strokeStyle=this.color.hover,t.fillStyle=this.color.hover):(t.strokeStyle=this.color.color,t.fillStyle=this.color.color),t.lineWidth=this._getLineWidth();var e,i;if(this.from!=this.to){e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var s=this.to.x-this.from.x,n=this.to.y-this.from.y,o=Math.sqrt(s*s+n*n),a=this.from.distanceToBorder(t,e+Math.PI),r=(o-a)/o,h=r*this.from.x+(1-r)*this.to.x,d=r*this.from.y+(1-r)*this.to.y;1==this.smooth&&(e=Math.atan2(this.to.y-this.via.y,this.to.x-this.via.x),s=this.to.x-this.via.x,n=this.to.y-this.via.y,o=Math.sqrt(s*s+n*n));var l,c,u=this.to.distanceToBorder(t,e),p=(o-u)/o;if(1==this.smooth?(l=(1-p)*this.via.x+p*this.to.x,c=(1-p)*this.via.y+p*this.to.y):(l=(1-p)*this.from.x+p*this.to.x,c=(1-p)*this.from.y+p*this.to.y),t.beginPath(),t.moveTo(h,d),1==this.smooth?t.quadraticCurveTo(this.via.x,this.via.y,l,c):t.lineTo(l,c),t.stroke(),i=(10+5*this.width)*this.arrowScaleFactor,t.arrow(l,c,e,i),t.fill(),t.stroke(),this.label){var m;if(1==this.smooth){var g=.5*(.5*(this.from.x+this.via.x)+.5*(this.to.x+this.via.x)),f=.5*(.5*(this.from.y+this.via.y)+.5*(this.to.y+this.via.y));m={x:g,y:f}}else m=this._pointOnLine(.5);this._label(t,this.label,m.x,m.y)}}else{var v,y,_,b=this.from,x=.25*Math.max(100,this.length);b.width||b.resize(t),b.width>b.height?(v=b.x+.5*b.width,y=b.y-x,_={x:v,y:b.y,angle:.9*Math.PI}):(v=b.x+x,y=b.y-.5*b.height,_={x:b.x,y:y,angle:.6*Math.PI}),t.beginPath(),t.arc(v,y,x,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.width)*this.arrowScaleFactor;t.arrow(_.x,_.y,_.angle,i),t.fill(),t.stroke(),this.label&&(m=this._pointOnCircle(v,y,x,.5),this._label(t,this.label,m.x,m.y))}},Edge.prototype._getDistanceToEdge=function(t,e,i,s,n,o){if(1==this.smooth){var a,r,h,d,l,c,u=1e9;for(a=0;10>a;a++)r=.1*a,h=Math.pow(1-r,2)*t+2*r*(1-r)*this.via.x+Math.pow(r,2)*i,d=Math.pow(1-r,2)*e+2*r*(1-r)*this.via.y+Math.pow(r,2)*s,l=Math.abs(n-h),c=Math.abs(o-d),u=Math.min(u,Math.sqrt(l*l+c*c));return u}var p=i-t,m=s-e,g=p*p+m*m,f=((n-t)*p+(o-e)*m)/g;f>1?f=1:0>f&&(f=0);var h=t+f*p,d=e+f*m,l=h-n,c=d-o;return Math.sqrt(l*l+c*c)},Edge.prototype.setScale=function(t){this.graphScaleInv=1/t},Edge.prototype.select=function(){this.selected=!0},Edge.prototype.unselect=function(){this.selected=!1},Edge.prototype.positionBezierNode=function(){null!==this.via&&(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y))},Popup.prototype.setPosition=function(t,e){this.x=parseInt(t),this.y=parseInt(e)},Popup.prototype.setText=function(t){this.frame.innerHTML=t},Popup.prototype.show=function(t){if(void 0===t&&(t=!0),t){var e=this.frame.clientHeight,i=this.frame.clientWidth,s=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,o=this.y-e;o+e+this.padding>s&&(o=s-e-this.padding),on&&(a=n-i-this.padding),athis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},_calculateForces:function(){this._calculateGravitationalForces(),this._calculateNodeForces(),1==this.constants.smoothCurves?this._calculateSpringForcesWithSupport():this._calculateSpringForces()},_updateCalculationNodes:function(){if(1==this.constants.smoothCurves){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},_calculateGravitationalForces:function(){var t,e,i,s,n,o=this.calculationNodes,a=this.constants.physics.centralGravity,r=0;for(n=0;nSimulation Mode:Barnes HutRepulsionHierarchical
Options:
',this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement);var e;e=document.getElementById("graph_BH_gc"),e.onchange=showValueOfRange.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),e=document.getElementById("graph_BH_cg"),e.onchange=showValueOfRange.bind(this,"graph_BH_cg",1,"physics_centralGravity"),e=document.getElementById("graph_BH_sc"),e.onchange=showValueOfRange.bind(this,"graph_BH_sc",1,"physics_springConstant"),e=document.getElementById("graph_BH_sl"),e.onchange=showValueOfRange.bind(this,"graph_BH_sl",1,"physics_springLength"),e=document.getElementById("graph_BH_damp"),e.onchange=showValueOfRange.bind(this,"graph_BH_damp",1,"physics_damping"),e=document.getElementById("graph_R_nd"),e.onchange=showValueOfRange.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),e=document.getElementById("graph_R_cg"),e.onchange=showValueOfRange.bind(this,"graph_R_cg",1,"physics_centralGravity"),e=document.getElementById("graph_R_sc"),e.onchange=showValueOfRange.bind(this,"graph_R_sc",1,"physics_springConstant"),e=document.getElementById("graph_R_sl"),e.onchange=showValueOfRange.bind(this,"graph_R_sl",1,"physics_springLength"),e=document.getElementById("graph_R_damp"),e.onchange=showValueOfRange.bind(this,"graph_R_damp",1,"physics_damping"),e=document.getElementById("graph_H_nd"),e.onchange=showValueOfRange.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),e=document.getElementById("graph_H_cg"),e.onchange=showValueOfRange.bind(this,"graph_H_cg",1,"physics_centralGravity"),e=document.getElementById("graph_H_sc"),e.onchange=showValueOfRange.bind(this,"graph_H_sc",1,"physics_springConstant"),e=document.getElementById("graph_H_sl"),e.onchange=showValueOfRange.bind(this,"graph_H_sl",1,"physics_springLength"),e=document.getElementById("graph_H_damp"),e.onchange=showValueOfRange.bind(this,"graph_H_damp",1,"physics_damping"),e=document.getElementById("graph_H_direction"),e.onchange=showValueOfRange.bind(this,"graph_H_direction",t,"hierarchicalLayout_direction"),e=document.getElementById("graph_H_levsep"),e.onchange=showValueOfRange.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),e=document.getElementById("graph_H_nspac"),e.onchange=showValueOfRange.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing");var i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2"),n=document.getElementById("graph_physicsMethod3");s.checked=!0,this.constants.physics.barnesHut.enabled&&(i.checked=!0),this.constants.hierarchicalLayout.enabled&&(n.checked=!0);var o=document.getElementById("graph_toggleSmooth"),a=document.getElementById("graph_repositionNodes"),r=document.getElementById("graph_generateOptions");o.onclick=graphToggleSmoothCurves.bind(this),a.onclick=graphRepositionNodes.bind(this),r.onclick=graphGenerateOptions.bind(this),o.style.background=1==this.constants.smoothCurves?"#A4FF56":"#FF8532",switchConfigurations.apply(this),i.onchange=switchConfigurations.bind(this),s.onchange=switchConfigurations.bind(this),n.onchange=switchConfigurations.bind(this)}},_overWriteGraphConstants:function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},hierarchalRepulsionMixin={_calculateNodeForces:function(){var t,e,i,s,n,o,a,r,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,u=5,p=.5*-u,m=this.constants.physics.hierarchicalRepulsion.nodeDistance,g=m;for(h=0;hi&&(o=f*i+u,0==i?i=.01:o/=i,s=t*o,n=e*o,a.fx-=s,a.fy-=n,r.fx+=s,r.fy+=n)}}},barnesHutMixin={_calculateNodeForces:function(){if(0!=this.constants.physics.barnesHut.gravitationalConstant){var t,e=this.calculationNodes,i=this.calculationNodeIndices,s=i.length;this._formBarnesHutTree(e,i);for(var n=this.barnesHutTree,o=0;s>o;o++)t=e[i[o]],this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t)}},_getForceContribution:function(t,e){if(t.childrenCount>0){var i,s,n;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+s*s),n*t.calcSize>this.constants.physics.barnesHut.theta){0==n&&(n=.1*Math.random(),i=n);var o=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.mass/(n*n*n),a=i*o,r=s*o;e.fx+=a,e.fy+=r}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==n&&(n=.5*Math.random(),i=n);var o=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.mass/(n*n*n),a=i*o,r=s*o;e.fx+=a,e.fy+=r}}},_formBarnesHutTree:function(t,e){for(var i,s=e.length,n=Number.MAX_VALUE,o=Number.MAX_VALUE,a=-Number.MAX_VALUE,r=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,l=t[e[h]].y;n>d&&(n=d),d>a&&(a=d),o>l&&(o=l),l>r&&(r=l)}var c=Math.abs(a-n)-Math.abs(r-o);c>0?(o-=.5*c,r+=.5*c):(n+=.5*c,a-=.5*c);var u=1e-5,p=Math.max(u,Math.abs(a-n)),m=.5*p,g=.5*(n+a),f=.5*(o+r),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:g-m,maxX:g+m,minY:f-m,maxY:f+m},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],this._placeInTree(v.root,i);this.barnesHutTree=v},_updateBranchMass:function(t,e){var i=t.mass+e.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.mass,t.centerOfMass.y*=s,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")},_placeInRegion:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x==e.x&&t.children[i].children.data.y==e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}},_splitBranch:function(t){var e=null;1==t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)},_insertRegion:function(t,e){var i,s,n,o,a=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+a,n=t.range.minY,o=t.range.minY+a;break;case"NE":i=t.range.minX+a,s=t.range.maxX,n=t.range.minY,o=t.range.minY+a;break;case"SW":i=t.range.minX,s=t.range.minX+a,n=t.range.minY+a,o=t.range.maxY;break;case"SE":i=t.range.minX+a,s=t.range.maxX,n=t.range.minY+a,o=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:n,maxY:o},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},_drawTree:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},_drawBranch:function(t,e,i){void 0===i&&(i="#FF0000"),4==t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}},repulsionMixin={_calculateNodeForces:function(){var t,e,i,s,n,o,a,r,h,d,l,c=this.calculationNodes,u=this.calculationNodeIndices,p=-2/3,m=4/3,g=this.constants.physics.repulsion.nodeDistance,f=g;for(d=0;di&&(a=.5*f>i?1:v*i+m,a*=0==o?1:1+o*this.constants.clustering.forceAmplification,a/=i,s=t*a,n=e*a,r.fx-=s,r.fy-=n,h.fx+=s,h.fy+=n)}}},HierarchicalLayoutMixin={_resetLevels:function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];0==e.preassignedLevel&&(e.level=-1)}},_setupHierarchicalLayout:function(){if(1==this.constants.hierarchicalLayout.enabled&&this.nodeIndices.length>0){"RL"==this.constants.hierarchicalLayout.direction||"DU"==this.constants.hierarchicalLayout.direction?this.constants.hierarchicalLayout.levelSeparation*=-1:this.constants.hierarchicalLayout.levelSeparation=Math.abs(this.constants.hierarchicalLayout.levelSeparation);var t,e,i=0,s=!1,n=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:n=!0,is&&(o.xFixed=!1,o.x=i[o.level].minPos,a=!0):o.yFixed&&o.level>s&&(o.yFixed=!1,o.y=i[o.level].minPos,a=!0),1==a&&(i[o.level].minPos+=i[o.level].nodeSpacing,o.edges.length>1&&this._placeBranchNodes(o.edges,o.id,i,o.level))}},_setLevel:function(t,e,i){for(var s=0;st)&&(n.level=t,e.length>1&&this._setLevel(t+1,n.edges,n.id))}},_restoreNodes:function(){for(nodeId in this.nodes)this.nodes.hasOwnProperty(nodeId)&&(this.nodes[nodeId].xFixed=!1,this.nodes[nodeId].yFixed=!1)}},manipulationMixin={_clearManipulatorBar:function(){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild)},_restoreOverloadedFunctions:function(){for(var t in this.cachedFunctions)this.cachedFunctions.hasOwnProperty(t)&&(this[t]=this.cachedFunctions[t])},_toggleEditMode:function(){this.editMode=!this.editMode;var t=document.getElementById("graph-manipulationDiv"),e=document.getElementById("graph-manipulation-closeDiv"),i=document.getElementById("graph-manipulation-editMode");1==this.editMode?(t.style.display="block",e.style.display="block",i.style.display="none",e.onclick=this._toggleEditMode.bind(this)):(t.style.display="none",e.style.display="none",i.style.display="block",e.onclick=null),this._createManipulatorBar()},_createManipulatorBar:function(){if(this.boundFunction&&this.off("select",this.boundFunction),this._restoreOverloadedFunctions(),this.freezeSimulation=!1,this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,1==this.editMode){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDiv.innerHTML=""+this.constants.labels.add+"
"+this.constants.labels.link+"",1==this._getSelectedNodeCount()&&this.triggerFunctions.edit&&(this.manipulationDiv.innerHTML+="
"+this.constants.labels.editNode+""),0==this._selectionIsEmpty()&&(this.manipulationDiv.innerHTML+="
"+this.constants.labels.del+"");var t=document.getElementById("graph-manipulate-addNode");t.onclick=this._createAddNodeToolbar.bind(this);var e=document.getElementById("graph-manipulate-connectNode");if(e.onclick=this._createAddEdgeToolbar.bind(this),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit){var i=document.getElementById("graph-manipulate-editNode");i.onclick=this._editNode.bind(this)}if(0==this._selectionIsEmpty()){var s=document.getElementById("graph-manipulate-delete");s.onclick=this._deleteSelected.bind(this)}var n=document.getElementById("graph-manipulation-closeDiv");n.onclick=this._toggleEditMode.bind(this),this.boundFunction=this._createManipulatorBar.bind(this),this.on("select",this.boundFunction)}else{this.editModeDiv.innerHTML=""+this.constants.labels.edit+"";var o=document.getElementById("graph-manipulate-editModeButton");o.onclick=this._toggleEditMode.bind(this)}},_createAddNodeToolbar:function(){this._clearManipulatorBar(),this.boundFunction&&this.off("select",this.boundFunction),this.manipulationDiv.innerHTML=""+this.constants.labels.back+"
"+this.constants.labels.addDescription+"";var t=document.getElementById("graph-manipulate-back");t.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._addNode.bind(this),this.on("select",this.boundFunction)},_createAddEdgeToolbar:function(){this._clearManipulatorBar(),this._unselectAll(!0),this.freezeSimulation=!0,this.boundFunction&&this.off("select",this.boundFunction),this._unselectAll(),this.forceAppendSelection=!1,this.blockConnectingEdgeSelection=!0,this.manipulationDiv.innerHTML=""+this.constants.labels.back+"
"+this.constants.labels.linkDescription+"";var t=document.getElementById("graph-manipulate-back");t.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._handleConnect.bind(this),this.on("select",this.boundFunction),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._handleOnRelease=this._handleOnRelease,this._handleTouch=this._handleConnect,this._handleOnRelease=this._finishConnect,this._redraw()},_handleConnect:function(t){if(0==this._getSelectedNodeCount()){var e=this._getNodeAt(t);null!=e&&(e.clusterSize>1?alert("Cannot create edges to a cluster."):(this._selectObject(e,!1),this.sectors.support.nodes.targetNode=new Node({id:"targetNode"},{},{},this.constants),this.sectors.support.nodes.targetNode.x=e.x,this.sectors.support.nodes.targetNode.y=e.y,this.sectors.support.nodes.targetViaNode=new Node({id:"targetViaNode"},{},{},this.constants),this.sectors.support.nodes.targetViaNode.x=e.x,this.sectors.support.nodes.targetViaNode.y=e.y,this.sectors.support.nodes.targetViaNode.parentEdgeId="connectionEdge",this.edges.connectionEdge=new Edge({id:"connectionEdge",from:e.id,to:this.sectors.support.nodes.targetNode.id},this,this.constants),this.edges.connectionEdge.from=e,this.edges.connectionEdge.connected=!0,this.edges.connectionEdge.smooth=!0,this.edges.connectionEdge.selected=!0,this.edges.connectionEdge.to=this.sectors.support.nodes.targetNode,this.edges.connectionEdge.via=this.sectors.support.nodes.targetViaNode,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center);this.sectors.support.nodes.targetNode.x=this._XconvertDOMtoCanvas(e.x),this.sectors.support.nodes.targetNode.y=this._YconvertDOMtoCanvas(e.y),this.sectors.support.nodes.targetViaNode.x=.5*(this._XconvertDOMtoCanvas(e.x)+this.edges.connectionEdge.from.x),this.sectors.support.nodes.targetViaNode.y=this._YconvertDOMtoCanvas(e.y)},this.moving=!0,this.start()))}},_finishConnect:function(t){if(1==this._getSelectedNodeCount()){this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var e=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var i=this._getNodeAt(t);null!=i&&(i.clusterSize>1?alert("Cannot create edges to a cluster."):(this._createEdge(e,i.id),this._createManipulatorBar())),this._unselectAll()}},_addNode:function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:util.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add)if(2==this.triggerFunctions.add.length){var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else alert(this.constants.labels.addError),this._createManipulatorBar(),this.moving=!0,this.start();else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},_createEdge:function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect)if(2==this.triggerFunctions.connect.length){var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else alert(this.constants.labels.linkError),this.moving=!0,this.start();else this.edgesData.add(i),this.moving=!0,this.start()}},_editNode:function(){if(this.triggerFunctions.edit&&1==this.editMode){var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.group,shape:t.shape,color:{background:t.color.background,border:t.color.border,highlight:{background:t.color.highlight.background,border:t.color.highlight.border}}};if(2==this.triggerFunctions.edit.length){var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else alert(this.constants.labels.editError)}else alert(this.constants.labels.editBoundError)},_deleteSelected:function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.labels.deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};(this.triggerFunctions.del.length=2)?this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()}):alert(this.constants.labels.deleteError)}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},SectorMixin={_putDataInSector:function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},_switchToSector:function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},_switchToActiveSector:function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},_switchToSupportSector:function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},_switchToFrozenSector:function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},_loadLatestSector:function(){this._switchToSector(this._sector())},_sector:function(){return this.activeSector[this.activeSector.length-1]},_previousSector:function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},_setActiveSector:function(t){this.activeSector.push(t)},_forgetLastSector:function(){this.activeSector.pop()},_createNewSector:function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new Node({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},_deleteActiveSector:function(t){delete this.sectors.active[t]},_deleteFrozenSector:function(t){delete this.sectors.frozen[t]},_freezeSector:function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},_activateSector:function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},_mergeThisWithFrozen:function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},_doInSupportSector:function(t,e){if(void 0===e)this._switchToSupportSector(),this[t]();else{this._switchToSupportSector();var i=Array.prototype.splice.call(arguments,1);i.length>1?this[t](i[0],i[1]):this[t](e)}this._loadLatestSector()},_doInAllFrozenSectors:function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},_doInAllSectors:function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},_clearNodeIndexList:function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},_drawSectorNodes:function(t,e){var i,s=1e9,n=-1e9,o=1e9,a=-1e9;for(var r in this.sectors[e])if(this.sectors[e].hasOwnProperty(r)&&void 0!==this.sectors[e][r].drawingNode){this._switchToSector(r,e),s=1e9,n=-1e9,o=1e9,a=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),o>i.x-.5*i.width&&(o=i.x-.5*i.width),ai.y-.5*i.height&&(s=i.y-.5*i.height),nt&&s>n;)n%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),i=this.nodeIndices.length,n+=1;n>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},openCluster:function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},updateClustersDefault:function(){1==this.constants.clustering.enabled&&this.updateClusters(0,!1,!1)},increaseClusterLevel:function(){this.updateClusters(-1,!1,!0)},decreaseClusterLevel:function(){this.updateClusters(1,!1,!0)},updateClusters:function(t,e,i,s){var n=this.moving,o=this.nodeIndices.length;this.previousScale>this.scale&&0==t&&this._collapseSector(),this.previousScale>this.scale||-1==t?this._formClusters(i):(this.previousScalethis.scale||-1==t)&&(this._aggregateHubs(i),this._updateNodeIndexList()),(this.previousScale>this.scale||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},_aggregateHubs:function(t){this._getHubSize(),this._formClustersByHub(t,!1)},forceAggregateHubs:function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},_openClustersBySize:function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},_openClusters:function(t,e){for(var i=0;i1&&(t.clusterSizei)){var a=o.from,r=o.to;o.to.mass>o.from.mass&&(a=o.to,r=o.from),1==r.dynamicEdgesLength?this._addToCluster(a,r,!1):1==a.dynamicEdgesLength&&this._addToCluster(r,a,!1)}}},_forceClustersByZoom:function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdgesLength&&0!=e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.mass>e.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},_clusterToSmallestNeighbour:function(t){for(var e=-1,i=null,s=0;sn.clusterSessions.length&&(e=n.clusterSessions.length,i=n)}null!=n&&void 0!==this.nodes[n.id]&&this._addToCluster(n,t,!0)},_formClustersByHub:function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},_formClusterFromHub:function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdgesLength>=this.hubThreshold&&0==i||t.dynamicEdgesLength==this.hubThreshold&&1==i){for(var n,o,a,r=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],l=t.dynamicEdges.length,c=0;l>c;c++)d.push(t.dynamicEdges[c].id);if(0==e)for(h=!1,c=0;l>c;c++){var u=this.edges[d[c]];if(void 0!==u&&u.connected&&u.toId!=u.fromId&&(n=u.to.x-u.from.x,o=u.to.y-u.from.y,a=Math.sqrt(n*n+o*o),r>a)){h=!0;break}}if(!e&&h||e)for(c=0;l>c;c++)if(u=this.edges[d[c]],void 0!==u){var p=this.nodes[u.fromId==t.id?u.toId:u.fromId];p.dynamicEdges.length<=this.hubThreshold+s&&p.id!=t.id&&this._addToCluster(t,p,e)}}},_addToCluster:function(t,e,i){t.containedNodes[e.id]=e;for(var s=0;s1)for(var s=0;s1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},normalizeClusterLevels:function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var n=this.nodeIndices.length,o=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=o.dynamicEdgesLength),t+=o.dynamicEdgesLength,e+=Math.pow(o.dynamicEdgesLength,2),i+=1}t/=i,e/=i;var a=e-Math.pow(t,2),r=Math.sqrt(a);this.hubThreshold=Math.floor(t+2*r),this.hubThreshold>s&&(this.hubThreshold=s)},_reduceAmountOfChains:function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t); +for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},_getChainFraction:function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&(t+=1),e+=1);return t/e}},SelectionMixin={_getNodesOverlappingWith:function(t,e){var i=this.nodes;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},_getAllNodesOverlappingWith:function(t){var e=[];return this._doInAllActiveSectors("_getNodesOverlappingWith",t,e),e},_pointerToPositionObject:function(t){var e=this._XconvertDOMtoCanvas(t.x),i=this._YconvertDOMtoCanvas(t.y);return{left:e,top:i,right:e,bottom:i}},_getNodeAt:function(t){var e=this._pointerToPositionObject(t),i=this._getAllNodesOverlappingWith(e);return i.length>0?this.nodes[i[i.length-1]]:null},_getEdgesOverlappingWith:function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},_getAllEdgesOverlappingWith:function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},_getEdgeAt:function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},_addToSelection:function(t){t instanceof Node?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},_addToHover:function(t){t instanceof Node?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},_removeFromSelection:function(t){t instanceof Node?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},_unselectAll:function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},_unselectClusters:function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},_getSelectedNodeCount:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},_getSelectedNode:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},_getSelectedEdgeCount:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},_getSelectedObjectCount:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},_selectionIsEmpty:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},_clusterInSelection:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},_selectConnectedEdges:function(t){for(var e=0;ee;e++){s=t[e];var n=this.nodes[s];if(!n)throw new RangeError('Node with id "'+s+'" not found');this._selectObject(n,!0,!0)}this.redraw()},_updateSelection:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},NavigationMixin={_cleanNavigation:function(){var t=document.getElementById("graph-navigation_wrapper");null!=t&&this.containerElement.removeChild(t),document.onmouseup=null},_loadNavigationElements:function(){this._cleanNavigation(),this.navigationDivs={};var t=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],e=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","zoomExtent"];this.navigationDivs.wrapper=document.createElement("div"),this.navigationDivs.wrapper.id="graph-navigation_wrapper",this.navigationDivs.wrapper.style.position="absolute",this.navigationDivs.wrapper.style.width=this.frame.canvas.clientWidth+"px",this.navigationDivs.wrapper.style.height=this.frame.canvas.clientHeight+"px",this.containerElement.insertBefore(this.navigationDivs.wrapper,this.frame);for(var i=0;it.x&&(s=t.x),nt.y&&(e=t.y),i=this.constants.clustering.initialMaxNodes?49.07548/(n+142.05338)+91444e-8:12.662/(n+7.4147)+.0964822:1==this.constants.clustering.enabled&&n>=this.constants.clustering.initialMaxNodes?77.5271985/(n+187.266146)+476710517e-13:30.5062972/(n+19.93597763)+.08413486;var o=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);i*=o}else{var a=1.1*(Math.abs(s.minX)+Math.abs(s.maxX)),r=1.1*(Math.abs(s.minY)+Math.abs(s.maxY)),h=this.frame.canvas.clientWidth/a,d=this.frame.canvas.clientHeight/r;i=d>=h?h:d}i>1&&(i=1),this._setScale(i),this._centerGraph(s),0==e&&(this.moving=!0,this.start())},Graph.prototype._updateNodeIndexList=function(){this._clearNodeIndexList();for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodeIndices.push(t)},Graph.prototype.setData=function(t,e){if(void 0===e&&(e=!1),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=vis.util.DOTToGraph(t.dot);return void this.setData(i)}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);if(this._putDataInSector(),!e)if(this.stabilize){var s=this;setTimeout(function(){s._stabilize(),s.start()},0)}else this.start()},Graph.prototype.setOptions=function(t){if(t){var e;if(void 0!==t.width&&(this.width=t.width),void 0!==t.height&&(this.height=t.height),void 0!==t.stabilize&&(this.stabilize=t.stabilize),void 0!==t.selectable&&(this.selectable=t.selectable),void 0!==t.smoothCurves&&(this.constants.smoothCurves=t.smoothCurves),void 0!==t.freezeForStabilization&&(this.constants.freezeForStabilization=t.freezeForStabilization),void 0!==t.configurePhysics&&(this.constants.configurePhysics=t.configurePhysics),void 0!==t.stabilizationIterations&&(this.constants.stabilizationIterations=t.stabilizationIterations),void 0!==t.moveable&&(this.constants.moveable=t.moveable),void 0!==t.zoomable&&(this.constants.zoomable=t.zoomable),void 0!==t.hover&&(this.constants.hover=t.hover),void 0!==t.labels)for(e in t.labels)t.labels.hasOwnProperty(e)&&(this.constants.labels[e]=t.labels[e]);if(t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),t.physics){if(t.physics.barnesHut){this.constants.physics.barnesHut.enabled=!0;for(e in t.physics.barnesHut)t.physics.barnesHut.hasOwnProperty(e)&&(this.constants.physics.barnesHut[e]=t.physics.barnesHut[e])}if(t.physics.repulsion){this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.repulsion)t.physics.repulsion.hasOwnProperty(e)&&(this.constants.physics.repulsion[e]=t.physics.repulsion[e])}if(t.physics.hierarchicalRepulsion){this.constants.hierarchicalLayout.enabled=!0,this.constants.physics.hierarchicalRepulsion.enabled=!0,this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.hierarchicalRepulsion)t.physics.hierarchicalRepulsion.hasOwnProperty(e)&&(this.constants.physics.hierarchicalRepulsion[e]=t.physics.hierarchicalRepulsion[e])}}if(t.hierarchicalLayout){this.constants.hierarchicalLayout.enabled=!0;for(e in t.hierarchicalLayout)t.hierarchicalLayout.hasOwnProperty(e)&&(this.constants.hierarchicalLayout[e]=t.hierarchicalLayout[e])}else void 0!==t.hierarchicalLayout&&(this.constants.hierarchicalLayout.enabled=!1);if(t.clustering){this.constants.clustering.enabled=!0;for(e in t.clustering)t.clustering.hasOwnProperty(e)&&(this.constants.clustering[e]=t.clustering[e])}else void 0!==t.clustering&&(this.constants.clustering.enabled=!1);if(t.navigation){this.constants.navigation.enabled=!0;for(e in t.navigation)t.navigation.hasOwnProperty(e)&&(this.constants.navigation[e]=t.navigation[e])}else void 0!==t.navigation&&(this.constants.navigation.enabled=!1);if(t.keyboard){this.constants.keyboard.enabled=!0;for(e in t.keyboard)t.keyboard.hasOwnProperty(e)&&(this.constants.keyboard[e]=t.keyboard[e])}else void 0!==t.keyboard&&(this.constants.keyboard.enabled=!1);if(t.dataManipulation){this.constants.dataManipulation.enabled=!0;for(e in t.dataManipulation)t.dataManipulation.hasOwnProperty(e)&&(this.constants.dataManipulation[e]=t.dataManipulation[e])}else void 0!==t.dataManipulation&&(this.constants.dataManipulation.enabled=!1);if(t.edges){for(e in t.edges)t.edges.hasOwnProperty(e)&&"object"!=typeof t.edges[e]&&(this.constants.edges[e]=t.edges[e]);void 0!==t.edges.color&&(util.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color,this.constants.edges.color.hover=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight),void 0!==t.edges.color.hover&&(this.constants.edges.color.hover=t.edges.color.hover))),t.edges.fontColor||void 0!==t.edges.color&&(util.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color)),t.edges.dash&&(void 0!==t.edges.dash.length&&(this.constants.edges.dash.length=t.edges.dash.length),void 0!==t.edges.dash.gap&&(this.constants.edges.dash.gap=t.edges.dash.gap),void 0!==t.edges.dash.altLength&&(this.constants.edges.dash.altLength=t.edges.dash.altLength))}if(t.nodes){for(e in t.nodes)t.nodes.hasOwnProperty(e)&&(this.constants.nodes[e]=t.nodes[e]);t.nodes.color&&(this.constants.nodes.color=util.parseColor(t.nodes.color))}if(t.groups)for(var i in t.groups)if(t.groups.hasOwnProperty(i)){var s=t.groups[i];this.groups.add(i,s)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=util.parseColor(t.tooltip.color))}}this._loadPhysicsSystem(),this._loadNavigationControls(),this._loadManipulationSystem(),this._configureSmoothCurves(),this._createKeyBinds(),this.setSize(this.width,this.height),this.moving=!0,this.start()},Graph.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="graph-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),!this.frame.canvas.getContext){var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}var e=this;this.drag={},this.pinch={},this.hammer=Hammer(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",e._onTap.bind(e)),this.hammer.on("doubletap",e._onDoubleTap.bind(e)),this.hammer.on("hold",e._onHold.bind(e)),this.hammer.on("pinch",e._onPinch.bind(e)),this.hammer.on("touch",e._onTouch.bind(e)),this.hammer.on("dragstart",e._onDragStart.bind(e)),this.hammer.on("drag",e._onDrag.bind(e)),this.hammer.on("dragend",e._onDragEnd.bind(e)),this.hammer.on("release",e._onRelease.bind(e)),this.hammer.on("mousewheel",e._onMouseWheel.bind(e)),this.hammer.on("DOMMouseScroll",e._onMouseWheel.bind(e)),this.hammer.on("mousemove",e._onMouseMoveTitle.bind(e)),this.containerElement.appendChild(this.frame)},Graph.prototype._createKeyBinds=function(){var t=this;this.mousetrap=mousetrap,this.mousetrap.reset(),1==this.constants.keyboard.enabled&&(this.mousetrap.bind("up",this._moveUp.bind(t),"keydown"),this.mousetrap.bind("up",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("down",this._moveDown.bind(t),"keydown"),this.mousetrap.bind("down",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("left",this._moveLeft.bind(t),"keydown"),this.mousetrap.bind("left",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("right",this._moveRight.bind(t),"keydown"),this.mousetrap.bind("right",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("=",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("=",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("-",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("-",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("[",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("[",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("]",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("]",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pageup",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("pageup",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.mousetrap.bind("escape",this._createManipulatorBar.bind(t)),this.mousetrap.bind("del",this._deleteSelected.bind(t)))},Graph.prototype._getPointer=function(t){return{x:t.pageX-vis.util.getAbsoluteLeft(this.frame.canvas),y:t.pageY-vis.util.getAbsoluteTop(this.frame.canvas)}},Graph.prototype._onTouch=function(t){this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),this._handleTouch(this.drag.pointer)},Graph.prototype._onDragStart=function(){this._handleDragStart()},Graph.prototype._handleDragStart=function(){var t=this.drag,e=this._getNodeAt(t.pointer);if(t.dragging=!0,t.selection=[],t.translation=this._getTranslation(),t.nodeId=null,null!=e){t.nodeId=e.id,e.isSelected()||this._selectObject(e,!1);for(var i in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(i)){var s=this.selectionObj.nodes[i],n={id:s.id,node:s,x:s.x,y:s.y,xFixed:s.xFixed,yFixed:s.yFixed};s.xFixed=!0,s.yFixed=!0,t.selection.push(n)}}},Graph.prototype._onDrag=function(t){this._handleOnDrag(t)},Graph.prototype._handleOnDrag=function(t){if(!this.drag.pinched){var e=this._getPointer(t.gesture.center),i=this,s=this.drag,n=s.selection;if(n&&n.length){var o=e.x-s.pointer.x,a=e.y-s.pointer.y;n.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._XconvertDOMtoCanvas(i._XconvertCanvasToDOM(t.x)+o)),t.yFixed||(e.y=i._YconvertDOMtoCanvas(i._YconvertCanvasToDOM(t.y)+a))}),this.moving||(this.moving=!0,this.start())}else if(1==this.constants.moveable){var r=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+r,this.drag.translation.y+h),this._redraw(),this.moving=!0,this.start()}}},Graph.prototype._onDragEnd=function(){this.drag.dragging=!1;var t=this.drag.selection;t&&t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed})},Graph.prototype._onTap=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleTap(e)},Graph.prototype._onDoubleTap=function(t){var e=this._getPointer(t.gesture.center);this._handleDoubleTap(e)},Graph.prototype._onHold=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleOnHold(e)},Graph.prototype._onRelease=function(t){var e=this._getPointer(t.gesture.center);this._handleOnRelease(e)},Graph.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},Graph.prototype._zoom=function(t,e){if(1==this.constants.zoomable){var i=this._getScale();1e-5>t&&(t=1e-5),t>10&&(t=10);var s=this._getTranslation(),n=t/i,o=(1-n)*e.x+s.x*n,a=(1-n)*e.y+s.y*n;return this.areaCenter={x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)},this._setScale(t),this._setTranslation(o,a),this.updateClustersDefault(),this._redraw(),t>i?this.emit("zoom",{direction:"+"}):this.emit("zoom",{direction:"-"}),t}},Graph.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this._getScale(),s=e/10;0>e&&(s/=1-s),i*=1+s;var n=util.fakeGesture(this,t),o=this._getPointer(n.center);this._zoom(i,o)}t.preventDefault()},Graph.prototype._onMouseMoveTitle=function(t){var e=util.fakeGesture(this,t),i=this._getPointer(e.center);this.popupObj&&this._checkHidePopup(i);var s=this,n=function(){s._checkShowPopup(i)};if(this.popupTimer&&clearInterval(this.popupTimer),this.drag.dragging||(this.popupTimer=setTimeout(n,this.constants.tooltip.delay)),1==this.constants.hover){for(var o in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(o)&&(this.hoverObj.edges[o].hover=!1,delete this.hoverObj.edges[o]);var a=this._getNodeAt(i);null==a&&(a=this._getEdgeAt(i)),null!=a&&this._hoverObject(a);for(var r in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(r)&&(a instanceof Node&&a.id!=r||a instanceof Edge||null==a)&&(this._blurObject(this.hoverObj.nodes[r]),delete this.hoverObj.nodes[r]);this.redraw()}},Graph.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=this.popupObj;if(void 0==this.popupObj){var n=this.nodes;for(e in n)if(n.hasOwnProperty(e)){var o=n[e];if(void 0!==o.getTitle()&&o.isOverlappingWith(i)){this.popupObj=o;break}}}if(void 0===this.popupObj){var a=this.edges;for(e in a)if(a.hasOwnProperty(e)){var r=a[e];if(r.connected&&void 0!==r.getTitle()&&r.isOverlappingWith(i)){this.popupObj=r;break}}}if(this.popupObj){if(this.popupObj!=s){var h=this;h.popup||(h.popup=new Popup(h.frame,h.constants.tooltip)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupObj.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},Graph.prototype._checkHidePopup=function(t){this.popupObj&&this._getNodeAt(t)||(this.popupObj=void 0,this.popup&&this.popup.hide())},Graph.prototype.setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,void 0!==this.manipulationDiv&&(this.manipulationDiv.style.width=this.frame.canvas.clientWidth+"px"),void 0!==this.navigationDivs&&void 0!==this.navigationDivs.wrapper&&(this.navigationDivs.wrapper.style.width=this.frame.canvas.clientWidth+"px",this.navigationDivs.wrapper.style.height=this.frame.canvas.clientHeight+"px"),this.emit("resize",{width:this.frame.canvas.width,height:this.frame.canvas.height})},Graph.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof DataSet||t instanceof DataView)this.nodesData=t;else if(t instanceof Array)this.nodesData=new DataSet,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new DataSet}if(e&&util.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.nodes={},this.nodesData){var i=this;util.forEach(this.nodesListeners,function(t,e){i.nodesData.on(e,t)});var s=this.nodesData.getIds();this._addNodes(s)}this._updateSelection()},Graph.prototype._addNodes=function(t){for(var e,i=0,s=t.length;s>i;i++){e=t[i];var n=this.nodesData.get(e),o=new Node(n,this.images,this.groups,this.constants);if(this.nodes[e]=o,!(0!=o.xFixed&&0!=o.yFixed||null!==o.x&&null!==o.y)){var a=1*t.length,r=2*Math.PI*Math.random();0==o.xFixed&&(o.x=a*Math.cos(r)),0==o.yFixed&&(o.y=a*Math.sin(r))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.nodes),this.updateLabels()},Graph.prototype._updateNodes=function(t){for(var e=this.nodes,i=this.nodesData,s=0,n=t.length;n>s;s++){var o=t[s],a=e[o],r=i.get(o);a?a.setProperties(r,this.constants):(a=new Node(properties,this.images,this.groups,this.constants),e[o]=a)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._reconnectEdges(),this._updateValueRange(e)},Graph.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,s=t.length;s>i;i++){var n=t[i];delete e[n]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},Graph.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof DataSet||t instanceof DataView)this.edgesData=t;else if(t instanceof Array)this.edgesData=new DataSet,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new DataSet}if(e&&util.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.edges={},this.edgesData){var i=this;util.forEach(this.edgesListeners,function(t,e){i.edgesData.on(e,t)});var s=this.edgesData.getIds();this._addEdges(s)}this._reconnectEdges()},Graph.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,n=t.length;n>s;s++){var o=t[s],a=e[o];a&&a.disconnect();var r=i.get(o,{showInternalIds:!0});e[o]=new Edge(r,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},Graph.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,n=t.length;n>s;s++){var o=t[s],a=i.get(o),r=e[o];r?(r.disconnect(),r.setProperties(a,this.constants),r.connect()):(r=new Edge(a,this,this.constants),this.edges[o]=r)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},Graph.prototype._removeEdges=function(t){for(var e=this.edges,i=0,s=t.length;s>i;i++){var n=t[i],o=e[n];o&&(null!=o.via&&delete this.sectors.support.nodes[o.via.id],o.disconnect(),delete e[n])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},Graph.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var s=i[t];s.from=null,s.to=null,s.connect()}},Graph.prototype._updateValueRange=function(t){var e,i=void 0,s=void 0;for(e in t)if(t.hasOwnProperty(e)){var n=t[e].getValue();void 0!==n&&(i=void 0===i?n:Math.min(n,i),s=void 0===s?n:Math.max(n,s))}if(void 0!==i&&void 0!==s)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,s)},Graph.prototype.redraw=function(){this.setSize(this.width,this.height),this._redraw()},Graph.prototype._redraw=function(){var t=this.frame.canvas.getContext("2d"),e=this.frame.canvas.width,i=this.frame.canvas.height;t.clearRect(0,0,e,i),t.save(),t.translate(this.translation.x,this.translation.y),t.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight)},this._doInAllSectors("_drawAllSectorNodes",t),this._doInAllSectors("_drawEdges",t),this._doInAllSectors("_drawNodes",t,!1),t.restore() +},Graph.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},Graph.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},Graph.prototype._setScale=function(t){this.scale=t},Graph.prototype._getScale=function(){return this.scale},Graph.prototype._XconvertDOMtoCanvas=function(t){return(t-this.translation.x)/this.scale},Graph.prototype._XconvertCanvasToDOM=function(t){return t*this.scale+this.translation.x},Graph.prototype._YconvertDOMtoCanvas=function(t){return(t-this.translation.y)/this.scale},Graph.prototype._YconvertCanvasToDOM=function(t){return t*this.scale+this.translation.y},Graph.prototype.canvasToDOM=function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},Graph.prototype.DOMtoCanvas=function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},Graph.prototype._drawNodes=function(t,e){void 0===e&&(e=!1);var i=this.nodes,s=[];for(var n in i)i.hasOwnProperty(n)&&(i[n].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),i[n].isSelected()?s.push(n):(i[n].inArea()||e)&&i[n].draw(t));for(var o=0,a=s.length;a>o;o++)(i[s[o]].inArea()||e)&&i[s[o]].draw(t)},Graph.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];s.setScale(this.scale),s.connected&&e[i].draw(t)}},Graph.prototype._stabilize=function(){1==this.constants.freezeForStabilization&&this._freezeDefinedNodes();for(var t=0;this.moving&&t0)for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStepLimited(e,this.constants.maxVelocity),s=!0);else for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStep(e),s=!0);if(1==s){var n=this.constants.minVelocity/Math.max(this.scale,.05);this.moving=n>.5*this.constants.maxVelocity?!0:this._isMoving(n)}},Graph.prototype._physicsTick=function(){this.freezeSimulation||this.moving&&(this._doInAllActiveSectors("_initializeForceCalculation"),this._doInAllActiveSectors("_discreteStepNodes"),this.constants.smoothCurves&&this._doInSupportSector("_discreteStepNodes"),this._findCenter(this._getRange()))},Graph.prototype._animationStep=function(){this.timer=void 0,this._handleNavigation(),this.start();var t=Date.now(),e=1;this._physicsTick();for(var i=Date.now()-t;i.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},Graph3d.Camera.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},Graph3d.Camera.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},Graph3d.Camera.prototype.getArmLength=function(){return this.armLength},Graph3d.Camera.prototype.getCameraLocation=function(){return this.cameraLocation},Graph3d.Camera.prototype.getCameraRotation=function(){return this.cameraRotation},Graph3d.Camera.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},Graph3d.prototype._setScale=function(){this.scale=new Point3d(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==Graph3d.STYLE.DOTCOLOR&&this.style!==Graph3d.STYLE.DOTSIZE&&this.style!==Graph3d.STYLE.BARCOLOR&&this.style!==Graph3d.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},Graph3d.prototype.getNumberOfRows=function(t){return t.length},Graph3d.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},Graph3d.prototype.getDistinctValues=function(t,e){for(var i=[],s=0;st[s][e]&&(i.min=t[s][e]),i.maxt;t++){var p=(t-c)/(u-c),m=240*p,g=this._hsv2rgb(m,1,1);l.strokeStyle=g,l.beginPath(),l.moveTo(r,o+t),l.lineTo(a,o+t),l.stroke()}l.strokeStyle=this.colorAxis,l.strokeRect(r,o,i,n)}if(this.style===Graph3d.STYLE.DOTSIZE&&(l.strokeStyle=this.colorAxis,l.fillStyle=this.colorDot,l.beginPath(),l.moveTo(r,o),l.lineTo(a,o),l.lineTo(a-i+e,h),l.lineTo(r,h),l.closePath(),l.fill(),l.stroke()),this.style===Graph3d.STYLE.DOTCOLOR||this.style===Graph3d.STYLE.DOTSIZE){var f=5,v=new StepNumber(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(v.start(),v.getCurrent()0?this.yMin:this.yMax,n=this._convert3Dto2D(new Point3d(_,a,this.zMin)),Math.cos(2*y)>0?(m.textAlign="center",m.textBaseline="top",n.y+=v):Math.sin(2*y)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(" "+i.getCurrent()+" ",n.x,n.y),i.next()}for(m.lineWidth=1,s=void 0===this.defaultYStep,i=new StepNumber(this.yMin,this.yMax,this.yStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,n=this._convert3Dto2D(new Point3d(o,i.getCurrent(),this.zMin)),Math.cos(2*y)<0?(m.textAlign="center",m.textBaseline="top",n.y+=v):Math.sin(2*y)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(" "+i.getCurrent()+" ",n.x,n.y),i.next();for(m.lineWidth=1,s=void 0===this.defaultZStep,i=new StepNumber(this.zMin,this.zMax,this.zStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,a=Math.sin(y)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new Point3d(o,a,i.getCurrent())),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(t.x-v,t.y),m.stroke(),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.colorAxis,m.fillText(i.getCurrent()+" ",t.x-5,t.y),i.next();m.lineWidth=1,t=this._convert3Dto2D(new Point3d(o,a,this.zMin)),e=this._convert3Dto2D(new Point3d(o,a,this.zMax)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),m.lineWidth=1,c=this._convert3Dto2D(new Point3d(this.xMin,this.yMin,this.zMin)),u=this._convert3Dto2D(new Point3d(this.xMax,this.yMin,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(c.x,c.y),m.lineTo(u.x,u.y),m.stroke(),c=this._convert3Dto2D(new Point3d(this.xMin,this.yMax,this.zMin)),u=this._convert3Dto2D(new Point3d(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(c.x,c.y),m.lineTo(u.x,u.y),m.stroke(),m.lineWidth=1,t=this._convert3Dto2D(new Point3d(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new Point3d(this.xMin,this.yMax,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),t=this._convert3Dto2D(new Point3d(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new Point3d(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke();var b=this.xLabel;b.length>0&&(l=.1/this.scale.y,o=(this.xMin+this.xMax)/2,a=Math.cos(y)>0?this.yMin-l:this.yMax+l,n=this._convert3Dto2D(new Point3d(o,a,this.zMin)),Math.cos(2*y)>0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*y)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(b,n.x,n.y));var x=this.yLabel;x.length>0&&(d=.1/this.scale.x,o=Math.sin(y)>0?this.xMin-d:this.xMax+d,a=(this.yMin+this.yMax)/2,n=this._convert3Dto2D(new Point3d(o,a,this.zMin)),Math.cos(2*y)<0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*y)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(x,n.x,n.y));var w=this.zLabel;w.length>0&&(h=30,o=Math.cos(y)>0?this.xMin:this.xMax,a=Math.sin(y)<0?this.yMin:this.yMax,r=(this.zMin+this.zMax)/2,n=this._convert3Dto2D(new Point3d(o,a,r)),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.colorAxis,m.fillText(w,n.x-h,n.y))},Graph3d.prototype._hsv2rgb=function(t,e,i){var s,n,o,a,r,h;switch(a=i*e,r=Math.floor(t/60),h=a*(1-Math.abs(t/60%2-1)),r){case 0:s=a,n=h,o=0;break;case 1:s=h,n=a,o=0;break;case 2:s=0,n=a,o=h;break;case 3:s=0,n=h,o=a;break;case 4:s=h,n=0,o=a;break;case 5:s=a,n=0,o=h;break;default:s=0,n=0,o=0}return"RGB("+parseInt(255*s)+","+parseInt(255*n)+","+parseInt(255*o)+")"},Graph3d.prototype._redrawDataGrid=function(){var t,e,i,s,n,o,a,r,h,d,l,c,u,p=this.frame.canvas,m=p.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(n=0;n0}else o=!0;o?(u=(t.point.z+e.point.z+i.point.z+s.point.z)/4,d=240*(1-(u-this.zMin)*this.scale.z/this.verticalRatio),l=1,this.showShadow?(c=Math.min(1+x.x/w/2,1),a=this._hsv2rgb(d,l,c),r=a):(c=1,a=this._hsv2rgb(d,l,c),r=this.colorAxis)):(a="gray",r=this.colorAxis),h=.5,m.lineWidth=h,m.fillStyle=a,m.strokeStyle=r,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(s.screen.x,s.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(n=0;nc&&(c=0);var u,p,m;this.style===Graph3d.STYLE.DOTCOLOR?(u=240*(1-(h.point.value-this.valueMin)*this.scale.value),p=this._hsv2rgb(u,1,1),m=this._hsv2rgb(u,1,.8)):this.style===Graph3d.STYLE.DOTSIZE?(p=this.colorDot,m=this.colorDotBorder):(u=240*(1-(h.point.z-this.zMin)*this.scale.z/this.verticalRatio),p=this._hsv2rgb(u,1,1),m=this._hsv2rgb(u,1,.8)),i.lineWidth=1,i.strokeStyle=m,i.fillStyle=p,i.beginPath(),i.arc(h.screen.x,h.screen.y,c,0,2*Math.PI,!0),i.fill(),i.stroke()}}},Graph3d.prototype._redrawDataBar=function(){var t,e,i,s,n=this.frame.canvas,o=n.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0&&(t=this.dataPoints[0],s.lineWidth=1,s.strokeStyle="blue",s.beginPath(),s.moveTo(t.screen.x,t.screen.y)),e=1;e0&&s.stroke()}},Graph3d.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=getMouseX(t),this.startMouseY=getMouseY(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},G3DaddEventListener(document,"mousemove",e.onmousemove),G3DaddEventListener(document,"mouseup",e.onmouseup),G3DpreventDefault(t)}},Graph3d.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(getMouseX(t))-this.startMouseX,i=parseFloat(getMouseY(t))-this.startMouseY,s=this.startArmRotation.horizontal+e/200,n=this.startArmRotation.vertical+i/200,o=4,a=Math.sin(o/360*2*Math.PI);Math.abs(Math.sin(s))0?1:0>t?-1:0}var s=e[0],n=e[1],o=e[2],a=i((n.x-s.x)*(t.y-s.y)-(n.y-s.y)*(t.x-s.x)),r=i((o.x-n.x)*(t.y-n.y)-(o.y-n.y)*(t.x-n.x)),h=i((s.x-o.x)*(t.y-o.y)-(s.y-o.y)*(t.x-o.x));return!(0!=a&&0!=r&&a!=r||0!=r&&0!=h&&r!=h||0!=a&&0!=h&&a!=h)},Graph3d.prototype._dataPointFromXY=function(t,e){var i,s=100,n=null,o=null,a=null,r=new Point2d(t,e);if(this.style===Graph3d.STYLE.BAR||this.style===Graph3d.STYLE.BARCOLOR||this.style===Graph3d.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var h=n.surfaces;if(h)for(var d=h.length-1;d>=0;d--){var l=h[d],c=l.corners,u=[c[0].screen,c[1].screen,c[2].screen],p=[c[2].screen,c[3].screen,c[0].screen];if(this._insideTriangle(r,u)||this._insideTriangle(r,p))return n}}else for(i=0;iv)&&s>v&&(a=v,o=n)}}return o},Graph3d.prototype._showTooltip=function(t){var e,i,s;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,s=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",s=document.createElement("div"),s.style.position="absolute",s.style.height="0",s.style.width="0",s.style.border="5px solid #4d4d4d",s.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:s}}),this._hideTooltip(),this.tooltip.dataPoint=t,e.innerHTML="function"==typeof this.showTooltip?this.showTooltip(t.point):"
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(s);var n=e.offsetWidth,o=e.offsetHeight,a=i.offsetHeight,r=s.offsetWidth,h=s.offsetHeight,d=t.screen.x-n/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-a+"px",e.style.left=d+"px",e.style.top=t.screen.y-a-o+"px",s.style.left=t.screen.x-r/2+"px",s.style.top=t.screen.y-h/2+"px"},Graph3d.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},G3DaddEventListener=function(t,e,i,s){t.addEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,s)):t.attachEvent("on"+e,i)},G3DremoveEventListener=function(t,e,i,s){t.removeEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,s)):t.detachEvent("on"+e,i)},G3DstopPropagation=function(t){t||(t=window.event),t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},G3DpreventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},Point3d.subtract=function(t,e){var i=new Point3d;return i.x=t.x-e.x,i.y=t.y-e.y,i.z=t.z-e.z,i},Point3d.add=function(t,e){var i=new Point3d;return i.x=t.x+e.x,i.y=t.y+e.y,i.z=t.z+e.z,i},Point3d.avg=function(t,e){return new Point3d((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},Point3d.crossProduct=function(t,e){var i=new Point3d;return i.x=t.y*e.z-t.z*e.y,i.y=t.z*e.x-t.x*e.z,i.z=t.x*e.y-t.y*e.x,i},Point3d.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},Point2d=function(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0},Filter.prototype.isLoaded=function(){return this.loaded},Filter.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},Filter.prototype.getLabel=function(){return this.graph.filterLabel},Filter.prototype.getColumn=function(){return this.column},Filter.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]},Filter.prototype.getValues=function(){return this.values},Filter.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},Filter.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var s=new DataView(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(s),this.dataPoints[t]=e}return e},Filter.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},Filter.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},Filter.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t=t||(void 0!==e&&(this.prettyStep=e),this._step=this.prettyStep===!0?StepNumber.calculatePrettyStep(t):t)},StepNumber.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),s=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),o=i;return Math.abs(s-t)<=Math.abs(o-t)&&(o=s),Math.abs(n-t)<=Math.abs(o-t)&&(o=n),0>=o&&(o=1),o},StepNumber.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},StepNumber.prototype.getStep=function(){return this._step},StepNumber.prototype.start=function(){this._current=this._start-this._start%this._step},StepNumber.prototype.next=function(){this._current+=this._step},StepNumber.prototype.end=function(){return this._current>this._end},Slider.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},Slider.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},Slider.prototype.setIndex=function(t){if(!(ts&&(s=0),s>this.values.length-1&&(s=this.values.length-1),s},Slider.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,s=i+3;return s},Slider.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,s=this.leftToIndex(i);this.setIndex(s),G3DpreventDefault()},Slider.prototype._onMouseUp=function(){this.frame.style.cursor="auto",G3DremoveEventListener(document,"mousemove",this.onmousemove),G3DremoveEventListener(document,"mouseup",this.onmouseup),G3DpreventDefault()},getAbsoluteLeft=function(t){for(var e=0;null!==t;)e+=t.offsetLeft,e-=t.scrollLeft,t=t.offsetParent;return e},getAbsoluteTop=function(t){for(var e=0;null!==t;)e+=t.offsetTop,e-=t.scrollTop,t=t.offsetParent;return e},getMouseX=function(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0},getMouseY=function(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0};var vis={util:util,moment:moment,DataSet:DataSet,DataView:DataView,Range:Range,stack:stack,TimeStep:TimeStep,components:{items:{Item:Item,ItemBox:ItemBox,ItemPoint:ItemPoint,ItemRange:ItemRange},Component:Component,Panel:Panel,RootPanel:RootPanel,ItemSet:ItemSet,TimeAxis:TimeAxis},graph:{Node:Node,Edge:Edge,Popup:Popup,Groups:Groups,Images:Images},Timeline:Timeline,Graph:Graph,Graph3d:Graph3d};"undefined"!=typeof exports&&(exports=vis),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=vis),"function"==typeof define&&define(function(){return vis}),"undefined"!=typeof window&&(window.vis=vis)},{"emitter-component":2,hammerjs:3,moment:4,mousetrap:5}],2:[function(t,e){function i(t){return t?s(t):void 0}function s(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){s.off(t,i),e.apply(this,arguments)}var s=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var s,n=0;ns;++s)i[s].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},{}],3:[function(t,e){!function(t,i){"use strict";function s(){if(!n.READY){n.event.determineEventTypes();for(var t in n.gestures)n.gestures.hasOwnProperty(t)&&n.detection.register(n.gestures[t]);n.event.onTouch(n.DOCUMENT,n.EVENT_MOVE,n.detection.detect),n.event.onTouch(n.DOCUMENT,n.EVENT_END,n.detection.detect),n.READY=!0}}var n=function(t,e){return new n.Instance(t,e||{})};n.defaults={stop_browser_behavior:{userSelect:"none",touchAction:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},n.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,n.HAS_TOUCHEVENTS="ontouchstart"in t,n.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i,n.NO_MOUSEEVENTS=n.HAS_TOUCHEVENTS&&navigator.userAgent.match(n.MOBILE_REGEX),n.EVENT_TYPES={},n.DIRECTION_DOWN="down",n.DIRECTION_LEFT="left",n.DIRECTION_UP="up",n.DIRECTION_RIGHT="right",n.POINTER_MOUSE="mouse",n.POINTER_TOUCH="touch",n.POINTER_PEN="pen",n.EVENT_START="start",n.EVENT_MOVE="move",n.EVENT_END="end",n.DOCUMENT=document,n.plugins={},n.READY=!1,n.Instance=function(t,e){var i=this;return s(),this.element=t,this.enabled=!0,this.options=n.utils.extend(n.utils.extend({},n.defaults),e||{}),this.options.stop_browser_behavior&&n.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),n.event.onTouch(t,n.EVENT_START,function(t){i.enabled&&n.detection.startDetect(i,t)}),this},n.Instance.prototype={on:function(t,e){for(var i=t.split(" "),s=0;s0&&e==n.EVENT_END?e=n.EVENT_MOVE:l||(e=n.EVENT_END),l||null===o?o=h:h=o,i.call(n.detection,s.collectEventData(t,e,h)),n.HAS_POINTEREVENTS&&e==n.EVENT_END&&(l=n.PointerEvent.updatePointer(e,h))),l||(o=null,a=!1,r=!1,n.PointerEvent.reset())}})},determineEventTypes:function(){var t;t=n.HAS_POINTEREVENTS?n.PointerEvent.getEvents():n.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],n.EVENT_TYPES[n.EVENT_START]=t[0],n.EVENT_TYPES[n.EVENT_MOVE]=t[1],n.EVENT_TYPES[n.EVENT_END]=t[2]},getTouchList:function(t){return n.HAS_POINTEREVENTS?n.PointerEvent.getTouchList():t.touches?t.touches:[{identifier:1,pageX:t.pageX,pageY:t.pageY,target:t.target}]},collectEventData:function(t,e,i){var s=this.getTouchList(i,e),o=n.POINTER_TOUCH;return(i.type.match(/mouse/)||n.PointerEvent.matchType(n.POINTER_MOUSE,i))&&(o=n.POINTER_MOUSE),{center:n.utils.getCenter(s),timeStamp:(new Date).getTime(),target:i.target,touches:s,eventType:e,pointerType:o,srcEvent:i,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault&&this.srcEvent.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return n.detection.stopDetect()}}}},n.PointerEvent={pointers:{},getTouchList:function(){var t=this,e=[];return Object.keys(t.pointers).sort().forEach(function(i){e.push(t.pointers[i])}),e},updatePointer:function(t,e){return t==n.EVENT_END?this.pointers={}:(e.identifier=e.pointerId,this.pointers[e.pointerId]=e),Object.keys(this.pointers).length},matchType:function(t,e){if(!e.pointerType)return!1;var i={};return i[n.POINTER_MOUSE]=e.pointerType==e.MSPOINTER_TYPE_MOUSE||e.pointerType==n.POINTER_MOUSE,i[n.POINTER_TOUCH]=e.pointerType==e.MSPOINTER_TYPE_TOUCH||e.pointerType==n.POINTER_TOUCH,i[n.POINTER_PEN]=e.pointerType==e.MSPOINTER_TYPE_PEN||e.pointerType==n.POINTER_PEN,i[t]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},n.utils={extend:function(t,e,s){for(var n in e)t[n]!==i&&s||(t[n]=e[n]);return t},hasParent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1},getCenter:function(t){for(var e=[],i=[],s=0,n=t.length;n>s;s++)e.push(t[s].pageX),i.push(t[s].pageY);return{pageX:(Math.min.apply(Math,e)+Math.max.apply(Math,e))/2,pageY:(Math.min.apply(Math,i)+Math.max.apply(Math,i))/2}},getVelocity:function(t,e,i){return{x:Math.abs(e/t)||0,y:Math.abs(i/t)||0}},getAngle:function(t,e){var i=e.pageY-t.pageY,s=e.pageX-t.pageX;return 180*Math.atan2(i,s)/Math.PI},getDirection:function(t,e){var i=Math.abs(t.pageX-e.pageX),s=Math.abs(t.pageY-e.pageY);return i>=s?t.pageX-e.pageX>0?n.DIRECTION_LEFT:n.DIRECTION_RIGHT:t.pageY-e.pageY>0?n.DIRECTION_UP:n.DIRECTION_DOWN},getDistance:function(t,e){var i=e.pageX-t.pageX,s=e.pageY-t.pageY;return Math.sqrt(i*i+s*s)},getScale:function(t,e){return t.length>=2&&e.length>=2?this.getDistance(e[0],e[1])/this.getDistance(t[0],t[1]):1},getRotation:function(t,e){return t.length>=2&&e.length>=2?this.getAngle(e[1],e[0])-this.getAngle(t[1],t[0]):0},isVertical:function(t){return t==n.DIRECTION_UP||t==n.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(t,e){var i,s=["webkit","khtml","moz","ms","o",""];if(e&&t.style){for(var n=0;ni;i++){var o=this.gestures[i];if(!this.stopped&&e[o.name]!==!1&&o.handler.call(o,t,this.current.inst)===!1){this.stopDetect();break}}return this.current&&(this.current.lastEvent=t),t.eventType==n.EVENT_END&&!t.touches.length-1&&this.stopDetect(),t}},stopDetect:function(){this.previous=n.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(t){var e=this.current.startEvent;if(e&&(t.touches.length!=e.touches.length||t.touches===e.touches)){e.touches=[];for(var i=0,s=t.touches.length;s>i;i++)e.touches.push(n.utils.extend({},t.touches[i]))}var o=t.timeStamp-e.timeStamp,a=t.center.pageX-e.center.pageX,r=t.center.pageY-e.center.pageY,h=n.utils.getVelocity(o,a,r);return n.utils.extend(t,{deltaTime:o,deltaX:a,deltaY:r,velocityX:h.x,velocityY:h.y,distance:n.utils.getDistance(e.center,t.center),angle:n.utils.getAngle(e.center,t.center),direction:n.utils.getDirection(e.center,t.center),scale:n.utils.getScale(e.touches,t.touches),rotation:n.utils.getRotation(e.touches,t.touches),startEvent:e}),t},register:function(t){var e=t.defaults||{};return e[t.name]===i&&(e[t.name]=!0),n.utils.extend(n.defaults,e,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.indexe.index?1:0}),this.gestures}},n.gestures=n.gestures||{},n.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:1},timer:null,handler:function(t,e){switch(t.eventType){case n.EVENT_START:clearTimeout(this.timer),n.detection.current.name=this.name,this.timer=setTimeout(function(){"hold"==n.detection.current.name&&e.trigger("hold",t)},e.options.hold_timeout);break;case n.EVENT_MOVE:t.distance>e.options.hold_threshold&&clearTimeout(this.timer);break;case n.EVENT_END:clearTimeout(this.timer)}}},n.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,e){if(t.eventType==n.EVENT_END){var i=n.detection.previous,s=!1;if(t.deltaTime>e.options.tap_max_touchtime||t.distance>e.options.tap_max_distance)return;i&&"tap"==i.name&&t.timeStamp-i.lastEvent.timeStamp0&&t.touches.length>e.options.swipe_max_touches)return;(t.velocityX>e.options.swipe_velocity||t.velocityY>e.options.swipe_velocity)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},n.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,drag_max_touches:1,drag_block_horizontal:!1,drag_block_vertical:!1,drag_lock_to_axis:!1,drag_lock_min_distance:25},triggered:!1,handler:function(t,e){if(n.detection.current.name!=this.name&&this.triggered)return e.trigger(this.name+"end",t),void(this.triggered=!1);if(!(e.options.drag_max_touches>0&&t.touches.length>e.options.drag_max_touches))switch(t.eventType){case n.EVENT_START:this.triggered=!1;break;case n.EVENT_MOVE:if(t.distancee.options.transform_min_rotation&&e.trigger("rotate",t),i>e.options.transform_min_scale&&(e.trigger("pinch",t),e.trigger("pinch"+(t.scale<1?"in":"out"),t));break;case n.EVENT_END:this.triggered&&e.trigger(this.name+"end",t),this.triggered=!1}}},n.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,e){return e.options.prevent_mouseevents&&t.pointerType==n.POINTER_MOUSE?void t.stopDetect():(e.options.prevent_default&&t.preventDefault(),void(t.eventType==n.EVENT_START&&e.trigger(this.name,t)))}},n.gestures.Release={name:"release",index:1/0,handler:function(t,e){t.eventType==n.EVENT_END&&e.trigger(this.name,t)}},"object"==typeof e&&"object"==typeof e.exports?e.exports=n:(t.Hammer=n,"function"==typeof t.define&&t.define.amd&&t.define("hammer",[],function(){return n}))}(this)},{}],4:[function(t,e){var i="undefined"!=typeof self?self:"undefined"!=typeof window?window:{};(function(s){function n(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function o(t,e){function i(){ce.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}var s=!0;return c(function(){return s&&(i(),s=!1),e.apply(this,arguments)},e)}function a(t,e){return function(i){return m(t.call(this,i),e) +}}function r(t,e){return function(i){return this.lang().ordinal(t.call(this,i),e)}}function h(){}function d(t){D(t),c(this,t)}function l(t){var e=b(t),i=e.year||0,s=e.quarter||0,n=e.month||0,o=e.week||0,a=e.day||0,r=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+36e5*r,this._days=+a+7*o,this._months=+n+3*s+12*i,this._data={},this._bubble()}function c(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return e.hasOwnProperty("toString")&&(t.toString=e.toString),e.hasOwnProperty("valueOf")&&(t.valueOf=e.valueOf),t}function u(t){var e,i={};for(e in t)t.hasOwnProperty(e)&&Ee.hasOwnProperty(e)&&(i[e]=t[e]);return i}function p(t){return 0>t?Math.ceil(t):Math.floor(t)}function m(t,e,i){for(var s=""+Math.abs(t),n=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&w(t[s])!==w(e[s]))&&a++;return a+o}function _(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=ti[t]||ei[e]||e}return t}function b(t){var e,i,s={};for(i in t)t.hasOwnProperty(i)&&(e=_(i),e&&(s[e]=t[i]));return s}function x(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}ce[t]=function(n,o){var a,r,h=ce.fn._lang[t],d=[];if("number"==typeof n&&(o=n,n=s),r=function(t){var e=ce().utc().set(i,t);return h.call(ce.fn._lang,e,n||"")},null!=o)return r(o);for(a=0;e>a;a++)d.push(r(a));return d}}function w(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function S(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function T(t,e,i){return ee(ce([t,11,31+e-i]),e,i).week}function E(t){return M(t)?366:365}function M(t){return t%4===0&&t%100!==0||t%400===0}function D(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[ye]<0||t._a[ye]>11?ye:t._a[_e]<1||t._a[_e]>S(t._a[ve],t._a[ye])?_e:t._a[be]<0||t._a[be]>23?be:t._a[xe]<0||t._a[xe]>59?xe:t._a[we]<0||t._a[we]>59?we:t._a[Se]<0||t._a[Se]>999?Se:-1,t._pf._overflowDayOfYear&&(ve>e||e>_e)&&(e=_e),t._pf.overflow=e)}function C(t){return null==t._isValid&&(t._isValid=!isNaN(t._d.getTime())&&t._pf.overflow<0&&!t._pf.empty&&!t._pf.invalidMonth&&!t._pf.nullInput&&!t._pf.invalidFormat&&!t._pf.userInvalidated,t._strict&&(t._isValid=t._isValid&&0===t._pf.charsLeftOver&&0===t._pf.unusedTokens.length)),t._isValid}function I(t){return t?t.toLowerCase().replace("_","-"):t}function O(t,e){return e._isUTC?ce(t).zone(e._offset||0):ce(t).local()}function P(t,e){return e.abbr=t,Te[t]||(Te[t]=new h),Te[t].set(e),Te[t]}function L(t){delete Te[t]}function N(e){var i,s,n,o,a=0,r=function(e){if(!Te[e]&&Me)try{t("./lang/"+e)}catch(i){}return Te[e]};if(!e)return ce.fn._lang;if(!f(e)){if(s=r(e))return s;e=[e]}for(;a0;){if(s=r(o.slice(0,i).join("-")))return s;if(n&&n.length>=i&&y(o,n,!0)>=i-1)break;i--}a++}return ce.fn._lang}function k(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function z(t){var e,i,s=t.match(Oe);for(e=0,i=s.length;i>e;e++)s[e]=oi[s[e]]?oi[s[e]]:k(s[e]);return function(n){var o="";for(e=0;i>e;e++)o+=s[e]instanceof Function?s[e].call(n,t):s[e];return o}}function A(t,e){return t.isValid()?(e=R(e,t.lang()),ii[e]||(ii[e]=z(e)),ii[e](t)):t.lang().invalidDate()}function R(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Pe.lastIndex=0;s>=0&&Pe.test(t);)t=t.replace(Pe,i),Pe.lastIndex=0,s-=1;return t}function F(t,e){var i,s=e._strict;switch(t){case"Q":return Be;case"DDDD":return je;case"YYYY":case"GGGG":case"gggg":return s?Ve:ke;case"Y":case"G":case"g":return Xe;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?Ue:ze;case"S":if(s)return Be;case"SS":if(s)return We;case"SSS":if(s)return je;case"DDD":return Ne;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Re;case"a":case"A":return N(e._l)._meridiemParse;case"X":return Ye;case"Z":case"ZZ":return Fe;case"T":return Ge;case"SSSS":return Ae;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?We:Le;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Le;case"Do":return He;default:return i=new RegExp(U(V(t.replace("\\","")),"i"))}}function G(t){t=t||"";var e=t.match(Fe)||[],i=e[e.length-1]||[],s=(i+"").match(Je)||["-",0,0],n=+(60*s[1])+w(s[2]);return"+"===s[0]?-n:n}function Y(t,e,i){var s,n=i._a;switch(t){case"Q":null!=e&&(n[ye]=3*(w(e)-1));break;case"M":case"MM":null!=e&&(n[ye]=w(e)-1);break;case"MMM":case"MMMM":s=N(i._l).monthsParse(e),null!=s?n[ye]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(n[_e]=w(e));break;case"Do":null!=e&&(n[_e]=w(parseInt(e,10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=w(e));break;case"YY":n[ve]=ce.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":n[ve]=w(e);break;case"a":case"A":i._isPm=N(i._l).isPM(e);break;case"H":case"HH":case"h":case"hh":n[be]=w(e);break;case"m":case"mm":n[xe]=w(e);break;case"s":case"ss":n[we]=w(e);break;case"S":case"SS":case"SSS":case"SSSS":n[Se]=w(1e3*("0."+e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=G(e);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":t=t.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":t=t.substr(0,2),e&&(i._w=i._w||{},i._w[t]=e)}}function H(t){var e,i,s,n,o,a,r,h,d,l,c=[];if(!t._d){for(s=W(t),t._w&&null==t._a[_e]&&null==t._a[ye]&&(o=function(e){var i=parseInt(e,10);return e?e.length<3?i>68?1900+i:2e3+i:i:null==t._a[ve]?ce().weekYear():t._a[ve]},a=t._w,null!=a.GG||null!=a.W||null!=a.E?r=ie(o(a.GG),a.W||1,a.E,4,1):(h=N(t._l),d=null!=a.d?J(a.d,h):null!=a.e?parseInt(a.e,10)+h._week.dow:0,l=parseInt(a.w,10)||1,null!=a.d&&dE(n)&&(t._pf._overflowDayOfYear=!0),i=$(n,0,t._dayOfYear),t._a[ye]=i.getUTCMonth(),t._a[_e]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=c[e]=s[e];for(;7>e;e++)t._a[e]=c[e]=null==t._a[e]?2===e?1:0:t._a[e];c[be]+=w((t._tzm||0)/60),c[xe]+=w((t._tzm||0)%60),t._d=(t._useUTC?$:K).apply(null,c)}}function B(t){var e;t._d||(e=b(t._i),t._a=[e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond],H(t))}function W(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function j(t){t._a=[],t._pf.empty=!0;var e,i,s,n,o,a=N(t._l),r=""+t._i,h=r.length,d=0;for(s=R(t._f,a).match(Oe)||[],e=0;e0&&t._pf.unusedInput.push(o),r=r.slice(r.indexOf(i)+i.length),d+=i.length),oi[n]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(n),Y(n,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(n);t._pf.charsLeftOver=h-d,r.length>0&&t._pf.unusedInput.push(r),t._isPm&&t._a[be]<12&&(t._a[be]+=12),t._isPm===!1&&12===t._a[be]&&(t._a[be]=0),H(t),D(t)}function V(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,n){return e||i||s||n})}function U(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function X(t){var e,i,s,o,a;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(o=0;oa)&&(s=a,i=e));c(t,i||e)}function q(t){var e,i,s=t._i,n=qe.exec(s);if(n){for(t._pf.iso=!0,e=0,i=Ke.length;i>e;e++)if(Ke[e][1].exec(s)){t._f=Ke[e][0]+(n[6]||" ");break}for(e=0,i=$e.length;i>e;e++)if($e[e][1].exec(s)){t._f+=$e[e][0];break}s.match(Fe)&&(t._f+="Z"),j(t)}else ce.createFromInputFallback(t)}function Z(t){var e=t._i,i=De.exec(e);e===s?t._d=new Date:i?t._d=new Date(+i[1]):"string"==typeof e?q(t):f(e)?(t._a=e.slice(0),H(t)):v(e)?t._d=new Date(+e):"object"==typeof e?B(t):"number"==typeof e?t._d=new Date(e):ce.createFromInputFallback(t)}function K(t,e,i,s,n,o,a){var r=new Date(t,e,i,s,n,o,a);return 1970>t&&r.setFullYear(t),r}function $(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function J(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function Q(t,e,i,s,n){return n.relativeTime(e||1,!!i,t,s)}function te(t,e,i){var s=fe(Math.abs(t)/1e3),n=fe(s/60),o=fe(n/60),a=fe(o/24),r=fe(a/365),h=45>s&&["s",s]||1===n&&["m"]||45>n&&["mm",n]||1===o&&["h"]||22>o&&["hh",o]||1===a&&["d"]||25>=a&&["dd",a]||45>=a&&["M"]||345>a&&["MM",fe(a/30)]||1===r&&["y"]||["yy",r];return h[2]=e,h[3]=t>0,h[4]=i,Q.apply({},h)}function ee(t,e,i){var s,n=i-e,o=i-t.day();return o>n&&(o-=7),n-7>o&&(o+=7),s=ce(t).add("d",o),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ie(t,e,i,s,n){var o,a,r=$(t,0,1).getUTCDay();return i=null!=i?i:n,o=n-r+(r>s?7:0)-(n>r?7:0),a=7*(e-1)+(i-n)+o+1,{year:a>0?t:t-1,dayOfYear:a>0?a:E(t-1)+a}}function se(t){var e=t._i,i=t._f;return null===e||i===s&&""===e?ce.invalid({nullInput:!0}):("string"==typeof e&&(t._i=e=N().preparse(e)),ce.isMoment(e)?(t=u(e),t._d=new Date(+e._d)):i?f(i)?X(t):j(t):Z(t),new d(t))}function ne(t,e){var i;return"string"==typeof e&&(e=t.lang().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),S(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function oe(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function ae(t,e,i){return"Month"===e?ne(t,i):t._d["set"+(t._isUTC?"UTC":"")+e](i)}function re(t,e){return function(i){return null!=i?(ae(this,t,i),ce.updateOffset(this,e),this):oe(this,t)}}function he(t){ce.duration.fn[t]=function(){return this._data[t]}}function de(t,e){ce.duration.fn["as"+t]=function(){return+this/e}}function le(t){"undefined"==typeof ender&&(ue=ge.moment,ge.moment=t?o("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",ce):ce)}for(var ce,ue,pe,me="2.6.0",ge="undefined"!=typeof i?i:this,fe=Math.round,ve=0,ye=1,_e=2,be=3,xe=4,we=5,Se=6,Te={},Ee={_isAMomentObject:null,_i:null,_f:null,_l:null,_strict:null,_isUTC:null,_offset:null,_pf:null,_lang:null},Me="undefined"!=typeof e&&e.exports,De=/^\/?Date\((\-?\d+)/i,Ce=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Ie=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Oe=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,Pe=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,Le=/\d\d?/,Ne=/\d{1,3}/,ke=/\d{1,4}/,ze=/[+\-]?\d{1,6}/,Ae=/\d+/,Re=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Fe=/Z|[\+\-]\d\d:?\d\d/gi,Ge=/T/i,Ye=/[\+\-]?\d+(\.\d{1,3})?/,He=/\d{1,2}/,Be=/\d/,We=/\d\d/,je=/\d{3}/,Ve=/\d{4}/,Ue=/[+-]?\d{6}/,Xe=/[+-]?\d+/,qe=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ze="YYYY-MM-DDTHH:mm:ssZ",Ke=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],$e=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Je=/([\+\-]|\d\d)/gi,Qe=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),ti={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},ei={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},ii={},si="DDD w W M D d".split(" "),ni="M D H h m s w W".split(" "),oi={M:function(){return this.month()+1},MMM:function(t){return this.lang().monthsShort(this,t)},MMMM:function(t){return this.lang().months(this,t)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(t){return this.lang().weekdaysMin(this,t)},ddd:function(t){return this.lang().weekdaysShort(this,t)},dddd:function(t){return this.lang().weekdays(this,t)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return m(this.year()%100,2)},YYYY:function(){return m(this.year(),4)},YYYYY:function(){return m(this.year(),5)},YYYYYY:function(){var t=this.year(),e=t>=0?"+":"-";return e+m(Math.abs(t),6)},gg:function(){return m(this.weekYear()%100,2)},gggg:function(){return m(this.weekYear(),4)},ggggg:function(){return m(this.weekYear(),5)},GG:function(){return m(this.isoWeekYear()%100,2)},GGGG:function(){return m(this.isoWeekYear(),4)},GGGGG:function(){return m(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return w(this.milliseconds()/100)},SS:function(){return m(w(this.milliseconds()/10),2)},SSS:function(){return m(this.milliseconds(),3)},SSSS:function(){return m(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+m(w(t/60),2)+":"+m(w(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+m(w(t/60),2)+m(w(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},ai=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];si.length;)pe=si.pop(),oi[pe+"o"]=r(oi[pe],pe);for(;ni.length;)pe=ni.pop(),oi[pe+pe]=a(oi[pe],2);for(oi.DDDD=a(oi.DDD,3),c(h.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t){var e,i,s;for(this._monthsParse||(this._monthsParse=[]),e=0;12>e;e++)if(this._monthsParse[e]||(i=ce.utc([2e3,e]),s="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[e]=new RegExp(s.replace(".",""),"i")),this._monthsParse[e].test(t))return e},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(t){return this._weekdays[t.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(t){return this._weekdaysShort[t.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(t){return this._weekdaysMin[t.day()]},weekdaysParse:function(t){var e,i,s;for(this._weekdaysParse||(this._weekdaysParse=[]),e=0;7>e;e++)if(this._weekdaysParse[e]||(i=ce([2e3,1]).day(e),s="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(s.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e},isPM:function(t){return"p"===(t+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(t,e){var i=this._calendar[t];return"function"==typeof i?i.apply(e):i},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(t,e,i,s){var n=this._relativeTime[i];return"function"==typeof n?n(t,e,i,s):n.replace(/%d/i,t)},pastFuture:function(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)},ordinal:function(t){return this._ordinal.replace("%d",t)},_ordinal:"%d",preparse:function(t){return t},postformat:function(t){return t},week:function(t){return ee(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),ce=function(t,e,i,o){var a;return"boolean"==typeof i&&(o=i,i=s),a={},a._isAMomentObject=!0,a._i=t,a._f=e,a._l=i,a._strict=o,a._isUTC=!1,a._pf=n(),se(a)},ce.suppressDeprecationWarnings=!1,ce.createFromInputFallback=o("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i)}),ce.utc=function(t,e,i,o){var a;return"boolean"==typeof i&&(o=i,i=s),a={},a._isAMomentObject=!0,a._useUTC=!0,a._isUTC=!0,a._l=i,a._i=t,a._f=e,a._strict=o,a._pf=n(),se(a).utc()},ce.unix=function(t){return ce(1e3*t)},ce.duration=function(t,e){var i,s,n,o=t,a=null;return ce.isDuration(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(o={},e?o[e]=t:o.milliseconds=t):(a=Ce.exec(t))?(i="-"===a[1]?-1:1,o={y:0,d:w(a[_e])*i,h:w(a[be])*i,m:w(a[xe])*i,s:w(a[we])*i,ms:w(a[Se])*i}):(a=Ie.exec(t))&&(i="-"===a[1]?-1:1,n=function(t){var e=t&&parseFloat(t.replace(",","."));return(isNaN(e)?0:e)*i},o={y:n(a[2]),M:n(a[3]),d:n(a[4]),h:n(a[5]),m:n(a[6]),s:n(a[7]),w:n(a[8])}),s=new l(o),ce.isDuration(t)&&t.hasOwnProperty("_lang")&&(s._lang=t._lang),s},ce.version=me,ce.defaultFormat=Ze,ce.momentProperties=Ee,ce.updateOffset=function(){},ce.lang=function(t,e){var i;return t?(e?P(I(t),e):null===e?(L(t),t="en"):Te[t]||N(t),i=ce.duration.fn._lang=ce.fn._lang=N(t),i._abbr):ce.fn._lang._abbr},ce.langData=function(t){return t&&t._lang&&t._lang._abbr&&(t=t._lang._abbr),N(t)},ce.isMoment=function(t){return t instanceof d||null!=t&&t.hasOwnProperty("_isAMomentObject")},ce.isDuration=function(t){return t instanceof l},pe=ai.length-1;pe>=0;--pe)x(ai[pe]);ce.normalizeUnits=function(t){return _(t)},ce.invalid=function(t){var e=ce.utc(0/0);return null!=t?c(e._pf,t):e._pf.userInvalidated=!0,e},ce.parseZone=function(){return ce.apply(null,arguments).parseZone()},ce.parseTwoDigitYear=function(t){return w(t)+(w(t)>68?1900:2e3)},c(ce.fn=d.prototype,{clone:function(){return ce(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var t=ce(this).utc();return 00:!1},parsingFlags:function(){return c({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(t){var e=A(this,t||ce.defaultFormat);return this.lang().postformat(e)},add:function(t,e){var i;return i="string"==typeof t?ce.duration(+e,t):ce.duration(t,e),g(this,i,1),this},subtract:function(t,e){var i;return i="string"==typeof t?ce.duration(+e,t):ce.duration(t,e),g(this,i,-1),this},diff:function(t,e,i){var s,n,o=O(t,this),a=6e4*(this.zone()-o.zone());return e=_(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+o.daysInMonth()),n=12*(this.year()-o.year())+(this.month()-o.month()),n+=(this-ce(this).startOf("month")-(o-ce(o).startOf("month")))/s,n-=6e4*(this.zone()-ce(this).startOf("month").zone()-(o.zone()-ce(o).startOf("month").zone()))/s,"year"===e&&(n/=12)):(s=this-o,n="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-a)/864e5:"week"===e?(s-a)/6048e5:s),i?n:p(n)},from:function(t,e){return ce.duration(this.diff(t)).lang(this.lang()._abbr).humanize(!e)},fromNow:function(t){return this.from(ce(),t)},calendar:function(){var t=O(ce(),this).startOf("day"),e=this.diff(t,"days",!0),i=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse";return this.format(this.lang().calendar(i,this))},isLeapYear:function(){return M(this.year())},isDST:function(){return this.zone()+ce(t).startOf(e)},isBefore:function(t,e){return e="undefined"!=typeof e?e:"millisecond",+this.clone().startOf(e)<+ce(t).startOf(e)},isSame:function(t,e){return e=e||"ms",+this.clone().startOf(e)===+O(t,this).startOf(e)},min:function(t){return t=ce.apply(null,arguments),this>t?this:t},max:function(t){return t=ce.apply(null,arguments),t>this?this:t},zone:function(t,e){var i=this._offset||0;return null==t?this._isUTC?i:this._d.getTimezoneOffset():("string"==typeof t&&(t=G(t)),Math.abs(t)<16&&(t=60*t),this._offset=t,this._isUTC=!0,i!==t&&(!e||this._changeInProgress?g(this,ce.duration(i-t,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,ce.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(t){return t=t?ce(t).zone():0,(this.zone()-t)%60===0},daysInMonth:function(){return S(this.year(),this.month())},dayOfYear:function(t){var e=fe((ce(this).startOf("day")-ce(this).startOf("year"))/864e5)+1;return null==t?e:this.add("d",t-e)},quarter:function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},weekYear:function(t){var e=ee(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==t?e:this.add("y",t-e)},isoWeekYear:function(t){var e=ee(this,1,4).year;return null==t?e:this.add("y",t-e)},week:function(t){var e=this.lang().week(this);return null==t?e:this.add("d",7*(t-e))},isoWeek:function(t){var e=ee(this,1,4).week;return null==t?e:this.add("d",7*(t-e))},weekday:function(t){var e=(this.day()+7-this.lang()._week.dow)%7;return null==t?e:this.add("d",t-e)},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},isoWeeksInYear:function(){return T(this.year(),1,4)},weeksInYear:function(){var t=this._lang._week;return T(this.year(),t.dow,t.doy)},get:function(t){return t=_(t),this[t]()},set:function(t,e){return t=_(t),"function"==typeof this[t]&&this[t](e),this},lang:function(t){return t===s?this._lang:(this._lang=N(t),this)}}),ce.fn.millisecond=ce.fn.milliseconds=re("Milliseconds",!1),ce.fn.second=ce.fn.seconds=re("Seconds",!1),ce.fn.minute=ce.fn.minutes=re("Minutes",!1),ce.fn.hour=ce.fn.hours=re("Hours",!0),ce.fn.date=re("Date",!0),ce.fn.dates=o("dates accessor is deprecated. Use date instead.",re("Date",!0)),ce.fn.year=re("FullYear",!0),ce.fn.years=o("years accessor is deprecated. Use year instead.",re("FullYear",!0)),ce.fn.days=ce.fn.day,ce.fn.months=ce.fn.month,ce.fn.weeks=ce.fn.week,ce.fn.isoWeeks=ce.fn.isoWeek,ce.fn.quarters=ce.fn.quarter,ce.fn.toJSON=ce.fn.toISOString,c(ce.duration.fn=l.prototype,{_bubble:function(){var t,e,i,s,n=this._milliseconds,o=this._days,a=this._months,r=this._data;r.milliseconds=n%1e3,t=p(n/1e3),r.seconds=t%60,e=p(t/60),r.minutes=e%60,i=p(e/60),r.hours=i%24,o+=p(i/24),r.days=o%30,a+=p(o/30),r.months=a%12,s=p(a/12),r.years=s},weeks:function(){return p(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12)},humanize:function(t){var e=+this,i=te(e,!t,this.lang());return t&&(i=this.lang().pastFuture(e,i)),this.lang().postformat(i)},add:function(t,e){var i=ce.duration(t,e);return this._milliseconds+=i._milliseconds,this._days+=i._days,this._months+=i._months,this._bubble(),this},subtract:function(t,e){var i=ce.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=_(t),this[t.toLowerCase()+"s"]()},as:function(t){return t=_(t),this["as"+t.charAt(0).toUpperCase()+t.slice(1)+"s"]()},lang:ce.fn.lang,toIsoString:function(){var t=Math.abs(this.years()),e=Math.abs(this.months()),i=Math.abs(this.days()),s=Math.abs(this.hours()),n=Math.abs(this.minutes()),o=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(s||n||o?"T":"")+(s?s+"H":"")+(n?n+"M":"")+(o?o+"S":""):"P0D"}});for(pe in Qe)Qe.hasOwnProperty(pe)&&(de(pe,Qe[pe]),he(pe.toLowerCase()));de("Weeks",6048e5),ce.duration.fn.asMonths=function(){return(+this-31536e6*this.years())/2592e6+12*this.years()},ce.lang("en",{ordinal:function(t){var e=t%10,i=1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),Me?e.exports=ce:"function"==typeof define&&define.amd?(define("moment",function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(ge.moment=ue),ce}),le(!0)):le()}).call(this)},{}],5:[function(t,e){function i(t,e,i){return t.addEventListener?t.addEventListener(e,i,!1):void t.attachEvent("on"+e,i)}function s(t){return"keypress"==t.type?String.fromCharCode(t.which):x[t.which]?x[t.which]:w[t.which]?w[t.which]:String.fromCharCode(t.which).toLowerCase()}function n(t){var e=t.target||t.srcElement,i=e.tagName;return(" "+e.className+" ").indexOf(" mousetrap ")>-1?!1:"INPUT"==i||"SELECT"==i||"TEXTAREA"==i||e.contentEditable&&"true"==e.contentEditable}function o(t,e){return t.sort().join(",")===e.sort().join(",")}function a(t){t=t||{};var e,i=!1;for(e in D)t[e]?i=!0:D[e]=0;i||(I=!1)}function r(t,e,i,s,n){var a,r,h=[];if(!E[t])return[];for("keyup"==i&&u(t)&&(e=[t]),a=0;a95&&112>t||x.hasOwnProperty(t)&&(_[x[t]]=t)}return _}function g(t,e,i){return i||(i=m()[t]?"keydown":"keypress"),"keypress"==i&&e.length&&(i="keydown"),i}function f(t,e,i,n){D[t]=0,n||(n=g(e[0],[]));var o,r=function(){I=n,++D[t],p()},h=function(t){d(i,t),"keyup"!==n&&(C=s(t)),setTimeout(a,10)};for(o=0;o1)return f(t,d,e,i);for(h="+"===t?["+"]:t.split("+"),o=0;o":".","?":"/","|":"\\"},T={option:"alt",command:"meta","return":"enter",escape:"esc"},E={},M={},D={},C=!1,I=!1,O=1;20>O;++O)x[111+O]="f"+O;for(O=0;9>=O;++O)x[O+96]=O;i(document,"keypress",c),i(document,"keydown",c),i(document,"keyup",c);var P={bind:function(t,e,i){return y(t instanceof Array?t:[t],e,i),M[t+":"+i]=e,this},unbind:function(t,e){return M[t+":"+e]&&(delete M[t+":"+e],this.bind(t,function(){},e)),this},trigger:function(t,e){return M[t+":"+e](),this},reset:function(){return E={},M={},this}};e.exports=P},{}]},{},[1])(1)}); \ No newline at end of file diff --git a/docs/graph.html b/docs/graph.html index 08a186ed..20e96ed2 100644 --- a/docs/graph.html +++ b/docs/graph.html @@ -235,7 +235,18 @@ var nodes = [ // ... more nodes ]; - +Alternatively, a vis DataSet can also be used: +
+var nodes = new vis.DataSet();
+nodes.add([
+    {id: '1', label: 'Node 1'},
+    {id: '2', label: 'Node 2'},
+    {id: '3', label: 'Node 3'},
+    {id: '4', label: 'Node 4'},
+    // ... more nodes
+]);
+
+When using a DataSet, the graph is automatically updating to changes in the DataSet.

Nodes support the following properties: @@ -291,6 +302,20 @@ var nodes = [ Border color of the node when selected. + + color.hover.background + String + no + Background color of the node when the node is hovered over and the hover option is enabled. + + + + color.hover.border + String + no + Border color of the node when the node is hovered over and the hover option is enabled. + + group Number | String @@ -478,6 +503,18 @@ var edges = [ // ... more edges ]; +Alternatively, a vis DataSet can also be used: +

+var edges = new vis.DataSet();
+edges.add([
+    {from: '1', to: '2'},
+    {from: '1', to: '3'},
+    {from: '2', to: '4'},
+    {from: '2', to: '5'},
+    // ... more edges
+]);
+
+When using a DataSet, the graph is automatically updating to changes in the DataSet.

Edges support the following properties: @@ -517,6 +554,19 @@ var edges = [ Color of the edge when selected. + + color.hover + String + no + Color of the edge when the edge is hovered over and the hover option is enabled. + + + hoverWidth + Number + 1.5 + This determines the thickness of the edge if it is hovered over. This will only manifest when the hover option is enabled. + + dash Object @@ -656,6 +706,7 @@ var edges = [ override a specified value, if a value is specified too. + @@ -790,6 +841,13 @@ var options = { The height of the graph in pixels or as a percentage. + + hover + Boolean + false + Enabling the change of the colors of nodes and edges when the mouse hovers over them. Enabling this may have a minor impact on performance. + + keyboard Object @@ -799,13 +857,21 @@ var options = { - moveable + dragGraph Boolean true Toggle if the graph can be dragged. This will not affect the dragging of nodes. + + dragNodes + Boolean + true + + Toggle if the nodes can be dragged. This will not affect the dragging of the graph. + + navigation @@ -2008,6 +2074,13 @@ var options: { The selections are not ordered. + + focusOnNode(nodeId, [zoomLevel]) + none + This function will move the view to center on the specified node. An optional zoomLevel can be passed where 1.0 is 100%, between 0.0 and 1.0 is zooming out and > 1.0 is zooming in. Generally, close to 1.0 is sufficient. + If this argument is not passed the view will only move, not zoom. + + storePosition() none @@ -2169,6 +2242,26 @@ graph.off('select', onSelect); + + + hoverNode + Fired when the mouse is moved over a node (assuming the hover option is enabled). + +

    +
  • node: an object with the id of the hovered node.
  • +
+ + + + + blurNode + Fired when the mouse is moved off a node (assuming the hover option is enabled). + +
    +
  • node: an object with the id of the hovered node.
  • +
+ + resize Fired when the size of the canvas has been updated (not neccecarily changed) by the setSize() function or by the setOptions() function. diff --git a/docs/graph3d.html b/docs/graph3d.html new file mode 100644 index 00000000..d2bda8cb --- /dev/null +++ b/docs/graph3d.html @@ -0,0 +1,646 @@ + + + + vis.js | graph3d documentation + + + + + + + + +
+ +

Graph3d documentation

+ +

Overview

+

+ Graph3d is an interactive visualization chart to draw data in a three dimensional + graph. You can freely move and zoom in the graph by dragging and scrolling in the + window. + Graph3d also supports animation of a graph. +

+ +

Contents

+ + +

Example

+

+ The following code shows how to create a Graph3d and provide it with data. + More examples can be found in the examples directory. +

+ +
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Graph 3D demo</title>
+
+  <style>
+    body {font: 10pt arial;}
+  </style>
+
+  <script type="text/javascript" src="../../dist/vis.js"></script>
+
+  <script type="text/javascript">
+  var data = null;
+  var graph = null;
+
+  function custom(x, y) {
+    return (Math.sin(x/50) * Math.cos(y/50) * 50 + 50);
+  }
+
+  // Called when the Visualization API is loaded.
+  function drawVisualization() {
+    // Create and populate a data table.
+    var data = new vis.DataSet();
+    // create some nice looking data with sin/cos
+    var steps = 50;  // number of datapoints will be steps*steps
+    var axisMax = 314;
+    var axisStep = axisMax / steps;
+    for (var x = 0; x < axisMax; x+=axisStep) {
+      for (var y = 0; y < axisMax; y+=axisStep) {
+        var value = custom(x, y);
+        data.add({
+          x: x,
+          y: y,
+          z: value,
+          style: value
+        });
+      }
+    }
+
+    // specify options
+    var options = {
+      width:  '600px',
+      height: '600px',
+      style: 'surface',
+      showPerspective: true,
+      showGrid: true,
+      showShadow: false,
+      keepAspectRatio: true,
+      verticalRatio: 0.5
+    };
+
+    // create a graph3d
+    var container = document.getElementById('mygraph');
+    graph3d = new vis.Graph3d(container, data, options);
+  }
+  </script>
+</head>
+
+<body onload="drawVisualization();">
+  <div id="mygraph"></div>
+</body>
+</html>
+
+
+ + +

Loading

+ +

+ The class name of the Graph3d is vis.Graph3d. + When constructing a Graph3d, an HTML DOM container must be provided to attach + the graph to. Optionally, data an options can be provided. + Data is a vis DataSet or an Array, described in + section Data Format. + Options is a name-value map in the JSON format. The available options + are described in section Configuration Options. +

+
var graph = new vis.Graph3d(container [, data] [, options]);
+ +

+ Data and options can be set or changed later on using the functions + Graph3d.setData(data) and Graph3d.setOptions(options). +

+ +

Data Format

+

+ Graph3d can load data from an Array, a DataSet or a DataView. + JSON objects are added to this DataSet by using the add() function. + Data points must have properties x, y, and z, + and can optionally have a property style and filter. + +

Definition

+

+ The DataSet JSON objects are defined as: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
xnumberyesLocation on the x-axis.
ynumberyesLocation on the y-axis.
znumberyesLocation on the z-axis.
stylenumbernoThe data value, required for graph styles dot-color and + dot-size. +
filter*noFilter values used for the animation. + This column may have any type, such as a number, string, or Date.
+ + + +

Configuration Options

+ +

+ Options can be used to customize the graph. Options are defined as a JSON object. + All options are optional. +

+ +
+var options = {
+    width:  '100%',
+    height: '400px',
+    style: 'surface'
+};
+
+ +

+ The following options are available. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
animationIntervalnumber1000The animation interval in milliseconds. This determines how fast + the animation runs.
animationPreloadbooleanfalseIf false, the animation frames are loaded as soon as they are requested. + if animationPreload is true, the graph will automatically load + all frames in the background, resulting in a smoother animation as soon as + all frames are loaded. The load progress is shown on screen.
animationAutoStartbooleanfalseIf true, the animation starts playing automatically after the graph + is created.
backgroundColorstring or Object'white'The background color for the main area of the chart. + Can be either a simple HTML color string, for example: 'red' or '#00cc00', + or an object with the following properties.
backgroundColor.strokestring'gray'The color of the chart border, as an HTML color string.
backgroundColor.strokeWidthnumber1The border width, in pixels.
backgroundColor.fillstring'white'The chart fill color, as an HTML color string.
cameraPositionObject{horizontal: 1.0, vertical: 0.5, distance: 1.7}Set the initial rotation and position of the camera. + The object cameraPosition contains three parameters: + horizontal, vertical, and distance. + Parameter horizontal is a value in radians and can have any + value (but normally in the range of 0 and 2*Pi). + Parameter vertical is a value in radians between 0 and 0.5*Pi. + Parameter distance is the (normalized) distance from the + camera to the center of the graph, in the range of 0.71 to 5.0. A + larger distance puts the graph further away, making it smaller. + All parameters are optional. +
heightstring'400px'The height of the graph in pixels or as a percentage.
keepAspectRatiobooleantrueIf keepAspectRatio is true, the x-axis and the y-axis + keep their aspect ratio. If false, the axes are scaled such that they + both have the same, maximum with.
showAnimationControlsbooleantrueIf true, animation controls are created at the bottom of the Graph. + The animation controls consists of buttons previous, start/stop, next, + and a slider showing the current frame. + Only applicable when the provided data contains an animation.
showGridbooleantrueIf true, grid lines are draw in the x-y surface (the bottom of the 3d + graph).
showPerspectivebooleantrueIf true, the graph is drawn in perspective: points and lines which + are further away are drawn smaller. + Note that the graph currently does not support a gray colored bottom side + when drawn in perspective. +
showShadowbooleanfalseShow shadow on the graph.
stylestring'dot'The style of the 3d graph. Available styles: + bar, + bar-color, + bar-size, + dot, + dot-line, + dot-color, + dot-size, + line, + grid, + or surface
tooltipboolean | functionfalseShow a tooltip showing the values of the hovered data point. + The contents of the tooltip can be customized by providing a callback + function as tooltip. In this case the function is called + with an object containing parameters x, + y, and z argument, + and must return a string which may contain HTML. +
valueMaxnumbernoneThe maximum value for the value-axis. Only available in combination + with the styles dot-color and dot-size.
valueMinnumbernoneThe minimum value for the value-axis. Only available in combination + with the styles dot-color and dot-size.
verticalRationumber0.5A value between 0.1 and 1.0. This scales the vertical size of the graph + When keepAspectRatio is set to false, and verticalRatio is set to 1.0, + the graph will be a cube.
widthstring'400px'The width of the graph in pixels or as a percentage.
xBarWidthnumbernoneThe width of bars in x direction. By default, the width is equal to the distance + between the data points, such that bars adjoin each other. + Only applicable for styles 'bar' and 'bar-color'.
xCenterstring'55%'The horizontal center position of the graph, as a percentage or in + pixels.
xMaxnumbernoneThe maximum value for the x-axis.
xMinnumbernoneThe minimum value for the x-axis.
xStepnumbernoneStep size for the grid on the x-axis.
yBarWidthnumbernoneThe width of bars in y direction. By default, the width is equal to the distance + between the data points, such that bars adjoin each other. + Only applicable for styles 'bar' and 'bar-color'.
yCenterstring'45%'The vertical center position of the graph, as a percentage or in + pixels.
yMaxnumbernoneThe maximum value for the y-axis.
yMinnumbernoneThe minimum value for the y-axis.
yStepnumbernoneStep size for the grid on the y-axis.
zMinnumbernoneThe minimum value for the z-axis.
zMaxnumbernoneThe maximum value for the z-axis.
zStepnumbernoneStep size for the grid on the z-axis.
xLabelStringxLabel on the X axis.
yLabelStringyLabel on the Y axis.
zLabelStringzLabel on the Z axis.
filterLabelStringtimeLabel for the filter column.
legendLabelStringvalueLabel for the style description.
+ + +

Methods

+

+ Graph3d supports the following methods. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodReturn TypeDescription
animationStart()noneStart playing the animation. + Only applicable when animation data is available.
animationStop()noneStop playing the animation. + Only applicable when animation data is available.
getCameraPosition()An object with parameters horizontal, + vertical and distanceReturns an object with parameters horizontal, + vertical and distance, + which each one of them is a number, representing the rotation and position + of the camera.
redraw()noneRedraw the graph. Useful after the camera position is changed externally, + when data is changed, or when the layout of the webpage changed.
setData(data)noneReplace the data in the Graph3d.
setOptions(options)noneUpdate options of Graph3d. + The provided options will be merged with current options.
setSize(width, height)noneParameters width and height are strings, + containing a new size for the graph. Size can be provided in pixels + or in percentages.
setCameraPosition (pos){horizontal: 1.0, vertical: 0.5, distance: 1.7}Set the rotation and position of the camera. Parameter pos + is an object which contains three parameters: horizontal, + vertical, and distance. + Parameter horizontal is a value in radians and can have any + value (but normally in the range of 0 and 2*Pi). + Parameter vertical is a value in radians between 0 and 0.5*Pi. + Parameter distance is the (normalized) distance from the + camera to the center of the graph, in the range of 0.71 to 5.0. A + larger distance puts the graph further away, making it smaller. + All parameters are optional. +
+ +

Events

+

+ Graph3d fires events after the camera position has been changed. + The event can be catched by creating a listener. + Here an example on how to catch a cameraPositionChange event. +

+ +
+function onCameraPositionChange(event) {
+  alert('The camera position changed to:\n' +
+        'Horizontal: ' + event.horizontal + '\n' +
+        'Vertical: ' + event.vertical + '\n' +
+        'Distance: ' + event.distance);
+}
+// assuming var graph3d = new vis.Graph3d(document.getElementById('mygraph'));
+graph3d.on('cameraPositionChange', onCameraPositionChange);
+
+ +

+ The following events are available. +

+ + + + + + + + + + + + + + + + + +
nameDescriptionProperties
cameraPositionChangeThe camera position changed. Fired after the user modified the camera position + by moving (dragging) the graph, or by zooming (scrolling), + but not after a call to setCameraPosition method. + The new camera position can be retrieved by calling the method + getCameraPosition. +
    +
  • horizontal: Number. The horizontal angle of the camera.
  • +
  • vertical: Number. The vertical angle of the camera.
  • +
  • distance: Number. The distance of the camera to the center of the graph.
  • +
+
+ +

Data Policy

+

+ All code and data are processed and rendered in the browser. No data is sent to any server. +

+ +
+ + diff --git a/docs/img/graph3d.png b/docs/img/graph3d.png new file mode 100644 index 0000000000000000000000000000000000000000..72fc45cd0a7aa62e4136f65685d1b6f67eaf8eca GIT binary patch literal 101584 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

jsD;3iT%c+7>T(`~$=z7WEK3JZC8(zClQ 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 z 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. Display a graph or network with nodes and edges. +

  • + Graph3d. + Display data in a three dimensional graph. +
  • Timeline. - Display different types of data on a timeline. The timeline and the - items on the timeline can be interactively moved, zoomed, and - manipulated. + Display different types of data on a timeline.
  • diff --git a/docs/timeline.html b/docs/timeline.html index ee22e962..179d11a1 100644 --- a/docs/timeline.html +++ b/docs/timeline.html @@ -692,9 +692,9 @@ timeline.clear({options: true}); // clear options only - repaint() + redraw() none - Force a repaint of the Timeline. Can be useful to manually repaint when option autoResize=false. + Force a redraw of the Timeline. Can be useful to manually redraw when option autoResize=false. @@ -820,6 +820,7 @@ timeline.off('select', onSelect); select Fired after the user selects or deselects items by tapping or holding them. + When a use taps an already selected item, the select event is fired again. Not fired when the method setSelectionis executed. diff --git a/download/vis.zip b/download/vis.zip index 0f29942e5576e94cc4f468c3703d9dea6314669f..7bedaba2e6f75daee498dca3fffa75288ca964a4 100644 GIT binary patch delta 418749 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
    8j9mh%d$Hj;34 zoW3)E(abrlK6|guOkvESou)r9&@d76xOsrPD`zH>tmLgeT3>VOoQ31m1yfyp951TR z!K*QI&M3T(KXLUoa=#wItl5M!Tv4Vv+B|=`K@B}HXxByc=^l<=!kDmOTS4m~d(irO zvVhsA%1n#xj?fPcpx4`l?AJKkK-G!k$i@qp;1F3j-6Q@1hARd6_akRi=96#C|8hcl zo(#x8?QiECtJBAj_kQ3>SU3|Cx$)M_qtV5#s^7^UZE!}&Nr(6hDi3jU9siEy!aKc~ z+Zklq$4LE)>yq>r-zBM6VUxjB$85_j}m;QB7O~PvT}` zZqAfK2?n2c_)96QfzwSwQP_e_6y6v(sU>~@>GMcDyPErO?bLbSYVf+j$g>d+uXtpU zHH3nLJL6IhD~sv_vduyEEjUh@m}!=MDI|LYn>PgwofZn@$%psPYc;S?qqTyJ%^H9Q znRI5QlX^^T0Q6P)u@$!lorRVRrxe@3<6y`ws|%z*(6PXQbj3BXfFt#n1+o+s1pBCI z#LGRZs1s(;q|!Rxlqagcew3ks#HeGU+501C@EP}as(V-q^TFy}ddQ6IoCYIwNBO4P z|J*6h7TMfKjrDLzKPL3a(OEV=n%BRVGs%VHr^Iiw1jr1R+PbJ;;QESjaak#ghJzH! zLqOMY` zLf=sr6dBZ5ko_|(N`E4C+wP*EM8?kL0LcZNjruOG2Z>Yd?J5TnmEe*!i|W>to3I(z zy_LNMz${^Vm5b-p!;jCbEs{DEZ@fw_r$>*v=CPx8*Gc4fslVFqyfO`PjH{OqTtrU% z9~~>e{h#^8Q6sM|4t#sTxKT`{8#so{eK8@VR0>72x z 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�ps^a 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

    8VSB~Hqu1OP|5700nx3}?Y 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

    oSp4Zf5LcHpKzVnM)ie+U2r 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%0A6V{G(-?D>0UbBKxlz0;Lww zD;izMWu~)c4o~aHr{n1&!Bqax1!E*Q`9}WCC0jNgz0VS%Lu0vK+{1vPeSgMc?X+G; zZv1oykt0W3T&hxe3wF>A;=hBU?l&@#!A_$CpOkY z-A&;9JF1#}eFJ;LrCz;33*iio-nYJ_N>Zw;Z}L50|8zW}^5rjuMjVlsN=Kj)HB~V* zN<8Xo!yk!BbM5;pAv3%`rGM{EF`P#I9M~2I<0RG9X@M!J;Yk^SsdG5BURIRk07(mh zj?esiIn_}U^#dur@M2UayAG(&91X}}arTdNT zcfWUeh&q~Gp3y2B)B*iRYApWaH@?414~Mf!YL9xVe^^95viyV)ZmBEa+C^D|&R}qB zUDTrPakFx8krovG*MF^uek59XN#cy8m5|Yzkp!%P78W~cTv?YtwCR8b8Ijt2?hx)` z3XoZQFNQJ*;Ix|cPbd*B3MdUGS7dDhK?Y`Im&E5Dwmeg_aPx67HHV|@PSi(e`MTTmK*%5=N@(q-2OJf}AbO=( zi8dZ#Kc9#~bbq>qRKyuF&4f%dY*=bssxv$@YPwOuV>Z=R7xzbOGRAmVI2C zuc>LZF~@byV%?v$g@w{=qI==6d>FP)1cz6&{Ww9KO1-xL&%$=0it}mj-R@AJLnCHi5Wj>Uj3w8JJppGevbTrGQ6Zv1kb|^NknL`Ff!3 z7YW!3Kd!#j#`2N-qdA_Lv19XI;Y4G|^&Z18hV-lATbgs~ zjtIqnDu03*TPY-$gZo|*_&;1%O(Tdp7ezG9T>X-ZWS=kXA|bp#d5r>7aTWU*KN3z;5C+ws;%hqk*r%DU~cgNf_Eq|}qty>AX$QTtjMBs4dB~HVL>P-_? z)RCq|v_CmU8H zP=CXr0wg8EQJAY3#btl$TjFOcc_c42ZuN{);xCJTIFB>)Y};a~6)xLNHqG;byq|9% zZQaZsVx|jB`FMX=%t2STv$easwR1=DBt;|WCjG)loQ|LLub^cc*}~Xy0?9O>79{N* zPl^v^RnMdZTTYA9+Ay@U38?YlDmJM4Gk?(TfN1rY6g>|XPY0d#V^!s3(?a-_+pLRA zga#A8N9ZuU6NcNPU4$7FbW>-0nz2-)(`r^1YAW{}YbI&90r)I!(5;xTPGk*&{sN_Y zcBBJ6U?S4yXkdaC(|UKFLQl_TXckEq{y+ z?vg#$y$Ubf^d!ImumF`Sdp+LN`FVRs;K|e@x80rstSbCm4ix{?madTs-xuWR1b&yp z{5U(QCgnM-)A0VVJRUtOj>y3VZqg7|0l&Vf#-vo0>N<)=hp(yV&RF$n;CTH9_kBv5 zNC-sFo=Jg~3PH$*38Ly6lL@oSkbjO%O@nu?%sy`&R{6lfWMYfTTy$D^yUAqSC01y@ zKPo@Kz2oDBy^REgZ`Wtz_3rwhIvc5fz@be2gU)2?UkJ|kbi}{Boas-GA#R2`-rptQ z-sk%$K>rms%#Y9o{`QFa!QY=zXZZUo?(tXC<*$)Gr|a+1Gkv?R_xC%=6@Mr}59746 zJ}5t|OI2DD1}1dK)>2Gltrd)Vx=?p*vq==Z{1DZ_#VYO3a8KM@vS)5(YvcJUU{7!- zHNd5<76J~~VyQ&7$&@lLcbfa|+Rio_0*txs<2D7cj=Vq1cP(k5EwmI>tSKx7wO0h) zALe!a0+IwrddODpL992ucz@Bc)ow7WqJ_^pU?WUWZ(}S0>mHUP8ixBS96dW(I-XYJ z=bW?LYwjJY@Ey`ldj4 zfcvjX$6pNYqc{y6OBEQZT1|=`3-cI5D6AQ&@DcCDv>$N|L0w^LVt*iKsp3b)Q9c_w zQ^W7_jS@eklT=i)>cw zl1G(e-eUG+`Kx9L0oM@FE)$xtgb@xV!*2lEz7 zGQYMZ2_%dJuKaqJSeEddP4pF1T)HqfD8_60jbnFfXWPDU;3Eg>X7GLES(OjqZsv!B zh41PPd5Ui!Hf<%elQzT7Mcvre)#?`4FMfik;$WutJ6-VD$o3@1sMoB5v&KJ3q5$18 zj#WO`xqn>*{yjKu^9TT8Go$s1a@;ciZOQ@VJW+iI*yxQX)wG%}#>HEwCaCRPz+U-s zEdagM)Mgn>7+$#yO~H1qcOB5q{O`FCM&Yv@>GbM{FGDAby6o3FDGYEg&IO}GoQXho zpxRK}Z?OECYa6_V@ACdfG)JI}0;=fkJ5dChU?i*8@V2W;cY52R7@mqb2C6DETR4jjRPo01 zV&u%kuTsy(kmu&FF#|gV0bUCQP3V8?jOX1xnjIL!?~(yw{(1_$gnmMJhXbJ)_h)rF zp1Jw5l#nqS;)XdYi{YTY5#1O>R_*qMwtup@?ybRam+lU0FJc2_!Md_RYGz|)g|p}nayDi|`E>R22#J8a6g4SFJtx~uAHsUr%qO38`#iV=){5FS-(qJS0BG=J$9 zitBy<=J_+@FxAT-03JLS!<_=6Q)BoQh7BES_@n<;exL+r81oTRYbRw)*j^ ztS^CpuewW{n#mS}a{3&N27Rn1d!Q%xL0PNo2$;*RAvvst_E(W~$L#=))apdxwSBYq zdSG`E{Zy}^`U|gdv3${;nky~1Xn(nEu{U*Hf5|0`)N;ofud?W}kM`>mU++d(Y2srfiZz) zhdO8I_{8YUYF@RA;>LkFa6{xNx~rEgm^AQ=%_kt+r2xc6TfMQS7Q2ec12nj#N4ajQ zme{qCDjrTro#IiVv`w6(iBS`}{%;%E@KZ~M){^oeze==GEO@5QB8LXu;=z>JK+&X* zWR4a`NR2ji#()zZ3OwuWAb(`YnB}Ll{j4Nt(U+D1?UX|6({{>=ld_oPll}=<+GdI& zRUXo8b$}nrdIqG!7Cp?= zO#%c*j3=n9B4i|8WM&Ji!Gf93qnFRM@C=eN*-rzaa0qBxe4~x~4}X{+lP|Dt|%*3e9(N_*Ojy# z?)uL5_W!J#&&G~ce}BKh98)n;%3>`aaMc*#`e%BkYOjhTP^`UzG2hF+*xpa#SwTKI z&pJordcy_rraUdwJ_4&rHID6UD*+!Lolo&TTj#)&LiS0DD~VhN7MnqZ6_4Edlo5>UT7 zX+R*rLlHrH9)BOG5zPmKJ#bp-LRI>WBhk?xgJOukTXUq2>}Bi4a9ED(VqJePPxIqKC=B&?+`ib+&KF%6 z_IU1;KzCooTUqp&G(5CYOQ=Uw!#-_sK(1 z!5Cj$8swwh$9JDRS+}=M0UX5i>jQkl>wsWsWcvUuFjK>uy_vhIz+LJJ(0nXt<%Z~9 zt2#sS>3;@vvvb$^Ch8!De&&xoOT2K6R0A5SUe}W=PaoF*@y|Q(f6+ya71E-Z5+AFQ zfd6s(4*cJ0Bn*e@&}s5S2{x)g$vaa!oqRH>&QQ0n+D)N5gOx#EpU8=lgNLdh9srK> zvDobj+;IAgtGVlC?h{nkf2P|LyO&P^+qJs)j(>{!`6!7z4G!`PL>kBmc%a)h^0 zihmUbE56-wi1M!SDmGlRY!17QO(PiVGedvP)7VK(W%M>P?os^3`^|z zpv>6_^b(7`eayliMZZegqOg+cvceCy>Y)DNMfvbX6sIAC4o4T=a0-6c?a%jHZbD$#U`J&h5lFmIjPwP`2CxcFAAkSQNrv4%$aGS-7b2kvp*_qe$LK7ZlglZ3 zN9Y%JRkk%^q^BTT)x8;aE&VZqM`UMZmCJ^;T)HEY> z#VtXy>v|KTVA_sBASKn7CdFNZM@|LhZRbU4M5P z|AT%#!y$W5)0}>XON0{RPvOD<+b<`VT~)6-Q=K4K8gK`~Bd7y=g1Sjn$A)EQ{6NeH zwSi2w#~!pfQv)X#W27cZF23PW5WE74!SC`Sz_7=27x9dJj6KEiIV@cQ%4^UPV20w8 zvgQZv+NP}6J=62J=rpz4@TrelZ+}3~#xR9+ZF0S6LAzNoALppFg0|q_LY`^}Hr_$;1s^=WA&{cJ%i);1 z*`Uz#!}z0~IP`oroR;HZ33An)p2im~6S7Nxlblp%)QvRh0cbP@C3l|DU4NAg4@{ko z`dux(9)P0KCsrgALIS-HpQ|xvLL#z$n8Nj zr#<*jLrM)y`mmZ~z)79-nL~cTE5;f6dgz32sIM7U<8eW8IKAWH8Gq;o9+gL&_*D_I zl<%yH-%7!*ye4aFkCaqhD^(Wo4brNs+Zd!&hkw8i0R`G!=dR`3n=Av)qS|orQ(2dX za03p;c@pUOL!b^!RG_>rK;2A3*tu)CByO~E-p7q5gnMIazn883_-Kt*^T$Ws?9q?i z?Afbs_Uf4&(~&wO&VP$1)#NoR^tdN6j{3B!rY8?)lMf)l+KZziyPqIz2+H;5etTMu z#8=BF$MY=`Y--ujQ$-5+OU-A1)`Fq{V+E{I*Td_m);%J;VSZQ)>phJ~Q1PunQdSD} zY*=PF-CKLC{%bxd7WJNLK2yJ$&!7Tadqg3IbRaJW48SE&Zhse`v)NmFkoPStHI_$( zI)+PB^Y5);v{KlN5YrnI5Y=PI&#dNzw)_wxyf~v{+8JjAiU}xA{w$OH*z#@&1wO(w z^qg0t(o7!eoc81ZF~Zm08a(ls=L)#YsG@986*UIjVH3%0dZr*xj%O6brGt+c5I_g! zzTplz1y>K`vVX8)2~x13tR3Ji0r>$iH3t8pB7mj~u#7(h-_b*2eI%{(t7lJAkRqPc z7&&^?rAJBa`9{l~nB101z66-yMTgY}y*0Vn!5l)J=$7lKTDjV$x25oPtt#L^?`L(W zUwrX}(CoSD(wo2gpLsdz65_zl86VF=9}e@B7CK_k%_ccTJ%rorMdOjYjwW#z9J~vUj z<&6zD(y`WUPLQgtY*$*oxq+rs;l{oMh;Ij-9s3csB=y_TMgjXbcvy6jtNmrhL{i&p z^H^)lry(FImie!_`q47)pA-Yt^WcA(TzAZ zynlUXUZ`OOY?xKO-?i(4j0V`te)Js}NLA;(Oql+7n3?nAu}WmuHh?#u0>`b|g0{=F zC3KqDXlS2-Q3_p~4X-QWCU2@S#`b`pdl-vf-A%e{3-|}efD5G#(Q>4?g~1AV-J&n8 z8=DWoU>HOl`VS37NX^N-z2^?#L8YXb(|=cN_|bX*huDnVc>O^v8G!De*W8WmbDzO$Lp|*iBaz~E@fv6gBR00H!%6AUy#^ncEV z7&T@zQonyFi?iCKe>LW# zR7nTXkaF)jg(+U4Cu(rH&d6AEg@4Yd!HS(ZayjDqI?zkm2mT=RUaqrCqIbp42)%q7 zk+*bN)Fy|9y26|~2PKDX@JzJe-GAa(PXoNyAV+K}F#?;Hj3+&`!EQSg0)E*dxzQ{# z4k_f0nF(mn^#op;H3omi;eTt2L=gZ_6iv4AMT(5Z@goJ8KPyS#p{b|WLk(38lp+Zm z<7kj)N7>`katgu#USV(WUmY(>!G<;U{*E&|k@8RR1_g$+?C|x28pm(o(tD^VV}Y;F z7{hs>O}b4!ZF=F&e#bNPg5YG?4>`RoV$LaZImBT8Ju1{nsy2q*Fn?Q`XQpmS^$A;X zYxDSzUcCz=t&EMmdBQ zWrV3I!*5E6QGeZtN9pB$W8rymSd%`4@t{g?%XdBXVc(Q0uG)wBK&{U|&$j-bt#4I_ z9q4i6+y6&(`v2ML6@T-h-%%BWn*%m;+*moY2d%rpE%+b^dKi(dG5l~%1+WL=4X$@* zyNe(ANqv*X^>+ImfAO~$!=Rw<7$Bd?@JXp3dPtV_L!%#SCxoTTjX5RaE3J@o08()A zRTuRC@cSnHQI38Q1;3aAkjM7r`gzG2oO}#65>Tsr3Sr_5FMoXkE*OmL8_L(!n?q|J zD}C6%kac0?UpsYaF0s0R3JrI`a1V6dg%9_@z+EuhpzZ~q6lT=-5TQVwGz`Ki{*7J9 z;saf*(Zi$JHVd_FR%zR;(Y8LFbjBa3v4{1j&K~|3TOQ!|1A>R&4=!91)GiklyIf3| zkXDE4Fh+O^q<=>yd=8{vFD{nTGB6i&TQt;+qarNnS*s2@#M-f+_B zEh6;~Wc`DU4G%ZGE9FkSZj?nZK)rs)+Uyt#U`zHjj!2ZTXyb~=tf^9Op51h=r?zB~ zESYDUj`v0?hP(r8X%o`g?OUH5PX)NCd++Ms7NmIx^?yP>Rl8u@S)n&@!#1Km$U$|6 zyu3oW%t&gW&ZOw1hj~p&DLl(RZ*6V{4?89 z=amEfR;@A_ZspK-c6(oZu^Susm%TeXcfN#CgH7}ocmBD% z`v(rX$zgrf1^*OF{^ggwySrcReD%+}(MA8~m%ZIDzSz0*1>o;a@5?W~+}Xan^QBt( zyMKR`mA|cyitR6Uzxpz|`a56szPf$)t1rL&;x?1OKkw|^zVpv7{!kjwSAWjygAy@Y zBGb86>v%oDZ`d;NUiMtwD?p^^G#;I5+Gv8-d{|N~zEW8H-Mq)$MRXM~mbvybP{Zlq zc=E%#BZMP`RR6OQR+OB3Gu!Fy*gMyv8Gq109MFLUWQX)GvHHs}W5zE=(x$yZ+QI_3 z;geoR4CU*40`NxmtsLf_C^APCumKC~8;C%rH>tzedMv0r!VW!8ntI~xQiy#ZwEPk%-D z2d5?t*{Tl)^UK^lRkICGQzj38%>D^=rI!2A%QqQ?`)di9pMUukWL}kb8p}9FV|}n(@&-9yFY=yIrE^^Mp~(GC za=FpdN4J7jiwf!|8??9}enmkVK|pt(e~y^!DJ;Y9_>o`ifB&6|DBq;zBsxLq>xEj3 zIcF%vv17hg9k{kA(QLxdYqqBPScALIdUnek_3NU-I4>s|2Y|#K#Bm?HV1MF=cbY>b zX!q7P%ryAQ=UI#hTMlQA!mz_M)px%HPDJoNHO{&qaw~@gGnQlnI*Zf?UR2O{&ZgzC zrvSXEh<}?l`;z&XhZJgS3Q40OxsY?3o3n%70G)9WH{5sY(PNfVk5<}Xm#U6uIF6?y zGJxWzBupF{lBU)C=4d87lz)jFC%h5(;R_zrtFT_;Rl`NB3Dm8z0~&(zw19URd3vaG z|5pP7%=6R-ecWAiw>MHkynilA#xMAOgjsk&NgA~UYD~Z@;SLY9NX7|nCQU#QYXy>g zgNa?Rj;tdhn-Dgg4}?T`lib&fW|D~8{b=GXI1o5ki5GrLFjyy|iGS0GwV@Ii`+uaM zeRSiXxUC}K>?2qd;>RGOM$j+@)P~Q9LH!uU*a%z3z)HPA2>4^8njwopiF6Y8FKE$S zqM_|LULi7sAh@;Lx!-XZ3p-0eY9Ij5yCIx#fZjyIkVL#1kwIu1=>%E(U7PB*Fa0S3 zTpL@r1a7KZ;QCW+JAYyZ;3a!oJf&lGu`l88{fip`Tyhc#0Bd%OGCZ&&v}$tN_}Qx6 zQeT({7+$(+Z^+c{EmV9bMlL_^o7R5n>R?{g=>8y#ROyGl>47tc?F$?28_*G;;N9Zg zNdlPY8zF&0qy6+iIY96-u-ZRFLguCoz{z1}8SDXGdHq&NuzzeM?&?y#!k!7U5ylHO zYaZ0KYB+HhP7-2cS4&3Kf|mqeqJKywKmqkSzI)>ZIm zfF$wg)wlv4qoG6^aN1;y4Qcg5GlUV~G*u;in8JVY($zfLq|mSmJ_RjDR!x{Qrl7~3aF(x9 z3~;LJ)mO!~4OYW1T5%PGjbBUbNAc5)b?dv9#Cj~$>~gHf0H?ZM9qYDjfOWrUMXU>F zzC>{AHt1s)3jn8ca?} zrmj$Q8muiTNt>^(UY!Vl7K?y7(8ai@j$F8m{m<@YYh+utwnR9Rt?tEOEtPj80x!)1 z{mav#_BXdYKS2YbH{k4Q(Q_Efnil-roLTJd?kwAGI@$loT zXj&qLhjh`RYl|3v-7k+#Ti$L6DK%B&5YkIw6ju@2w&C;->IL{LMU={GD?6a%uYj{{K_+w6&f9OvW9jRG1*hoA~p=-))cz1%2l z^XOPi@d{ejk!#`>7y5lOxB$Q zYyszcYBupPEZYT6y@q|@!rS-osHIkjq<{CS*w8U-Z2TIs>FnntaH`Z72JoC`e@5-C zsJpxI2Zy^cJqe{itaX@SCxSzl+5K1%s!jEoC4eR)5DD z9I%xvnFrX4amQ-w86D(lCqlvW+Zb&~yKIy3Md(rj&b#xXKbxYvhoTI0=gistlmk~l z$XuOy2g8z4u9BPDVhR$9laVUf4=TgEZU= zawFN4T+o*Zuwjy%+r&gRUl61t8h;kn?%hp3rq~W<9wW;nVM!LN9A+x>YaEr6dWsc1 zQzcrf7TE!%RdART5DV75dX$`RY-6LW>&U_JnsA>u8dhge^Q2S~?r7ahAY>E9^BQ+B zK`Q^jxZUtZONGfPX6sY~-Ebo8>5QOzdVA;eZLCSmYEv2qM8#EV3z?#mKzVAO^HFs!5#;Avcr(6?E9I>}EdLd5s@ zOSoEHUIz$8qcHs|+mlhWzJD7OSI&Xet45vmX+B=p0cpXEt{T0`$35WV9VH@V(Kdr> zrr0{Qq&AQ6%kq{GbX#{vEx(5_+|7*;8Qh8*{QzHY3JX(elwVfe?wP^Q>zAR~XTFvT0om$0ky?;yXp2L@);meYy zk6u2Cl}5@lr6Xnd-At$IlK#A7|knWdAZjFM94NIK3OHqjaF&c^(|;e!%h}Wc(rPT5*D{v3 z*MgU~*D{uO*MgUK*D{u|IvasIBoWhUEH0GjU|NoaxI+Rpt;ZsvL`EaWa*^QH>8H>Z zT)U|I`MA&{h-JezqiJN7#ZbebAlR=tio4s|@ukp#mN*0@1yVw-3fwyL3`I8cRr*wX z1kC-im%ZR9B7gAbf&TO2f?A58BNTJwg^f94YI5JL;^_RqXFB*l{~36$ocLQzr7xr zke&uI`O|KQh$1KXXrS&TFxE~ms0{~YRFy*f6Yg5$!dwv|dKNhjQ?IkJ-w?S3^+6c_ z?QoGfHxQ`%6je+$rKcI(PLTp2M>Jo6w>_n$;^Vo-i zhCtvy$F5=!zuVx}I&Lz4mR?z6z%nq+hN;Z4usCe0X4g2`&*-D^({!st*r<}d1JFlt z$Y~?8KIEO?)L;M&6c7tFQ=KKlyd8W-Kx)l+JAb}^^RLu|T-9(;UGf(9O=Wb@^^pt= zZR3CIJY}q|EXqk%DT%NgL3l>Z!ZG~vG@s7sE!Vu;kQP(K3o~d}`(8iTV_0gTWb7z_qKmpWL;>b&2G(k@GgoI%H=93! zB!9pZ${2rzz)!5xrNkk{>A0HYlXAGouz~%fq}Wx-jteRcY~34y^W$OpKl}^lq`59=G%Ayp|SEt8M~YqHL}P>(6PGo*)9$Hdf1E3k z!xE)na^g6o_i?jtkgM0c4M3gnL!qQGdW7 zBn#mtG$h~-7x4}k+~Gl@!-Hst3)A6&zu`A5R!PG8)dWX=JuSxaw42OE5dXm*cH)K4 zJLV$sPST#;j_qCKYGs`?{Rm%>Fbkf`L;yguoP+Y{$S1u(-0T_i2i?Rc!LZ4~(1t$I z9YMsbmu)G;7d4DqG_>xLiVLo2SAUGUlWA!#hwtkXupf^GDe>AD^UP%d&vn6!Z0$5h z(ktF_H{(01f9(4QKG&t~ZjV&G)%V@)_*zvf=!ED~xG&64rR?5v}PWZhi7u%2s};c8NLjF4y?D70#kxjtEd zU@P_Kx0=UFO^gJ2Gjqpp0)NX|Eouk9bu|t)B>FLyr?sH4xln{^kTrWehFoW}vnH@2S4m=JL<(|Wg%e8YzPxQ)=@X=Q9y31vKUYr7+~r63j~cXPfMM5 zjNb?`zoEMIwb}9K9BEa{{vOiYOF%3vL>LeiLA*pZ5^B)2ctqp>8h;R{es=7+rwH2M+ida$jX}!##+i7RqIX;=>6h|Jq-!k*ww?IL(?(8TD%+!Z~ zg;tuomAPWoOQJW0P$Td1=JG`-f% zKH3z#Yq!=eHY5dxL7tLLH$_u%Th0upa#a+MG20QH9TU9X|{C}?`>`61GPKrUNt%1`Yl&0f%yhD5#S~Q+<(%+?w~=fS{y6xF*{Tn z{B-Lv?2YHepv@GEib*Ib?9ptMhU= z1mnuOFd)?!pMQ>YQ8%m0W4ysrPng(*a$|$;H6OtV^Yn2~x4b{BtFEofiP}+?x!rR{ zyeY@Cbz2^zPXK;Efxks>qiS?sOcYEOkjg1r96!iwaA+Scy0Y>aYaKq|oQcHF@*2*c z3N=)-ahKYYR^%8>{JM$C@bK8<6&dg{SQW5Qw4he9IHL{VGSYwKNudLBgT4oczh#)b z=?xAMyPvr>{GVj2yi zSWE~L2`xj!rG*?xAU}}3o{0*dvsDpl7Euc+SPU#6(Hfii3Dzq46mDKpSV(4tN#{t8 zD==;&ai{5!>ehd#ywn-5InN9h_XI!5J~A&^jg=S!uO>-&h4s3`Y60EIw0k;hpISXf zpNERxX(`lvQoI^hjhn zL6M)RaY#iKE*=`OTw>%?>dMgCf?j7$jsdjqVBi}kUcq#FY~P36bnaI0U%v>N^Y#^K z^_Hr=Gd_Q@UaTKZlHSnLf3YzfFO5U}2p4(nm2}2#Lr~9sD9!xF5WzHPeBprj%m=|& ze4Z0Lf2wN1yQi~!xbOW5WyQQ-jO{y);Sy?7_S^;b(jpmrrk*(63QJQZ*~yk83T3XO z5X`0f`R9PKUO7NC&?tWYJ@cw!>RkRDVBDhYa5#U{7>kTjr)LtbZ3!xhW^;;1h`@$U z0(8eyM{vdoaz)GkbgI4M5)yBl7aG1^n|xUvKF=!Jg&XLb1d<&{O$fO(o*3%1to51K zg~m0o(L6&wq|8>S4G99 z_w0YlH{T4Y1=@k`tr9Nvfjr4CH{PebW(#deFV&n@Y@`DHmNQ9^lj2ZZy zkaklkcanwz#$hN`sRQ0|L8gS^1{gGx7agD-}KMnq{!blZR3m7 zIxJlX%Ka@C!k|`X1*Z!<{1Kowa(YJ3%LrAVpLLK-!XTB9ebK z)koCyq3=f^wMBg0LD={WBF^VoeTsgOM@L``R-+XdNYGYh?$0K5H4!;F`7E%oIE6VT zaW}S0{5FAurBh*1&CsBuQ1|lTg6>f$8aTjccA&4j;m#O*R<**|vP5;qz1?*ld~cii z%9d}6`Lv@yz+q~ME>d4DZks1=Z*_m{x88}mvxJYfvGZ3G5v<0c5|&g$NMn0as+A}y zbue;Ebc=OvGNTG$!P6IrSAa>(o50T3C~sW%5o)et=_Ax$Kn(3G3F)(x*qVhm6WX#i zXY=*o9AeJrq)UMC2egwkIOm4VOH%F`-2NG?D>BVz$xbW zDI8+!|J(+j$fjf(kiy~a_W!JJ#Jc2I?HQ}+Q+;}!-f7k8ZSFK01^+b#bT`*pb_i!* zaBCAFy>xYy`ZJxQFsNZd&!2cX2_tT`8ru5Kwi@VuLrnu!SB=)y@KUcJKSxH*6-)=s zFDR~%B<;{1l^^2aUt%@A`8R)#H@lUsjpu9o;;K&)lJSdE0E0;39?x!0)L*2S3NGBIY+@=HBm$04 zn*=D$Uz+m%P*eT$M#rBJse6o+-6BkZPG}-`wh)`~uEUW9IMa%ix8Z+-V|rc7d#@S$ z?^(1AX5$e3NOWT4d2^~p`#?OUfha!Cqi`O;OdX6KW0SWyeSPL!9+txn(#7aBK5rDB zIf)M~t6Fr8n_@mjF;}GAL1lx$xDY32BglQ-pOl9MIqrZd3g_6vI;6Q}qbWON$mLax zib>rS=P^8b9OnJ^TCsm?l|Z8No)Y;w{I;eW=)==duyRBTP$i7aJw*fXQ?(~2#dw(a(G#PXEAjz0ik5rkTVdTylo(8uP}`p% z8x-YQwq$E-QKe^?M#WuZM})WlQssP+h0ZX5_Kz z3m2E=JjA&o+$XNr6MQMblJpjE?2p+)flPeOTu=u=`md5Rz$MsI#Ae1ig?UgVFB}`_ zD|5sw3)p|5qrr&p(7(y{i!hFr_nzK%Vt>6N;l|xx_?AILJ*aSBVR@I-FU9nv8qf_F3aLE<_cc<#AA(e3!zvwvXPvu^=>U&Jbsr5AttgSiCI=;HUqXjyPyEJP>fk;1vd z1#rUqq6CtA_`#*D!o$&Ec3wlK}SGcB= z$$Woh!VI4p#g+-kxHl+k#-@EH@MT12snqPd*~c|_4npg!Q9e|whlbzk+|oAAW(dp+ zpf4dBMx`~o#PI;D;fZ2-6ICEl@oxJkgm|U z#NXxhIU2k8z;`j3$ll?C);A)qAMC(}dy;=Qh!ysidrL3jk(_Ix9c3?cKzMk zb(9R$FB(R#^vysUwiyHW2I-RU>ZizGow(Z_6tA>=L=m^GFw{(cQm6{;xrtmH9aeu- zyVXFV5hJyBCTix!ZKUP5{(`4Wwb~hKHJNE43F37^2VWB3l^h=V8e!)bk&_(mq#u9` zYaQ!DM|PLirW7eD@As<-U5+^@?QAk(rwD|RO@NlQg^>>F&X5p>qlzKZ+Y2=8R6qAe zx^Ho3ruSPm=|zK!7y2P4@$*J>jmCdFCppA@*ZLuK1mm_-B*oF?6F)Uqr2TnXjv$cH ze51wtuD`h@Ay?X1O~3Qd-E5#3$wc+RZsZX(audWeWi)XNacmi8Byq|FT~^jsjxDU0 z(j=|yJ!p#LZxJZpJE&GNxsDii$Nuit{+7Giqvs5T4XWBTt%W7Fm}|%W-VA>*pSu9n zYP!7M>||?)=PZXvRB%H~8|D&NqnbfQaS~sWc8ijkrEp19k7dd9943v|Wb1QoVxjTQ zMhO;b_D{f>M++TfvjJY8RWG^)$iO{h;Cv1*OK~A?+1gP4QlnmW+QbKmPDSV?9U7b1 zL;#)jT~-N!SPXtbGz6^2P|km%FpOaqREgW>Xv3@w2GT?5uYj2=!AkxASvNZ|E?#II zs?KU;mJqVedMb1CTJb;HtnimEXZ$;^-n6;XjSN z{@Q%4$*+5x4d~YvYfaYk+iW%OboBs@Twk#@QmgJ7jiK5NrP=DqTK9hwghBOmbbmN} zO%iBl?N^{Y^8rt^wXQ<4P$NW};33$mriE$3Al^{aBAUD=DVUmttvU$#-@Zze_2 zfzq{qJlWoUvi)Su&|wf4sF^6ay0^7obC63J_<)bWz+OuSp&$$CUtrC?SDl}O?4a$Y z)AbLa{!ef@?t8VDXySk0I58RQxlW_#YVcl=3MZ07(ge|s_n`Uxd{1q9{(Yf-CtmI< zqZtQj>qa-E!##~PE!kTj2Q7gt43Gm?Z$@T)AIjqF;R&2e$R#6jksH@oM;g&0qO9zQ zipcwMg+YRS+dfQ-PJ{w{ApcTo!W_NZso{Bt?xdMlQh%A;qS*fO4uEcs>_vnu!qjwg> zj^7#gL*m#t%3sud0`Dzw-%$dWV&j|j7%Y!Eq5$pQp;#xx(Mg2D3><^=S7U37cJ@e`VrB9S4DJ!o?S#QmePOoB6DJP$dOij$d4;9olt_0 zI$uXNK$#q|nMS-0RYJw-WCkZrbZY(hj8ymTSwG)%uMjfytEvoczl%Nhir`nlC{q`I zg-Iv&%hE}^-pkQR`&HaY>-)M6JAk@7P}1!Vkb2c!ni4n2RDqntR7YIGz%c16xWy`s z;#C1zN|k@y!4-EOU1WIekX0X4mAY4tF0!}z@GM`{;D!Ef`L;0EB#A}15?Lr#_P5{S zQok&>@hY?m3X?)+M%keQoQg2aX_GS>3>HHrzJ2FC_g`HNt_92cqrneVEfoWy9zcE) z_w~SHnjpuc{AXr96k*-Gql%Xr`C1u39o?T4xsrb#fB!x6*Gm7`+NgKZ_iVS9P*-S{ z$V(vrE}zv{;=QKVG0q!pCZylUYKR2~siU)6SoE7|==yK#cgyD!Y2r;Pr4MvoZ2r`p zx@;o`??f=U)-RQx?4`!U5_B|VmMC3+dr5)@UPyom9qtoILYzaiC5U`!!h*mo9ge%? zmZ*Q4mqX9nG#O~~Xi^mC#gl6Cnwx3GMwpQ4SE~Dn_?~#fw@i+5X~@xQC2Tbtfld#D ztI2G<{HXf*=UnA$&(fe*%W*xODk%)3jJYG@1lDiL{(JqFf#7c4a^5>3qS@p56wf{YH zQ07w{`)oWZ^aF-oi5}&PI0icmh#NL8iUG*7nS){IS|^97MjRcEU)f!+%UWd8riVEt z$Exk(M3!kH)R3Iw3jAe;*q1&3+%sjaZ4Pw&5&FD{nIhQYBXH5-w4@r49GPpSiShks4Ri zU^?2i5%tjpPOU`{qXL4?vEr1Sbafm*;*YV*;D^(4l#%jI{ibfOr`d;MSoO>40*?5) zRHrcn;H$HB07+?vEh$dh%R6_y~|A=lO@^E{|AJVWv zN)A}4al{ARBheb(Z}%JVX`{S3^?m^BAv~3N%JFmXG@t*Z>FOIB3KbWLpss%sD~eid zg!_*Q-t{D6o>A=aj>bX|Gf|9f!`q&Ab}6ptTr&QM>6m$}KGqvz45oG%8XZXeVKtfP zyP}V-a%7fr%UV*1``&hM`>t@=bK$Ag@7=xGumo;Ai%7neRFrF56~!rM>ze*kSDpJ= zU7|;?RN=v{?5H(en<|-bZ9{)sF7f^mRa@;=Az#L&>d*KQ8IH@>26hk_B$@|Ezxv+q zgEr8<{Tks9gwVdU(pxhG)CeHpF>B7%#TT@NJSXY7;h8xN|H2s`Tns2OJar0hL1gH% zv5`0$QC2l(tCQKNMz)LV%IA^E!PJ8kXW&4BF&5`peu`HKRZTB95CMOs-~u2Mys6?x zoghtZDab@I8^Q@URX1&QCX?p)usAL$8Z39K2i1yj+&obM>Cj`lenrJ-v2~?GDDi*> zcA_+WzNV9-4k>3j&a7i9reKS7CX^^0(_uI{=Q*8-P5a(4W&lv0S+vlo+_9KfN1Z_F zhKLuO+HZ6rbVKW^!7G1}2|`J5P%v~q%IA2%Wt`w6ao58f1`5Wj;@`7!f_%@y$~OJ3 zCJO)h}wTT(mO?knLM&W&WJ~k=YUwl#rb$f>&FFLydyv!McB;$92L3l_|LYo+;$s z*QE3Wp8T_W&Bed}uFFrW^H+%~LjRZeVHjt{;rnu$0%Llrqcx;P{59_nwLQFTYE0QC zg*q4NlL@^JkpvL8wX5U#X}#kE28e&opNq8 zby;Lz^|sd`IAyj8*;+6I!Q<>Jv!Wr$P*xKDq!N6cALWx$0>>SLUk!Y}QU7F8offLm z*W5_ZR`Xb-dRa_3XyhmA^O!l)pokq#+tfKyC}}wqY;=G9O$$^=fz8kIa_X1jfpn^_ zm}L#7`U5&1$9%w{K1d~pP7fPFJCBxrs zWxK+_uGxRI(#MXP6^wj zm)gHw#C?LoT27!KpSB~_1*>+2yJi_3Oq)lw)E8@w5z5UAh&PL#q@$u3aF)q@Fu)e4 zCiE&+^COcRUDaE4<$&h}Oyu6;g;(){qw;t*DPDg|Wwk)DglEw$zs6sC-5LVJaUF`I zE04Y)B-|stB}4ZTc7yZKEY>US9LIqHplT|?Ln^PsO6eTjEDkh#UkHd+1>Zl{1IlI1 zgsi3rBPhy*%bM0nG}Ab(2pCPm((xIN8Rtj+lZq3$0JnGZ`tX#GhU)x-ch{Qje`?+Z z7y*BWzSAaw&*kVtS(os7c1WoL;UnhK(QhtCpa_unf_CRgKwPb!2AhcXQ&Eq2j}58A zQjX&*8qEqpkGGoeT=7h5L{;G$f!|w$x%cxaK^8U%ZFZJc_+=u_ROB}Du^jAC&3M+k z)4Ze+DkW;xF&cevR{{K?L}xi z+sY?g3>`UC9K9I4sX*|D%;}$rUff6Dp!$JV-F@*5BfIus?&cu@pDrmzC8S^FsFWK< z;7>GL#F{M}o@-D{##n+y&G*6%yNiF|<6@)h;$_eM(=9!4OAjuhW-&pmVLJ0WX0RLX z6CEcW<%~IsCctaOmm{@H15Gbh@)l%#bf|w9rP!mYKdWD&yy0wcMp$N=d#7p}GK9*e zeO&C!GEu=^-JG0;7v}Z^@b&H@tJILV!BcP%Em-KJszRYN&>kFS7~VyZM&f_e-Vk8u z5@wRbVl!!Ss>Zn8yQ>Y5Bca0=$#NSzTz9r&%3UQhVw|%llj_u_v7PV9F=H+aiB|0^ zl>S+`02V#~gXZOzZFLWI*WqSl(2XNZ106a&WJynOVM<9`pT zqDH;WSv7gDRu^CEhYJbh4JAnmI{3g&yLw=Xw^Kx95nc0Qs6~ETEP(MlFJX>=k%&P#E;^QtXSxf zS(v|7Z6R{(-`v^Q&n%{3hp4K(b4Z9fn`XDS?r4FTsNehnD)Vp6AYc=|L4#V>iV(~b z;hZfao7zS{khXt8x8g=*n@f(isJPG}FmCXRFL)shXQyx}85DE5kB7hb56rsYAXV_M zRKZUiha_6~1UHdeYW63^9oaVZ=lrg2>teu-xN{$z2(+^8ee`P1ALNstnTd+o`Ckn+Dj8O7XfS^f&*y3fV^9>GW>{bM#fnsu z`%q0Wt$*Bk1pl|b@02pvS^vkQ+wgy0>7xo+_&>gU^l<0Nld$kXH5m{u{>SazFTQ-V zyKYh*(^->eDCpryV`6d;2&`c34k({BA6ekCQ&*%|wt}=_OU3jh)$8aZ&V@pOM@Stk z!lvrRaOQtf0qYDgCIcFm56qztrr4wG@o6~)ipIP34gRa6If}VkZ0rj;XqeY^M$ASF zK+KQO{&F^=T&@Z?oe$+?s^pdpT_K;G_GAO~H=2y7emF$23ymC3(6tdG(vhLmpqx+$ zW)r&z`Hiu?QJt740M(x2cIzGqB6SF=O_2N0@&XzZFI zbP)D4LUMF^|<<#Op3% zbZ-fO^bBnMw~?#v-u&TdFLFO24hesDw`_BU=_d^{jRfPr$P8Um@8-``-$0Z< zJdJd&IInJek17$%IM#PMkSs?OnH#fP1`wvzxYuS5OX);xC_^U}tz9!ttMm~_Psd>`|8*k`jpWvTMZ})T{qJ znZjB8|L)$x|8C$OP*c~eOq;zBOajL7d7NFx1O6IYZ-n!J&-?K<-vEvyP1M&*oK(*4 zfn7rwboPw9_-(d9xV&MwAT###cueSyez=iYGP=lI`D*Ft9{S=~!w_B2OUHj1WjNkA zU)efs#+l|P;W%|&Hdggj6dyPJ{UWlpH89?dOr(ZOvRq$?cLd9bw3!-Aw3BNa%z11u=h{H7 z9cDx){wl?(DSo@bRbsheYgd2ZBXXL>0W6%mmsbcg-E2HglN&^bOC(izHyadVuv7(g z8=V;xg;w3B>9PTP;@sZ2ogJ_w{97dQo4oPuWLw%!6m&+LR*S}=F>Qr~sIZ7tI2RQ_ z)3ssN4>ZhKjwBH*u5F#*HYhMY*7_d+$@(I;Tm~i<{=58koX;wiP ztW6L>Bb|X}&RJSTkvH!}^yaQ+FDGsek_zYM7{0^ zbo^*b6hFO*EZ5V&X?{j&SW#{H0Mo{T3L8V}#>%^m?C4#mKukAv#UBufiblY>U z?YU@s9&dZ@F$zzG(BY|c^|-pa6W>sQqmt#>?ML=hnu6EYuJ{0k>ivn@LeORtc@5HRaq1oF_?9rZE z<7nPg@_Af0-}hu0-9*%VQ@uuf$|v=WXuLRgWy)#o465c338&5hb&YFusYL=1a+J$q zkm|Nfgx^m@b!E-1gM&B#gP10I2v@X`Ht^MhzxL)HTcG0#?ZkAIg}3{;%DJd=?rrie z*<$n!%jV4<$ozku4c%pb(V{N*-9K+pmj>a;MVJeiOuUsy^~Oj(M!xdFX@LcX$tSrI z_-sQX{k3QaJuX)1aUptKtkUB`^mx8XkLRMt^Hq9;hCZ_02-jIQn4{GK%;jd*p|Po7 za*)CMN)EZj-NH9G2>bI5@R206!N+s>sE0TJjL;(9g!q4uwOdI+GY#8yrN0_@Zj;T- zf|+kZ10KgY&+7WdvFXlh**K(bz2%A`M6HRS)0DStz-!JQi)(HNywNc!3#Sv5+5`vlZv^<9XNaoJeGC+yjm+ znxIMf{XBoXA{v3xNJxxbXV=2u4~?jJxNy{9o*|9CNgQGZk^#_jF^79{M@?#r$PmjH zSPleTEP`^+91ejEU@vS^HIEY+{Z?l~f*&kew=j2ylk#XvW?1GHVKzmeO*H!g^U&2) z-7!I-_Z5ich2Svwy1n*-Nt#e+4PPPd)yu(We}KUtU8ey?H=2jsoOfiY+c%WhK+w-v$f=UT@A~@y1rs7d=#S@a7SNy1wC5Iqe z&pZ4lH@nM!QnN4MukT(xeWWUW3BN<5z3iXx>+2t1J-Po7Kzx;a5+IvUG{vJsj#7WP z;b+h~g&gd{7OF0=`3QcmXZ;fl1vjXs>s{a(3Ts{ba}(^P-Pmv@^#j7fKeES+S2%h( zLtHVYNK`r@I#$OFvYR^*Nyns;MLX~mlLU7L(XC8%p=U8&ga^oZs%f_qL*#BdPZ@1q`!JI$&j*Qes zIF&MR3cnphSmn}&Sv>wB)kn8}**R!cO>{MCOP_d|d&v7m6) z<-51k>pQr&I3c0DX6Qxhw}~RcZPEh59mg*s8lKj5SKZI4$>kE45<&;4%~ zmq8Wv0ue>k777sbF%#wY{PKN%V3lz4Id_~zSi)@mg!5$=`a_(NSmp<~qmt`n4KSc0sGv!ft&7q>UM@1891n( z;w3S)OqV*=z`oagIU>V7B`uoe{5?yQ!V;SZLDVVNgiRcEo27FEhW2->Fa3br)4)p8{*zj$1e~_U)MVWr=n&BOI`1(X2JZx4|_sDZn|dg9c$1G2&X0 zWv7L4nNh!L(!hT??BDQ-W0ar`8dE}Qrb7QXr6JL*_v+Tp-(hXPikq)RV`bhUv7Ja1i zsSthEaUVNHMxa?(K>=(|ttoZ;)rVsLo38b!t-%$3A z%E+t8)2aKcPe+H^l@GbD@J-WW4KdH2(8dWckNB16`;X$hzE)p|5Xg$M&mNPtXXSncZcwlFE5X{g% z>-2qjq?Q7S4(dDCGNB%sU`8>-$4G`?ps2Qa&tH};eZA7Pz)&hx%Ytj*n)NJNujfH>Js076F2eO(gzFj9GV8gBtmnbf^*o^UT!ibnh^*(q()B!` z^<2c)b0ODrVb^mZ)^p*n=OVVA2g}#Zm@kWuq^@@vK$mW z4lqjw6t`X&1SW&v2)}%1B0uTxjdL-z_QW{!a)nO*ksg*UoT=sZkk9QCrrV2NMq|7i zjKZBaFR3v=;P-a27l<3XL*Qc;>1z?Mih_Rtne=xk0Gf-rql?!*c_e8Dw{4+=*N<4@ zI|swaC_GLi{ssGLv4ZR(DjI?3zJyz3Z1AsuNJDLf__)#bMbW+ac`1oo? zQ>^iFS>yw_Hc*Tb&=3?k1Qsgc?T-WiG*K$M*?AWx)1`Us%PXxJAZHF;s#;!Ek1v0; zzx`^wz)VPVOR`FWV~Vk4H7;bbMM%)CIrt*pI5Y%^fr<~;Kn$u4M)b}zc;W)gzzuH0 zMj^am212nTre{?)RKl80jHgD%kCw(YLFk^PF#DF{{z>sqe?w)NP?TvNA}^mD975{N zln^D9SVk~=2NK}678)0kDhIj>*U^7hv0sdea!$q+ZlHRqg6c>=_oRh!U|=j#Fb)XD z!h^x`xFP$xnlJ`B>c(~$WZcTZmPd-&G(Kq7v2D2%>NhO&)|UvO3&!($M|JH|)6({w zb$m|S4i}TDt~ec6lYBxkKO{-|>zq=EUVUMy%6X*9zr3}_O^;d+t}KZ_h8%w?Psbc{ zixguUrrril3?n6t6z_gK9}g9Cnurb-vI9vW0SOX1-_nTQr7rnd7OQLalgN|+y=zMQi$Q)gVHo5`8-W3S6r0R!9Bll%N2h_Y3ztP`SeSXiigaPE?I@$AhdOYU zoCk4iE5Dd=g(!NvFsM@CoQi+M)M;a?GNZ@P`vYyGbkeH|1OL|AAaDe6)efr(?+m2! zIZ?UR!qYemtGwye$$wD>>=|#=$oh)~!52dswuQ&u;Cpt3VRo^-- zZ|y)^CHe#llJ4V8HO?S!dnYxUup8A_^|V?y4<}Wv2uak-lGB15LydogENZdOeDz002Wa26AP=Ivl2kQvHq#c%a~O*4pI3zke3TQFv- z*oHl~yoOky+NaJ3jE&ttxJfAC z@90P!*kBL{G~~*MZv20sa)d!S<`|a)c;2zLEpToI+Ek8g)+WYPmlX7h3MoD@7#>ra z1v3EmDlnICv2*9Ker`+{9p66|N+ITWUXD1fne)_ldtl>g8Of>yV~V0bqo7~?f=uah z-9m>TQPoTUQFvWM@Bocp7$Fb^8Bdc*1}wSB{cftL&8%-l!}5PUn^8jiw;YZ3IC(+h zQp93e_y~lV?jZRbrKBgxMDPn6P}RmdbrOa9kwoDQ;-M)9hH-M ziWThR8rD4G>|_IuLdJ9CcAfP>`C;AaZltN|*hV&AS2wsEoDJeet!iu&$Q1!KPs)M1 zKKnuNtYtngSm%HHH_xBxKNx2lE^IDL4n13^8ta)qem1dhKaCvss=%*=gV49OWS&gX z3F=mak)`e8L3tY^`h z<9sln#39-Gj*dkuYLz2JO1L6W1D|sDvPCtUWQP-V8B~8{ZNjALtSw^w)`jlJ!Hq<# z?kh%~9C@}0Q9!1_Iv??aS+LIeVOk|#D%Il)ixKv4GIc+>DfKdhiY_MK_V6~^^&{| zJEAwmU#ox7bExx3)#2~^7q<&4=r(|x?q>GETi`%CF_jKxw=+> zIm@`1fNz(gi>w21ig^yIifsL#80Fjd98fhdO7}*r8x9ekaYDCLKVC<7k{#XVj$*P6 zD6W59%c%|}CE!trSS<2v*F5b^zcL3kOq_H2#hUE=Iw=6#oE*WAxm9bUHa_R|!n39v zi*?RomIR}EY}rW`k1Z3C3L06pQ`3fV=c>`VXYz4A<>(jh#&nQs`@O|0ZkgX^`W6ag zLDA$}oJ!&LbW#s)V#tu4?F~ov*ZT)qzlnc3o>&W!D=?V}_OtNVSC_=_Yp))bkb#&* z3p7`LQHeyD#y2Wh5(hwUJOu5b#}1~|c$L{yk>uBxnM`2S78`J_y7LDtw+lIz8gVE3 z&cyl*om|MxE1>N_oflyaDbt~+Bz(3&CZ(SqBtNPkQ;oTp8m_g$ft%d{(us?~flPna z1u`CpjAmiJHSKjB{iZ2m+SH95>kaBg#MFp0hV)PJ$^B`x$SSbV_49w$om-ps6xJ#- z#p~>Tf+$Kh|J0L@rO~bil+~z9=ZEhQ} z*_)AB{H7T>@oMAb!Xi|#+D-rk3h}D>cQknIWfmzRaZ<#ZSdKhJr}i8LqK<#Qz3KB( zn2W2ry<}|V&p(F^&}$W6S%g6|A$45fT?g1kFbuN{ExX|W7_zCS4zU@k+|xf2-nl8@ z>S__5Z3OVH){>eZJ#d<(LFvixSw= z@FfDBL~4`^(cAWsd`Hd=im?jF(kX7DY!f#e^E<1e`@PoP`f(k$`jF4Cma3bIx!AKxCJgcwnb!NHUU$Vb3DK zhzrZSeM2v@@n?ZyoHUG-{rEO=!I*WLzT{pJiTwOVAuj!-fB}D01JX?$m}npGfb#=} zBR0TI2Enjd2vR>rq`8ipG|+1oALD(^D&aA4QVj#c(%!`Tk zVFzwz#5j0Adt$V0WY>hb5@VQ(WmHT;2qzHaSM=xLc4D(IrT{c_VTA>^laxpi>BJPq zPNbBBnR6ZqH?M!7VT6^ofq4*txv((9fkvDUoH3Hqf~+1nEMo2$4it9ca2iD5MEn%o z!Jub>tR6wrk{KPiGg?Gvv{*Ky18+u)_>2}yW^~}rXc3*!`H~s^%bn4AbVldPX7n#_ zM(6PvoiCZuzuXy}M`!dQ;r1c{{bXHc{AMYD%_IBC`lf&Q%_1Aa6SY0Kfgm1lCg3*1 z(=tMXmc#|%C``N}M|Tp3%9nbtp`#y(I<_{94>Rv>_wFw5b*J~GZ`em-Rv7Hk+*;I? zPNUcl2`Ta+(`#$T-a@+aDq(JzlVTH34xwIfR0eeIj%Dv`xS9X?*Vb2s(GHjpAhFvf zUAW_qYk_})BCce^mq9jJB0Vjtf529$H0qgw7aKBon)bfq&B^@^1AUDzbm8}h!y=D- zhP<=l+AC%5Yx7!?{Q+Hoob9QEmi7%H(o*oADQvF_FBMwgI%9SD<9whOAk>6$9LgFZ zTXuEu%dQD~+0_v*qi`QphQ7VkeL6a-!Zm+}S6P2g?}hXsjU5h)BXFprCaC#K=_U<% z#WkzONHTZ;)7De{DF%S|tra`#yBLT?)lxNjU<);Qr6hVz04~iM%wL9gxyos?)#)0K zk0jPKP4UH)uE{}Je13~|yXP|Dysv~`R`q%e=TsScFw-F@2vQKKY)F8>xd zsJ4ITo=ztX3GE+g7~sK<`Df-%9SS35>twggUpKkMn`%()W#ictCjw89n7NoSn>tLz z5O%kdJ-bC078gc8hM5aa^LZ!0B0t0e8h7t@;rW&iUQC;U1{TcgFJ!tRjZ%`_^0$ z7O&I?cD)k)3ni-Am1IbKm`}{)7pFEYyZ(X;%xJK5beg{}^y=!g>l`afcv1m8a;5?} zp7RvO04MjPO{@v8_Z{qz|2A$HTU%yhK?9f2J3E_45Vl?r{6<@fXDUTcl_O|*$9R9G zaL~ZYYS>Qd54)4&!;Y%1=v4i`9U!b71$x#IoclJmI29ijiV%Ou^)r?J3>J`Yst(X) zmuYU{Q~)|r6_8@%HK^l`kymfTN5sOe&U?S_RYM+chGChPF#~j7Iagt1n&v3Pwa%OF zQr`;01sA|brAO7&)(MauL$xRhkeq)g6D&h5gXQ$ZHNr;JS5Vp?R(0VI59THRmdn~2 z@0U94c#+1F(pre+!%Cji4x0eqWDx(Jp_kNM$@@t=jhA#Vs)hSGE2K%c$G2m?^XR*6 z*9+aS=~Uj>Qs)BPO&B=DJODI4B|J^vZAi7Jj3GormrTfG3n7m+MIP3df z@q@fB04&rvEeC^P;Z%{^F}7uGtv7)20CnArX9ZTK!OYStc4O%jViQnXdtFEa{37GO zK)IU|$Bk9H8FL6Gg;HKC1paTG$D~bf3mp^9x49s8sX2d>sr|z+U+7l^ zPnn`WN1{HA*u{sudMv|r9Cx(uOFtc$lB$#(?0`q5HXXX%3l6|hD@}aCVZpKAI@s2* z53XknLfm$t*@;4U7zU5G0*o#N9GXR%WC)ii(J;6Drc=N$jR;_B$A zhWNhom;B3uf5B3Co7)|zQY8`X4z#YD$mE#qpY#571_rtiZcELVwRGB`)${T~0D=Tr z0`XkItXr&i(cZn&n2?M-UNl8Vjo~>yv349&r|4u#QJjDVwdW0?6VS&9Qb7@nt5Y zS3+HalR3EK#nBBtCgS_w7F2i3%3>Ctx11Qn@b7I3qo$-ztP*sw1RT= z-)6l9{MS)F{z(`sN4NBTT^V)$z2}po?y{&#kj2WxwfXl!6;T=fgXb17D3eiFvqngr zvTZ_7E-0dp<;a z{N!Ajj8-Gg&A&A&iAw2)=bWt0iQ*oub8)oJS3ZAQ>0E7ts)nQX>%Y=b`^|rk+Ez#H zxj1UkF_rWstDd?4TK&vDm-h=RKVSXKJ#Rj9=Sg9;#gZ|h`Q<1-e_&m5WrcJ zNrBlAZx1M#XWN^JqfiP^rFU~XwzupFILh(_!=rL|vNKybQrSC7R(^|eHrUErE54`J zd7OVR_`71vDcXwenoBL2$9UUaBx4Zr`Gzr)S+>-Xg>GKv^r;rCsMUHkaTrw#*E64H zu!C-B9p`G&Sz3QVn$pz-lr*%fOr^W0Qwz+?YCM3hvF9g?vrcX_P*ToId65qDTIlhnF!sCD5`>mo(1^E9>2J!)-r<=r$8g`}>?a4yMk;cS3~*Z_YE zcLRKKdcDRw^8ey{@S-KXo;&nN4xkDa`MQAGu zhfbv5kYj_OEp$b^M+jIvqLqwh+5UfC4dHvRW4H0Xyg+ETzu1m7e61S3&Zn~pM^6jl zg<<2JSks?WQ?!F=Y85qmVat1I^YVQ+d)>``vZgPuy4iQ#>_Ins*v-B#yV)-&wmejA zeuCh7fWq$~2M5yL(Xgr}o$t54*yh|qCzzh2yVKq6-tOM%-c_~1SmU8;+Sz|m3xcik z!@ARV4Q(%aLvGWv>9te)gUE=a>ELL55jC4ktza ze&5#Hp?beiy@$zqyHs!6srO4*@3vEq`+XSJyW{k`ove4)na8%@FIHs5n$z=kI1`y9 zWBt{44?3VA#2AWCN7K%$o4bE^@1iQB>wNz%@%@4MzTqXMcm(`Z2ezVw*;!t5X00$6 z1qZN$sM_QfOIbA7L2w-!tv6d`X(!9Zrn`ci8KVMC!U=Tu!zfw4~xZ0BAs$zc9{G@dG7K zdSl1n5qO9#>6R1>hqma z>f~f?$Cm8sU@Rc}4B!zG)0Lxt;|&)}4~%2n>bP5_zR8# zFa93=nT&r3b)%j0s^`&t2^zNY#4{28iyaL)4(2^I|-~5@&%K%W@R?MlbgjY*jLn%Is^u@zKK-` zX*oYAx~(Rh0;tbXt0f#IcB97&ur=o8U>%LVajNY7NU=wC0x5Wt?5w~b*-Bb@kNG{2 ztX*)tfg$uZ5k26gR!2a8FZ&tY$`zxmD>&G~al4R!zVsxaw;|^qm=+_oPZpvw+LAsh zkHCGCrRiQhJ5(F8KkZ--#Kd$SF3s^=2!|;M5H6S7BZ3m`u_L_#77Tv=fj)O|lwIm7 z05C-UDZv>2vhSki$>k!|wQ&Y>j&~|Mlne8lbES%t!)YzPVXIg{fL=)R^U4P-HMm;*7Cg!#ym(F1%F^-`~Oy4#Xb*RzZ@>X}Q zhN8#~@2%)ejJRjya&~1Hv;#A^R$8xQlHeT5%`#VIY+B1o7vguMtH?BV_OEdiaYGe% zC=H~Z@(o#~D+^w}n{4;)?%Or?UscTS`%V=(oCtnHy}kH<%dHkM({U8|MExZ0*&K)b z_rhx{i=C{N>jVT%RQ#{co;?Q6inE+B9f=fKt@oOHgW- zef&JLG4a^tIg(s=6<^sD$1jPW+oW!b1u)MhPm{pKCjRYgT165zZ#rE(fHLE&gDH?FQAf zj^vMBqO*e(&zSwpBza!0zNrVH_V-kuu_{84iXuqfjE4(SrTvk5G8waf%H<1ur_TE2q(3yywrxYUWyUx5 zl2qR$GTzX~T%(4MV-DIQPR}*BnTqg<(U6@>X%yFzGp;cJjH}hohDjcDhUG_6ryIV# z1U5Bw$TeY|)^Lt}5=Wbsr(4pk!C?rKd{EA6gc&Q9(xd!?5fmx9odFxg_69qAH3drGY3vFoUwm~684 zcJH4d*{n|8&XC-oZP9V)Di5$INi(1FQjl7ImGdhr89&wfXm(}8JX-b?u;SjfwMKDS zaj*w`U02^Nin?3mll~IU+vPopv1L(N`oq(kyH2<_UpeISXvZ)nae+9@CzrTDs8;J; z{AUwq3z@1X^f$1l7T1XfpDa8tUnjcRZ(aT50Q_qLiQ)fy$N29Z)?@p z%r)O6yGE17gjGUlV(e5|_*FjDMFWPc&~5j24GtD=*NZ=_>lixWkR}Pjp4G|tlVegL zsPAHgwwMC9zvXFu#L~Si&^@R{f#K4B3UoEl9!3QBzMXGebX$SD_36Rgx;(hpWTW5^ z+B=I;6PW%wkZO1MwIKCcz}>n$xMrjZa2lx*UP3b3uH`Ao}vPU4Sfn8GF6*E`8pSb%TP187kJGjRQ z_^MG$I^(4E2Ow?6)W8&||VnbZMl?VryBWtJ$#?4hx zkJhKzSv7eN2~_^aL`zjNxvD=yU$3$4ziZ(l|Cvo4sj{wyGo2IcD6gk~TXlIl9u~+J zpbyNY@zqzoul`5h?Xe>lC;%+$nxsySH4g2Hd5*w#?sUn365lW&7_^%(zVp#WA>GS% zdtZHN)6wsNsaDs}4gC4l#fB%?*ej+XMRl`e`)_;e+%T8T%#sgY5#yIleq$oj)yS0- zen19=8XNj*3V(=fCQzY&_%}qk#lE}NVjYclnM{WY^#WktjZ0VCje}I!7A4QfL-dong#Fj5rUwaxAk=<UfPuP# zR9zv5UOybp3K_nCKi#k?#8!(3_ls4HI}91^v?ik_&8f$VRv59`O=W$u`WiMqT~UJ7 zJW~h+Uy@46Yb4&O;|_dD@H#qCh2W<*&QVe;bQFB+ZT%QBh+H6Nq+}xS^G3C$zosYZ z5Ulzr>J75aM4kTSgdG0>O7NrD!K5rcXzvy^I`AaYo^u<2DgIZDoQ=GcdRhYC2DqKme1QylOzionQdA0chLw`Z zfLK`8Bv?xJR1CdDKD!~847{-(%+!Tu1jBXni1Ivs9P`kfH;mD60nzUI=sSo$T{O%? z1crmW!GPRJEXD6k)?tGhdUl|;I-sh2j76beF=NWyURJ z?Z8xX>ghE0pyW|UXVI}m9>m9(7Syd*j0RpUk<`F{Xx`%)59~nb7^Z{~YLnEI6$qG` zNdS=#228a>CG!^}zM4|f9=&~avWkLEK-CPTSV-=Q`Jl9rQH^jppaVoX|E*}6_4#-` zf*S$=P{P0sP7jSOrg~r7k-&*OL9XF;bjozBU0fZVE>2wzMLxCZO?zth^>bB6ui=Fc zU`C#Q4~+oqhQj9G-F~F7imdAy&!jU@+ZmW!7tqh+TJM79OAK_QZR^?CX*(P1mg5Ny zY6vet6`4QiX%`73}54yPy&+ zo;!)Imt)IdNgmI&dptV}(3M@=1K%c9(;~W}?3{JQTBk_K<}?$fcTC{B#gx=G2|Jw z?@>Oi3%yb-%J>o$xY`pEsX{B^z?Wn6A>RfBN(jCr(?Uw%b-aHBuLdVME+q6ez{Np0 z5b$bRRl{jHh74h|A=o;N&Bevk1D-o6YK*=BOO7{Ux`@Vv1ih5^xwXY(dQIQ(FcNEu z$8s^uAtB!FZA$BYs*kbLl(-LnIce3FJ;aBD;+a}*krmV!E1ssV0dDg*)!1$A+<4$6 zh3DX!e;Gz%?sbguH|1$j&8FrKJ}mMHe~Z?We7l3Vz(<0z9s^oHwPn^4Z-A=5QRUwJ z;E{$df2}T=C+bSibJCiWC38YYN%6N;JBR@7x~>`xzwD^d@=J_SjG2aiMmJ`@JW+h+ zmxB(idY6|^M2xge!C$j^IHc&&`W==l2VCR;lkT20AhG14npXd6XJgNkIf>c07kMMj zAUcqbH_s#{LP((eE2f&#Vo6#R;|!XNX2YR;rh&-|ic_dk*FeQ(3XeNvu?2+-SF7c0 zSOb93W(6*~#5h95)?=A})0XVDKs`ZvP~u^DKRtwG1B2p2iLXj&2Bz9-O+iet2$oewUrO5(_9T@a=i6h{vogX zlX5)WM3|chbL)yy=g&B>_>!O;z<+Pu%$}gCvIn57zWZKOr@?w`po-x%w~~(HpzIC? zu(cXijo=ZKZ9sf~k(;WIt(PF0o1Sz-zy8+FF2cI7mc&$LP)zf3$l#t==jCviqt%1~ zsmAzpq>H*)4S{Esut7b6Kw-4B>b{QZJvDRP^8T={y0-4=3|KW~&Ar`oM!YGJKN5SpK}dm zkOq$Qk#KIENulH7uX86=qxgZYGCE!>UM%6!wx1&xI9x~u!K?lTR79s3ss$cgj$!%1 zY6xW!BoJDEJhh0`X`!SAz1WMhe1XbqGS4`q*95rRp<=4l&FYQ15t)d1Ebyp{Vo~dt zF$#9P`$(PiC2CY82SQn8cW@D2qqyYly9>7=8^L@$RBKq|ql@eneyCB90HUP+!f_~W z#QqP(;MkpfMI8DH)_h2bhw|eNf9%VTyYy~s zIzWcgnR`Apb9lbYzRh;BJ@xz7`1>aOv26$&$3QN-$D>Z?5bbgE-h9J4EHCiO0xo*0 z-27$AbqjMoA$C9=pv$F*c>x-Rnt`JSvzBUr`6x&l@>>T zh+u>rpEJCghgZwt=^OcYSWan2YimGI#GX}#x7J;XSzX|1fiJwi1ePE3ADN)NX zk79<>(6BZr(3O@N9O{aCWIJHDAD9G2Ed3$|d_nIT=&l618$!4pe%g)#HKgyIgB?Pj zJ^XeyG*RoHR?T)d+{M%v1K>^N>1i>4C>1XmF7!*664%t$Jt?P76K&C}sZLHHj9=NL zYdQknJB{){xRHSp*jUDE(|4jHCy=*dX1h8-y1M~a34hpr?`e}NvG0tHn_k7SuSKHg z-g^3rex`!gCOB64fEDq=bkze{bz!P5B2_c16>F$(aHzQ)+oIMMS2*J0C~D67!gy& zp4ok-1kk%jd(nJT*$CCqR{p%@M zPJgqW-C{heFOzS+o({g5?|r?c{()a1vyImQ`pT|TjV;w80$|Y$V6hayc{70XG=MFh zm02^FA)%>|-6w9L4v@@+!k8c*kBiaZ;Ym3hbhyn%Llq#argBApQ|8|8#tzW$+S~~l z&Z7?!4V1EQndqyc>i5JQ!pc;jYs1h?)r^9264Uer zG*V;8xpGtzu5V)1(=YkF0|i}Bj&>a%6%k5N-IlgJsDy06$%zc&15%{L2ZLxpqyc6{ zK?{%rEmk)~`#9-;;lHU$ngo}1V<#APYuPzZGYStdZ`K%NJH#OHyptoc1mJ)W65#jR zQ9z#^XkWs%3&o&~bSD_DBi-2tn3&*}WXj?_+g!UEn@U36)tC|}?s3cjJN1C@>P59M(_ttLJ7d2;`lB!odRe|gkde^M&+ zR&ynafZEAYpoW*NKYIBbA9-KnGs`-;=fU$QH)WcCyP;_|HqA~Wmc+B=M;FX=n)go- zQU}&w@f{x!=Pr5rSdg!41M*6HIC$hwszmr4@no`OZ|U9;zS`AGh~H2@(Bnv*Tv~6! zkKWEcz~zF6#}s`F0)K;kUwQ&uB|*>;ijF+{UjtD`pbBm7s2Xj$%kv*c?lEhM)hIq7 zVGA68-piM60-xy7w3p}|&Y%1^XF@?Ts8#6?_VaR!2O3by#=+Vecz`v2qlF#bx*>gd zw;F2Q2W8~&!R$~ZnM!Vbo2(WZ)pqN_SWDD{6TBQVRqEpgMmPoq&CzUvFJ=OF&JONr zOuA3VDbvx4Wvb31sIzeDoU1zLL7j7|BR39bf-?~utlukYq`RyR zt+RadFnH3xJ-Ep7=+{H%HPTi_AX_(d$QzxAPHssX0)$>?4&?)$LK^OV^%-%M>lbK$ z{c(XG`Jq~WJjajc_z^?B@W51=Ygs-Rv_QnI>p;XU7ZKp;*nor6I1Ww?4sKZ-oEjY5 zvN$+3IJgzy;B-Ho@H+ocOmeocP)ND0(Q$PQys^-`>VUg-xUseCq6AaKL{P$@BtH09 z>ljo}t~dLck>P)4bl_+8b)x|j$uyLIX+oLf)E}|N6xr&YHttgw&9m}-Ifkb&H1UJK zwlGuYuO?^YRdMW&nZ{!gEYmlpiO zx;x0?wi?%S9La_FKmB2@$ni-z#7wO>B_+c%+v|eg$B;K1R}~m$;onmVh7q2t5V~S^ zI&v=4&=>_^6Pt_b(5?6gdv|Yt#i*OP;1nM&AZ?v14sRMiDUP}fyh{}Y=5XAkh%=bt zf!yOp<~wzKk6`R;lMoI(K_k#rX<`D^2FM2%aYV@tes<3(z5vj7sU|_OY&qMv61)5I z5x&A88x~@%#|4&=j~D`qQ#E1$K6kX%lICSSY9ZDZM!y;<4mc_M)Fs}38}%Ui)nuYZ zFkHC3HpKBx<&!}zX+uX1%HF=SZ!O%y-2aR*`ZHDVQ0sa8 zHHJCT66K@v6pxu7CI!HMa^@HU7X?p856qisC-&Cjg3vi{-RlQgZxW-;4~wD0Dz&;m zmu%gjjU@PFSwAyljB-jbi2Y>G1VTYQo)mQ*W!K|k0`?ss*c=wqGcdc`M%vuj-i{AV zQ8|t62ZkGt(dIc03C=tikg>-Jf}K2sh{)_(XbE%B0dx_%cFxU9EpF_mrN2X;5@)J!mtP@ zTz?bWu^Y_wARycN}jcDhT{JO?fz4XAn_l}8YbG&=f_4SjsuhEDkM*;FRh=X2iPnPLZOh}xcoB z!jo(qA+)b>_Y8jWc-7Z2#0%zOcg36HbgbcdyN^b>&krA>NAhWVIy$OAscphQf-A;I z5tScQJ~u+Gx>U{0+Yp(Gm?C%j=EcXal{Dmg^z^57^VaURT5i>sXkm;t)w~y8RcS!v zHg@uV#jrJl9=-O}bA@uv7QI0@_F>S1$d2zyy>w39lIB=5xFr1JM z+)YuR64N$`B#iOLyz|AjTx#(CWBW(7W9wl#C?;umY&|5PS#Qcnq=ZOJgbq2$2RA+> z(OWy}eCd*hX2Y$q#l=wLPQ=b@L%NA%1fcQ}>Qz3iZxX)Uta{mvprb6yR zjxM=6acX$DE5>M7*K@jk77?pv8DT3gk@uaHN$q!*=(VZ*@Eox0c>FMYNXigX8 z;d)r$wxsd%Sv@S@7m%H3x0~Gs%2dCp|J_yp>*3BLzk9YUnAPe+zen~p_-q2hA~DQj zsk6;+AgsO4eF!aZu88}N{=|3m&#jq5bM_I2VNDV8a=H0ZgCHU0Sg_%(>uukQz9 z?w^Ghj*v0fKiqc-S?M0}4*^1R8!<;?SpS1*i4#B(1>~}@b&b77U$%1=XEnyV#zm5^ z$%CTCsO6SMtR}Vo|F`$1jcwdW!tm$#SG2X0At{m6;VY3XdlgG|G;7&^UP~Frku{nY z*^)XY*&H@$S&6*A{Y4!B3P(37JK1NS_gQAfBD;aYRVY*y>M$~OJ`x_bM2^a2eR+ND zA0xG5{8zC&_xS52>QhI=6#+mcC}roF=83v!foAg8#Fk%2T#YCS3AK0pj>j)K6zA)IYwnGzRqUYtUX^H~c>?}=@p63)0#wn_G@U@&91L=xpq5Ef zhL@pffJwY%`I~j^O)xGlo9jBWGconp7wTV&vsl0na3VJGZ)>Ze@w=>g4-T?LtKMtb zC=QA##LxnuD=-XfQ=r-~SK`=gh%a>9Y-j)AV6`sLIIGflI#dmRHmi9fD)Z}B2yi0` z@ZOgLyk~-UV3bRP_*ots34(}gk>BhN6~S9eOooModShRI0RF+ zbF&An_Ih6oKR~jH%&gnVm946tI8lCdxS=UCml&8e?Om{mMi3$>Ipo+t;VNB#tf}N~ z4hU;l)o%4jvQfVpMO?&A9$O}@pnyeC0gs3;KnAQg z7agd76b)ghxVaqBA-Y&p)S!7%4{RQJ3~TUhPNP$SEEThcAi|8(=^=qsx$`O{A#Y_?$?!6C%|x4hXTorVo3ev_Y$tRn4yhINxirnEC=uWo%#A)I zy%^2Ldf;IYe3v9t-_dIXYT~85?yMJouNTQ8V-skczzr5E=A-jCT3SL{V}j~*F)n0r zsb=WfOSqsqQki(Owu9qn*I;^`*u(?yYPhnXqMdhAGMbk>sg4vz5=tP0d3-r|88;$> znm6gVEWwyCJ&MM&uju=ER#+B9Y?i$|5DUp0#JMMojEsB$pDN(|I_!daFeYWLZh znfZylOY9fO+jv*JLZ1~JM2Lrfk&8sDM=t@W@d`U z;;l9pqIX{62ytd92A0Cq2m3MJ1ryf3nw$swCTeFDEgGTWWV9%kr_gR5=*a~b+RNgd z<+{~fb;uYRkdby8ZA>TC(kKyFDJD_qEDGYZx{-8lY3y)n%b;GXPOPYZITC)@6i4X_ z+d&CwUKt?MbIPE6<3|5*15CT4f_0vgm20m&3xQ5|iet^`a|AEt8Yx zx`SytY%Q%F`|8ZtJ6cNYc%3AWZ_Q>tkq&rVpb3G>0kc|_`!n=Vp}Jys8ktUesyO=D zz;7_Z@vcQK-y>3CC`ssl`}5N)u->b7?x+zobSLK8Mc3IfJ3Y2e8~noN-UtXqg|FaT zqx68Nh@;MR-i}wo7afP53Nd3Ne z?sQES{@B#%el9+rAID?%Dblo`O?yP+etzf_!qIyfkZY*Z|K=Hgr(ODgL!NQJt2fIu z?)P+&Y~#UJ0+cx{dWXLx|5eo#-X3xSq#d#ZCi&;|)3n@`Cq z_hdPCMs?O(fwD-k3691_s`8=`TrHIMR{A^&iWy9*;4GX;6{pjmIjdq?X*8=9)1~I| zQbvDe?gk>s+>v8{h3DG&t&$kmrGyt6FNe}Onb)6M>ZiLOP(jL#9##IpZL!)9zlbu)lwXqv9 z%Btd+MYu*c@?xs6=3|s`(gAf3gZ7Ou!O^{C54?}|1*D*VYHB;5vvr4;u-IW$2H8+X zPdGD1@#uTeq(R-*$s#nnO0kBwC}u3la4&FknwK4ZNy*aeOO9GAD!#@rE1HW9wtDRn zf!O)qvqCyx@uA=RAG|<^t|r4>ACj`?FAtP+SLYB^9{QELHs;lWOEWE8W3uNgW!lvB z%-@=sp}?nq{8XpJ^izD>=l;}Fy-#|k_H}CRsu+?Drs@rtaDK-y1OC=|J_YN-DW*!z zAaM_dOpd-W2gmib7tc@6#>Z?jh3t`k%3NGIbMbEeT)dkz7w^7)F5Zc`(39~|5%^zA z)#?5W9JfD>iwVa)0Blxo6H53no92T}{1;4}hXw3^pH2SThGT)FQ*G)mZGHwm^_%7! zJbgo+IQR#Ct5du8VUzyAZ&2ieA>yX_h7I(J;kX!qWTDebKn#G==9<`3KR5B;ws`VG z@o7_kklm#gw0#uk;3B<8<*C zdI|%7-u{%Ao95ds-7rc-daw}vdlUbqdb@q-FZ|0rDaJE3fB1)R}psS)g0nfLF$}W8xv~@6`8yze(^~(F`8+E|O@Sx9~?2K_LW}ZSpM! zf32D>3Jn_{3<&5L85=1Zcbm2NRIiOeCBW4*Red<04b=7)io>%U)5%lWqlW5U<5mms&R60z z={Qfuv(rJ|BcNu9xMZ_9{nb)u{K0EB%s=HLeBzuZ`|y~Q5(EKb1jFH?Bq-0f(AXBA z{^}ea{M>d>q(!hjv>m|ynG^;eGPv)5(gUy(iN-lq<4Bb`wlikS;0up`P~|0Bl8m75 zFero9Kk=mbC#jnMc{ci|KhgsZq7@vV&rB5aGdDaGckOd@m4beEL6a7FTpOXEL#>Zm zMi@KMcSt5;f_S2iOA33_^xhmHq~oxPexYg}9g`ZoJD!yn&9hNU9N?sZa--^hqVv0+ zRuj-2UC;IXaz6T4e1LFy3FPCWaF1y3F@-xhkRTyk117{~5wib(U|D)u^_-(&4|w2v zTDV1);Z`CQh=!m7IADf#OT|b>xEO(b;NS`uubn8K2nF2In%xwm?is3uZJbHls+k&IZfxtkd zEJsBSR9vqcMPCVdc;8*sbmefkK{G0DRgdfRp*%W7W=@Nik(`{pQ(;PfVv}&9x5+7T zKx!vJj^|U{Quy13C$XR*Uu`dI=54+LfzRnAOFz&Lotw03*8#%0XOG>0Y9<%oQTq`0 z<8z|@VmTu>N)qP{;&R#x)J!YYjLsjUo7Bt14Gq?Cfy;@!1kbZxfDWbhX`r1`>d?w=zf$Ly?k*UKX*D5Jy9lpTD|%JNXgihOUwlJITlO?phare2O>L*6(!I?snE5 zzz}pCcrZP|gvi}_w?;R!sdW;ij%}=#R6<7#0K=%XjV|(E5 zV-lfZSK-^NB$AGQY0AkfAsx}t}xY>TSiM0{9#`@ff1#GL({a!tq^Jm zUreLxp@P0lbAEiV(qmWQ1-fikrTFNI&MqgyT{7i>$=NI2H`4 zUR7-hy+p}jN)5`~bbnHqIhwVTX*y0W6#5MS1>r6{oAz{Jw8AbZJQ#fG=OucRLes>< zPK)sg_xnV54U|3Ke1mO)r}UsKw1H`8CN!H#W2EHu zMq7XzrXR9@(wW86LDBmF9aoa%-tPKZ^0=K`6*D!;*`NSGymk=q-V&T5?a~9r5G#!O81adoK@n-|YT<_vPUMI0u+K zRv1h@o9vDNk1!OAeK#y$J8vIKkcY2+ditXQ2-%~sZNwwgKoe#~cV3!{2}P!`_SClQ+B1cR~5TN~NwbGr{yaA2-wf^@W=3>!RPfR$F>f zll@me9qgLkRdl-|p_dYUdl$_}S9mPgdpPz=To*g#CMFiJ%^0Jo1?6EO z&y?V;ruXzp_l5N9uxb;9S0v{gB1|zu# z#wFC9>MD$Rv>=JjsAfUx_qZaISZga9Q)mKW2UmQvyS;v3A{3g0 zXl0!4-7P0X09G~%lKiYG+mb0owXK?)v;q((MXTsOO)q#pX+4b(?FgzL z2N_oFtYKm-i`|hW@@K0U;T2ueL%MbnpnN;*Cw=4od;wUsTk4?dQ88CY5l8xeR|;`& z%N8~EvbUu{U*>IrMdV$m*<5%F%TKY6%cQ(O{=!I4mLcX~ooEHf3HmP59M80FEw7v` z$S=d^h?$iwCA)k9{)smLQ7qrOogI@`xGq?$=oaLQyhCgfv& z+lU59qN#(lUe-L|mYz4!D-(f#B{68i;6#1qL;T>jY9!~G(>N(vnL#v1JlrcQD4(Vf zLDcN9*vsEP3#=uXp=EhDU+Qo~i9*qkUU_rrArKpie4+`f98NdN#Y=+Y3QwTH>{kvSo? za&KxCz4{|@FihTTPQ~eevFTcyc$i2M@<3HhrUw49%trr17v}6tuFTol|D>gf*>e6V ztHZhnBhc#0k}p~n=OiX$(sY{Ma9y}ZVr}?|w>}2GSRoq~1T7NnSa|hxK3A8#r)(Zw>@bbcxBnv4&dW(;h2*4D5BZd>pfULA>+x4h!r zey(J#sm^$<-4t$wy>vXm?SfXm8J&|oCqq2_!RAg^Q$5XYh@sS~Ku~(nL|AfiJT3~~ z*NsqKB;Z0{6a$WbSU*V1X=2UC+pKo(bF}*;8;++}to}eB;F6rPK!r!%wTD7R2kc2l zp#B@ABb_lk`FA{7h1CkFkfG@lX!=BNAFz29)`rG+n2aR3-{@b}HV6xQMKmJrG^iDt zrW2Nkt>o-BA|)}!B?0TE9-l$H+r^tgC@0pfUo<8es2GobQRZZ>?46t;id8B4{c;Xr zO-Nf46mm{G|GXodgfn)h7;Z)+6@Y1vv&22mNDZ)+kVobGlMKt(9b=Wu1=d{T?1~;! za^X=`O}KVu1D*Ua3y^6Qhkk%@xC7Dsi`Izupu-P(EV^mlS+H-uiHnzp#_;M_u==R3 zJTjn$2(c0U8L>Qc?=}*1xDb`axRT42xkK7)p z`W#%QSERmHyiGO=dS3yUwZ_mx0&g|RhJl|!oL}#=z?3SSaU5vv^kB3JNL-V-E7b}o z-9IIC)`_|$03GK96^+h>w@nx&dT7rB2+e_l3NU$5Of=aFi_zI2?_u_sRGrUY>Co%V zki*M=3%=o`E0G0p5c_h?Q@$FoTJQ;vuSI5|SIkCwxZo;6d&B56BWQwlMNsQRm(_X1 z-08Ikv)R(NbNPs`VvW|KR10mmG7APnmC#C!ic6w?lom(0Y_!?)n3MMiC68GNf1VwT ziA|?!dp7Qa%pegxC}tVu@D5MAXdrdGy%nf`WMj?3$Ddt&&B7ObC{$42_)$}w4~~Mx zu6ty7@hz)qOg)KNwCivp&<|rhvQXb}aVz_FdjUEe>rKU&X5&?ePP~?EQp9<`f3XfK z=}Z!kOsg`)k*40WbsnUGpskR4rw&6y^v%&|5Lo$9F+0B?LSzvLk^(4TF${Fa`B;sA z#6i8S#ZgaG3b~sF*KSm3DuT{@J@(<(GgQ5*&MJ7wNfR0FM;FkgQjaZE2FvgU?Czu&nTwnOoE{D~#2F~XJ^nc8{Yi>M%j9Te!uSz8fXuk(y{eA$d@!wFlr zi5YJv`KtqUf)CQ(htq5_xoY!&#cZjKpimqI>k=3v1ltm}QbLnS2U^tBsjBZs0roY7 zu~vA*&|8ZAQ1KFvANWG%jE&=p2>|pPsaeprL5!7*g(R*FF?FVX2bn;sxt7uezI|8Y}C;kldl)mZbh9IoBg z!~FySGk)HLKH|4{fp@0ByRZOV2Vn{N>Yl0r!HQxxv32^|3)pEOXl%>$YZ>D0f42_U zvqbW5KxrTN+^N_Li!!dh4&N|}s0{XYR6EYWX^TKiNlzGmXf7Xr7_fLQ4qa&^>Rcph zt+1#2yS|R@EGz|}n;u|1Ly1B65V*EKSS?E0wI7WGtC!&sh@VZ@h6j?s;oGL(vo1nU zF@Qxn9Ai}*+Z|_Ky=(gA>7JLHGF!ka#EVFUw1Daqk$AZ&P@-~W<5aP9^TSVseDG z;nJh*a_#+el#d~_KIG)95WePC^koA0LkI=#gH_xZ4FLSrbe995fDLX+rU!G@!yS}YH;}P^=8qvCqT|>!gMg$k9&LKz zUHaP^L-Zj#g`*=&%cXJ~Snl$SXOGpW{4dsh%{c+kMx~2xCco?T5FpPna6a-NY6}NojTr?;HHMGJ8`Uy} zP5*@Rf(zJx7nT>I#5D4FqZp&8%~O2BE{NS_4t6!JFp6Pf$@&HyqznX_mF|b^sw7)T zJuwYA6h((^hPE4aTUXdt3QgUoeusTh*Rlqm(WdFc0 zwMqbgXZI+@wuXgca9eX4M@D(!#>w|;k;bv)yvASezFfFzaO+y6VO1_dtFU!Zu|`jE zuJ5}_2Z@XZui_-o@~eX=4Pmm7r~%Qholt+I3!?VO6xiHU=g zmYC#E0tMU9Xq%wQ`Sjy!sZwNP^-X?;6)C8elPUymatt6<@*8kO&PQN%p?VsT*cMuV<}caE*cl+L&9&ZPTuk%~Oq^ zi?lp(iqeW1`(lCZ&}^IG%9Wx}tMJyd1X2ry)3LP`spZXY%r-{;B0%`3OTZuiW6gqz zBdLnEp=l857l0X4oVU>qW|39!x#TQ=!byu=K#+aPNg4}RvFd3tJf@nWf&Yx0a{xd< zzrUM*z4Q5KYyO$6wH0Hss{TM|nIR zX)2pdN^Fk=%&VZzRiw_%mnnt#ea;&7iel2wN2)+% zp-}V{8-IO%k&STv#Tum)KhT~0ZFuO;e>^^-eYW0az&?3^WQ6pFb|J*-#|kkW|0lQb z&u-zL18$LKf0~Xqnpf@Q6J#P-|87mK0ls*>S3Ti0#i&hmgD(78(<`JW+oZm0Z##Db zZa4>j9d>kWcP-50IqPAPVF1#~$<=esQ}5BOtBPvx+-mRS-GDk@KP8X1lB)`-f2^i; zG)j9CpAf5O_hMHpD8PrU`-7-z{ioNlwjn0RLKjcY9`EPuo+Y<=<=Os+Z*kpxh+XvD zM=lQGG#|HWwr_}0HH0C)*UNuRrp@N3CtQ7kdww|SpgAm) zrlJ54LaC)ej0&!&Smt%I^E)rHf0AtP74=vnVP~9=)Vjg##5v|yrIM#)hvt+hW)TTT zaBkKKyQ+k-`Kwr2?61G92k_8cQ+%YO+dy0!_l_J*hG2SlN-!8Af56-q>Y1!=Tge7m zsg3&bQPsBR+eL#^s@l=oF?Ql;{aEof0TUin!RE0NeOnKMZ-^Gx7sZiDe=$w@EI6NJ zS-CKt{7Gx6`{OU?8-DJtsD8TmqW-}vO8fvVBQ59Jam%D)440G2>lM^%xmLTDYt?JX zqN5J3V~<(2d38RAU^(I^bFeCow`X3Sc<^Xt^78NeSS*Zv*fiiH+^BsiRAtW5qj<^s zGH?*pkVCq$^R8TVlnC;Me}f1Z5T86I<4=c!MT{Uk;{^rrL_(yAst#`E~e{_z-;LLkJCepal zZ3BwKB}K&Yna2s8#9;RsxD}_Q%-}I!MJuVE@W_txG31>jk?oSl}qmz!%4 zBey#(ej1OpTVYseJ#q~WpU5RV4@xUuaowYZ9LzX^20?#kX834)9Jc8jRY&@P@vX~3 zGmhk~E~7k3WVP#Qf1^ACy`WfzRgSg}xFpE1>3-tZD%k0O6P9<()_qHa@&qMl3gOW} z!$o0?z{=VSv86SZI!m&Whgo~2OKgGy%0z}i!!9=mst2;dnT!i>qRqI4NBEm5@-r)a zKwKT$)a60-ttL?o3Dn{`%ew`k!+z+#3H7)x<9C4_;6IVp7d4QDDLe z+aCZ49cQ4~hLwt*39#B#^Ab4)ynqIPaicj(dxL3FJ2nyW$D#c;5D+vV<8-(zO*+8X zW69~Pf0*a7~?X&e$5uGer~evFtpyZ7?Y7Sp;X1mJQ1`*r>^H zwfX}N7TWGhBNv)>gU64z&iuhBeP+0g2JU>G8of|7zI?Q*jcD3vdU2X1jcE!g2OD67 z(r~)-*`IH!YvYd8a72say<^#&c>!q_DP`R#96S#?f9u_DI~b%`4~cL$V?6i*PguPY zE5h;*Mn+3d!Hg3H$hK8b$l11tq9ef|SYc`^rd>8~qS45BZ}6e~o8|Px#(k56?!r4A z;LHUHzFYnhiX;m3(VWov7T-IN=;6gtI;Y!*^Vsc!4QgZzV>y7*`EksZX>esDnfRmD z{+blZe+5ao69vg%c}-fBBqrzRNFN>;b`tLxDF#N|FBvcXcxDnU(D0_!j?gA5l-l7EQX;I%Uc$$WIBvbBKO!N7{4B;rk#k~N+H;sTgzKO<=Rj}3{X zH@c`cMM=mL=~$+>j@m{>rqn?=0C_+o27!_Q~RVndZ{=sG0G4CWilh^nV zwiZ%d8rc&308CJgkL<=QSUcy6AhEGTe_S7RvPo5xq%oy4$Fm-AgMPLX!aNTnClqRC zJV+JlVZ0L38ftNV_vh`Whe-*H9VQxcVt}+crcPcWol`^`%$0<{CivCQz`RCDGElvQ z@O2ld!i^EfK{-`8Zrhx2=P{Z`v;&e}>P1oXuo(oEfZ!Tjz<)!AYsM93D<~M~B19~2 zwVn*r#1GVF%+Lrv@aM9pEV;Ll%;#Fjd(E*Sg)Cv067mBke@n+Uub;VkI(_+$^~gxY z+$QO&@^P&8RZ#m~y!Ja^N67XOTY)RjVpaxXtH&l3+^BvJ`wQMa35Z1k_N}nk&-8uM zG#eIq=N7s0!07S)jAit%?x*-HymL$Wz>I*9#9W`;s~R)wZM!bs4Kv-y>;C)T#8trp zu&kau-Zgzye_jXA-IaI=Sk*akm1eh<+&W(O%r#RKntP2?39v@?=U;YnO1w1OT=mgw zVu{0Hv`Cm%&4v&`Yh$=bk@M0Lr8~&S$R}TJthy4N$W))b=<@Sf3q!V{OMETiYlI^VN{4`UsW%D zyFFbz7TFiMW0c7Yn{EQro9MI-V+Y}8r=XJUXP?XqJrH~Ms%G%}crekCIdRR-+H^tXCb6 zKD5URe?Y4R=H7P&PbwcfpNrGRWUinYfuWhFAQifq`rjTJFtc{mz{S{6r%(CP!b!xiPg^ zow8{nz2YRpAJ%UKen)VAlQzRZ69I?3;MepXfAv>fg0u?Ic^zNJv!lI&2Q&M|$$w4mI@TFmKvfJz1lg*IxLY~)ZE0IA1LXZZjLyrCQ* ze=|_13Y%YLlAhbk9{d-yMSAiOe*%nsDitY?6GZ4U&v&WZ9;O9xXpI zrvNP7vwZKq4;a+p%;x{XNK$Eu^rLGW24jwF*XU8^v?QY>1QsInPWqh+MMc+M50elG zsDYB3(|{DCf~B#+N^`ph^vvaz(<5cB7=KKB57YZ8Nk8SK4%gMkkaztM)Vl>hUCjk0 zMYtF!Bf|2!e~Q+Aw?OSHr=}FoVm0YK$GBA8#=vcI3WP`&ge!NfwHz1$s!5ZmYp{5_ z2Akk(GywJ*wBl)W&h`76$(CZD4+Gwb;1fnj0~@j^%XVsWd&f^%LJNH^*?+_G3^LN{!(A&EweSaH4j`IjTFh4i@s!~)9gY>w ze7KXLG_RIxr9n}uVmQkk8K8=p=e&I)2B+-#DzFnl1TAN-x3#>3yHyE5kh_u&(xmLZa zTrQqRJJ(>40|Wm9wnD!M_rQW}Nw;A`e&Xvb2oA405sr{w)p5u*0vdQf87Jt_pn{BO ztVKl|NJaPN!!TFP;VAU=PJcKOyj=FK2_vIG(ZWbSl@@aLy0uq83KNB@NfWP%;Kf9- zuPIVj!%?-g6jX&inl!M9R^`4kq60Dcmu1hdNEiTIdAo zL+0;A@&Q7_6ZQi%|6&&T+!XF#d17qN>U1jd#lZICxP?|+Cee(Amw$dhQ*9b{0Q`eQKH0vKzi;%hiTGZo=THv=^&T7Oo6Jqg6koyjT|_^*u00sFRRDai=?rw1PVX~8 zhD`@->$n0{0py*?=YUA@xa)R)AhrYr8-#hQHTi~*jfGk@*e%A^I{STxk}-0}!;Qly zj4}VY?U2&0M1S}Q5VjZd@9d2pkuok!bo6m+!h|z42X#S=3Ne?0SQ-KIajd_36IKRq zuf*v2GZY(g*mouUgxORHaXb=_d*=4}W7+9I`zK~! zyM+Ega6$h1S6moN&SCecr$Mt#&#DJ&841O{Y9)`{F@=a811~3~5`df*Ko<98G3E5} z62qrx&MQ?8JcuBg6o|e&T@>2swhQ69rBKwHugX-9dMC9?2V{#%V84qC+$*9H-Lu@}#zQg%^fq&gBLS zImcRSfrSbuD?~geI+;;Wx1MC|sOf{h5P#B;Hq0kugxl12!s{({=ohn5Utcr9m0UOZ zLCwGit+=-Fxnb2&kux0)rNn^M7H2JQ!V%kL<{~_(kz%ApJbu3)S+1SYA69zyLNN07h}-y+jwCwNQyAPsF>#+fqz913sHPeCsTBGabWIE5qaU_!iK1@SE1TUF@eJIOS`)XdoenJ8Rn-%vCA8Zmkwa3OVOGgn`9`NOul~-NNUy5o>03?EXz^@l^}eVv7RF~^0ty!4UgmNxK9C!@%>I#@%tdAlK8xvX z;yR~4lDT4dH)61O4eR8#;D6wYFr)BU9J#BMXEA0JKJkQ+`pTV$bvr2Yl^R|osYqNE zJp&s2BsO!EjaZ@DkhrXG$hi_gBOAw|`0PC#DIr(m(Uw@d%E&KJCen+TAWakQKLOPb z=4TYKjH)MCj9nLx@WF(3k#6bCr?#!z6tX-TiOE|wINrsH8yxGw!GCWL`8nEivb-08 zq1;YZPQG3MF>^-!^iFNJwbqwLEv#QNY_~dDYhAZ~uI$!=p&aXb7T?fp_Jh_rTI_D@ia@ljQD)2ar1oHr;g zBNoI_+?RFZ_Z?0N{x6nXF@^?EC~FiUgN?6u)JX7sbutIE1S1yAxn zL2UNN?}^Saa$X@kM`oiIn3jFd%@9>3!He)~Zxzv@V{M$XvPUj_Z z&wRQmK^*L-N5vHfB*nET*{fT1p!Y!n6?etvG0)RU-(+OwP_@AXWSpa(mJ>tev3m_H zUVl?HKF&tBTWYPwa8;@eUOWYZZVzE)I!~a_#zz=-Xl0HyheL`Y4Piw6#gajWykB)> z#2P-es#E=V_UJ`f%!uVmgq>VW2=K^Cj0n6TzY>=WfX*~Z1tMN34jGsjXdxlsmV8pc zRa|1=(t;3UxY7+RfaaP2-FOxu?*n9~%YQzNi^=pB=g3vWV_5WOgAAk8G|1hdfs&kj z+of8iQ;PHG`6amP4{v>jHh-OAz_U?biJ089&>_={E<179s<(K{PqKf_@=5l$1KmrE zqLZ5&UpoqhL{WCAn|cXwIL`ZSI&=;{=Vh~TfxS>C9i+0WG>3OGZ@U3lc-C)yZhzs@ zs3)J>zkfb%-`zYi;CN_l8d#gBPt7UDnjI9U>0pb;h6$_T%3{fc5n56_20q?QoC$~& z;}?*7`{C;9Z8eh^>HXL87W@K30YKBuWTSh(yN1uw+4KT(By1*!`7n7~6#aIxSAI~; zdGhokn~VU5_cavsKAYs~;89hu`hOtrWup@A-1qkmZ`me)ExWy9cDT2$=DSO4(M&W$< z>QKBij%=d@Qa{2pYamqM04s0lW#d|~Yz;FT4Yh3iVv|l=0|Y#8@Xfy0dw;USVv!er z*mt=&NZ;*lzkw_g_U-bk&X+o&p6#c8#F8wZ~O`RMX0D9FUfK1Bm`*Qa%`L(393Wy%V6yk`Ui-2BfIewW<|9_?my@BVd-PM1* zUwyKpD!gwt-*=w8@2|90^R`z3O!W`O>By<5inpFLpKLbY_m^AmyXrese!q!-)N}s! zz6&pYzw^2Er1fOg?KQ?7xR_4Io2#q+qNk|dpeWVZ-x=hmlXP;`Juiy$LDmEEpa|mX zc|Kj`A}8?b1V)PgD1YkFrDzLX$WS920e|sJxPKlN7%X2=UA^jeyLY>Hx*N&H+S=Wu z9A`Ze3)sG_pY?LMIZQ`a=n`v*L|N?2CMe(AX>6+5cn#B`{&%$2`M%vfUT(dk88W~3 zz27_d`_Osz;3&F@Za@LalNyH|2%>JuKWG|lfL>>Jh{F+Dy}b&pIpCHf8VOV|9Slm zKiBqO_0RSBdGq}I9QynGdGq=6=kP7N-n~w*x34cQo?QR<leZ776 z^Yzcyzy0>)`hS;So?LfZtLGLIm8h2vo-HR%BlzXCtLGq<$dS)3D&>Q^*gF=Tm7HFw14A}WZNrLZ&Zwa%O-`QdJu#K zMCm>jiqw8vO#0Zm!qDU8qej~K?fqmyb4KE7SMuZpf7uQcD6%TL_L$15#0zKzd{Y~ek|=n67^^ijZ_UKTBg z7!5a8Ab;Be4aNb0on~(^>mv?a7OS8j%c$N^acLJoCseJ|yw{D45a{7=5W`%J@)y-h zm}bC>%_s1$B2(Ctm9@3aHML&!NByE7>R;83Ut(YZ-XV|UFlp``yi%+yI8&=5zg5wX z5}bziX}RC?daG&bGQPDKSJyZ0+`V`I!FS)=Z+~6&Erv#zICo$$PtB~ecla#UJE(T= zAR-YYfxfYk_*;yNS8lOzcbUDlR=vA|jdj;ns@YlIrlLJ{qaAgSpR046A{YrEytz90 z=uA~t|GF$+StQ@xUt9MMaqeyh|3_cn5>n~!9ffWRfmRazcvF1wzIS2dD;inVixrKc z>VHd1o_T_0D3{fd1Y^K?xWRTbaQ<}m_d7c~hd=(fIUH`5(o{7i&yk!$LovQAjhWMaXUaY^tU7~q2!2y?$%a?km5vUP0w=oKz*Q9TwbJ!<{wwr&RUmr<$JkE@q<-YKJbZtiyI#N**UiOY2I$O_tQJW7ri-oqzRv zcleF^3a`}9V{gwhz^4ok*c8I$Ys6tVBAgzaXVWQ1G$`pSD5<0tw)k}Q9N(1Nqy7PX z15^h*zW!0sweosDAI%g}UmswQ68JqB(5ytGjxkxZL$!y|1 z@5A$cdgVRdp~nFj&`>olv+RTS{4G3Jd-QGiY9IRqQ|7(+Pk8aK8Q9_ay??rbS66Bt z{ci1W$F5$Ty$fGwx_9A#c0~unx98_vF#`1Yb6XQ%N7u8bw#-0>Rt=X_HCdd&fay%f6u|iGQRfV+>tnt3c5o71j^cZc$a;N?xCdJ*!;1efUS*71U+f zL>)gOJ7zKU!-9J|V}IWTOx>9W9&|v>7PV3yTtH-Wy6fZW^V;11+BR>{+|Ets4rq>l zXXe9H*l@8vDwo+R5Gd zjr;+v+*_cP`OUy3(UrDD)1XTw^Qvc8$>S|0_diJ*D`@D`X@rI?+)b>p;`Y`UCSEC! z_v?Fmex7{A8tY?v;eT~LSD!zkxw&h7{>Qa6XT6_4|C$*TEX=}_2x9FY)Z*NEeEx?v zHfJic8xzL)N7?R|5XSjnQ~2j5kTolkP4a%84QYBnvMFI=hyf$14}VieoSF`7|G6EY zG^({d`0=Ja;Kpi!UVI@?*g6}S0cfKZ{_v*o&79PNEpG~zHGczhz#iNLY_T`uczQwx zhpAZwsxqgcgT)(icX@5At+}-909yWH^5QnxPVUTY?BKtxv0st}rWCjUNOax77C`^i z^b)!0&ncLWtSp6$0Ooum7udMPEy7R3iUw*Y0yVTB=6N~wxedaARIT@YT5nZgX>+Nf z7;M!0^N+Y+V1M@hADz6fn6}?;M1x?)wogyz$(O&~9O}z-I8PkLtS2{tI~(Pn=D_^V z8v$e;UI5ell6oM>_J&$~(g}jIp#GBHL3_f5z zq@hN7m5)BAgS?Mg?x+I2(u7xs4S#8H+(*8vrKo?=&kK0M!lC#L2l-m1>4mw2^?Oc9L zHGk*yX~XGLtXOvkw9a#2K_TL1zt~C|QfU^G8yiX+q$*g<&tH5xPXSdFmhrK; zWuK58@K2+BTH5N~wIbZi$~puEwT2+_dVl96^EI&={3=q3c$r8Qvh4~h07DZik9T}w zao~L-rQy;rEQ~UJq%=H_^_@iYSm*Igqza31kt&?7B-V-*|DsKq*I3!j8a#nRvDB%l zDOt7R3%2|HHyQYWo3cnnPrSBPoZl8Cb(?++}EKDT216`En}Z00y9Y{ADruK&dy;*bLb+4vp?>BxuUqAYWaSq`3ykg!c} z2+S0O@WA{TVxmB1AL(L`?)`c1LVwrL(LvBjJsr@PPBGLAB>}4nNpM@`Rp9}hn6B(;8u(V5lQ~goqwGB zVN@mw=bn5qT-TVzR*3pQ%QReUnRvuhGd}F}w0r|Zrb(8~uDfKyPh(mkhK(0&y(}MS z0AlK6QS4+j#fKD=NIj3~z<&VNXg+=hS$R@6!q%_LEYn^fzm{qO&(PTeDs`Yz2P$cQ zX?P8X6{Xr9DgvV<*pWLUj!;2OwK-w%3*>9@a=Vv-QLc|CinI|=(`cx(#auq}5WRDk zE;xCH;g(ZS9?kkAJR3AecEeu~+x8kXPCxxw6-&^>4m`nYej1IvWq)n7=&rTp0kVs7 zffUWo8qDrVS8@0#N`n67M9Jc(Q?Q*s)agGg*7f_ZCI|dlvy9Kwfv7iNF>EKA1ynn( zRA(wC^_z|1gnfmcS^ngEoPw_IvJg>L%oc?Q72KeJhmY*k%1)_*?$0f9^?HIz4K=Is z?L(L9$$t8)t7b&?u7At2tCS34D@Xl1(U0JX(b|+VJ>! z@EA}6r)`0@Xrdymp=L@p={JQ1uq~ed1zM}Z4W2&G4#^^nWH1!Pq;glQsgOzOl4FFg z6f%RmNUb^u51SYfA)+@R@uq8}H**Y6_WtcdB1W33SuNzMl=>eA;rf`?|6i%X7igGCfZzknxC(^B#0T_ssU60_!Nv)d~F zvZ~0)U)CF*$`k8xeYV~{!e_@o1za28BW?~~@%Neo6@S6Z8MIV!;Fh8X^OYpOd-prG z1h9?nJMhL9M++h!JOe(pqES8b;)Q5~Bclo4sAa+ighfT>x$1!~RUMYM_MYcESoI7vWXru@?;t=8kWJ*lHfnNjkxz z`8Kh~FcvHxxo6StW#&T3C#}xUb3N&HZt|*&|9_zwvm%1CX;1wN{0*&})z`a2M^vXN zBYwb}wRSSpR=hy|8a^TY9GNkigWJUN*4#PM;HY@zJs5l{!l3)dDPnH)K(!6yQg_F* z@}jAmZ!Huo&Jm)^s@_&yd+MW>F36r0lcz;C=|$AyJ$NpBJXa!h+TLy$%(BE48(|S# zNPlqNuVGGt@)<<*$=vq=K@TB3j*tr3z7XYI(B4#4Ev5qpH3_v~Y6v$%s5Ku)<0tEDYlMx!x$1{^)k7>;p_Fs3tOB*1HlTRuYyc$~ zr>JJ@o{Z1B#>fJi=>$=S?d$M7QE-khXwNYyz)(sQj~=VFQ8PwSeZoMISQO&>K!4?R zQ<tLn^} z_)%dbL~XhTTAJ3?RFIZpTCE@`pZ?TH*tTnPgiK>X@F9zxHR`F_QtICd@qf8-0#w0Co@kzz6j@~S$|X2-7hFEKJc8j?!j68`)t;X0n_uqnot_3@6?JWG`2ima zL1v|Z(5?eMl;XP>JGWCf!+++6DqayjV-nk`Kyb4JA0ZA=VJGfm71IsZr*vOM8VUb> zB}-^3D^xT#KyeUNn@8BI>igo&Wa)3|XqHZ{PM&3_6a2EDPI?z7+v7<-P~Wdk{x%zB z>Yu^Y$@c7gR!&b2vhg$nKJ?^OZ(6|Lmx@s0gPp90UzXT2dFf=mtk?By z!sjm|$>mtsr`rJtB@!X)w`D&Nb_^ARLM-sRm=oJIM!;O(sFW@-!Qux>lZpL=o?T|3 zt8Prmz#*UN#01fe6@QKbHMQ|=q2|MCI6&4v+E@cWIaMRv9q^fO+?~chU@KYg_L6T} z@RFr*?Y|}GVO=B+I@WJc|0xOTO?JNfY23ud?ZMJ*AT;$)9)lUm-VkyiE2nmHz1+it~X#hqJ7Nzi+eth=0BvUd$%=<=G^MKL@F5 zT78LcNdbA${iv&`&4^xmRTRXr$mgCzx1rC_U+5`x5_(wQxtmf9r{1F7+|NhUN!3Ty zMb$&qLDfIiz53o!#hdm`)tb{YT{5I*{N^j^nFGI?qPg9;F-?2$=aV$2hYJ!lP0-el zTet`@?InC7bbrl+AgG{hZeWBtg&<Jdm7VX3w~ zogIkF+Fw0yi*YJZZ4RcW65SHwk2lw2XdHP~IX9pg@l2HvMvPDgHcd`YzSnM8oWL#u zK49p&`(5&%vwZTQO!gsA|6kRU2gw0@it)pKf&O9`%Qs1Ty{yD=l^ijN(sq)CgAe{E zEC}j>?SE-fUKF!IAF^{`_+Yedn1Xd}H#WQ`^%)3KqvZ+b1hBcr1{-5ZK3wsDo!a%` zw0e||kKcEn44C((3v!}Q*LW3X|TM)PQ-2r$fOyxpfxu=TpujU#zQnMd%f>P z@TimmLl7x}*bYF%rvefM!J-BfsZ_*phhlUc9e);JcAZX-6+!SqY>kwJZi}fEoB%RZ zm3+$)y)cZD%*yl8sgCl_2W3H0Sp7$9pHL5UNmB4P0WQu(2yfp zfU4>G5qhS%DAEt;dTwTjC;XiK#<0!J+WmYo$p&h#e8gyo!3v(uFtef}?25zcvr)_21a9Zkbc{Th|8f3 zvy5w3PM>LXwbKRmQf&qon-gO%5SbIGt0*sqMWUU6bP-x=)NW2`%OE!=J#XsXZ1Mv! z%o2vl@8cVm{RbmBQ7d+FHPe*BzNPvJJ+UoeVcUiABpU}Z8LetXA4=a3K|(9a=_Xmo z1%5F+4*4i`UsV#RdmY>sqDB|5ex2XWEwJC{3AgGtLy2nEm!2F17k_=^b`H4&Y5pNa zO`4C&axsp{>W zA+MQ_oJ{RddQ@;J4Sx=dYa!!Y-p~4&8SWB1A_l6*Sl4tJGP&rKA4#$eJ?Mc^=qLx9 z+qUT)#7wY8`Gd0H87p0I+*Pb*{UlVYaCbpm1Ql^F=&@3IdJ6U|<{}AK4p zYH9IEm}+xYB;5>Q=~Xe)VAN4lVwMBj6GVd&k^`n?(#S@Q7+_srbQ|qKo7BxLBKbOdMfY9CRY`22xT#WS+mhy1<0$Qsrpc%lKQNWati4gp{q*s#)>mfo#VU>>*UU$+NXaUui z^V7yLBfImk&HEw6Ek>Ti7n5RkenCy;pb(s363{Fanby_R%}$8}p>7NnX~N7z`59z1 zR@*DXG=Gkerij4OX$DA7{Z(5w8={xXv{B+6zdCUY1hrxE6fW^EQX&(aN;;Voh0Pz# zzH6Xk1{G8o3<5s5!=$aaG+F>vu@3j#@fD@Ns#^GtA-ivJD3xHre$T%s(>37F6Z|8Z z=IA+Y4IbdHz=FrHOQ0onlvHIvW?J1}i+qHjD}PMlt56m`m1ql}aBri9Jq$|`AsiQ* zojl%BlZe4=q_YjtJSKn`bdd^nlBj|QJ_@O0*i$NMjn>PECuve%pdL*-Wch0j=-SQk0j9*L(losS@*vc;>{AkA#rM zNOg!T+E$)N;b$0Ywc)-@?{QP#USsK(3429pdZ0b5=zHABDjG-zp(xrD)wS!FrrTAO z7u0SFcopleOWeQ$x>mMyG%ZU@Q9B{&p?_92fAC>AD_eFP!Z%RQilV3bwec}9p}`et z)i1w9_3yLDEU9DmLQ0=KLWK!Ei3Q4`8rtL7_Um_#TN!q>NoLjd8tPzALd2}dx)#{s-{(@7H!#LjfNTi%b!T@0k!5>C_%dKK2 zl0e?WOE1hcre=b|d||N!X2fgOyqC zVxx_WH~#c_oCEFb(FF-^l|HI#6z7c3y)R-if!m41pL2r4jm;SAYG6ZrGB^ zkN71`-Lx%%vNvvRfi2-@NA(wBe}6w%`u*6$en0Xk`m8^%Pmr_J??)Oy+Kz(>)l`}i z4O(6II^S>O=ehL5rug*h{u1=>mtPhE2WIv@ti!n#gRK(cRZyvFeS?lWNTUfugepWx zLh$IvAA?617r~?9FnCm!!GEL6%iz)5w+mAso7B{!Kq94ZFgfAega{puIUI60;&8y> zc*EfaPqN_2?gBf$X2?6m-1>A~Xe)AzY43J7jacrDcgtQn&YH7PhF_SmL{`9B^}T;j zW_?OxUCNhy#f}?x3_fwcFP%n`6COe|BnsCOxp6FYEH(b3SX?R4p?^0B$MHM-Z6CyI zj0wq*Sl|x#HS)?w$6k1o>2H{b5_~Xxm`A}A8!=`5n4tNl858ulZ)&Jy>?C{SX1}C9 zH9BgFmBhd1fwS>0SDFa=NHq)b8NsZRoUiHe#<7&CERLvGYsYjUz5+Ml9Sw0)!wv*Z z>)TD2YLls61~T8mD1V95Fya*q?65#>8!WEFp0eXpC6@{S)e$h=X3dE{B2qD^N=8+6 z`agf#esj3{W)AOa6ianJ{7zT2Gb}79&NjuL9mq9ahxGd7=KT?n}Ec#np|P%x?Okq+{3vp!Meg@FH$_o*!Xf`4UwpLDQ?o6eI73E|6@;l??L zK8rs*m^XtWK85abv$57iPi5j4mN8iP+#&q*a_{HlaBqM2;Bb5Yb@F!a@W*8T!0VAO z;~V0~;tJk1AOU(dD6G5z)Rmx<|2zse*^MR zE%z);M1MoUGbVc13*%M7@t3KI78Q1pS4T7giIT3z!BD_=tC_Dli|8^ug=eK2B&sg; zm8f;S^;2<~Q@rlIj9nhlCeU1wB)DJtw2GCCwD1b=Poik6$&_!CX^&@fJGBG?WGj3iVg z6M`QhnO+@>!?8B1V;@BN5`-&bdKSOfi{4L(z5o*0Uu0Hhl9vcd z2Y@4wqvz z{kuY%t;BHdsxb2H;eN6Hc@gi21e>wZ#34#llc7IO?tiC#u7AI_hUXYQ+)Th1*ZhVn zd-E*@-A({=p(gmX2~Q}}ByT2O`8g2=9e;um5}eEK^XFP>0CIBKee3?*t&=GLT_MP~ z7Aatpfd5t5tu}&%+^X9M_1{xn+0_NtJHJEDhT2Wx9P^;09*xH-eTzPNVL4{UJ?M9pGf)DRn$i`CVxmp z(MCfZxZur@jWqqk4NBf0Wim{`@Ru%pp|JoWt-GBHwF&hcJ@N)oWy1#V{V>P0ieH2y z=jSaVbAswQ9r1r(){Cpbmcm|OzN0u(n*6mpR25LlV>{3EEXCI13`v;iQeqCzRJ9s?Ya!(mXns#-A`T*Yf>)PL0#Fk*$S zmX64f+|=@o-tM@kcy7@1VY0Fkgx_@w60<~KB`W7trsD}D88Q0`%-oa9l+u)PhtbDp z)Emqo?E%V3ZqMuDcvN?;85>{=SpmEU*#I^GNxriItH+V{$u5V2u9cdZh5o|#Q=;}+ zAN)JeP3$sLGRBAkiKIzykbfCg9EOE4Kk+t&tnMtW!7-3dWyMI|QkbN8Zdi6!%?5r(-!cToGBpB6}VWDXb9DgHFnR4TgW{ROPvXPFxahVNA3$|QsCP~QNhxY_Kpim< z(G?9>x2u0sBMt=;Q;VtdrtEsdSFv!Wu&pIMaTh^vSF3H>Hg>CaJ>r;u9PS7c7gh5N zj*bod9N0gi1Q$I_;(vz`mQq~Yc9P|aVouN>J^80z^M59a8vav z#Chj`|DJlUs@}D#H|nbWZFjF;{YT;KPC}U2>H~KdX9GQ-36b{}R4$ZN7P5-nTS-BY zp^@C{-*R=0hrq4H3}NAd`iNaH<1 zQS@ZNZPu3BQqZlE(Sc%=Pkt7y?j=9AOYi+^NWw>MRrK~MEL*l(nP|` zx6=p`km7L?pvTV7z6j2~yq3PMwHy4+r?^>n`hnNGeO@EaAtgI1WV?8G$~n@_Ib}U4 z`Xs^YoL^kPN%<1nYOkwpfFG`R(V2@#hAtG{zsusJA9CXWqC?a6wa| zXyh}lL8A0|KCNUaM@t7CL(L~pR8fYA#p#k&_cur&HQF8kq!a09rHuH3555OIU*8qy z;h6F-PF(C+Gark2bl@U@x2hT`7QQ3r>6nN!EPI;Z$MYj)ZIIPsE;123Y&$*=Y2kiB zr+9+jN}SCHyTQ++DL8DOVVrLcj1L)PhDDQMW_Emn9~Hh|R!o?pv$2EeL0`ka&w&uv z#EA#ADt2e3YK2cDfA}Y!pUULKynS#{_?sdyI^t4Ebd;Seup<~|yIPAqPxAsv=#N=6 z-ZnesQ?lU?N*=S6`83gP?2jhTW*XNL1ZTpSiTgoHj;@%uRqk#-COY^TeG`hVX?DyC%r_~A zqvA*N^5o?KL~Cc6zj0DqGo?dRs6$E%ZTe}iitgC@MjDK0Dns-BoDs(IY2;g6e%SEd zH$FRpg+sH`M{w0!CV3YoI`+w&8zS}=!3cE^S``>j4NeMuj9QoC&x{4&pvES&2~aIi z)Ymo#5_$dB>eR%!3b&Hpr11n!09|xB&vIL08(NA=Oh3-}`(j_}i0p-CZK5YPeaII2 z1YC7n?GRZj%6=@hCLH_dm4yF}zJiDbh%`jzN zDOn!v+4NhPw5^fCxu)((UG?RipP?MiaJ%Iu0CUr7s6k214-C)dqw7(?tIwb`5O+}! z3aT_IxrTG8u=Om*$b*y-x|@3f$Zs18KVsEm!**&Ck+VI^GxJ@!_`vO9cC-g50Z@LG z(jIIeYkBmR-!l>${`w4J02$v7;cAP83Ke(tfzTCl2{vZ2u4gpKNMxYqimAeSYNH0?WU+#O6gew7@#Z+XRyZv?;pXj=6T~z}VJJ#VCWG&< zJq7fI_SY7~?2dh`Q-)RDe4249%Dgz`&5~CAy+5@F2`6qIOKHf^*1?+8K;T5M=~$#- z;>l-FJTysdUT)r#laKukf>6tY6GJg?G-+pq6sO1hnje;IIJG$y4YmXNw^-NTeU)_L zV{ZVw!P?c(oyM7Ds(?$+#HO=r*8a-wpK{2}RdYOrB--2;L+Y}^+ z`sm8zkXjRIXnN%;cKfBYmWGI-@TfhK+Ceu{G2>w|jSiWKQD~el>x5|+LdNNwu#I?$ z5wrNVB%~`xk{H0AsRPhPsQrV#V1h`)-WbdS$Ep^qc7nmC%YT`4_0Q;XYH(0}m^B2$ zj}|a}OPHTM;9he=ilnS3w>|7$@tH@$4}WbM?q9|skZ?6y-)<1Be;dRNy(<%_ZYMmL za$0dFOUORxK~Uz$ZcO+;55mJ~@xI<(AUObRMp%P<+XHkFO89^bR=BbqC4d##z&!(o z9ksTzE*BZ8o3rkR*Ud$+dZht1fauvb+qK($U|7 zhPLT$fDuPoqVdgW&X@BO=g$C$K_6Y+sS3!VPHDI{LH%_YX2J7h?2A1n9off1k?^?i zsa%7K=2XGRsv4jI+jaAebnzI@F;p(4@q6v{} zCq+J2ol1wuYvT;fNR>sQ>n%Z47uPS@t;MS<+&#T(BV7Fi!DF3yPUCIa zNzpZVYiNMP_OH@go!4cuSWi1Aw1SMI6VVsu+^l2_PAQ|SVkV-j$kZ=VAOQ@#Ia)S` zR`-8Z^K^GUxYI;8tm41yHKA)M_51&ZO#fDrzEaYh06J98)`dKZTkFTyFyEEE=%T70Rxu`6fqW>?6{Vy9*Ci-iw1)qDCV+bdyQbHY0A;y zieu@)bNl>7=D0N3)6~;Ol?_^Ck2zWydr#0%dvw$TQ<2eKiuHuEaJ<|K9*%hojV7KT zelcJc_y-Nkq@H$N-S6#o^Rq`yuaW~hlqsV&8*MpDf^UhB!{M%ZgOABE>l5)X1DX#p zKFiws5nUIj?`J`+di9^K+hfRbC|qWODH-!jR_3kuldd!xz#kQeKH19B8K$!>%nX{e zVT~$~)kzZIsL6=r*VWQS2gX{Dh=avArV}HH)|X%mx&6c@?%M7>-;6xy z4vIr(d0x`xT%3nvz(XoC7+3|~sbWG~{ya!pXn z#wwuO;G;z-v;Tq~mj0NKE=|hl*Fo}Q5JUeJemc&@Ij4=|{b$cHQ7IFQTi4f85h@Az&2ubIg&^Vem z8#O?gvM{!$6hn1nUs_y`%fZ{Z{m%KdVv0}m=gNqH>q5&7yZ&U6G>mMELvHy zfcvC{uPMwi*322{vt5#JYW#njB7@G=+Edv1LT<#ZYjfk>132m#IfsPbj&4R;jC$OI z*XN(x3?f=#Y|AxLCQwwD@N zBoCvy_6+-XF)y5kFOMdk%B#p#kZZ4THWeKkoc3Lj>x8X#+?4DRL#CWr1?}QY$yZ|XJN;(HJ z9o0qCsd^js!$QPJG6i{MH8h2^ih)>oyF&3(fyJa8ko}Kgb`l_XA^ItfhdXp|jp>AD z^voP?SkLfIV@eLFu2Y*my8Qk;Pn3Q(gAvMkaCFx^$w>OXu~m_z_?TgAexoX~=&*Fj zJ&MipDunaLZE=_Ii?yJe#ggPWX`lIQVHAibOzp88K|dLfZxdX=!%QXnizBy8n4Z=~ z_;G%KM)o5oN`iZ`OpJWt$M@pGa_I zmb)IT?*TD0yt#20t&kRXI91LVc56#!af5AkPxR8k&Od+xAvB4fom%a>n#W_SNXSbZ zb7ar%w$?vUXi>faDK&>BYO4~AE)3WpbEO0dq0K7rHNujUB8Jc3 zlCwM@5SHyEVytRwW^n7X_F|XPgWrndqtlGPfN%y4r9+EFoj;M==d}o~M^-mxu#6eK zXFU~|E2)8%wxNEx4)#`?%2Uu5rr6`iGe5`^V(HcYF)tp@?9ogZQtSxp-LiA`@^q0w zY!DrATm3anWJ?ZAbMW{Ov_Ul)oQ+}*gg6oWOeY{~wDC2|oX+pjN%I3_8)xX*8{f_t z{^etVBJ1mNq}U#J2l3fMd*Ah_WoG}P!~W9rb90M_ z%!PcmLqbA|jpIHPf2N+5^6&BhjM;)x%*_%fLiBub4Tg$U#}E0UBl9s4Xg{ms9jP06 ztiyo1VDXG32P}GcI$DcW=eEHck*8)Tvr?#=ydl~c_#>2rgv8$tt(*^^Ng=vRViQ&h zNYYr>8HRHD5DRNf=X(Y*d~UL&x&Igi(bO^@z#oqIT?pL#*r~?1+-8vCdunV~)wSRc z(_nqH_S5F7c8_yX!6_34fz9<2VTJzKFvtL=1yOF)6isKeHDYTLhWluE7@R+n@9=NN z+rM@XiY2(f3M+%_MLZ`MscD8SGMCLn9!n1fIm0izs42fR6t>Y*BWn_f^{Exaco@K0 zIZhTl75MR47b3ZwTOGKtiFwFl)HbggU>1(+qrr@PG`A3-h-Cak#RN z%gM<6O?k!9?Qu&nyF0V7mB* z{p`cyAb=`=^6ty&TvU`mxQ?~gcEu;m%rf{S-bOIW<$7$YMuTE~D33Z}22?1afdi85 za82Clf4N7>wJvCkDDKu0*j9kOuvO$GIn2yYV6uay?4@F&l$)>ovM<_D%iQL&az=A* zWV3bdHei4u+;q@V4upn#nXCe0@W=y&S!C@-p3E>~3(9QN9};=}W#1xLHCdVjQl25( z^jeOSJPR_&Y=(g8*dGfOa>Lu46G>*q9ALKxvc-fA}-FYk=36BVpOA)q$fy zu?gZww{*XCcU9_}omXGAjr7O8iK7OYwtrl%y`N}h+zrUF>O-qnOa@r5AC5+}@@D|% zr(|A;*@sdj-&j;a^(T1@HiJARjsm>oRch6PQUW6hq|3Q$6I_Pr{+RsyXsA$rV~v^y$)wg<;Zc!JgF4 z!K*!0H_FI4CQ%0D(`c%x|o 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 z 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¥Y&c$z`V3!J{aRAyC5O;EIj0YO2iK7^c2FfqMQtS`#9gG$62q|9QqN zsi%S-A%eH$en{2IE(Og)XR0ra-!NFVWeqKQbOW`=t}$$(q!%K$*Nv*YO}rZOl#!n6 z8;nJr^T|N7(KbxgU-gkS?E;bT<`I3zm+X!?Vo5Dm$9~;b40MJ+-{!){?dLkK||t51>!jnr5lP#ot?wo}Ahvn7Jo)Iqafvlr@YM8tBB zeYkehsia(3VCK4q?D%?Nh3mwP0qlEvhQs}fDGlm1EfRvTW(m7-CrrD%s(ZaJ7T`*_m&_&RvN4&pr>nDxVR?`!Q+3(@B!s-O*Ijh|iV&+{Le6 zXAfu1)9-n*t2o|9mT(mnOWDC^x7A2IV{bO3nJzxA-o(!PZ{37oroAUw6R+y`_X0DI z_xFFSlN(c$9tQe%4|g9GBKORiQ-gzmoq_0MzH-vW<7Sky!Dm6Qhi_EJ3AJ6j%Xs(1 z^0CQdufm!-QcPxJfSG`63wLg23)ym}K-Yi&04%1T(F%mV@F zju>59(}UOsUSv;%)#UP%u*_Iivs5uyzS`^#^DV;cm1Y#y!19b~wacCT9`UN-l^?PP z_Y_wW2I7)qj>Vd2AR(qhV8prEZI7WmfiF(TOFUBNU^i7gDeeC^( zg}eoyk}dICxx=^7X8a8+qXa*o-+x;oRM^QNyjNQ7K;~v~692k?=~eZcXO-V!QNDdX zrmH(7`>_xCmV7%=mz~Nnc5+rkkzL2PQH<&o!?R>{+gfONNFG9Zlk?4M9(^V_Ce}$E zDo&)1;^W4cw0IuV;u8%nTrlQs%eix^C$eU3bK-2YSB(9w^TxdlirbZSN{F4@;g zg!uUHhu?PU_bhxV`@J-EruN9<^${EC@h0z`nHU?1dP67gMk(0P=t54w{rqC?%6IAs)mbw8QJt^VYVeqn;+CCc#x zLW3Lj#VC;)@kC&J;<$B#JPTOJBi*|{lt|t2)>ysG} zRFc~f7-)RHtxTFLy8ZD%-7U5B$_K+T<fKbb_O9J-8)@;o<}cKL3IJ8GZ#UoE=>M@3nuDo*8_|4PG=HpGSFKDU4Nzil)S& zN2Sx4m*Fy+PeCy=^g4A7Pv+yv)vstK#ss|2%W>0n((#}D$SspmuO>}aFSI6LJvMhbT%~A11-6je94t@cstbGfcJmhAMBHiC4D}9ltQBdkpaSS|iW$zTvpHW#301Wi^sd{i=w}zc^Z!APe498CS8ZY{f;Kur z`|by^m|IiyK|C)gp4h-@gIogan#lFnP|~d&KPo6KiP$L+sCChMhpc@WsKL_CYT_^T z=1gk0^h6r*w!Ih6T2a)ifg*2WSpuUMCJ%!NLd|fnZ5kJBWCAo}zUEmZCj9US3UXC@ zU~%%cI@|V0Zx7f@o7w3gp?CFKJDc^Ua?(ADc z>4ML11kw*%mM^iw7|F;YGK?@`1^g0z2KBotErok}j>J~xsSwFx)sV%yxF^|J27Rfp zEKg^hTCRjxma#s$Lz5CNk=o7#Yvq6mv+1tq>aus=maaF9ame;NHGP}7^5v66@Uz37 zenY+9ueVg1@aJ!>p!_JtHIiBC$hG>aZ)F(QKdQ3T_f2SFf9R2wQ@1^bu1S6Dqx{OI!F1kSJ%Y znVJ$_dzsR~XNMCr=N=tzo&yta{2>~Gx$%@s^5ypj1Gpr1Q&e<2^WU-ZwpYCD{Hb=5 zr;Ml6bmVVFlgYT9fN#vw-^oU1yuV%{j?<8tx1!0S@3l+L)5D04pYER@@us*dVanDU z0gttWlnmBPAgnq4ow9(9EEVdx42h^>!ascR4^hbcZWXCl4jP757ULf0X=c>+~xlOGI=7(&!YTL~Qc; zE{&og<8L)@tg9{YNOZnFd$BA%5+&vY!ILARgPg!N@k{wr__qz;#Lp&hHX&c>Fg>_# z5;z!Rc+lrFJK5-g7tYs3s%)8+hNY)6#g~q9V~2R`>*qwSP!&r`W(IUY8&za;*W6>D z*c;})ao?KoFOztsJ+@RBG*L+OH#TPo=|mEpunaSjzU0z-hpSWWP0ms(v8LyoQ|66$ zUHs1}u!8Pd(e@ck^*ct>l$gpt`fqFh$dANs!Fhry36n`>v{k8AU)~~l{Qmecp!etj zwwx|(MXf?OQDpYv0OU}y-^6+@vJ`tHtOZritNf})aN{d8f1b#;e74&0Ld0&yTtsl|?;Q;dETFXR)reieB#T*K@BI>Tcd`p4jnjNpKuE#>cU$ zonC>}(Z9jWI`Av~Fc?{}+UkNOzroFgNxAW?hnc2@*LLavKA(!&c?yf^Jqm zRgzf|=)%skADcyicOQD*;ILWGE-8O*)#z8#%feN%+rRJ;8@duef1j;%yZ^aQHiLaO zp;5R)SRE=gb4c4z_2a=(zos!c8=cASM<(jh>uPybxN1w`OSkEjBu<)M4SM(b65MZR z?Sb8>b8_}8ZuMfgyEa!}Jeo9DAN$UNuB2S(;{=1u`nosX$QWL)8Z#L5q{g*3)HCqC zwZBXzYp855XNgewl|ZC5gj5E#r+6O$yq@7tZ>jBxUo*N0Z{g+`l`kP4&F$tJ08TT-PNL7e zS)(!>9$4KScyxPv&^)tCV)e7T5Rw;#U;fkJWuHw`O|pP;=6g$Zd>E2Wc}2cK`{$rpd;Kw)YF4*F zD6c^K5b0so?%DpLU*8*?_Bw7RfyyWm6uTCnY5f*&UVY--2kjO?oC%k)<2=r&l8$W43o z=&J9Q7wRJxSpDM_n_lMWU0nk=+31PqQLgX6D?&}mRANqUXRz70IQ-b3@K>uPeY0cC zR=~Mx8%}&DNN(yGw=o6`)u=#Jku+I$gV&qV^ZqpNsPYpG7gJ>PT4b;KL`wZcSN0Fd zCB#vtf;Bb)lma(>mHgvEYdJI%3!}=Vla)W(9d!n47P04qF=|DB6OaZI! zWBf=U{sW@O*Fz;lBdia8mDF2X5+AO4E(>X5-G04Ck=8GI4||usI3~t{)ces}EB8(_ za+56F-BoMe$UVGJxiM*Q_Y=W)DPX$Kn=Il=IUz=|PFL$AG?Y97@^I z3rO-oIVmviCef|SO>^^c*q$UelmZJ`^!**)`39A7yP7pBSfaG#ecCw)b>((m!8KKG zyY3U6GBC_Sd#u#hgkD~t8WwM-=SBhE_fAEek=e_%EtLk0kYg{Y$FkLQ-FtNHk!4cS z_M!Wl_GWX9UyvrlK=tzk9hc z)V-8*b^H)T9sI(9LuRDOcEk~q6Tm1;MYX9xV?HZQg9dJL+C)Cg&@_$0TRCRldhTb_7?UGxuj zxN9QPY98nd-zc$hN<&D2&L30}f*(V( zn&jB?h4@>kgJssG(w?ags4_{1AZk()W5mo#!rwgrWoq#2kjC){A?9H4cF}P>NmN(@ zxbyrrC8zZcHUdH)0~l!$Tx}>R>*{Ih7;(DTp1QdpX__wl?;jUt-!pb`8yCd?v2M}o z)G{m_Xd}kuvNi2qHXxMi8vfeP#Y0%iG_LXeHGH3fnw9RSFYIn8#TmQljH5_9YtOh( zE@oNXFD`>&CnQU|I4|A%{J{C3CGdEM)j%>jYJ27O?c2o z`_wiVoA!?}FZT!*)|H8fJkz39b9rZ;Rpt=*@%g>wX0xZ2iZ=(yChnF@mQHlkux$c$ zW>+TI%mVXEgH8FQe9LvB@W#~+_be?&75$2O$SwBtNz$%dosUE$S|Lf{m(X-G-1{xQ zRJz8I=7%kza_O(aW~&@Zt!dvK^sTsh@!q#-^1Dx__aM*p?a^jou{`)Gn@_x@vUOQ9mD;wlK)qVF4+UxcZPdI63LsAb% z5)xM2JS7`VO(l1$AKWb$#1=;MnARmqa)I&sHh)R*f)P2}IISt?eyt6OeM*9gT;r(r z!lNRe^w6R)Y5gSl67O)2>T2?|X<0Lc=n(^i`LLRxb##+XVyoC0)52c$b{2cKGLaXF zxrhb1b5f~XjJS`tR6N_Kmx5yXdAtc99DF{d5~P(4@faiZIdUlJqw)F9n_zFy7{`%4 zoDfdS4u`c2%r_UVt-A6MELHK-4l};;cB*BwH>#@`ZP70qnKt_(lDThtJ?_ewN#tOW zTsh4H!+U=Bz6N9M+s1`_&O#z@Yni$7bgXv2L<=qAyVR}Pl8Nv+YojJ9msm<&g= zv`vO#iis86Xdk9RXrbZ+tubuwo9@lv-B<>`h1MsquW|OSvL>kxg2cqmZ)YUbY>#Br z^)A!Mv#|PSM7vlA%udG_plyr_+(E&NP~sl8m>+b2npD(AP~i|n`gb!gk~hC*p7SIu zI!eLEyei8tZ8z1r<90orQrhiaS(SHf?Tt=X+!#fTJdRDv30I#6FSp4_-kV3O6WCl; zi(So%2q|KpVne4 z!fZqDm|?;&%%2xo7`=0?#;p@q@yVE<^<#BrhovJO#H!#r8+tcJW`cH!k?xAH#4p|HjWmBvZfx!J*8%4WpT&3Pu?T+ z{X<*%ovSik&v#7Q0~88?^=X+Wq;2YS=`R+p`?J!c5ANLA02i4_pQ~Qfn~vb}1-=tj zg3ZGu>`e5;zjqH{v_CkCv5=$9N|43S9Wpm!V;8&TD4T(^ZCY9Fg2L3MrIRa#U1vB9 zO$)#ykxHMF9V6QB*mbyP-Q4>5OB* z43<*zq!tou&oHjyGn)5qT|uqRT8K+DR1Kc6_sPf$ucMd&cHTR>Xf?_q_jbx+CYyy2 z=X0kHm}0;15ozFriUkg)C$VnOl9sR`3fNbr6G~`y=@kVmMN}hE>0bY!E@caqUV4Ww zBPRFYx=Z_du3I(^QT#g$nOIFE$nAOvcaoM*v}W6gxBU|s+x(*?93|vOIIQYfG5vTE zFv7d_2YJ_u#ookZ|Jd7`l5P@Wy2=8p4Zj}yYBruiE;g)0k(jH>uZ>1=D)w~@&8Mx& zS{nsA9}Q|1$9zqvW`3XbqBlSXNr8vwt#{ruazS_-*T(boYVhJ|AD>vSeipUm-Ogog zu#|jf)#PmAToBoSbU5ulStz@bb~H)Z)(#`&n_0oiZQs%@97Gst#MR4(O%*6SP<_kP zy6+O3VOVIKtS0B(>YS)Wk7?-06Chb3TVZgUB$Oby+%Zt|zTV3ahrP#5ar1XSC}rG# zU}1Xw<(}u)Z!`OSV1Shki_{iU(%nEMD3PBUz_-k`IQW3-k@<6Dd$j}ESC6g2Pq3I^ zTCI6=fltSVzyoB9?4c#IlFOeyl$HjL(Uz`1#<`y$7Dl!j!<4y$s4EgcQ&^r{uUw&m z)$%&KDObxn%q)Hu8t3@MylUXSnJG*{a&39LsC$QIh1Sh=_AZ4tneX+-%}D$*E~^sL zc1VcoF$>JC>%3ZFS5~C)P>Ec^4QXQ7VVag^ucaeMNxAaMJ` zG^)`Tv>B};8{mMmJa*&Wbr-5CDfKKV(O59(wdRQaldtGl{bYMLG+FcLjl9&VwmO1% zC52BA+q;?Q3#t&dcv!V2x+nSGKT_CQYsOnG|DzB4u(?UZu$HaejeXetnvK$car_ z;uDVM7ME>}=m_%b{a)pYVP0ao6VFWg$yAE&avk?v<~BK?XS#9ph&MiW{y-5&Na2!^ z7S7_et7%#U1()I=txR!@Qr2vD%b65J7hC;{_URwur#xW!w z%+AWpQto$8)o-m)`MjB0P0_mb;-vNZLvjeRwwP92|J!o>moa^Tc=8Fo--Ih|Xki-J ztmHI~W1PjhiMg!hTC7~wWA>kvCiE1GD{hb4%qlcvRmuOVlMPF~VKDp^mc(>eQ*ytp^6FH&ZYqPWs$aMm4M6iuF6~{NMhJv0AOERZ??zs z=cFEu>=z3~$3XMMm8lbhEk25H z3QP1CkFF@Ii5U^2KZLS!3kDa$VN{tXNSXR-2R#kE_4Mqp`!QjjY zoSI9I?iV%zPh>FtIEl(G*|Xsn$9DbvN>gZxLDe7s(V{6vyXR+z&)M!@349+`YuekS zSwkrTOS-byopwB-!-nCZXcIfUu)HkK)=^gn{vllv=^H4`G~-V0afTvq9Y}KVd*l`w z@()G~i@3N9sXXzp*$%2ZuSuxadMQ$5XjPdNl9G-(N0mcODL&_}vBmb@O6wjP+#cEa z*j`;K{`~`1t+>3GWe!{Qlazd> zgw10Fp~7-`IF$AWa@vI9(s2q)oZh-<4cuw+462g*QC3dVfRV zia=Y}`$YHkP}{uhrrue+HmyKu{WXy~T}k6(62=orQ+AHK5-Bzw1FvBk2tUG~ zwdLh6Fkz6*6|qWeIb@oL&-K&#-LMGGV>#~iP_Yv2m|{0FmFT_Q&Zk0rhqJ!#>yTV* zpFPK(r6-l1p;CH#cn2(4Iuzagj;JGn;3caushfm%YX?jhsYQ_sA1Pd7J>K@Wn)MZe z7~ij3{9>s_)ue**fTSpF@SV8&I-PZr*7lG^9M}^Tv{^B|b zLV{nyjf-=SJ_ZFB%YN6t9k5N;(+$jhQi}vo=}hC$lIiKx@9VtbupUjp=z)zGC?TVDq`qi=yZ4c@=-o9W8rqfkdFi{N)~sxUK4JPnK*iDnF25sM8aiX-(VQ1H*K2t{Z5_ zIgv~XP>UZw>K=Sj%I{|0k6@Xo+kX>lBe9HR3AX4Q?6rk*?FYHR+$-Tm%N-_j$;(v6 z+i$&`AMk7*%^bAngn?%c-`T53Jh0|i`hYPe1*!1o=q314=TwmN$aP0EwnaRymab#S zznS{pUjC$GcoWq`++gJkGFlZ#Ou`+)%a1H&*;I0D{L6dvV>uC(h+Li(?K9l6|9-#y zk#APAaCj0eP5EN=RjC2LM5Y@cHDP!{+}b)XdjvOfjc%MqazM6Y=e5o{g2yty1)?7#p4C*PIyr?Ae!9PkxsBRF#^IR9WZ_`0_o}PPw@X0glX{tZb(qZ-@vqRc9i|> z5@#rQlo|Y^yugm3j0j|2Mx?%UCJVfT(=2pv+BxWnz)LK&5D@4uWa%6na*c9 ztzsAiN`a*24p<;ViGdAyMATm#zbiNe=P(Hcjv-L`Qwe`psAyHTS`!Ze0j7um7IwZu zwrOxc>faSQEh-lo1VYINnvtOl7lAG*b#wcGnjr->LvaD6i!Yt- zpjP027Zv&DJrIU+rpVt~K|z-#$p*C|qy10xlnF%Oay8=R|EV+UB`5_1wv7m2zeObf z_4GGj%NL7?KoF1;1iV;&J2DbbaOtdizcsiFN6REf0?<&Qmw(s%)M8v{DQ&u7&A)+A zR2OPabp?Nz2y4>Y zD_~wX8~ClEU?%Y0&`%$v(Kz!{-qo|`Ans2dXU|l)qtgK2osn^Hezwn_Rq$B_s4<`h zkf3#B0LKlP6iC5{Q_ikAP5)4qhvZGeZqyRKy;bUQpZKeXg^^b@jw^_)>A>rfLuJV)S)Y< zTmPi zXEI-q_O$(Z5rQSZTSkMIe3cfCSe0>TbP043RVBTIe1LsHc0O=)iLls4e751Uf)V3jR2WLkGHKQJH{p zQm|<^B%=dgNuf6&VQJ`qh8jo?B?HNyZ=(ZG)KOW06?keW10CQbhdMy|veALc_o#$G zIXP4Ya{2CQiW}|Ot_;G0JkVXOzIAh zLXtVdLHbJ8A5?sxhY>8FHTRTs6B1Z>mZyaYEbRW{GfpmMP$A~e z&Qjd0P;9{53k02@hf)H$)KE-dnHfq3$$x#uaVpN;5U_fu+I40Di`^Rd^AH2rNCMSy z`fv^YP;%xEwmt-L@eeBsu%C-Y4oq@@C57UHMkB32`{fNkjbOZco*U;S2y9t_hWk?! zA#5Nz@g>ZkT0NBu) zc2GI~;%B5&<9vdXA|y{qJaAJn{FIjB7!)U&12nst>>t$A`ba@KwJ`x&PSBT<^)UfS zBWyAtpA$6u^v@I{fXxM_Bn?iVF#>*EP)(#2W1y7}N)9-2fkWdu7gQC=^T9ca6*oAN zXy@a>(HH?)GaN#=;dud49@>fb#1{VuZ5&)acI1i|-q_{IK ze_31{IQ>lTs=VMs&xF&5>_7QSQs8w@XQYZsT+W?mSTw63$eQ;93b;1l@&NbXDRdNkU`i0|?O+)AfZA(Z5gUsw z122T2E|5L~e1JWoPG>0=Mm%bOP8x(Fa6cnSvEg9=;nJW) z4(CX8z!97)&Et%VTNa8B*vf!hn-@quGEg;0Ufdrp69_@VS!!7h4;QGA1!3@#&Pa<2 zVD-u5KvG=FDTxH|k^@0Uex>ko@X&xJ6+C?43!KaD&KVa-M+H>m!MWmt^fOY4JUCp6 zcc3u}mJby?2w_D53q3goYFW$3s9{mab z-_g%$}x%>=ndCpX)BiEnM zn()J7=L?8d|7!uKVK*`UVWd;YKQTA|30Y_VcSsd1uv`3P@KdadVK>iHZNY^jrs~3GX5Q1lvPEV7$;$N^boH^r1|05j9IrLMzU5vJH z9{up%U(iouFZ>C;a1K=-u8NBX#?Pb1V-Y%;1={hs5C&m8k8Kny^a7uM_yV^T^`)K3bbND8TkKq zf9v_uI9doU>~;ka;a@XA7o!1&H}P;t&NE-{B0x}6mX+7gm4{=q0Qu_RNS-`O0K8O( VGULo5%pxqCBOu6)6M*ZB{|_S_h`Rs) delta 241480 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