-/**
- * $Id: EditorUi.js,v 1.21 2013/03/14 20:46:36 david Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph editor
- */
-EditorUi = function(editor, container) {
- this.editor = editor || new Editor();
- this.container = container || document.getElementById('geEditor');
- var graph = editor.graph;
- var self = this;
-
- // Disables scrollbars
- this.container.style.overflow = 'hidden';
-
- // Pre-fetches submenu image
- new Image().src = mxPopupMenu.prototype.submenuImage;
-
- // Pre-fetches connect image
- if (mxConnectionHandler.prototype.connectImage != null) {
- new Image().src = mxConnectionHandler.prototype.connectImage.src;
- }
-
- // Creates the user interface
- this.actions = new Actions(this);
- this.menus = new Menus(this);
- this.createDivs();
- this.refresh();
- this.createUi();
-
- // Disables HTML and text selection
- var textEditing = mxUtils.bind(this, function(evt) {
- if (evt == null) {
- evt = window.event;
- }
-
- if (this.isSelectionAllowed(evt)) {
- return true;
- }
-
- return graph.isEditing();
- });
-
- // Disables text selection while not editing and no dialog visible
- if (this.container == document.body) {
- this.menubarContainer.onselectstart = textEditing;
- this.menubarContainer.onmousedown = textEditing;
- this.toolbarContainer.onselectstart = textEditing;
- this.toolbarContainer.onmousedown = textEditing;
- this.diagramContainer.onselectstart = textEditing;
- this.diagramContainer.onmousedown = textEditing;
- this.sidebarContainer.onselectstart = textEditing;
- this.sidebarContainer.onmousedown = textEditing;
- this.footerContainer.onselectstart = textEditing;
- this.footerContainer.onmousedown = textEditing;
- }
-
- // And uses built-in context menu while editing
- if (mxClient.IS_IE && (typeof(document.documentMode) === 'undefined' ||
- document.documentMode < 9)) {
- mxEvent.addListener(this.diagramContainer, 'contextmenu', textEditing);
- mxEvent.addListener(this.sidebarContainer, 'contextmenu', textEditing);
- } else {
- // Allows browser context menu outside of diagram and sidebar
- this.diagramContainer.oncontextmenu = textEditing;
- this.sidebarContainer.oncontextmenu = textEditing;
- }
-
- // Contains the main graph instance inside the given panel
- graph.init(this.diagramContainer);
- graph.refresh();
-
- // Enables scrollbars and sets cursor style for the container
- graph.container.setAttribute('tabindex', '0');
- // graph.container.style.overflow = (touchStyle) ? 'hidden' : 'auto';
- graph.container.style.cursor = 'default';
- graph.container.style.backgroundImage = 'url(' + editor.gridImage + ')';
- graph.container.style.backgroundPosition = '-1px -1px';
- graph.container.focus();
-
- // Keeps graph container focused on mouse down
- var graphFireMouseEvent = graph.fireMouseEvent;
- graph.fireMouseEvent = function(evtName, me, sender) {
- if (evtName == mxEvent.MOUSE_DOWN) {
- this.container.focus();
- }
-
- graphFireMouseEvent.apply(this, arguments);
- };
-
- // Giuseppe Careri
- // Defines invalid connections along with the error messages that they produce.
- this.createMultiplicities(graph.multiplicities, ['start', 'finally', 'end'], [
- [1, 1],
- [1, 1],
- [0, 0]
- ], [
- [0, 0],
- [0, 0],
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['answer', 'hangup', 'dial',
- 'ext_dial', 'queue', 'voicemail', 'callback'
- ], [
- [1, 1],
- [0, 0],
- [0, 1],
- [0, 1],
- [0, 1],
- [1, 1],
- [0, 1]
- ], [
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['set', 'math'], [
- [1, 1],
- [1, 1]
- ], [
- [1, 'n'],
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['background', 'playback',
- 'menu', 'saydigits', 'saynumber', 'sayphonetic', 'tts', 'ispeechtts', 'getdigits'
- ], [
- [1, 'n'],
- [1, 1],
- [1, 'n'],
- [1, 1],
- [1, 1],
- [1, 1],
- [1, 1],
- [1, 1],
- [1, 'n']
- ], [
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['record'], [
- [1, 1]
- ], [
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['database', 'ispeechasr'], [
- [1, 1],
- [1, 1]
- ], [
- [1, 'n'],
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['gotoc', 'gotoif',
- 'gotoiftime', 'gotoifmultitime', 'vswitch'
- ], [
- [0, 0],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 'n']
- ], [
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['queuelog', 'goal'], [
- [1, 1],
- [1, 1]
- ], [
- [1, 'n'],
- [1, 'n']
- ]);
- this.createMultiplicities(graph.multiplicities, ['noop', 'system', 'agi',
- 'subproject', 'custom_app'
- ], [
- [1, 1],
- [1, 1],
- [0, 1],
- [0, 1],
- [0, 1]
- ], [
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n'],
- [1, 'n']
- ]);
-
- // Giuseppe Careri
- // Processes a doubleclick on an optional cell and fires a <dblclick> event.
- // The event is fired initially.
- // If the graph is enabled and the event has not been consumed, then <edit> is called with the given cell.
- // The event is ignored if no cell was specified.
- graph.dblClick = function(evt, cell) {
- var edges = ['background', 'gotoif', 'gotoiftime', 'menu', 'getdigits', 'vswitch'];
- var mxe = new mxEventObject(mxEvent.DOUBLE_CLICK, 'event', evt, 'cell',
- cell);
- this.fireEvent(mxe);
-
- if (this.isEnabled() && !mxEvent.isConsumed(evt) && !mxe.isConsumed()) {
- // Override dblClick Vertices and Edges
- if (this.getModel().isEdge(cell)) {
- if (edges.indexOf(cell.source.value.tagName) >= 0)
- this.startEditingAtCell(cell);
- } else if (this.getModel().isVertex(cell)) {
- console.log(self);
- console.log(cell);
- self.showDialog(new GeneralDialog(self, cell).container, 320, 280, true,
- true);
- }
- mxe.consume();
- }
- }
-
- // Configures automatic expand on mouseover
- graph.panningHandler.autoExpand = true;
-
- // Installs context menu
- graph.panningHandler.factoryMethod = mxUtils.bind(this, function(menu, cell,
- evt) {
- this.menus.createPopupMenu(menu, cell, evt);
- });
-
- // Initializes the outline
- editor.outline.init(this.outlineContainer);
-
- // Hides context menu
- mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt) {
- graph.panningHandler.hideMenu();
- }));
-
- // Adds gesture handling (pinch to zoom)
- if (mxClient.IS_TOUCH) {
- mxEvent.addListener(graph.container, 'gesturechange',
- mxUtils.bind(this, function(evt) {
- graph.view.getDrawPane().setAttribute('transform', 'scale(' + evt.scale +
- ')');
- graph.view.getOverlayPane().style.visibility = 'hidden';
- })
- );
-
- mxEvent.addListener(graph.container, 'gestureend',
- mxUtils.bind(this, function(evt) {
- graph.view.getDrawPane().removeAttribute('transform');
- graph.zoomToCenter = true;
- graph.zoom(evt.scale);
- graph.view.getOverlayPane().style.visibility = 'visible';
- })
- );
- }
-
- // Create handler for key events
- var keyHandler = this.createKeyHandler(editor);
-
- // Getter for key handler
- this.getKeyHandler = function() {
- return keyHandler;
- };
-
- // Updates the editor UI after the window has been resized
- mxEvent.addListener(window, 'resize', mxUtils.bind(this, function() {
- this.refresh();
- graph.sizeDidChange();
- this.editor.outline.update(false);
- this.editor.outline.outline.sizeDidChange();
- }));
-
- // Updates action and menu states
- this.init();
- this.open();
-};
-
-/**
- * Specifies the size of the split bar.
- */
-EditorUi.prototype.splitSize = (mxClient.IS_TOUCH) ? 16 : 8;
-
-/**
- * Specifies the height of the menubar. Default is 34.
- */
-EditorUi.prototype.menubarHeight = 33;
-
-/**
- * Specifies the height of the toolbar. Default is 36.
- */
-EditorUi.prototype.toolbarHeight = 36;
-
-/**
- * Specifies the height of the footer. Default is 28.
- */
-EditorUi.prototype.footerHeight = 28;
-
-/**
- * Specifies the position of the horizontal split bar. Default is 212.
- */
-EditorUi.prototype.hsplitPosition = 204;
-
-/**
- * Specifies the position of the vertical split bar. Default is 190.
- */
-EditorUi.prototype.vsplitPosition = 190;
-
-/**
- * Installs the listeners to update the action states.
- */
-EditorUi.prototype.init = function() {
- // Updates action states
- this.addUndoListener();
- this.addSelectionListener();
-
- // Overrides clipboard to update paste action state
- var paste = this.actions.get('paste');
-
- var updatePaste = function() {
- paste.setEnabled(!mxClipboard.isEmpty());
- };
-
- var mxClipboardCut = mxClipboard.cut;
- mxClipboard.cut = function() {
- mxClipboardCut.apply(this, arguments);
- updatePaste();
- };
-
- var mxClipboardCopy = mxClipboard.copy;
- mxClipboard.copy = function() {
- mxClipboardCopy.apply(this, arguments);
- updatePaste();
- };
-};
-
-/**
- * Hook for allowing selection and context menu for certain events.
- */
-EditorUi.prototype.isSelectionAllowed = function(evt) {
- return false;
-};
-
-/**
- * Opens the current diagram via the window.opener if one exists.
- */
-EditorUi.prototype.open = function() {
- // Cross-domain window access is not allowed in FF, so if we
- // were opened from another domain then this will fail.
- try {
- if (window.opener != null && window.opener.openFile != null) {
- window.opener.openFile.setConsumer(mxUtils.bind(this, function(xml,
- filename) {
- try {
- var doc = mxUtils.parseXml(xml);
- this.editor.setGraphXml(doc.documentElement);
- this.editor.modified = false;
- this.editor.undoManager.clear();
-
- if (filename != null) {
- this.editor.filename = filename;
- }
- } catch (e) {
- mxUtils.alert(mxResources.get('invalidOrMissingFile') + ': ' + e.message);
- }
- }));
- }
- } catch (e) {
- // ignore
- }
-};
-
-/**
- * Giuseppe Careri
- * Opens the current diagram via string.
- */
-EditorUi.prototype.openString = function(xml, filename, data) {
- try {
- var doc = mxUtils.parseXml(xml);
- this.editor.setGraphXml(doc.documentElement);
- this.editor.modified = false;
- this.editor.undoManager.clear();
-
- if (filename != null) {
- this.editor.filename = filename;
- }
-
- if (data != null) {
- this.editor.data = data;
- }
- } catch (e) {
- mxUtils.alert(mxResources.get('invalidOrMissingFile') + ': ' + e.message);
- }
-};
-
-/**
- * Saves As the current graph under the given project name.
- */
-EditorUi.prototype.new = function(name) {
- var editor = this.editor;
-
- if (name != null) {
- var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
- try {
- if (useLocalStorage) {
- if (localStorage.getItem(name) != null &&
- !mxUtils.confirm(mxResources.get('replace', [name]))) {
- return;
- }
-
- localStorage.setItem(name, xml);
- this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
- } else {
- console.log(xml.length);
- console.log(MAX_REQUEST_SIZE);
- if (xml.length < MAX_REQUEST_SIZE) {
- xml = encodeURIComponent(xml);
- name = encodeURIComponent(name);
-
- var xhr = new XMLHttpRequest();
- xhr.open("POST", SAVE_URL, true);
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
- xhr.onload = function(e) {
- if (xhr.readyState === 4) {
- if (xhr.status === 201) {
- editor.setStatus('Project ' + JSON.parse(xhr.response).name +
- ' is opening in new window!');
- setTimeout(function() {
- window.open('square/project/' + JSON.parse(xhr.response).id,
- '_blank');
- }, 1500);
- } else {
- editor.setStatus('Error creating project: ' +
- JSON.parse(xhr.response).errors[0].message);
- }
- }
- };
- xhr.onerror = function(e) {
- mxUtils.alert(xhr.statusText);
- };
- xhr.send('description=project_new&name=' + name);
- } else {
- mxUtils.alert(mxResources.get('drawingTooLarge'));
- mxUtils.popup(xml);
-
- return;
- }
- }
-
- this.editor.filename = name;
- this.editor.modified = false;
- } catch (e) {
- this.editor.setStatus('Error creating project');
- }
- } else {
- this.editor.setStatus('Error creating project');
- }
-};
-
-
-/**
- * Saves the current graph under the given project name.
- */
-EditorUi.prototype.save = function(name) {
- var editor = this.editor;
-
- if (name != null) {
- var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
- try {
- if (useLocalStorage) {
- if (localStorage.getItem(name) != null &&
- !mxUtils.confirm(mxResources.get('replace', [name]))) {
- return;
- }
-
- localStorage.setItem(name, xml);
- this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
- } else {
- console.log(xml.length);
- console.log(MAX_REQUEST_SIZE);
- if (xml.length < MAX_REQUEST_SIZE) {
- xml = encodeURIComponent(xml);
-
- var xhr = new XMLHttpRequest();
- xhr.open("PUT", SAVE_URL + this.editor.data.id, true);
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
- xhr.onload = function(e) {
- if (xhr.readyState === 4) {
- if (xhr.status === 200) {
- editor.setStatus('Updated at ' + JSON.parse(xhr.response).updatedAt +
- ' (' + xhr.status + ' ' + xhr.statusText + ')');
- } else {
- editor.setStatus('Error saving project: ' +
- JSON.parse(xhr.response).errors[0].message);
- }
- }
- };
- xhr.onerror = function(e) {
- mxUtils.alert(xhr.statusText);
- };
- xhr.send('preproduction=' + xml);
- } else {
- mxUtils.alert(mxResources.get('drawingTooLarge'));
- mxUtils.popup(xml);
-
- return;
- }
- }
-
- this.editor.filename = name;
- this.editor.modified = false;
- } catch (e) {
- this.editor.setStatus('Error saving file');
- }
- } else {
- this.editor.setStatus('Error saving file');
- }
-};
-
-/**
- * Saves As the current graph under the given project name.
- */
-EditorUi.prototype.saveAs = function(name) {
- var editor = this.editor;
-
- if (name != null) {
- var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
- try {
- if (useLocalStorage) {
- if (localStorage.getItem(name) != null &&
- !mxUtils.confirm(mxResources.get('replace', [name]))) {
- return;
- }
-
- localStorage.setItem(name, xml);
- this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
- } else {
- console.log(xml.length);
- console.log(MAX_REQUEST_SIZE);
- if (xml.length < MAX_REQUEST_SIZE) {
- xml = encodeURIComponent(xml);
- name = encodeURIComponent(name);
-
- var xhr = new XMLHttpRequest();
- xhr.open("POST", SAVE_URL, true);
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
- xhr.onload = function(e) {
- if (xhr.readyState === 4) {
- if (xhr.status === 201) {
- editor.setStatus('Project ' + JSON.parse(xhr.response).name +
- ' is opening in new window!');
- setTimeout(function() {
- window.open('square/project/' + JSON.parse(xhr.response).id,
- '_blank');
- }, 1500);
- } else {
- editor.setStatus('Error cloning project: ' +
- JSON.parse(xhr.response).errors[0].message);
- }
- }
- };
- xhr.onerror = function(e) {
- mxUtils.alert(xhr.statusText);
- };
- xhr.send('description=project_cloned&name=' + name +
- '&preproduction=' + xml + '&production=' + xml);
- } else {
- mxUtils.alert(mxResources.get('drawingTooLarge'));
- mxUtils.popup(xml);
-
- return;
- }
- }
-
- this.editor.filename = name;
- this.editor.modified = false;
- } catch (e) {
- this.editor.setStatus('Error saving file');
- }
- } else {
- this.editor.setStatus('Error saving file');
- }
-};
-
-/**
- * Plush the current graph under the given project name.
- */
-EditorUi.prototype.validate = function(a, b) {
- var graph = this.editor.graph;
- for (var a = a != null ? a : graph.model.getRoot(), b = b != null ? b : {}, c = true, d = graph.model.getChildCount(a), e = 0; e < d; e++) {
- var f = graph.model.getChildAt(a, e),
- g = b;
- graph.isValidRoot(f) && (g = {});
- g = this.validate(f, g);
- g != null ? graph.setCellWarning(f, g.replace(/\n/g, "<br>")) : graph.setCellWarning(f, null);
- c = c && g == null
- }
-
- d = "";
-
- //--- Giuseppe Careri - Modify 12/12/2013 - giuseppe.careri@gmail.com
- if (graph.model.isVertex(a)) {
- switch (a.value.nodeName) {
- case 'start':
- d = this.validateBlock('start') ? '' : "Only one Start block is allowed" + "\n";
- break;
- case 'finally':
- d = this.validateBlock('finally') ? '' : "Only one Finally block is allowed" + "\n";
- break;
- case 'playback':
- case 'background':
- case 'menu':
- d = (a.value.getAttribute('file_id') > 0) ? "" : mxResources.get('noAudioSelected') + "\n";
- break;
- case 'getdigits':
- d = (a.value.getAttribute('file_id') > 0) ? "" : mxResources.get('noAudioSelected') + "\n";
- d += (a.value.getAttribute('variable_id') > 0) ? "" : mxResources.get('noVariableSelected') + "\n";
- break;
- case 'vswitch':
- d = (a.value.getAttribute('variable') !== "") ? "" : mxResources.get('noVariableSelected') + "\n";
- break;
- case 'database':
- d = (a.value.getAttribute('database_id') > 0) ? "" : mxResources.get('noDatabaseSelected') + "\n";
- break;
- case 'set':
- case 'math':
- d = (a.value.getAttribute('variable_id') > 0) ? "" : mxResources.get('noVariableSelected') + "\n";
- break;
- case 'gotoc':
- d = (a.value.getAttribute('extension') !== "") ? "" : mxResources.get('noExtensionSelected') + "\n";
- break;
- case 'system':
- case 'agi':
- d = (a.value.getAttribute('command') !== "") ? "" : mxResources.get('noCommandSelected') + "\n";
- break;
- case 'gotoif':
- d = (a.value.getAttribute('condition') !== "") ? "" : mxResources.get('noConditionSelected') + "\n";
- break;
- case 'saydigits':
- d = (a.value.getAttribute('digits') !== "") ? "" : mxResources.get('noDigitsSelected') + "\n";
- break;
- case 'saynumber':
- d = (a.value.getAttribute('number') !== "") ? "" : mxResources.get('noNumberSelected') + "\n";
- break;
- case 'sayphonetic':
- d = (a.value.getAttribute('text') !== "") ? "" : mxResources.get('noTextSelected') + "\n";
- break;
- case 'record':
- d = (a.value.getAttribute('filename') !== "") ? "" : mxResources.get('noFileSelected') + "\n";
- break;
- case 'goal':
- d = (a.value.getAttribute('goalname') !== "") ? "" : mxResources.get('noGoalSelected') + "\n";
- break;
- case 'ext_dial':
- d = (a.value.getAttribute('phone') !== "") ? "" : mxResources.get('noIdentifierSelected') + "\n";
- break;
- case 'dial':
- d = (a.value.getAttribute('sip_id') > 0) ? "" : mxResources.get('noIdentifierSelected') + "\n";
- break;
- case 'queue':
- d = (a.value.getAttribute('queue_id') !== "") ? "" : mxResources.get('noQueueSelected') + "\n";
- break;
- case 'callback':
- d = (a.value.getAttribute('list_id') > 0) ? "" : mxResources.get('noListSelected') + "\n";
- break;
- case 'gotoiftime':
- d = (a.value.getAttribute('interval_id') > 0) ? "" : mxResources.get('noIntervalSelected') + "\n";
- break;
- case 'gotoifmultitime':
- d = (a.value.getAttribute('interval_id') != "") ? "" : mxResources.get('noIntervalSelected') + "\n";
- break;
- case 'voicemail':
- d = (a.value.getAttribute('context') !== "") ? "" : mxResources.get('noContextSelected') + "\n";
- d += (a.value.getAttribute('boxnumber') !== "") ? "" : mxResources.get('noBoxNumberSelected') + "\n";
- break;
- case 'subproject':
- d = (a.value.getAttribute('project_id') > 0) ? "" : mxResources.get('noProjectSelected') + "\n";
- break;
- case 'tts':
- d = (a.value.getAttribute('text') !== "") ? "" : mxResources.get('noTextSelected') + "\n";
- break;
- case 'ispeechtts':
- d = (a.value.getAttribute('text') !== "") ? "" : mxResources.get('noTextSelected') + "\n";
- d += (a.value.getAttribute('key') !== "") ? "" : mxResources.get('noKeySelected') + "\n";
- break;
- case 'ispeechasr':
- d = (a.value.getAttribute('key') !== "") ? "" : mxResources.get('noKeySelected') + "\n";
- break;
- }
- }
-
- if (graph.model.isEdge(a)) {
- var z = graph.model.getCell(a.source.getId());
- switch (z.value.nodeName) {
- case 'background':
- var patt = /^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;
- d = d + ((patt.test(String(a.getValue()))) ? "" : mxResources.get('numberOrInvalidOrTimeout') + "\n");
- break;
- case 'menu':
- var patt = /^[0-9]{1,45}$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;
- var str = String(a.getValue());
- var res = str.split(",");
- res.forEach(function(entry) {
- d = d + ((patt.test(entry)) ? "" : mxResources.get('numberOrAll') + "\n");
- });
- break;
- case 'getdigits':
- var patt = /^(x|i|-)$/;
- var str = String(a.getValue());
- d = d + ((patt.test(str)) ? "" : mxResources.get('numberOrInvalidOrDefault') + "\n");
- break;
- case 'gotoif':
- case 'gotoiftime':
- case 'gotoifmultitime':
- var patt = /^(true){1}$|^(false){1}$/;
- d = d + ((patt.test(String(a.getValue()))) ? "" : mxResources.get('trueOrFalse') + "\n");
- break;
-
- }
- }
- // -----------------------------------------------------------------
-
-
- graph.isCellCollapsed(a) && !c && (d = d + ((mxResources.get(graph.containsValidationErrorsResource) || graph.containsValidationErrorsResource) + "\n"));
- d = graph.model.isEdge(a) ?
- d + (graph.getEdgeValidationError(a, graph.model.getTerminal(a, true), graph.model.getTerminal(a, false)) || "") : d + (graph.getCellValidationError(a) || "");
- e = graph.validateCell(a, b);
- e != null && (d = d + e);
- graph.model.getParent(a) == null && graph.view.validate();
- return d.length > 0 || !c ? d : null
-};
-EditorUi.prototype.validateBlock = function(blockName) {
- var graph = this.editor.graph;
- var parent = graph.getDefaultParent();
- var count = 0;
- // var model = graph.getModel();
- //We can also use model.getChildren(parent)
- parent.children.forEach(function(n) {
- if (graph.model.isVertex(n) && n.value.nodeName == blockName) {
- count++;
- }
- });
- return count > 1 ? false : true;
-}
-EditorUi.prototype.publish = function(name) {
- var editor = this.editor;
-
- if (name != null) {
- var response = this.validate();
- if (response === null) {
-
- var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
- try {
- if (useLocalStorage) {
- if (localStorage.getItem(name) != null &&
- !mxUtils.confirm(mxResources.get('replace', [name]))) {
- return;
- }
-
- localStorage.setItem(name, xml);
- this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
- } else {
- console.log(xml.length);
- console.log(MAX_REQUEST_SIZE);
- if (xml.length < MAX_REQUEST_SIZE) {
- xml = encodeURIComponent(xml);
-
- var xhr = new XMLHttpRequest();
- xhr.open("PUT", SAVE_URL + this.editor.data.id, true);
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
- xhr.onload = function(e) {
- if (xhr.readyState === 4) {
- if (xhr.status === 200) {
- editor.setStatus('Published at ' + JSON.parse(xhr.response).updatedAt +
- ' (' + xhr.status + ' ' + xhr.statusText + ')');
- } else {
- editor.setStatus('Error saving project: ' +
- JSON.parse(xhr.response).errors[0].message);
- }
- }
- };
- xhr.onerror = function(e) {
- mxUtils.alert(xhr.statusText);
- };
- xhr.send('preproduction=' + xml + '&production=' + xml);
- } else {
- mxUtils.alert(mxResources.get('drawingTooLarge'));
- mxUtils.popup(xml);
-
- return;
- }
- }
-
- this.editor.filename = name;
- this.editor.modified = false;
- } catch (e) {
- this.editor.setStatus('Error publishing file');
- }
- } else {
- editor.setStatus('Error publishing project: ');
- }
- } else {
- this.editor.setStatus('Error publishing file');
- }
-};
-
-
-/**
- * Create variable
- */
-EditorUi.prototype.variable = function(name) {
- var editor = this.editor;
-
- if (name != null) {
- try {
-
- var xhr = new XMLHttpRequest();
- xhr.open("POST", VARIABLE_URL, true);
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
- xhr.onload = function(e) {
- if (xhr.readyState === 4) {
- if (xhr.status === 201) {
- editor.setStatus('Variable created at ' + JSON.parse(xhr.response).createdAt +
- ' (' + xhr.status + ' ' + xhr.statusText + ')');
- } else {
- editor.setStatus('Error cloning project: ' +
- JSON.parse(xhr.response).errors[0].message);
- }
- }
- };
- xhr.onerror = function(e) {
- mxUtils.alert(xhr.statusText);
- };
- xhr.send('name=' + name);
- } catch (e) {
- this.editor.setStatus('Error creating variable');
- }
- } else {
- this.editor.setStatus('Error creating variable');
- }
-};
-
-/**
- * Returns the URL for a copy of this editor with no state.
- */
-EditorUi.prototype.getUrl = function(pathname) {
- var href = (pathname != null) ? pathname : window.location.pathname;
- var parms = (href.indexOf('?') > 0) ? 1 : 0;
-
- // Removes template URL parameter for new blank diagram
- for (var key in urlParams) {
- if (parms == 0) {
- href += '?';
- } else {
- href += '&';
- }
-
- href += key + '=' + urlParams[key];
- parms++;
- }
-
- return href;
-};
-
-/**
- * Updates the states of the given undo/redo items.
- */
-EditorUi.prototype.addUndoListener = function() {
- var undo = this.actions.get('undo');
- var redo = this.actions.get('redo');
-
- var undoMgr = this.editor.undoManager;
-
- var undoListener = function() {
- undo.setEnabled(undoMgr.canUndo());
- redo.setEnabled(undoMgr.canRedo());
- };
-
- undoMgr.addListener(mxEvent.ADD, undoListener);
- undoMgr.addListener(mxEvent.UNDO, undoListener);
- undoMgr.addListener(mxEvent.REDO, undoListener);
- undoMgr.addListener(mxEvent.CLEAR, undoListener);
-
- // Updates the button states once
- undoListener();
-};
-
-/**
- * Updates the states of the given toolbar items based on the selection.
- */
-EditorUi.prototype.addSelectionListener = function() {
- var selectionListener = mxUtils.bind(this, function() {
- var graph = this.editor.graph;
- var selected = !graph.isSelectionEmpty();
- var vertexSelected = false;
- var edgeSelected = false;
-
- var cells = graph.getSelectionCells();
-
- if (cells != null) {
- for (var i = 0; i < cells.length; i++) {
- var cell = cells[i];
-
- if (graph.getModel().isEdge(cell)) {
- edgeSelected = true;
- }
-
- if (graph.getModel().isVertex(cell)) {
- vertexSelected = true;
- }
-
- if (edgeSelected && vertexSelected) {
- break;
- }
- }
- }
-
- // Updates action states
- var actions = ['cut', 'copy', 'delete', 'duplicate', 'bold', 'italic',
- 'style', 'underline', 'toFront', 'toBack', 'dashed', 'rounded',
- 'shadow',
- 'tilt', 'autosize'
- ];
-
- for (var i = 0; i < actions.length; i++) {
- this.actions.get(actions[i]).setEnabled(selected);
- }
-
- this.actions.get('curved').setEnabled(edgeSelected);
- this.actions.get('rotation').setEnabled(vertexSelected);
- this.actions.get('wordWrap').setEnabled(vertexSelected);
- this.actions.get('group').setEnabled(graph.getSelectionCount() > 1);
- this.actions.get('ungroup').setEnabled(graph.getSelectionCount() == 1 &&
- graph.getModel().getChildCount(graph.getSelectionCell()) > 0);
- var oneVertexSelected = vertexSelected && graph.getSelectionCount() == 1;
- this.actions.get('removeFromGroup').setEnabled(oneVertexSelected &&
- graph.getModel().isVertex(graph.getModel().getParent(graph.getSelectionCell()))
- );
-
- // Updates menu states
- var menus = ['fontFamily', 'fontSize', 'alignment', 'position', 'text',
- 'format',
- 'arrange', 'linewidth', 'spacing'
- ];
-
- for (var i = 0; i < menus.length; i++) {
- this.menus.get(menus[i]).setEnabled(selected);
- }
-
- menus = ['line', 'lineend', 'linestart'];
-
- for (var i = 0; i < menus.length; i++) {
- this.menus.get(menus[i]).setEnabled(edgeSelected);
- }
-
- this.actions.get('setAsDefaultEdge').setEnabled(edgeSelected);
-
- this.menus.get('align').setEnabled(graph.getSelectionCount() > 1);
- this.menus.get('direction').setEnabled(vertexSelected || (edgeSelected &&
- graph.isLoop(graph.view.getState(graph.getSelectionCell()))));
- this.menus.get('navigation').setEnabled(graph.foldingEnabled && ((graph.view
- .currentRoot != null) ||
- (graph.getSelectionCount() == 1 && graph.isValidRoot(graph.getSelectionCell()))
- ));
- this.actions.get('home').setEnabled(graph.view.currentRoot != null);
- this.actions.get('exitGroup').setEnabled(graph.view.currentRoot != null);
- var groupEnabled = graph.getSelectionCount() == 1 && graph.isValidRoot(
- graph.getSelectionCell());
- this.actions.get('enterGroup').setEnabled(groupEnabled);
- this.actions.get('expand').setEnabled(groupEnabled);
- this.actions.get('collapse').setEnabled(groupEnabled);
- this.actions.get('editLink').setEnabled(graph.getSelectionCount() == 1);
- this.actions.get('openLink').setEnabled(graph.getSelectionCount() == 1 &&
- graph.getLinkForCell(graph.getSelectionCell()) != null);
- });
-
- this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,
- selectionListener);
- selectionListener();
-};
-
-/**
- * Refreshes the viewport.
- */
-EditorUi.prototype.refresh = function() {
- var quirks = mxClient.IS_IE && (document.documentMode == null || document.documentMode ==
- 5);
- var w = this.container.clientWidth;
- var h = this.container.clientHeight;
-
- if (this.container == document.body) {
- w = document.body.clientWidth || document.documentElement.clientWidth;
- h = (quirks) ? document.body.clientHeight || document.documentElement.clientHeight :
- document.documentElement.clientHeight;
- }
-
- var effHsplitPosition = Math.max(0, Math.min(this.hsplitPosition, w - this.splitSize -
- 20));
- var effVsplitPosition = Math.max(0, Math.min(this.vsplitPosition, h - this.menubarHeight -
- this.toolbarHeight - this.footerHeight - this.splitSize - 1));
-
- this.menubarContainer.style.height = this.menubarHeight + 'px';
- this.toolbarContainer.style.top = this.menubarHeight + 'px';
- this.toolbarContainer.style.height = this.toolbarHeight + 'px';
-
- var tmp = this.menubarHeight + this.toolbarHeight;
-
- if (!mxClient.IS_QUIRKS) {
- tmp += 1;
- }
-
- this.sidebarContainer.style.top = tmp + 'px';
- this.sidebarContainer.style.width = effHsplitPosition + 'px';
- this.outlineContainer.style.width = effHsplitPosition + 'px';
- this.outlineContainer.style.height = effVsplitPosition + 'px';
- this.outlineContainer.style.bottom = this.footerHeight + 'px';
- this.diagramContainer.style.left = (effHsplitPosition + this.splitSize) +
- 'px';
- this.diagramContainer.style.top = this.sidebarContainer.style.top;
- this.footerContainer.style.height = this.footerHeight + 'px';
- this.footerContainer.style.display = 'none';
- this.hsplit.style.top = this.sidebarContainer.style.top;
- this.hsplit.style.bottom = this.outlineContainer.style.bottom;
- this.hsplit.style.left = effHsplitPosition + 'px';
- this.vsplit.style.width = this.sidebarContainer.style.width;
- this.vsplit.style.bottom = (effVsplitPosition + this.footerHeight) + 'px';
-
- if (quirks) {
- this.menubarContainer.style.width = w + 'px';
- this.toolbarContainer.style.width = this.menubarContainer.style.width;
- var sidebarHeight = (h - effVsplitPosition - this.splitSize - this.footerHeight -
- this.menubarHeight - this.toolbarHeight);
- this.sidebarContainer.style.height = sidebarHeight + 'px';
- this.diagramContainer.style.width = (w - effHsplitPosition - this.splitSize) +
- 'px';
- var diagramHeight = (h - this.footerHeight - this.menubarHeight - this.toolbarHeight);
- this.diagramContainer.style.height = diagramHeight + 'px';
- this.footerContainer.style.width = this.menubarContainer.style.width;
- this.hsplit.style.height = diagramHeight + 'px';
- } else {
- this.sidebarContainer.style.bottom = (effVsplitPosition + this.splitSize +
- this.footerHeight) + 'px';
- this.diagramContainer.style.bottom = this.outlineContainer.style.bottom;
- }
-};
-
-/**
- * Creates the required containers.
- */
-EditorUi.prototype.createDivs = function() {
- this.menubarContainer = this.createDiv('geMenubarContainer');
- this.toolbarContainer = this.createDiv('geToolbarContainer');
- this.sidebarContainer = this.createDiv('geSidebarContainer');
- this.outlineContainer = this.createDiv('geOutlineContainer');
- this.diagramContainer = this.createDiv('geDiagramContainer');
- this.footerContainer = this.createDiv('geFooterContainer');
- this.hsplit = this.createDiv('geHsplit');
- this.vsplit = this.createDiv('geVsplit');
-
- // Sets static style for containers
- this.menubarContainer.style.top = '0px';
- this.menubarContainer.style.left = '0px';
- this.menubarContainer.style.right = '0px';
- this.toolbarContainer.style.left = '0px';
- this.toolbarContainer.style.right = '0px';
- this.sidebarContainer.style.left = '0px';
- this.outlineContainer.style.left = '0px';
- this.diagramContainer.style.right = '0px';
- this.footerContainer.style.left = '0px';
- this.footerContainer.style.right = '0px';
- this.footerContainer.style.bottom = '0px';
- this.vsplit.style.left = '0px';
- this.vsplit.style.height = this.splitSize + 'px';
- this.hsplit.style.width = this.splitSize + 'px';
-};
-
-/**
- * Creates the required containers.
- */
-EditorUi.prototype.createUi = function() {
- // Creates menubar
- this.menubar = this.menus.createMenubar(this.createDiv('geMenubar'));
- this.menubarContainer.appendChild(this.menubar.container);
-
- // Creates toolbar
- this.toolbar = this.createToolbar(this.createDiv('geToolbar'));
- this.toolbarContainer.appendChild(this.toolbar.container);
-
- // Creates the sidebar
- this.sidebar = this.createSidebar(this.sidebarContainer);
-
- // Creates the footer
- this.footerContainer.appendChild(this.createFooter());
-
- // Adds status bar in menubar
- this.statusContainer = this.createStatusContainer();
-
- // Connects the status bar to the editor status
- this.editor.addListener('statusChanged', mxUtils.bind(this, function() {
- this.setStatusText(this.editor.getStatus());
- }));
-
- this.setStatusText(this.editor.getStatus());
- this.menubar.container.appendChild(this.statusContainer);
-
- // Inserts into DOM
- this.container.appendChild(this.menubarContainer);
- this.container.appendChild(this.toolbarContainer);
- this.container.appendChild(this.sidebarContainer);
- this.container.appendChild(this.outlineContainer);
- this.container.appendChild(this.diagramContainer);
- this.container.appendChild(this.footerContainer);
- this.container.appendChild(this.hsplit);
- this.container.appendChild(this.vsplit);
-
- // HSplit
- this.addSplitHandler(this.hsplit, true, 0, mxUtils.bind(this, function(
- value) {
- this.hsplitPosition = value;
- this.refresh();
- this.editor.graph.sizeDidChange();
- this.editor.outline.update(false);
- this.editor.outline.outline.sizeDidChange();
- }));
-
- // VSplit
- this.addSplitHandler(this.vsplit, false, this.footerHeight, mxUtils.bind(
- this,
- function(value) {
- this.vsplitPosition = value;
- this.refresh();
- this.editor.outline.update(false);
- this.editor.outline.outline.sizeDidChange();
- }));
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createStatusContainer = function() {
- var container = document.createElement('a');
- container.className = 'geItem geStatus';
-
- return container;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createStatusContainer = function() {
- var container = document.createElement('a');
- container.className = 'geItem geStatus';
-
- return container;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.setStatusText = function(value) {
- this.statusContainer.innerHTML = value;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createToolbar = function(container) {
- return new Toolbar(this, container);
-};
-
-/**
- * Creates a new sidebar for the given container.
- */
-EditorUi.prototype.createSidebar = function(container) {
- return new Sidebar(this, container);
-};
-
-/**
- * Creates and returns a new footer.
- */
-EditorUi.prototype.createFooter = function() {
- return this.createDiv('geFooter');
-};
-
-/**
- * Creates the actual toolbar for the toolbar container.
- */
-EditorUi.prototype.createDiv = function(classname) {
- var elt = document.createElement('div');
- elt.className = classname;
-
- return elt;
-};
-
-/**
- * Creates the custom header.
- */
-EditorUi.prototype.createHeader = function(classname) {
- var elt = document.createElement(classname);
- return elt;
-};
-
-/**
- * Creates the custom header.
- */
-EditorUi.prototype.createForm = function(classname) {
- var elt = document.createElement('form');
- elt.className = classname;
-
- return elt;
-};
-
-/**
- * Updates the states of the given undo/redo items.
- */
-EditorUi.prototype.addSplitHandler = function(elt, horizontal, dx, onChange) {
- var start = null;
- var initial = null;
-
- function getValue() {
- return parseInt(((horizontal) ? elt.style.left : elt.style.bottom));
- };
-
- function moveHandler(evt) {
- if (start != null) {
- var pt = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
- onChange(Math.max(0, initial + ((horizontal) ? (pt.x - start.x) : (start.y -
- pt.y)) - dx));
- mxEvent.consume(evt);
- }
- };
-
- function dropHandler(evt) {
- moveHandler(evt);
- start = null;
- initial = null;
- };
-
- mxEvent.addGestureListeners(elt, function(evt) {
- start = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
- initial = getValue();
- mxEvent.consume(evt);
- });
-
- mxEvent.addListener(document, 'mousemove', moveHandler);
- mxEvent.addListener(document, 'touchmove', moveHandler);
- mxEvent.addListener(document, 'mouseup', dropHandler);
- mxEvent.addListener(document, 'touchend', dropHandler);
-};
-
-/**
- * Displays a print dialog.
- */
-EditorUi.prototype.showDialog = function(elt, w, h, modal, closable, onClose) {
- this.hideDialog();
- this.dialog = new Dialog(this, elt, w, (mxClient.IS_VML) ? h - 12 : h,
- modal,
- closable, onClose);
-};
-
-/**
- * Displays a print dialog.
- */
-EditorUi.prototype.hideDialog = function() {
- if (this.dialog != null) {
- this.dialog.close();
- this.dialog = null;
- this.editor.graph.container.focus();
- }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-EditorUi.prototype.saveFile = function(forceDialog) {
- if (!forceDialog && this.editor.filename != null) {
- this.save(this.editor.getOrCreateFilename());
- } else {
- this.showDialog(new SaveDialog(this).container, 300, 100, true, true);
- }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-EditorUi.prototype.publishFile = function(forceDialog) {
- if (!forceDialog && this.editor.filename != null) {
- this.publish(this.editor.getOrCreateFilename());
- } else {
- //this.showDialog(new SaveDialog(this).container, 300, 100, true, true);
- }
-};
-
-/**
- * Executes the given layout.
- */
-EditorUi.prototype.executeLayout = function(layout, animate, ignoreChildCount) {
- var graph = this.editor.graph;
- var cell = graph.getSelectionCell();
-
- // Allow global overridding of animation
- animate = this.animate != null ? this.animate : animate;
-
- graph.getModel().beginUpdate();
- try {
- layout.execute(graph.getDefaultParent(), cell);
- } catch (e) {
- throw e;
- } finally {
- // Animates the changes in the graph model except
- // for Camino, where animation is too slow
- if (animate && navigator.userAgent.indexOf('Camino') < 0) {
- // New API for animating graph layout results asynchronously
- var morph = new mxMorphing(graph);
- morph.addListener(mxEvent.DONE, mxUtils.bind(this, function() {
- graph.getModel().endUpdate();
- }));
-
- morph.startAnimation();
- } else {
- graph.getModel().endUpdate();
- }
- }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-EditorUi.prototype.createKeyHandler = function(editor) {
- var graph = this.editor.graph;
- var keyHandler = new mxKeyHandler(graph);
-
- // Routes command-key to control-key on Mac
- keyHandler.isControlDown = function(evt) {
- return mxEvent.isControlDown(evt) || (mxClient.IS_MAC && evt.metaKey);
- };
-
- // Helper function to move cells with the cursor keys
- function nudge(keyCode) {
- if (!graph.isSelectionEmpty()) {
- var dx = 0;
- var dy = 0;
-
- if (keyCode == 37) {
- dx = -1;
- } else if (keyCode == 38) {
- dy = -1;
- } else if (keyCode == 39) {
- dx = 1;
- } else if (keyCode == 40) {
- dy = 1;
- }
-
- graph.moveCells(graph.getSelectionCells(), dx, dy);
- graph.scrollCellToVisible(graph.getSelectionCell());
- }
- };
-
- // Binds keystrokes to actions
- var bindAction = mxUtils.bind(this, function(code, control, key, shift) {
- var action = this.actions.get(key);
-
- if (action != null) {
- var f = function() {
- if (action.enabled) {
- action.funct();
- }
- };
-
- if (control) {
- if (shift) {
- keyHandler.bindControlShiftKey(code, f);
- } else {
- keyHandler.bindControlKey(code, f);
- }
- } else {
- if (shift) {
- keyHandler.bindShiftKey(code, f);
- } else {
- keyHandler.bindKey(code, f);
- }
- }
- }
- });
-
- var ui = this;
- var keyHandleEscape = keyHandler.escape;
- keyHandler.escape = function(evt) {
- ui.hideDialog();
- keyHandleEscape.apply(this, arguments);
- };
-
- // Ignores enter keystroke. Remove this line if you want the
- // enter keystroke to stop editing.
- keyHandler.enter = function() {};
- keyHandler.bindKey(8, function() {
- graph.foldCells(true);
- }); // Backspace
- keyHandler.bindKey(13, function() {
- graph.foldCells(false);
- }); // Enter
- keyHandler.bindKey(33, function() {
- graph.exitGroup();
- }); // Page Up
- keyHandler.bindKey(34, function() {
- graph.enterGroup();
- }); // Page Down
- keyHandler.bindKey(36, function() {
- graph.home();
- }); // Home
- keyHandler.bindKey(35, function() {
- graph.refresh();
- }); // End
- keyHandler.bindKey(37, function() {
- nudge(37);
- }); // Left arrow
- keyHandler.bindKey(38, function() {
- nudge(38);
- }); // Up arrow
- keyHandler.bindKey(39, function() {
- nudge(39);
- }); // Right arrow
- keyHandler.bindKey(40, function() {
- nudge(40);
- }); // Down arrow
- keyHandler.bindKey(113, function() {
- graph.startEditingAtCell();
- });
- bindAction(46, false, 'delete'); // Delete
- bindAction(82, true, 'tilt'); // Ctrl+R
- bindAction(83, true, 'save'); // Ctrl+S
- bindAction(83, true, 'saveAs', true); // Ctrl+Shift+S
- bindAction(107, false, 'zoomIn'); // Add
- bindAction(109, false, 'zoomOut'); // Subtract
- bindAction(65, true, 'selectAll'); // Ctrl+A
- bindAction(86, true, 'selectVertices', true); // Ctrl+Shift+V
- bindAction(69, true, 'selectEdges', true); // Ctrl+Shift+E
- bindAction(69, true, 'export'); // Ctrl+Shift+E
- bindAction(66, true, 'toBack'); // Ctrl+B
- bindAction(70, true, 'toFront'); // Ctrl+F
- bindAction(68, true, 'duplicate'); // Ctrl+D
- bindAction(90, true, 'undo'); // Ctrl+Z
- bindAction(89, true, 'redo'); // Ctrl+Y
- bindAction(88, true, 'cut'); // Ctrl+X
- bindAction(67, true, 'copy'); // Ctrl+C
- bindAction(81, true, 'connect'); // Ctrl+Q
- bindAction(86, true, 'paste'); // Ctrl+V
- bindAction(71, true, 'group'); // Ctrl+G
- bindAction(71, true, 'grid', true); // Ctrl+Shift+G
- bindAction(85, true, 'ungroup'); // Ctrl+U
- bindAction(112, false, 'about'); // F1
- bindAction(80, true, 'publish', true); // Ctrl+Shift+P
-
- return keyHandler;
-};
-
-/**
- * Giuseppe Careri
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createMultiplicities = function(graph, cells, source,
- target) {
- for (var i = 0; i < cells.length; i++) {
- graph.push(new mxMultiplicity(true, cells[i], null, null, source[i][0],
- source[i][1], null, mxResources.get(cells[i]) + ' must have ' + source[i][0] + ' outcoming edge.', null));
- graph.push(new mxMultiplicity(false, cells[i], null, null, target[i][0],
- target[i][1], null, mxResources.get(cells[i]) + ' must have ' + target[i][0] + ' incoming edge.', null));
- };
-};
+var _0x743c=["\x65\x64\x69\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x45\x64\x69\x74\x6F\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x72\x61\x70\x68","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x73\x72\x63","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x6D\x65\x6E\x75\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x76\x73","\x72\x65\x66\x72\x65\x73\x68","\x63\x72\x65\x61\x74\x65\x55\x69","\x65\x76\x65\x6E\x74","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x41\x6C\x6C\x6F\x77\x65\x64","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x62\x69\x6E\x64","\x62\x6F\x64\x79","\x6F\x6E\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x6D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x64\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x69\x6E\x69\x74","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x75\x72\x73\x6F\x72","\x64\x65\x66\x61\x75\x6C\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x66\x6F\x63\x75\x73","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x61\x70\x70\x6C\x79","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x6E","\x63\x72\x65\x61\x74\x65\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x73\x65\x74","\x6D\x61\x74\x68","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x67\x65\x74\x73\x65\x63\x72\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x73\x65\x6E\x64\x53\x4D\x53","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x65\x6C\x6C","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x74\x61\x67\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x73\x6F\x75\x72\x63\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x69\x73\x56\x65\x72\x74\x65\x78","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x63\x6F\x6E\x73\x75\x6D\x65","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x6F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x67\x65\x73\x74\x75\x72\x65\x63\x68\x61\x6E\x67\x65","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x63\x61\x6C\x65\x28","\x73\x63\x61\x6C\x65","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x76\x69\x65\x77","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x7A\x6F\x6F\x6D\x54\x6F\x43\x65\x6E\x74\x65\x72","\x7A\x6F\x6F\x6D","\x76\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x73\x69\x7A\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x75\x70\x64\x61\x74\x65","\x6F\x70\x65\x6E","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6D\x65\x6E\x75\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x74\x6F\x6F\x6C\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x66\x6F\x6F\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x68\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x55\x6E\x64\x6F\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x73\x74\x65","\x67\x65\x74","\x69\x73\x45\x6D\x70\x74\x79","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x74","\x63\x6F\x70\x79","\x6F\x70\x65\x6E\x65\x72","\x6F\x70\x65\x6E\x46\x69\x6C\x65","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x63\x6C\x65\x61\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x4D\x69\x73\x73\x69\x6E\x67\x46\x69\x6C\x65","\x3A\x20","\x6D\x65\x73\x73\x61\x67\x65","\x61\x6C\x65\x72\x74","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x6F\x70\x65\x6E\x53\x74\x72\x69\x6E\x67","\x64\x61\x74\x61","\x6E\x65\x77","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x67\x65\x74\x49\x74\x65\x6D","\x72\x65\x70\x6C\x61\x63\x65","\x63\x6F\x6E\x66\x69\x72\x6D","\x73\x65\x74\x49\x74\x65\x6D","\x73\x61\x76\x65\x64","\x20","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x67","\x50\x4F\x53\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x50\x72\x6F\x6A\x65\x63\x74\x20","\x6E\x61\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x20\x69\x73\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x69\x6E\x20\x6E\x65\x77\x20\x77\x69\x6E\x64\x6F\x77\x21","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x69\x64","\x5F\x62\x6C\x61\x6E\x6B","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x65\x77\x26\x6E\x61\x6D\x65\x3D","\x73\x65\x6E\x64","\x64\x72\x61\x77\x69\x6E\x67\x54\x6F\x6F\x4C\x61\x72\x67\x65","\x70\x6F\x70\x75\x70","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74","\x73\x61\x76\x65","\x50\x55\x54","\x55\x70\x64\x61\x74\x65\x64\x20\x61\x74\x20","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x20\x28","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x66\x69\x6C\x65","\x73\x61\x76\x65\x41\x73","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x76\x69\x65\x77\x2F","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x6E\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x63\x6C\x6F\x6E\x65\x64\x26\x6E\x61\x6D\x65\x3D","\x26\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x26\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x76\x61\x6C\x69\x64\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x74","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x3C\x62\x72\x3E","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6C\x6F\x63\x6B","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x53\x74\x61\x72\x74\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x0A","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x46\x69\x6E\x61\x6C\x6C\x79\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x66\x69\x6C\x65\x5F\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6E\x6F\x41\x75\x64\x69\x6F\x53\x65\x6C\x65\x63\x74\x65\x64","\x64\x69\x67\x69\x74","\x77\x72\x6F\x6E\x67\x4D\x61\x78\x44\x69\x67\x69\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6E\x6F\x56\x61\x72\x69\x61\x62\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x77\x72\x6F\x6E\x67\x4D\x69\x6E\x44\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x68\x69\x64\x64\x65\x6E\x64\x69\x67\x69\x74\x73\x6E\x75\x6D","\x77\x72\x6F\x6E\x67\x48\x69\x64\x64\x65\x6E\x44\x69\x67\x69\x74\x73\x6E\x75\x6D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6F\x64\x62\x63\x5F\x69\x64","\x6E\x6F\x44\x61\x74\x61\x62\x61\x73\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x74\x72\x75\x6E\x6B\x5F\x6E\x61\x6D\x65","\x2D\x31","\x6E\x6F\x54\x72\x75\x6E\x6B\x53\x65\x6C\x65\x63\x74\x65\x64","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6E\x6F\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6D\x6D\x61\x6E\x64","\x6E\x6F\x43\x6F\x6D\x6D\x61\x6E\x64\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6E\x6F\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x64\x69\x67\x69\x74\x73","\x6E\x6F\x44\x69\x67\x69\x74\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x75\x6D\x62\x65\x72","\x6E\x6F\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x74\x65\x78\x74","\x6E\x6F\x54\x65\x78\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x66\x69\x6C\x65","\x6E\x6F\x46\x69\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x6E\x6F\x47\x6F\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x68\x6F\x6E\x65","\x6E\x6F\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x73\x69\x70\x5F\x69\x64","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6E\x6F\x51\x75\x65\x75\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x6C\x69\x73\x74\x5F\x69\x64","\x6E\x6F\x4C\x69\x73\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x6E\x6F\x49\x6E\x74\x65\x72\x76\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x6D\x61\x69\x6C\x62\x6F\x78","\x6E\x6F\x42\x6F\x78\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6E\x6F\x50\x72\x6F\x6A\x65\x63\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x63\x63\x6F\x75\x6E\x74\x5F\x69\x64","\x6E\x6F\x41\x63\x63\x6F\x75\x6E\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x74\x6F","\x6E\x6F\x52\x65\x63\x69\x70\x69\x65\x6E\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x73\x6D\x73\x5F\x74\x65\x78\x74","\x6B\x65\x79","\x6E\x6F\x4B\x65\x79\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x67\x65\x74\x49\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x67\x65\x74\x56\x61\x6C\x75\x65","\x74\x65\x73\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x54\x69\x6D\x65\x6F\x75\x74","\x2C","\x73\x70\x6C\x69\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x41\x6C\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x44\x65\x66\x61\x75\x6C\x74","\x74\x72\x75\x65\x4F\x72\x46\x61\x6C\x73\x65","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x70\x75\x62\x6C\x69\x73\x68","\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x61\x74\x20","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x66\x69\x6C\x65","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x74\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x20","\x6E\x61\x6D\x65\x3D","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x55\x72\x6C","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x26","\x3D","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x68\x61\x64\x6F\x77","\x74\x69\x6C\x74","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x63\x75\x72\x76\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x72\x6F\x75\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x72\x61\x6E\x67\x65","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x73\x70\x61\x63\x69\x6E\x67","\x6C\x69\x6E\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x6C\x69\x67\x6E","\x67\x65\x74\x53\x74\x61\x74\x65","\x69\x73\x4C\x6F\x6F\x70","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x6D\x61\x78","\x68\x65\x69\x67\x68\x74","\x70\x78","\x74\x6F\x70","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x77\x69\x64\x74\x68","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x64\x69\x73\x70\x6C\x61\x79","\x6E\x6F\x6E\x65","\x68\x73\x70\x6C\x69\x74","\x76\x73\x70\x6C\x69\x74","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x4F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x44\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x46\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x48\x73\x70\x6C\x69\x74","\x67\x65\x56\x73\x70\x6C\x69\x74","\x30\x70\x78","\x72\x69\x67\x68\x74","\x6D\x65\x6E\x75\x62\x61\x72","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x74\x6F\x6F\x6C\x62\x61\x72","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x73\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x6F\x74\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x64\x64\x53\x70\x6C\x69\x74\x48\x61\x6E\x64\x6C\x65\x72","\x61","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D\x20\x67\x65\x53\x74\x61\x74\x75\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x67\x65\x46\x6F\x6F\x74\x65\x72","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x72\x6D","\x66\x6F\x72\x6D","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x78","\x79","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x64\x69\x61\x6C\x6F\x67","\x49\x53\x5F\x56\x4D\x4C","\x63\x6C\x6F\x73\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x61\x6E\x69\x6D\x61\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x65\x78\x65\x63\x75\x74\x65","\x43\x61\x6D\x69\x6E\x6F","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x49\x53\x5F\x4D\x41\x43","\x6D\x65\x74\x61\x4B\x65\x79","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x65\x6E\x61\x62\x6C\x65\x64","\x66\x75\x6E\x63\x74","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x4B\x65\x79","\x65\x73\x63\x61\x70\x65","\x65\x6E\x74\x65\x72","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x65\x78\x70\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x67\x72\x69\x64","\x61\x62\x6F\x75\x74","\x6D\x75\x73\x74\x68\x61\x76\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67\x65\x64\x67\x65","\x70\x75\x73\x68","\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x65\x64\x67\x65"];EditorUi= function(_0x415dx1,_0x415dx2){this[_0x743c[0]]= _0x415dx1|| new Editor();this[_0x743c[1]]= _0x415dx2|| document[_0x743c[3]](_0x743c[2]);var _0x415dx3=_0x415dx1[_0x743c[4]];var _0x415dx4=this;this[_0x743c[1]][_0x743c[6]][_0x743c[5]]= _0x743c[7]; new Image()[_0x743c[8]]= mxPopupMenu[_0x743c[10]][_0x743c[9]];if(mxConnectionHandler[_0x743c[10]][_0x743c[11]]!= null){ new Image()[_0x743c[8]]= mxConnectionHandler[_0x743c[10]][_0x743c[11]][_0x743c[8]]};this[_0x743c[12]]= new Actions(this);this[_0x743c[13]]= new Menus(this);this[_0x743c[14]]();this[_0x743c[15]]();this[_0x743c[16]]();var _0x415dx5=mxUtils[_0x743c[20]](this,function(_0x415dx6){if(_0x415dx6== null){_0x415dx6= window[_0x743c[17]]};if(this[_0x743c[18]](_0x415dx6)){return true};return _0x415dx3[_0x743c[19]]()});if(this[_0x743c[1]]== document[_0x743c[21]]){this[_0x743c[23]][_0x743c[22]]= _0x415dx5;this[_0x743c[23]][_0x743c[24]]= _0x415dx5;this[_0x743c[25]][_0x743c[22]]= _0x415dx5;this[_0x743c[25]][_0x743c[24]]= _0x415dx5;this[_0x743c[26]][_0x743c[22]]= _0x415dx5;this[_0x743c[26]][_0x743c[24]]= _0x415dx5;this[_0x743c[27]][_0x743c[22]]= _0x415dx5;this[_0x743c[27]][_0x743c[24]]= _0x415dx5;this[_0x743c[28]][_0x743c[22]]= _0x415dx5;this[_0x743c[28]][_0x743c[24]]= _0x415dx5};if(mxClient[_0x743c[29]]&& ( typeof (document[_0x743c[30]])=== _0x743c[31]|| document[_0x743c[30]]< 9)){mxEvent[_0x743c[33]](this[_0x743c[26]],_0x743c[32],_0x415dx5);mxEvent[_0x743c[33]](this[_0x743c[27]],_0x743c[32],_0x415dx5)}else {this[_0x743c[26]][_0x743c[34]]= _0x415dx5;this[_0x743c[27]][_0x743c[34]]= _0x415dx5};_0x415dx3[_0x743c[35]](this[_0x743c[26]]);_0x415dx3[_0x743c[15]]();_0x415dx3[_0x743c[1]][_0x743c[38]](_0x743c[36],_0x743c[37]);_0x415dx3[_0x743c[1]][_0x743c[6]][_0x743c[39]]= _0x743c[40];_0x415dx3[_0x743c[1]][_0x743c[6]][_0x743c[41]]= _0x743c[42]+ _0x415dx1[_0x743c[43]]+ _0x743c[44];_0x415dx3[_0x743c[1]][_0x743c[6]][_0x743c[45]]= _0x743c[46];_0x415dx3[_0x743c[1]][_0x743c[47]]();var _0x415dx7=_0x415dx3[_0x743c[48]];_0x415dx3[_0x743c[48]]= function(_0x415dx8,_0x415dx9,_0x415dxa){if(_0x415dx8== mxEvent[_0x743c[49]]){this[_0x743c[1]][_0x743c[47]]()};_0x415dx7[_0x743c[50]](this,arguments)};this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[52],_0x743c[53],_0x743c[54]],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[57],_0x743c[58],_0x743c[59],_0x743c[60],_0x743c[61],_0x743c[62],_0x743c[63]],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[64],_0x743c[65]],[[1,1],[1,1]],[[1,_0x743c[55]],[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[66],_0x743c[67],_0x743c[68],_0x743c[69],_0x743c[70],_0x743c[71],_0x743c[72],_0x743c[73],_0x743c[74],_0x743c[75]],[[1,_0x743c[55]],[1,1],[1,_0x743c[55]],[1,1],[1,1],[1,1],[1,1],[1,1],[1,_0x743c[55]],[1,_0x743c[55]]],[[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[76]],[[1,1]],[[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[77],_0x743c[78],_0x743c[79],_0x743c[80]],[[1,1],[1,1],[1,1],[1,1]],[[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[81],_0x743c[82],_0x743c[83],_0x743c[84],_0x743c[85]],[[0,0],[1,2],[1,2],[1,2],[1,_0x743c[55]]],[[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[86],_0x743c[87]],[[1,1],[1,1]],[[1,_0x743c[55]],[1,_0x743c[55]]]);this[_0x743c[56]](_0x415dx3[_0x743c[51]],[_0x743c[88],_0x743c[89],_0x743c[90],_0x743c[91],_0x743c[92]],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]],[1,_0x743c[55]]]);_0x415dx3[_0x743c[93]]= function(_0x415dx6,_0x415dxb){var _0x415dxc=[_0x743c[66],_0x743c[82],_0x743c[83],_0x743c[68],_0x743c[74],_0x743c[75],_0x743c[85]];var _0x415dxd= new mxEventObject(mxEvent.DOUBLE_CLICK,_0x743c[17],_0x415dx6,_0x743c[94],_0x415dxb);this[_0x743c[95]](_0x415dxd);if(this[_0x743c[96]]()&& !mxEvent[_0x743c[97]](_0x415dx6)&& !_0x415dxd[_0x743c[97]]()){if(this[_0x743c[99]]()[_0x743c[98]](_0x415dxb)){if(_0x415dxc[_0x743c[103]](_0x415dxb[_0x743c[102]][_0x743c[101]][_0x743c[100]])>= 0){this[_0x743c[104]](_0x415dxb)}}else {if(this[_0x743c[99]]()[_0x743c[105]](_0x415dxb)){_0x415dx4[_0x743c[106]]( new GeneralDialog(_0x415dx4,_0x415dxb)[_0x743c[1]],320,280,true,true)}};_0x415dxd[_0x743c[107]]()}};_0x415dx3[_0x743c[109]][_0x743c[108]]= true;_0x415dx3[_0x743c[109]][_0x743c[110]]= mxUtils[_0x743c[20]](this,function(_0x415dxe,_0x415dxb,_0x415dx6){this[_0x743c[13]][_0x743c[111]](_0x415dxe,_0x415dxb,_0x415dx6)});_0x415dx1[_0x743c[113]][_0x743c[35]](this[_0x743c[112]]);mxEvent[_0x743c[115]](document,mxUtils[_0x743c[20]](this,function(_0x415dx6){_0x415dx3[_0x743c[109]][_0x743c[114]]()}));if(mxClient[_0x743c[116]]){mxEvent[_0x743c[33]](_0x415dx3[_0x743c[1]],_0x743c[117],mxUtils[_0x743c[20]](this,function(_0x415dx6){_0x415dx3[_0x743c[122]][_0x743c[121]]()[_0x743c[38]](_0x743c[118],_0x743c[119]+ _0x415dx6[_0x743c[120]]+ _0x743c[44]);_0x415dx3[_0x743c[122]][_0x743c[124]]()[_0x743c[6]][_0x743c[123]]= _0x743c[7]}));mxEvent[_0x743c[33]](_0x415dx3[_0x743c[1]],_0x743c[125],mxUtils[_0x743c[20]](this,function(_0x415dx6){_0x415dx3[_0x743c[122]][_0x743c[121]]()[_0x743c[126]](_0x743c[118]);_0x415dx3[_0x743c[127]]= true;_0x415dx3[_0x743c[128]](_0x415dx6[_0x743c[120]]);_0x415dx3[_0x743c[122]][_0x743c[124]]()[_0x743c[6]][_0x743c[123]]= _0x743c[129]}))};var _0x415dxf=this[_0x743c[130]](_0x415dx1);this[_0x743c[131]]= function(){return _0x415dxf};mxEvent[_0x743c[33]](window,_0x743c[132],mxUtils[_0x743c[20]](this,function(){this[_0x743c[15]]();_0x415dx3[_0x743c[133]]();this[_0x743c[0]][_0x743c[113]][_0x743c[134]](false);this[_0x743c[0]][_0x743c[113]][_0x743c[113]][_0x743c[133]]()}));this[_0x743c[35]]();this[_0x743c[135]]()};EditorUi[_0x743c[10]][_0x743c[136]]= (mxClient[_0x743c[116]])?16:8;EditorUi[_0x743c[10]][_0x743c[137]]= 33;EditorUi[_0x743c[10]][_0x743c[138]]= 36;EditorUi[_0x743c[10]][_0x743c[139]]= 28;EditorUi[_0x743c[10]][_0x743c[140]]= 204;EditorUi[_0x743c[10]][_0x743c[141]]= 190;EditorUi[_0x743c[10]][_0x743c[35]]= function(){this[_0x743c[142]]();this[_0x743c[143]]();var _0x415dx10=this[_0x743c[12]][_0x743c[145]](_0x743c[144]);var _0x415dx11=function(){_0x415dx10[_0x743c[147]](!mxClipboard[_0x743c[146]]())};var _0x415dx12=mxClipboard[_0x743c[148]];mxClipboard[_0x743c[148]]= function(){_0x415dx12[_0x743c[50]](this,arguments);_0x415dx11()};var _0x415dx13=mxClipboard[_0x743c[149]];mxClipboard[_0x743c[149]]= function(){_0x415dx13[_0x743c[50]](this,arguments);_0x415dx11()}};EditorUi[_0x743c[10]][_0x743c[18]]= function(_0x415dx6){return false};EditorUi[_0x743c[10]][_0x743c[135]]= function(){try{if(window[_0x743c[150]]!= null&& window[_0x743c[150]][_0x743c[151]]!= null){window[_0x743c[150]][_0x743c[151]][_0x743c[163]](mxUtils[_0x743c[20]](this,function(_0x415dx14,_0x415dx15){try{var _0x415dx16=mxUtils[_0x743c[152]](_0x415dx14);this[_0x743c[0]][_0x743c[154]](_0x415dx16[_0x743c[153]]);this[_0x743c[0]][_0x743c[155]]= false;this[_0x743c[0]][_0x743c[157]][_0x743c[156]]();if(_0x415dx15!= null){this[_0x743c[0]][_0x743c[158]]= _0x415dx15}}catch(e){mxUtils[_0x743c[162]](mxResources[_0x743c[145]](_0x743c[159])+ _0x743c[160]+ e[_0x743c[161]])}}))}}catch(e){}};EditorUi[_0x743c[10]][_0x743c[164]]= function(_0x415dx14,_0x415dx15,_0x415dx17){try{var _0x415dx16=mxUtils[_0x743c[152]](_0x415dx14);this[_0x743c[0]][_0x743c[154]](_0x415dx16[_0x743c[153]]);this[_0x743c[0]][_0x743c[155]]= false;this[_0x743c[0]][_0x743c[157]][_0x743c[156]]();if(_0x415dx15!= null){this[_0x743c[0]][_0x743c[158]]= _0x415dx15};if(_0x415dx17!= null){this[_0x743c[0]][_0x743c[165]]= _0x415dx17}}catch(e){mxUtils[_0x743c[162]](mxResources[_0x743c[145]](_0x743c[159])+ _0x743c[160]+ e[_0x743c[161]])}};EditorUi[_0x743c[10]][_0x743c[166]]= function(_0x415dx18){var _0x415dx1=this[_0x743c[0]];if(_0x415dx18!= null){var _0x415dx14=mxUtils[_0x743c[168]](this[_0x743c[0]][_0x743c[167]]());try{if(useLocalStorage){if(localStorage[_0x743c[169]](_0x415dx18)!= null&& !mxUtils[_0x743c[171]](mxResources[_0x743c[145]](_0x743c[170],[_0x415dx18]))){return};localStorage[_0x743c[172]](_0x415dx18,_0x415dx14);this[_0x743c[0]][_0x743c[175]](mxResources[_0x743c[145]](_0x743c[173])+ _0x743c[174]+ new Date())}else {console[_0x743c[177]](_0x415dx14[_0x743c[176]]);console[_0x743c[177]](MAX_REQUEST_SIZE);if(_0x415dx14[_0x743c[176]]< MAX_REQUEST_SIZE){_0x415dx14= encodeURIComponent(_0x415dx14);_0x415dx18= encodeURIComponent(_0x415dx18);var _0x415dx19= new XMLHttpRequest();_0x415dx19[_0x743c[135]](_0x743c[178],SAVE_URL,true);_0x415dx19[_0x743c[181]](_0x743c[179],_0x743c[180]);_0x415dx19[_0x743c[181]](_0x743c[182],_0x743c[183]+ _0x415dx1[_0x743c[165]][_0x743c[184]]);_0x415dx19[_0x743c[185]]= function(_0x415dx1a){if(_0x415dx19[_0x743c[186]]=== 4){if(_0x415dx19[_0x743c[187]]=== 201){_0x415dx1[_0x743c[175]](_0x743c[188]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[189]]+ _0x743c[192]);setTimeout(function(){window[_0x743c[135]](_0x743c[193]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[194]],_0x743c[195])},1500)}else {_0x415dx1[_0x743c[175]](_0x743c[196]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[197]][0][_0x743c[161]])}}};_0x415dx19[_0x743c[198]]= function(_0x415dx1a){mxUtils[_0x743c[162]](_0x415dx19[_0x743c[199]])};_0x415dx19[_0x743c[201]](_0x743c[200]+ _0x415dx18)}else {mxUtils[_0x743c[162]](mxResources[_0x743c[145]](_0x743c[202]));mxUtils[_0x743c[203]](_0x415dx14);return}};this[_0x743c[0]][_0x743c[158]]= _0x415dx18;this[_0x743c[0]][_0x743c[155]]= false}catch(e){this[_0x743c[0]][_0x743c[175]](_0x743c[204])}}else {this[_0x743c[0]][_0x743c[175]](_0x743c[204])}};EditorUi[_0x743c[10]][_0x743c[205]]= function(_0x415dx18){var _0x415dx1=this[_0x743c[0]];if(_0x415dx18!= null){var _0x415dx14=mxUtils[_0x743c[168]](this[_0x743c[0]][_0x743c[167]]());try{if(useLocalStorage){if(localStorage[_0x743c[169]](_0x415dx18)!= null&& !mxUtils[_0x743c[171]](mxResources[_0x743c[145]](_0x743c[170],[_0x415dx18]))){return};localStorage[_0x743c[172]](_0x415dx18,_0x415dx14);this[_0x743c[0]][_0x743c[175]](mxResources[_0x743c[145]](_0x743c[173])+ _0x743c[174]+ new Date())}else {console[_0x743c[177]](_0x415dx14[_0x743c[176]]);console[_0x743c[177]](MAX_REQUEST_SIZE);if(_0x415dx14[_0x743c[176]]< MAX_REQUEST_SIZE){_0x415dx14= encodeURIComponent(_0x415dx14);var _0x415dx19= new XMLHttpRequest();_0x415dx19[_0x743c[135]](_0x743c[206],SAVE_URL+ this[_0x743c[0]][_0x743c[165]][_0x743c[194]],true);_0x415dx19[_0x743c[181]](_0x743c[179],_0x743c[180]);_0x415dx19[_0x743c[181]](_0x743c[182],_0x743c[183]+ _0x415dx1[_0x743c[165]][_0x743c[184]]);_0x415dx19[_0x743c[185]]= function(_0x415dx1a){if(_0x415dx19[_0x743c[186]]=== 4){if(_0x415dx19[_0x743c[187]]=== 200){_0x415dx1[_0x743c[175]](_0x743c[207]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[208]]+ _0x743c[209]+ _0x415dx19[_0x743c[187]]+ _0x743c[174]+ _0x415dx19[_0x743c[199]]+ _0x743c[44])}else {_0x415dx1[_0x743c[175]](_0x743c[210]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[197]][0][_0x743c[161]])}}};_0x415dx19[_0x743c[198]]= function(_0x415dx1a){mxUtils[_0x743c[162]](_0x415dx19[_0x743c[199]])};_0x415dx19[_0x743c[201]](_0x743c[211]+ _0x415dx14)}else {mxUtils[_0x743c[162]](mxResources[_0x743c[145]](_0x743c[202]));mxUtils[_0x743c[203]](_0x415dx14);return}};this[_0x743c[0]][_0x743c[158]]= _0x415dx18;this[_0x743c[0]][_0x743c[155]]= false}catch(e){this[_0x743c[0]][_0x743c[175]](_0x743c[212])}}else {this[_0x743c[0]][_0x743c[175]](_0x743c[212])}};EditorUi[_0x743c[10]][_0x743c[213]]= function(_0x415dx18){var _0x415dx1=this[_0x743c[0]];if(_0x415dx18!= null){var _0x415dx14=mxUtils[_0x743c[168]](this[_0x743c[0]][_0x743c[167]]());try{if(useLocalStorage){if(localStorage[_0x743c[169]](_0x415dx18)!= null&& !mxUtils[_0x743c[171]](mxResources[_0x743c[145]](_0x743c[170],[_0x415dx18]))){return};localStorage[_0x743c[172]](_0x415dx18,_0x415dx14);this[_0x743c[0]][_0x743c[175]](mxResources[_0x743c[145]](_0x743c[173])+ _0x743c[174]+ new Date())}else {console[_0x743c[177]](_0x415dx14[_0x743c[176]]);console[_0x743c[177]](MAX_REQUEST_SIZE);if(_0x415dx14[_0x743c[176]]< MAX_REQUEST_SIZE){_0x415dx14= encodeURIComponent(_0x415dx14);_0x415dx18= encodeURIComponent(_0x415dx18);var _0x415dx19= new XMLHttpRequest();_0x415dx19[_0x743c[135]](_0x743c[178],SAVE_URL,true);_0x415dx19[_0x743c[181]](_0x743c[179],_0x743c[180]);_0x415dx19[_0x743c[181]](_0x743c[182],_0x743c[183]+ _0x415dx1[_0x743c[165]][_0x743c[184]]);_0x415dx19[_0x743c[185]]= function(_0x415dx1a){if(_0x415dx19[_0x743c[186]]=== 4){if(_0x415dx19[_0x743c[187]]=== 201){_0x415dx1[_0x743c[175]](_0x743c[188]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[189]]+ _0x743c[192]);setTimeout(function(){window[_0x743c[135]](_0x743c[214]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[194]],_0x743c[195])},1500)}else {_0x415dx1[_0x743c[175]](_0x743c[215]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[197]][0][_0x743c[161]])}}};_0x415dx19[_0x743c[198]]= function(_0x415dx1a){mxUtils[_0x743c[162]](_0x415dx19[_0x743c[199]])};_0x415dx19[_0x743c[201]](_0x743c[216]+ _0x415dx18+ _0x743c[217]+ _0x415dx14+ _0x743c[218]+ _0x415dx14)}else {mxUtils[_0x743c[162]](mxResources[_0x743c[145]](_0x743c[202]));mxUtils[_0x743c[203]](_0x415dx14);return}};this[_0x743c[0]][_0x743c[158]]= _0x415dx18;this[_0x743c[0]][_0x743c[155]]= false}catch(e){this[_0x743c[0]][_0x743c[175]](_0x743c[212])}}else {this[_0x743c[0]][_0x743c[175]](_0x743c[212])}};EditorUi[_0x743c[10]][_0x743c[219]]= function(_0x415dx1b,_0x415dx1c){var _0x415dx3=this[_0x743c[0]][_0x743c[4]];for(var _0x415dx1b=_0x415dx1b!= null?_0x415dx1b:_0x415dx3[_0x743c[221]][_0x743c[220]](),_0x415dx1c=_0x415dx1c!= null?_0x415dx1c:{},_0x415dx1d=true,_0x415dx1e=_0x415dx3[_0x743c[221]][_0x743c[222]](_0x415dx1b),_0x415dx1a=0;_0x415dx1a< _0x415dx1e;_0x415dx1a++){var _0x415dx1f=_0x415dx3[_0x743c[221]][_0x743c[223]](_0x415dx1b,_0x415dx1a),_0x415dx20=_0x415dx1c;_0x415dx3[_0x743c[224]](_0x415dx1f)&& (_0x415dx20= {});_0x415dx20= this[_0x743c[219]](_0x415dx1f,_0x415dx20);_0x415dx20!= null?_0x415dx3[_0x743c[226]](_0x415dx1f,_0x415dx20[_0x743c[170]](/\n/g,_0x743c[225])):_0x415dx3[_0x743c[226]](_0x415dx1f,null);_0x415dx1d= _0x415dx1d&& _0x415dx20== null};_0x415dx1e= _0x743c[227];if(_0x415dx3[_0x743c[221]][_0x743c[105]](_0x415dx1b)){switch(_0x415dx1b[_0x743c[101]][_0x743c[286]]){case _0x743c[52]:_0x415dx1e= this[_0x743c[228]](_0x743c[52])?_0x743c[227]:_0x743c[229]+ _0x743c[230];break;case _0x743c[53]:_0x415dx1e= this[_0x743c[228]](_0x743c[53])?_0x743c[227]:_0x743c[231]+ _0x743c[230];break;case _0x743c[67]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[232])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[234])+ _0x743c[230];break;case _0x743c[66]:;case _0x743c[68]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[232])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[234])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[235])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[236])+ _0x743c[230];break;case _0x743c[74]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[232])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[234])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[237])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[238])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[239])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[240])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[241])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[236])+ _0x743c[230];case _0x743c[75]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[232])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[234])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[237])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[238])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[239])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[240])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[241])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[236])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[242])>= 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[243])+ _0x743c[230];break;case _0x743c[85]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[244])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[238])+ _0x743c[230];break;case _0x743c[77]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[245])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[246])+ _0x743c[230];break;case _0x743c[60]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[247])!== _0x743c[248])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[249])+ _0x743c[230];break;case _0x743c[64]:;case _0x743c[65]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[237])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[238])+ _0x743c[230];break;case _0x743c[81]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[250])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[251])+ _0x743c[230];break;case _0x743c[89]:;case _0x743c[90]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[252])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[253])+ _0x743c[230];break;case _0x743c[82]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[254])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[255])+ _0x743c[230];break;case _0x743c[69]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[256])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[257])+ _0x743c[230];break;case _0x743c[70]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[258])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[259])+ _0x743c[230];break;case _0x743c[71]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[260])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[261])+ _0x743c[230];break;case _0x743c[76]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[262])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[263])+ _0x743c[230];break;case _0x743c[87]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[264])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[265])+ _0x743c[230];break;case _0x743c[60]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[266])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[267])+ _0x743c[230];break;case _0x743c[59]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[268])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[267])+ _0x743c[230];break;case _0x743c[61]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[269])!== _0x743c[248])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[270])+ _0x743c[230];break;case _0x743c[63]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[271])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[272])+ _0x743c[230];break;case _0x743c[83]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[273])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[274])+ _0x743c[230];break;case _0x743c[84]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[273])!= _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[274])+ _0x743c[230];break;case _0x743c[62]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[275])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[276])+ _0x743c[230];break;case _0x743c[91]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[277])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[278])+ _0x743c[230];break;case _0x743c[79]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[279])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[280])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[281])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[282])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[283])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[261])+ _0x743c[230];break;case _0x743c[80]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[279])> 0)?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[280])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[281])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[282])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[260])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[261])+ _0x743c[230];break;case _0x743c[72]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[260])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[261])+ _0x743c[230];break;case _0x743c[73]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[260])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[261])+ _0x743c[230];_0x415dx1e+= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[284])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[285])+ _0x743c[230];break;case _0x743c[78]:_0x415dx1e= (_0x415dx1b[_0x743c[101]][_0x743c[233]](_0x743c[284])!== _0x743c[227])?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[285])+ _0x743c[230];break}};if(_0x415dx3[_0x743c[221]][_0x743c[98]](_0x415dx1b)){var _0x415dx21=_0x415dx3[_0x743c[221]][_0x743c[288]](_0x415dx1b[_0x743c[102]][_0x743c[287]]());switch(_0x415dx21[_0x743c[101]][_0x743c[286]]){case _0x743c[66]:var _0x415dx22=/^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;_0x415dx1e= _0x415dx1e+ ((_0x415dx22[_0x743c[290]](String(_0x415dx1b[_0x743c[289]]())))?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[291])+ _0x743c[230]);break;case _0x743c[68]:var _0x415dx22=/^[0-9]{1,45}$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;var _0x415dx23=String(_0x415dx1b[_0x743c[289]]());var _0x415dx24=_0x415dx23[_0x743c[293]](_0x743c[292]);_0x415dx24[_0x743c[295]](function(_0x415dx25){_0x415dx1e= _0x415dx1e+ ((_0x415dx22[_0x743c[290]](_0x415dx25))?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[294])+ _0x743c[230])});break;case _0x743c[75]:;case _0x743c[74]:var _0x415dx22=/^(x|i|-)$/;var _0x415dx23=String(_0x415dx1b[_0x743c[289]]());_0x415dx1e= _0x415dx1e+ ((_0x415dx22[_0x743c[290]](_0x415dx23))?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[296])+ _0x743c[230]);break;case _0x743c[82]:;case _0x743c[83]:;case _0x743c[84]:var _0x415dx22=/^(true){1}$|^(false){1}$/;_0x415dx1e= _0x415dx1e+ ((_0x415dx22[_0x743c[290]](String(_0x415dx1b[_0x743c[289]]())))?_0x743c[227]:mxResources[_0x743c[145]](_0x743c[297])+ _0x743c[230]);break}};_0x415dx3[_0x743c[298]](_0x415dx1b)&& !_0x415dx1d&& (_0x415dx1e= _0x415dx1e+ ((mxResources[_0x743c[145]](_0x415dx3[_0x743c[299]])|| _0x415dx3[_0x743c[299]])+ _0x743c[230]));_0x415dx1e= _0x415dx3[_0x743c[221]][_0x743c[98]](_0x415dx1b)?_0x415dx1e+ (_0x415dx3[_0x743c[301]](_0x415dx1b,_0x415dx3[_0x743c[221]][_0x743c[300]](_0x415dx1b,true),_0x415dx3[_0x743c[221]][_0x743c[300]](_0x415dx1b,false))|| _0x743c[227]):_0x415dx1e+ (_0x415dx3[_0x743c[302]](_0x415dx1b)|| _0x743c[227]);_0x415dx1a= _0x415dx3[_0x743c[303]](_0x415dx1b,_0x415dx1c);_0x415dx1a!= null&& (_0x415dx1e= _0x415dx1e+ _0x415dx1a);_0x415dx3[_0x743c[221]][_0x743c[304]](_0x415dx1b)== null&& _0x415dx3[_0x743c[122]][_0x743c[219]]();return _0x415dx1e[_0x743c[176]]> 0|| !_0x415dx1d?_0x415dx1e:null};EditorUi[_0x743c[10]][_0x743c[228]]= function(_0x415dx26){var _0x415dx3=this[_0x743c[0]][_0x743c[4]];var _0x415dx27=_0x415dx3[_0x743c[305]]();var _0x415dx28=0;_0x415dx27[_0x743c[306]][_0x743c[295]](function(_0x415dx29){if(_0x415dx3[_0x743c[221]][_0x743c[105]](_0x415dx29)&& _0x415dx29[_0x743c[101]][_0x743c[286]]== _0x415dx26){_0x415dx28++}});return _0x415dx28> 1?false:true};EditorUi[_0x743c[10]][_0x743c[307]]= function(_0x415dx18){var _0x415dx1=this[_0x743c[0]];if(_0x415dx18!= null){var _0x415dx2a=this[_0x743c[219]]();if(_0x415dx2a=== null){var _0x415dx14=mxUtils[_0x743c[168]](this[_0x743c[0]][_0x743c[167]]());try{if(useLocalStorage){if(localStorage[_0x743c[169]](_0x415dx18)!= null&& !mxUtils[_0x743c[171]](mxResources[_0x743c[145]](_0x743c[170],[_0x415dx18]))){return};localStorage[_0x743c[172]](_0x415dx18,_0x415dx14);this[_0x743c[0]][_0x743c[175]](mxResources[_0x743c[145]](_0x743c[173])+ _0x743c[174]+ new Date())}else {console[_0x743c[177]](_0x415dx14[_0x743c[176]]);console[_0x743c[177]](MAX_REQUEST_SIZE);if(_0x415dx14[_0x743c[176]]< MAX_REQUEST_SIZE){_0x415dx14= encodeURIComponent(_0x415dx14);var _0x415dx19= new XMLHttpRequest();_0x415dx19[_0x743c[135]](_0x743c[206],SAVE_URL+ this[_0x743c[0]][_0x743c[165]][_0x743c[194]],true);_0x415dx19[_0x743c[181]](_0x743c[179],_0x743c[180]);_0x415dx19[_0x743c[181]](_0x743c[182],_0x743c[183]+ _0x415dx1[_0x743c[165]][_0x743c[184]]);_0x415dx19[_0x743c[185]]= function(_0x415dx1a){if(_0x415dx19[_0x743c[186]]=== 4){if(_0x415dx19[_0x743c[187]]=== 200){_0x415dx1[_0x743c[175]](_0x743c[308]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[208]]+ _0x743c[209]+ _0x415dx19[_0x743c[187]]+ _0x743c[174]+ _0x415dx19[_0x743c[199]]+ _0x743c[44])}else {_0x415dx1[_0x743c[175]](_0x743c[210]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[197]][0][_0x743c[161]])}}};_0x415dx19[_0x743c[198]]= function(_0x415dx1a){mxUtils[_0x743c[162]](_0x415dx19[_0x743c[199]])};_0x415dx19[_0x743c[201]](_0x743c[211]+ _0x415dx14+ _0x743c[218]+ _0x415dx14)}else {mxUtils[_0x743c[162]](mxResources[_0x743c[145]](_0x743c[202]));mxUtils[_0x743c[203]](_0x415dx14);return}};this[_0x743c[0]][_0x743c[158]]= _0x415dx18;this[_0x743c[0]][_0x743c[155]]= false}catch(e){this[_0x743c[0]][_0x743c[175]](_0x743c[309])}}else {_0x415dx1[_0x743c[175]](_0x743c[310])}}else {this[_0x743c[0]][_0x743c[175]](_0x743c[309])}};EditorUi[_0x743c[10]][_0x743c[244]]= function(_0x415dx18){var _0x415dx1=this[_0x743c[0]];if(_0x415dx18!= null){try{var _0x415dx19= new XMLHttpRequest();_0x415dx19[_0x743c[135]](_0x743c[178],VARIABLE_URL,true);_0x415dx19[_0x743c[181]](_0x743c[179],_0x743c[180]);_0x415dx19[_0x743c[181]](_0x743c[182],_0x743c[183]+ _0x415dx1[_0x743c[165]][_0x743c[184]]);_0x415dx19[_0x743c[185]]= function(_0x415dx1a){if(_0x415dx19[_0x743c[186]]=== 4){if(_0x415dx19[_0x743c[187]]=== 201){_0x415dx1[_0x743c[175]](_0x743c[311]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[312]]+ _0x743c[209]+ _0x415dx19[_0x743c[187]]+ _0x743c[174]+ _0x415dx19[_0x743c[199]]+ _0x743c[44])}else {_0x415dx1[_0x743c[175]](_0x743c[313]+ JSON[_0x743c[191]](_0x415dx19[_0x743c[190]])[_0x743c[197]][0][_0x743c[161]])}}};_0x415dx19[_0x743c[198]]= function(_0x415dx1a){mxUtils[_0x743c[162]](_0x415dx19[_0x743c[199]])};_0x415dx19[_0x743c[201]](_0x743c[314]+ _0x415dx18)}catch(e){this[_0x743c[0]][_0x743c[175]](_0x743c[315])}}else {this[_0x743c[0]][_0x743c[175]](_0x743c[315])}};EditorUi[_0x743c[10]][_0x743c[316]]= function(_0x415dx2b){var _0x415dx2c=(_0x415dx2b!= null)?_0x415dx2b:window[_0x743c[318]][_0x743c[317]];var _0x415dx2d=(_0x415dx2c[_0x743c[103]](_0x743c[319])> 0)?1:0;for(var _0x415dx2e in urlParams){if(_0x415dx2d== 0){_0x415dx2c+= _0x743c[319]}else {_0x415dx2c+= _0x743c[320]};_0x415dx2c+= _0x415dx2e+ _0x743c[321]+ urlParams[_0x415dx2e];_0x415dx2d++};return _0x415dx2c};EditorUi[_0x743c[10]][_0x743c[142]]= function(){var _0x415dx2f=this[_0x743c[12]][_0x743c[145]](_0x743c[322]);var _0x415dx30=this[_0x743c[12]][_0x743c[145]](_0x743c[323]);var _0x415dx31=this[_0x743c[0]][_0x743c[157]];var _0x415dx32=function(){_0x415dx2f[_0x743c[147]](_0x415dx31[_0x743c[324]]());_0x415dx30[_0x743c[147]](_0x415dx31[_0x743c[325]]())};_0x415dx31[_0x743c[33]](mxEvent.ADD,_0x415dx32);_0x415dx31[_0x743c[33]](mxEvent.UNDO,_0x415dx32);_0x415dx31[_0x743c[33]](mxEvent.REDO,_0x415dx32);_0x415dx31[_0x743c[33]](mxEvent.CLEAR,_0x415dx32);_0x415dx32()};EditorUi[_0x743c[10]][_0x743c[143]]= function(){var _0x415dx33=mxUtils[_0x743c[20]](this,function(){var _0x415dx3=this[_0x743c[0]][_0x743c[4]];var _0x415dx34=!_0x415dx3[_0x743c[326]]();var _0x415dx35=false;var _0x415dx36=false;var _0x415dx37=_0x415dx3[_0x743c[327]]();if(_0x415dx37!= null){for(var _0x415dx38=0;_0x415dx38< _0x415dx37[_0x743c[176]];_0x415dx38++){var _0x415dxb=_0x415dx37[_0x415dx38];if(_0x415dx3[_0x743c[99]]()[_0x743c[98]](_0x415dxb)){_0x415dx36= true};if(_0x415dx3[_0x743c[99]]()[_0x743c[105]](_0x415dxb)){_0x415dx35= true};if(_0x415dx36&& _0x415dx35){break}}};var _0x415dx39=[_0x743c[148],_0x743c[149],_0x743c[328],_0x743c[329],_0x743c[330],_0x743c[331],_0x743c[6],_0x743c[332],_0x743c[333],_0x743c[334],_0x743c[335],_0x743c[336],_0x743c[337],_0x743c[338],_0x743c[339]];for(var _0x415dx38=0;_0x415dx38< _0x415dx39[_0x743c[176]];_0x415dx38++){this[_0x743c[12]][_0x743c[145]](_0x415dx39[_0x415dx38])[_0x743c[147]](_0x415dx34)};this[_0x743c[12]][_0x743c[145]](_0x743c[340])[_0x743c[147]](_0x415dx36);this[_0x743c[12]][_0x743c[145]](_0x743c[341])[_0x743c[147]](_0x415dx35);this[_0x743c[12]][_0x743c[145]](_0x743c[342])[_0x743c[147]](_0x415dx35);this[_0x743c[12]][_0x743c[145]](_0x743c[344])[_0x743c[147]](_0x415dx3[_0x743c[343]]()> 1);this[_0x743c[12]][_0x743c[145]](_0x743c[346])[_0x743c[147]](_0x415dx3[_0x743c[343]]()== 1&& _0x415dx3[_0x743c[99]]()[_0x743c[222]](_0x415dx3[_0x743c[345]]())> 0);var _0x415dx3a=_0x415dx35&& _0x415dx3[_0x743c[343]]()== 1;this[_0x743c[12]][_0x743c[145]](_0x743c[347])[_0x743c[147]](_0x415dx3a&& _0x415dx3[_0x743c[99]]()[_0x743c[105]](_0x415dx3[_0x743c[99]]()[_0x743c[304]](_0x415dx3[_0x743c[345]]())));var _0x415dx3b=[_0x743c[348],_0x743c[349],_0x743c[350],_0x743c[351],_0x743c[260],_0x743c[352],_0x743c[353],_0x743c[354],_0x743c[355]];for(var _0x415dx38=0;_0x415dx38< _0x415dx3b[_0x743c[176]];_0x415dx38++){this[_0x743c[13]][_0x743c[145]](_0x415dx3b[_0x415dx38])[_0x743c[147]](_0x415dx34)};_0x415dx3b= [_0x743c[356],_0x743c[357],_0x743c[358]];for(var _0x415dx38=0;_0x415dx38< _0x415dx3b[_0x743c[176]];_0x415dx38++){this[_0x743c[13]][_0x743c[145]](_0x415dx3b[_0x415dx38])[_0x743c[147]](_0x415dx36)};this[_0x743c[12]][_0x743c[145]](_0x743c[359])[_0x743c[147]](_0x415dx36);this[_0x743c[13]][_0x743c[145]](_0x743c[360])[_0x743c[147]](_0x415dx3[_0x743c[343]]()> 1);this[_0x743c[13]][_0x743c[145]](_0x743c[363])[_0x743c[147]](_0x415dx35|| (_0x415dx36&& _0x415dx3[_0x743c[362]](_0x415dx3[_0x743c[122]][_0x743c[361]](_0x415dx3[_0x743c[345]]()))));this[_0x743c[13]][_0x743c[145]](_0x743c[366])[_0x743c[147]](_0x415dx3[_0x743c[364]]&& ((_0x415dx3[_0x743c[122]][_0x743c[365]]!= null)|| (_0x415dx3[_0x743c[343]]()== 1&& _0x415dx3[_0x743c[224]](_0x415dx3[_0x743c[345]]()))));this[_0x743c[12]][_0x743c[145]](_0x743c[367])[_0x743c[147]](_0x415dx3[_0x743c[122]][_0x743c[365]]!= null);this[_0x743c[12]][_0x743c[145]](_0x743c[368])[_0x743c[147]](_0x415dx3[_0x743c[122]][_0x743c[365]]!= null);var _0x415dx3c=_0x415dx3[_0x743c[343]]()== 1&& _0x415dx3[_0x743c[224]](_0x415dx3[_0x743c[345]]());this[_0x743c[12]][_0x743c[145]](_0x743c[369])[_0x743c[147]](_0x415dx3c);this[_0x743c[12]][_0x743c[145]](_0x743c[370])[_0x743c[147]](_0x415dx3c);this[_0x743c[12]][_0x743c[145]](_0x743c[371])[_0x743c[147]](_0x415dx3c);this[_0x743c[12]][_0x743c[145]](_0x743c[372])[_0x743c[147]](_0x415dx3[_0x743c[343]]()== 1);this[_0x743c[12]][_0x743c[145]](_0x743c[374])[_0x743c[147]](_0x415dx3[_0x743c[343]]()== 1&& _0x415dx3[_0x743c[373]](_0x415dx3[_0x743c[345]]())!= null)});this[_0x743c[0]][_0x743c[4]][_0x743c[375]]()[_0x743c[33]](mxEvent.CHANGE,_0x415dx33);_0x415dx33()};EditorUi[_0x743c[10]][_0x743c[15]]= function(){var _0x415dx3d=mxClient[_0x743c[29]]&& (document[_0x743c[30]]== null|| document[_0x743c[30]]== 5);var _0x415dx3e=this[_0x743c[1]][_0x743c[376]];var _0x415dx3f=this[_0x743c[1]][_0x743c[377]];if(this[_0x743c[1]]== document[_0x743c[21]]){_0x415dx3e= document[_0x743c[21]][_0x743c[376]]|| document[_0x743c[153]][_0x743c[376]];_0x415dx3f= (_0x415dx3d)?document[_0x743c[21]][_0x743c[377]]|| document[_0x743c[153]][_0x743c[377]]:document[_0x743c[153]][_0x743c[377]]};var _0x415dx40=Math[_0x743c[379]](0,Math[_0x743c[378]](this[_0x743c[140]],_0x415dx3e- this[_0x743c[136]]- 20));var _0x415dx41=Math[_0x743c[379]](0,Math[_0x743c[378]](this[_0x743c[141]],_0x415dx3f- this[_0x743c[137]]- this[_0x743c[138]]- this[_0x743c[139]]- this[_0x743c[136]]- 1));this[_0x743c[23]][_0x743c[6]][_0x743c[380]]= this[_0x743c[137]]+ _0x743c[381];this[_0x743c[25]][_0x743c[6]][_0x743c[382]]= this[_0x743c[137]]+ _0x743c[381];this[_0x743c[25]][_0x743c[6]][_0x743c[380]]= this[_0x743c[138]]+ _0x743c[381];var _0x415dx42=this[_0x743c[137]]+ this[_0x743c[138]];if(!mxClient[_0x743c[383]]){_0x415dx42+= 1};this[_0x743c[27]][_0x743c[6]][_0x743c[382]]= _0x415dx42+ _0x743c[381];this[_0x743c[27]][_0x743c[6]][_0x743c[384]]= _0x415dx40+ _0x743c[381];this[_0x743c[112]][_0x743c[6]][_0x743c[384]]= _0x415dx40+ _0x743c[381];this[_0x743c[112]][_0x743c[6]][_0x743c[380]]= _0x415dx41+ _0x743c[381];this[_0x743c[112]][_0x743c[6]][_0x743c[385]]= this[_0x743c[139]]+ _0x743c[381];this[_0x743c[26]][_0x743c[6]][_0x743c[386]]= (_0x415dx40+ this[_0x743c[136]])+ _0x743c[381];this[_0x743c[26]][_0x743c[6]][_0x743c[382]]= this[_0x743c[27]][_0x743c[6]][_0x743c[382]];this[_0x743c[28]][_0x743c[6]][_0x743c[380]]= this[_0x743c[139]]+ _0x743c[381];this[_0x743c[28]][_0x743c[6]][_0x743c[387]]= _0x743c[388];this[_0x743c[389]][_0x743c[6]][_0x743c[382]]= this[_0x743c[27]][_0x743c[6]][_0x743c[382]];this[_0x743c[389]][_0x743c[6]][_0x743c[385]]= this[_0x743c[112]][_0x743c[6]][_0x743c[385]];this[_0x743c[389]][_0x743c[6]][_0x743c[386]]= _0x415dx40+ _0x743c[381];this[_0x743c[390]][_0x743c[6]][_0x743c[384]]= this[_0x743c[27]][_0x743c[6]][_0x743c[384]];this[_0x743c[390]][_0x743c[6]][_0x743c[385]]= (_0x415dx41+ this[_0x743c[139]])+ _0x743c[381];if(_0x415dx3d){this[_0x743c[23]][_0x743c[6]][_0x743c[384]]= _0x415dx3e+ _0x743c[381];this[_0x743c[25]][_0x743c[6]][_0x743c[384]]= this[_0x743c[23]][_0x743c[6]][_0x743c[384]];var _0x415dx43=(_0x415dx3f- _0x415dx41- this[_0x743c[136]]- this[_0x743c[139]]- this[_0x743c[137]]- this[_0x743c[138]]);this[_0x743c[27]][_0x743c[6]][_0x743c[380]]= _0x415dx43+ _0x743c[381];this[_0x743c[26]][_0x743c[6]][_0x743c[384]]= (_0x415dx3e- _0x415dx40- this[_0x743c[136]])+ _0x743c[381];var _0x415dx44=(_0x415dx3f- this[_0x743c[139]]- this[_0x743c[137]]- this[_0x743c[138]]);this[_0x743c[26]][_0x743c[6]][_0x743c[380]]= _0x415dx44+ _0x743c[381];this[_0x743c[28]][_0x743c[6]][_0x743c[384]]= this[_0x743c[23]][_0x743c[6]][_0x743c[384]];this[_0x743c[389]][_0x743c[6]][_0x743c[380]]= _0x415dx44+ _0x743c[381]}else {this[_0x743c[27]][_0x743c[6]][_0x743c[385]]= (_0x415dx41+ this[_0x743c[136]]+ this[_0x743c[139]])+ _0x743c[381];this[_0x743c[26]][_0x743c[6]][_0x743c[385]]= this[_0x743c[112]][_0x743c[6]][_0x743c[385]]}};EditorUi[_0x743c[10]][_0x743c[14]]= function(){this[_0x743c[23]]= this[_0x743c[392]](_0x743c[391]);this[_0x743c[25]]= this[_0x743c[392]](_0x743c[393]);this[_0x743c[27]]= this[_0x743c[392]](_0x743c[394]);this[_0x743c[112]]= this[_0x743c[392]](_0x743c[395]);this[_0x743c[26]]= this[_0x743c[392]](_0x743c[396]);this[_0x743c[28]]= this[_0x743c[392]](_0x743c[397]);this[_0x743c[389]]= this[_0x743c[392]](_0x743c[398]);this[_0x743c[390]]= this[_0x743c[392]](_0x743c[399]);this[_0x743c[23]][_0x743c[6]][_0x743c[382]]= _0x743c[400];this[_0x743c[23]][_0x743c[6]][_0x743c[386]]= _0x743c[400];this[_0x743c[23]][_0x743c[6]][_0x743c[401]]= _0x743c[400];this[_0x743c[25]][_0x743c[6]][_0x743c[386]]= _0x743c[400];this[_0x743c[25]][_0x743c[6]][_0x743c[401]]= _0x743c[400];this[_0x743c[27]][_0x743c[6]][_0x743c[386]]= _0x743c[400];this[_0x743c[112]][_0x743c[6]][_0x743c[386]]= _0x743c[400];this[_0x743c[26]][_0x743c[6]][_0x743c[401]]= _0x743c[400];this[_0x743c[28]][_0x743c[6]][_0x743c[386]]= _0x743c[400];this[_0x743c[28]][_0x743c[6]][_0x743c[401]]= _0x743c[400];this[_0x743c[28]][_0x743c[6]][_0x743c[385]]= _0x743c[400];this[_0x743c[390]][_0x743c[6]][_0x743c[386]]= _0x743c[400];this[_0x743c[390]][_0x743c[6]][_0x743c[380]]= this[_0x743c[136]]+ _0x743c[381];this[_0x743c[389]][_0x743c[6]][_0x743c[384]]= this[_0x743c[136]]+ _0x743c[381]};EditorUi[_0x743c[10]][_0x743c[16]]= function(){this[_0x743c[402]]= this[_0x743c[13]][_0x743c[404]](this[_0x743c[392]](_0x743c[403]));this[_0x743c[23]][_0x743c[405]](this[_0x743c[402]][_0x743c[1]]);this[_0x743c[406]]= this[_0x743c[408]](this[_0x743c[392]](_0x743c[407]));this[_0x743c[25]][_0x743c[405]](this[_0x743c[406]][_0x743c[1]]);this[_0x743c[409]]= this[_0x743c[410]](this[_0x743c[27]]);this[_0x743c[28]][_0x743c[405]](this[_0x743c[411]]());this[_0x743c[412]]= this[_0x743c[413]]();this[_0x743c[0]][_0x743c[33]](_0x743c[414],mxUtils[_0x743c[20]](this,function(){this[_0x743c[416]](this[_0x743c[0]][_0x743c[415]]())}));this[_0x743c[416]](this[_0x743c[0]][_0x743c[415]]());this[_0x743c[402]][_0x743c[1]][_0x743c[405]](this[_0x743c[412]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[23]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[25]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[27]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[112]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[26]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[28]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[389]]);this[_0x743c[1]][_0x743c[405]](this[_0x743c[390]]);this[_0x743c[417]](this[_0x743c[389]],true,0,mxUtils[_0x743c[20]](this,function(_0x415dx45){this[_0x743c[140]]= _0x415dx45;this[_0x743c[15]]();this[_0x743c[0]][_0x743c[4]][_0x743c[133]]();this[_0x743c[0]][_0x743c[113]][_0x743c[134]](false);this[_0x743c[0]][_0x743c[113]][_0x743c[113]][_0x743c[133]]()}));this[_0x743c[417]](this[_0x743c[390]],false,this[_0x743c[139]],mxUtils[_0x743c[20]](this,function(_0x415dx45){this[_0x743c[141]]= _0x415dx45;this[_0x743c[15]]();this[_0x743c[0]][_0x743c[113]][_0x743c[134]](false);this[_0x743c[0]][_0x743c[113]][_0x743c[113]][_0x743c[133]]()}))};EditorUi[_0x743c[10]][_0x743c[413]]= function(){var _0x415dx2=document[_0x743c[419]](_0x743c[418]);_0x415dx2[_0x743c[420]]= _0x743c[421];return _0x415dx2};EditorUi[_0x743c[10]][_0x743c[413]]= function(){var _0x415dx2=document[_0x743c[419]](_0x743c[418]);_0x415dx2[_0x743c[420]]= _0x743c[421];return _0x415dx2};EditorUi[_0x743c[10]][_0x743c[416]]= function(_0x415dx45){this[_0x743c[412]][_0x743c[422]]= _0x415dx45};EditorUi[_0x743c[10]][_0x743c[408]]= function(_0x415dx2){return new Toolbar(this,_0x415dx2)};EditorUi[_0x743c[10]][_0x743c[410]]= function(_0x415dx2){return new Sidebar(this,_0x415dx2)};EditorUi[_0x743c[10]][_0x743c[411]]= function(){return this[_0x743c[392]](_0x743c[423])};EditorUi[_0x743c[10]][_0x743c[392]]= function(_0x415dx46){var _0x415dx47=document[_0x743c[419]](_0x743c[424]);_0x415dx47[_0x743c[420]]= _0x415dx46;return _0x415dx47};EditorUi[_0x743c[10]][_0x743c[425]]= function(_0x415dx46){var _0x415dx47=document[_0x743c[419]](_0x415dx46);return _0x415dx47};EditorUi[_0x743c[10]][_0x743c[426]]= function(_0x415dx46){var _0x415dx47=document[_0x743c[419]](_0x743c[427]);_0x415dx47[_0x743c[420]]= _0x415dx46;return _0x415dx47};EditorUi[_0x743c[10]][_0x743c[417]]= function(_0x415dx47,_0x415dx48,_0x415dx49,_0x415dx4a){var _0x415dx4b=null;var _0x415dx4c=null;function _0x415dx4d(){return parseInt(((_0x415dx48)?_0x415dx47[_0x743c[6]][_0x743c[386]]:_0x415dx47[_0x743c[6]][_0x743c[385]]))}function _0x415dx4e(_0x415dx6){if(_0x415dx4b!= null){var _0x415dx4f= new mxPoint(mxEvent[_0x743c[428]](_0x415dx6),mxEvent[_0x743c[429]](_0x415dx6));_0x415dx4a(Math[_0x743c[379]](0,_0x415dx4c+ ((_0x415dx48)?(_0x415dx4f[_0x743c[430]]- _0x415dx4b[_0x743c[430]]):(_0x415dx4b[_0x743c[431]]- _0x415dx4f[_0x743c[431]]))- _0x415dx49));mxEvent[_0x743c[107]](_0x415dx6)}}function _0x415dx50(_0x415dx6){_0x415dx4e(_0x415dx6);_0x415dx4b= null;_0x415dx4c= null}mxEvent[_0x743c[115]](_0x415dx47,function(_0x415dx6){_0x415dx4b= new mxPoint(mxEvent[_0x743c[428]](_0x415dx6),mxEvent[_0x743c[429]](_0x415dx6));_0x415dx4c= _0x415dx4d();mxEvent[_0x743c[107]](_0x415dx6)});mxEvent[_0x743c[33]](document,_0x743c[432],_0x415dx4e);mxEvent[_0x743c[33]](document,_0x743c[433],_0x415dx4e);mxEvent[_0x743c[33]](document,_0x743c[434],_0x415dx50);mxEvent[_0x743c[33]](document,_0x743c[435],_0x415dx50)};EditorUi[_0x743c[10]][_0x743c[106]]= function(_0x415dx47,_0x415dx3e,_0x415dx3f,_0x415dx51,_0x415dx52,_0x415dx53){this[_0x743c[436]]();this[_0x743c[437]]= new Dialog(this,_0x415dx47,_0x415dx3e,(mxClient[_0x743c[438]])?_0x415dx3f- 12:_0x415dx3f,_0x415dx51,_0x415dx52,_0x415dx53)};EditorUi[_0x743c[10]][_0x743c[436]]= function(){if(this[_0x743c[437]]!= null){this[_0x743c[437]][_0x743c[439]]();this[_0x743c[437]]= null;this[_0x743c[0]][_0x743c[4]][_0x743c[1]][_0x743c[47]]()}};EditorUi[_0x743c[10]][_0x743c[440]]= function(_0x415dx54){if(!_0x415dx54&& this[_0x743c[0]][_0x743c[158]]!= null){this[_0x743c[205]](this[_0x743c[0]][_0x743c[441]]())}else {this[_0x743c[106]]( new SaveDialog(this)[_0x743c[1]],300,100,true,true)}};EditorUi[_0x743c[10]][_0x743c[442]]= function(_0x415dx54){if(!_0x415dx54&& this[_0x743c[0]][_0x743c[158]]!= null){this[_0x743c[307]](this[_0x743c[0]][_0x743c[441]]())}else {}};EditorUi[_0x743c[10]][_0x743c[443]]= function(_0x415dx55,_0x415dx56,_0x415dx57){var _0x415dx3=this[_0x743c[0]][_0x743c[4]];var _0x415dxb=_0x415dx3[_0x743c[345]]();_0x415dx56= this[_0x743c[444]]!= null?this[_0x743c[444]]:_0x415dx56;_0x415dx3[_0x743c[99]]()[_0x743c[445]]();try{_0x415dx55[_0x743c[446]](_0x415dx3[_0x743c[305]](),_0x415dxb)}catch(e){throw e}finally{if(_0x415dx56&& navigator[_0x743c[448]][_0x743c[103]](_0x743c[447])< 0){var _0x415dx58= new mxMorphing(_0x415dx3);_0x415dx58[_0x743c[33]](mxEvent.DONE,mxUtils[_0x743c[20]](this,function(){_0x415dx3[_0x743c[99]]()[_0x743c[449]]()}));_0x415dx58[_0x743c[450]]()}else {_0x415dx3[_0x743c[99]]()[_0x743c[449]]()}}};EditorUi[_0x743c[10]][_0x743c[130]]= function(_0x415dx1){var _0x415dx3=this[_0x743c[0]][_0x743c[4]];var _0x415dxf= new mxKeyHandler(_0x415dx3);_0x415dxf[_0x743c[451]]= function(_0x415dx6){return mxEvent[_0x743c[451]](_0x415dx6)|| (mxClient[_0x743c[452]]&& _0x415dx6[_0x743c[453]])};function _0x415dx59(_0x415dx5a){if(!_0x415dx3[_0x743c[326]]()){var _0x415dx49=0;var _0x415dx5b=0;if(_0x415dx5a== 37){_0x415dx49= -1}else {if(_0x415dx5a== 38){_0x415dx5b= -1}else {if(_0x415dx5a== 39){_0x415dx49= 1}else {if(_0x415dx5a== 40){_0x415dx5b= 1}}}};_0x415dx3[_0x743c[454]](_0x415dx3[_0x743c[327]](),_0x415dx49,_0x415dx5b);_0x415dx3[_0x743c[455]](_0x415dx3[_0x743c[345]]())}}var _0x415dx5c=mxUtils[_0x743c[20]](this,function(_0x415dx5d,_0x415dx5e,_0x415dx2e,_0x415dx5f){var _0x415dx60=this[_0x743c[12]][_0x743c[145]](_0x415dx2e);if(_0x415dx60!= null){var _0x415dx1f=function(){if(_0x415dx60[_0x743c[456]]){_0x415dx60[_0x743c[457]]()}};if(_0x415dx5e){if(_0x415dx5f){_0x415dxf[_0x743c[458]](_0x415dx5d,_0x415dx1f)}else {_0x415dxf[_0x743c[459]](_0x415dx5d,_0x415dx1f)}}else {if(_0x415dx5f){_0x415dxf[_0x743c[460]](_0x415dx5d,_0x415dx1f)}else {_0x415dxf[_0x743c[461]](_0x415dx5d,_0x415dx1f)}}}});var _0x415dx61=this;var _0x415dx62=_0x415dxf[_0x743c[462]];_0x415dxf[_0x743c[462]]= function(_0x415dx6){_0x415dx61[_0x743c[436]]();_0x415dx62[_0x743c[50]](this,arguments)};_0x415dxf[_0x743c[463]]= function(){};_0x415dxf[_0x743c[461]](8,function(){_0x415dx3[_0x743c[464]](true)});_0x415dxf[_0x743c[461]](13,function(){_0x415dx3[_0x743c[464]](false)});_0x415dxf[_0x743c[461]](33,function(){_0x415dx3[_0x743c[368]]()});_0x415dxf[_0x743c[461]](34,function(){_0x415dx3[_0x743c[369]]()});_0x415dxf[_0x743c[461]](36,function(){_0x415dx3[_0x743c[367]]()});_0x415dxf[_0x743c[461]](35,function(){_0x415dx3[_0x743c[15]]()});_0x415dxf[_0x743c[461]](37,function(){_0x415dx59(37)});_0x415dxf[_0x743c[461]](38,function(){_0x415dx59(38)});_0x415dxf[_0x743c[461]](39,function(){_0x415dx59(39)});_0x415dxf[_0x743c[461]](40,function(){_0x415dx59(40)});_0x415dxf[_0x743c[461]](113,function(){_0x415dx3[_0x743c[104]]()});_0x415dx5c(46,false,_0x743c[328]);_0x415dx5c(82,true,_0x743c[338]);_0x415dx5c(83,true,_0x743c[205]);_0x415dx5c(83,true,_0x743c[213],true);_0x415dx5c(107,false,_0x743c[465]);_0x415dx5c(109,false,_0x743c[466]);_0x415dx5c(65,true,_0x743c[467]);_0x415dx5c(86,true,_0x743c[468],true);_0x415dx5c(69,true,_0x743c[469],true);_0x415dx5c(69,true,_0x743c[470]);_0x415dx5c(66,true,_0x743c[334]);_0x415dx5c(70,true,_0x743c[333]);_0x415dx5c(68,true,_0x743c[329]);_0x415dx5c(90,true,_0x743c[322]);_0x415dx5c(89,true,_0x743c[323]);_0x415dx5c(88,true,_0x743c[148]);_0x415dx5c(67,true,_0x743c[149]);_0x415dx5c(81,true,_0x743c[471]);_0x415dx5c(86,true,_0x743c[144]);_0x415dx5c(71,true,_0x743c[344]);_0x415dx5c(71,true,_0x743c[472],true);_0x415dx5c(85,true,_0x743c[346]);_0x415dx5c(112,false,_0x743c[473]);_0x415dx5c(80,true,_0x743c[307],true);return _0x415dxf};EditorUi[_0x743c[10]][_0x743c[56]]= function(_0x415dx3,_0x415dx37,_0x415dx63,_0x415dx64){for(var _0x415dx38=0;_0x415dx38< _0x415dx37[_0x743c[176]];_0x415dx38++){_0x415dx3[_0x743c[476]]( new mxMultiplicity(true,_0x415dx37[_0x415dx38],null,null,_0x415dx63[_0x415dx38][0],_0x415dx63[_0x415dx38][1],null,mxResources[_0x743c[145]](_0x415dx37[_0x415dx38])+ mxResources[_0x743c[145]](_0x743c[474])+ _0x415dx63[_0x415dx38][0]+ mxResources[_0x743c[145]](_0x743c[475]),null));_0x415dx3[_0x743c[476]]( new mxMultiplicity(false,_0x415dx37[_0x415dx38],null,null,_0x415dx64[_0x415dx38][0],_0x415dx64[_0x415dx38][1],null,mxResources[_0x743c[145]](_0x415dx37[_0x415dx38])+ mxResources[_0x743c[145]](_0x743c[474])+ _0x415dx64[_0x415dx38][0]+ mxResources[_0x743c[145]](_0x743c[477]),null))}}
\ No newline at end of file