(function() { // Copyright 2017-2018 Xuan Sang LE // AnTOS Web desktop is is licensed under the GNU General Public // License v3.0, see the LICENCE file for more information // This program is free software: you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation, either version 3 of // the License, or (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // You should have received a copy of the GNU General Public License //along with this program. If not, see https://www.gnu.org/licenses/. var GraphEditor; GraphEditor = class GraphEditor extends this.OS.GUI.BaseApplication { constructor(args) { super("GraphEditor", args); } main() { var me; me = this; //mermaid.initialize { startOnLoad: false } mermaid.initialize({ theme: 'forest' }); this.currfile = this.args && this.args.length > 0 ? this.args[0].asFileHandler() : "Untitled".asFileHandler(); this.currfile.dirty = false; this.datarea = this.find("datarea"); this.preview = this.find("preview"); this.btctn = this.find("btn-container"); this.editor = ace.edit(this.datarea); this.editor.setOptions({ enableBasicAutocompletion: true, enableLiveAutocompletion: true, fontSize: "10pt" }); //@.editor.completers.push { getCompletions: ( editor, session, pos, prefix, callback ) -> } this.editor.getSession().setUseWrapMode(true); this.editor.session.setMode("ace/mode/text"); this.editor.setTheme("ace/theme/monokai"); this.editor.on("input", function() { if (me.editormux) { me.editormux = false; return false; } if (!me.currfile.dirty) { return me.currfile.dirty = true; } }); if (!me.currfile.basename) { me.editormux = true; me.editor.setValue(GraphEditor.dummymermaid); me.renderSVG(false); } this.editor.container.addEventListener("keydown", function(e) { if (e.keyCode === 13) { return me.renderSVG(true); } }, true); this.bindKey("CTRL-R", function() { return me.renderSVG(false); }); this.bindKey("ALT-G", function() { return me.export("SVG"); }); this.bindKey("ALT-P", function() { return me.export("PNG"); }); this.bindKey("ALT-N", function() { return me.actionFile(`${me.name}-New`); }); this.bindKey("ALT-O", function() { return me.actionFile(`${me.name}-Open`); }); this.bindKey("CTRL-S", function() { return me.actionFile(`${me.name}-Save`); }); this.bindKey("ALT-W", function() { return me.actionFile(`${me.name}-Saveas`); }); this.bindKey("CTRL-M", function() { return me.svgToCanvas(function() {}); }); this.on("hboxchange", function() { me.editor.resize(); return me.calibrate(); }); this.on("focus", function() { return me.editor.focus(); }); (this.find("btn-zoomin")).set("onbtclick", function(e) { if (me.pan) { return me.pan.zoomIn(); } }); (this.find("btn-zoomout")).set("onbtclick", function(e) { if (me.pan) { return me.pan.zoomOut(); } }); (this.find("btn-reset")).set("onbtclick", function(e) { if (me.pan) { return me.pan.resetZoom(); } }); return this.open(this.currfile); } menu() { var me, menu; me = this; menu = [ { text: "__(File)", child: [ { text: "__(New)", dataid: `${this.name}-New`, shortcut: "A-N" }, { text: "__(Open)", dataid: `${this.name}-Open`, shortcut: "A-O" }, { text: "__(Save)", dataid: `${this.name}-Save`, shortcut: "C-S" }, { text: "__(Save as)", dataid: `${this.name}-Saveas`, shortcut: "A-W" }, { text: "__(Render)", dataid: `${this.name}-Render`, shortcut: "C-R" }, { text: "__(Export as)", child: [ { text: "SVG", shortcut: "A-G" }, { text: "PNG", shortcut: "A-P" } ], onmenuselect: function(e) { return me.export(e.item.data.text); } } ], onmenuselect: function(e) { return me.actionFile(e.item.data.dataid); } } ]; return menu; } open(file) { var me; if (file.path === "Untitled") { return; } me = this; file.dirty = false; return file.read(function(d) { me.currfile = file; me.editormux = true; me.currfile.dirty = false; me.editor.setValue(d); me.scheme.set("apptitle", `${me.currfile.basename}`); return me.renderSVG(false); }); } save(file) { var me; me = this; return file.write("text/plain", function(d) { if (d.error) { return me.error(__("Error saving file {0}", file.basename)); } file.dirty = false; file.text = file.basename; return me.scheme.set("apptitle", `${me.currfile.basename}`); }); } actionFile(e) { var me, saveas; me = this; saveas = function() { return me.openDialog("FileDiaLog", function(d, n) { me.currfile.setPath(`${d}/${n}`); return me.save(me.currfile); }, __("Save as"), { file: me.currfile }); }; switch (e) { case `${this.name}-Open`: return this.openDialog("FileDiaLog", function(d, f) { return me.open(`${d}/${f}`.asFileHandler()); }, __("Open file")); case `${this.name}-Save`: this.currfile.cache = this.editor.getValue(); if (this.currfile.basename) { return this.save(this.currfile); } return saveas(); case `${this.name}-Saveas`: this.currfile.cache = this.editor.getValue(); return saveas(); case `${this.name}-Render`: return me.renderSVG(false); case `${this.name}-New`: this.currfile = "Untitled".asFileHandler(); this.currfile.cache = ""; this.currfile.dirty = false; this.editormux = true; return this.editor.setValue(""); } } export(t) { var me; me = this; return me.openDialog("FileDiaLog", function(d, n) { var e, fp; fp = `${d}/${n}`.asFileHandler(); try { switch (t) { case "SVG": fp.cache = me.svgtext(); return fp.write("text/plain", function(r) { if (r.error) { return me.error(__("Cannot export to {0}: {1}", t, r.error)); } return me.notify(__("File exported")); }); case "PNG": // toDataURL("image/png") return me.svgToCanvas(function(canvas) { var e; try { fp.cache = canvas.toDataURL("image/png"); return fp.write("base64", function(r) { if (r.error) { return me.error(__("Cannot export to {0}: {1}", t, r.error)); } return me.notify(__("File exported")); }); } catch (error) { e = error; return me.error(__("Cannot export to PNG in this browser: {0}", e.message)); } }); } } catch (error) { e = error; return me.error(__("Cannot export: {0}", e.message)); } }, __("Export as"), { file: me.currfile }); } renderSVG(silent) { var e, id, me, text; me = this; id = Math.floor(Math.random() * 100000) + 1; //if silent // mermaid.parseError = (e, h) -> //else // mermaid.parseError = (e, h) -> // me.error e text = this.editor.getValue(); try { mermaid.parse(text); } catch (error) { e = error; if (!silent) { me.error(__("Syntax error: {0}", e.str)); } return; } return mermaid.render(`c${id}`, text, function(text, f) { var svg; me.preview.innerHTML = text; $(me.preview).append(me.btctn); me.calibrate(); svg = $(me.preview).children("svg")[0]; $(svg).attr("style", ""); return me.pan = svgPanZoom(svg, { zoomEnabled: true, controlIconsEnabled: false, fit: true, center: true, minZoom: 0.1 }); //rd $($.parseHTML text). }, me.preview); } svgtext() { var serializer, svg; svg = $(this.preview).children("svg")[0]; $("g.label", svg).each(function(i) { return $(this).css("font-family", "Ubuntu").css("font-size", "13px"); }); $("text", svg).each(function(j) { return $(this).css("font-family", "Ubuntu").css("font-size", "13px"); }); serializer = new XMLSerializer(); return serializer.serializeToString(svg); } svgToCanvas(f) { var DOMURL, img, me, svgBlob, svgStr, url; me = this; img = new Image(); svgStr = this.svgtext(); DOMURL = window.URL || window.webkitURL || window; svgBlob = new Blob([svgStr], { type: 'image/svg+xml;charset=utf-8' }); url = DOMURL.createObjectURL(svgBlob); img.onload = function() { var canvas; canvas = me.find("offscreen"); canvas.width = img.width; canvas.height = img.height; canvas.getContext("2d").drawImage(img, 0, 0, img.width, img.height); return f(canvas); }; return img.src = url; } calibrate() { var prs, svg; svg = ($(this.preview)).children("svg")[0]; if (svg) { prs = [$(this.preview).width(), $(this.preview).height()]; $(svg).attr("width", prs[0] + "px"); return $(svg).attr("height", prs[1] + "px"); } } cleanup(evt) { var me; if (!this.currfile) { return; } if (!this.currfile.dirty) { return; } me = this; evt.preventDefault(); return this.openDialog("YesNoDialog", function(d) { if (d) { me.currfile.dirty = false; return me.quit(); } }, __("Quit"), { text: __("Quit without saving ?") }); } }; GraphEditor.dummymermaid = "graph TD;\n A-->B;\n A-->C;\n B-->D;\n C-->D;"; GraphEditor.dependencies = ["ace/ace"]; this.OS.register("GraphEditor", GraphEditor); }).call(this); // svg-pan-zoom v3.5.2 // https://github.com/ariutta/svg-pan-zoom (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0; i--) { if (this.eventListeners.hasOwnProperty(haltEventListeners[i])) { delete this.eventListeners[haltEventListeners[i]] } } } } // Bind eventListeners for (var event in this.eventListeners) { // Attach event to eventsListenerElement or SVG if not available (this.options.eventsListenerElement || this.svg) .addEventListener(event, this.eventListeners[event], false) } // Zoom using mouse wheel if (this.options.mouseWheelZoomEnabled) { this.options.mouseWheelZoomEnabled = false // set to false as enable will set it back to true this.enableMouseWheelZoom() } } /** * Enable ability to zoom using mouse wheel */ SvgPanZoom.prototype.enableMouseWheelZoom = function() { if (!this.options.mouseWheelZoomEnabled) { var that = this // Mouse wheel listener this.wheelListener = function(evt) { return that.handleMouseWheel(evt); } // Bind wheelListener Wheel.on(this.options.eventsListenerElement || this.svg, this.wheelListener, false) this.options.mouseWheelZoomEnabled = true } } /** * Disable ability to zoom using mouse wheel */ SvgPanZoom.prototype.disableMouseWheelZoom = function() { if (this.options.mouseWheelZoomEnabled) { Wheel.off(this.options.eventsListenerElement || this.svg, this.wheelListener, false) this.options.mouseWheelZoomEnabled = false } } /** * Handle mouse wheel event * * @param {Event} evt */ SvgPanZoom.prototype.handleMouseWheel = function(evt) { if (!this.options.zoomEnabled || this.state !== 'none') { return; } if (this.options.preventMouseEventsDefault){ if (evt.preventDefault) { evt.preventDefault(); } else { evt.returnValue = false; } } // Default delta in case that deltaY is not available var delta = evt.deltaY || 1 , timeDelta = Date.now() - this.lastMouseWheelEventTime , divider = 3 + Math.max(0, 30 - timeDelta) // Update cache this.lastMouseWheelEventTime = Date.now() // Make empirical adjustments for browsers that give deltaY in pixels (deltaMode=0) if ('deltaMode' in evt && evt.deltaMode === 0 && evt.wheelDelta) { delta = evt.deltaY === 0 ? 0 : Math.abs(evt.wheelDelta) / evt.deltaY } delta = -0.3 < delta && delta < 0.3 ? delta : (delta > 0 ? 1 : -1) * Math.log(Math.abs(delta) + 10) / divider var inversedScreenCTM = this.svg.getScreenCTM().inverse() , relativeMousePoint = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(inversedScreenCTM) , zoom = Math.pow(1 + this.options.zoomScaleSensitivity, (-1) * delta); // multiplying by neg. 1 so as to make zoom in/out behavior match Google maps behavior this.zoomAtPoint(zoom, relativeMousePoint) } /** * Zoom in at a SVG point * * @param {SVGPoint} point * @param {Float} zoomScale Number representing how much to zoom * @param {Boolean} zoomAbsolute Default false. If true, zoomScale is treated as an absolute value. * Otherwise, zoomScale is treated as a multiplied (e.g. 1.10 would zoom in 10%) */ SvgPanZoom.prototype.zoomAtPoint = function(zoomScale, point, zoomAbsolute) { var originalState = this.viewport.getOriginalState() if (!zoomAbsolute) { // Fit zoomScale in set bounds if (this.getZoom() * zoomScale < this.options.minZoom * originalState.zoom) { zoomScale = (this.options.minZoom * originalState.zoom) / this.getZoom() } else if (this.getZoom() * zoomScale > this.options.maxZoom * originalState.zoom) { zoomScale = (this.options.maxZoom * originalState.zoom) / this.getZoom() } } else { // Fit zoomScale in set bounds zoomScale = Math.max(this.options.minZoom * originalState.zoom, Math.min(this.options.maxZoom * originalState.zoom, zoomScale)) // Find relative scale to achieve desired scale zoomScale = zoomScale/this.getZoom() } var oldCTM = this.viewport.getCTM() , relativePoint = point.matrixTransform(oldCTM.inverse()) , modifier = this.svg.createSVGMatrix().translate(relativePoint.x, relativePoint.y).scale(zoomScale).translate(-relativePoint.x, -relativePoint.y) , newCTM = oldCTM.multiply(modifier) if (newCTM.a !== oldCTM.a) { this.viewport.setCTM(newCTM) } } /** * Zoom at center point * * @param {Float} scale * @param {Boolean} absolute Marks zoom scale as relative or absolute */ SvgPanZoom.prototype.zoom = function(scale, absolute) { this.zoomAtPoint(scale, SvgUtils.getSvgCenterPoint(this.svg, this.width, this.height), absolute) } /** * Zoom used by public instance * * @param {Float} scale * @param {Boolean} absolute Marks zoom scale as relative or absolute */ SvgPanZoom.prototype.publicZoom = function(scale, absolute) { if (absolute) { scale = this.computeFromRelativeZoom(scale) } this.zoom(scale, absolute) } /** * Zoom at point used by public instance * * @param {Float} scale * @param {SVGPoint|Object} point An object that has x and y attributes * @param {Boolean} absolute Marks zoom scale as relative or absolute */ SvgPanZoom.prototype.publicZoomAtPoint = function(scale, point, absolute) { if (absolute) { // Transform zoom into a relative value scale = this.computeFromRelativeZoom(scale) } // If not a SVGPoint but has x and y then create a SVGPoint if (Utils.getType(point) !== 'SVGPoint') { if('x' in point && 'y' in point) { point = SvgUtils.createSVGPoint(this.svg, point.x, point.y) } else { throw new Error('Given point is invalid') } } this.zoomAtPoint(scale, point, absolute) } /** * Get zoom scale * * @return {Float} zoom scale */ SvgPanZoom.prototype.getZoom = function() { return this.viewport.getZoom() } /** * Get zoom scale for public usage * * @return {Float} zoom scale */ SvgPanZoom.prototype.getRelativeZoom = function() { return this.viewport.getRelativeZoom() } /** * Compute actual zoom from public zoom * * @param {Float} zoom * @return {Float} zoom scale */ SvgPanZoom.prototype.computeFromRelativeZoom = function(zoom) { return zoom * this.viewport.getOriginalState().zoom } /** * Set zoom to initial state */ SvgPanZoom.prototype.resetZoom = function() { var originalState = this.viewport.getOriginalState() this.zoom(originalState.zoom, true); } /** * Set pan to initial state */ SvgPanZoom.prototype.resetPan = function() { this.pan(this.viewport.getOriginalState()); } /** * Set pan and zoom to initial state */ SvgPanZoom.prototype.reset = function() { this.resetZoom() this.resetPan() } /** * Handle double click event * See handleMouseDown() for alternate detection method * * @param {Event} evt */ SvgPanZoom.prototype.handleDblClick = function(evt) { if (this.options.preventMouseEventsDefault) { if (evt.preventDefault) { evt.preventDefault() } else { evt.returnValue = false } } // Check if target was a control button if (this.options.controlIconsEnabled) { var targetClass = evt.target.getAttribute('class') || '' if (targetClass.indexOf('svg-pan-zoom-control') > -1) { return false } } var zoomFactor if (evt.shiftKey) { zoomFactor = 1/((1 + this.options.zoomScaleSensitivity) * 2) // zoom out when shift key pressed } else { zoomFactor = (1 + this.options.zoomScaleSensitivity) * 2 } var point = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.svg.getScreenCTM().inverse()) this.zoomAtPoint(zoomFactor, point) } /** * Handle click event * * @param {Event} evt */ SvgPanZoom.prototype.handleMouseDown = function(evt, prevEvt) { if (this.options.preventMouseEventsDefault) { if (evt.preventDefault) { evt.preventDefault() } else { evt.returnValue = false } } Utils.mouseAndTouchNormalize(evt, this.svg) // Double click detection; more consistent than ondblclick if (this.options.dblClickZoomEnabled && Utils.isDblClick(evt, prevEvt)){ this.handleDblClick(evt) } else { // Pan mode this.state = 'pan' this.firstEventCTM = this.viewport.getCTM() this.stateOrigin = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.firstEventCTM.inverse()) } } /** * Handle mouse move event * * @param {Event} evt */ SvgPanZoom.prototype.handleMouseMove = function(evt) { if (this.options.preventMouseEventsDefault) { if (evt.preventDefault) { evt.preventDefault() } else { evt.returnValue = false } } if (this.state === 'pan' && this.options.panEnabled) { // Pan mode var point = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.firstEventCTM.inverse()) , viewportCTM = this.firstEventCTM.translate(point.x - this.stateOrigin.x, point.y - this.stateOrigin.y) this.viewport.setCTM(viewportCTM) } } /** * Handle mouse button release event * * @param {Event} evt */ SvgPanZoom.prototype.handleMouseUp = function(evt) { if (this.options.preventMouseEventsDefault) { if (evt.preventDefault) { evt.preventDefault() } else { evt.returnValue = false } } if (this.state === 'pan') { // Quit pan mode this.state = 'none' } } /** * Adjust viewport size (only) so it will fit in SVG * Does not center image */ SvgPanZoom.prototype.fit = function() { var viewBox = this.viewport.getViewBox() , newScale = Math.min(this.width/viewBox.width, this.height/viewBox.height) this.zoom(newScale, true) } /** * Adjust viewport size (only) so it will contain the SVG * Does not center image */ SvgPanZoom.prototype.contain = function() { var viewBox = this.viewport.getViewBox() , newScale = Math.max(this.width/viewBox.width, this.height/viewBox.height) this.zoom(newScale, true) } /** * Adjust viewport pan (only) so it will be centered in SVG * Does not zoom/fit/contain image */ SvgPanZoom.prototype.center = function() { var viewBox = this.viewport.getViewBox() , offsetX = (this.width - (viewBox.width + viewBox.x * 2) * this.getZoom()) * 0.5 , offsetY = (this.height - (viewBox.height + viewBox.y * 2) * this.getZoom()) * 0.5 this.getPublicInstance().pan({x: offsetX, y: offsetY}) } /** * Update content cached BorderBox * Use when viewport contents change */ SvgPanZoom.prototype.updateBBox = function() { this.viewport.simpleViewBoxCache() } /** * Pan to a rendered position * * @param {Object} point {x: 0, y: 0} */ SvgPanZoom.prototype.pan = function(point) { var viewportCTM = this.viewport.getCTM() viewportCTM.e = point.x viewportCTM.f = point.y this.viewport.setCTM(viewportCTM) } /** * Relatively pan the graph by a specified rendered position vector * * @param {Object} point {x: 0, y: 0} */ SvgPanZoom.prototype.panBy = function(point) { var viewportCTM = this.viewport.getCTM() viewportCTM.e += point.x viewportCTM.f += point.y this.viewport.setCTM(viewportCTM) } /** * Get pan vector * * @return {Object} {x: 0, y: 0} */ SvgPanZoom.prototype.getPan = function() { var state = this.viewport.getState() return {x: state.x, y: state.y} } /** * Recalculates cached svg dimensions and controls position */ SvgPanZoom.prototype.resize = function() { // Get dimensions var boundingClientRectNormalized = SvgUtils.getBoundingClientRectNormalized(this.svg) this.width = boundingClientRectNormalized.width this.height = boundingClientRectNormalized.height // Recalculate original state var viewport = this.viewport viewport.options.width = this.width viewport.options.height = this.height viewport.processCTM() // Reposition control icons by re-enabling them if (this.options.controlIconsEnabled) { this.getPublicInstance().disableControlIcons() this.getPublicInstance().enableControlIcons() } } /** * Unbind mouse events, free callbacks and destroy public instance */ SvgPanZoom.prototype.destroy = function() { var that = this // Free callbacks this.beforeZoom = null this.onZoom = null this.beforePan = null this.onPan = null this.onUpdatedCTM = null // Destroy custom event handlers if (this.options.customEventsHandler != null) { // jshint ignore:line this.options.customEventsHandler.destroy({ svgElement: this.svg , eventsListenerElement: this.options.eventsListenerElement , instance: this.getPublicInstance() }) } // Unbind eventListeners for (var event in this.eventListeners) { (this.options.eventsListenerElement || this.svg) .removeEventListener(event, this.eventListeners[event], false) } // Unbind wheelListener this.disableMouseWheelZoom() // Remove control icons this.getPublicInstance().disableControlIcons() // Reset zoom and pan this.reset() // Remove instance from instancesStore instancesStore = instancesStore.filter(function(instance){ return instance.svg !== that.svg }) // Delete options and its contents delete this.options // Delete viewport to make public shadow viewport functions uncallable delete this.viewport // Destroy public instance and rewrite getPublicInstance delete this.publicInstance delete this.pi this.getPublicInstance = function(){ return null } } /** * Returns a public instance object * * @return {Object} Public instance object */ SvgPanZoom.prototype.getPublicInstance = function() { var that = this // Create cache if (!this.publicInstance) { this.publicInstance = this.pi = { // Pan enablePan: function() {that.options.panEnabled = true; return that.pi} , disablePan: function() {that.options.panEnabled = false; return that.pi} , isPanEnabled: function() {return !!that.options.panEnabled} , pan: function(point) {that.pan(point); return that.pi} , panBy: function(point) {that.panBy(point); return that.pi} , getPan: function() {return that.getPan()} // Pan event , setBeforePan: function(fn) {that.options.beforePan = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} , setOnPan: function(fn) {that.options.onPan = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} // Zoom and Control Icons , enableZoom: function() {that.options.zoomEnabled = true; return that.pi} , disableZoom: function() {that.options.zoomEnabled = false; return that.pi} , isZoomEnabled: function() {return !!that.options.zoomEnabled} , enableControlIcons: function() { if (!that.options.controlIconsEnabled) { that.options.controlIconsEnabled = true ControlIcons.enable(that) } return that.pi } , disableControlIcons: function() { if (that.options.controlIconsEnabled) { that.options.controlIconsEnabled = false; ControlIcons.disable(that) } return that.pi } , isControlIconsEnabled: function() {return !!that.options.controlIconsEnabled} // Double click zoom , enableDblClickZoom: function() {that.options.dblClickZoomEnabled = true; return that.pi} , disableDblClickZoom: function() {that.options.dblClickZoomEnabled = false; return that.pi} , isDblClickZoomEnabled: function() {return !!that.options.dblClickZoomEnabled} // Mouse wheel zoom , enableMouseWheelZoom: function() {that.enableMouseWheelZoom(); return that.pi} , disableMouseWheelZoom: function() {that.disableMouseWheelZoom(); return that.pi} , isMouseWheelZoomEnabled: function() {return !!that.options.mouseWheelZoomEnabled} // Zoom scale and bounds , setZoomScaleSensitivity: function(scale) {that.options.zoomScaleSensitivity = scale; return that.pi} , setMinZoom: function(zoom) {that.options.minZoom = zoom; return that.pi} , setMaxZoom: function(zoom) {that.options.maxZoom = zoom; return that.pi} // Zoom event , setBeforeZoom: function(fn) {that.options.beforeZoom = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} , setOnZoom: function(fn) {that.options.onZoom = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} // Zooming , zoom: function(scale) {that.publicZoom(scale, true); return that.pi} , zoomBy: function(scale) {that.publicZoom(scale, false); return that.pi} , zoomAtPoint: function(scale, point) {that.publicZoomAtPoint(scale, point, true); return that.pi} , zoomAtPointBy: function(scale, point) {that.publicZoomAtPoint(scale, point, false); return that.pi} , zoomIn: function() {this.zoomBy(1 + that.options.zoomScaleSensitivity); return that.pi} , zoomOut: function() {this.zoomBy(1 / (1 + that.options.zoomScaleSensitivity)); return that.pi} , getZoom: function() {return that.getRelativeZoom()} // CTM update , setOnUpdatedCTM: function(fn) {that.options.onUpdatedCTM = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} // Reset , resetZoom: function() {that.resetZoom(); return that.pi} , resetPan: function() {that.resetPan(); return that.pi} , reset: function() {that.reset(); return that.pi} // Fit, Contain and Center , fit: function() {that.fit(); return that.pi} , contain: function() {that.contain(); return that.pi} , center: function() {that.center(); return that.pi} // Size and Resize , updateBBox: function() {that.updateBBox(); return that.pi} , resize: function() {that.resize(); return that.pi} , getSizes: function() { return { width: that.width , height: that.height , realZoom: that.getZoom() , viewBox: that.viewport.getViewBox() } } // Destroy , destroy: function() {that.destroy(); return that.pi} } } return this.publicInstance } /** * Stores pairs of instances of SvgPanZoom and SVG * Each pair is represented by an object {svg: SVGSVGElement, instance: SvgPanZoom} * * @type {Array} */ var instancesStore = [] var svgPanZoom = function(elementOrSelector, options){ var svg = Utils.getSvg(elementOrSelector) if (svg === null) { return null } else { // Look for existent instance for(var i = instancesStore.length - 1; i >= 0; i--) { if (instancesStore[i].svg === svg) { return instancesStore[i].instance.getPublicInstance() } } // If instance not found - create one instancesStore.push({ svg: svg , instance: new SvgPanZoom(svg, options) }) // Return just pushed instance return instancesStore[instancesStore.length - 1].instance.getPublicInstance() } } module.exports = svgPanZoom; },{"./control-icons":2,"./shadow-viewport":3,"./svg-utilities":5,"./uniwheel":6,"./utilities":7}],5:[function(require,module,exports){ var Utils = require('./utilities') , _browser = 'unknown' ; // http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser if (/*@cc_on!@*/false || !!document.documentMode) { // internet explorer _browser = 'ie'; } module.exports = { svgNS: 'http://www.w3.org/2000/svg' , xmlNS: 'http://www.w3.org/XML/1998/namespace' , xmlnsNS: 'http://www.w3.org/2000/xmlns/' , xlinkNS: 'http://www.w3.org/1999/xlink' , evNS: 'http://www.w3.org/2001/xml-events' /** * Get svg dimensions: width and height * * @param {SVGSVGElement} svg * @return {Object} {width: 0, height: 0} */ , getBoundingClientRectNormalized: function(svg) { if (svg.clientWidth && svg.clientHeight) { return {width: svg.clientWidth, height: svg.clientHeight} } else if (!!svg.getBoundingClientRect()) { return svg.getBoundingClientRect(); } else { throw new Error('Cannot get BoundingClientRect for SVG.'); } } /** * Gets g element with class of "viewport" or creates it if it doesn't exist * * @param {SVGSVGElement} svg * @return {SVGElement} g (group) element */ , getOrCreateViewport: function(svg, selector) { var viewport = null if (Utils.isElement(selector)) { viewport = selector } else { viewport = svg.querySelector(selector) } // Check if there is just one main group in SVG if (!viewport) { var childNodes = Array.prototype.slice.call(svg.childNodes || svg.children).filter(function(el){ return el.nodeName !== 'defs' && el.nodeName !== '#text' }) // Node name should be SVGGElement and should have no transform attribute // Groups with transform are not used as viewport because it involves parsing of all transform possibilities if (childNodes.length === 1 && childNodes[0].nodeName === 'g' && childNodes[0].getAttribute('transform') === null) { viewport = childNodes[0] } } // If no favorable group element exists then create one if (!viewport) { var viewportId = 'viewport-' + new Date().toISOString().replace(/\D/g, ''); viewport = document.createElementNS(this.svgNS, 'g'); viewport.setAttribute('id', viewportId); // Internet Explorer (all versions?) can't use childNodes, but other browsers prefer (require?) using childNodes var svgChildren = svg.childNodes || svg.children; if (!!svgChildren && svgChildren.length > 0) { for (var i = svgChildren.length; i > 0; i--) { // Move everything into viewport except defs if (svgChildren[svgChildren.length - i].nodeName !== 'defs') { viewport.appendChild(svgChildren[svgChildren.length - i]); } } } svg.appendChild(viewport); } // Parse class names var classNames = []; if (viewport.getAttribute('class')) { classNames = viewport.getAttribute('class').split(' ') } // Set class (if not set already) if (!~classNames.indexOf('svg-pan-zoom_viewport')) { classNames.push('svg-pan-zoom_viewport') viewport.setAttribute('class', classNames.join(' ')) } return viewport } /** * Set SVG attributes * * @param {SVGSVGElement} svg */ , setupSvgAttributes: function(svg) { // Setting default attributes svg.setAttribute('xmlns', this.svgNS); svg.setAttributeNS(this.xmlnsNS, 'xmlns:xlink', this.xlinkNS); svg.setAttributeNS(this.xmlnsNS, 'xmlns:ev', this.evNS); // Needed for Internet Explorer, otherwise the viewport overflows if (svg.parentNode !== null) { var style = svg.getAttribute('style') || ''; if (style.toLowerCase().indexOf('overflow') === -1) { svg.setAttribute('style', 'overflow: hidden; ' + style); } } } /** * How long Internet Explorer takes to finish updating its display (ms). */ , internetExplorerRedisplayInterval: 300 /** * Forces the browser to redisplay all SVG elements that rely on an * element defined in a 'defs' section. It works globally, for every * available defs element on the page. * The throttling is intentionally global. * * This is only needed for IE. It is as a hack to make markers (and 'use' elements?) * visible after pan/zoom when there are multiple SVGs on the page. * See bug report: https://connect.microsoft.com/IE/feedback/details/781964/ * also see svg-pan-zoom issue: https://github.com/ariutta/svg-pan-zoom/issues/62 */ , refreshDefsGlobal: Utils.throttle(function() { var allDefs = document.querySelectorAll('defs'); var allDefsCount = allDefs.length; for (var i = 0; i < allDefsCount; i++) { var thisDefs = allDefs[i]; thisDefs.parentNode.insertBefore(thisDefs, thisDefs); } }, this.internetExplorerRedisplayInterval) /** * Sets the current transform matrix of an element * * @param {SVGElement} element * @param {SVGMatrix} matrix CTM * @param {SVGElement} defs */ , setCTM: function(element, matrix, defs) { var that = this , s = 'matrix(' + matrix.a + ',' + matrix.b + ',' + matrix.c + ',' + matrix.d + ',' + matrix.e + ',' + matrix.f + ')'; element.setAttributeNS(null, 'transform', s); if ('transform' in element.style) { element.style.transform = s; } else if ('-ms-transform' in element.style) { element.style['-ms-transform'] = s; } else if ('-webkit-transform' in element.style) { element.style['-webkit-transform'] = s; } // IE has a bug that makes markers disappear on zoom (when the matrix "a" and/or "d" elements change) // see http://stackoverflow.com/questions/17654578/svg-marker-does-not-work-in-ie9-10 // and http://srndolha.wordpress.com/2013/11/25/svg-line-markers-may-disappear-in-internet-explorer-11/ if (_browser === 'ie' && !!defs) { // this refresh is intended for redisplaying the SVG during zooming defs.parentNode.insertBefore(defs, defs); // this refresh is intended for redisplaying the other SVGs on a page when panning a given SVG // it is also needed for the given SVG itself, on zoomEnd, if the SVG contains any markers that // are located under any other element(s). window.setTimeout(function() { that.refreshDefsGlobal(); }, that.internetExplorerRedisplayInterval); } } /** * Instantiate an SVGPoint object with given event coordinates * * @param {Event} evt * @param {SVGSVGElement} svg * @return {SVGPoint} point */ , getEventPoint: function(evt, svg) { var point = svg.createSVGPoint() Utils.mouseAndTouchNormalize(evt, svg) point.x = evt.clientX point.y = evt.clientY return point } /** * Get SVG center point * * @param {SVGSVGElement} svg * @return {SVGPoint} */ , getSvgCenterPoint: function(svg, width, height) { return this.createSVGPoint(svg, width / 2, height / 2) } /** * Create a SVGPoint with given x and y * * @param {SVGSVGElement} svg * @param {Number} x * @param {Number} y * @return {SVGPoint} */ , createSVGPoint: function(svg, x, y) { var point = svg.createSVGPoint() point.x = x point.y = y return point } } },{"./utilities":7}],6:[function(require,module,exports){ // uniwheel 0.1.2 (customized) // A unified cross browser mouse wheel event handler // https://github.com/teemualap/uniwheel module.exports = (function(){ //Full details: https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel var prefix = "", _addEventListener, _removeEventListener, onwheel, support, fns = []; // detect event model if ( window.addEventListener ) { _addEventListener = "addEventListener"; _removeEventListener = "removeEventListener"; } else { _addEventListener = "attachEvent"; _removeEventListener = "detachEvent"; prefix = "on"; } // detect available wheel event support = "onwheel" in document.createElement("div") ? "wheel" : // Modern browsers support "wheel" document.onmousewheel !== undefined ? "mousewheel" : // Webkit and IE support at least "mousewheel" "DOMMouseScroll"; // let's assume that remaining browsers are older Firefox function createCallback(element,callback,capture) { var fn = function(originalEvent) { !originalEvent && ( originalEvent = window.event ); // create a normalized event object var event = { // keep a ref to the original event object originalEvent: originalEvent, target: originalEvent.target || originalEvent.srcElement, type: "wheel", deltaMode: originalEvent.type == "MozMousePixelScroll" ? 0 : 1, deltaX: 0, delatZ: 0, preventDefault: function() { originalEvent.preventDefault ? originalEvent.preventDefault() : originalEvent.returnValue = false; } }; // calculate deltaY (and deltaX) according to the event if ( support == "mousewheel" ) { event.deltaY = - 1/40 * originalEvent.wheelDelta; // Webkit also support wheelDeltaX originalEvent.wheelDeltaX && ( event.deltaX = - 1/40 * originalEvent.wheelDeltaX ); } else { event.deltaY = originalEvent.detail; } // it's time to fire the callback return callback( event ); }; fns.push({ element: element, fn: fn, capture: capture }); return fn; } function getCallback(element,capture) { for (var i = 0; i < fns.length; i++) { if (fns[i].element === element && fns[i].capture === capture) { return fns[i].fn; } } return function(){}; } function removeCallback(element,capture) { for (var i = 0; i < fns.length; i++) { if (fns[i].element === element && fns[i].capture === capture) { return fns.splice(i,1); } } } function _addWheelListener( elem, eventName, callback, useCapture ) { var cb; if (support === "wheel") { cb = callback; } else { cb = createCallback(elem,callback,useCapture); } elem[ _addEventListener ]( prefix + eventName, cb, useCapture || false ); } function _removeWheelListener( elem, eventName, callback, useCapture ) { var cb; if (support === "wheel") { cb = callback; } else { cb = getCallback(elem,useCapture); } elem[ _removeEventListener ]( prefix + eventName, cb, useCapture || false ); removeCallback(elem,useCapture); } function addWheelListener( elem, callback, useCapture ) { _addWheelListener( elem, support, callback, useCapture ); // handle MozMousePixelScroll in older Firefox if( support == "DOMMouseScroll" ) { _addWheelListener( elem, "MozMousePixelScroll", callback, useCapture); } } function removeWheelListener(elem,callback,useCapture){ _removeWheelListener(elem,support,callback,useCapture); // handle MozMousePixelScroll in older Firefox if( support == "DOMMouseScroll" ) { _removeWheelListener(elem, "MozMousePixelScroll", callback, useCapture); } } return { on: addWheelListener, off: removeWheelListener }; })(); },{}],7:[function(require,module,exports){ module.exports = { /** * Extends an object * * @param {Object} target object to extend * @param {Object} source object to take properties from * @return {Object} extended object */ extend: function(target, source) { target = target || {}; for (var prop in source) { // Go recursively if (this.isObject(source[prop])) { target[prop] = this.extend(target[prop], source[prop]) } else { target[prop] = source[prop] } } return target; } /** * Checks if an object is a DOM element * * @param {Object} o HTML element or String * @return {Boolean} returns true if object is a DOM element */ , isElement: function(o){ return ( o instanceof HTMLElement || o instanceof SVGElement || o instanceof SVGSVGElement || //DOM2 (o && typeof o === 'object' && o !== null && o.nodeType === 1 && typeof o.nodeName === 'string') ); } /** * Checks if an object is an Object * * @param {Object} o Object * @return {Boolean} returns true if object is an Object */ , isObject: function(o){ return Object.prototype.toString.call(o) === '[object Object]'; } /** * Checks if variable is Number * * @param {Integer|Float} n * @return {Boolean} returns true if variable is Number */ , isNumber: function(n) { return !isNaN(parseFloat(n)) && isFinite(n); } /** * Search for an SVG element * * @param {Object|String} elementOrSelector DOM Element or selector String * @return {Object|Null} SVG or null */ , getSvg: function(elementOrSelector) { var element , svg; if (!this.isElement(elementOrSelector)) { // If selector provided if (typeof elementOrSelector === 'string' || elementOrSelector instanceof String) { // Try to find the element element = document.querySelector(elementOrSelector) if (!element) { throw new Error('Provided selector did not find any elements. Selector: ' + elementOrSelector) return null } } else { throw new Error('Provided selector is not an HTML object nor String') return null } } else { element = elementOrSelector } if (element.tagName.toLowerCase() === 'svg') { svg = element; } else { if (element.tagName.toLowerCase() === 'object') { svg = element.contentDocument.documentElement; } else { if (element.tagName.toLowerCase() === 'embed') { svg = element.getSVGDocument().documentElement; } else { if (element.tagName.toLowerCase() === 'img') { throw new Error('Cannot script an SVG in an "img" element. Please use an "object" element or an in-line SVG.'); } else { throw new Error('Cannot get SVG.'); } return null } } } return svg } /** * Attach a given context to a function * @param {Function} fn Function * @param {Object} context Context * @return {Function} Function with certain context */ , proxy: function(fn, context) { return function() { return fn.apply(context, arguments) } } /** * Returns object type * Uses toString that returns [object SVGPoint] * And than parses object type from string * * @param {Object} o Any object * @return {String} Object type */ , getType: function(o) { return Object.prototype.toString.apply(o).replace(/^\[object\s/, '').replace(/\]$/, '') } /** * If it is a touch event than add clientX and clientY to event object * * @param {Event} evt * @param {SVGSVGElement} svg */ , mouseAndTouchNormalize: function(evt, svg) { // If no clientX then fallback if (evt.clientX === void 0 || evt.clientX === null) { // Fallback evt.clientX = 0 evt.clientY = 0 // If it is a touch event if (evt.touches !== void 0 && evt.touches.length) { if (evt.touches[0].clientX !== void 0) { evt.clientX = evt.touches[0].clientX evt.clientY = evt.touches[0].clientY } else if (evt.touches[0].pageX !== void 0) { var rect = svg.getBoundingClientRect(); evt.clientX = evt.touches[0].pageX - rect.left evt.clientY = evt.touches[0].pageY - rect.top } // If it is a custom event } else if (evt.originalEvent !== void 0) { if (evt.originalEvent.clientX !== void 0) { evt.clientX = evt.originalEvent.clientX evt.clientY = evt.originalEvent.clientY } } } } /** * Check if an event is a double click/tap * TODO: For touch gestures use a library (hammer.js) that takes in account other events * (touchmove and touchend). It should take in account tap duration and traveled distance * * @param {Event} evt * @param {Event} prevEvt Previous Event * @return {Boolean} */ , isDblClick: function(evt, prevEvt) { // Double click detected by browser if (evt.detail === 2) { return true; } // Try to compare events else if (prevEvt !== void 0 && prevEvt !== null) { var timeStampDiff = evt.timeStamp - prevEvt.timeStamp // should be lower than 250 ms , touchesDistance = Math.sqrt(Math.pow(evt.clientX - prevEvt.clientX, 2) + Math.pow(evt.clientY - prevEvt.clientY, 2)) return timeStampDiff < 250 && touchesDistance < 10 } // Nothing found return false; } /** * Returns current timestamp as an integer * * @return {Number} */ , now: Date.now || function() { return new Date().getTime(); } // From underscore. // Returns a function, that, when invoked, will only be triggered at most once // during a given window of time. Normally, the throttled function will run // as much as it can, without ever going more than once per `wait` duration; // but if you'd like to disable the execution on the leading edge, pass // `{leading: false}`. To disable execution on the trailing edge, ditto. // jscs:disable // jshint ignore:start , throttle: function(func, wait, options) { var that = this; var context, args, result; var timeout = null; var previous = 0; if (!options) options = {}; var later = function() { previous = options.leading === false ? 0 : that.now(); timeout = null; result = func.apply(context, args); if (!timeout) context = args = null; }; return function() { var now = that.now(); if (!previous && options.leading === false) previous = now; var remaining = wait - (now - previous); context = this; args = arguments; if (remaining <= 0 || remaining > wait) { clearTimeout(timeout); timeout = null; previous = now; result = func.apply(context, args); if (!timeout) context = args = null; } else if (!timeout && options.trailing !== false) { timeout = setTimeout(later, remaining); } return result; }; } // jshint ignore:end // jscs:enable /** * Create a requestAnimationFrame simulation * * @param {Number|String} refreshRate * @return {Function} */ , createRequestAnimationFrame: function(refreshRate) { var timeout = null // Convert refreshRate to timeout if (refreshRate !== 'auto' && refreshRate < 60 && refreshRate > 1) { timeout = Math.floor(1000 / refreshRate) } if (timeout === null) { return window.requestAnimationFrame || requestTimeout(33) } else { return requestTimeout(timeout) } } } /** * Create a callback that will execute after a given timeout * * @param {Function} timeout * @return {Function} */ function requestTimeout(timeout) { return function(callback) { window.setTimeout(callback, timeout) } } },{}]},{},[1]); !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,function(){return function(n){var r={};function a(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}return a.m=n,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=204)}([function(t,e,qn){(function(Wn){var t;t=function(){"use strict";var t,a;function h(){return t.apply(null,arguments)}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function u(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function l(t){return void 0===t}function c(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function d(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function f(t,e){var n,r=[];for(n=0;n>>0,r=0;rLt(t)?(i=t+1,s=o-Lt(t)):(i=t,s=o),{year:i,dayOfYear:s}}function zt(t,e,n){var r,a,i=It(t.year(),e,n),s=Math.floor((t.dayOfYear()-i-1)/7)+1;return s<1?r=s+Wt(a=t.year()-1,e,n):s>Wt(t.year(),e,n)?(r=s-Wt(t.year(),e,n),a=t.year()+1):(a=t.year(),r=s),{week:r,year:a}}function Wt(t,e,n){var r=It(t,e,n),a=It(t+1,e,n);return(Lt(t)-r+a)/7}z("w",["ww",2],"wo","week"),z("W",["WW",2],"Wo","isoWeek"),j("week","w"),j("isoWeek","W"),H("week",5),H("isoWeek",5),ut("w",Z),ut("ww",Z,V),ut("W",Z),ut("WW",Z,V),ft(["w","ww","W","WW"],function(t,e,n,r){e[r.substr(0,1)]=w(t)});z("d",0,"do","day"),z("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),z("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),z("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),z("e",0,0,"weekday"),z("E",0,0,"isoWeekday"),j("day","d"),j("weekday","e"),j("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),ut("d",Z),ut("e",Z),ut("E",Z),ut("dd",function(t,e){return e.weekdaysMinRegex(t)}),ut("ddd",function(t,e){return e.weekdaysShortRegex(t)}),ut("dddd",function(t,e){return e.weekdaysRegex(t)}),ft(["dd","ddd","dddd"],function(t,e,n,r){var a=n._locale.weekdaysParse(t,r,n._strict);null!=a?e.d=a:y(n).invalidWeekday=t}),ft(["d","e","E"],function(t,e,n,r){e[r]=w(t)});var qt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ut="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Vt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $t=st;var Gt=st;var Jt=st;function Zt(){function t(t,e){return e.length-t.length}var e,n,r,a,i,s=[],o=[],u=[],l=[];for(e=0;e<7;e++)n=m([2e3,1]).day(e),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),s.push(r),o.push(a),u.push(i),l.push(r),l.push(a),l.push(i);for(s.sort(t),o.sort(t),u.sort(t),l.sort(t),e=0;e<7;e++)o[e]=ct(o[e]),u[e]=ct(u[e]),l[e]=ct(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Kt(){return this.hours()%12||12}function Xt(t,e){z(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Qt(t,e){return e._meridiemParse}z("H",["HH",2],0,"hour"),z("h",["hh",2],0,Kt),z("k",["kk",2],0,function(){return this.hours()||24}),z("hmm",0,0,function(){return""+Kt.apply(this)+P(this.minutes(),2)}),z("hmmss",0,0,function(){return""+Kt.apply(this)+P(this.minutes(),2)+P(this.seconds(),2)}),z("Hmm",0,0,function(){return""+this.hours()+P(this.minutes(),2)}),z("Hmmss",0,0,function(){return""+this.hours()+P(this.minutes(),2)+P(this.seconds(),2)}),Xt("a",!0),Xt("A",!1),j("hour","h"),H("hour",13),ut("a",Qt),ut("A",Qt),ut("H",Z),ut("h",Z),ut("k",Z),ut("HH",Z,V),ut("hh",Z,V),ut("kk",Z,V),ut("hmm",K),ut("hmmss",X),ut("Hmm",K),ut("Hmmss",X),ht(["H","HH"],yt),ht(["k","kk"],function(t,e,n){var r=w(t);e[yt]=24===r?0:r}),ht(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),ht(["h","hh"],function(t,e,n){e[yt]=w(t),y(n).bigHour=!0}),ht("hmm",function(t,e,n){var r=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r)),y(n).bigHour=!0}),ht("hmmss",function(t,e,n){var r=t.length-4,a=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r,2)),e[vt]=w(t.substr(a)),y(n).bigHour=!0}),ht("Hmm",function(t,e,n){var r=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r))}),ht("Hmmss",function(t,e,n){var r=t.length-4,a=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r,2)),e[vt]=w(t.substr(a))});var te,ee=Yt("Hours",!0),ne={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d 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"},months:jt,monthsShort:Ct,week:{dow:0,doy:6},weekdays:qt,weekdaysMin:Vt,weekdaysShort:Ut,meridiemParse:/[ap]\.?m?\.?/i},re={},ae={};function ie(t){return t?t.toLowerCase().replace("_","-"):t}function se(t){var e=null;if(!re[t]&&void 0!==Wn&&Wn&&Wn.exports)try{e=te._abbr;qn(207)("./"+t),oe(e)}catch(t){}return re[t]}function oe(t,e){var n;return t&&(n=l(e)?le(t):ue(t,e))&&(te=n),te._abbr}function ue(t,e){if(null!==e){var n=ne;if(e.abbr=t,null!=re[t])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=re[t]._config;else if(null!=e.parentLocale){if(null==re[e.parentLocale])return ae[e.parentLocale]||(ae[e.parentLocale]=[]),ae[e.parentLocale].push({name:t,config:e}),null;n=re[e.parentLocale]._config}return re[t]=new S(A(n,e)),ae[t]&&ae[t].forEach(function(t){ue(t.name,t.config)}),oe(t),re[t]}return delete re[t],null}function le(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return te;if(!o(t)){if(e=se(t))return e;t=[t]}return function(t){for(var e,n,r,a,i=0;i=e&&s(a,n,!0)>=e-1)break;e--}i++}return null}(t)}function ce(t){var e,n=t._a;return n&&-2===y(t).overflow&&(e=n[pt]<0||11St(n[_t],n[pt])?mt:n[yt]<0||24Wt(n,i,s)?y(t)._overflowWeeks=!0:null!=u?y(t)._overflowWeekday=!0:(o=Rt(n,r,a,i,s),t._a[_t]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(i=de(t._a[_t],r[_t]),(t._dayOfYear>Lt(i)||0===t._dayOfYear)&&(y(t)._overflowDayOfYear=!0),n=Nt(i,0,t._dayOfYear),t._a[pt]=n.getUTCMonth(),t._a[mt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=r[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[yt]&&0===t._a[gt]&&0===t._a[vt]&&0===t._a[Mt]&&(t._nextDay=!0,t._a[yt]=0),t._d=(t._useUTC?Nt:function(t,e,n,r,a,i,s){var o=new Date(t,e,n,r,a,i,s);return t<100&&0<=t&&isFinite(o.getFullYear())&&o.setFullYear(t),o}).apply(null,s),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[yt]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(y(t).weekdayMismatch=!0)}}var fe=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,pe=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ye=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ge=/^\/?Date\((\-?\d+)/i;function ve(t){var e,n,r,a,i,s,o=t._i,u=fe.exec(o)||_e.exec(o);if(u){for(y(t).iso=!0,e=0,n=me.length;en.valueOf():n.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Ie,ln.isUTC=Ie,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Ot),ln.years=n("years accessor is deprecated. Use year instead",Dt),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var t={};if(M(t,this),(t=xe(t))._a){var e=t._isUTC?m(t._a):Ye(t._a);this._isDSTShifted=this.isValid()&&0Y.width){var l=a.text();if(a.text(""),l){var c,d;if(-1!==l.indexOf(" "))c=" ",d=l.split(" ");else{c="";var h,f,_=l.length,p=Math.ceil(s/Y.width),m=Math.floor(_/p);_<=m*p||p++,d=[];for(var y=0;yY.width&&w&&""!==w&&(k={string:w,width:x,offset:M+=x},v.push(k),a.text(""),a.text(L),y===d.length-1&&(b=L,a.text(b),D=n.getComputedTextLength())),y===d.length-1){a.text("");b&&""!==b&&(0>>1,Os=[["ary",vs],["bind",hs],["bindKey",fs],["curry",ps],["curryRight",ms],["flip",ks],["partial",ys],["partialRight",gs],["rearg",Ms]],Hs="[object Arguments]",Ps="[object Array]",Bs="[object AsyncFunction]",Ns="[object Boolean]",Is="[object Date]",Rs="[object DOMException]",zs="[object Error]",Ws="[object Function]",qs="[object GeneratorFunction]",Us="[object Map]",Vs="[object Number]",$s="[object Null]",Gs="[object Object]",Js="[object Promise]",Zs="[object Proxy]",Ks="[object RegExp]",Xs="[object Set]",Qs="[object String]",to="[object Symbol]",eo="[object Undefined]",no="[object WeakMap]",ro="[object WeakSet]",ao="[object ArrayBuffer]",io="[object DataView]",so="[object Float32Array]",oo="[object Float64Array]",uo="[object Int8Array]",lo="[object Int16Array]",co="[object Int32Array]",ho="[object Uint8Array]",fo="[object Uint8ClampedArray]",_o="[object Uint16Array]",po="[object Uint32Array]",mo=/\b__p \+= '';/g,yo=/\b(__p \+=) '' \+/g,go=/(__e\(.*?\)|\b__t\)) \+\n'';/g,vo=/&(?:amp|lt|gt|quot|#39);/g,Mo=/[&<>"']/g,ko=RegExp(vo.source),bo=RegExp(Mo.source),Lo=/<%-([\s\S]+?)%>/g,wo=/<%([\s\S]+?)%>/g,xo=/<%=([\s\S]+?)%>/g,Do=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yo=/^\w*$/,To=/^\./,Ao=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,So=/[\\^$.*+?()[\]{}|]/g,Eo=RegExp(So.source),jo=/^\s+|\s+$/g,Co=/^\s+/,Fo=/\s+$/,Oo=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ho=/\{\n\/\* \[wrapped with (.+)\] \*/,Po=/,? & /,Bo=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,No=/\\(\\)?/g,Io=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ro=/\w*$/,zo=/^[-+]0x[0-9a-f]+$/i,Wo=/^0b[01]+$/i,qo=/^\[object .+?Constructor\]$/,Uo=/^0o[0-7]+$/i,Vo=/^(?:0|[1-9]\d*)$/,$o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Go=/($^)/,Jo=/['\n\r\u2028\u2029\\]/g,t="\\ud800-\\udfff",e="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",n="\\u2700-\\u27bf",r="a-z\\xdf-\\xf6\\xf8-\\xff",a="A-Z\\xc0-\\xd6\\xd8-\\xde",i="\\ufe0e\\ufe0f",s="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",o="['’]",u="["+t+"]",l="["+s+"]",c="["+e+"]",d="\\d+",h="["+n+"]",f="["+r+"]",_="[^"+t+s+d+n+r+a+"]",p="\\ud83c[\\udffb-\\udfff]",m="[^"+t+"]",y="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",v="["+a+"]",M="\\u200d",k="(?:"+f+"|"+_+")",b="(?:"+v+"|"+_+")",L="(?:['’](?:d|ll|m|re|s|t|ve))?",w="(?:['’](?:D|LL|M|RE|S|T|VE))?",x="(?:"+c+"|"+p+")"+"?",D="["+i+"]?",Y=D+x+("(?:"+M+"(?:"+[m,y,g].join("|")+")"+D+x+")*"),T="(?:"+[h,y,g].join("|")+")"+Y,A="(?:"+[m+c+"?",c,y,g,u].join("|")+")",Zo=RegExp(o,"g"),Ko=RegExp(c,"g"),S=RegExp(p+"(?="+p+")|"+A+Y,"g"),Xo=RegExp([v+"?"+f+"+"+L+"(?="+[l,v,"$"].join("|")+")",b+"+"+w+"(?="+[l,v+k,"$"].join("|")+")",v+"?"+k+"+"+L,v+"+"+w,"\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)","\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",d,T].join("|"),"g"),E=RegExp("["+M+t+e+i+"]"),Qo=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,tu=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],eu=-1,nu={};nu[so]=nu[oo]=nu[uo]=nu[lo]=nu[co]=nu[ho]=nu[fo]=nu[_o]=nu[po]=!0,nu[Hs]=nu[Ps]=nu[ao]=nu[Ns]=nu[io]=nu[Is]=nu[zs]=nu[Ws]=nu[Us]=nu[Vs]=nu[Gs]=nu[Ks]=nu[Xs]=nu[Qs]=nu[no]=!1;var ru={};ru[Hs]=ru[Ps]=ru[ao]=ru[io]=ru[Ns]=ru[Is]=ru[so]=ru[oo]=ru[uo]=ru[lo]=ru[co]=ru[Us]=ru[Vs]=ru[Gs]=ru[Ks]=ru[Xs]=ru[Qs]=ru[to]=ru[ho]=ru[fo]=ru[_o]=ru[po]=!0,ru[zs]=ru[Ws]=ru[no]=!1;var j={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},au=parseFloat,iu=parseInt,C="object"==typeof R&&R&&R.Object===Object&&R,F="object"==typeof self&&self&&self.Object===Object&&self,su=C||F||Function("return this")(),O="object"==typeof W&&W&&!W.nodeType&&W,H=O&&"object"==typeof z&&z&&!z.nodeType&&z,ou=H&&H.exports===O,P=ou&&C.process,B=function(){try{return P&&P.binding&&P.binding("util")}catch(t){}}(),uu=B&&B.isArrayBuffer,lu=B&&B.isDate,cu=B&&B.isMap,du=B&&B.isRegExp,hu=B&&B.isSet,fu=B&&B.isTypedArray;function _u(t,e){return t.set(e[0],e[1]),t}function pu(t,e){return t.add(e),t}function mu(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function yu(t,e,n,r){for(var a=-1,i=null==t?0:t.length;++a":">",'"':""","'":"'"});function Vu(t){return"\\"+j[t]}function $u(t){return E.test(t)}function Gu(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r}function Ju(e,n){return function(t){return e(n(t))}}function Zu(t,e){for(var n=-1,r=t.length,a=0,i=[];++n",""":'"',"'":"'"});var el=function t(e){var n,T=(e=null==e?su:el.defaults(su.Object(),e,el.pick(su,tu))).Array,r=e.Date,a=e.Error,m=e.Function,i=e.Math,w=e.Object,y=e.RegExp,c=e.String,A=e.TypeError,s=T.prototype,o=m.prototype,u=w.prototype,l=e["__core-js_shared__"],d=o.toString,x=u.hasOwnProperty,h=0,f=(n=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",_=u.toString,p=d.call(w),g=su._,v=y("^"+d.call(x).replace(So,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),M=ou?e.Buffer:ts,k=e.Symbol,b=e.Uint8Array,L=M?M.allocUnsafe:ts,D=Ju(w.getPrototypeOf,w),Y=w.create,S=u.propertyIsEnumerable,E=s.splice,j=k?k.isConcatSpreadable:ts,C=k?k.iterator:ts,F=k?k.toStringTag:ts,O=function(){try{var t=In(w,"defineProperty");return t({},"",{}),t}catch(t){}}(),H=e.clearTimeout!==su.clearTimeout&&e.clearTimeout,P=r&&r.now!==su.Date.now&&r.now,B=e.setTimeout!==su.setTimeout&&e.setTimeout,N=i.ceil,I=i.floor,R=w.getOwnPropertySymbols,z=M?M.isBuffer:ts,W=e.isFinite,q=s.join,U=Ju(w.keys,w),V=i.max,$=i.min,G=r.now,J=e.parseInt,Z=i.random,K=s.reverse,X=In(e,"DataView"),Q=In(e,"Map"),tt=In(e,"Promise"),et=In(e,"Set"),nt=In(e,"WeakMap"),rt=In(w,"create"),at=nt&&new nt,it={},st=fr(X),ot=fr(Q),ut=fr(tt),lt=fr(et),ct=fr(nt),dt=k?k.prototype:ts,ht=dt?dt.valueOf:ts,ft=dt?dt.toString:ts;function _t(t){if(Sa(t)&&!va(t)&&!(t instanceof gt)){if(t instanceof yt)return t;if(x.call(t,"__wrapped__"))return _r(t)}return new yt(t)}var pt=function(){function n(){}return function(t){if(!Aa(t))return{};if(Y)return Y(t);n.prototype=t;var e=new n;return n.prototype=ts,e}}();function mt(){}function yt(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=ts}function gt(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=js,this.__views__=[]}function vt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=es&&(i=Ru,s=!1,e=new bt(e));t:for(;++a>>0,e>>>=0;for(var i=T(a);++r>>1,s=t[i];null!==s&&!Pa(s)&&(n?s<=e:s=ws)return arguments[0]}else r=0;return n.apply(ts,arguments)}}function ur(t,e){var n=-1,r=t.length,a=r-1;for(e=e===ts?r:e;++n>>0)?(t=$a(t))&&("string"==typeof e||null!=e&&!Fa(e))&&!(e=Pe(e))&&$u(t)?Je(Qu(t),0,n):t.split(e,n):[]},_t.spread=function(r,a){if("function"!=typeof r)throw new A(rs);return a=null==a?0:V(Wa(a),0),we(function(t){var e=t[a],n=Je(t,0,a);return e&&xu(n,e),mu(r,this,n)})},_t.tail=function(t){var e=null==t?0:t.length;return e?Ee(t,1,e):[]},_t.take=function(t,e,n){return t&&t.length?Ee(t,0,(e=n||e===ts?1:Wa(e))<0?0:e):[]},_t.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?Ee(t,(e=r-(e=n||e===ts?1:Wa(e)))<0?0:e,r):[]},_t.takeRightWhile=function(t,e){return t&&t.length?Re(t,Pn(e,3),!1,!0):[]},_t.takeWhile=function(t,e){return t&&t.length?Re(t,Pn(e,3)):[]},_t.tap=function(t,e){return e(t),t},_t.throttle=function(t,e,n){var r=!0,a=!0;if("function"!=typeof t)throw new A(rs);return Aa(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),sa(t,e,{leading:r,maxWait:e,trailing:a})},_t.thru=zr,_t.toArray=Ra,_t.toPairs=fi,_t.toPairsIn=_i,_t.toPath=function(t){return va(t)?wu(t,hr):Pa(t)?[t]:rn(dr($a(t)))},_t.toPlainObject=Va,_t.transform=function(t,r,a){var e=va(t),n=e||La(t)||Ba(t);if(r=Pn(r,4),null==a){var i=t&&t.constructor;a=n?e?new i:[]:Aa(t)&&Da(i)?pt(D(t)):{}}return(n?gu:Gt)(t,function(t,e,n){return r(a,t,e,n)}),a},_t.unary=function(t){return na(t,1)},_t.union=Sr,_t.unionBy=Er,_t.unionWith=jr,_t.uniq=function(t){return t&&t.length?Be(t):[]},_t.uniqBy=function(t,e){return t&&t.length?Be(t,Pn(e,2)):[]},_t.uniqWith=function(t,e){return e="function"==typeof e?e:ts,t&&t.length?Be(t,ts,e):[]},_t.unset=function(t,e){return null==t||Ne(t,e)},_t.unzip=Cr,_t.unzipWith=Fr,_t.update=function(t,e,n){return null==t?t:Ie(t,e,Ve(n))},_t.updateWith=function(t,e,n,r){return r="function"==typeof r?r:ts,null==t?t:Ie(t,e,Ve(n),r)},_t.values=pi,_t.valuesIn=function(t){return null==t?[]:Iu(t,oi(t))},_t.without=Or,_t.words=Di,_t.wrap=function(t,e){return ha(Ve(e),t)},_t.xor=Hr,_t.xorBy=Pr,_t.xorWith=Br,_t.zip=Nr,_t.zipObject=function(t,e){return qe(t||[],e||[],At)},_t.zipObjectDeep=function(t,e){return qe(t||[],e||[],Ye)},_t.zipWith=Ir,_t.entries=fi,_t.entriesIn=_i,_t.extend=Ja,_t.extendWith=Za,Hi(_t,_t),_t.add=Vi,_t.attempt=Yi,_t.camelCase=mi,_t.capitalize=yi,_t.ceil=$i,_t.clamp=function(t,e,n){return n===ts&&(n=e,e=ts),n!==ts&&(n=(n=Ua(n))==n?n:0),e!==ts&&(e=(e=Ua(e))==e?e:0),Ot(Ua(t),e,n)},_t.clone=function(t){return Ht(t,ls)},_t.cloneDeep=function(t){return Ht(t,os|ls)},_t.cloneDeepWith=function(t,e){return Ht(t,os|ls,e="function"==typeof e?e:ts)},_t.cloneWith=function(t,e){return Ht(t,ls,e="function"==typeof e?e:ts)},_t.conformsTo=function(t,e){return null==e||Pt(t,e,si(e))},_t.deburr=gi,_t.defaultTo=function(t,e){return null==t||t!=t?e:t},_t.divide=Gi,_t.endsWith=function(t,e,n){t=$a(t),e=Pe(e);var r=t.length,a=n=n===ts?r:Ot(Wa(n),0,r);return 0<=(n-=e.length)&&t.slice(n,a)==e},_t.eq=pa,_t.escape=function(t){return(t=$a(t))&&bo.test(t)?t.replace(Mo,Uu):t},_t.escapeRegExp=function(t){return(t=$a(t))&&Eo.test(t)?t.replace(So,"\\$&"):t},_t.every=function(t,e,n){var r=va(t)?Mu:zt;return n&&Gn(t,e,n)&&(e=ts),r(t,Pn(e,3))},_t.find=Ur,_t.findIndex=gr,_t.findKey=function(t,e){return Au(t,Pn(e,3),Gt)},_t.findLast=Vr,_t.findLastIndex=vr,_t.findLastKey=function(t,e){return Au(t,Pn(e,3),Jt)},_t.floor=Ji,_t.forEach=$r,_t.forEachRight=Gr,_t.forIn=function(t,e){return null==t?t:Vt(t,Pn(e,3),oi)},_t.forInRight=function(t,e){return null==t?t:$t(t,Pn(e,3),oi)},_t.forOwn=function(t,e){return t&&Gt(t,Pn(e,3))},_t.forOwnRight=function(t,e){return t&&Jt(t,Pn(e,3))},_t.get=ei,_t.gt=ma,_t.gte=ya,_t.has=function(t,e){return null!=t&&qn(t,e,ee)},_t.hasIn=ni,_t.head=kr,_t.identity=ji,_t.includes=function(t,e,n,r){t=ka(t)?t:pi(t),n=n&&!r?Wa(n):0;var a=t.length;return n<0&&(n=V(a+n,0)),Ha(t)?n<=a&&-1=$(a=e,i=n)&&r=this.__values__.length;return{done:t,value:t?ts:this.__values__[this.__index__++]}},_t.prototype.plant=function(t){for(var e,n=this;n instanceof mt;){var r=_r(n);r.__index__=0,r.__values__=ts,e?a.__wrapped__=r:e=r;var a=r;n=n.__wrapped__}return a.__wrapped__=t,e},_t.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof gt){var e=t;return this.__actions__.length&&(e=new gt(this)),(e=e.reverse()).__actions__.push({func:zr,args:[Ar],thisArg:ts}),new yt(e,this.__chain__)}return this.thru(Ar)},_t.prototype.toJSON=_t.prototype.valueOf=_t.prototype.value=function(){return ze(this.__wrapped__,this.__actions__)},_t.prototype.first=_t.prototype.head,C&&(_t.prototype[C]=function(){return this}),_t}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(su._=el,define(function(){return el})):H?((H.exports=el)._=el,O._=el):su._=el}).call(this)}).call(W,e(18),e(3)(t))},function(t,e,n){var r=n(179),a=n(240),i=n(13);t.exports=function(t){return i(t)?r(t):a(t)}},function(t,e,n){var r=n(5).Symbol;t.exports=r},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var r=n(269),a=n(270),i=n(271),s=n(272),o=n(273);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e>>1;i(t[a],e)<0?n=a+1:r=a}return n},right:function(t,e,n,r){for(arguments.length<3&&(n=0),arguments.length<4&&(r=t.length);n>>1;0e;)a.push(r/i);else for(;(r=t+n*++s)=_.length)return h?h.call(f,t):d?t.sort(d):t;for(var e,a,i,s,o=-1,u=t.length,l=_[r++],c=new g;++o=_.length)return t;var a=[],i=e[r++];return t.forEach(function(t,e){a.push({key:t,values:n(e,r)})}),i?a.sort(function(t,e){return i(t.key,e.key)}):a}(p(F.map,t,0),0)},f.key=function(t){return _.push(t),f},f.sortKeys=function(t){return e[_.length-1]=t,f},f.sortValues=function(t){return d=t,f},f.rollup=function(t){return h=t,f},f},F.set=function(t){var e=new D;if(t)for(var n=0,r=t.length;n>16,t>>8&255,255&t)}function se(t){return ie(t)+""}Xt.brighter=function(t){return new $t(Math.min(100,this.l+Gt*(arguments.length?t:1)),this.a,this.b)},Xt.darker=function(t){return new $t(Math.max(0,this.l-Gt*(arguments.length?t:1)),this.a,this.b)},Xt.rgb=function(){return Qt(this.l,this.a,this.b)};var oe=(F.rgb=ae).prototype=new It;function ue(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function le(t,e,n){var r,a,i,s=0,o=0,u=0;if(r=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(a=r[2].split(","),r[1]){case"hsl":return n(parseFloat(a[0]),parseFloat(a[1])/100,parseFloat(a[2])/100);case"rgb":return e(fe(a[0]),fe(a[1]),fe(a[2]))}return(i=_e.get(t))?e(i.r,i.g,i.b):(null==t||"#"!==t.charAt(0)||isNaN(i=parseInt(t.slice(1),16))||(4===t.length?(s=(3840&i)>>4,s|=s>>4,o=240&i,o|=o>>4,u=15&i,u|=u<<4):7===t.length&&(s=(16711680&i)>>16,o=(65280&i)>>8,u=255&i)),e(s,o,u))}function ce(t,e,n){var r,a,i=Math.min(t/=255,e/=255,n/=255),s=Math.max(t,e,n),o=s-i,u=(s+i)/2;return o?(a=u<.5?o/(s+i):o/(2-s-i),r=t==s?(e-n)/o+(e=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function De(){for(var t,e=ge,n=1/0;e;)e.c?(e.t=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Se=F.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(t,e){return(t=F.round(t,Ye(t,e))).toFixed(Math.max(0,Math.min(20,Ye(t*(1+1e-15),e))))}});function Ee(t){return t+""}var je=F.time={},Ce=Date;function Fe(){this._=new Date(1e));)i=u[a=(a+1)%u.length];return r.reverse().join(o)}:H,function(t){var e=Ae.exec(t),c=e[1]||" ",d=e[2]||">",h=e[3]||"-",n=e[4]||"",f=e[5],_=+e[6],p=e[7],m=e[8],y=e[9],g=1,v="",M="",k=!1,b=!0;switch(m&&(m=+m.substring(1)),(f||"0"===c&&"="===d)&&(f=c="0",d="="),y){case"n":p=!0,y="g";break;case"%":g=100,M="%",y="f";break;case"p":g=100,M="%",y="r";break;case"b":case"o":case"x":case"X":"#"===n&&(v="0"+y.toLowerCase());case"c":b=!1;case"d":k=!0,m=0;break;case"s":g=-1,y="r"}"$"===n&&(v=r[0],M=r[1]),"r"!=y||m||(y="g"),null!=m&&("g"==y?m=Math.max(1,Math.min(21,m)):"e"!=y&&"f"!=y||(m=Math.max(0,Math.min(20,m)))),y=Se.get(y)||Ee;var L=f&&p;return function(t){var e=M;if(k&&t%1)return"";var n=t<0||0===t&&1/t<0?(t=-t,"-"):"-"===h?"":h;if(g<0){var r=F.formatPrefix(t,m);t=r.scale(t),e=r.symbol+M}else t*=g;var a,i,s=(t=y(t,m)).lastIndexOf(".");if(s<0){var o=b?t.lastIndexOf("e"):-1;o<0?(a=t,i=""):(a=t.substring(0,o),i=t.substring(o))}else a=t.substring(0,s),i=w+t.substring(s+1);!f&&p&&(a=x(a,1/0));var u=v.length+a.length+i.length+(L?0:n.length),l=u<_?new Array(u=_-u+1).join(c):"";return L&&(a=x(l+a,l.length?_-i.length:1/0)),n+=v,t=a+i,("<"===d?n+t+l:">"===d?l+n+t:"^"===d?l.substring(0,u>>=1)+n+t+l.substring(u):n+(L?t:l+t))+e}}),timeFormat:function(t){var e=t.dateTime,n=t.date,r=t.time,a=t.periods,i=t.days,s=t.shortDays,o=t.months,u=t.shortMonths;function l(o){var u=o.length;function t(t){for(var e,n,r,a=[],i=-1,s=0;++iv(c,h)&&(h=t):v(t,h)>v(c,h)&&(c=t):c<=h?(tv(c,h)&&(h=t):v(t,h)>v(c,h)&&(c=t)}else y(t,e);p=n,_=t}function t(){m.point=s}function e(){l[0]=c,l[1]=h,m.point=y,p=null}function n(t,e){if(p){var n=t-_;i+=180bt&&(c=-(h=180)),l[0]=c,l[1]=h,p=null}function v(t,e){return(e-=t)<0?e+360:e}function M(t,e){return t[0]-e[0]}function k(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:tv(o[0],o[1])&&(o[1]=i[1]),v(i[0],o[1])>v(o[0],o[1])&&(o[0]=i[0])):n.push(o=i);for(var r,a,i,s=-1/0,o=(e=0,n[a=n.length-1]);e<=a;o=i,++e)i=n[e],(r=v(o[1],i[0]))>s&&(s=r,c=i[0],h=o[1])}return u=l=null,c===1/0||d===1/0?[[NaN,NaN],[NaN,NaN]]:[[c,d],[h,f]]}}(),F.geo.centroid=function(t){yn=gn=vn=Mn=kn=bn=Ln=wn=xn=Dn=Yn=0,F.geo.stream(t,Nn);var e=xn,n=Dn,r=Yn,a=e*e+n*n+r*r;return abt?Math.atan((Math.sin(r)*(o=Math.cos(i))*Math.sin(a)-Math.sin(i)*(s=Math.cos(r))*Math.sin(n))/(s*o*u)):(r+i)/2,d.point(p,_),d.lineEnd(),d.lineStart(),d.point(l,_),h=0),d.point(f=t,_=e),p=l},lineEnd:function(){d.lineEnd(),f=_=NaN},clean:function(){return 2-h}}},function(t,e,n,r){var a;if(null==t)a=n*Yt,r.point(-wt,a),r.point(0,a),r.point(wt,a),r.point(wt,0),r.point(wt,-a),r.point(0,-a),r.point(-wt,-a),r.point(-wt,0),r.point(-wt,a);else if(C(t[0]-e[0])>bt){var i=t[0]r&&0bt;return Zn(p,function(o){var u,l,c,d,h;return{lineStart:function(){d=c=!1,h=1},point:function(t,e){var n,r=[t,e],a=p(t,e),i=f?a?0:y(t,e):a?y(t+(t<0?wt:-wt),e):0;if(!u&&(d=c=a)&&o.lineStart(),a!==c&&(n=m(u,r),(Bn(u,n)||Bn(r,n))&&(r[0]+=bt,r[1]+=bt,a=p(r[0],r[1]))),a!==c)h=0,a?(o.lineStart(),n=m(r,u),o.point(n[0],n[1])):(n=m(u,r),o.point(n[0],n[1]),o.lineEnd()),u=n;else if(_&&u&&f^a){var s;i&l||!(s=m(r,u,!0))||(h=0,f?(o.lineStart(),o.point(s[0][0],s[0][1]),o.point(s[1][0],s[1][1]),o.lineEnd()):(o.point(s[1][0],s[1][1]),o.lineEnd(),o.lineStart(),o.point(s[0][0],s[0][1])))}!a||u&&Bn(u,r)||o.point(r[0],r[1]),u=r,c=a,l=i},lineEnd:function(){c&&o.lineEnd(),u=null},clean:function(){return h|(d&&c)<<1}}},Fr(a,6*Tt),f?[0,-a]:[-wt,a-wt]);function p(t,e){return Math.cos(t)*Math.cos(e)>D}function m(t,e,n){var r=[1,0,0],a=Cn(En(t),En(e)),i=jn(a,a),s=a[0],o=i-s*s;if(!o)return!n&&t;var u=D*i/o,l=-D*s/o,c=Cn(r,a),d=On(r,u);Fn(d,On(a,l));var h=c,f=jn(d,h),_=jn(h,h),p=f*f-_*(jn(d,d)-1);if(!(p<0)){var m=Math.sqrt(p),y=On(h,(-f-m)/_);if(Fn(y,d),y=Pn(y),!n)return y;var g,v=t[0],M=e[0],k=t[1],b=e[1];Mbt}).map(l)).concat(F.range(Math.ceil(s/_)*_,i,_).filter(function(t){return C(t%m)>bt}).map(c))}return g.lines=function(){return t().map(function(t){return{type:"LineString",coordinates:t}})},g.outline=function(){return{type:"Polygon",coordinates:[d(a).concat(h(o).slice(1),d(r).reverse().slice(1),h(u).reverse().slice(1))]}},g.extent=function(t){return arguments.length?g.majorExtent(t).minorExtent(t):g.minorExtent()},g.majorExtent=function(t){return arguments.length?(a=+t[0][0],r=+t[1][0],u=+t[0][1],o=+t[1][1],r=l)return}else i={x:m,y:u};n={x:m,y:l}}else{if(i){if(i.y=l)return}else i={x:(u-a)/r,y:u};n={x:(l-a)/r,y:l}}else{if(i){if(i.y=o)return}else i={x:s,y:r*s+a};n={x:o,y:r*o+a}}else{if(i){if(i.xbt||C(a-n)>bt)&&(o.splice(s,0,new Ya((y=i.site,g=c,v=C(r-d)=s&&r.x<=u&&r.y>=o&&r.y<=l?[[s,l],[u,l],[u,o],[s,o]]:[]).point=a[e]}),i}function d(t){return t.map(function(t,e){return{x:Math.round(r(t,e)/bt)*bt,y:Math.round(a(t,e)/bt)*bt,i:e}})}return i.links=function(e){return Ca(d(e)).edges.filter(function(t){return t.l&&t.r}).map(function(t){return{source:e[t.l.i],target:e[t.r.i]}})},i.triangles=function(h){var f=[];return Ca(d(h)).cells.forEach(function(t,e){for(var n,r,a,i,s=t.site,o=t.edges.sort(Ma),u=-1,l=o.length,c=o[l-1].edge,d=c.l===s?c.r:c.l;++ui&&(a=r.slice(i,a),o[s]?o[s]+=a:o[++s]=a),(e=e[0])===(n=n[0])?o[s]?o[s]+=n:o[++s]=n:(o[++s]=null,u.push({i:s,x:Ia(e,n)})),i=Wa.lastIndex;return iu&&(u=e.x),e.y>l&&(l=e.y),n.push(e.x),r.push(e.y);else for(a=0;aa&&(r=n,a=e);return r}function Bi(t){return t.reduce(Ni,0)}function Ni(t,e){return t+e[1]}function Ii(t,e){return Ri(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Ri(t,e){for(var n=-1,r=+t[0],a=(t[1]-r)/e,i=[];++n<=e;)i[n]=a*n+r;return i}function zi(t){return[F.min(t),F.max(t)]}function Wi(t,e){return t.value-e.value}function qi(t,e){var n=t._pack_next;(t._pack_next=e)._pack_prev=t,(e._pack_next=n)._pack_prev=e}function Ui(t,e){(t._pack_next=e)._pack_prev=t}function Vi(t,e){var n=e.x-t.x,r=e.y-t.y,a=t.r+e.r;return n*n+r*r<.999*a*a}function $i(t){if((e=t.children)&&(u=e.length)){var e,n,r,a,i,s,o,u,l=1/0,c=-1/0,d=1/0,h=-1/0;if(e.forEach(Gi),(n=e[0]).x=-n.r,n.y=0,v(n),1=s[0]&&r<=s[1]&&((n=a[F.bisect(o,r,1,l)-1]).y+=c,n.push(t[e]));return a}return n.value=function(t){return arguments.length?(h=t,n):h},n.range=function(t){return arguments.length?(f=pe(t),n):f},n.bins=function(e){return arguments.length?(_="number"==typeof e?function(t){return Ri(t,e)}:pe(e),n):_},n.frequency=function(t){return arguments.length?(d=!!t,n):d},n},F.layout.pack=function(){var u,l=F.layout.hierarchy().sort(Wi),c=0,d=[1,1];function e(t,e){var n=l.call(this,t,e),r=n[0],a=d[0],i=d[1],s=null==u?Math.sqrt:"function"==typeof u?u:function(){return u};if(r.x=r.y=0,wi(r,function(t){t.r=+s(t.value)}),wi(r,$i),c){var o=c*(u?1:Math.max(2*r.r/a,2*r.r/i))/2;wi(r,function(t){t.r+=o}),wi(r,$i),wi(r,function(t){t.r-=o})}return function t(e,n,r,a){var i=e.children;e.x=n+=a*e.x;e.y=r+=a*e.y;e.r*=a;if(i)for(var s=-1,o=i.length;++ss.x&&(s=t),t.depth>o.depth&&(o=t)});var u=p(i,s)/2-i.x,l=h[0]/(s.x+p(s,i)/2+u),c=h[1]/(o.depth||1);Li(r,function(t){t.x=(t.x+u)*l,t.y=t.depth*c})}return n}function _(t){var e=t.children,n=t.parent.children,r=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,n=0,r=0,a=t.children,i=a.length;for(;0<=--i;)(e=a[i]).z+=n,e.m+=n,n+=e.s+(r+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;r?(t.z=r.z+p(t._,r._),t.m=t.z-a):t.z=a}else r&&(t.z=r.z+p(t._,r._));t.parent.A=function(t,e,n){if(e){for(var r,a=t,i=t,s=e,o=a.parent.children[0],u=a.m,l=i.m,c=s.m,d=o.m;s=Qi(s),a=Xi(a),s&&a;)o=Xi(o),(i=Qi(i)).a=t,0<(r=s.z+c-a.z-u+p(s._,a._))&&(ts((f=t,_=n,(h=s).a.parent===f.parent?h.a:_),t,r),u+=r,l+=r),c+=s.m,u+=a.m,d+=o.m,l+=i.m;s&&!Qi(i)&&(i.t=s,i.m+=c-l),a&&!Xi(o)&&(o.t=a,o.m+=u-d,n=t)}var h,f,_;return n}(t,r,t.parent.A||n[0])}function m(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function y(t){t.x*=h[0],t.y=t.depth*h[1]}return e.separation=function(t){return arguments.length?(p=t,e):p},e.size=function(t){return arguments.length?(f=null==(h=t)?y:null,e):f?null:h},e.nodeSize=function(t){return arguments.length?(f=null==(h=t)?null:y,e):f?h:null},bi(e,d)},F.layout.cluster=function(){var c=F.layout.hierarchy().sort(null).value(null),d=Ki,h=[1,1],f=!1;function e(t,e){var a,n=c.call(this,t,e),r=n[0],i=0;wi(r,function(t){var e,n,r=t.children;r&&r.length?(t.x=(n=r).reduce(function(t,e){return t+e.x},0)/n.length,t.y=(e=r,1+F.max(e,function(t){return t.y}))):(t.x=a?i+=d(t,a):0,t.y=0,a=t)});var s=function t(e){var n=e.children;return n&&n.length?t(n[0]):e}(r),o=function t(e){var n,r=e.children;return r&&(n=r.length)?t(r[n-1]):e}(r),u=s.x-d(s,o)/2,l=o.x+d(o,s)/2;return wi(r,f?function(t){t.x=(t.x-r.x)*h[0],t.y=(r.y-t.y)*h[1]}:function(t){t.x=(t.x-u)/(l-u)*h[0],t.y=(1-(r.y?t.y/r.y:1))*h[1]}),n}return e.separation=function(t){return arguments.length?(d=t,e):d},e.size=function(t){return arguments.length?(f=null==(h=t),e):f?null:h},e.nodeSize=function(t){return arguments.length?(f=null!=(h=t),e):f?h:null},bi(e,c)},F.layout.treemap=function(){var r,a=F.layout.hierarchy(),c=Math.round,i=[1,1],s=null,d=es,o=!1,h="squarify",u=.5*(1+Math.sqrt(5));function f(t,e){for(var n,r,a=-1,i=t.length;++an.dy)&&(l=n.dy);++in.dx)&&(l=n.dx);++ir;i--);e=e.slice(a,i)}return e};a.tickFormat=function(t,n){if(!arguments.length)return ys;arguments.length<2?n=ys:"function"!=typeof n&&(n=F.format(n));var r=Math.max(1,u*t/a.ticks().length);return function(t){var e=t/h(Math.round(d(t)));return e*urect,.s>rect").attr("width",L[1]-L[0])}function S(t){t.select(".extent").attr("y",w[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",w[1]-w[0])}function o(){var d,n,r=this,t=F.select(F.event.target),a=M.of(r,arguments),i=F.select(r),e=t.datum(),s=!/^(n|s)$/.test(e)&&k,o=!/^(e|w)$/.test(e)&&b,h=t.classed("extent"),u=gt(r),f=F.mouse(r),l=F.select(O(r)).on("keydown.brush",function(){32==F.event.keyCode&&(h||(d=null,f[0]-=L[1],f[1]-=w[1],h=2),P())}).on("keyup.brush",function(){32==F.event.keyCode&&2==h&&(f[0]+=L[1],f[1]+=w[1],h=0,P())});if(F.event.changedTouches?l.on("touchmove.brush",p).on("touchend.brush",y):l.on("mousemove.brush",p).on("mouseup.brush",y),i.interrupt().selectAll("*").interrupt(),h)f[0]=L[0]-f[0],f[1]=w[0]-f[1];else if(e){var c=+/w$/.test(e),_=+/^n/.test(e);n=[L[1-c]-f[0],w[1-_]-f[1]],f[0]=L[c],f[1]=w[_]}else F.event.altKey&&(d=f.slice());function p(){var t=F.mouse(r),e=!1;n&&(t[0]+=n[0],t[1]+=n[1]),h||(F.event.altKey?(d||(d=[(L[0]+L[1])/2,(w[0]+w[1])/2]),f[0]=L[+(t[0]e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:\^)/,/^(?:v\b)/,/^(?:\s*--[x]\s*)/,/^(?:\s*-->\s*)/,/^(?:\s*--[o]\s*)/,/^(?:\s*---\s*)/,/^(?:\s*-\.-[x]\s*)/,/^(?:\s*-\.->\s*)/,/^(?:\s*-\.-[o]\s*)/,/^(?:\s*-\.-\s*)/,/^(?:\s*.-[x]\s*)/,/^(?:\s*\.->\s*)/,/^(?:\s*\.-[o]\s*)/,/^(?:\s*\.-\s*)/,/^(?:\s*==[x]\s*)/,/^(?:\s*==>\s*)/,/^(?:\s*==[o]\s*)/,/^(?:\s*==[\=]\s*)/,/^(?:\s*--\s*)/,/^(?:\s*-\.\s*)/,/^(?:\s*==\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:\n+)/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[2,3],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],inclusive:!0}}};function Yt(){this.yy={}}return xt.lexer=Dt,new((Yt.prototype=xt).Parser=Yt)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,5],n=[1,6],r=[1,12],a=[1,13],i=[1,14],s=[1,15],o=[1,16],u=[1,17],l=[1,18],c=[1,19],d=[1,20],h=[1,21],f=[1,22],_=[8,16,17,18,19,20,21,22,23,24,25,26],p=[1,37],m=[1,33],y=[1,34],g=[1,35],v=[1,36],M=[8,10,16,17,18,19,20,21,22,23,24,25,26,28,32,37,39,40,45,57,58],k=[10,28],b=[10,28,37,57,58],L=[2,49],w=[1,45],x=[1,48],D=[1,49],Y=[1,52],T=[2,65],A=[1,65],S=[1,66],E=[1,67],j=[1,68],C=[1,69],F=[1,70],O=[1,71],H=[1,72],P=[1,73],B=[8,16,17,18,19,20,21,22,23,24,25,26,47],N=[10,28,37],I={trace:function(){},yy:{},symbols_:{error:2,expressions:3,graph:4,EOF:5,graphStatement:6,idStatement:7,"{":8,stmt_list:9,"}":10,strict:11,GRAPH:12,DIGRAPH:13,textNoTags:14,textNoTagsToken:15,ALPHA:16,NUM:17,COLON:18,PLUS:19,EQUALS:20,MULT:21,DOT:22,BRKT:23,SPACE:24,MINUS:25,keywords:26,stmt:27,";":28,node_stmt:29,edge_stmt:30,attr_stmt:31,"=":32,subgraph:33,attr_list:34,NODE:35,EDGE:36,"[":37,a_list:38,"]":39,",":40,edgeRHS:41,node_id:42,edgeop:43,port:44,":":45,compass_pt:46,SUBGRAPH:47,n:48,ne:49,e:50,se:51,s:52,sw:53,w:54,nw:55,c:56,ARROW_POINT:57,ARROW_OPEN:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"{",10:"}",11:"strict",12:"GRAPH",13:"DIGRAPH",16:"ALPHA",17:"NUM",18:"COLON",19:"PLUS",20:"EQUALS",21:"MULT",22:"DOT",23:"BRKT",24:"SPACE",25:"MINUS",26:"keywords",28:";",32:"=",35:"NODE",36:"EDGE",37:"[",39:"]",40:",",45:":",47:"SUBGRAPH",48:"n",49:"ne",50:"e",51:"se",52:"s",53:"sw",54:"w",55:"nw",56:"c",57:"ARROW_POINT",58:"ARROW_OPEN"},productions_:[0,[3,2],[4,5],[4,6],[4,4],[6,1],[6,1],[7,1],[14,1],[14,2],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[9,1],[9,3],[27,1],[27,1],[27,1],[27,3],[27,1],[31,2],[31,2],[31,2],[34,4],[34,3],[34,3],[34,2],[38,5],[38,5],[38,3],[30,3],[30,3],[30,2],[30,2],[41,3],[41,3],[41,2],[41,2],[29,2],[29,1],[42,2],[42,1],[44,4],[44,2],[44,2],[33,5],[33,4],[33,3],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,0],[43,1],[43,1]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:this.$=i[o-1];break;case 2:this.$=i[o-4];break;case 3:this.$=i[o-5];break;case 4:this.$=i[o-3];break;case 8:case 10:case 11:this.$=i[o];break;case 9:this.$=i[o-1]+""+i[o];break;case 12:case 13:case 14:case 15:case 16:case 18:case 19:case 20:this.$=i[o];break;case 17:this.$="
";break;case 39:this.$="oy";break;case 40:r.addLink(i[o-1],i[o].id,i[o].op),this.$="oy";break;case 42:r.addLink(i[o-1],i[o].id,i[o].op),this.$={op:i[o-2],id:i[o-1]};break;case 44:this.$={op:i[o-1],id:i[o]};break;case 48:r.addVertex(i[o-1]),this.$=i[o-1];break;case 49:r.addVertex(i[o]),this.$=i[o];break;case 66:this.$="arrow";break;case 67:this.$="arrow_open"}},table:[{3:1,4:2,6:3,11:[1,4],12:e,13:n},{1:[3]},{5:[1,7]},{7:8,8:[1,9],14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{6:23,12:e,13:n},t(_,[2,5]),t(_,[2,6]),{1:[2,1]},{8:[1,24]},{7:30,8:p,9:25,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},t([8,10,28,32,37,39,40,45,57,58],[2,7],{15:38,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f}),t(M,[2,8]),t(M,[2,10]),t(M,[2,11]),t(M,[2,12]),t(M,[2,13]),t(M,[2,14]),t(M,[2,15]),t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),t(M,[2,19]),t(M,[2,20]),{7:39,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{7:30,8:p,9:40,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,41]},{10:[2,21],28:[1,42]},t(k,[2,23]),t(k,[2,24]),t(k,[2,25]),t(b,L,{44:44,32:[1,43],45:w}),t(k,[2,27],{41:46,43:47,57:x,58:D}),t(k,[2,47],{43:47,34:50,41:51,37:Y,57:x,58:D}),{34:53,37:Y},{34:54,37:Y},{34:55,37:Y},{7:56,8:[1,57],14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{7:30,8:p,9:58,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},t(M,[2,9]),{8:[1,59]},{10:[1,60]},{5:[2,4]},{7:30,8:p,9:61,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{7:62,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},t(b,[2,48]),t(b,T,{14:10,15:11,7:63,46:64,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,48:A,49:S,50:E,51:j,52:C,53:F,54:O,55:H,56:P}),t(k,[2,41],{34:74,37:Y}),{7:77,8:p,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,33:76,42:75,47:v},t(B,[2,66]),t(B,[2,67]),t(k,[2,46]),t(k,[2,40],{34:78,37:Y}),{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:79,39:[1,80]},t(k,[2,28]),t(k,[2,29]),t(k,[2,30]),{8:[1,82]},{7:30,8:p,9:83,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,84]},{7:30,8:p,9:85,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{5:[2,2]},{10:[2,22]},t(k,[2,26]),t(b,[2,51],{45:[1,86]}),t(b,[2,52]),t(b,[2,56]),t(b,[2,57]),t(b,[2,58]),t(b,[2,59]),t(b,[2,60]),t(b,[2,61]),t(b,[2,62]),t(b,[2,63]),t(b,[2,64]),t(k,[2,38]),t(N,[2,44],{43:47,41:87,57:x,58:D}),t(N,[2,45],{43:47,41:88,57:x,58:D}),t(b,L,{44:44,45:w}),t(k,[2,39]),{39:[1,89]},t(k,[2,34],{34:90,37:Y}),{32:[1,91]},{7:30,8:p,9:92,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,93]},t(b,[2,55]),{10:[1,94]},t(b,T,{46:95,48:A,49:S,50:E,51:j,52:C,53:F,54:O,55:H,56:P}),t(N,[2,42]),t(N,[2,43]),t(k,[2,33],{34:96,37:Y}),t(k,[2,32]),{7:97,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{10:[1,98]},t(b,[2,54]),{5:[2,3]},t(b,[2,50]),t(k,[2,31]),{28:[1,99],39:[2,37],40:[1,100]},t(b,[2,53]),{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:101},{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:102},{39:[2,35]},{39:[2,36]}],defaultActions:{7:[2,1],41:[2,4],60:[2,2],61:[2,22],94:[2,3],101:[2,35],102:[2,36]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:--[o])/,/^(?:--)/,/^(?:-)/,/^(?:\+)/,/^(?:=)/,/^(?:[\u0021-\u0027\u002A-\u002E\u003F\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC_])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:\s)/,/^(?:\n)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!0}}};function z(){this.yy={}}return I.lexer=R,new((z.prototype=I).Parser=z)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){var r;r=function(t,e){return function(n){var r={};function a(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}return a.m=n,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=5)}([function(t,e){t.exports=n(19)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.addDummyNode=s,e.simplify=u,e.asNonCompoundGraph=l,e.successorWeights=c,e.predecessorWeights=d,e.intersectRect=h,e.buildLayerMatrix=f,e.normalizeRanks=_,e.removeEmptyRanks=p,e.addBorderNode=m,e.maxRank=y,e.partition=g,e.time=v,e.notime=M;var r,a=n(0),o=(r=a)&&r.__esModule?r:{default:r},i=n(2);function s(t,e,n,r){for(var a=void 0;a=o.default.uniqueId(r),t.hasNode(a););return n.dummy=e,t.setNode(a,n),a}function u(r){var a=(new i.Graph).setGraph(r.graph());return o.default.each(r.nodes(),function(t){a.setNode(t,r.node(t))}),o.default.each(r.edges(),function(t){var e=a.edge(t.v,t.w)||{weight:0,minlen:1},n=r.edge(t);a.setEdge(t.v,t.w,{weight:e.weight+n.weight,minlen:Math.max(e.minlen,n.minlen)})}),a}function l(e){var n=new i.Graph({multigraph:e.isMultigraph()}).setGraph(e.graph());return o.default.each(e.nodes(),function(t){e.children(t).length||n.setNode(t,e.node(t))}),o.default.each(e.edges(),function(t){n.setEdge(t,e.edge(t))}),n}function c(n){var t=o.default.map(n.nodes(),function(t){var e={};return o.default.each(n.outEdges(t),function(t){e[t.w]=(e[t.w]||0)+n.edge(t).weight}),e});return o.default.zipObject(n.nodes(),t)}function d(n){var t=o.default.map(n.nodes(),function(t){var e={};return o.default.each(n.inEdges(t),function(t){e[t.v]=(e[t.v]||0)+n.edge(t).weight}),e});return o.default.zipObject(n.nodes(),t)}function h(t,e){var n=t.x,r=t.y,a=e.x-n,i=e.y-r,s=t.width/2,o=t.height/2;if(!a&&!i)throw new Error("Not possible to find intersection inside of the rectangle");var u=void 0,l=void 0;return Math.abs(i)*s>Math.abs(a)*o?(i<0&&(o=-o),u=o*a/i,l=o):(a<0&&(s=-s),l=(u=s)*i/a),{x:n+u,y:r+l}}function f(r){var a=o.default.map(o.default.range(y(r)+1),function(){return[]});return o.default.each(r.nodes(),function(t){var e=r.node(t),n=e.rank;o.default.isUndefined(n)||(a[n][e.order]=t)}),a}function _(n){var r=o.default.min(o.default.map(n.nodes(),function(t){return n.node(t).rank}));o.default.each(n.nodes(),function(t){var e=n.node(t);o.default.has(e,"rank")&&(e.rank-=r)})}function p(n){var r=o.default.min(o.default.map(n.nodes(),function(t){return n.node(t).rank})),a=[];o.default.each(n.nodes(),function(t){var e=n.node(t).rank-r;a[e]||(a[e]=[]),a[e].push(t)});var i=0,s=n.graph().nodeRankFactor;o.default.each(a,function(t,e){o.default.isUndefined(t)&&e%s!=0?--i:i&&o.default.each(t,function(t){n.node(t).rank+=i})})}function m(t,e,n,r){var a={width:0,height:0};return 4<=arguments.length&&(a.rank=n,a.order=r),s(t,"border",a,e)}function y(n){return o.default.max(o.default.map(n.nodes(),function(t){var e=n.node(t).rank;if(!o.default.isUndefined(e))return e}))}function g(t,e){var n={lhs:[],rhs:[]};return o.default.each(t,function(t){e(t)?n.lhs.push(t):n.rhs.push(t)}),n}function v(t,e){var n=o.default.now();try{return e()}finally{console.log(t+" time: "+(o.default.now()-n)+"ms")}}function M(t,e){return e()}e.default={addDummyNode:s,simplify:u,asNonCompoundGraph:l,successorWeights:c,predecessorWeights:d,intersectRect:h,buildLayerMatrix:f,normalizeRanks:_,removeEmptyRanks:p,addBorderNode:m,maxRank:y,partition:g,time:v,notime:M}},function(t,e){t.exports=n(29)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.longestPath=i,e.slack=o;var r,a=n(0),s=(r=a)&&r.__esModule?r:{default:r};function i(a){var i={};s.default.each(a.sources(),function e(t){var n=a.node(t);if(s.default.has(i,t))return n.rank;i[t]=!0;var r=s.default.min(s.default.map(a.outEdges(t),function(t){return e(t.w)-a.edge(t).minlen}))||0;return n.rank=r})}function o(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}e.default={longestPath:i,slack:o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),o=(r=a)&&r.__esModule?r:{default:r},i=n(2),u=n(3);function s(i,s){return o.default.each(i.nodes(),function r(a){o.default.each(s.nodeEdges(a),function(t){var e=t.v,n=a===e?t.w:e;i.hasNode(n)||(0,u.slack)(s,t)||(i.setNode(n,{}),i.setEdge(a,n,{}),r(n))})}),i.nodeCount()}function l(e,n){return o.default.minBy(n.edges(),function(t){if(e.hasNode(t.v)!==e.hasNode(t.w))return(0,u.slack)(n,t)})}function c(t,e,n){o.default.each(t.nodes(),function(t){e.node(t).rank+=n})}e.default=function(t){var e=new i.Graph({directed:!1}),n=t.nodes()[0],r=t.nodeCount();e.setNode(n,{});for(var a=void 0;s(e,t)s.lim&&(o=s,u=!0);var l=_.default.filter(n.edges(),function(t){return u===g(e,e.node(t.v),o)&&u!==g(e,e.node(t.w),o)});return _.default.minBy(l,function(t){return(0,c.slack)(n,t)})}function y(t,e,n,r){var a,i,s,o,u=n.v,l=n.w;t.removeEdge(u,l),t.setEdge(r.v,r.w,{}),f(t),h(t,e),a=t,i=e,s=_.default.find(a.nodes(),function(t){return!i.node(t).parent}),o=(o=d(a,s)).slice(1),_.default.each(o,function(t){var e=a.node(t).parent,n=i.edge(t,e),r=!1;n||(n=i.edge(e,t),r=!0),i.node(t).rank=i.node(e).rank+(r?n.minlen:-n.minlen)})}function g(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}u.initLowLimValues=f,u.initCutValues=h,u.calcCutValue=l,u.leaveEdge=p,u.enterEdge=m,u.exchangeEdges=y,e.default=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),s=(r=a)&&r.__esModule?r:{default:r};e.default=function(l){var r,a,i,c=(r=l,a={},i=0,s.default.each(r.children(),function t(e){var n=i;s.default.each(r.children(e),t),a[e]={low:n,lim:i++}}),a);s.default.each(l.graph().dummyChains,function(t){for(var e=l.node(t),n=e.edgeObj,r=function(t,e,n,r){var a=[],i=[],s=Math.min(e[n].low,e[r].low),o=Math.max(e[n].lim,e[r].lim),u=void 0,l=void 0;for(u=n;u=t.parent(u),a.push(u),u&&(e[u].low>s||o>e[u].lim););for(l=u,u=r;(u=t.parent(u))!==l;)i.push(u);return{path:a.concat(i.reverse()),lca:l}}(l,c,n.v,n.w),a=r.path,i=r.lca,s=0,o=a[s],u=!0;t!==n.w;){if(e=l.node(t),u){for(;(o=a[s])!==i&&l.node(o).maxRank>1]+=t.weight;u+=t.weight*n})),u}e.default=function(t,e){for(var n=0,r=1;r=i.barycenter)&&(n=t,a=r=0,(e=i).weight&&(r+=e.barycenter*e.weight,a+=e.weight),n.weight&&(r+=n.barycenter*n.weight,a+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/a,e.weight=a,e.i=Math.min(n.i,e.i),n.merged=!0)}}function r(e){return function(t){t.in.push(e),0==--t.indegree&&n.push(t)}}for(;n.length;){var a=n.pop();t.push(a),s.default.each(a.in.reverse(),e(a)),s.default.each(a.out,r(a))}return s.default.chain(t).filter(function(t){return!t.merged}).map(function(t){return s.default.pick(t,["vs","i","barycenter","weight"])}).value()}(s.default.filter(r,function(t){return!t.indegree}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var d=r(n(0)),h=r(n(1));function r(t){return t&&t.__esModule?t:{default:t}}function f(t,e,n){for(var r=void 0;e.length&&(r=d.default.last(e)).i<=n;)e.pop(),t.push(r.vs),n++;return n}e.default=function(t,e){var n,r=h.default.partition(t,function(t){return d.default.has(t,"barycenter")}),a=r.lhs,i=d.default.sortBy(r.rhs,function(t){return-t.i}),s=[],o=0,u=0,l=0;a.sort((n=!!e,function(t,e){return t.barycentere.barycenter?1:n?e.i-t.i:t.i-e.i})),l=f(s,i,l),d.default.each(a,function(t){l+=t.vs.length,s.push(t.vs),o+=t.barycenter*t.weight,u+=t.weight,l=f(s,i,l)});var c={vs:d.default.flatten(s,!0)};return u&&(c.barycenter=o/u,c.weight=u),c}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r},l=n(2);e.default=function(i,n,r){var s=function(t){for(var e=void 0;t.hasNode(e=u.default.uniqueId("_root")););return e}(i),o=new l.Graph({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(function(t){return i.node(t)});return u.default.each(i.nodes(),function(a){var t=i.node(a),e=i.parent(a);(t.rank===n||t.minRank<=n&&n<=t.maxRank)&&(o.setNode(a),o.setParent(a,e||s),u.default.each(i[r](a),function(t){var e=t.v===a?t.w:t.v,n=o.edge(e,a),r=u.default.isUndefined(n)?0:n.weight;o.setEdge(e,a,{weight:i.edge(t).weight+r})}),u.default.has(t,"minRank")&&o.setNode(a,{borderLeft:t.borderLeft[n],borderRight:t.borderRight[n]}))}),o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};e.default=function(a,i,t){var s={},o=void 0;u.default.each(t,function(t){for(var e=a.parent(t),n=void 0,r=void 0;e;){if((n=a.parent(e))?(r=s[n],s[n]=e):(r=o,o=e),r&&r!==e)return void i.setEdge(r,e);e=n}})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=r(n(0)),o=r(n(1)),u=n(27);function r(t){return t&&t.__esModule?t:{default:t}}e.default=function(n){var r,t,a,i;n=o.default.asNonCompoundGraph(n),r=n,t=o.default.buildLayerMatrix(r),a=r.graph().ranksep,i=0,s.default.each(t,function(t){var e=s.default.max(s.default.map(t,function(t){return r.node(t).height}));s.default.each(t,function(t){r.node(t).y=i+e/2}),i+=e+a}),s.default.each((0,u.positionX)(n),function(t,e){n.node(e).x=t})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.positionX=i;var v=a(n(0)),M=n(2),r=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}function l(l,t){var c={};return v.default.reduce(t,function(t,r){var i=0,s=0,o=t.length,u=v.default.last(r);return v.default.each(r,function(t,e){var n=function(e,t){if(e.node(t).dummy)return v.default.find(e.predecessors(t),function(t){return e.node(t).dummy})}(l,t),a=n?l.node(n).order:o;(n||t===u)&&(v.default.each(r.slice(s,e+1),function(r){v.default.each(l.predecessors(r),function(t){var e=l.node(t),n=e.order;!(na)&&d(s,t,i)})})}return v.default.reduce(t,function(r,a){var i=-1,s=void 0,o=0;return v.default.each(a,function(t,e){if("border"===u.node(t).dummy){var n=u.predecessors(t);n.length&&(s=u.node(n[0]).order,l(a,o,e,i,s),o=e,i=s)}l(a,o,a.length,s,r.length)}),a}),s}function d(t,e,n){if(n",main:"dist/dagre-layout.js",keywords:["graph","layout","dagre"],scripts:{lint:"standard",jest:"jest --coverage",karma:"node -r babel-register node_modules/.bin/karma start",test:"yarn lint && yarn jest && yarn karma --single-run",bench:"node -r babel-register src/bench.js",build:"node -r babel-register node_modules/.bin/webpack --progress --colors","build:watch":"yarn build --watch",upgrade:"yarn-upgrade-all"},dependencies:{graphlib:"^2.1.1",lodash:"^4.17.4"},devDependencies:{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-preset-env":"^1.6.0","babel-preset-es2015":"^6.24.1",benchmark:"^2.1.4",chai:"^4.1.2",coveralls:"^2.13.1",jest:"^21.0.1",karma:"^1.7.1","karma-chrome-launcher":"^2.2.0","karma-firefox-launcher":"^1.0.1","karma-mocha":"^1.3.0","karma-safari-launcher":"^1.0.0",mocha:"^3.5.0",sprintf:"^0.1.5",standard:"^10.0.3",webpack:"^3.5.6","webpack-node-externals":"^1.6.0","yarn-upgrade-all":"^0.1.8"},repository:{type:"git",url:"https://github.com/tylingsoft/dagre-layout.git"},license:"MIT",files:["dist/","lib/","index.js"],standard:{ignore:["dist/**/*.js","coverage/**/*.js"]},jest:{testRegex:"test/.+?-test\\.js",testPathIgnorePatterns:["test/bundle-test\\.js"]}}}]).default},t.exports=r(n(19),n(29))},function(t,e,n){var r=n(4),a=n(164);t.exports=function(e,t,n,r){return function(t,n,i,e){var s,o,u={},l=new a,r=function(t){var e=t.v!==s?t.v:t.w,n=u[e],r=i(t),a=o.distance+r;if(r<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+r);athis._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},r.prototype._heapify=function(t){var e=this._arr,n=2*t,r=n+1,a=t;n>1].prioritye[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[2,3,15],inclusive:!1},ALIAS:{rules:[2,3,7,8],inclusive:!1},ID:{rules:[2,3,6],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:!0}}};function w(){this.yy={}}return b.lexer=L,new((w.prototype=b).Parser=w)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.apply=e.setTitle=e.addNote=e.PLACEMENT=e.ARROWTYPE=e.LINETYPE=e.clear=e.getTitle=e.getActorKeys=e.getActor=e.getActors=e.getMessages=e.addSignal=e.addMessage=e.addActor=void 0;var a=n(1),i={},s=[],o=[],r="",u=e.addActor=function(t,e,n){var r=i[t];r&&e===r.name&&null==n||(null==n&&(n=e),i[t]={name:e,description:n})},l=e.addMessage=function(t,e,n,r){s.push({from:t,to:e,message:n,answer:r})},c=e.addSignal=function(t,e,n,r){a.logger.debug("Adding message from="+t+" to="+e+" message="+n+" type="+r),s.push({from:t,to:e,message:n,type:r})},d=e.getMessages=function(){return s},h=e.getActors=function(){return i},f=e.getActor=function(t){return i[t]},_=e.getActorKeys=function(){return Object.keys(i)},p=e.getTitle=function(){return r},m=e.clear=function(){i={},s=[]},y=e.LINETYPE={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21},g=e.ARROWTYPE={FILLED:0,OPEN:1},v=e.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},M=e.addNote=function(t,e,n){var r={actor:t,placement:e,message:n},a=[].concat(t,t);o.push(r),s.push({from:a[0],to:a[1],message:n,type:y.NOTE,placement:e})},k=e.setTitle=function(t){r=t},b=e.apply=function e(t){if(t instanceof Array)t.forEach(function(t){e(t)});else switch(t.type){case"addActor":u(t.actor,t.actor,t.description);break;case"activeStart":case"activeEnd":c(t.actor,void 0,void 0,t.signalType);break;case"addNote":M(t.actor,t.placement,t.text);break;case"addMessage":c(t.from,t.to,t.msg,t.signalType);break;case"loopStart":c(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":c(void 0,void 0,void 0,t.signalType);break;case"optStart":c(void 0,void 0,t.optText,t.signalType);break;case"optEnd":c(void 0,void 0,void 0,t.signalType);break;case"altStart":case"else":c(void 0,void 0,t.altText,t.signalType);break;case"altEnd":c(void 0,void 0,void 0,t.signalType);break;case"setTitle":k(t.text);break;case"parStart":case"and":c(void 0,void 0,t.parText,t.signalType);break;case"parEnd":c(void 0,void 0,void 0,t.signalType)}};e.default={addActor:u,addMessage:l,addSignal:c,getMessages:d,getActors:h,getActor:f,getActorKeys:_,getTitle:p,clear:m,LINETYPE:y,ARROWTYPE:g,PLACEMENT:v,addNote:M,setTitle:k,apply:b}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getInfo=e.setInfo=e.getMessage=e.setMessage=void 0;var r=n(1),a="",i=!1,s=e.setMessage=function(t){r.logger.debug("Setting message to: "+t),a=t},o=e.getMessage=function(){return a},u=e.setInfo=function(t){i=t},l=e.getInfo=function(){return i};e.default={setMessage:s,getMessage:o,setInfo:u,getInfo:l}},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,9,10,12],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,message:11,say:12,TXT:13,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo",12:"say",13:"TXT"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1],[8,1],[11,2]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:return r;case 4:break;case 6:r.setInfo(!0);break;case 7:r.setMessage(i[o]);break;case 8:this.$=i[o-1].substring(1).trim().replace(/\\n/gm,"\n")}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8],11:9,12:[1,10]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6]),t(e,[2,7]),{13:[1,11]},t(e,[2,8])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::[^#\n;]+)/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[10,11],inclusive:!1},struct:{rules:[5,6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],inclusive:!0}}};function L(){this.yy={}}return k.lexer=b,new((L.prototype=k).Parser=L)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.relationType=e.lineType=e.cleanupLabel=e.addMembers=e.addRelation=e.getRelations=e.getClasses=e.getClass=e.clear=e.addClass=void 0;var r=n(1),a=[],i={},s=e.addClass=function(t){void 0===i[t]&&(i[t]={id:t,methods:[],members:[]})},o=e.clear=function(){a=[],i={}},u=e.getClass=function(t){return i[t]},l=e.getClasses=function(){return i},c=e.getRelations=function(){return a},d=e.addRelation=function(t){r.logger.warn("Adding relation: "+JSON.stringify(t)),s(t.id1),s(t.id2),a.push(t)},h=e.addMembers=function(t,e){var n=i[t];"string"==typeof e&&(")"===e.substr(-1)?n.methods.push(e):n.members.push(e))},f=e.cleanupLabel=function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},_=e.lineType={LINE:0,DOTTED_LINE:1},p=e.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3};e.default={addClass:s,clear:o,getClass:u,getClasses:l,getRelations:c,addRelation:d,addMembers:h,cleanupLabel:f,lineType:_,relationType:p}},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[2,3],n=[1,7],r=[7,12,15,17,19,20,21],a=[7,11,12,15,17,19,20,21],i=[2,20],s=[1,32],o={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,":":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:return i[o-1];case 2:return r.setDirection(i[o-3]),i[o-1];case 4:r.setOptions(i[o-1]),this.$=i[o];break;case 5:i[o-1]+=i[o],this.$=i[o-1];break;case 7:this.$=[];break;case 8:i[o-1].push(i[o]),this.$=i[o-1];break;case 9:this.$=i[o-1];break;case 11:r.commit(i[o]);break;case 12:r.branch(i[o]);break;case 13:r.checkout(i[o]);break;case 14:r.merge(i[o]);break;case 15:r.reset(i[o]);break;case 16:this.$="";break;case 17:this.$=i[o];break;case 18:this.$=i[o-1]+":"+i[o];break;case 19:this.$=i[o-1]+":"+r.count,r.count=0;break;case 20:r.count=0;break;case 21:r.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:e,9:6,12:n},{5:[1,8]},{7:[1,9]},t(r,[2,7],{10:10,11:[1,11]}),t(a,[2,6]),{6:12,7:e,9:6,12:n},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},t(a,[2,5]),{7:[1,21]},t(r,[2,8]),{12:[1,22]},t(r,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},t(r,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:i,25:31,26:s},{12:i,25:33,26:s},{12:[2,18]},{12:i,25:34,26:s},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,d={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},h=/["&'<>`]/g,r={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},a=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,f=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,i=/&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g,m={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},y={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},s={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},_=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],p=String.fromCharCode,g={}.hasOwnProperty,v=function(t,e){return g.call(t,e)},M=function(t,e){if(!t)return e;var n,r={};for(n in e)r[n]=v(t,n)?t[n]:e[n];return r},k=function(t,e){var n="";return 55296<=t&&t<=57343||1114111>>10&1023|55296),t=56320|1023&t),n+=p(t))},b=function(t){return"&#x"+t.toString(16).toUpperCase()+";"},L=function(t){return"&#"+t+";"},w=function(t){throw Error("Parse error: "+t)},x=function(t,e){(e=M(e,x.options)).strict&&f.test(t)&&w("forbidden code point");var n=e.encodeEverything,r=e.useNamedReferences,a=e.allowUnsafeSymbols,i=e.decimal?L:b,s=function(t){return i(t.charCodeAt(0))};return n?(t=t.replace(u,function(t){return r&&v(d,t)?"&"+d[t]+";":s(t)}),r&&(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),r&&(t=t.replace(c,function(t){return"&"+d[t]+";"}))):r?(a||(t=t.replace(h,function(t){return"&"+d[t]+";"})),t=(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(c,function(t){return"&"+d[t]+";"})):a||(t=t.replace(h,s)),t.replace(o,function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1);return i(1024*(e-55296)+n-56320+65536)}).replace(l,s)};x.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var D=function(t,_){var p=(_=M(_,D.options)).strict;return p&&a.test(t)&&w("malformed character reference"),t.replace(i,function(t,e,n,r,a,i,s,o){var u,l,c,d,h,f;return e?(c=e,l=n,p&&!l&&w("character reference was not terminated by a semicolon"),u=parseInt(c,10),k(u,p)):r?(d=r,l=a,p&&!l&&w("character reference was not terminated by a semicolon"),u=parseInt(d,16),k(u,p)):i?v(m,h=i)?m[h]:(p&&w("named character reference was not terminated by a semicolon"),t):(h=s,(f=o)&&_.isAttributeValue?(p&&"="==f&&w("`&` did not start a character reference"),t):(p&&w("named character reference was not terminated by a semicolon"),y[h]+(f||"")))})};D.options={isAttributeValue:!1,strict:!1};var Y={version:"1.1.1",encode:x,decode:D,escape:function(t){return t.replace(h,function(t){return r[t]})},unescape:D};void 0===(S=function(){return Y}.call(E,j,E,T))||(T.exports=S)}()}).call(E,j(3)(t),j(18))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decodeEntities=e.encodeEntities=e.version=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=n(1),f=E(n(157)),_=E(n(158)),p=E(n(208)),m=E(n(222)),y=E(n(224)),r=E(n(171)),a=E(n(160)),s=E(n(161)),o=E(n(168)),u=E(n(169)),l=E(n(170)),g=E(n(225)),c=E(n(172)),d=E(n(173)),v=E(n(174)),M=E(n(226)),k=E(n(175)),b=E(n(176)),L=E(n(227)),w=E(n(201)),x=E(n(6)),D=E(n(203)),Y=E(n(346)),T=E(n(348)),A=E(n(350)),S=E(n(352));function E(t){return t&&t.__esModule?t:{default:t}}var j={dark:Y.default,default:T.default,forest:A.default,neutral:S.default},C={theme:T.default,logLevel:5,startOnLoad:!0,arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!0,useMaxWidth:!0},sequenceDiagram:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:3,axisFormatter:[["%I:%M",function(t){return t.getHours()}],["w. %U",function(t){return 1===t.getDay()}],["%a %d",function(t){return t.getDay()&&1!==t.getDate()}],["%b %d",function(t){return 1!==t.getDate()}],["%m-%y",function(t){return t.getMonth()}]]},classDiagram:{},gitGraph:{},info:{}};(0,h.setLogLevel)(C.logLevel);var F=e.version=function(){return D.default.version},O=e.encodeEntities=function(t){var e=t;return e=(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){var e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"fl°°"+e+"¶ß":"fl°"+e+"¶ß"})},H=e.decodeEntities=function(t){var e=t;return e=(e=(e=e.replace(/fl°°/g,function(){return"&#"})).replace(/fl°/g,function(){return"&"})).replace(/¶ß/g,function(){return";"})},P=function(t,e,n,r){if(void 0!==r)r.innerHTML="",x.default.select(r).append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g");else{var a=document.querySelector("#d"+t);a&&(a.innerHTML=""),x.default.select("body").append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g")}window.txt=e,e=O(e);var i=x.default.select("#d"+t).node();switch(_.default.detectType(e)){case"gitGraph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,L.default.setConf(C.gitGraph),L.default.draw(e,t,!1);break;case"graph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,p.default.setConf(C.flowchart),p.default.draw(e,t,!1);break;case"dotGraph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,p.default.setConf(C.flowchart),p.default.draw(e,t,!0);break;case"sequenceDiagram":C.sequenceDiagram.arrowMarkerAbsolute=C.arrowMarkerAbsolute,m.default.setConf(C.sequenceDiagram),m.default.draw(e,t);break;case"gantt":C.gantt.arrowMarkerAbsolute=C.arrowMarkerAbsolute,g.default.setConf(C.gantt),g.default.draw(e,t);break;case"classDiagram":C.classDiagram.arrowMarkerAbsolute=C.arrowMarkerAbsolute,M.default.setConf(C.classDiagram),M.default.draw(e,t);break;case"info":C.info.arrowMarkerAbsolute=C.arrowMarkerAbsolute,y.default.draw(e,t,F())}var s=i.firstChild,o=document.createElement("style"),u=window.getComputedStyle(s);o.innerHTML="\n "+(j[C.theme]||T.default)+"\nsvg {\n color: "+u.color+";\n font: "+u.font+";\n}\n ",s.insertBefore(o,s.firstChild),x.default.select("#d"+t).selectAll("foreignobject div").attr("xmlns","http://www.w3.org/1999/xhtml");var l="";C.arrowMarkerAbsolute&&(l=(l=(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)"));var c=x.default.select("#d"+t).node().innerHTML.replace(/url\(#arrowhead/g,"url("+l+"#arrowhead","g");c=H(c),void 0!==n?n(c,f.default.bindFunctions):h.logger.warn("CB = undefined!");var d=x.default.select("#d"+t).node();return null!==d&&"function"==typeof d.remove&&x.default.select("#d"+t).node().remove(),c};var B=function(t){for(var e=Object.keys(t),n=0;n'});else{for(var s=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.split(/
/),u=0;u'+t.text+""):(e.labelType="text",e.style="stroke: #333; stroke-width: 1.5px;fill:none",e.label=t.text.replace(/
/g,"\n"))):e.label=t.text.replace(/
/g,"\n")),a.setEdge(t.start,t.end,e,i)})},i=e.getClasses=function(t,e){var n=void 0;Y.default.clear(),(n=e?A.default.parser:T.default.parser).yy=Y.default,n.parse(t);var r=Y.default.getClasses();return void 0===r.default&&(r.default={id:"default"},r.default.styles=[],r.default.clusterStyles=["rx:4px","fill: rgb(255, 255, 222)","rx: 4px","stroke: rgb(170, 170, 51)","stroke-width: 1px"],r.default.nodeLabelStyles=["fill:#000","stroke:none","font-weight:300",'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf',"font-size:14px"],r.default.edgeLabelStyles=["fill:#000","stroke:none","font-weight:300",'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf',"font-size:14px"]),r},s=e.draw=function(t,e,n){j.logger.debug("Drawing flowchart");var r=void 0;Y.default.clear(),(r=n?A.default.parser:T.default.parser).yy=Y.default;try{r.parse(t)}catch(t){j.logger.debug("Parsing failed")}var a=Y.default.getDirection();void 0===a&&(a="TD");for(var i=new E.default.graphlib.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:a,marginx:20,marginy:20}).setDefaultEdgeLabel(function(){return{}}),s=void 0,o=Y.default.getSubGraphs(),u=o.length-1;0<=u;u--)s=o[u],Y.default.addVertex(s.id,s.title,"group",void 0);var l=Y.default.getVertices(),c=Y.default.getEdges(),d=0;for(d=o.length-1;0<=d;d--){s=o[d],S.default.selectAll("cluster").append("text");for(var h=0;hMath.abs(a)*o?(i<0&&(o=-o),u=0===i?0:o*a/i,l=o):(a<0&&(s=-s),u=s,l=0===a?0:s*i/a),{x:n+u,y:r+l}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=r(n(1)),i=r(n(11)),s=r(n(5)),o=r(n(12)),u=r(n(14)),l=r(n(0)),c=n(27);e.default={d3:a.default,graphlib:i.default,dagre:s.default,intersect:o.default,render:u.default,util:l.default,version:c.version}},function(t,e){t.exports=n(29)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=r(n(6)),i=r(n(7)),s=r(n(3)),o=r(n(8)),u=r(n(9));e.default={node:a.default,circle:i.default,ellipse:s.default,polygon:o.default,rect:u.default}},function(t,e,n){"use strict";function y(t,e){return 0g.width?(l.remove(),s=t.append("g"),c=(l=m.default.drawText(s,u,2*i.width-g.noteMargin))[0][0].getBBox().height,o.attr("width",2*i.width),v.insert(e,n,e+2*i.width,n+2*g.noteMargin+c)):v.insert(e,n,e+i.width,n+2*g.noteMargin+c),o.attr("height",c+2*g.noteMargin),v.bumpVerticalPos(c+2*g.noteMargin)},k=e.drawActors=function(t,e,n,r){for(var a=0;an&&(r.starty=n-6,n+=12),m.default.drawActivation(d,r,n,g),v.insert(r.startx,n-10,r.stopx,n);break;case y.parser.yy.LINETYPE.LOOP_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.LOOP_END:a=v.endLoop(),m.default.drawLoop(d,a,"loop",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.OPT_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.OPT_END:a=v.endLoop(),m.default.drawLoop(d,a,"opt",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.ALT_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.ALT_ELSE:v.bumpVerticalPos(g.boxMargin),a=v.addSectionToLoop(t.message),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.ALT_END:a=v.endLoop(),m.default.drawLoop(d,a,"alt",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.PAR_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.PAR_AND:v.bumpVerticalPos(g.boxMargin),a=v.addSectionToLoop(t.message),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.PAR_END:a=v.endLoop(),m.default.drawLoop(d,a,"par",g),v.bumpVerticalPos(g.boxMargin);break;default:try{v.bumpVerticalPos(g.messageMargin);var i=b(t.from),s=b(t.to),o=i[0]<=s[0]?1:0,u=i[0]/gi," "),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);var i=a.append("tspan");return i.attr("x",e.x+2*e.textMargin),i.attr("fill",e.fill),i.text(r),void 0!==a.textwrap&&a.textwrap({x:e.x,y:e.y,width:n,height:1800},e.textMargin),a},o=e.drawLabel=function(t,e){var n,r,a,i,s,o=t.append("polygon");o.attr("points",(n=e.x,r=e.y,n+","+r+" "+(n+(a=50))+","+r+" "+(n+a)+","+(r+(i=20)-(s=7))+" "+(n+a-1.2*s)+","+(r+i)+" "+n+","+(r+i))),o.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,l(t,e)},c=-1,r=e.drawActor=function(t,e,n,r,a){var i=e+a.width/2,s=t.append("g");0===n&&(c++,s.append("line").attr("id","actor"+c).attr("x1",i).attr("y1",5).attr("x2",i).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));var o=_();o.x=e,o.y=n,o.fill="#eaeaea",o.width=a.width,o.height=a.height,o.class="actor",o.rx=3,o.ry=3,u(s,o),p(a)(r,s,o.x,o.y,o.width,o.height,{class:"actor"})},a=e.anchorElement=function(t){return t.append("g")},i=e.drawActivation=function(t,e,n){var r=_(),a=e.anchored;r.x=e.startx,r.y=e.starty,r.fill="#f4f4f4",r.width=e.stopx-e.startx,r.height=n-e.starty,u(a,r)},s=e.drawLoop=function(t,n,e,r){var a=t.append("g"),i=function(t,e,n,r){return a.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",r).attr("class","loopLine")};i(n.startx,n.starty,n.stopx,n.starty),i(n.stopx,n.starty,n.stopx,n.stopy),i(n.startx,n.stopy,n.stopx,n.stopy),i(n.startx,n.starty,n.startx,n.stopy),void 0!==n.sections&&n.sections.forEach(function(t){i(n.startx,t,n.stopx,t).style("stroke-dasharray","3, 3")});var s=f();s.text=e,s.x=n.startx,s.y=n.starty,s.labelMargin=15,s.class="labelText",o(a,s),(s=f()).text="[ "+n.title+" ]",s.x=n.startx+(n.stopx-n.startx)/2,s.y=n.starty+1.5*r.boxMargin,s.anchor="middle",s.class="loopText",l(a,s),void 0!==n.sectionTitles&&n.sectionTitles.forEach(function(t,e){""!==t&&(s.text="[ "+t+" ]",s.y=n.sections[e]+1.5*r.boxMargin,l(a,s))})},d=e.insertArrowHead=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},h=e.insertArrowCrossHead=function(t){var e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},f=e.getTextObj=function(){return{x:0,y:0,fill:"black","text-anchor":"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0}},_=e.getNoteRect=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},p=function(){function e(t,e,n,r,a,i,s){c(e.append("text").attr("x",n+a/2).attr("y",r+i/2+5).style("text-anchor","middle").text(t),s)}function l(t,e,n,r,a,i,s){var o=e.append("text").attr("x",n+a/2).attr("y",r).style("text-anchor","middle");if(o.append("tspan").attr("x",n+a/2).attr("dy","0").text(t),void 0!==o.textwrap){o.textwrap({x:n+a/2,y:r,width:a,height:i},0);var u=o.selectAll("tspan");0o?e+a-5:n+a+5:(n-e)/2+e+a}).attr("y",function(t,e){return e*n+y.barHeight/2+(y.fontSize/2-2)+r}).attr("text-height",e).attr("class",function(t){for(var e=h(t.startTime),n=h(t.endTime),r=this.getBBox().width,a=0,i=0;io?"taskTextOutsideLeft taskTextOutside"+a+" "+s:"taskTextOutsideRight taskTextOutside"+a+" "+s:"taskText taskText"+a+" "+s})}(t,a,i,s,r,0,e),function(r,a){for(var i=[],s=0,t=0;t "+t.w+": "+JSON.stringify(a.edge(t))),function(t,e,n){var r=function(t){switch(t){case y.default.relationType.AGGREGATION:return"aggregation";case y.default.relationType.EXTENSION:return"extension";case y.default.relationType.COMPOSITION:return"composition";case y.default.relationType.DEPENDENCY:return"dependency"}},a=e.points,i=g.default.svg.line().x(function(t){return t.x}).y(function(t){return t.y}).interpolate("basis"),s=t.append("path").attr("d",i(a)).attr("id","edge"+M).attr("class","relation"),o="";v.arrowMarkerAbsolute&&(o=(o=(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),"none"!==n.relation.type1&&s.attr("marker-start","url("+o+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&s.attr("marker-end","url("+o+"#"+r(n.relation.type2)+"End)");var u=void 0,l=void 0,c=e.points.length;if(c%2!=0){var d=e.points[Math.floor(c/2)],h=e.points[Math.ceil(c/2)];u=(d.x+h.x)/2,l=(d.y+h.y)/2}else{var f=e.points[Math.floor(c/2)];u=f.x,l=f.y}if(void 0!==n.title){var _=t.append("g").attr("class","classLabel"),p=_.append("text").attr("class","label").attr("x",u).attr("y",l).attr("fill","red").attr("text-anchor","middle").text(n.title),m=(window.label=p).node().getBBox();_.insert("rect",":first-child").attr("class","box").attr("x",m.x-v.padding/2).attr("y",m.y-v.padding/2).attr("width",m.width+v.padding).attr("height",m.height+v.padding)}M++}(r,a.edge(t),a.edge(t).relation)}),r.attr("height","100%"),r.attr("width","100%"),r.attr("viewBox","0 0 "+(a.graph().width+20)+" "+(a.graph().height+20))};e.default={setConf:a,draw:i}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.draw=e.setConf=void 0;var u=r(n(177)),l=r(n(245)),c=r(n(2)),d=r(n(265)),h=r(n(327)),f=r(n(201)),_=r(n(176)),p=r(n(6)),m=n(1);function r(t){return t&&t.__esModule?t:{default:t}}var y={},g=void 0,v={nodeSpacing:150,nodeFillColor:"yellow",nodeStrokeWidth:2,nodeStrokeColor:"grey",lineStrokeWidth:4,branchOffset:50,lineColor:"grey",leftMargin:50,branchColors:["#442f74","#983351","#609732","#AA9A39"],nodeRadius:10,nodeLabel:{width:75,height:100,x:-25,y:0}},M={},a=e.setConf=function(t){M=t};function k(t,e,n,r){r=r||"basis";var a=v.branchColors[n%v.branchColors.length],i=p.default.svg.line().x(function(t){return Math.round(t.x)}).y(function(t){return Math.round(t.y)}).interpolate(r);t.append("svg:path").attr("d",i(e)).style("stroke",a).style("stroke-width",v.lineStrokeWidth).style("fill","none")}function b(t,e){e=e||t.node().getBBox();var n=t.node().getCTM();return{left:n.e+e.x*n.a,top:n.f+e.y*n.d,width:e.width,height:e.height}}function L(t,e,n,r,a){m.logger.debug("svgDrawLineForCommits: ",e,n);var i=b(t.select("#node-"+e+" circle")),s=b(t.select("#node-"+n+" circle"));switch(r){case"LR":if(i.left-s.left>v.nodeSpacing){var o={x:i.left-v.nodeSpacing,y:s.top+s.height/2};k(t,[o,{x:s.left+s.width,y:s.top+s.height/2}],a,"linear"),k(t,[{x:i.left,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:o.y},o],a)}else k(t,[{x:i.left,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:s.top+s.height/2},{x:s.left+s.width,y:s.top+s.height/2}],a);break;case"BT":if(s.top-i.top>v.nodeSpacing){var u={x:s.left+s.width/2,y:i.top+i.height+v.nodeSpacing};k(t,[u,{x:s.left+s.width/2,y:s.top}],a,"linear"),k(t,[{x:i.left+i.width/2,y:i.top+i.height},{x:i.left+i.width/2,y:i.top+i.height+v.nodeSpacing/2},{x:s.left+s.width/2,y:u.y-v.nodeSpacing/2},u],a)}else k(t,[{x:i.left+i.width/2,y:i.top+i.height},{x:i.left+i.width/2,y:i.top+v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top-v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top}],a)}}var i=e.draw=function(t,e,n){try{var r=_.default.parser;r.yy=f.default,m.logger.debug("in gitgraph renderer",t,e,n),r.parse(t+"\n"),v=(0,l.default)(v,M,f.default.getOptions()),m.logger.debug("effective options",v);var a=f.default.getDirection();y=f.default.getCommits();var i=f.default.getBranchesAsObjArray();"BT"===a&&(v.nodeLabel.x=i.length*v.branchOffset,v.nodeLabel.width="100%",v.nodeLabel.y=-2*v.nodeRadius);var s=p.default.select("#"+e);(o=s).append("defs").append("g").attr("id","def-commit").append("circle").attr("r",v.nodeRadius).attr("cx",0).attr("cy",0),o.select("#def-commit").append("foreignObject").attr("width",v.nodeLabel.width).attr("height",v.nodeLabel.height).attr("x",v.nodeLabel.x).attr("y",v.nodeLabel.y).attr("class","node-label").attr("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility").append("xhtml:p").html(""),g=1,(0,u.default)(i,function(t){!function t(e,n,r,a){var i=void 0,s=Object.keys(y).length;if((0,h.default)(n))do{if(i=y[n],m.logger.debug("in renderCommitHistory",i.id,i.seq),0=i)return arguments[0]}else r=0;return n.apply(void 0,arguments)}}},function(t,e,n){var a=n(22),i=n(13),s=n(31),o=n(14);t.exports=function(t,e,n){if(!o(n))return!1;var r=typeof e;return!!("number"==r?i(n)&&s(e,n.length):"string"==r&&e in n)&&a(n[e],t)}},function(t,e,n){var r=n(179),a=n(263),i=n(13);t.exports=function(t){return i(t)?r(t,!0):a(t)}},function(t,e,n){var a=n(14),i=n(185),s=n(264),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!a(t))return s(t);var e=i(t),n=[];for(var r in t)("constructor"!=r||!e&&o.call(t,r))&&n.push(r);return n}},function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},function(t,e,n){var r=n(266)(n(323));t.exports=r},function(t,e,n){var o=n(15),u=n(13),l=n(20);t.exports=function(s){return function(t,e,n){var r=Object(t);if(!u(t)){var a=o(e,3);t=l(t),e=function(t){return a(r[t],t,r)}}var i=s(t,e,n);return-1